diff --git a/.gitignore b/.gitignore deleted file mode 100644 index 2aced7851..000000000 --- a/.gitignore +++ /dev/null @@ -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 diff --git a/.vs/BlockColor/v15/.suo b/.vs/BlockColor/v15/.suo new file mode 100644 index 000000000..ff2fac609 Binary files /dev/null and b/.vs/BlockColor/v15/.suo differ diff --git a/.vs/BlockColor/v15/Browse.VC.db b/.vs/BlockColor/v15/Browse.VC.db new file mode 100644 index 000000000..8cb6b6d56 Binary files /dev/null and b/.vs/BlockColor/v15/Browse.VC.db differ diff --git a/.vs/ProjectSettings.json b/.vs/ProjectSettings.json new file mode 100644 index 000000000..f8b488856 --- /dev/null +++ b/.vs/ProjectSettings.json @@ -0,0 +1,3 @@ +{ + "CurrentProjectSetting": null +} \ No newline at end of file diff --git a/.vs/VSWorkspaceState.json b/.vs/VSWorkspaceState.json new file mode 100644 index 000000000..6b6114114 --- /dev/null +++ b/.vs/VSWorkspaceState.json @@ -0,0 +1,6 @@ +{ + "ExpandedNodes": [ + "" + ], + "PreviewInSolutionExplorer": false +} \ No newline at end of file diff --git a/.vs/slnx.sqlite b/.vs/slnx.sqlite new file mode 100644 index 000000000..780972992 Binary files /dev/null and b/.vs/slnx.sqlite differ diff --git a/CMakeLists.txt b/CMakeLists.txt index f815dba47..2f298f910 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -6,8 +6,8 @@ if(${CMAKE_VERSION} STREQUAL "2.8.2") endif() # This can be read from ${PROJECT_NAME} after project() is called -project(MultiCraft) -set(PROJECT_NAME_CAPITALIZED "MultiCraft") +project(BlockColor) +set(PROJECT_NAME_CAPITALIZED "BlockColor") # Works only for cmake 3.1 and greater 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/texture_packs.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) - install(FILES "doc/MultiCraft.6" "doc/MultiCraftServer.6" DESTINATION "${MANDIR}/man6") - install(FILES "misc/MultiCraft.desktop" DESTINATION "${XDG_APPS_DIR}") - install(FILES "misc/MultiCraft.appdata.xml" DESTINATION "${APPDATADIR}") - install(FILES "misc/MultiCraft.svg" DESTINATION "${ICONDIR}/hicolor/scalable/apps") - install(FILES "misc/MultiCraft-xorg-icon-128.png" + install(FILES "doc/BlockColor.6" "doc/BlockColorServer.6" DESTINATION "${MANDIR}/man6") + install(FILES "misc/BlockColor.desktop" DESTINATION "${XDG_APPS_DIR}") + install(FILES "misc/BlockColor.appdata.xml" DESTINATION "${APPDATADIR}") + install(FILES "misc/BlockColor.svg" DESTINATION "${ICONDIR}/hicolor/scalable/apps") + install(FILES "misc/BlockColor-xorg-icon-128.png" DESTINATION "${ICONDIR}/hicolor/128x128/apps" - RENAME "MultiCraft.png") + RENAME "BlockColor.png") endif() 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") endif() @@ -202,12 +202,12 @@ add_subdirectory(src) # 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_MINOR ${VERSION_MINOR}) set(CPACK_PACKAGE_VERSION_PATCH ${VERSION_PATCH}) -set(CPACK_PACKAGE_VENDOR "MoNTE48") -set(CPACK_PACKAGE_CONTACT "MoNTE48@mail.ua") +set(CPACK_PACKAGE_VENDOR "MrChiantos") +set(CPACK_PACKAGE_CONTACT "julienetnel@gmail.com") if(WIN32) if(CMAKE_SIZEOF_VOID_P EQUAL 8) diff --git a/README.md b/README.md index 78cca8274..232210fb2 100644 --- a/README.md +++ b/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] & 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. 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. \ No newline at end of file diff --git a/blockcolor.conf.example b/blockcolor.conf.example new file mode 100644 index 000000000..a55c98aba --- /dev/null +++ b/blockcolor.conf.example @@ -0,0 +1,1850 @@ +# This file contains a list of all available settings and their default value for blockcolor.conf + +# By default, all the settings are commented and not functional. +# Uncomment settings by removing the preceding #. + +# blockcolor.conf is read by default from: +# ../blockcolor.conf +# ../../blockcolor.conf +# Any other path can be chosen by passing the path as a parameter +# to the program, eg. "minetest.exe --config ../blockcolor.conf.example". + +# Further documentation: +# http://wiki.minetest.net/ + +# +# Client +# + +## Controls + +# If enabled, you can place blocks at the position (feet + eye level) where you stand. +# This is helpful when working with nodeboxes in small areas. +# type: bool +# enable_build_where_you_stand = false + +# Player is able to fly without being affected by gravity. +# This requires the "fly" privilege on the server. +# type: bool +# free_move = false + +# Fast movement (via use key). +# This requires the "fast" privilege on the server. +# type: bool +# fast_move = false + +# If enabled together with fly mode, player is able to fly through solid nodes. +# This requires the "noclip" privilege on the server. +# type: bool +# noclip = false + +# Smooths camera when looking around. Also called look or mouse smoothing. +# Useful for recording videos. +# type: bool +# cinematic = false + +# Smooths rotation of camera. 0 to disable. +# type: float min: 0 max: 0.99 +# camera_smoothing = 0.0 + +# Smooths rotation of camera in cinematic mode. 0 to disable. +# type: float min: 0 max: 0.99 +# cinematic_camera_smoothing = 0.7 + +# Invert vertical mouse movement. +# type: bool +# invert_mouse = false + +# Mouse sensitivity multiplier. +# type: float +# mouse_sensitivity = 0.2 + +# If enabled, "use" key instead of "sneak" key is used for climbing down and descending. +# type: bool +# aux1_descends = false + +# Double-tapping the jump key toggles fly mode. +# type: bool +# doubletap_jump = false + +# If disabled "use" key is used to fly fast if both fly and fast mode are enabled. +# type: bool +# always_fly_fast = true + +# The time in seconds it takes between repeated right clicks when holding the right mouse button. +# type: float +# repeat_rightclick_time = 0.25 + +# Enable random user input (only used for testing). +# type: bool +# random_input = false + +# Continuous forward movement (only used for testing). +# type: bool +# continuous_forward = false + +# Enable Joysticks +# type: bool +# enable_joysticks = false + +# The identifier of the joystick to use +# type: int +# joystick_id = 0 + +# The type of joystick +# type: enum values: auto, generic, xbox +# joystick_type = auto + +# The time in seconds it takes between repeated events +# when holding down a joystick button combination. +# type: float +# repeat_joystick_button_time = 0.17 + +# The sensitivity of the joystick axes for moving the +# ingame view frustum around. +# type: float +# joystick_frustum_sensitivity = 170 + +# Key for moving the player forward. +# See http://irrlicht.sourceforge.net/docu/namespaceirr.html#a54da2a0e231901735e3da1b0edf72eb3 +# type: key +# keymap_forward = KEY_KEY_W + +# Key for moving the player backward. +# See http://irrlicht.sourceforge.net/docu/namespaceirr.html#a54da2a0e231901735e3da1b0edf72eb3 +# type: key +# keymap_backward = KEY_KEY_S + +# Key for moving the player left. +# See http://irrlicht.sourceforge.net/docu/namespaceirr.html#a54da2a0e231901735e3da1b0edf72eb3 +# type: key +# keymap_left = KEY_KEY_A + +# Key for moving the player right. +# See http://irrlicht.sourceforge.net/docu/namespaceirr.html#a54da2a0e231901735e3da1b0edf72eb3 +# type: key +# keymap_right = KEY_KEY_D + +# Key for jumping. +# See http://irrlicht.sourceforge.net/docu/namespaceirr.html#a54da2a0e231901735e3da1b0edf72eb3 +# type: key +# keymap_jump = KEY_SPACE + +# Key for sneaking. +# Also used for climbing down and descending in water if aux1_descends is disabled. +# See http://irrlicht.sourceforge.net/docu/namespaceirr.html#a54da2a0e231901735e3da1b0edf72eb3 +# type: key +# keymap_sneak = KEY_LSHIFT + +# Key for opening the inventory. +# See http://irrlicht.sourceforge.net/docu/namespaceirr.html#a54da2a0e231901735e3da1b0edf72eb3 +# type: key +# keymap_inventory = KEY_KEY_I + +# Key for moving fast in fast mode. +# See http://irrlicht.sourceforge.net/docu/namespaceirr.html#a54da2a0e231901735e3da1b0edf72eb3 +# type: key +# keymap_special1 = KEY_KEY_E + +# Key for opening the chat window. +# See http://irrlicht.sourceforge.net/docu/namespaceirr.html#a54da2a0e231901735e3da1b0edf72eb3 +# type: key +# keymap_chat = KEY_KEY_T + +# Key for opening the chat window to type commands. +# See http://irrlicht.sourceforge.net/docu/namespaceirr.html#a54da2a0e231901735e3da1b0edf72eb3 +# type: key +# keymap_cmd = / + +# Key for opening the chat window to type local commands. +# See http://irrlicht.sourceforge.net/docu/namespaceirr.html#a54da2a0e231901735e3da1b0edf72eb3 +# type: key +# keymap_cmd_local = . + +# Key for toggling unlimited view range. +# See http://irrlicht.sourceforge.net/docu/namespaceirr.html#a54da2a0e231901735e3da1b0edf72eb3 +# type: key +# keymap_rangeselect = KEY_KEY_R + +# Key for toggling flying. +# See http://irrlicht.sourceforge.net/docu/namespaceirr.html#a54da2a0e231901735e3da1b0edf72eb3 +# type: key +# keymap_freemove = KEY_KEY_K + +# Key for toggling fast mode. +# See http://irrlicht.sourceforge.net/docu/namespaceirr.html#a54da2a0e231901735e3da1b0edf72eb3 +# type: key +# keymap_fastmove = KEY_KEY_J + +# Key for toggling noclip mode. +# See http://irrlicht.sourceforge.net/docu/namespaceirr.html#a54da2a0e231901735e3da1b0edf72eb3 +# type: key +# keymap_noclip = KEY_KEY_H + +# Key for selecting the next item in the hotbar. +# See http://irrlicht.sourceforge.net/docu/namespaceirr.html#a54da2a0e231901735e3da1b0edf72eb3 +# type: key +# keymap_hotbar_next = KEY_KEY_N + +# Key for selecting the previous item in the hotbar. +# See http://irrlicht.sourceforge.net/docu/namespaceirr.html#a54da2a0e231901735e3da1b0edf72eb3 +# type: key +# keymap_hotbar_previous = KEY_KEY_B + +# Key for muting the game. +# See http://irrlicht.sourceforge.net/docu/namespaceirr.html#a54da2a0e231901735e3da1b0edf72eb3 +# type: key +# keymap_mute = KEY_KEY_M + +# Key for increasing the volume. +# See http://irrlicht.sourceforge.net/docu/namespaceirr.html#a54da2a0e231901735e3da1b0edf72eb3 +# type: key +# keymap_increase_volume = + +# Key for decreasing the volume. +# See http://irrlicht.sourceforge.net/docu/namespaceirr.html#a54da2a0e231901735e3da1b0edf72eb3 +# type: key +# keymap_decrease_volume = + +# Key for toggling autorun. +# See http://irrlicht.sourceforge.net/docu/namespaceirr.html#a54da2a0e231901735e3da1b0edf72eb3 +# type: key +# keymap_autorun = + +# Key for toggling cinematic mode. +# See http://irrlicht.sourceforge.net/docu/namespaceirr.html#a54da2a0e231901735e3da1b0edf72eb3 +# type: key +# keymap_cinematic = + +# Key for toggling display of minimap. +# See http://irrlicht.sourceforge.net/docu/namespaceirr.html#a54da2a0e231901735e3da1b0edf72eb3 +# type: key +# keymap_minimap = KEY_F9 + +# Key for taking screenshots. +# See http://irrlicht.sourceforge.net/docu/namespaceirr.html#a54da2a0e231901735e3da1b0edf72eb3 +# type: key +# keymap_screenshot = KEY_F12 + +# Key for dropping the currently selected item. +# See http://irrlicht.sourceforge.net/docu/namespaceirr.html#a54da2a0e231901735e3da1b0edf72eb3 +# type: key +# keymap_drop = KEY_KEY_Q + +# Key to use view zoom when possible. +# See http://irrlicht.sourceforge.net/docu/namespaceirr.html#a54da2a0e231901735e3da1b0edf72eb3 +# type: key +# keymap_zoom = KEY_KEY_Z + +# Key for toggling the display of the HUD. +# See http://irrlicht.sourceforge.net/docu/namespaceirr.html#a54da2a0e231901735e3da1b0edf72eb3 +# type: key +# keymap_toggle_hud = KEY_F1 + +# Key for toggling the display of the chat. +# See http://irrlicht.sourceforge.net/docu/namespaceirr.html#a54da2a0e231901735e3da1b0edf72eb3 +# type: key +# keymap_toggle_chat = KEY_F2 + +# Key for toggling the display of the large chat console. +# See http://irrlicht.sourceforge.net/docu/namespaceirr.html#a54da2a0e231901735e3da1b0edf72eb3 +# type: key +# keymap_console = KEY_F10 + +# Key for toggling the display of the fog. +# See http://irrlicht.sourceforge.net/docu/namespaceirr.html#a54da2a0e231901735e3da1b0edf72eb3 +# type: key +# keymap_toggle_force_fog_off = KEY_F3 + +# Key for toggling the camera update. Only used for development +# See http://irrlicht.sourceforge.net/docu/namespaceirr.html#a54da2a0e231901735e3da1b0edf72eb3 +# type: key +# keymap_toggle_update_camera = + +# Key for toggling the display of debug info. +# See http://irrlicht.sourceforge.net/docu/namespaceirr.html#a54da2a0e231901735e3da1b0edf72eb3 +# type: key +# keymap_toggle_debug = KEY_F5 + +# Key for toggling the display of the profiler. Used for development. +# See http://irrlicht.sourceforge.net/docu/namespaceirr.html#a54da2a0e231901735e3da1b0edf72eb3 +# type: key +# keymap_toggle_profiler = KEY_F6 + +# Key for switching between first- and third-person camera. +# See http://irrlicht.sourceforge.net/docu/namespaceirr.html#a54da2a0e231901735e3da1b0edf72eb3 +# type: key +# keymap_camera_mode = KEY_F7 + +# Key for increasing the viewing range. +# See http://irrlicht.sourceforge.net/docu/namespaceirr.html#a54da2a0e231901735e3da1b0edf72eb3 +# type: key +# keymap_increase_viewing_range_min = + + +# Key for decreasing the viewing range. +# See http://irrlicht.sourceforge.net/docu/namespaceirr.html#a54da2a0e231901735e3da1b0edf72eb3 +# type: key +# keymap_decrease_viewing_range_min = - + +# Key for printing debug stacks. Used for development. +# See http://irrlicht.sourceforge.net/docu/namespaceirr.html#a54da2a0e231901735e3da1b0edf72eb3 +# type: key +# keymap_print_debug_stacks = KEY_KEY_P + +## Network + +# Address to connect to. +# Leave this blank to start a local server. +# Note that the address field in the main menu overrides this setting. +# type: string +# address = + +# Port to connect to (UDP). +# Note that the port field in the main menu overrides this setting. +# type: int min: 1 max: 65535 +# remote_port = 30000 + +# Whether to support older servers before protocol version 25. +# Enable if you want to connect to 0.4.12 servers and before. +# Servers starting with 0.4.13 will work, 0.4.12-dev servers may work. +# Disabling this option will protect your password better. +# type: bool +# send_pre_v25_init = false + +# Save the map received by the client on disk. +# type: bool +# enable_local_map_saving = false + +# Show entity selection boxes +# type: bool +# show_entity_selectionbox = true + +# Enable usage of remote media server (if provided by server). +# Remote servers offer a significantly faster way to download media (e.g. textures) +# when connecting to the server. +# type: bool +# enable_remote_media_server = true + +# Enable Lua modding support on client. +# This support is experimental and API can change. +# type: bool +# enable_client_modding = false + +# URL to the server list displayed in the Multiplayer Tab. +# type: string +# serverlist_url = servers.minetest.net + +# File in client/serverlist/ that contains your favorite servers displayed in the Multiplayer Tab. +# type: string +# serverlist_file = favoriteservers.txt + +# Maximum size of the out chat queue. 0 to disable queueing and -1 to make the queue size unlimited +# type: int +# max_out_chat_queue_size = 20 + +## Graphics + +### In-Game + +#### Basic + +# Enable VBO +# type: bool +# enable_vbo = true + +# Whether to fog out the end of the visible area. +# type: bool +# enable_fog = true + +# Leaves style: +# - Fancy: all faces visible +# - Simple: only outer faces, if defined special_tiles are used +# - Opaque: disable transparency +# type: enum values: fancy, simple, opaque +# leaves_style = fancy + +# Connects glass if supported by node. +# type: bool +# connected_glass = false + +# Enable smooth lighting with simple ambient occlusion. +# Disable for speed or for different looks. +# type: bool +# smooth_lighting = true + +# Clouds are a client side effect. +# type: bool +# enable_clouds = true + +# Use 3D cloud look instead of flat. +# type: bool +# enable_3d_clouds = true + +# Method used to highlight selected object. +# type: enum values: box, halo, none +# node_highlighting = box + +# Adds particles when digging a node. +# type: bool +# enable_particles = true + +#### Filtering + +# Use mip mapping to scale textures. May slightly increase performance. +# type: bool +# mip_map = false + +# Use anisotropic filtering when viewing at textures from an angle. +# type: bool +# anisotropic_filter = false + +# Use bilinear filtering when scaling textures. +# type: bool +# bilinear_filter = false + +# Use trilinear filtering when scaling textures. +# type: bool +# trilinear_filter = false + +# Filtered textures can blend RGB values with fully-transparent neighbors, +# which PNG optimizers usually discard, sometimes resulting in a dark or +# light edge to transparent textures. Apply this filter to clean that up +# at texture load time. +# type: bool +# texture_clean_transparent = false + +# When using bilinear/trilinear/anisotropic filters, low-resolution textures +# can be blurred, so automatically upscale them with nearest-neighbor +# interpolation to preserve crisp pixels. This sets the minimum texture size +# for the upscaled textures; higher values look sharper, but require more +# memory. Powers of 2 are recommended. Setting this higher than 1 may not +# have a visible effect unless bilinear/trilinear/anisotropic filtering is +# enabled. +# type: int +# texture_min_size = 64 + +# Experimental option, might cause visible spaces between blocks +# when set to higher number than 0. +# type: enum values: 0, 1, 2, 4, 8, 16 +# fsaa = 0 + +# Undersampling is similar to using lower screen resolution, but it applies +# to the game world only, keeping the GUI intact. +# It should give significant performance boost at the cost of less detailed image. +# type: enum values: 0, 2, 3, 4 +# undersampling = 0 + +#### Shaders + +# Shaders allow advanced visual effects and may increase performance on some video cards. +# This only works with the OpenGL video backend. +# type: bool +# enable_shaders = true + +# Path to shader directory. If no path is defined, default location will be used. +# type: path +# shader_path = + +##### Tone Mapping + +# Enables filmic tone mapping +# type: bool +# tone_mapping = false + +##### Bumpmapping + +# Enables bumpmapping for textures. Normalmaps need to be supplied by the texture pack +# or need to be auto-generated. +# Requires shaders to be enabled. +# type: bool +# enable_bumpmapping = false + +# Enables on the fly normalmap generation (Emboss effect). +# Requires bumpmapping to be enabled. +# type: bool +# generate_normalmaps = false + +# Strength of generated normalmaps. +# type: float +# normalmaps_strength = 0.6 + +# Defines sampling step of texture. +# A higher value results in smoother normal maps. +# type: int min: 0 max: 2 +# normalmaps_smooth = 0 + +##### Parallax Occlusion + +# Enables parallax occlusion mapping. +# Requires shaders to be enabled. +# type: bool +# enable_parallax_occlusion = false + +# 0 = parallax occlusion with slope information (faster). +# 1 = relief mapping (slower, more accurate). +# type: int min: 0 max: 1 +# parallax_occlusion_mode = 1 + +# Strength of parallax. +# type: float +# 3d_paralax_strength = 0.025 + +# Number of parallax occlusion iterations. +# type: int +# parallax_occlusion_iterations = 4 + +# Overall scale of parallax occlusion effect. +# type: float +# parallax_occlusion_scale = 0.08 + +# Overall bias of parallax occlusion effect, usually scale/2. +# type: float +# parallax_occlusion_bias = 0.04 + +##### Waving Nodes + +# Set to true enables waving water. +# Requires shaders to be enabled. +# type: bool +# enable_waving_water = false + +# type: float +# water_wave_height = 1.0 + +# type: float +# water_wave_length = 20.0 + +# type: float +# water_wave_speed = 5.0 + +# Set to true enables waving leaves. +# Requires shaders to be enabled. +# type: bool +# enable_waving_leaves = false + +# Set to true enables waving plants. +# Requires shaders to be enabled. +# type: bool +# enable_waving_plants = false + +#### Advanced + +# If FPS would go higher than this, limit it by sleeping +# to not waste CPU power for no benefit. +# type: int +# fps_max = 60 + +# Maximum FPS when game is paused. +# type: int +# pause_fps_max = 20 + +# View distance in nodes. +# type: int min: 20 max: 4000 +# viewing_range = 100 + +# Width component of the initial window size. +# type: int +# screenW = 800 + +# Height component of the initial window size. +# type: int +# screenH = 600 + +# Save window size automatically when modified. +# type: bool +# autosave_screensize = true + +# Fullscreen mode. +# type: bool +# fullscreen = false + +# Bits per pixel (aka color depth) in fullscreen mode. +# type: int +# fullscreen_bpp = 24 + +# Vertical screen synchronization. +# type: bool +# vsync = false + +# Field of view in degrees. +# type: int min: 30 max: 160 +# fov = 72 + +# Field of view while zooming in degrees. +# This requires the "zoom" privilege on the server. +# type: int min: 7 max: 160 +# zoom_fov = 15 + +# Adjust the gamma encoding for the light tables. Higher numbers are brighter. +# This setting is for the client only and is ignored by the server. +# type: float min: 1 max: 3 +# display_gamma = 2.2 + +# Path to texture directory. All textures are first searched from here. +# type: path +# texture_path = + +# The rendering back-end for Irrlicht. +# type: enum values: null, software, burningsvideo, direct3d8, direct3d9, opengl +# video_driver = opengl + +# Height on which clouds are appearing. +# type: int +# cloud_height = 120 + +# Radius of cloud area stated in number of 64 node cloud squares. +# Values larger than 26 will start to produce sharp cutoffs at cloud area corners. +# type: int +# cloud_radius = 12 + +# Enable view bobbing and amount of view bobbing. +# For example: 0 for no view bobbing; 1.0 for normal; 2.0 for double. +# type: float +# view_bobbing_amount = 1.0 + +# Multiplier for fall bobbing. +# For example: 0 for no view bobbing; 1.0 for normal; 2.0 for double. +# type: float +# fall_bobbing_amount = 0.0 + +# 3D support. +# Currently supported: +# - none: no 3d output. +# - anaglyph: cyan/magenta color 3d. +# - interlaced: odd/even line based polarisation screen support. +# - topbottom: split screen top/bottom. +# - sidebyside: split screen side by side. +# type: enum values: none, anaglyph, interlaced, topbottom, sidebyside +# 3d_mode = none + +# In-game chat console height, between 0.1 (10%) and 1.0 (100%). +# type: float min: 0.1 max: 1 +# console_height = 1.0 + +# In-game chat console background color (R,G,B). +# type: string +# console_color = (0,0,0) + +# In-game chat console background alpha (opaqueness, between 0 and 255). +# type: int min: 0 max: 255 +# console_alpha = 200 + +# Selection box border color (R,G,B). +# type: string +# selectionbox_color = (0,0,0) + +# Width of the selectionbox's lines around nodes. +# type: int min: 1 max: 5 +# selectionbox_width = 2 + +# Crosshair color (R,G,B). +# type: string +# crosshair_color = (255,255,255) + +# Crosshair alpha (opaqueness, between 0 and 255). +# type: int min: 0 max: 255 +# crosshair_alpha = 255 + +# Whether node texture animations should be desynchronized per mapblock. +# type: bool +# desynchronize_mapblock_texture_animation = true + +# Maximum proportion of current window to be used for hotbar. +# Useful if there's something to be displayed right or left of hotbar. +# type: float +# hud_hotbar_max_width = 1.0 + +# Modifies the size of the hudbar elements. +# type: float +# hud_scaling = 1.0 + +# Enables caching of facedir rotated meshes. +# type: bool +# enable_mesh_cache = false + +# Delay between mesh updates on the client in ms. Increasing this will slow +# down the rate of mesh updates, thus reducing jitter on slower clients. +# type: int min: 0 max: 50 +# mesh_generation_interval = 0 + +# Size of the MapBlock cache of the mesh generator. Increasing this will +# increase the cache hit %, reducing the data being copied from the main +# thread, thus reducing jitter. +# type: int min: 0 max: 1000 +# meshgen_block_cache_size = 20 + +# Enables minimap. +# type: bool +# enable_minimap = true + +# Shape of the minimap. Enabled = round, disabled = square. +# type: bool +# minimap_shape_round = true + +# True = 256 +# False = 128 +# Useable to make minimap smoother on slower machines. +# type: bool +# minimap_double_scan_height = true + +# Make fog and sky colors depend on daytime (dawn/sunset) and view direction. +# type: bool +# directional_colored_fog = true + +# The strength (darkness) of node ambient-occlusion shading. +# Lower is darker, Higher is lighter. The valid range of values for this +# setting is 0.25 to 4.0 inclusive. If the value is out of range it will be +# set to the nearest valid value. +# type: float min: 0.25 max: 4 +# ambient_occlusion_gamma = 2.2 + +# Enables animation of inventory items. +# type: bool +# inventory_items_animations = false + +# Android systems only: Tries to create inventory textures from meshes +# when no supported render was found. +# type: bool +# inventory_image_hack = false + +# Fraction of the visible distance at which fog starts to be rendered +# type: float min: 0 max: 0.99 +# fog_start = 0.4 + +# Makes all liquids opaque +# type: bool +# opaque_water = false + +### Menus + +# Use a cloud animation for the main menu background. +# type: bool +# menu_clouds = true + +# Scale gui by a user specified value. +# Use a nearest-neighbor-anti-alias filter to scale the GUI. +# This will smooth over some of the rough edges, and blend +# pixels when scaling down, at the cost of blurring some +# edge pixels when images are scaled by non-integer sizes. +# type: float +# gui_scaling = 1.0 + +# When gui_scaling_filter is true, all GUI images need to be +# filtered in software, but some images are generated directly +# to hardware (e.g. render-to-texture for nodes in inventory). +# type: bool +# gui_scaling_filter = false + +# When gui_scaling_filter_txr2img is true, copy those images +# from hardware to software for scaling. When false, fall back +# to the old scaling method, for video drivers that don't +# properly support downloading textures back from hardware. +# type: bool +# gui_scaling_filter_txr2img = true + +# Delay showing tooltips, stated in milliseconds. +# type: int +# tooltip_show_delay = 400 + +# Whether freetype fonts are used, requires freetype support to be compiled in. +# type: bool +# freetype = true + +# Path to TrueTypeFont or bitmap. +# type: path +# font_path = fonts/liberationsans.ttf + +# type: int +# font_size = 16 + +# Font shadow offset, if 0 then shadow will not be drawn. +# type: int +# font_shadow = 1 + +# Font shadow alpha (opaqueness, between 0 and 255). +# type: int min: 0 max: 255 +# font_shadow_alpha = 127 + +# type: path +# mono_font_path = fonts/Cousine-Regular.ttf + +# type: int +# mono_font_size = 15 + +# This font will be used for certain languages. +# type: path +# fallback_font_path = fonts/DroidSansFallbackFull.ttf + +# type: int +# fallback_font_size = 15 + +# type: int +# fallback_font_shadow = 1 + +# type: int min: 0 max: 255 +# fallback_font_shadow_alpha = 128 + +# Path to save screenshots at. +# type: path +# screenshot_path = + +# Format of screenshots. +# type: enum values: png, jpg, bmp, pcx, ppm, tga +# screenshot_format = png + +# Screenshot quality. Only used for JPEG format. +# 1 means worst quality; 100 means best quality. +# Use 0 for default quality. +# type: int min: 0 max: 100 +# screenshot_quality = 0 + +### Advanced + +# Adjust dpi configuration to your screen (non X11/Android only) e.g. for 4k screens. +# type: int +# screen_dpi = 72 + +# Windows systems only: Start Minetest with the command line window in the background. +# Contains the same information as the file debug.txt (default name). +# type: bool +# enable_console = false + +## Sound + +# type: bool +# enable_sound = true + +# type: float min: 0 max: 1 +# sound_volume = 0.7 + +## Advanced + +# Timeout for client to remove unused map data from memory. +# type: int +# client_unload_unused_data_timeout = 600 + +# Maximum number of mapblocks for client to be kept in memory. +# Set to -1 for unlimited amount. +# type: int +# client_mapblock_limit = 5000 + +# Whether to show the client debug info (has the same effect as hitting F5). +# type: bool +# show_debug = false + +# +# Server / Singleplayer +# + +# Name of the server, to be displayed when players join and in the serverlist. +# type: string +# server_name = Minetest server + +# Description of server, to be displayed when players join and in the serverlist. +# type: string +# server_description = mine here + +# Domain name of server, to be displayed in the serverlist. +# type: string +# server_address = game.minetest.net + +# Homepage of server, to be displayed in the serverlist. +# type: string +# server_url = http://minetest.net + +# Automaticaly report to the serverlist. +# type: bool +# server_announce = false + +# Announce to this serverlist. +# If you want to announce your ipv6 address, use serverlist_url = v6.servers.minetest.net. +# type: string +# serverlist_url = servers.minetest.net + +# Remove color codes from incoming chat messages +# Use this to stop players from being able to use color in their messages +# type: bool +# strip_color_codes = false + +## Network + +# Network port to listen (UDP). +# This value will be overridden when starting from the main menu. +# type: int +# port = 30000 + +# The network interface that the server listens on. +# type: string +# bind_address = + +# Enable to disallow old clients from connecting. +# Older clients are compatible in the sense that they will not crash when connecting +# to new servers, but they may not support all new features that you are expecting. +# type: bool +# strict_protocol_version_checking = false + +# Specifies URL from which client fetches media instead of using UDP. +# $filename should be accessible from $remote_media$filename via cURL +# (obviously, remote_media should end with a slash). +# Files that are not present will be fetched the usual way. +# type: string +# remote_media = + +# Enable/disable running an IPv6 server. An IPv6 server may be restricted +# to IPv6 clients, depending on system configuration. +# Ignored if bind_address is set. +# type: bool +# ipv6_server = false + +### Advanced + +# Maximum number of blocks that are simultaneously sent per client. +# type: int +# max_simultaneous_block_sends_per_client = 10 + +# Maximum number of blocks that are simultaneously sent in total. +# type: int +# max_simultaneous_block_sends_server_total = 40 + +# To reduce lag, block transfers are slowed down when a player is building something. +# This determines how long they are slowed down after placing or removing a node. +# type: float +# full_block_send_enable_min_time_from_building = 2.0 + +# Maximum number of packets sent per send step, if you have a slow connection +# try reducing it, but don't reduce it to a number below double of targeted +# client number. +# type: int +# max_packets_per_iteration = 1024 + +## Game + +# Default game when creating a new world. +# This will be overridden when creating a world from the main menu. +# type: string +# default_game = minetest + +# Message of the day displayed to players connecting. +# type: string +# motd = + +# Maximum number of players that can connect simultaneously. +# type: int +# max_users = 15 + +# World directory (everything in the world is stored here). +# Not needed if starting from the main menu. +# type: path +# map-dir = + +# Time in seconds for item entity (dropped items) to live. +# Setting it to -1 disables the feature. +# type: int +# item_entity_ttl = 900 + +# If enabled, show the server status message on player connection. +# type: bool +# show_statusline_on_connect = true + +# Enable players getting damage and dying. +# type: bool +# enable_damage = false + +# Enable creative mode for new created maps. +# type: bool +# creative_mode = false + +# A chosen map seed for a new map, leave empty for random. +# Will be overridden when creating a new world in the main menu. +# type: string +# fixed_map_seed = + +# New users need to input this password. +# type: string +# default_password = + +# The privileges that new users automatically get. +# See /privs in game for a full list on your server and mod configuration. +# type: string +# default_privs = interact, shout + +# Privileges that players with basic_privs can grant +# type: string +# basic_privs = interact, shout + +# Whether players are shown to clients without any range limit. +# Deprecated, use the setting player_transfer_distance instead. +# type: bool +# unlimited_player_transfer_distance = true + +# Defines the maximal player transfer distance in blocks (0 = unlimited). +# type: int +# player_transfer_distance = 0 + +# Whether to allow players to damage and kill each other. +# type: bool +# enable_pvp = true + +# If this is set, players will always (re)spawn at the given position. +# type: string +# static_spawnpoint = + +# If enabled, new players cannot join with an empty password. +# type: bool +# disallow_empty_password = false + +# If enabled, disable cheat prevention in multiplayer. +# type: bool +# disable_anticheat = false + +# If enabled, actions are recorded for rollback. +# This option is only read when server starts. +# type: bool +# enable_rollback_recording = false + +# A message to be displayed to all clients when the server shuts down. +# type: string +# kick_msg_shutdown = Server shutting down. + +# A message to be displayed to all clients when the server crashes. +# type: string +# kick_msg_crash = This server has experienced an internal error. You will now be disconnected. + +# Whether to ask clients to reconnect after a (Lua) crash. +# Set this to true if your server is set up to restart automatically. +# type: bool +# ask_reconnect_on_crash = false + +# From how far clients know about objects, stated in mapblocks (16 nodes). +# type: int +# active_object_send_range_blocks = 3 + +# How large area of blocks are subject to the active block stuff, stated in mapblocks (16 nodes). +# In active blocks objects are loaded and ABMs run. +# type: int +# active_block_range = 3 + +# From how far blocks are sent to clients, stated in mapblocks (16 nodes). +# type: int +# max_block_send_distance = 10 + +# Maximum number of forceloaded mapblocks. +# type: int +# max_forceloaded_blocks = 16 + +# Interval of sending time of day to clients. +# type: int +# time_send_interval = 5 + +# Controls length of day/night cycle. +# Examples: 72 = 20min, 360 = 4min, 1 = 24hour, 0 = day/night/whatever stays unchanged. +# type: int +# time_speed = 72 + +# Interval of saving important changes in the world, stated in seconds. +# type: float +# server_map_save_interval = 5.3 + +### Physics + +# type: float +# movement_acceleration_default = 3 + +# type: float +# movement_acceleration_air = 2 + +# type: float +# movement_acceleration_fast = 10 + +# type: float +# movement_speed_walk = 4 + +# type: float +# movement_speed_crouch = 1.35 + +# type: float +# movement_speed_fast = 20 + +# type: float +# movement_speed_climb = 3 + +# type: float +# movement_speed_jump = 6.5 + +# type: float +# movement_liquid_fluidity = 1 + +# type: float +# movement_liquid_fluidity_smooth = 0.5 + +# type: float +# movement_liquid_sink = 10 + +# type: float +# movement_gravity = 9.81 + +### Advanced + +# Handling for deprecated lua api calls: +# - legacy: (try to) mimic old behaviour (default for release). +# - log: mimic and log backtrace of deprecated call (default for debug). +# - error: abort on usage of deprecated call (suggested for mod developers). +# type: enum values: legacy, log, error +# deprecated_lua_api_handling = legacy + +# Number of extra blocks that can be loaded by /clearobjects at once. +# This is a trade-off between sqlite transaction overhead and +# memory consumption (4096=100MB, as a rule of thumb). +# type: int +# max_clearobjects_extra_loaded_blocks = 4096 + +# How much the server will wait before unloading unused mapblocks. +# Higher value is smoother, but will use more RAM. +# type: int +# server_unload_unused_data_timeout = 29 + +# Maximum number of statically stored objects in a block. +# type: int +# max_objects_per_block = 64 + +# See http://www.sqlite.org/pragma.html#pragma_synchronous +# type: enum values: 0, 1, 2 +# sqlite_synchronous = 2 + +# Length of a server tick and the interval at which objects are generally updated over network. +# type: float +# dedicated_server_step = 0.1 + +# Maxumim number of players to process per step, see `minetest.register_playerstep` +# type: int +# players_per_globalstep = 20 + +# Time in between active block management cycles +# type: float +# active_block_mgmt_interval = 2.0 + +# Length of time between ABM execution cycles +# type: float +# abm_interval = 1.0 + +# Length of time between NodeTimer execution cycles +# type: float +# nodetimer_interval = 0.2 + +# If enabled, invalid world data won't cause the server to shut down. +# Only enable this if you know what you are doing. +# type: bool +# ignore_world_load_errors = false + +# Max liquids processed per step. +# type: int +# liquid_loop_max = 100000 + +# The time (in seconds) that the liquids queue may grow beyond processing +# capacity until an attempt is made to decrease its size by dumping old queue +# items. A value of 0 disables the functionality. +# type: int +# liquid_queue_purge_time = 0 + +# Liquid update interval in seconds. +# type: float +# liquid_update = 1.0 + +# At this distance the server will aggressively optimize which blocks are sent to clients. +# Small values potentially improve performance a lot, at the expense of visible rendering glitches. +# (some blocks will not be rendered under water and in caves, as well as sometimes on land) +# Setting this to a value greater than max_block_send_distance disables this optimization. +# Stated in mapblocks (16 nodes) +# type: int min: 2 +# block_send_optimize_distance = 4 + +# If enabled the server will perform map block occlusion culling based on +# on the eye position of the player. This can reduce the number of blocks +# sent to the client 50-80%. The client will not longer receive most invisible +# so that the utility of noclip mode is reduced. +# type: bool +# server_side_occlusion_culling = true + +## Mapgen + +# Available map generators, can be used to restrict mapgens unsuitable +# for specific platforms and devices + +# mapgens_available = v6, v7p, flat + +# Name of map generator to be used when creating a new world. +# Creating a world in the main menu will override this. +# type: enum values: v5, v6, v7, flat, valleys, fractal, singlenode +# mg_name = v7 + +# Water surface level of the world. +# type: int +# water_level = 1 + +# From how far blocks are generated for clients, stated in mapblocks (16 nodes). +# type: int +# max_block_generate_distance = 6 + +# Limit of map generation, in nodes, in all 6 directions from (0, 0, 0). +# Only mapchunks completely within the mapgen limit are generated. +# Value is stored per-world. +# type: int min: 0 max: 31000 +# mapgen_limit = 31000 + +# Global map generation attributes. +# In Mapgen v6 the 'decorations' flag controls all decorations except trees +# and junglegrass, in all other mapgens this flag controls all decorations. +# Flags that are not specified in the flag string are not modified from the default. +# Flags starting with 'no' are used to explicitly disable them. +# type: flags possible values: caves, dungeons, light, decorations, nocaves, nodungeons, nolight, nodecorations +# mg_flags = caves,dungeons,light,decorations + +# Whether dungeons occasionally project from the terrain. +# type: bool +# projecting_dungeons = true + +### Advanced + +# Size of chunks to be generated at once by mapgen, stated in mapblocks (16 nodes). +# type: int +# chunksize = 5 + +# Dump the mapgen debug infos. +# type: bool +# enable_mapgen_debug_info = false + +# Maximum number of blocks that can be queued for loading. +# type: int +# emergequeue_limit_total = 256 + +# Maximum number of blocks to be queued that are to be loaded from file. +# Set to blank for an appropriate amount to be chosen automatically. +# type: int +# emergequeue_limit_diskonly = 32 + +# Maximum number of blocks to be queued that are to be generated. +# Set to blank for an appropriate amount to be chosen automatically. +# type: int +# emergequeue_limit_generate = 32 + +# Number of emerge threads to use. Make this field blank, or increase this number +# to use multiple threads. On multiprocessor systems, this will improve mapgen speed greatly +# at the cost of slightly buggy caves. +# type: int +# num_emerge_threads = 1 + +#### Biome API temperature and humidity noise parameters + +# Temperature variation for biomes. +# type: noise_params +# mg_biome_np_heat = 50, 50, (1000, 1000, 1000), 5349, 3, 0.5, 2.0 + +# Small-scale temperature variation for blending biomes on borders. +# type: noise_params +# mg_biome_np_heat_blend = 0, 1.5, (8, 8, 8), 13, 2, 1.0, 2.0 + +# Humidity variation for biomes. +# type: noise_params +# mg_biome_np_humidity = 50, 50, (1000, 1000, 1000), 842, 3, 0.5, 2.0 + +# Small-scale humidity variation for blending biomes on borders. +# type: noise_params +# mg_biome_np_humidity_blend = 0, 1.5, (8, 8, 8), 90003, 2, 1.0, 2.0 + +#### Mapgen v5 + +# Map generation attributes specific to Mapgen v5. +# Flags that are not specified in the flag string are not modified from the default. +# Flags starting with 'no' are used to explicitly disable them. +# type: flags possible values: caverns, nocaverns +# mgv5_spflags = caverns + +# Controls width of tunnels, a smaller value creates wider tunnels. +# type: float +# mgv5_cave_width = 0.125 + +# Y-level of cavern upper limit. +# type: int +# mgv5_cavern_limit = -256 + +# Y-distance over which caverns expand to full size. +# type: int +# mgv5_cavern_taper = 256 + +# Defines full size of caverns, smaller values create larger caverns. +# type: float +# mgv5_cavern_threshold = 0.7 + +# Variation of biome filler depth. +# type: noise_params +# mgv5_np_filler_depth = 0, 1, (150, 150, 150), 261, 4, 0.7, 2.0 + +# Variation of terrain vertical scale. +# When noise is < -0.55 terrain is near-flat. +# type: noise_params +# mgv5_np_factor = 0, 1, (250, 250, 250), 920381, 3, 0.45, 2.0 + +# Y-level of average terrain surface. +# type: noise_params +# mgv5_np_height = 0, 10, (250, 250, 250), 84174, 4, 0.5, 2.0 + +# First of 2 3D noises that together define tunnels. +# type: noise_params +# mgv5_np_cave1 = 0, 12, (50, 50, 50), 52534, 4, 0.5, 2.0 + +# Second of 2 3D noises that together define tunnels. +# type: noise_params +# mgv5_np_cave2 = 0, 12, (50, 50, 50), 10325, 4, 0.5, 2.0 + +# 3D noise defining giant caverns. +# type: noise_params +# mgv5_np_cavern = 0, 1, (384, 128, 384), 723, 5, 0.63, 2.0 + +#### Mapgen v6 + +# Map generation attributes specific to Mapgen v6. +# The 'snowbiomes' flag enables the new 5 biome system. +# When the new biome system is enabled jungles are automatically enabled and +# the 'jungles' flag is ignored. +# Flags that are not specified in the flag string are not modified from the default. +# Flags starting with 'no' are used to explicitly disable them. +# type: flags possible values: jungles, biomeblend, mudflow, snowbiomes, flat, trees, nojungles, nobiomeblend, nomudflow, nosnowbiomes, noflat, notrees +# mgv6_spflags = jungles,biomeblend,mudflow,snowbiomes,trees + +# Deserts occur when np_biome exceeds this value. +# When the new biome system is enabled, this is ignored. +# type: float +# mgv6_freq_desert = 0.45 + +# Sandy beaches occur when np_beach exceeds this value. +# type: float +# mgv6_freq_beach = 0.15 + +# Y-level of lower terrain and lakebeds. +# type: noise_params +# mgv6_np_terrain_base = -4, 20, (250, 250, 250), 82341, 5, 0.6, 2.0 + +# Y-level of higher (cliff-top) terrain. +# type: noise_params +# mgv6_np_terrain_higher = 20, 16, (500, 500, 500), 85039, 5, 0.6, 2.0 + +# Varies steepness of cliffs. +# type: noise_params +# mgv6_np_steepness = 0.85, 0.5, (125, 125, 125), -932, 5, 0.7, 2.0 + +# Defines areas of 'terrain_higher' (cliff-top terrain). +# type: noise_params +# mgv6_np_height_select = 0.5, 1, (250, 250, 250), 4213, 5, 0.69, 2.0 + +# Varies depth of biome surface nodes. +# type: noise_params +# mgv6_np_mud = 4, 2, (200, 200, 200), 91013, 3, 0.55, 2.0 + +# Defines areas with sandy beaches. +# type: noise_params +# mgv6_np_beach = 0, 1, (250, 250, 250), 59420, 3, 0.50, 2.0 + +# Temperature variation for biomes. +# type: noise_params +# mgv6_np_biome = 0, 1, (500, 500, 500), 9130, 3, 0.50, 2.0 + +# Variation of number of caves. +# type: noise_params +# mgv6_np_cave = 6, 6, (250, 250, 250), 34329, 3, 0.50, 2.0 + +# Humidity variation for biomes. +# type: noise_params +# mgv6_np_humidity = 0.5, 0.5, (500, 500, 500), 72384, 3, 0.50, 2.0 + +# Defines tree areas and tree density. +# type: noise_params +# mgv6_np_trees = 0, 1, (125, 125, 125), 2, 4, 0.66, 2.0 + +# Defines areas where trees have apples. +# type: noise_params +# mgv6_np_apple_trees = 0, 1, (100, 100, 100), 342902, 3, 0.45, 2.0 + +#### Mapgen v7 + +# Map generation attributes specific to Mapgen v7. +# The 'ridges' flag enables the rivers. +# Floatlands are currently experimental and subject to change. +# Flags that are not specified in the flag string are not modified from the default. +# Flags starting with 'no' are used to explicitly disable them. +# type: flags possible values: mountains, ridges, floatlands, caverns, nomountains, noridges, nofloatlands, nocaverns +# mgv7_spflags = mountains,ridges,nofloatlands,caverns + +# Controls width of tunnels, a smaller value creates wider tunnels. +# type: float +# mgv7_cave_width = 0.09 + +# Controls the density of floatland mountain terrain. +# Is an offset added to the 'np_mountain' noise value. +# type: float +# mgv7_float_mount_density = 0.6 + +# Typical maximum height, above and below midpoint, of floatland mountain terrain. +# type: float +# mgv7_float_mount_height = 128.0 + +# Y-level of floatland midpoint and lake surface. +# type: int +# mgv7_floatland_level = 1280 + +# Y-level to which floatland shadows extend. +# type: int +# mgv7_shadow_limit = 1024 + +# Y-level of cavern upper limit. +# type: int +# mgv7_cavern_limit = -256 + +# Y-distance over which caverns expand to full size. +# type: int +# mgv7_cavern_taper = 256 + +# Defines full size of caverns, smaller values create larger caverns. +# type: float +# mgv7_cavern_threshold = 0.7 + +# Y-level of higher (cliff-top) terrain. +# type: noise_params +# mgv7_np_terrain_base = 4, 70, (600, 600, 600), 82341, 5, 0.6, 2.0 + +# Y-level of lower terrain and lakebeds. +# type: noise_params +# mgv7_np_terrain_alt = 4, 25, (600, 600, 600), 5934, 5, 0.6, 2.0 + +# Varies roughness of terrain. +# Defines the 'persistence' value for terrain_base and terrain_alt noises. +# type: noise_params +# mgv7_np_terrain_persist = 0.6, 0.1, (2000, 2000, 2000), 539, 3, 0.6, 2.0 + +# Defines areas of higher (cliff-top) terrain and affects steepness of cliffs. +# type: noise_params +# mgv7_np_height_select = -8, 16, (500, 500, 500), 4213, 6, 0.7, 2.0 + +# Variation of biome filler depth. +# type: noise_params +# mgv7_np_filler_depth = 0, 1.2, (150, 150, 150), 261, 3, 0.7, 2.0 + +# Variation of maximum mountain height (in nodes). +# type: noise_params +# mgv7_np_mount_height = 256, 112, (1000, 1000, 1000), 72449, 3, 0.6, 2.0 + +# Defines large-scale river channel structure. +# type: noise_params +# mgv7_np_ridge_uwater = 0, 1, (1000, 1000, 1000), 85039, 5, 0.6, 2.0 + +# Defines areas of floatland smooth terrain. +# Smooth floatlands occur when noise > 0. +# type: noise_params +# mgv7_np_floatland_base = -0.6, 1.5, (600, 600, 600), 114, 5, 0.6, 2.0 + +# Variation of hill height and lake depth on floatland smooth terrain. +# type: noise_params +# mgv7_np_float_base_height = 48, 24, (300, 300, 300), 907, 4, 0.7, 2.0 + +# 3D noise defining mountain structure and height. +# Also defines structure of floatland mountain terrain. +# type: noise_params +# mgv7_np_mountain = -0.6, 1, (250, 350, 250), 5333, 5, 0.63, 2.0 + +# 3D noise defining structure of river canyon walls. +# type: noise_params +# mgv7_np_ridge = 0, 1, (100, 100, 100), 6467, 4, 0.75, 2.0 + +# 3D noise defining giant caverns. +# type: noise_params +# mgv7_np_cavern = 0, 1, (384, 128, 384), 723, 5, 0.63, 2.0 + +# First of 2 3D noises that together define tunnels. +# type: noise_params +# mgv7_np_cave1 = 0, 12, (61, 61, 61), 52534, 3, 0.5, 2.0 + +# Second of 2 3D noises that together define tunnels. +# type: noise_params +# mgv7_np_cave2 = 0, 12, (67, 67, 67), 10325, 3, 0.5, 2.0 + +#### Mapgen flat + +# Map generation attributes specific to Mapgen flat. +# Occasional lakes and hills can be added to the flat world. +# Flags that are not specified in the flag string are not modified from the default. +# Flags starting with 'no' are used to explicitly disable them. +# type: flags possible values: lakes, hills, nolakes, nohills +# mgflat_spflags = nolakes,nohills + +# Y of flat ground. +# type: int +# mgflat_ground_level = 8 + +# Y of upper limit of large pseudorandom caves. +# type: int +# mgflat_large_cave_depth = -33 + +# Controls width of tunnels, a smaller value creates wider tunnels. +# type: float +# mgflat_cave_width = 0.09 + +# Terrain noise threshold for lakes. +# Controls proportion of world area covered by lakes. +# Adjust towards 0.0 for a larger proportion. +# type: float +# mgflat_lake_threshold = -0.45 + +# Controls steepness/depth of lake depressions. +# type: float +# mgflat_lake_steepness = 48.0 + +# Terrain noise threshold for hills. +# Controls proportion of world area covered by hills. +# Adjust towards 0.0 for a larger proportion. +# type: float +# mgflat_hill_threshold = 0.45 + +# Controls steepness/height of hills. +# type: float +# mgflat_hill_steepness = 64.0 + +# Defines location and terrain of optional hills and lakes. +# type: noise_params +# mgflat_np_terrain = 0, 1, (600, 600, 600), 7244, 5, 0.6, 2.0 + +# Variation of biome filler depth. +# type: noise_params +# mgflat_np_filler_depth = 0, 1.2, (150, 150, 150), 261, 3, 0.7, 2.0 + +# First of 2 3D noises that together define tunnels. +# type: noise_params +# mgflat_np_cave1 = 0, 12, (61, 61, 61), 52534, 3, 0.5, 2.0 + +# Second of 2 3D noises that together define tunnels. +# type: noise_params +# mgflat_np_cave2 = 0, 12, (67, 67, 67), 10325, 3, 0.5, 2.0 + +#### Mapgen fractal + +# Controls width of tunnels, a smaller value creates wider tunnels. +# type: float +# mgfractal_cave_width = 0.09 + +# Choice of 18 fractals from 9 formulas. +# 1 = 4D "Roundy" mandelbrot set. +# 2 = 4D "Roundy" julia set. +# 3 = 4D "Squarry" mandelbrot set. +# 4 = 4D "Squarry" julia set. +# 5 = 4D "Mandy Cousin" mandelbrot set. +# 6 = 4D "Mandy Cousin" julia set. +# 7 = 4D "Variation" mandelbrot set. +# 8 = 4D "Variation" julia set. +# 9 = 3D "Mandelbrot/Mandelbar" mandelbrot set. +# 10 = 3D "Mandelbrot/Mandelbar" julia set. +# 11 = 3D "Christmas Tree" mandelbrot set. +# 12 = 3D "Christmas Tree" julia set. +# 13 = 3D "Mandelbulb" mandelbrot set. +# 14 = 3D "Mandelbulb" julia set. +# 15 = 3D "Cosine Mandelbulb" mandelbrot set. +# 16 = 3D "Cosine Mandelbulb" julia set. +# 17 = 4D "Mandelbulb" mandelbrot set. +# 18 = 4D "Mandelbulb" julia set. +# type: int min: 1 max: 18 +# mgfractal_fractal = 1 + +# Iterations of the recursive function. +# Controls the amount of fine detail. +# type: int +# mgfractal_iterations = 11 + +# Approximate (X,Y,Z) scale of fractal in nodes. +# type: v3f +# mgfractal_scale = (4096.0, 1024.0, 4096.0) + +# (X,Y,Z) offset of fractal from world centre in units of 'scale'. +# Used to move a suitable spawn area of low land close to (0, 0). +# The default is suitable for mandelbrot sets, it needs to be edited for julia sets. +# Range roughly -2 to 2. Multiply by 'scale' for offset in nodes. +# type: v3f +# mgfractal_offset = (1.79, 0.0, 0.0) + +# W co-ordinate of the generated 3D slice of a 4D fractal. +# Determines which 3D slice of the 4D shape is generated. +# Has no effect on 3D fractals. +# Range roughly -2 to 2. +# type: float +# mgfractal_slice_w = 0.0 + +# Julia set only: X component of hypercomplex constant determining julia shape. +# Range roughly -2 to 2. +# type: float +# mgfractal_julia_x = 0.33 + +# Julia set only: Y component of hypercomplex constant determining julia shape. +# Range roughly -2 to 2. +# type: float +# mgfractal_julia_y = 0.33 + +# Julia set only: Z component of hypercomplex constant determining julia shape. +# Range roughly -2 to 2. +# type: float +# mgfractal_julia_z = 0.33 + +# Julia set only: W component of hypercomplex constant determining julia shape. +# Has no effect on 3D fractals. +# Range roughly -2 to 2. +# type: float +# mgfractal_julia_w = 0.33 + +# Y-level of seabed. +# type: noise_params +# mgfractal_np_seabed = -14, 9, (600, 600, 600), 41900, 5, 0.6, 2.0 + +# Variation of biome filler depth. +# type: noise_params +# mgfractal_np_filler_depth = 0, 1.2, (150, 150, 150), 261, 3, 0.7, 2.0 + +# First of 2 3D noises that together define tunnels. +# type: noise_params +# mgfractal_np_cave1 = 0, 12, (61, 61, 61), 52534, 3, 0.5, 2.0 + +# Second of 2 3D noises that together define tunnels. +# type: noise_params +# mgfractal_np_cave2 = 0, 12, (67, 67, 67), 10325, 3, 0.5, 2.0 + +#### Mapgen Valleys + +##### General + +# Map generation attributes specific to Mapgen Valleys. +# 'altitude_chill' makes higher elevations colder, which may cause biome issues. +# 'humid_rivers' modifies the humidity around rivers and in areas where water would tend to pool, +# it may interfere with delicately adjusted biomes. +# Flags that are not specified in the flag string are not modified from the default. +# Flags starting with 'no' are used to explicitly disable them. +# type: flags possible values: altitude_chill, noaltitude_chill, humid_rivers, nohumid_rivers +# mg_valleys_spflags = altitude_chill,humid_rivers + +# The altitude at which temperature drops by 20C +# type: int +# mgvalleys_altitude_chill = 90 + +# Depth below which you'll find large caves. +# type: int +# mgvalleys_large_cave_depth = -33 + +# Creates unpredictable lava features in caves. +# These can make mining difficult. Zero disables them. (0-10) +# type: int +# mgvalleys_lava_features = 0 + +# Depth below which you'll find massive caves. +# type: int +# mgvalleys_massive_cave_depth = -256 + +# How deep to make rivers +# type: int +# mgvalleys_river_depth = 4 + +# How wide to make rivers +# type: int +# mgvalleys_river_size = 5 + +# Creates unpredictable water features in caves. +# These can make mining difficult. Zero disables them. (0-10) +# type: int +# mgvalleys_water_features = 0 + +# Controls width of tunnels, a smaller value creates wider tunnels. +# type: float +# mgvalleys_cave_width = 0.09 + +##### Noises + +# Caves and tunnels form at the intersection of the two noises +# type: noise_params +# mgvalleys_np_cave1 = 0, 12, (61, 61, 61), 52534, 3, 0.5, 2.0 + +# Caves and tunnels form at the intersection of the two noises +# type: noise_params +# mgvalleys_np_cave2 = 0, 12, (67, 67, 67), 10325, 3, 0.5, 2.0 + +# The depth of dirt or other filler +# type: noise_params +# mgvalleys_np_filler_depth = 0, 1.2, (256, 256, 256), 1605, 3, 0.5, 2.0 + +# Massive caves form here. +# type: noise_params +# mgvalleys_np_massive_caves = 0, 1, (768, 256, 768), 59033, 6, 0.63, 2.0 + +# River noise -- rivers occur close to zero +# type: noise_params +# mgvalleys_np_rivers = 0, 1, (256, 256, 256), -6050, 5, 0.6, 2.0 + +# Base terrain height +# type: noise_params +# mgvalleys_np_terrain_height = -10, 50, (1024, 1024, 1024), 5202, 6, 0.4, 2.0 + +# Raises terrain to make valleys around the rivers +# type: noise_params +# mgvalleys_np_valley_depth = 5, 4, (512, 512, 512), -1914, 1, 1.0, 2.0 + +# Slope and fill work together to modify the heights +# type: noise_params +# mgvalleys_np_inter_valley_fill = 0, 1, (256, 512, 256), 1993, 6, 0.8, 2.0 + +# Amplifies the valleys +# type: noise_params +# mgvalleys_np_valley_profile = 0.6, 0.5, (512, 512, 512), 777, 1, 1.0, 2.0 + +# Slope and fill work together to modify the heights +# type: noise_params +# mgvalleys_np_inter_valley_slope = 0.5, 0.5, (128, 128, 128), 746, 1, 1.0, 2.0 + +## Security + +# Prevent mods from doing insecure things like running shell commands. +# type: bool +# secure.enable_security = true + +# Comma-separated list of trusted mods that are allowed to access insecure +# functions even when mod security is on (via request_insecure_environment()). +# type: string +# secure.trusted_mods = + +# Comma-separated list of mods that are allowed to access HTTP APIs, which +# allow them to upload and download data to/from the internet. +# type: string +# secure.http_mods = + +## Advanced + +### Profiling + +# Load the game profiler to collect game profiling data. +# Provides a /profiler command to access the compiled profile. +# Useful for mod developers and server operators. +# type: bool +# profiler.load = false + +# The default format in which profiles are being saved, +# when calling `/profiler save [format]` without format. +# type: enum values: txt, csv, lua, json, json_pretty +# profiler.default_report_format = txt + +# The file path relative to your worldpath in which profiles will be saved to. +# type: string +# profiler.report_path = "" + +#### Instrumentation + +# Instrument the methods of entities on registration. +# type: bool +# instrument.entity = true + +# Instrument the action function of Active Block Modifiers on registration. +# type: bool +# instrument.abm = true + +# Instrument the action function of Loading Block Modifiers on registration. +# type: bool +# instrument.lbm = true + +# Instrument chatcommands on registration. +# type: bool +# instrument.chatcommand = true + +# Instrument global callback functions on registration. +# (anything you pass to a minetest.register_*() function) +# type: bool +# instrument.global_callback = true + +##### Advanced + +# Instrument builtin. +# This is usually only needed by core/builtin contributors +# type: bool +# instrument.builtin = false + +# Have the profiler instrument itself: +# * Instrument an empty function. +# This estimates the overhead, that instrumentation is adding (+1 function call). +# * Instrument the sampler being used to update the statistics. +# type: bool +# instrument.profiler = false + +# +# Client and Server +# + +# Name of the player. +# When running a server, clients connecting with this name are admins. +# When starting from the main menu, this is overridden. +# type: string +# name = + +# Set the language. Leave empty to use the system language. +# A restart is required after changing this. +# type: enum values: , be, ca, cs, da, de, en, eo, es, et, fr, he, hu, id, it, ja, jbo, ko, ky, lt, nb, nl, pl, pt, pt_BR, ro, ru, sr_Cyrl, tr, uk, zh_CN, zh_TW +# language = + +# Level of logging to be written to debug.txt: +# - (no logging) +# - none (messages with no level) +# - error +# - warning +# - action +# - info +# - verbose +# type: enum values: , none, error, warning, action, info, verbose +# debug_log_level = action + +# IPv6 support. +# type: bool +# enable_ipv6 = true + +## Advanced + +# Default timeout for cURL, stated in milliseconds. +# Only has an effect if compiled with cURL. +# type: int +# curl_timeout = 5000 + +# Limits number of parallel HTTP requests. Affects: +# - Media fetch if server uses remote_media setting. +# - Serverlist download and server announcement. +# - Downloads performed by main menu (e.g. mod manager). +# Only has an effect if compiled with cURL. +# type: int +# curl_parallel_limit = 8 + +# Maximum time in ms a file download (e.g. a mod download) may take. +# type: int +# curl_file_download_timeout = 300000 + +# Makes DirectX work with LuaJIT. Disable if it causes troubles. +# type: bool +# high_precision_fpu = true + +# Replaces the default main menu with a custom one. +# type: string +# main_menu_script = + +# type: int +# main_menu_game_mgr = 0 + +# type: int +# main_menu_mod_mgr = 1 + +# type: string +# modstore_download_url = https://forum.minetest.net/media/ + +# type: string +# modstore_listmods_url = https://forum.minetest.net/mmdb/mods/ + +# type: string +# modstore_details_url = https://forum.minetest.net/mmdb/mod/*/ + +# Print the engine's profiling data in regular intervals (in seconds). 0 = disable. Useful for developers. +# type: int +# profiler_print_interval = 0 + diff --git a/build/WindowsApp/README.txt b/build/WindowsApp/README.txt index 1f531243d..186166786 100644 --- a/build/WindowsApp/README.txt +++ b/build/WindowsApp/README.txt @@ -2,6 +2,6 @@ Instructions: 1) on Linux: sudo apt install unzip zip gettext cmake p7zip-full 2) on Windows: install DesktopAppConverter and the Windows 10 SDK 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 -6) Run the .bat file as Administrator to generate an Appx package +6) Run the .bat file as Administrator to generate an Appx package \ No newline at end of file diff --git a/build/WindowsApp/build.sh b/build/WindowsApp/build.sh index 2c6f4bed7..8828c5655 100755 --- a/build/WindowsApp/build.sh +++ b/build/WindowsApp/build.sh @@ -18,7 +18,7 @@ export PATH="$mingw/bin:$PATH" EXISTING_DIR=$PWD/../.. \ ./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 *) if [ $bit -eq 64 ]; then base=$mingw/x86_64-w64-mingw32/bin @@ -27,6 +27,6 @@ else fi cp -pv $base/lib{gcc,stdc++,winpthread}*.dll $dir/bin/ -rm -f $OLDPWD/multicraft-windows.zip -zip -r $OLDPWD/multicraft-windows.zip $dir +rm -f $OLDPWD/blockcolor-windows.zip +zip -r $OLDPWD/blockcolor-windows.zip $dir echo "Done" diff --git a/build/WindowsApp/buildwin32.sh b/build/WindowsApp/buildwin32.sh index d9e28071c..c79a5164a 100644 --- a/build/WindowsApp/buildwin32.sh +++ b/build/WindowsApp/buildwin32.sh @@ -69,10 +69,10 @@ cd $libdir # Get the source cd $builddir -[ -d MultiCraft ] || ln -s "$EXISTING_DIR" MultiCraft +[ -d BlockColor ] || ln -s "$EXISTING_DIR" BlockColor # Build the thing -cd MultiCraft +cd BlockColor [ -d _build ] && rm -Rf _build/ mkdir _build cd _build diff --git a/build/WindowsApp/buildwin64.sh b/build/WindowsApp/buildwin64.sh index 3ece21a48..0ee87f911 100644 --- a/build/WindowsApp/buildwin64.sh +++ b/build/WindowsApp/buildwin64.sh @@ -70,10 +70,10 @@ cd $libdir # Get the source cd $builddir -[ -d MultiCraft ] || ln -s "$EXISTING_DIR" MultiCraft +[ -d BlockColor ] || ln -s "$EXISTING_DIR" BlockColor # Build the thing -cd MultiCraft +cd BlockColor [ -d _build ] && rm -Rf _build/ mkdir _build cd _build diff --git a/build/WindowsApp/package.bat b/build/WindowsApp/package.bat index 7019b1352..e8bc51574 100755 --- a/build/WindowsApp/package.bat +++ b/build/WindowsApp/package.bat @@ -1,7 +1,7 @@ @echo off 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 version=1.1.8.0 SET publisher=example text @@ -22,11 +22,11 @@ popd echo Please wait... powershell -NoProfile -NoLogo -ExecutionPolicy Bypass^ -File "%ProgramFiles%\WindowsApps\%appname%\DesktopAppConverter.ps1"^ - -Installer "%folderpath%" -AppExecutable MultiCraft.exe^ - -Destination "%outputpath%" -PackageName MultiCraft^ + -Installer "%folderpath%" -AppExecutable BlockColor.exe^ + -Destination "%outputpath%" -PackageName BlockColor^ -Publisher "CN=%publisher%" -Version %version% "%ProgramFiles(x86)%\Windows Kits\10\bin\%sdkver%\x64\MakeAppx.exe"^ pack /l^ - /d "%outputpath%\MultiCraft\PackageFiles" /p "%outputpath%\MultiCraft.appx" + /d "%outputpath%\BlockColor\PackageFiles" /p "%outputpath%\BlockColor.appx" pause diff --git a/build/android/Makefile b/build/android/Makefile index c53ba4985..67c0946f6 100644 --- a/build/android/Makefile +++ b/build/android/Makefile @@ -598,7 +598,7 @@ $(ASSETS_TIMESTAMP) : $(IRRLICHT_LIB) touch ${IRRLICHT_DIR}/media/timestamp; \ touch ${ASSETS_TIMESTAMP}; \ fi; \ - if [ ${PROJ_ROOT}/multicraft.conf.example -nt ${ASSETS_TIMESTAMP} ] ; then \ + if [ ${PROJ_ROOT}/blockcolor.conf.example -nt ${ASSETS_TIMESTAMP} ] ; then \ echo "conf changed"; \ touch ${ASSETS_TIMESTAMP}; \ fi; \ @@ -672,16 +672,16 @@ assets : $(ASSETS_TIMESTAMP) if [ $$REFRESH -ne 0 ] ; then \ echo "assets changed, refreshing..."; \ $(MAKE) clean_assets; \ - mkdir -p ${APP_ROOT}/assets/MultiCraft; \ - cp -r ${PROJ_ROOT}/builtin ${APP_ROOT}/assets/MultiCraft; \ - mkdir ${APP_ROOT}/assets/MultiCraft/fonts; \ - cp -r ${PROJ_ROOT}/fonts/retrovillenc.ttf ${APP_ROOT}/assets/MultiCraft/fonts/; \ - cp -r ${PROJ_ROOT}/games ${APP_ROOT}/assets/MultiCraft; \ - mkdir -p ${APP_ROOT}/assets/MultiCraft/locale; \ + mkdir -p ${APP_ROOT}/assets/BlockColor; \ + cp -r ${PROJ_ROOT}/builtin ${APP_ROOT}/assets/BlockColor; \ + mkdir ${APP_ROOT}/assets/BlockColor/fonts; \ + cp -r ${PROJ_ROOT}/fonts/retrovillenc.ttf ${APP_ROOT}/assets/BlockColor/fonts/; \ + cp -r ${PROJ_ROOT}/games ${APP_ROOT}/assets/BlockColor; \ + mkdir -p ${APP_ROOT}/assets/BlockColor/locale; \ pushd ${PROJ_ROOT}/po; \ for lang in *; do \ [ $${#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; \ pushd $$lang; \ for fn in *.po; do \ @@ -691,8 +691,8 @@ assets : $(ASSETS_TIMESTAMP) popd; \ done; \ popd; \ - cp -r ${PROJ_ROOT}/textures ${APP_ROOT}/assets/MultiCraft; \ - cp -r ${PROJ_ROOT}/worlds ${APP_ROOT}/assets/MultiCraft; \ + cp -r ${PROJ_ROOT}/textures ${APP_ROOT}/assets/BlockColor; \ + cp -r ${PROJ_ROOT}/worlds ${APP_ROOT}/assets/BlockColor; \ cd ${APP_ROOT}/assets || exit 1; \ find . -name "timestamp" -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 "*.svn" -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; \ find -L . | cut -c 3- > ../filelist.txt; \ echo "Creating worlds.zip"; \ @@ -728,14 +728,14 @@ apk: local.properties $(IRRLICHT_LIB) $(CURL_LIB) $(LEVELDB_LIB) $(LUAJIT_LIB) fi; \ export BUILD_TYPE_C=$$(echo "$${BUILD_TYPE}" | sed 's/./\U&/') && \ ./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\'" 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: - ${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 : @if [ ! -e ${ANDR_ROOT}/jni/src ]; then \ diff --git a/build/android/README.md b/build/android/README.md index 76b0afe8b..a134a2e84 100644 --- a/build/android/README.md +++ b/build/android/README.md @@ -1,4 +1,4 @@ -MultiCraft Android version +BlockColor Android version ===================== Controls @@ -32,8 +32,8 @@ When a menu or inventory is displayed: Special settings ---------------- -There are some settings especially useful for Android users. MultiCraft's config -file can usually be found at /sdcard/Android/data/mobi.MultiCraft/files. +There are some settings especially useful for Android users. BlockColor's config +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 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 ------------ -In order to build, your PC has to be set up to build MultiCraft in the usual -manner (see the regular MultiCraft documentation for how to get this done). -In addition to what is required for MultiCraft in general, you will need the +In order to build, your PC has to be set up to build BlockColor in the usual +manner (see the regular BlockColor documentation for how to get this done). +In addition to what is required for BlockColor in general, you will need the following software packages. The version number in parenthesis denotes the version that was tested at the time this README was drafted; newer/older versions may or may not work. @@ -80,7 +80,7 @@ Debug build: * Wait for build to finish 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: @@ -93,12 +93,12 @@ Release build: file "ant.properties" there. Add following lines to that file: > key.store= - > key.alias=MultiCraft + > key.alias=BlockColor * Execute "make release" * Enter your keystore as well as your Mintest key password once asked. Be 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 ------------ diff --git a/build/android/build.gradle b/build/android/build.gradle index a48da0cfd..abf9f7cfb 100644 --- a/build/android/build.gradle +++ b/build/android/build.gradle @@ -26,7 +26,7 @@ android { buildToolsVersion "29.0.0" defaultConfig { - applicationId 'com.multicraft.game' + applicationId 'net.blockcolor.game' minSdkVersion 16 targetSdkVersion 29 versionCode 1 diff --git a/build/android/jni/Android.mk b/build/android/jni/Android.mk index 425e1ef8a..8bdaee6c0 100644 --- a/build/android/jni/Android.mk +++ b/build/android/jni/Android.mk @@ -38,7 +38,7 @@ LOCAL_SRC_FILES := deps/luajit/src/libluajit.a include $(PREBUILT_STATIC_LIBRARY) include $(CLEAR_VARS) -LOCAL_MODULE := MultiCraft +LOCAL_MODULE := BlockColor LOCAL_CFLAGS += \ -DJSONCPP_NO_LOCALE_SUPPORT \ diff --git a/build/android/jni/Application.mk b/build/android/jni/Application.mk index 82025a44b..5ce756fd9 100644 --- a/build/android/jni/Application.mk +++ b/build/android/jni/Application.mk @@ -2,7 +2,7 @@ APP_PLATFORM := ${APP_PLATFORM} APP_ABI := ${TARGET_ABI} APP_STL := ${APP_STL} NDK_TOOLCHAIN_VERSION := ${COMPILER_VERSION} -APP_MODULES := MultiCraft +APP_MODULES := BlockColor APP_CPPFLAGS := -Ofast -fvisibility=hidden -fpic -fexceptions -Wno-deprecated-declarations diff --git a/build/android/src/main/AndroidManifest.xml b/build/android/src/main/AndroidManifest.xml index f4d7ac3c9..43f91fda6 100644 --- a/build/android/src/main/AndroidManifest.xml +++ b/build/android/src/main/AndroidManifest.xml @@ -1,7 +1,7 @@ @@ -37,7 +37,7 @@ android:required="false" /> @@ -47,7 +47,7 @@ + android:value="BlockColor" /> diff --git a/build/android/src/main/java/com/multicraft/desktop.ini b/build/android/src/main/java/com/multicraft/desktop.ini new file mode 100644 index 000000000..4b6ef5858 --- /dev/null +++ b/build/android/src/main/java/com/multicraft/desktop.ini @@ -0,0 +1,2 @@ +[.ShellClassInfo] +LocalizedResourceName=blockcolor diff --git a/build/android/src/main/java/com/multicraft/game/AlertDialogHelper.java b/build/android/src/main/java/com/multicraft/game/AlertDialogHelper.java index 1e6f58a9b..01a8e5c96 100644 --- a/build/android/src/main/java/com/multicraft/game/AlertDialogHelper.java +++ b/build/android/src/main/java/com/multicraft/game/AlertDialogHelper.java @@ -1,4 +1,4 @@ -package com.multicraft.game; +package net.blockcolor.game; import android.app.Activity; import android.app.AlertDialog; diff --git a/build/android/src/main/java/com/multicraft/game/CallBackListener.java b/build/android/src/main/java/com/multicraft/game/CallBackListener.java index 85f199021..c9568cbdb 100644 --- a/build/android/src/main/java/com/multicraft/game/CallBackListener.java +++ b/build/android/src/main/java/com/multicraft/game/CallBackListener.java @@ -1,4 +1,4 @@ -package com.multicraft.game; +package net.blockcolor.game; public interface CallBackListener { void updateViews(int text, int textVisibility, int progressVisibility); diff --git a/build/android/src/main/java/com/multicraft/game/CheckConnectionTask.java b/build/android/src/main/java/com/multicraft/game/CheckConnectionTask.java index 5a0b1684d..c5a02403c 100644 --- a/build/android/src/main/java/com/multicraft/game/CheckConnectionTask.java +++ b/build/android/src/main/java/com/multicraft/game/CheckConnectionTask.java @@ -1,4 +1,4 @@ -package com.multicraft.game; +package net.blockcolor.game; import android.content.Context; import android.os.AsyncTask; diff --git a/build/android/src/main/java/com/multicraft/game/CopyZipTask.java b/build/android/src/main/java/com/multicraft/game/CopyZipTask.java index 6381376a3..88d8197fa 100644 --- a/build/android/src/main/java/com/multicraft/game/CopyZipTask.java +++ b/build/android/src/main/java/com/multicraft/game/CopyZipTask.java @@ -1,4 +1,4 @@ -package com.multicraft.game; +package net.blockcolor.game; import android.app.Activity; import android.app.AlarmManager; @@ -16,7 +16,7 @@ import java.io.InputStream; import java.io.OutputStream; import java.lang.ref.WeakReference; -import static com.multicraft.game.MainActivity.unzipLocation; +import static net.blockcolor.game.MainActivity.unzipLocation; public class CopyZipTask extends AsyncTask implements DialogsCallback { diff --git a/build/android/src/main/java/com/multicraft/game/DeleteTask.java b/build/android/src/main/java/com/multicraft/game/DeleteTask.java index eca4c8992..aa7108804 100644 --- a/build/android/src/main/java/com/multicraft/game/DeleteTask.java +++ b/build/android/src/main/java/com/multicraft/game/DeleteTask.java @@ -1,4 +1,4 @@ -package com.multicraft.game; +package net.blockcolor.game; import android.os.AsyncTask; import android.view.View; diff --git a/build/android/src/main/java/com/multicraft/game/DialogsCallback.java b/build/android/src/main/java/com/multicraft/game/DialogsCallback.java index cc68ecb50..c133a4126 100644 --- a/build/android/src/main/java/com/multicraft/game/DialogsCallback.java +++ b/build/android/src/main/java/com/multicraft/game/DialogsCallback.java @@ -1,4 +1,4 @@ -package com.multicraft.game; +package net.blockcolor.game; public interface DialogsCallback { void onPositive(String source); diff --git a/build/android/src/main/java/com/multicraft/game/GameActivity.java b/build/android/src/main/java/com/multicraft/game/GameActivity.java index 87b930192..c90bc799f 100644 --- a/build/android/src/main/java/com/multicraft/game/GameActivity.java +++ b/build/android/src/main/java/com/multicraft/game/GameActivity.java @@ -1,4 +1,4 @@ -package com.multicraft.game; +package net.blockcolor.game; import android.annotation.SuppressLint; import android.app.ActivityManager; @@ -14,22 +14,22 @@ import android.view.WindowManager; import com.crashlytics.android.Crashlytics; -/*import static com.multicraft.game.AdManager.initAd; -import static com.multicraft.game.AdManager.setAdsCallback; -import static com.multicraft.game.AdManager.startAd; -import static com.multicraft.game.AdManager.stopAd;*/ +/*import static net.blockcolor.game.AdManager.initAd; +import static net.blockcolor.game.AdManager.setAdsCallback; +import static net.blockcolor.game.AdManager.startAd; +import static net.blockcolor.game.AdManager.stopAd;*/ public class GameActivity extends NativeActivity { static { if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP) { if (TextUtils.join(", ", Build.SUPPORTED_ABIS).contains("64")) { //System.loadLibrary("c++_shared"); // uncomment when upgrading to Clang - System.loadLibrary("MultiCraft"); + System.loadLibrary("BlockColor"); } else { - System.loadLibrary("MultiCraft"); + System.loadLibrary("BlockColor"); } } else { - System.loadLibrary("MultiCraft"); + System.loadLibrary("BlockColor"); } } diff --git a/build/android/src/main/java/com/multicraft/game/InputDialogActivity.java b/build/android/src/main/java/com/multicraft/game/InputDialogActivity.java index 5c3e3b6ab..d3680ac88 100644 --- a/build/android/src/main/java/com/multicraft/game/InputDialogActivity.java +++ b/build/android/src/main/java/com/multicraft/game/InputDialogActivity.java @@ -1,4 +1,4 @@ -package com.multicraft.game; +package net.blockcolor.game; import android.annotation.SuppressLint; import android.app.Activity; diff --git a/build/android/src/main/java/com/multicraft/game/MainActivity.java b/build/android/src/main/java/com/multicraft/game/MainActivity.java index 5ded374e2..8a3354aa0 100644 --- a/build/android/src/main/java/com/multicraft/game/MainActivity.java +++ b/build/android/src/main/java/com/multicraft/game/MainActivity.java @@ -1,4 +1,4 @@ -package com.multicraft.game; +package net.blockcolor.game; import android.annotation.SuppressLint; 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.WRITE_EXTERNAL_STORAGE; -import static com.multicraft.game.PreferencesHelper.TAG_BUILD_NUMBER; -import static com.multicraft.game.PreferencesHelper.TAG_CONSENT_ASKED; -import static com.multicraft.game.PreferencesHelper.TAG_COPY_WORLDS; -import static com.multicraft.game.PreferencesHelper.TAG_LAUNCH_TIMES; -import static com.multicraft.game.PreferencesHelper.TAG_SHORTCUT_CREATED; +import static net.blockcolor.game.PreferencesHelper.TAG_BUILD_NUMBER; +import static net.blockcolor.game.PreferencesHelper.TAG_CONSENT_ASKED; +import static net.blockcolor.game.PreferencesHelper.TAG_COPY_WORLDS; +import static net.blockcolor.game.PreferencesHelper.TAG_LAUNCH_TIMES; +import static net.blockcolor.game.PreferencesHelper.TAG_SHORTCUT_CREATED; public class MainActivity extends Activity implements WVersionManager.ActivityListener, CallBackListener, DialogsCallback { 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", "MT", "NL", "PL", "PT", "RO", "SK", "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; - 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 boolean consent; private ProgressBar mProgressBar; diff --git a/build/android/src/main/java/com/multicraft/game/PreferencesHelper.java b/build/android/src/main/java/com/multicraft/game/PreferencesHelper.java index 4c2ca74cb..c7cf44920 100644 --- a/build/android/src/main/java/com/multicraft/game/PreferencesHelper.java +++ b/build/android/src/main/java/com/multicraft/game/PreferencesHelper.java @@ -1,4 +1,4 @@ -package com.multicraft.game; +package net.blockcolor.game; import android.content.Context; import android.content.SharedPreferences; @@ -13,7 +13,7 @@ class PreferencesHelper { static final String RV_LOADED = "rewardedVideoLoaded"; static final String ADS_DELAY = "adsDelay"; static final String ADS_REPEAT = "adsRepeat"; - private static final String SETTINGS = "MultiCraftSettings"; + private static final String SETTINGS = "BlockColorSettings"; private static PreferencesHelper instance; private static SharedPreferences sharedPreferences; diff --git a/build/android/src/main/java/com/multicraft/game/RateMe.java b/build/android/src/main/java/com/multicraft/game/RateMe.java index 8952f1d3e..89fa98f3e 100644 --- a/build/android/src/main/java/com/multicraft/game/RateMe.java +++ b/build/android/src/main/java/com/multicraft/game/RateMe.java @@ -1,4 +1,4 @@ -package com.multicraft.game; +package net.blockcolor.game; import android.app.Activity; import android.app.Dialog; diff --git a/build/android/src/main/java/com/multicraft/game/Transliteration.java b/build/android/src/main/java/com/multicraft/game/Transliteration.java index a1173c73b..a6b189238 100644 --- a/build/android/src/main/java/com/multicraft/game/Transliteration.java +++ b/build/android/src/main/java/com/multicraft/game/Transliteration.java @@ -1,4 +1,4 @@ -package com.multicraft.game; +package net.blockcolor.game; class Transliteration { diff --git a/build/android/src/main/java/com/multicraft/game/UnzipService.java b/build/android/src/main/java/com/multicraft/game/UnzipService.java index 8fa240512..fa916ce57 100644 --- a/build/android/src/main/java/com/multicraft/game/UnzipService.java +++ b/build/android/src/main/java/com/multicraft/game/UnzipService.java @@ -1,4 +1,4 @@ -package com.multicraft.game; +package net.blockcolor.game; import android.app.IntentService; import android.app.Notification; @@ -20,7 +20,7 @@ import java.util.zip.ZipFile; import java.util.zip.ZipInputStream; 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_LOCATION = "location"; public static final String ACTION_PROGRESS = "progress"; @@ -28,7 +28,7 @@ public class UnzipService extends IntentService { private int id = 1; public UnzipService() { - super("com.multicraft.game.UnzipService"); + super("net.blockcolor.game.UnzipService"); } private void isDir(String dir, String unzipLocation) { @@ -49,9 +49,9 @@ public class UnzipService extends IntentService { private void createNotification() { // There are hardcoding only for show it's just strings - String name = "mobi.MultiCraft"; - String channelId = "MultiCraft channel"; // The user-visible name of the channel. - String description = "notifications from MultiCraft"; // The user-visible description of the channel. + String name = "mobi.BlockColor"; + String channelId = "BlockColor channel"; // The user-visible name of the channel. + String description = "notifications from BlockColor"; // The user-visible description of the channel. Notification.Builder builder; if (mNotifyManager == null) { mNotifyManager = diff --git a/build/android/src/main/java/com/multicraft/game/WVersionManager.java b/build/android/src/main/java/com/multicraft/game/WVersionManager.java index 16ca7903b..b63013aa0 100644 --- a/build/android/src/main/java/com/multicraft/game/WVersionManager.java +++ b/build/android/src/main/java/com/multicraft/game/WVersionManager.java @@ -1,4 +1,4 @@ -package com.multicraft.game; +package net.blockcolor.game; import android.annotation.SuppressLint; import android.app.Activity; diff --git a/build/android/src/main/res/values-ru/strings.xml b/build/android/src/main/res/values-ru/strings.xml index 49c798d1b..945ac6865 100644 --- a/build/android/src/main/res/values-ru/strings.xml +++ b/build/android/src/main/res/values-ru/strings.xml @@ -4,7 +4,7 @@ Подготовка к обновлению… Загрузка… - Загрузка MultiCraft + Загрузка BlockColor Осталось меньше минуты… Произошла ошибка, игра будет перезапущена автоматически Недостаточно места для записи файлов игры, пожалуйста освободите место SD карте @@ -13,9 +13,9 @@ Доступ к местоположению обеспечивает Вам лучшее взаимодействие с игрой Закрыть игру Настройки - Вы не можете использовать MultiCraft без разрешения на запись. \nПожалуйста, включите его в [Настройки] -> [Разрешения]> + Вы не можете использовать BlockColor без разрешения на запись. \nПожалуйста, включите его в [Настройки] -> [Разрешения]> - Оцените MultiCraft! + Оцените BlockColor! Название Описание ОЦЕНИТЬ @@ -28,7 +28,7 @@ - Для полноценной игры, MultiCraft требует подключение к интернету.\nВ противном случае невозможно обновление игры, а так же не доступен мультиплеер! + Для полноценной игры, BlockColor требует подключение к интернету.\nВ противном случае невозможно обновление игры, а так же не доступен мультиплеер! Wi-Fi 3G/4G diff --git a/build/android/src/main/res/values/strings.xml b/build/android/src/main/res/values/strings.xml index 6e710644c..31b6eda12 100644 --- a/build/android/src/main/res/values/strings.xml +++ b/build/android/src/main/res/values/strings.xml @@ -1,13 +1,13 @@ - MultiCraft + BlockColor 1.2 Preparing to update… Loading… - Loading MultiCraft + Loading BlockColor Less than 1 minute… Unexpected issue, the game will be restarted automatically No space left for game files, please free space on SD card @@ -17,9 +17,9 @@ Location permission provide you better interaction with game Close game App settings - You cannot use MultiCraft without storage permission. \nPlease turn on it at [Settings] -> [Permissions]> + You cannot use BlockColor without storage permission. \nPlease turn on it at [Settings] -> [Permissions]> - Please, rate MultiCraft! + Please, rate BlockColor! Title Description SUBMIT @@ -33,7 +33,7 @@ - MultiCraft requires an internet connection to use all game features.\nOtherwise, you will not get updates and multiplayer will be not available! + BlockColor requires an internet connection to use all game features.\nOtherwise, you will not get updates and multiplayer will be not available! Wi-Fi Mobile Data diff --git a/build/android/src/main/res/xml/my_backup_rules.xml b/build/android/src/main/res/xml/my_backup_rules.xml index 8ae350e64..8dd30ee23 100644 --- a/build/android/src/main/res/xml/my_backup_rules.xml +++ b/build/android/src/main/res/xml/my_backup_rules.xml @@ -2,11 +2,11 @@ + path="BlockColorSettings.xml" /> + path="mobi.BlockColor_preferences.xml" /> diff --git a/build/iOS/MultiCraft/MultiCraft.xcodeproj/desktop.ini b/build/iOS/MultiCraft/MultiCraft.xcodeproj/desktop.ini new file mode 100644 index 000000000..9788c7383 --- /dev/null +++ b/build/iOS/MultiCraft/MultiCraft.xcodeproj/desktop.ini @@ -0,0 +1,2 @@ +[.ShellClassInfo] +LocalizedResourceName=Blockcolor.xcodeproj diff --git a/build/iOS/MultiCraft/MultiCraft.xcodeproj/project.pbxproj b/build/iOS/MultiCraft/MultiCraft.xcodeproj/project.pbxproj index fecd2ca95..e6b9fa112 100755 --- a/build/iOS/MultiCraft/MultiCraft.xcodeproj/project.pbxproj +++ b/build/iOS/MultiCraft/MultiCraft.xcodeproj/project.pbxproj @@ -38,7 +38,7 @@ 844B495F228606B200EB60EF /* Main.storyboard in Resources */ = {isa = PBXBuildFile; fileRef = 844B495D228606B200EB60EF /* Main.storyboard */; }; 8465A76522A7D4500095B7CA /* libintl.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8465A76422A7D4500095B7CA /* libintl.cpp */; }; 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 */; }; F84D3A951DE79AB400ADE1A0 /* ads.mm in Sources */ = {isa = PBXBuildFile; fileRef = F84D3A941DE79AB400ADE1A0 /* ads.mm */; }; F85119A71F4476FC00BFA9AF /* libcurl.a in Frameworks */ = {isa = PBXBuildFile; fileRef = F85119A61F4476FC00BFA9AF /* libcurl.a */; }; @@ -266,8 +266,8 @@ /* End PBXBuildFile 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 = ""; }; - 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 = ""; }; + 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 = ""; }; + 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 = ""; }; 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 = ""; }; 4B0F49CA1E424FAE0003953D /* reflowscan.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = reflowscan.cpp; path = ../../../../src/reflowscan.cpp; sourceTree = ""; }; 4B0F49CC1E424FC20003953D /* remoteplayer.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = remoteplayer.cpp; path = ../../../../src/remoteplayer.cpp; sourceTree = ""; }; @@ -324,7 +324,7 @@ 8465A76322A7D4500095B7CA /* Util.hpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.h; name = Util.hpp; path = ../../../../lib/intl/Util.hpp; sourceTree = ""; }; 8465A76422A7D4500095B7CA /* libintl.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = libintl.cpp; path = ../../../../lib/intl/libintl.cpp; sourceTree = ""; }; 849C4F85209656D2005EB041 /* ru.lproj */ = {isa = PBXFileReference; lastKnownFileType = folder; path = ru.lproj; sourceTree = ""; }; - 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 = ""; }; F84D3A931DE79AB400ADE1A0 /* ads.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = ads.h; path = ../../Ads/ads.h; sourceTree = ""; }; F84D3A941DE79AB400ADE1A0 /* ads.mm */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.objcpp; name = ads.mm; path = ../../Ads/ads.mm; sourceTree = ""; }; @@ -332,7 +332,7 @@ F856B5C21F55F7EE00FE9494 /* bg.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; name = bg.png; path = ../../../../textures/base/bg.png; sourceTree = ""; }; F87DC8B8210887C600393B64 /* mapgen_v7p.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = mapgen_v7p.h; path = ../../../../src/mapgen_v7p.h; sourceTree = ""; }; F87DC8B9210887C700393B64 /* mapgen_v7p.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = mapgen_v7p.cpp; path = ../../../../src/mapgen_v7p.cpp; sourceTree = ""; }; - 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 = ""; }; F8E6C4EB1DCA3B7900F64426 /* Base */ = {isa = PBXFileReference; lastKnownFileType = file.storyboard; name = Base; path = Base.lproj/LaunchScreen.storyboard; sourceTree = ""; }; F8E6C4ED1DCA3B7900F64426 /* Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = ""; }; @@ -809,7 +809,7 @@ F8E6C7DD1DCA47A300F64426 /* libvorbis.a in Frameworks */, F8E6C7DF1DCA47AF00F64426 /* libvorbisfile.a in Frameworks */, F85119A71F4476FC00BFA9AF /* libcurl.a in Frameworks */, - EB4367AE23CAD13A43ADF4B1 /* libPods-MultiCraft.a in Frameworks */, + EB4367AE23CAD13A43ADF4B1 /* libPods-BlockColor.a in Frameworks */, ); runOnlyForDeploymentPostprocessing = 0; }; @@ -839,8 +839,8 @@ 87D06CD2CC310BE5E73639F4 /* Pods */ = { isa = PBXGroup; children = ( - 32528F14AAB9EA0E9CAB8526 /* Pods-MultiCraft.debug.xcconfig */, - 1E76DCA01B51A98F0CA4C480 /* Pods-MultiCraft.release.xcconfig */, + 32528F14AAB9EA0E9CAB8526 /* Pods-BlockColor.debug.xcconfig */, + 1E76DCA01B51A98F0CA4C480 /* Pods-BlockColor.release.xcconfig */, ); name = Pods; sourceTree = ""; @@ -857,7 +857,7 @@ F8E6C4D01DCA3B7900F64426 = { isa = PBXGroup; children = ( - F8E6C4DB1DCA3B7900F64426 /* MultiCraft */, + F8E6C4DB1DCA3B7900F64426 /* BlockColor */, F8E6C4DA1DCA3B7900F64426 /* Products */, F8E6C7C31DCA42F300F64426 /* Frameworks */, 87D06CD2CC310BE5E73639F4 /* Pods */, @@ -868,12 +868,12 @@ F8E6C4DA1DCA3B7900F64426 /* Products */ = { isa = PBXGroup; children = ( - F8E6C4D91DCA3B7900F64426 /* MultiCraft.app */, + F8E6C4D91DCA3B7900F64426 /* BlockColor.app */, ); name = Products; sourceTree = ""; }; - F8E6C4DB1DCA3B7900F64426 /* MultiCraft */ = { + F8E6C4DB1DCA3B7900F64426 /* BlockColor */ = { isa = PBXGroup; children = ( 849C4F85209656D2005EB041 /* ru.lproj */, @@ -885,7 +885,7 @@ F8E6C4DC1DCA3B7900F64426 /* Supporting Files */, F8E6C4F61DCA3EAF00F64426 /* src */, ); - path = MultiCraft; + path = BlockColor; sourceTree = ""; }; F8E6C4DC1DCA3B7900F64426 /* Supporting Files */ = { @@ -1501,7 +1501,7 @@ F8E6C7C81DCA430300F64426 /* OpenGLES.framework */, F8E6C7C61DCA42FA00F64426 /* UIKit.framework */, F8E6C7C41DCA42F300F64426 /* QuartzCore.framework */, - 8758CE009FCB7E91F4C84C28 /* libPods-MultiCraft.a */, + 8758CE009FCB7E91F4C84C28 /* libPods-BlockColor.a */, ); name = Frameworks; sourceTree = ""; @@ -1509,9 +1509,9 @@ /* End PBXGroup section */ /* Begin PBXNativeTarget section */ - F8E6C4D81DCA3B7900F64426 /* MultiCraft */ = { + F8E6C4D81DCA3B7900F64426 /* BlockColor */ = { isa = PBXNativeTarget; - buildConfigurationList = F8E6C4F01DCA3B7900F64426 /* Build configuration list for PBXNativeTarget "MultiCraft" */; + buildConfigurationList = F8E6C4F01DCA3B7900F64426 /* Build configuration list for PBXNativeTarget "BlockColor" */; buildPhases = ( C73312165F97B96FC254B124 /* [CP] Check Pods Manifest.lock */, F8E6C4D51DCA3B7900F64426 /* Sources */, @@ -1523,9 +1523,9 @@ ); dependencies = ( ); - name = MultiCraft; - productName = MultiCraft; - productReference = F8E6C4D91DCA3B7900F64426 /* MultiCraft.app */; + name = BlockColor; + productName = BlockColor; + productReference = F8E6C4D91DCA3B7900F64426 /* BlockColor.app */; productType = "com.apple.product-type.application"; }; /* End PBXNativeTarget section */ @@ -1535,7 +1535,7 @@ isa = PBXProject; attributes = { LastUpgradeCheck = 1020; - ORGANIZATIONNAME = MultiCraft; + ORGANIZATIONNAME = BlockColor; TargetAttributes = { F8E6C4D81DCA3B7900F64426 = { 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"; developmentRegion = en; hasScannedForEncodings = 0; @@ -1560,7 +1560,7 @@ projectDirPath = ""; projectRoot = ""; targets = ( - F8E6C4D81DCA3B7900F64426 /* MultiCraft */, + F8E6C4D81DCA3B7900F64426 /* BlockColor */, ); }; /* End PBXProject section */ @@ -1595,7 +1595,7 @@ ); name = "[CP] Check Pods Manifest.lock"; outputPaths = ( - "$(DERIVED_FILE_DIR)/Pods-MultiCraft-checkManifestLockResult.txt", + "$(DERIVED_FILE_DIR)/Pods-BlockColor-checkManifestLockResult.txt", ); runOnlyForDeploymentPostprocessing = 0; shellPath = /bin/sh; @@ -1608,15 +1608,15 @@ files = ( ); 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"; 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; 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; }; /* End PBXShellScriptBuildPhase section */ @@ -1932,7 +1932,7 @@ }; F8E6C4F11DCA3B7900F64426 /* Debug */ = { isa = XCBuildConfiguration; - baseConfigurationReference = 32528F14AAB9EA0E9CAB8526 /* Pods-MultiCraft.debug.xcconfig */; + baseConfigurationReference = 32528F14AAB9EA0E9CAB8526 /* Pods-BlockColor.debug.xcconfig */; buildSettings = { ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon; CODE_SIGN_IDENTITY = "iPhone Developer"; @@ -1965,7 +1965,7 @@ "${SRCROOT}/../deps/freetype/include/freetype2", "${SRCROOT}/../Pods/libCurlPod/include", ); - INFOPLIST_FILE = MultiCraft/Info.plist; + INFOPLIST_FILE = BlockColor/Info.plist; LD_RUNPATH_SEARCH_PATHS = ( "$(inherited)", "@executable_path/Frameworks", @@ -2019,14 +2019,14 @@ "-L${SRCROOT}/../Pods/libCurlPod/lib", "-Wl,-dead_strip", ); - PRODUCT_BUNDLE_IDENTIFIER = mobi.MultiCraft; + PRODUCT_BUNDLE_IDENTIFIER = mobi.BlockColor; PRODUCT_NAME = "$(TARGET_NAME)"; }; name = Debug; }; F8E6C4F21DCA3B7900F64426 /* Release */ = { isa = XCBuildConfiguration; - baseConfigurationReference = 1E76DCA01B51A98F0CA4C480 /* Pods-MultiCraft.release.xcconfig */; + baseConfigurationReference = 1E76DCA01B51A98F0CA4C480 /* Pods-BlockColor.release.xcconfig */; buildSettings = { ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon; CODE_SIGN_IDENTITY = "iPhone Developer"; @@ -2060,7 +2060,7 @@ "${SRCROOT}/../deps/freetype/include/freetype2", "${SRCROOT}/../Pods/libCurlPod/include", ); - INFOPLIST_FILE = MultiCraft/Info.plist; + INFOPLIST_FILE = BlockColor/Info.plist; LD_RUNPATH_SEARCH_PATHS = ( "$(inherited)", "@executable_path/Frameworks", @@ -2114,7 +2114,7 @@ "-L${SRCROOT}/../Pods/libCurlPod/lib", "-Wl,-dead_strip", ); - PRODUCT_BUNDLE_IDENTIFIER = mobi.MultiCraft; + PRODUCT_BUNDLE_IDENTIFIER = mobi.BlockColor; PRODUCT_NAME = "$(TARGET_NAME)"; }; name = Release; @@ -2122,7 +2122,7 @@ /* End XCBuildConfiguration section */ /* Begin XCConfigurationList section */ - F8E6C4D41DCA3B7900F64426 /* Build configuration list for PBXProject "MultiCraft" */ = { + F8E6C4D41DCA3B7900F64426 /* Build configuration list for PBXProject "BlockColor" */ = { isa = XCConfigurationList; buildConfigurations = ( F8E6C4EE1DCA3B7900F64426 /* Debug */, @@ -2131,7 +2131,7 @@ defaultConfigurationIsVisible = 0; defaultConfigurationName = Release; }; - F8E6C4F01DCA3B7900F64426 /* Build configuration list for PBXNativeTarget "MultiCraft" */ = { + F8E6C4F01DCA3B7900F64426 /* Build configuration list for PBXNativeTarget "BlockColor" */ = { isa = XCConfigurationList; buildConfigurations = ( F8E6C4F11DCA3B7900F64426 /* Debug */, diff --git a/build/iOS/MultiCraft/MultiCraft/Info.plist b/build/iOS/MultiCraft/MultiCraft/Info.plist index a5d3f56e3..ab7b9d0a5 100755 --- a/build/iOS/MultiCraft/MultiCraft/Info.plist +++ b/build/iOS/MultiCraft/MultiCraft/Info.plist @@ -5,7 +5,7 @@ CFBundleDevelopmentRegion en CFBundleDisplayName - MultiCraft + BlockColor CFBundleExecutable $(EXECUTABLE_NAME) CFBundleGetInfoString @@ -30,11 +30,11 @@ NSCalendarsUsageDescription - MultiCraft needs your calendar to provide personalised advertising experience tailored to you + BlockColor needs your calendar to provide personalised advertising experience tailored to you NSLocationAlwaysUsageDescription - MultiCraft needs your location to provide personalised advertising experience tailored to you + BlockColor needs your location to provide personalised advertising experience tailored to you NSLocationWhenInUseUsageDescription - MultiCraft needs your location to provide personalised advertising experience tailored to you + BlockColor needs your location to provide personalised advertising experience tailored to you UIBackgroundModes fetch diff --git a/build/iOS/MultiCraft/MultiCraft/desktop.ini b/build/iOS/MultiCraft/MultiCraft/desktop.ini new file mode 100644 index 000000000..73947fa60 --- /dev/null +++ b/build/iOS/MultiCraft/MultiCraft/desktop.ini @@ -0,0 +1,2 @@ +[.ShellClassInfo] +LocalizedResourceName=BlockColor diff --git a/build/iOS/MultiCraft/desktop.ini b/build/iOS/MultiCraft/desktop.ini new file mode 100644 index 000000000..73947fa60 --- /dev/null +++ b/build/iOS/MultiCraft/desktop.ini @@ -0,0 +1,2 @@ +[.ShellClassInfo] +LocalizedResourceName=BlockColor diff --git a/build/iOS/Podfile b/build/iOS/Podfile index f50787d87..affb4aee3 100755 --- a/build/iOS/Podfile +++ b/build/iOS/Podfile @@ -1,7 +1,7 @@ -project 'MultiCraft/MultiCraft.xcodeproj' +project 'BlockColor/BlockColor.xcodeproj' platform :ios, '9.0' -target 'MultiCraft' do +target 'BlockColor' do source 'https://github.com/CocoaPods/Specs.git' source 'https://github.com/appodeal/CocoaPods.git' diff --git a/build/iOS/Start.sh b/build/iOS/Start.sh index 14f552340..a54c05fa9 100755 --- a/build/iOS/Start.sh +++ b/build/iOS/Start.sh @@ -1,7 +1,7 @@ #!/bin/bash -e echo -echo "Starting build MultiCraft for iOS..." +echo "Starting build BlockColor for iOS..." echo echo "Build Libraries:" diff --git a/build/iOS/appicon.sh b/build/iOS/appicon.sh index dc7e9446f..044f30116 100755 --- a/build/iOS/appicon.sh +++ b/build/iOS/appicon.sh @@ -5,7 +5,7 @@ # (install: brew install imagemagick) SIZES="76 120 152 167 180" SRCFILE=icon.png -DSTDIR=MultiCraft/MultiCraft/Assets.xcassets/AppIcon.appiconset +DSTDIR=BlockColor/BlockColor/Assets.xcassets/AppIcon.appiconset for sz in $SIZES; do echo "Creating ${sz}x${sz} icon" diff --git a/build/iOS/assets.sh b/build/iOS/assets.sh index abdae83bf..6db511558 100755 --- a/build/iOS/assets.sh +++ b/build/iOS/assets.sh @@ -1,6 +1,6 @@ #!/bin/bash -e -if [ ! -d MultiCraft/MultiCraft.xcodeproj ]; then +if [ ! -d BlockColor/BlockColor.xcodeproj ]; then echo "Run this in build/iOS" exit 1 fi diff --git a/builtin/mainmenu/tab_credits.lua b/builtin/mainmenu/tab_credits.lua index 30d5a5b9c..4112a9c63 100644 --- a/builtin/mainmenu/tab_credits.lua +++ b/builtin/mainmenu/tab_credits.lua @@ -17,6 +17,10 @@ -------------------------------------------------------------------------------- +local blockcolor_developers = { + "MrChiantos", +} + local multicraft_developers = { "Maksim Gamarnik (MoNTE48) ", "Bektur Mambetov (ubulem) ", @@ -96,13 +100,15 @@ return { caption = fgettext("Credits"), cbf_formspec = function(tabview, name, tabdata) local version = core.get_version() - return "label[0.1,-0.1;MultiCraft Open Source Project, ver. " .. version.string .. "]" .. - "label[0.1,0.3;Copyright (c) 2014-2019 MultiCraft Development Team]" .. - "label[0.1,0.7;Home page: https://github.com/MultiCraftProject/MultiCraft]" .. + return "label[0.1,-0.1;Blockcolor Open Source Project, ver. " .. version.string .. "]" .. + "label[0.1,0.3;Copyright (c) 2018-2019 BlockColor Development Team]" .. + "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]" .. "tablecolumns[color;text]" .. "tableoptions[background=#999999;highlight=#00000000;border=true]" .. "table[0,1.6;11.8,3.8;list_credits;" .. + "#FFFF00," .. fgettext("BlockColor Developers") .. ",," .. + buildCreditList(blockcolor_developers) .. ",,," .. "#FFFF00," .. fgettext("MultiCraft Developers") .. ",," .. buildCreditList(multicraft_developers) .. ",,," .. "#FFFF00," .. fgettext("Minetest Developers") .. ",," .. diff --git a/client/serverlist/.gitignore b/client/serverlist/.gitignore deleted file mode 100644 index d6b7ef32c..000000000 --- a/client/serverlist/.gitignore +++ /dev/null @@ -1,2 +0,0 @@ -* -!.gitignore diff --git a/cmake/Modules/FindGettextLib.cmake b/cmake/Modules/FindGettextLib.cmake index 2dcaba12a..9ab5575dc 100644 --- a/cmake/Modules/FindGettextLib.cmake +++ b/cmake/Modules/FindGettextLib.cmake @@ -68,7 +68,7 @@ if(GETTEXT_FOUND) set(GETTEXT_MO_BUILD_PATH ${CMAKE_BINARY_DIR}/locale//LC_MESSAGES) set(GETTEXT_MO_DEST_PATH ${LOCALEDIR}//LC_MESSAGES) 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) macro(SET_MO_PATHS _buildvar _destvar _locale) string(REPLACE "" ${_locale} ${_buildvar} ${GETTEXT_MO_BUILD_PATH}) diff --git a/doc/BlockColor.6 b/doc/BlockColor.6 new file mode 100644 index 000000000..6a951789b --- /dev/null +++ b/doc/BlockColor.6 @@ -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 +Load configuration from specified file +.TP +.B \-\-logfile +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 +Set gameid +.TP +.B \-\-worldname +Set world path by name +.TP +.B \-\-world | list +Set world path or list worlds +.TP +.B \-\-map\-dir +Same as \-\-world (deprecated) +.TP +.B \-\-port +Set network port (UDP) to use +.TP +.B \-\-run\-unittests +Run unit tests and exit + +.SH CLIENT OPTIONS +.TP +.B \-\-address +Address to connect to +.TP +.B \-\-go +Disable main menu +.TP +.B \-\-name +Set player name +.TP +.B \-\-password +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 +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 . + +.SH AUTHOR +.PP +Perttu Ahola +and contributors. +.PP +This man page was originally written by +Juhani Numminen . + +.SH WWW +http://www.minetest.net/ + diff --git a/doc/BlockColorServer.6 b/doc/BlockColorServer.6 new file mode 100644 index 000000000..0cb67ddcf --- /dev/null +++ b/doc/BlockColorServer.6 @@ -0,0 +1,2 @@ +.so man6/BlockColor.6 + diff --git a/doc/MultiCraft.6 b/doc/MultiCraft.6 deleted file mode 100644 index 7175c6f34..000000000 --- a/doc/MultiCraft.6 +++ /dev/null @@ -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 -Load configuration from specified file -.TP -.B \-\-logfile -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 -Set gameid -.TP -.B \-\-worldname -Set world path by name -.TP -.B \-\-world | list -Set world path or list worlds -.TP -.B \-\-map\-dir -Same as \-\-world (deprecated) -.TP -.B \-\-port -Set network port (UDP) to use -.TP -.B \-\-run\-unittests -Run unit tests and exit - -.SH CLIENT OPTIONS -.TP -.B \-\-address -Address to connect to -.TP -.B \-\-go -Disable main menu -.TP -.B \-\-name -Set player name -.TP -.B \-\-password -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 -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 . - -.SH AUTHOR -.PP -Perttu Ahola -and contributors. -.PP -This man page was originally written by -Juhani Numminen . - -.SH WWW -http://www.minetest.net/ - diff --git a/doc/MultiCraftServer.6 b/doc/MultiCraftServer.6 deleted file mode 100644 index ff3b6bfa7..000000000 --- a/doc/MultiCraftServer.6 +++ /dev/null @@ -1,2 +0,0 @@ -.so man6/MultiCraft.6 - diff --git a/doc/Other License.md b/doc/Other License.md index 3180ec45c..25d74f56a 100644 --- a/doc/Other License.md +++ b/doc/Other License.md @@ -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. -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. They are an integral part of this project and are created or purchased exclusively for it. diff --git a/doc/Readme.md b/doc/Readme.md index cf4c9265d..1f4fd7895 100644 --- a/doc/Readme.md +++ b/doc/Readme.md @@ -1,4 +1,4 @@ -MultiCraft Docs +BlockColor Docs ======== Default controls @@ -61,24 +61,24 @@ Where each location is on each platform: * user = . * Linux installed: * bin = /usr/bin - * share = /usr/share/MultiCraft - * user = ~/.MultiCraft + * share = /usr/share/BlockColor + * user = ~/.BlockColor * macOS: * bin = Contents/MacOS * 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/ Configuration file: ------------------- - Default location: - $user/MultiCraft.conf -- It is created by MultiCraft when it is ran the first time. + $user/BlockColor.conf +- It is created by BlockColor when it is ran the first time. - A specific file can be specified on the command line: --config - 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: --------------------- @@ -122,13 +122,13 @@ For Fedora users: $ 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: -$ git clone --depth 1 https://github.com/MultiCraft/MultiCraft.git -$ cd MultiCraft +$ git clone --depth 1 https://github.com/BlockColor/BlockColor.git +$ cd BlockColor 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 -$ cd MultiCraft-master +$ cd BlockColor-master #### Build @@ -139,7 +139,7 @@ Build a version that runs directly from the source directory: Run it: - $ ./bin/MultiCraft + $ ./bin/BlockColor - 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), @@ -155,8 +155,8 @@ Run it: General options: - BUILD_CLIENT - Build MultiCraft client - BUILD_SERVER - Build MultiCraft server + BUILD_CLIENT - Build BlockColor client + BUILD_SERVER - Build BlockColor server CMAKE_BUILD_TYPE - Type of build (Release vs. Debug) Release - Release build Debug - Debug build @@ -178,7 +178,7 @@ General options: ENABLE_SYSTEM_JSONCPP - Use JsonCPP from system RUN_IN_PLACE - Create a portable install (worlds, settings etc. in current directory) 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: @@ -256,8 +256,8 @@ Library specific options: * Optional: gettext library and tools: http://gnuwin32.sourceforge.net/downlinks/gettext.php * This is used for other UI languages. Feel free to leave it out. - * And, of course, MultiCraft: - https://github.com/MultiCraftProject/MultiCraft + * And, of course, BlockColor: + https://github.com/BlockColorProject/BlockColor * Steps: * Select a directory called DIR hereafter in which you will operate. * Make sure you have CMake and a compiler installed. @@ -278,7 +278,7 @@ Library specific options: * irrlicht-1.8.3.zip * sqlite-amalgamation-3130000.zip (SQLite3 headers) * sqlite-dll-win32-x86-3130000.zip (SQLite3 library for 32bit system) - * MultiCraft-source.zip + * BlockColor-source.zip + zlib-1.2.5 * zlib.h + win32 @@ -300,18 +300,18 @@ Library specific options: +bin +include +lib - + MultiCraft + + BlockColor + src + doc * CMakeLists.txt ... ----------------- * Start up the CMake GUI - * Select "Browse Source..." and select DIR/MultiCraft + * Select "Browse Source..." and select DIR/BlockColor * Now, if using MSVC: - * Select "Browse Build..." and select DIR/MultiCraft-build + * Select "Browse Build..." and select DIR/BlockColor-build * Else if using MinGW: - * Select "Browse Build..." and select DIR/MultiCraft + * Select "Browse Build..." and select DIR/BlockColor * Select "Configure" * Select your compiler * 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_SERVER [ ] CMAKE_BUILD_TYPE Release - CMAKE_INSTALL_PREFIX DIR/MultiCraft-install + CMAKE_INSTALL_PREFIX DIR/BlockColor-install IRRLICHT_SOURCE_DIR DIR/irrlicht-1.8.3 RUN_IN_PLACE [X] WARN_ALL [ ] @@ -336,21 +336,21 @@ Library specific options: * 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 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. * Hit "Configure" * Hit "Configure" once again 8) * If something is still coloured red, you have a problem. * Hit "Generate" If using MSVC: - * Open the generated MultiCraft.sln + * Open the generated BlockColor.sln * The project defaults to the "Debug" configuration. Make very sure to select "Release", unless you want to debug some stuff (it's slower and might not even work at all) * Build the ALL_BUILD project * Build the INSTALL project * 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 project. If using MinGW: @@ -359,14 +359,14 @@ Library specific options: * You may need to copy some of the downloaded DLLs into bin/, see what running the produced executable tells you it doesn't have. * 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. set sourcedir=%CD% - set installpath="C:\tmp\MultiCraft_install" + set installpath="C:\tmp\BlockColor_install" set irrlichtpath="C:\tmp\irrlicht-1.7.2" set builddir=%sourcedir%\bvc10 diff --git a/doc/main_page.dox b/doc/main_page.dox index 7a65b47c4..a7024e248 100644 --- a/doc/main_page.dox +++ b/doc/main_page.dox @@ -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 -This page documents the internal structure of the MultiCraft engine's C++ code.\n +Welcome to the BlockColor engine Doxygen documentation site!\n +This page documents the internal structure of the BlockColor engine's C++ code.\n Use the tree view at the left to navigate. */ diff --git a/doc/protocol.txt b/doc/protocol.txt index 963b472ff..879e0c666 100644 --- a/doc/protocol.txt +++ b/doc/protocol.txt @@ -1,4 +1,4 @@ -MultiCraft protocol (incomplete, early draft): +BlockColor protocol (incomplete, early draft): Updated 2011-06-18 A custom protocol over UDP. diff --git a/doc/texture_packs.txt b/doc/texture_packs.txt index 23ca24bf3..041b84f84 100644 --- a/doc/texture_packs.txt +++ b/doc/texture_packs.txt @@ -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 diff --git a/games/default/files/3d_armor/LICENSE.txt b/games/default/files/3d_armor/LICENSE.txt deleted file mode 100644 index 9eb9a14c2..000000000 --- a/games/default/files/3d_armor/LICENSE.txt +++ /dev/null @@ -1,26 +0,0 @@ -MultiCraft Game mod: 3d_armor -============================= - -License Source Code -------------------- - -Copyright (C) 2012-2019 stujones11, Stuart Jones - -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 diff --git a/games/default/files/3d_armor/api.lua b/games/default/files/3d_armor/api.lua deleted file mode 100644 index c9defab6d..000000000 --- a/games/default/files/3d_armor/api.lua +++ /dev/null @@ -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) diff --git a/games/default/files/3d_armor/armor.lua b/games/default/files/3d_armor/armor.lua deleted file mode 100644 index 241343dcf..000000000 --- a/games/default/files/3d_armor/armor.lua +++ /dev/null @@ -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 \ No newline at end of file diff --git a/games/default/files/3d_armor/hud.lua b/games/default/files/3d_armor/hud.lua deleted file mode 100644 index a5c5def54..000000000 --- a/games/default/files/3d_armor/hud.lua +++ /dev/null @@ -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 \ No newline at end of file diff --git a/games/default/files/3d_armor/init.lua b/games/default/files/3d_armor/init.lua deleted file mode 100644 index 9608794fe..000000000 --- a/games/default/files/3d_armor/init.lua +++ /dev/null @@ -1,4 +0,0 @@ -local modpath = minetest.get_modpath("3d_armor") -dofile(modpath .. "/api.lua") -dofile(modpath .. "/armor.lua") -dofile(modpath .. "/hud.lua") diff --git a/games/default/files/3d_armor/textures/3d_armor_boots_chain.png b/games/default/files/3d_armor/textures/3d_armor_boots_chain.png deleted file mode 100644 index d56ea67b6..000000000 Binary files a/games/default/files/3d_armor/textures/3d_armor_boots_chain.png and /dev/null differ diff --git a/games/default/files/3d_armor/textures/3d_armor_boots_diamond.png b/games/default/files/3d_armor/textures/3d_armor_boots_diamond.png deleted file mode 100644 index e91d8aecb..000000000 Binary files a/games/default/files/3d_armor/textures/3d_armor_boots_diamond.png and /dev/null differ diff --git a/games/default/files/3d_armor/textures/3d_armor_boots_gold.png b/games/default/files/3d_armor/textures/3d_armor_boots_gold.png deleted file mode 100644 index 7ee4b1c4b..000000000 Binary files a/games/default/files/3d_armor/textures/3d_armor_boots_gold.png and /dev/null differ diff --git a/games/default/files/3d_armor/textures/3d_armor_boots_leather.png b/games/default/files/3d_armor/textures/3d_armor_boots_leather.png deleted file mode 100644 index 91898f85c..000000000 Binary files a/games/default/files/3d_armor/textures/3d_armor_boots_leather.png and /dev/null differ diff --git a/games/default/files/3d_armor/textures/3d_armor_boots_steel.png b/games/default/files/3d_armor/textures/3d_armor_boots_steel.png deleted file mode 100644 index d2ff50998..000000000 Binary files a/games/default/files/3d_armor/textures/3d_armor_boots_steel.png and /dev/null differ diff --git a/games/default/files/3d_armor/textures/3d_armor_chestplate_chain.png b/games/default/files/3d_armor/textures/3d_armor_chestplate_chain.png deleted file mode 100644 index 51414c24d..000000000 Binary files a/games/default/files/3d_armor/textures/3d_armor_chestplate_chain.png and /dev/null differ diff --git a/games/default/files/3d_armor/textures/3d_armor_chestplate_diamond.png b/games/default/files/3d_armor/textures/3d_armor_chestplate_diamond.png deleted file mode 100644 index 9fbc26d53..000000000 Binary files a/games/default/files/3d_armor/textures/3d_armor_chestplate_diamond.png and /dev/null differ diff --git a/games/default/files/3d_armor/textures/3d_armor_chestplate_gold.png b/games/default/files/3d_armor/textures/3d_armor_chestplate_gold.png deleted file mode 100644 index 46e8795dd..000000000 Binary files a/games/default/files/3d_armor/textures/3d_armor_chestplate_gold.png and /dev/null differ diff --git a/games/default/files/3d_armor/textures/3d_armor_chestplate_leather.png b/games/default/files/3d_armor/textures/3d_armor_chestplate_leather.png deleted file mode 100644 index 9799960f9..000000000 Binary files a/games/default/files/3d_armor/textures/3d_armor_chestplate_leather.png and /dev/null differ diff --git a/games/default/files/3d_armor/textures/3d_armor_chestplate_steel.png b/games/default/files/3d_armor/textures/3d_armor_chestplate_steel.png deleted file mode 100644 index d0cdf5f68..000000000 Binary files a/games/default/files/3d_armor/textures/3d_armor_chestplate_steel.png and /dev/null differ diff --git a/games/default/files/3d_armor/textures/3d_armor_helmet_chain.png b/games/default/files/3d_armor/textures/3d_armor_helmet_chain.png deleted file mode 100644 index 602e50c7f..000000000 Binary files a/games/default/files/3d_armor/textures/3d_armor_helmet_chain.png and /dev/null differ diff --git a/games/default/files/3d_armor/textures/3d_armor_helmet_diamond.png b/games/default/files/3d_armor/textures/3d_armor_helmet_diamond.png deleted file mode 100644 index 571417282..000000000 Binary files a/games/default/files/3d_armor/textures/3d_armor_helmet_diamond.png and /dev/null differ diff --git a/games/default/files/3d_armor/textures/3d_armor_helmet_gold.png b/games/default/files/3d_armor/textures/3d_armor_helmet_gold.png deleted file mode 100644 index a3a644e50..000000000 Binary files a/games/default/files/3d_armor/textures/3d_armor_helmet_gold.png and /dev/null differ diff --git a/games/default/files/3d_armor/textures/3d_armor_helmet_leather.png b/games/default/files/3d_armor/textures/3d_armor_helmet_leather.png deleted file mode 100644 index 6527dc64b..000000000 Binary files a/games/default/files/3d_armor/textures/3d_armor_helmet_leather.png and /dev/null differ diff --git a/games/default/files/3d_armor/textures/3d_armor_helmet_steel.png b/games/default/files/3d_armor/textures/3d_armor_helmet_steel.png deleted file mode 100644 index 49309cbed..000000000 Binary files a/games/default/files/3d_armor/textures/3d_armor_helmet_steel.png and /dev/null differ diff --git a/games/default/files/3d_armor/textures/3d_armor_inv_boots_chain.png b/games/default/files/3d_armor/textures/3d_armor_inv_boots_chain.png deleted file mode 100644 index 6497dee11..000000000 Binary files a/games/default/files/3d_armor/textures/3d_armor_inv_boots_chain.png and /dev/null differ diff --git a/games/default/files/3d_armor/textures/3d_armor_inv_boots_diamond.png b/games/default/files/3d_armor/textures/3d_armor_inv_boots_diamond.png deleted file mode 100644 index 3d5c94bbd..000000000 Binary files a/games/default/files/3d_armor/textures/3d_armor_inv_boots_diamond.png and /dev/null differ diff --git a/games/default/files/3d_armor/textures/3d_armor_inv_boots_gold.png b/games/default/files/3d_armor/textures/3d_armor_inv_boots_gold.png deleted file mode 100644 index 6d3131550..000000000 Binary files a/games/default/files/3d_armor/textures/3d_armor_inv_boots_gold.png and /dev/null differ diff --git a/games/default/files/3d_armor/textures/3d_armor_inv_boots_leather.png b/games/default/files/3d_armor/textures/3d_armor_inv_boots_leather.png deleted file mode 100644 index a2103c8dd..000000000 Binary files a/games/default/files/3d_armor/textures/3d_armor_inv_boots_leather.png and /dev/null differ diff --git a/games/default/files/3d_armor/textures/3d_armor_inv_boots_steel.png b/games/default/files/3d_armor/textures/3d_armor_inv_boots_steel.png deleted file mode 100644 index 4154af9d7..000000000 Binary files a/games/default/files/3d_armor/textures/3d_armor_inv_boots_steel.png and /dev/null differ diff --git a/games/default/files/3d_armor/textures/3d_armor_inv_chestplate_chain.png b/games/default/files/3d_armor/textures/3d_armor_inv_chestplate_chain.png deleted file mode 100644 index 98a1a29f8..000000000 Binary files a/games/default/files/3d_armor/textures/3d_armor_inv_chestplate_chain.png and /dev/null differ diff --git a/games/default/files/3d_armor/textures/3d_armor_inv_chestplate_diamond.png b/games/default/files/3d_armor/textures/3d_armor_inv_chestplate_diamond.png deleted file mode 100644 index 9d204bf6b..000000000 Binary files a/games/default/files/3d_armor/textures/3d_armor_inv_chestplate_diamond.png and /dev/null differ diff --git a/games/default/files/3d_armor/textures/3d_armor_inv_chestplate_gold.png b/games/default/files/3d_armor/textures/3d_armor_inv_chestplate_gold.png deleted file mode 100644 index 05a0113e2..000000000 Binary files a/games/default/files/3d_armor/textures/3d_armor_inv_chestplate_gold.png and /dev/null differ diff --git a/games/default/files/3d_armor/textures/3d_armor_inv_chestplate_leather.png b/games/default/files/3d_armor/textures/3d_armor_inv_chestplate_leather.png deleted file mode 100644 index 69eb275a4..000000000 Binary files a/games/default/files/3d_armor/textures/3d_armor_inv_chestplate_leather.png and /dev/null differ diff --git a/games/default/files/3d_armor/textures/3d_armor_inv_chestplate_steel.png b/games/default/files/3d_armor/textures/3d_armor_inv_chestplate_steel.png deleted file mode 100644 index f88517f1a..000000000 Binary files a/games/default/files/3d_armor/textures/3d_armor_inv_chestplate_steel.png and /dev/null differ diff --git a/games/default/files/3d_armor/textures/3d_armor_inv_helmet_chain.png b/games/default/files/3d_armor/textures/3d_armor_inv_helmet_chain.png deleted file mode 100644 index f2c253660..000000000 Binary files a/games/default/files/3d_armor/textures/3d_armor_inv_helmet_chain.png and /dev/null differ diff --git a/games/default/files/3d_armor/textures/3d_armor_inv_helmet_diamond.png b/games/default/files/3d_armor/textures/3d_armor_inv_helmet_diamond.png deleted file mode 100644 index 9bb198602..000000000 Binary files a/games/default/files/3d_armor/textures/3d_armor_inv_helmet_diamond.png and /dev/null differ diff --git a/games/default/files/3d_armor/textures/3d_armor_inv_helmet_gold.png b/games/default/files/3d_armor/textures/3d_armor_inv_helmet_gold.png deleted file mode 100644 index 6a4b03229..000000000 Binary files a/games/default/files/3d_armor/textures/3d_armor_inv_helmet_gold.png and /dev/null differ diff --git a/games/default/files/3d_armor/textures/3d_armor_inv_helmet_leather.png b/games/default/files/3d_armor/textures/3d_armor_inv_helmet_leather.png deleted file mode 100644 index 8507f0629..000000000 Binary files a/games/default/files/3d_armor/textures/3d_armor_inv_helmet_leather.png and /dev/null differ diff --git a/games/default/files/3d_armor/textures/3d_armor_inv_helmet_steel.png b/games/default/files/3d_armor/textures/3d_armor_inv_helmet_steel.png deleted file mode 100644 index 5adaac31b..000000000 Binary files a/games/default/files/3d_armor/textures/3d_armor_inv_helmet_steel.png and /dev/null differ diff --git a/games/default/files/3d_armor/textures/3d_armor_inv_leggings_chain.png b/games/default/files/3d_armor/textures/3d_armor_inv_leggings_chain.png deleted file mode 100644 index 845621561..000000000 Binary files a/games/default/files/3d_armor/textures/3d_armor_inv_leggings_chain.png and /dev/null differ diff --git a/games/default/files/3d_armor/textures/3d_armor_inv_leggings_diamond.png b/games/default/files/3d_armor/textures/3d_armor_inv_leggings_diamond.png deleted file mode 100644 index 83dbfc05e..000000000 Binary files a/games/default/files/3d_armor/textures/3d_armor_inv_leggings_diamond.png and /dev/null differ diff --git a/games/default/files/3d_armor/textures/3d_armor_inv_leggings_gold.png b/games/default/files/3d_armor/textures/3d_armor_inv_leggings_gold.png deleted file mode 100644 index 83df8d210..000000000 Binary files a/games/default/files/3d_armor/textures/3d_armor_inv_leggings_gold.png and /dev/null differ diff --git a/games/default/files/3d_armor/textures/3d_armor_inv_leggings_leather.png b/games/default/files/3d_armor/textures/3d_armor_inv_leggings_leather.png deleted file mode 100644 index a39e725dc..000000000 Binary files a/games/default/files/3d_armor/textures/3d_armor_inv_leggings_leather.png and /dev/null differ diff --git a/games/default/files/3d_armor/textures/3d_armor_inv_leggings_steel.png b/games/default/files/3d_armor/textures/3d_armor_inv_leggings_steel.png deleted file mode 100644 index 2faa4ef40..000000000 Binary files a/games/default/files/3d_armor/textures/3d_armor_inv_leggings_steel.png and /dev/null differ diff --git a/games/default/files/3d_armor/textures/3d_armor_leggings_chain.png b/games/default/files/3d_armor/textures/3d_armor_leggings_chain.png deleted file mode 100644 index 632e9ab95..000000000 Binary files a/games/default/files/3d_armor/textures/3d_armor_leggings_chain.png and /dev/null differ diff --git a/games/default/files/3d_armor/textures/3d_armor_leggings_diamond.png b/games/default/files/3d_armor/textures/3d_armor_leggings_diamond.png deleted file mode 100644 index 9d784b982..000000000 Binary files a/games/default/files/3d_armor/textures/3d_armor_leggings_diamond.png and /dev/null differ diff --git a/games/default/files/3d_armor/textures/3d_armor_leggings_gold.png b/games/default/files/3d_armor/textures/3d_armor_leggings_gold.png deleted file mode 100644 index 12365001d..000000000 Binary files a/games/default/files/3d_armor/textures/3d_armor_leggings_gold.png and /dev/null differ diff --git a/games/default/files/3d_armor/textures/3d_armor_leggings_leather.png b/games/default/files/3d_armor/textures/3d_armor_leggings_leather.png deleted file mode 100644 index 263388bc8..000000000 Binary files a/games/default/files/3d_armor/textures/3d_armor_leggings_leather.png and /dev/null differ diff --git a/games/default/files/3d_armor/textures/3d_armor_leggings_steel.png b/games/default/files/3d_armor/textures/3d_armor_leggings_steel.png deleted file mode 100644 index 2f912f903..000000000 Binary files a/games/default/files/3d_armor/textures/3d_armor_leggings_steel.png and /dev/null differ diff --git a/games/default/files/3d_armor/textures/3d_armor_statbar_bg.png b/games/default/files/3d_armor/textures/3d_armor_statbar_bg.png deleted file mode 100644 index 78d073e09..000000000 Binary files a/games/default/files/3d_armor/textures/3d_armor_statbar_bg.png and /dev/null differ diff --git a/games/default/files/3d_armor/textures/3d_armor_statbar_fg.png b/games/default/files/3d_armor/textures/3d_armor_statbar_fg.png deleted file mode 100644 index b931e482f..000000000 Binary files a/games/default/files/3d_armor/textures/3d_armor_statbar_fg.png and /dev/null differ diff --git a/games/default/files/Cars/airboat/README.txt b/games/default/files/Cars/airboat/README.txt new file mode 100644 index 000000000..90f395d38 --- /dev/null +++ b/games/default/files/Cars/airboat/README.txt @@ -0,0 +1,37 @@ +airboat 0.1.8 by paramat +For Minetest 0.4.16 and later. Compatible with MT 5.0.0-dev. +Depends: default + +Licenses +-------- +Source code: MIT +Media (textures and nodebox design): CC0 1.0 + +Note about textures and crafting +-------------------------------- +This mod is fully functional but does not currently have a crafting recipe or +detailed textures. The textures are templates for you to add detail to. +The airboat is available in the creative inventory or by using the /giveme chat +command. + +Usage +----- +Third-person camera mode is recommended when travelling for a better view. +The airboat can be placed on any node, including liquids. It can land on, and +will float in, a liquid. + +Controls +-------- +Right mouse button = Enter or exit airboat when pointing at airboat. +Forward = Speed up. + Slow down when moving backwards. +Forward + backward = Enable cruise mode: Airboat will accelerate to maximum + forward speed and remain at that speed without needing to + hold the forward key. +Backward = Slow down. + Speed up when moving backwards. + Disable cruise mode. +Left = Turn left. +Right = Turn right. +Jump/up = Ascend. +Sneak/down = Descend. diff --git a/games/default/files/3d_armor/depends.txt b/games/default/files/Cars/airboat/depends.txt similarity index 100% rename from games/default/files/3d_armor/depends.txt rename to games/default/files/Cars/airboat/depends.txt diff --git a/games/default/files/Cars/airboat/init.lua b/games/default/files/Cars/airboat/init.lua new file mode 100644 index 000000000..554302719 --- /dev/null +++ b/games/default/files/Cars/airboat/init.lua @@ -0,0 +1,312 @@ +local source_list = { + {"black", "Darkened", "292421", 40, 36, 33}, + {"blue", "Blue", "0000FF", 0, 0, 255}, + {"green", "Green", "00FF00", 0, 255, 0}, + {"white", "White", "F5F5F5", 245, 245, 245}, + {"orange", "Orange", "FF6103", 255, 97, 3}, + {"red", "Red", "FF0000", 255, 0, 0}, + {"yellow", "Yellow", "FFFF00", 255, 255, 0}, + {"pink", "pink", "FF69B4", 255, 105, 180} +} + +for i in ipairs(source_list) do + local color = source_list[i][1] + local description = source_list[i][2] + local colour = source_list[i][3] + local red = source_list[i][4] + local green = source_list[i][5] + local blue = source_list[i][6] + +-- Functions + +local function get_sign(i) + if i == 0 then + return 0 + else + return i / math.abs(i) + end +end + + +local function get_velocity(v, yaw, y) + local x = -math.sin(yaw) * v + local z = math.cos(yaw) * v + return {x = x, y = y, z = z} +end + + +local function get_v(v) + return math.sqrt(v.x ^ 2 + v.z ^ 2) +end + + +-- Airboat entity + +local airboat = { + initial_properties = { + physical = true, + collide_with_objects = false, -- Workaround fix for a MT engine bug + collisionbox = {-0.85, -1.5, -0.85, 0.85, 1.5, 0.85}, + visual = "wielditem", + visual_size = {x = 2.0, y = 2.0}, -- Scale up of nodebox is these * 1.5 + textures = {"airboat:airboat_nodebox" ..color}, + }, + + -- Custom fields + driver = nil, + removed = false, + v = 0, + vy = 0, + rot = 0, + auto = false, +} + + +function airboat.on_rightclick(self, clicker) + if not clicker or not clicker:is_player() then + return + end + local name = clicker:get_player_name() + if self.driver and name == self.driver then + -- Detach + self.driver = nil + self.auto = false + clicker:set_detach() + default.player_attached[name] = false + default.player_set_animation(clicker, "stand" , 30) + local pos = clicker:getpos() + minetest.after(0.1, function() + clicker:setpos(pos) + end) + elseif not self.driver then + -- Attach + local attach = clicker:get_attach() + if attach and attach:get_luaentity() then + local luaentity = attach:get_luaentity() + if luaentity.driver then + luaentity.driver = nil + end + clicker:set_detach() + end + self.driver = name + clicker:set_attach(self.object, "", + {x = 0, y = -2, z = 0}, {x = 0, y = 0, z = 0}) + default.player_attached[name] = true + minetest.after(0.2, function() + default.player_set_animation(clicker, "sit" , 30) + end) + clicker:set_look_horizontal(self.object:getyaw()) + end +end + + +function airboat.on_activate(self, staticdata, dtime_s) + self.object:set_armor_groups({immortal = 1}) +end + + +function airboat.on_punch(self, puncher) + if not puncher or not puncher:is_player() or self.removed then + return + end + + local name = puncher:get_player_name() + if self.driver and name == self.driver then + -- Detach + self.driver = nil + puncher:set_detach() + default.player_attached[name] = false + end + if not self.driver then + -- Move to inventory + self.removed = true + local inv = puncher:get_inventory() + if not (creative and creative.is_enabled_for + and creative.is_enabled_for(name)) + or not inv:contains_item("main", "airboat:airboat" ..color) then + local leftover = inv:add_item("main", "airboat:airboat" ..color) + if not leftover:is_empty() then + minetest.add_item(self.object:getpos(), leftover) + end + end + minetest.after(0.1, function() + self.object:remove() + end) + end +end + + +function airboat.on_step(self, dtime) + self.v = get_v(self.object:getvelocity()) * get_sign(self.v) + self.vy = self.object:getvelocity().y + + -- Controls + if self.driver then + local driver_objref = minetest.get_player_by_name(self.driver) + if driver_objref then + local ctrl = driver_objref:get_player_control() + if ctrl.up and ctrl.down then + if not self.auto then + self.auto = true + minetest.chat_send_player(self.driver, + "[airboat] Cruise on") + end + elseif ctrl.down then + self.v = self.v - 0.1 + if self.auto then + self.auto = false + minetest.chat_send_player(self.driver, + "[airboat] Cruise off") + end + elseif ctrl.up or self.auto then + self.v = self.v + 0.1 + end + if ctrl.left then + self.rot = self.rot + 0.001 + elseif ctrl.right then + self.rot = self.rot - 0.001 + end + if ctrl.jump then + self.vy = self.vy + 0.075 + elseif ctrl.sneak then + self.vy = self.vy - 0.075 + end + else + -- Player left server while driving + -- In MT 5.0.0 use 'airboat:on_detach_child()' to do this + self.driver = nil + self.auto = false + minetest.log("warning", "[airboat] Driver left server while" .. + " driving. This may cause some 'Pushing ObjectRef to" .. + " removed/deactivated object' warnings.") + end + end + + -- Early return for stationary vehicle + if self.v == 0 and self.rot == 0 and self.vy == 0 then + self.object:setpos(self.object:getpos()) + return + end + + -- Reduction and limiting of linear speed + local s = get_sign(self.v) + self.v = self.v - 0.02 * s + if s ~= get_sign(self.v) then + self.v = 0 + end + if math.abs(self.v) > 6 then + self.v = 6 * get_sign(self.v) + end + + -- Reduction and limiting of rotation + local sr = get_sign(self.rot) + self.rot = self.rot - 0.0003 * sr + if sr ~= get_sign(self.rot) then + self.rot = 0 + end + if math.abs(self.rot) > 0.015 then + self.rot = 0.015 * get_sign(self.rot) + end + + -- Reduction and limiting of vertical speed + local sy = get_sign(self.vy) + self.vy = self.vy - 0.03 * sy + if sy ~= get_sign(self.vy) then + self.vy = 0 + end + if math.abs(self.vy) > 4 then + self.vy = 4 * get_sign(self.vy) + end + + local new_acce = {x = 0, y = 0, z = 0} + -- Bouyancy in liquids + local p = self.object:getpos() + p.y = p.y - 1.5 + local def = minetest.registered_nodes[minetest.get_node(p).name] + if def and (def.liquidtype == "source" or def.liquidtype == "flowing") then + new_acce = {x = 0, y = 10, z = 0} + end + + self.object:setpos(self.object:getpos()) + self.object:setvelocity(get_velocity(self.v, self.object:getyaw(), self.vy)) + self.object:setacceleration(new_acce) + self.object:setyaw(self.object:getyaw() + (1 + dtime) * self.rot) +end + + +minetest.register_entity("airboat:airboat" ..color , airboat) + + +-- Craftitem + +minetest.register_craftitem("airboat:airboat" .. color, { + description = "Airboat" .. color, + inventory_image = "airboat_airboat_inv.png^[colorize:#"..colour..":70", + wield_image = "none.png", + wield_scale = {x = 4, y = 4, z = 4}, + liquids_pointable = true, + + on_place = function(itemstack, placer, pointed_thing) + local under = pointed_thing.under + local node = minetest.get_node(under) + local udef = minetest.registered_nodes[node.name] + + -- Run any on_rightclick function of pointed node instead + if udef and udef.on_rightclick and + not (placer and placer:is_player() and + placer:get_player_control().sneak) then + return udef.on_rightclick(under, node, placer, itemstack, + pointed_thing) or itemstack + end + + if pointed_thing.type ~= "node" then + return itemstack + end + + pointed_thing.under.y = pointed_thing.under.y + 2 + local airboat = minetest.add_entity(pointed_thing.under, + "airboat:airboat" ..color) + if airboat then + if placer then + airboat:setyaw(placer:get_look_horizontal()) + end + local player_name = placer and placer:get_player_name() or "" + if not (creative and creative.is_enabled_for and + creative.is_enabled_for(player_name)) then + itemstack:take_item() + end + end + return itemstack + end, +}) + + +-- Nodebox for entity wielditem visual + +minetest.register_node("airboat:airboat_nodebox" .. color, { + description = "Airboat Nodebox" .. color, + tiles = { -- Top, base, right, left, front, back + "airboat_airboat_top.png^[colorize:#"..colour..":70", + "airboat_airboat_base.png^[colorize:#"..colour..":70", + "airboat_airboat_right.png^[colorize:#"..colour..":70", + "airboat_airboat_left.png^[colorize:#"..colour..":70", + "airboat_airboat_front.png^[colorize:#"..colour..":70", + "airboat_airboat_back.png^[colorize:#"..colour..":70", + }, + paramtype = "light", + drawtype = "nodebox", + node_box = { + type = "fixed", + fixed = { -- Widmin, heimin, lenmin, widmax, heimax, lenmax + {-0.271, -0.167, -0.5, 0.271, 0.375, 0.5}, -- Envelope + {-0.167, -0.5, -0.25, 0.167, -0.167, 0.25}, -- Gondola + {-0.021, 0.375, -0.5, 0.021, 0.5, -0.25}, -- Top fin + {-0.021, -0.292, -0.5, 0.021, -0.167, -0.25}, -- Base fin + {-0.396, 0.083, -0.5, -0.271, 0.125, -0.25}, -- Left fin + { 0.271, 0.083, -0.5, 0.396, 0.125, -0.25}, -- Right fin + }, + }, + groups = {not_in_creative_inventory = 1}, +}) + +end diff --git a/games/default/files/Cars/airboat/license.txt b/games/default/files/Cars/airboat/license.txt new file mode 100644 index 000000000..39d6fbdf7 --- /dev/null +++ b/games/default/files/Cars/airboat/license.txt @@ -0,0 +1,57 @@ +License of source code +---------------------- + +The MIT License (MIT) +Copyright (C) 2018 paramat + +Permission is hereby granted, free of charge, to any person obtaining a copy of this +software and associated documentation files (the "Software"), to deal in the Software +without restriction, including without limitation the rights to use, copy, modify, merge, +publish, distribute, sublicense, and/or sell copies of the Software, and to permit +persons to whom the Software is furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all copies or +substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, +INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR +PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE +FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR +OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER +DEALINGS IN THE SOFTWARE. + +For more details: +https://opensource.org/licenses/MIT + + +License of media (textures) +--------------------------- + +CC0 1.0 Universal (CC0 1.0) Public Domain Dedication +Paramat + +No Copyright + +The person who associated a work with this deed has dedicated the work to the +public domain by waiving all of his or her rights to the work worldwide under +copyright law, including all related and neighboring rights, to the extent +allowed by law. + +You can copy, modify, distribute and perform the work, even for commercial +purposes, all without asking permission. See Other Information below. + +Other Information: + +In no way are the patent or trademark rights of any person affected by CC0, nor +are the rights that other persons may have in the work or in how the work is +used, such as publicity or privacy rights. + +Unless expressly stated otherwise, the person who associated a work with this +deed makes no warranties about the work, and disclaims liability for all uses +of the work, to the fullest extent permitted by applicable law. + +When using or citing the work, you should not imply endorsement by the author +or the affirmer. + +For more details: +https://creativecommons.org/publicdomain/zero/1.0/ diff --git a/games/default/files/Cars/airboat/mod.conf b/games/default/files/Cars/airboat/mod.conf new file mode 100644 index 000000000..573fd0988 --- /dev/null +++ b/games/default/files/Cars/airboat/mod.conf @@ -0,0 +1 @@ +name = airboat diff --git a/games/default/files/Cars/airboat/textures/airboat_airboat_back.png b/games/default/files/Cars/airboat/textures/airboat_airboat_back.png new file mode 100644 index 000000000..520f4c6bc Binary files /dev/null and b/games/default/files/Cars/airboat/textures/airboat_airboat_back.png differ diff --git a/games/default/files/Cars/airboat/textures/airboat_airboat_base.png b/games/default/files/Cars/airboat/textures/airboat_airboat_base.png new file mode 100644 index 000000000..92b52b40f Binary files /dev/null and b/games/default/files/Cars/airboat/textures/airboat_airboat_base.png differ diff --git a/games/default/files/Cars/airboat/textures/airboat_airboat_front.png b/games/default/files/Cars/airboat/textures/airboat_airboat_front.png new file mode 100644 index 000000000..b24b0ef4f Binary files /dev/null and b/games/default/files/Cars/airboat/textures/airboat_airboat_front.png differ diff --git a/games/default/files/Cars/airboat/textures/airboat_airboat_left.png b/games/default/files/Cars/airboat/textures/airboat_airboat_left.png new file mode 100644 index 000000000..896c64561 Binary files /dev/null and b/games/default/files/Cars/airboat/textures/airboat_airboat_left.png differ diff --git a/games/default/files/Cars/airboat/textures/airboat_airboat_right.png b/games/default/files/Cars/airboat/textures/airboat_airboat_right.png new file mode 100644 index 000000000..2f1c3c89f Binary files /dev/null and b/games/default/files/Cars/airboat/textures/airboat_airboat_right.png differ diff --git a/games/default/files/Cars/airboat/textures/airboat_airboat_top.png b/games/default/files/Cars/airboat/textures/airboat_airboat_top.png new file mode 100644 index 000000000..e4ce3f614 Binary files /dev/null and b/games/default/files/Cars/airboat/textures/airboat_airboat_top.png differ diff --git a/games/default/files/Cars/carts/README.txt b/games/default/files/Cars/carts/README.txt new file mode 100644 index 000000000..31ce6449b --- /dev/null +++ b/games/default/files/Cars/carts/README.txt @@ -0,0 +1,22 @@ +Carts (formerly boost_cart) +========================== + +Carts, based almost entirely on the mod boost_cart [1], which +itself is based on (and fully compatible with) the carts mod [2]. + +The model was originally designed by stujones11 [3] (CC-0). + +Cart textures are based on original work from PixelBOX (WTFPL). + + +[1] https://github.com/SmallJoker/boost_cart/ +[2] https://github.com/PilzAdam/carts/ +[3] https://github.com/stujones11/railcart/ + + +Features +---------- +- A fast cart for your railway or roller coaster (up to 7 m/s!) +- Boost and brake rails +- Rail junction switching with the 'right-left' walking keys +- Handbrake with the 'back' key diff --git a/games/default/files/Cars/carts/cart_entity.lua b/games/default/files/Cars/carts/cart_entity.lua new file mode 100644 index 000000000..9e9cd41b4 --- /dev/null +++ b/games/default/files/Cars/carts/cart_entity.lua @@ -0,0 +1,430 @@ + +color1 = minetest.setting_get("color1") or "292421" +color2 = minetest.setting_get("color2") or "0000FF" +color3 = minetest.setting_get("color3") or "00FF00" +color4 = minetest.setting_get("color4") or "F5F5F5" +color5 = minetest.setting_get("color5") or "FF6103" +color6 = minetest.setting_get("color6") or "FF0000" +color7 = minetest.setting_get("color7") or "FFFF00" +color8 = minetest.setting_get("color8") or "FF69B4" + +local source_list = { + {"black", "Color1", color1, 40, 36, 33}, + {"blue", "Color2", color2, 0, 0, 255}, + {"green", "Color3", color3, 0, 255, 0}, + {"white", "Color4", color4, 245, 245, 245}, + {"orange", "Color5", color5, 255, 97, 3}, + {"red", "Color6", color6, 255, 0, 0}, + {"yellow", "Color7", color7, 255, 255, 0}, + {"pink", "Color8", color8, 255, 105, 180} +} + +for i in ipairs(source_list) do + local color = source_list[i][1] + local desc = source_list[i][2] + local colour = source_list[i][3] + local red = source_list[i][4] + local green = source_list[i][5] + local blue = source_list[i][6] + +local cart_entity = { + physical = false, -- otherwise going uphill breaks + collisionbox = {-0.5, -0.5, -0.5, 0.5, 0.5, 0.5}, + visual = "mesh", + mesh = "carts_cart.b3d", + visual_size = {x=1, y=1}, + + textures = { +"carts.png^[colorize:#"..colour..":70" +}, + + driver = nil, + punched = false, -- used to re-send velocity and position + velocity = {x=0, y=0, z=0}, -- only used on punch + old_dir = {x=1, y=0, z=0}, -- random value to start the cart on punch + old_pos = nil, + old_switch = 0, + railtype = nil, + attached_items = {} +} + +function cart_entity:on_rightclick(clicker) + if not clicker or not clicker:is_player() then + return + end + local player_name = clicker:get_player_name() + if self.driver and player_name == self.driver then + self.driver = nil + carts:manage_attachment(clicker, nil) + elseif not self.driver then + self.driver = player_name + carts:manage_attachment(clicker, self.object) + end +end + +function cart_entity:on_activate(staticdata, dtime_s) + self.object:set_armor_groups({immortal=1}) + if string.sub(staticdata, 1, string.len("return")) ~= "return" then + return + end + local data = minetest.deserialize(staticdata) + if not data or type(data) ~= "table" then + return + end + self.railtype = data.railtype + if data.old_dir then + self.old_dir = data.old_dir + end + if data.old_vel then + self.old_vel = data.old_vel + end +end + +function cart_entity:get_staticdata() + return minetest.serialize({ + railtype = self.railtype, + old_dir = self.old_dir, + old_vel = self.old_vel + }) +end + +function cart_entity:on_punch(puncher, time_from_last_punch, tool_capabilities, direction) + local pos = self.object:getpos() + if not self.railtype then + local node = minetest.get_node(pos).name + self.railtype = minetest.get_item_group(node, "connect_to_raillike") + end + -- Punched by non-player + if not puncher or not puncher:is_player() then + local cart_dir = carts:get_rail_direction(pos, self.old_dir, nil, nil, self.railtype) + if vector.equals(cart_dir, {x=0, y=0, z=0}) then + return + end + self.velocity = vector.multiply(cart_dir, 2) + self.punched = true + return + end + -- Player digs cart by sneak-punch + if puncher:get_player_control().sneak then + if self.sound_handle then + minetest.sound_stop(self.sound_handle) + end + -- Detach driver and items + if self.driver then + if self.old_pos then + self.object:setpos(self.old_pos) + end + local player = minetest.get_player_by_name(self.driver) + carts:manage_attachment(player, nil) + end + for _,obj_ in ipairs(self.attached_items) do + if obj_ then + obj_:set_detach() + end + end + -- Pick up cart + local inv = puncher:get_inventory() + if not (creative and creative.is_enabled_for + and creative.is_enabled_for(puncher:get_player_name())) + or not inv:contains_item("main", "carts:cart" .. color) then + local leftover = inv:add_item("main", "carts:cart" .. color) + -- If no room in inventory add a replacement cart to the world + if not leftover:is_empty() then + minetest.add_item(self.object:getpos(), leftover) + end + end + self.object:remove() + return + end + -- Player punches cart to alter velocity + local vel = self.object:getvelocity() + if puncher:get_player_name() == self.driver then + if math.abs(vel.x + vel.z) > carts.punch_speed_max then + return + end + end + + local punch_dir = carts:velocity_to_dir(puncher:get_look_dir()) + punch_dir.y = 0 + local cart_dir = carts:get_rail_direction(pos, punch_dir, nil, nil, self.railtype) + if vector.equals(cart_dir, {x=0, y=0, z=0}) then + return + end + + local punch_interval = 1 + if tool_capabilities and tool_capabilities.full_punch_interval then + punch_interval = tool_capabilities.full_punch_interval + end + time_from_last_punch = math.min(time_from_last_punch or punch_interval, punch_interval) + local f = 2 * (time_from_last_punch / punch_interval) + + self.velocity = vector.multiply(cart_dir, f) + self.old_dir = cart_dir + self.punched = true +end + +local function rail_on_step_event(handler, obj, dtime) + if handler then + handler(obj, dtime) + end +end + +-- sound refresh interval = 1.0sec +local function rail_sound(self, dtime) + if not self.sound_ttl then + self.sound_ttl = 1.0 + return + elseif self.sound_ttl > 0 then + self.sound_ttl = self.sound_ttl - dtime + return + end + self.sound_ttl = 1.0 + if self.sound_handle then + local handle = self.sound_handle + self.sound_handle = nil + minetest.after(0.2, minetest.sound_stop, handle) + end + local vel = self.object:getvelocity() + local speed = vector.length(vel) + if speed > 0 then + self.sound_handle = minetest.sound_play( + "carts_cart_moving", { + object = self.object, + gain = (speed / carts.speed_max) / 2, + loop = true, + }) + end +end + +local function get_railparams(pos) + local node = minetest.get_node(pos) + return carts.railparams[node.name] or {} +end + +local function rail_on_step(self, dtime) + local vel = self.object:getvelocity() + if self.punched then + vel = vector.add(vel, self.velocity) + self.object:setvelocity(vel) + self.old_dir.y = 0 + elseif vector.equals(vel, {x=0, y=0, z=0}) then + return + end + + local pos = self.object:getpos() + local update = {} + + -- stop cart if velocity vector flips + if self.old_vel and self.old_vel.y == 0 and + (self.old_vel.x * vel.x < 0 or self.old_vel.z * vel.z < 0) then + self.old_vel = {x = 0, y = 0, z = 0} + self.old_pos = pos + self.object:setvelocity(vector.new()) + self.object:setacceleration(vector.new()) + rail_on_step_event(get_railparams(pos).on_step, self, dtime) + return + end + self.old_vel = vector.new(vel) + + if self.old_pos and not self.punched then + local flo_pos = vector.round(pos) + local flo_old = vector.round(self.old_pos) + if vector.equals(flo_pos, flo_old) then + -- Do not check one node multiple times + return + end + end + + local ctrl, player + + -- Get player controls + if self.driver then + player = minetest.get_player_by_name(self.driver) + if player then + ctrl = player:get_player_control() + end + end + + if self.old_pos then + -- Detection for "skipping" nodes + local found_path = carts:pathfinder( + pos, self.old_pos, self.old_dir, ctrl, self.old_switch, self.railtype + ) + + if not found_path then + -- No rail found: reset back to the expected position + pos = vector.new(self.old_pos) + update.pos = true + end + end + + local cart_dir = carts:velocity_to_dir(vel) + local railparams + + -- dir: New moving direction of the cart + -- switch_keys: Currently pressed L/R key, used to ignore the key on the next rail node + local dir, switch_keys = carts:get_rail_direction( + pos, cart_dir, ctrl, self.old_switch, self.railtype + ) + + local new_acc = {x=0, y=0, z=0} + if vector.equals(dir, {x=0, y=0, z=0}) then + vel = {x = 0, y = 0, z = 0} + pos = vector.round(pos) + update.pos = true + update.vel = true + else + -- Direction change detected + if not vector.equals(dir, self.old_dir) then + vel = vector.multiply(dir, math.abs(vel.x + vel.z)) + update.vel = true + if dir.y ~= self.old_dir.y then + pos = vector.round(pos) + update.pos = true + end + end + -- Center on the rail + if dir.z ~= 0 and math.floor(pos.x + 0.5) ~= pos.x then + pos.x = math.floor(pos.x + 0.5) + update.pos = true + end + if dir.x ~= 0 and math.floor(pos.z + 0.5) ~= pos.z then + pos.z = math.floor(pos.z + 0.5) + update.pos = true + end + + -- Slow down or speed up.. + local acc = dir.y * -4.0 + + -- Get rail for corrected position + railparams = get_railparams(pos) + + -- no need to check for railparams == nil since we always make it exist. + local speed_mod = railparams.acceleration + if speed_mod and speed_mod ~= 0 then + -- Try to make it similar to the original carts mod + acc = acc + speed_mod + else + -- Handbrake or coast + if ctrl and ctrl.down then + acc = acc - 3 + else + acc = acc - 0.4 + end + end + + new_acc = vector.multiply(dir, acc) + end + + -- Limits + local max_vel = carts.speed_max + for _, v in pairs({"x","y","z"}) do + if math.abs(vel[v]) > max_vel then + vel[v] = carts:get_sign(vel[v]) * max_vel + new_acc[v] = 0 + update.vel = true + end + end + + self.object:setacceleration(new_acc) + self.old_pos = vector.new(pos) + if not vector.equals(dir, {x=0, y=0, z=0}) then + self.old_dir = vector.new(dir) + end + self.old_switch = switch_keys + + if self.punched then + -- Collect dropped items + for _, obj_ in pairs(minetest.get_objects_inside_radius(pos, 1)) do + if not obj_:is_player() and + obj_:get_luaentity() and + not obj_:get_luaentity().physical_state and + obj_:get_luaentity().name == "__builtin:item" then + + obj_:set_attach(self.object, "", {x=0, y=0, z=0}, {x=0, y=0, z=0}) + self.attached_items[#self.attached_items + 1] = obj_ + end + end + self.punched = false + update.vel = true + end + + railparams = railparams or get_railparams(pos) + + if not (update.vel or update.pos) then + rail_on_step_event(railparams.on_step, self, dtime) + return + end + + local yaw = 0 + if self.old_dir.x < 0 then + yaw = 0.5 + elseif self.old_dir.x > 0 then + yaw = 1.5 + elseif self.old_dir.z < 0 then + yaw = 1 + end + self.object:setyaw(yaw * math.pi) + + local anim = {x=0, y=0} + if dir.y == -1 then + anim = {x=1, y=1} + elseif dir.y == 1 then + anim = {x=2, y=2} + end + self.object:set_animation(anim, 1, 0) + + self.object:setvelocity(vel) + if update.pos then + self.object:setpos(pos) + end + + -- call event handler + rail_on_step_event(railparams.on_step, self, dtime) +end + +function cart_entity:on_step(dtime) + rail_on_step(self, dtime) + rail_sound(self, dtime) +end + +minetest.register_entity("carts:cart" .. color, cart_entity) + +minetest.register_craftitem("carts:cart" .. color, { + description = color .. "Cart (Sneak+Click to pick up)", +inventory_image = "cart.png^[colorize:#"..colour..":70", +wield_image = "none.png", + wield_scale = {x=1,y=1,z=0.5}, + on_place = function(itemstack, placer, pointed_thing) + local under = pointed_thing.under + local node = minetest.get_node(under) + local udef = minetest.registered_nodes[node.name] + if udef and udef.on_rightclick and + not (placer and placer:get_player_control().sneak) then + return udef.on_rightclick(under, node, placer, itemstack, + pointed_thing) or itemstack + end + + if not pointed_thing.type == "node" then + return + end + if carts:is_rail(pointed_thing.under) then + minetest.add_entity(pointed_thing.under, "carts:cart" .. color) + elseif carts:is_rail(pointed_thing.above) then + minetest.add_entity(pointed_thing.above, "carts:cart" .. color) + else + return + end + + minetest.sound_play({name = "default_place_node_metal", gain = 0.5}, + {pos = pointed_thing.above}) + + if not (creative and creative.is_enabled_for + and creative.is_enabled_for(placer:get_player_name())) then + itemstack:take_item() + end + return itemstack + end, +}) + +end diff --git a/games/default/files/bluestone/mesecons/depends.txt b/games/default/files/Cars/carts/depends.txt similarity index 100% rename from games/default/files/bluestone/mesecons/depends.txt rename to games/default/files/Cars/carts/depends.txt diff --git a/games/default/files/Cars/carts/functions.lua b/games/default/files/Cars/carts/functions.lua new file mode 100644 index 000000000..a47171948 --- /dev/null +++ b/games/default/files/Cars/carts/functions.lua @@ -0,0 +1,221 @@ +function carts:get_sign(z) + if z == 0 then + return 0 + else + return z / math.abs(z) + end +end + +function carts:manage_attachment(player, obj) + if not player then + return + end + local status = obj ~= nil + local player_name = player:get_player_name() + if default.player_attached[player_name] == status then + return + end + default.player_attached[player_name] = status + + if status then + player:set_attach(obj, "", {x=0, y=6, z=0}, {x=0, y=0, z=0}) + player:set_eye_offset({x=0, y=-4, z=0},{x=0, y=-4, z=0}) + else + player:set_detach() + player:set_eye_offset({x=0, y=0, z=0},{x=0, y=0, z=0}) + end +end + +function carts:velocity_to_dir(v) + if math.abs(v.x) > math.abs(v.z) then + return {x=carts:get_sign(v.x), y=carts:get_sign(v.y), z=0} + else + return {x=0, y=carts:get_sign(v.y), z=carts:get_sign(v.z)} + end +end + +function carts:is_rail(pos, railtype) + local node = minetest.get_node(pos).name + if node == "ignore" then + local vm = minetest.get_voxel_manip() + local emin, emax = vm:read_from_map(pos, pos) + local area = VoxelArea:new{ + MinEdge = emin, + MaxEdge = emax, + } + local data = vm:get_data() + local vi = area:indexp(pos) + node = minetest.get_name_from_content_id(data[vi]) + end + if minetest.get_item_group(node, "rail") == 0 then + return false + end + if not railtype then + return true + end + return minetest.get_item_group(node, "connect_to_raillike") == railtype +end + +function carts:check_front_up_down(pos, dir_, check_up, railtype) + local dir = vector.new(dir_) + local cur + + -- Front + dir.y = 0 + cur = vector.add(pos, dir) + if carts:is_rail(cur, railtype) then + return dir + end + -- Up + if check_up then + dir.y = 1 + cur = vector.add(pos, dir) + if carts:is_rail(cur, railtype) then + return dir + end + end + -- Down + dir.y = -1 + cur = vector.add(pos, dir) + if carts:is_rail(cur, railtype) then + return dir + end + return nil +end + +function carts:get_rail_direction(pos_, dir, ctrl, old_switch, railtype) + local pos = vector.round(pos_) + local cur + local left_check, right_check = true, true + + -- Check left and right + local left = {x=0, y=0, z=0} + local right = {x=0, y=0, z=0} + if dir.z ~= 0 and dir.x == 0 then + left.x = -dir.z + right.x = dir.z + elseif dir.x ~= 0 and dir.z == 0 then + left.z = dir.x + right.z = -dir.x + end + + if ctrl then + if old_switch == 1 then + left_check = false + elseif old_switch == 2 then + right_check = false + end + if ctrl.left and left_check then + cur = carts:check_front_up_down(pos, left, false, railtype) + if cur then + return cur, 1 + end + left_check = false + end + if ctrl.right and right_check then + cur = carts:check_front_up_down(pos, right, false, railtype) + if cur then + return cur, 2 + end + right_check = true + end + end + + -- Normal + cur = carts:check_front_up_down(pos, dir, true, railtype) + if cur then + return cur + end + + -- Left, if not already checked + if left_check then + cur = carts:check_front_up_down(pos, left, false, railtype) + if cur then + return cur + end + end + + -- Right, if not already checked + if right_check then + cur = carts:check_front_up_down(pos, right, false, railtype) + if cur then + return cur + end + end + + -- Backwards + if not old_switch then + cur = carts:check_front_up_down(pos, { + x = -dir.x, + y = dir.y, + z = -dir.z + }, true, railtype) + if cur then + return cur + end + end + + return {x=0, y=0, z=0} +end + +function carts:pathfinder(pos_, old_pos, old_dir, ctrl, pf_switch, railtype) + local pos = vector.round(pos_) + local pf_pos = vector.round(old_pos) + local pf_dir = vector.new(old_dir) + + for i = 1, 3 do + if vector.equals(pf_pos, pos) then + -- Success! Cart moved on correctly + return true + end + + pf_dir, pf_switch = carts:get_rail_direction(pf_pos, pf_dir, ctrl, pf_switch, railtype) + if vector.equals(pf_dir, {x=0, y=0, z=0}) then + -- No way forwards + return false + end + + pf_pos = vector.add(pf_pos, pf_dir) + end + -- Cart not found + return false +end + +function carts:register_rail(name, def_overwrite, railparams) + local def = { + drawtype = "raillike", + paramtype = "light", + sunlight_propagates = true, + is_ground_content = false, + walkable = false, + selection_box = { + type = "fixed", + fixed = {-1/2, -1/2, -1/2, 1/2, -1/2+1/16, 1/2}, + }, + sounds = default.node_sound_metal_defaults() + } + for k, v in pairs(def_overwrite) do + def[k] = v + end + if not def.inventory_image then + def.wield_image = def.tiles[1] + def.inventory_image = def.tiles[1] + end + + if railparams then + carts.railparams[name] = table.copy(railparams) + end + + minetest.register_node(name, def) +end + +function carts:get_rail_groups(additional_groups) + -- Get the default rail groups and add more when a table is given + local groups = {dig_immediate = 2, attached_node = 1, rail = 1, connect_to_raillike = 1} + if type(additional_groups) == "table" then + for k, v in pairs(additional_groups) do + groups[k] = v + end + end + return groups +end diff --git a/games/default/files/Cars/carts/init.lua b/games/default/files/Cars/carts/init.lua new file mode 100644 index 000000000..53b33cc22 --- /dev/null +++ b/games/default/files/Cars/carts/init.lua @@ -0,0 +1,20 @@ + +carts = {} +carts.modpath = minetest.get_modpath("carts") +carts.railparams = {} + +-- Maximal speed of the cart in m/s (min = -1) +carts.speed_max = 7 +-- Set to -1 to disable punching the cart from inside (min = -1) +carts.punch_speed_max = 5 + + +dofile(carts.modpath.."/functions.lua") +dofile(carts.modpath.."/rails.lua") + +-- Support for non-default games +if not default.player_attached then + default.player_attached = {} +end + +dofile(carts.modpath.."/cart_entity.lua") diff --git a/games/default/files/Cars/carts/license.txt b/games/default/files/Cars/carts/license.txt new file mode 100644 index 000000000..6c5beb477 --- /dev/null +++ b/games/default/files/Cars/carts/license.txt @@ -0,0 +1,54 @@ + +License of source code +---------------------- + +The MIT License (MIT) +Copyright (C) 2012-2016 PilzAdam +Copyright (C) 2014-2016 SmallJoker +Copyright (C) 2012-2016 Various Minetest developers and contributors + +Permission is hereby granted, free of charge, to any person obtaining a +copy of this software and associated documentation files (the "Software"), +to deal in the Software without restriction, including without limitation the +rights to use, copy, modify, merge, publish, distribute, sublicense, and/or +sell copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in +all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL +THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +THE SOFTWARE. + +For more details: +https://opensource.org/licenses/MIT + + +Licenses of media +----------------- + +CC-0, see: https://creativecommons.org/share-your-work/public-domain/cc0/, except +if other license is mentioned. + + +Authors +--------- +Originally from PixelBOX (Gambit): + carts_cart_side.png + carts_cart_top.png + carts_cart_front.png* + carts_cart.png* + +sofar + stujones11: + carts_cart.b3d and carts_cart.blend + +hexafraction, modified by sofar + carts_rail_*.png + +http://www.freesound.org/people/YleArkisto/sounds/253159/ - YleArkisto - CC-BY-3.0 + carts_cart_moving.*.ogg diff --git a/games/default/files/Cars/carts/models/carts_cart.b3d b/games/default/files/Cars/carts/models/carts_cart.b3d new file mode 100644 index 000000000..4e7eba363 Binary files /dev/null and b/games/default/files/Cars/carts/models/carts_cart.b3d differ diff --git a/games/default/files/Cars/carts/rails.lua b/games/default/files/Cars/carts/rails.lua new file mode 100644 index 000000000..60afe126a --- /dev/null +++ b/games/default/files/Cars/carts/rails.lua @@ -0,0 +1,44 @@ +color1 = minetest.setting_get("color1") or "292421" +color2 = minetest.setting_get("color2") or "0000FF" +color3 = minetest.setting_get("color3") or "00FF00" +color4 = minetest.setting_get("color4") or "F5F5F5" +color5 = minetest.setting_get("color5") or "FF6103" +color6 = minetest.setting_get("color6") or "FF0000" +color7 = minetest.setting_get("color7") or "FFFF00" +color8 = minetest.setting_get("color8") or "FF69B4" + +local source_list = { + {"black", "Color1", color1, 40, 36, 33}, + {"blue", "Color2", color2, 0, 0, 255}, + {"green", "Color3", color3, 0, 255, 0}, + {"white", "Color4", color4, 245, 245, 245}, + {"orange", "Color5", color5, 255, 97, 3}, + {"red", "Color6", color6, 255, 0, 0}, + {"yellow", "Color7", color7, 255, 255, 0}, + {"pink", "Color8", color8, 255, 105, 180} +} + +for i in ipairs(source_list) do + local color = source_list[i][1] + local desc = source_list[i][2] + local colour = source_list[i][3] + local red = source_list[i][4] + local green = source_list[i][5] + local blue = source_list[i][6] + +minetest.register_alias("carts:rail", "carts:railwhite") + +carts:register_rail("carts:rail" .. color, { + description = color .. "rail", + inventory_image = "carts_rail_straight_pwr.png^[colorize:#"..colour..":70", + wield_image = "color_handwhite.png^(color_handwhite2.png^[colorize:#"..colour..":70)", + wield_scale = {x=1,y=1,z=0.5}, + tiles = { + "carts_rail_straight_pwr.png^[colorize:#"..colour..":70", "carts_rail_curved_pwr.png^[colorize:#"..colour..":70", + "carts_rail_t_junction_pwr.png^[colorize:#"..colour..":70", + "carts_rail_crossing_pwr.png^[colorize:#"..colour..":70" + }, + groups = carts:get_rail_groups(), + }, {acceleration = 5}) + +end diff --git a/games/default/files/carts/sounds/carts_cart_moving.1.ogg b/games/default/files/Cars/carts/sounds/carts_cart_moving.1.ogg similarity index 100% rename from games/default/files/carts/sounds/carts_cart_moving.1.ogg rename to games/default/files/Cars/carts/sounds/carts_cart_moving.1.ogg diff --git a/games/default/files/carts/sounds/carts_cart_moving.2.ogg b/games/default/files/Cars/carts/sounds/carts_cart_moving.2.ogg similarity index 100% rename from games/default/files/carts/sounds/carts_cart_moving.2.ogg rename to games/default/files/Cars/carts/sounds/carts_cart_moving.2.ogg diff --git a/games/default/files/carts/sounds/carts_cart_moving.3.ogg b/games/default/files/Cars/carts/sounds/carts_cart_moving.3.ogg similarity index 100% rename from games/default/files/carts/sounds/carts_cart_moving.3.ogg rename to games/default/files/Cars/carts/sounds/carts_cart_moving.3.ogg diff --git a/games/default/files/Cars/carts/textures/carts.png b/games/default/files/Cars/carts/textures/carts.png new file mode 100644 index 000000000..7ee4a5ebb Binary files /dev/null and b/games/default/files/Cars/carts/textures/carts.png differ diff --git a/games/default/files/Cars/carts/textures/carts_rail_crossing_pwr.png b/games/default/files/Cars/carts/textures/carts_rail_crossing_pwr.png new file mode 100644 index 000000000..cb7913a2a Binary files /dev/null and b/games/default/files/Cars/carts/textures/carts_rail_crossing_pwr.png differ diff --git a/games/default/files/Cars/carts/textures/carts_rail_curved_pwr.png b/games/default/files/Cars/carts/textures/carts_rail_curved_pwr.png new file mode 100644 index 000000000..908b14152 Binary files /dev/null and b/games/default/files/Cars/carts/textures/carts_rail_curved_pwr.png differ diff --git a/games/default/files/Cars/carts/textures/carts_rail_t_junction_pwr.png b/games/default/files/Cars/carts/textures/carts_rail_t_junction_pwr.png new file mode 100644 index 000000000..ed9b731c6 Binary files /dev/null and b/games/default/files/Cars/carts/textures/carts_rail_t_junction_pwr.png differ diff --git a/games/default/files/Cars/driftcar/README.txt b/games/default/files/Cars/driftcar/README.txt new file mode 100644 index 000000000..8f5101b53 --- /dev/null +++ b/games/default/files/Cars/driftcar/README.txt @@ -0,0 +1,34 @@ +driftcar 0.1.12 by paramat +For Minetest 0.4.16 and later. Compatible with Minetest 5.0.0-dev. +Depends: default + +Licenses +-------- +Source code: MIT +Media (textures and car nodebox): CC BY-SA 3.0 + +Description +----------- +A vehicle using some physics modelling for more realistic behaviour. + +Usage +----- +Due to client->server->client control delay this mod is best used in +singleplayer or in local multiplayer. +Intensive mods that cause long server lags, such as Lua mapgen mods, will affect +the responsiveness of the vehicle, even in singleplayer. + +There is no crafting recipe, the vehicle can be found in the creative inventory. +Third-person camera mode is recommended when driving for a better view. +If parameter 'AVIEW' in the 'init.lua' file is set to 'true', view is +automatically set to vehicle velocity direction. + +Controls +-------- +Right mouse button = Enter or exit car when pointing at car. +Forward = Speed up. + Slow down when moving backwards. +Backward = Slow down. + Speed up when moving backwards. +Left = Rotate anticlockwise. +Right = Rotate clockwise. diff --git a/games/default/files/boats/depends.txt b/games/default/files/Cars/driftcar/depends.txt similarity index 100% rename from games/default/files/boats/depends.txt rename to games/default/files/Cars/driftcar/depends.txt diff --git a/games/default/files/Cars/driftcar/init.lua b/games/default/files/Cars/driftcar/init.lua new file mode 100644 index 000000000..13f2249ef --- /dev/null +++ b/games/default/files/Cars/driftcar/init.lua @@ -0,0 +1,469 @@ +-- Parameters + +local AVIEW = false -- Autorotate view to velocity direction +local GRIP = 6 -- Maximum linear and lateral acceleration, in nodes/s^2 +local SZTORQ = 16 -- Car speed where motor torque drops to zero, in nodes/s +local DRAG = 0.03 -- Air drag +local ROLRES = 0.3 -- Rolling resistence +local GRAV = 9.81 -- Acceleration of gravity, in nodes/s^2 +-- Turn parameters, in radians/s or radians/s^2 +local TINIT = 0.36 -- Initial turn speed on first control input +local TACC = 0.12 -- Turn acceleration on control input +local TMAX = 2.4 -- Maximum turn speed +local TDEC = 0.24 -- Turn deceleration on no control input + +-- End of parameters + +local source_list = { + {"black", "Darkened", "292421", 40, 36, 33}, + {"blue", "Blue", "0000FF", 0, 0, 255}, + {"green", "Green", "00FF00", 0, 255, 0}, + {"white", "White", "F5F5F5", 245, 245, 245}, + {"orange", "Orange", "FF6103", 255, 97, 3}, + {"red", "Red", "FF0000", 255, 0, 0}, + {"yellow", "Yellow", "FFFF00", 255, 255, 0}, + {"pink", "pink", "FF69B4", 255, 105, 180} +} + +for i in ipairs(source_list) do + local name = source_list[i][1] + local description = source_list[i][2] + local colour = source_list[i][3] + local red = source_list[i][4] + local green = source_list[i][5] + local blue = source_list[i][6] + +-- Constants + +local sztorqmf = SZTORQ - 4 + + +-- Functions + +local function get_sign(n) + if n == 0 then + return 0 + else + return n / math.abs(n) + end +end + + +local function get_vecmag(vec) + return math.sqrt(vec.x ^ 2 + vec.z ^ 2) +end + +local function get_theta(vec) -- returns 0 to PI * 2 + if vec.z == 0 then + return 0 + end + if vec.z < 0 then + return math.atan(-vec.x / vec.z) + math.pi + end + if vec.x > 0 then + return math.atan(-vec.x / vec.z) + math.pi * 2 + end + return math.atan(-vec.x / vec.z) +end + +local function get_veccomp(vecmag, theta, y) + local x = -math.sin(theta) * vecmag + local z = math.cos(theta) * vecmag + return {x = x, y = y, z = z} +end + + +local function wrap_yaw(yaw) -- wrap to 0 to PI * 2 + local fmod = math.fmod(yaw, math.pi * 2) + if fmod < 0 then + return fmod + math.pi * 2 + end + return fmod +end + +local function angbet(theta1, theta2) -- theta1 relative to theta2, -PI to PI + local ang = theta1 - theta2 + if ang < -math.pi then + return ang + math.pi * 2 + end + if ang > math.pi then + return ang - math.pi * 2 + end + return ang +end + +local function add_smoke_particle(pos, player_name) + minetest.add_particle({ + pos = pos, + velocity = {x = 0, y = 0, z = 0}, + acceleration = {x = 0, y = 0, z = 0}, + expirationtime = 0.25, + size = 2.8, + collisiondetection = false, + collision_removal = false, + vertical = false, + texture = "driftcar_smoke.png", + playername = player_name, + }) +end + +-- Entity + +local car = { + initial_properties = { + physical = true, + collide_with_objects = false, -- Fixes a MT 0.4.16 engine bug + collisionbox = {-0.53, -0.75, -0.53, 0.53, 0.75, 0.53}, + visual = "wielditem", + visual_size = {x = 1.0, y = 1.0}, -- Scale up of nodebox is these * 1.5 + textures = {"driftcar:driftcar_nodebox" .. name}, + stepheight = 0.6, + }, + + -- Custom fields + driver = nil, + removed = false, + rot = 0, +} + +function car.on_rightclick(self, clicker) + if not clicker or not clicker:is_player() then + return + end + local name = clicker:get_player_name() + if self.driver and name == self.driver then + -- Detach + self.driver = nil + clicker:set_detach() + default.player_attached[name] = false + default.player_set_animation(clicker, "stand" , 30) + local pos = clicker:getpos() + minetest.after(0.1, function() + clicker:setpos(pos) + end) + elseif not self.driver then + -- Attach + local attach = clicker:get_attach() + if attach and attach:get_luaentity() then + local luaentity = attach:get_luaentity() + if luaentity.driver then + luaentity.driver = nil + end + clicker:set_detach() + end + self.driver = name + clicker:set_attach(self.object, "", + {x = 0, y = -1, z = 0}, {x = 0, y = -1, z = 0}) + default.player_attached[name] = true + minetest.after(0.2, function() + default.player_set_animation(clicker, "sit" , 30) + end) + clicker:set_look_horizontal(self.object:getyaw()) + end +end + +function car.on_activate(self, staticdata, dtime_s) + self.object:set_armor_groups({immortal = 1}) +end + +function car.on_punch(self, puncher) + if not puncher or not puncher:is_player() or self.removed then + return + end + + local name = puncher:get_player_name() + if self.driver and name == self.driver then + -- Detach + self.driver = nil + puncher:set_detach() + default.player_attached[name] = false + end + if not self.driver then + -- Move to inventory + self.removed = true + local inv = puncher:get_inventory() + if not (creative and creative.is_enabled_for + and creative.is_enabled_for(name)) + or not inv:contains_item("main", "driftcar:driftcar" .. name) then + + end + minetest.after(0.1, function() + self.object:remove() + end) + end +end + +function car.on_step(self, dtime) + local vel = self.object:getvelocity() + local velmag = get_vecmag(vel) + -- Early return for near-stationary vehicle with no driver + if not self.driver and velmag < 0.01 and vel.y == 0 then + self.object:setpos(self.object:getpos()) + self.object:setvelocity({x = 0, y = 0, z = 0}) + self.object:setacceleration({x = 0, y = 0, z = 0}) + return + end + + -- Angle of yaw relative to velocity, -PI to PI + local yawrtvel = angbet( + wrap_yaw(self.object:getyaw()), + get_theta(vel) + ) + -- Velocity component linear to car + local linvel = math.cos(yawrtvel) * velmag + -- Touch ground bool + local under_pos = self.object:getpos() + under_pos.y = under_pos.y - 1.4 + local node_under = minetest.get_node(under_pos) + local nodedef_under = minetest.registered_nodes[node_under.name] + local touch = nodedef_under.walkable + + -- Torque acceleration applied linear to car + local taccmag = 0 + + -- Controls + if self.driver and touch then + local driver_objref = minetest.get_player_by_name(self.driver) + if driver_objref then + local ctrl = driver_objref:get_player_control() + if ctrl.up or ctrl.down then + -- Torque multiplier applied above 4nps to replicate reduction of + -- motor torque with rotation speed. + local torm = 1 + local abslinvel = math.abs(linvel) + if abslinvel > 4 then + torm = (SZTORQ - abslinvel) / sztorqmf + end + + if ctrl.up then + taccmag = GRIP * torm + elseif ctrl.down then + taccmag = -GRIP * torm + end + end + else + -- Player left server while driving + -- In MT 5.0.0 use 'airboat:on_detach_child()' to do this + self.driver = nil + minetest.log("warning", "[driftcar] Driver left server while" .. + " driving. This may cause some 'Pushing ObjectRef to" .. + " removed/deactivated object' warnings.") + end + end + + -- Early return for near-stationary vehicle with driver + if taccmag == 0 and velmag < 0.01 and vel.y == 0 then + self.object:setpos(self.object:getpos()) + self.object:setvelocity({x = 0, y = 0, z = 0}) + self.object:setacceleration({x = 0, y = 0, z = 0}) + return + end + + -- Allows fast reduction of turn when no turn control + local noturnctrl = true + + if self.driver and touch then + local driver_objref = minetest.get_player_by_name(self.driver) + if driver_objref then + local ctrl = driver_objref:get_player_control() + if ctrl.left then + if self.rot == 0 then + self.rot = TINIT + else + self.rot = self.rot + TACC + end + noturnctrl = false + elseif ctrl.right then + if self.rot == 0 then + self.rot = -TINIT + else + self.rot = self.rot - TACC + end + noturnctrl = false + end + + if AVIEW then + driver_objref:set_look_horizontal(get_theta(vel)) + end + else + -- Player left server while driving + -- In MT 5.0.0 use 'airboat:on_detach_child()' to do this + self.driver = nil + end + end + + -- If no turn control adjust turn towards zero + local sr = get_sign(self.rot) + if noturnctrl and touch then + self.rot = self.rot - TDEC * sr + if sr ~= get_sign(self.rot) then + self.rot = 0 + end + end + -- Limit turn + if math.abs(self.rot) > TMAX then + self.rot = TMAX * get_sign(self.rot) + end + + -- Acceleration caused by 4 Forces + + -- 1. Drag is proportional to velocity, assuming laminar flow + local dragacc = vector.multiply(vel, -DRAG) + + -- 2. Rolling resistence is constant + local rraccmag = 0 + if touch then + if linvel > 0 then + rraccmag = -ROLRES + elseif linvel < 0 then + rraccmag = ROLRES + end + end + --local rracc = get_veccomp(rraccmag, self.object:getyaw(), 0) + + -- 3. Wheel torque acceleration + --local tacc = get_veccomp(taccmag, self.object:getyaw(), 0) + + -- Combine taccmag and rraccmag since same direction + local trracc = get_veccomp(taccmag + rraccmag, self.object:getyaw(), 0) + + -- 4. Tire lateral friction + -- Velocity component lateral to car + local tlfacc = {x = 0, y = 0, z = 0} + if touch then + local latvel = math.sin(yawrtvel) * velmag + local tlfaccmag = math.min(math.max(latvel * 32, -GRIP), GRIP) + tlfacc = get_veccomp(tlfaccmag, self.object:getyaw() + math.pi / 2, 0) + + -- Tire smoke + if self.driver and math.random() < -0.05 + math.abs(latvel) / 30 then + local opos = self.object:getpos() + opos.y = opos.y - 0.5 + local yaw = self.object:getyaw() + local yaw1 = yaw + math.pi * 0.25 + local yaw2 = yaw + math.pi * 0.75 + + local srcomp1x = -math.sin(yaw1) + local srcomp1z = math.cos(yaw1) + local srcomp2x = -math.sin(yaw2) + local srcomp2z = math.cos(yaw2) + + add_smoke_particle({ + x = opos.x + srcomp1x, + y = opos.y, + z = opos.z + srcomp1z + }, self.driver) + add_smoke_particle({ + x = opos.x - srcomp1x, + y = opos.y, + z = opos.z - srcomp1z + }, self.driver) + add_smoke_particle({ + x = opos.x + srcomp2x, + y = opos.y, + z = opos.z + srcomp2z + }, self.driver) + add_smoke_particle({ + x = opos.x - srcomp2x, + y = opos.y, + z = opos.z - srcomp2z + }, self.driver) + end + end + + local new_acc = { + x = trracc.x + dragacc.x + tlfacc.x, + y = trracc.y + dragacc.y + tlfacc.y - GRAV, + z = trracc.z + dragacc.z + tlfacc.z, + } + -- Turn multiplier + local turm = 1 + -- Reduce turn below 4nps + if velmag < 4 then + turm = velmag / 4 + end + -- Limit dtime to avoid too much turn + dtime = math.min(dtime, 0.2) + + self.object:setpos(self.object:getpos()) + self.object:setvelocity(self.object:getvelocity()) + self.object:setacceleration(new_acc) + self.object:setyaw(wrap_yaw(self.object:getyaw() + self.rot * dtime * turm)) +end + +-- Register entity + +minetest.register_entity("driftcar:driftcar" .. name, car) + +-- Craftitem + +minetest.register_craftitem("driftcar:driftcar" .. name, { + description = "Drift Car" .. name, + inventory_image = "cars.png^[colorize:#"..colour..":70", + wield_image = "none.png", + wield_scale = {x = 2, y = 2, z = 2}, + + on_place = function(itemstack, placer, pointed_thing) + local under = pointed_thing.under + local node = minetest.get_node(under) + local udef = minetest.registered_nodes[node.name] + + -- Run any on_rightclick function of pointed node instead + if udef and udef.on_rightclick and + not (placer and placer:is_player() and + placer:get_player_control().sneak) then + return udef.on_rightclick(under, node, placer, itemstack, + pointed_thing) or itemstack + end + + if pointed_thing.type ~= "node" then + return itemstack + end + + pointed_thing.under.y = pointed_thing.under.y + 1.25 + local car = minetest.add_entity(pointed_thing.under, + "driftcar:driftcar" .. name) + if car then + if placer then + car:setyaw(placer:get_look_horizontal()) + end + local player_name = placer and placer:get_player_name() or "" + if not (creative and creative.is_enabled_for and + creative.is_enabled_for(player_name)) then + itemstack:take_item() + end + end + return itemstack + end, +}) + + +-- Nodebox + +minetest.register_node("driftcar:driftcar_nodebox" ..name, { + description = "Drift Car Nodebox" ..name, + tiles = { -- Top, base, right, left, front, back + "driftcar_top.png^[colorize:#"..colour..":70", + "driftcar_base.png^[colorize:#"..colour..":70", + "driftcar_right.png^[colorize:#"..colour..":70", + "driftcar_left.png^[colorize:#"..colour..":70", + "driftcar_front.png^[colorize:#"..colour..":70", + "driftcar_back.png^[colorize:#"..colour..":70", + }, + paramtype = "light", + drawtype = "nodebox", + node_box = { + type = "fixed", + fixed = { -- Widmin, heimin, lenmin, widmax, heimax, lenmax + {-0.5, 0.125, -0.5, 0.5, 0.5, 0.4375}, -- Upper + {-0.5, -0.375, -0.5, 0.5, 0.125, 0.5}, -- Lower + {-0.5, -0.5, -0.5, -0.3125, -0.375, -0.1875}, -- Wheels + {0.3125, -0.5, -0.5, 0.5, -0.375, -0.1875}, + {-0.5, -0.5, 0.1875, -0.3125, -0.375, 0.5}, + {0.3125, -0.5, 0.1875, 0.5, -0.375, 0.5}, + }, + }, + groups = {not_in_creative_inventory = 1}, +}) + +end diff --git a/games/default/files/Cars/driftcar/license.txt b/games/default/files/Cars/driftcar/license.txt new file mode 100644 index 000000000..0ade7c28c --- /dev/null +++ b/games/default/files/Cars/driftcar/license.txt @@ -0,0 +1,61 @@ +License of source code +---------------------- + +The MIT License (MIT) +Copyright (C) 2018 paramat + +Permission is hereby granted, free of charge, to any person obtaining a copy of this +software and associated documentation files (the "Software"), to deal in the Software +without restriction, including without limitation the rights to use, copy, modify, merge, +publish, distribute, sublicense, and/or sell copies of the Software, and to permit +persons to whom the Software is furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all copies or +substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, +INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR +PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE +FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR +OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER +DEALINGS IN THE SOFTWARE. + +For more details: +https://opensource.org/licenses/MIT + + +License of media (textures) +--------------------------- + +Attribution-ShareAlike 3.0 Unported (CC BY-SA 3.0) +Copyright (C) 2018 paramat + +You are free to: + +Share — copy and redistribute the material in any medium or format +Adapt — remix, transform, and build upon the material for any purpose, even commercially. + +The licensor cannot revoke these freedoms as long as you follow the license terms. + +Under the following terms: + +Attribution — You must give appropriate credit, provide a link to the license, and +indicate if changes were made. You may do so in any reasonable manner, but not in any way +that suggests the licensor endorses you or your use. + +ShareAlike — If you remix, transform, or build upon the material, you must distribute +your contributions under the same license as the original. + +No additional restrictions — You may not apply legal terms or technological measures that +legally restrict others from doing anything the license permits. + +Notices: + +You do not have to comply with the license for elements of the material in the public +domain or where your use is permitted by an applicable exception or limitation. +No warranties are given. The license may not give you all of the permissions necessary +for your intended use. For example, other rights such as publicity, privacy, or moral +rights may limit how you use the material. + +For more details: +http://creativecommons.org/licenses/by-sa/3.0/ diff --git a/games/default/files/Cars/driftcar/mod.conf b/games/default/files/Cars/driftcar/mod.conf new file mode 100644 index 000000000..f02d62605 --- /dev/null +++ b/games/default/files/Cars/driftcar/mod.conf @@ -0,0 +1 @@ +name = driftcar diff --git a/games/default/files/Cars/driftcar/textures/driftcar_back.png b/games/default/files/Cars/driftcar/textures/driftcar_back.png new file mode 100644 index 000000000..5d6f5203b Binary files /dev/null and b/games/default/files/Cars/driftcar/textures/driftcar_back.png differ diff --git a/games/default/files/Cars/driftcar/textures/driftcar_base.png b/games/default/files/Cars/driftcar/textures/driftcar_base.png new file mode 100644 index 000000000..18eca262d Binary files /dev/null and b/games/default/files/Cars/driftcar/textures/driftcar_base.png differ diff --git a/games/default/files/Cars/driftcar/textures/driftcar_front.png b/games/default/files/Cars/driftcar/textures/driftcar_front.png new file mode 100644 index 000000000..108248af4 Binary files /dev/null and b/games/default/files/Cars/driftcar/textures/driftcar_front.png differ diff --git a/games/default/files/Cars/driftcar/textures/driftcar_left.png b/games/default/files/Cars/driftcar/textures/driftcar_left.png new file mode 100644 index 000000000..442c04191 Binary files /dev/null and b/games/default/files/Cars/driftcar/textures/driftcar_left.png differ diff --git a/games/default/files/Cars/driftcar/textures/driftcar_right.png b/games/default/files/Cars/driftcar/textures/driftcar_right.png new file mode 100644 index 000000000..5fe768b08 Binary files /dev/null and b/games/default/files/Cars/driftcar/textures/driftcar_right.png differ diff --git a/games/default/files/Cars/driftcar/textures/driftcar_smoke.png b/games/default/files/Cars/driftcar/textures/driftcar_smoke.png new file mode 100644 index 000000000..2b367f215 Binary files /dev/null and b/games/default/files/Cars/driftcar/textures/driftcar_smoke.png differ diff --git a/games/default/files/Cars/driftcar/textures/driftcar_top.png b/games/default/files/Cars/driftcar/textures/driftcar_top.png new file mode 100644 index 000000000..50fe9ab7f Binary files /dev/null and b/games/default/files/Cars/driftcar/textures/driftcar_top.png differ diff --git a/games/default/files/Cars/hotairballoon/README.md b/games/default/files/Cars/hotairballoon/README.md new file mode 100644 index 000000000..454cafabe --- /dev/null +++ b/games/default/files/Cars/hotairballoon/README.md @@ -0,0 +1,125 @@ +# Minetest mod: Flying Carpet +by Wuzzy + +Version: 0.6.0 + +## Introduction +Quickly explore the vast terrain with the magical flying carpet. But only the skilled users can master its speed, the fools will crash and hurt themselves. + +The carpet flies fast horizontally, but very slowly is it able to move vertically. It constantly reduces your mana resources (if Mana mod is enabled) and will wear out over time. + +## Dependencies +The mod does not depend on anything but it adds some features if certain mods +are available: + +* `default` and `wool` (in Minetest Game): Adds a crafting recipe +* `mana`: Using the flying carpet costs mana +* `doc_items`: Adds in-game help for the flying carpet +* `doc_identifier`: Support for the lookup tool + +Obtaining +--------- +In Minetest Game (and most similar subgames), you can craft the flying carpet using the +following recipe: + + Red Wool, Yellow Wool, Red Wool + Mese Crystal, Gold Ingot, Mese Crystal + +In MineClone 2, replace the mese cystals with redstone. + +Subgames other than Minetest Game *might* work if they have been forked from it. +If you use an entirely different subgame, you might be able to obtain it in a different +way provided by the subgame. If all else fails, you can obtain it by “cheating”, using +the server command “`/giveme flying_carpet:carpet`” (requires “`give`” privilege). + +## How to use +Look to the desired initial flight direction and place the carpet on any flat surface which is not inside a liquid. Make sure it has enough space (3×2×3), then place it. + +Right-click the carpet to sit on it and depart. Note you can not enter the flying carpet if you are currently in any other vehicle (e.g. boat). +You can also not enter a flying carpet if it is going fast. + +The flying carpet has a basic movement speed which the flying carpet is aiming to reach; thus, the carpet flies without your intervention. Use the speed keys to change the speed for a while; they apply only for as long as you hold down the keys. As soon as you release the keys, the carpet will go back to its basic speed again. + +Flying the carpet is a bit tricky, because it flies fast, you can't fully brake and the turning speed is rather low. Be careful not to crash into the landscape! + +If the carpet is under a certain critical speed, it loses its magic and just drops on the ground. +There is a short “grace period” at the beginning of the flight where this minimum speed limit does not apply. +You can tell by the color of the particles emitted by the flying carpet whether you are critically slow. If the particles are yellow, everything is okay, +but if they become red this means the carpet is going dangerously slow and you should speed up; if you slow down even more you might risk for the flying carpet +to fail. + +The flying carpet also fails immediately if you crash into the landscape. +If you crash while being fast, you may also take damage. There is also fall damage, but with the carpet it is greatly reduced compared to a “normal” drop. +Your carpet will also stop working if your mana resources are depleted (only if Mana mod is installed and active). +When your carpet stopped working, you have to collect the carpet (punch it) and place it again. + +If you fly directly down onto a flat solid ground, your flying carpet will come to a halt quickly due to +friction. + +Your carpet can not fly into liquids from above, but it can fly into them from the side or even below. +But the speed in liquids is greatly reduced and your carpet will likely fail. + +## Long-term usage +Your carpet is not indestructible! Long flights, scratching and crashes will wear out the carpet over +time and it might get destroyed eventually. + +Crash-landing at high speeds will deal major damage, so you should avoid crashing at all costs. +Sliding on the surface will deal a minor wear but it is often negligible. + +A constant wear is also caused by flying, but very slowly. + +If you always fly perfectly, you could use a single flying carpet for about 12 hours. Fly safe to make +the most of your flying carpet! + +On high wear levels, the carpet will emit black particles behind it which will increase in number +with its wear. As long there are only a few black particles, you're still good as long as you don't +crash-land. You should get a replacement soon. If the number of black particles is about the +same as the yellow/red particles, the wear has reached a very high level. + +On a critical wear level, the carpet will emit a very annoying loud noise while flying. This is the final +warning, you will have roughly five minutes worth of flight until the carpet finally disintegrates under +your feet! You should land as soon as possible. + +Additionally, a flying carpet will disintegrate and is lost forever if it stands still and has no user +for 1 minute. + +## Controls +* Up: Hold down to speed up +* Down: Hold down to slow down +* Left: Turn left +* Right: Turn right +* Jump: Ascend +* Sneak: Descend +* Right click carpet: Sit on carpet / Get off the carpet +* Punch carpet: + * While flying: Stop flying immediately + * While not flying: Take it + +Note: Collecting and entering a flying carpet is not possible while it is moving fast. + +## Licenses +This mod free software. + +### License of source code +MIT License + +### Authors and licenses of media files +- `flying_carpet_model.obj`: Wuzzy, MIT License +- `flying_carpet_flight.ogg`: MIT License +- `flying_carpet_out_of_energy.ogg`: by p0ss, CC BY-SA 3.0 +- `flying_carpet_almost_dead.ogg`: by John, MIT License +- `flying_carpet_place.ogg`: Unknown authors and Wuzzy (compilation of Public Domain sounds), MIT License +- `flying_carpet_take.ogg`: Julien Matthey, modified by Wuzzy, MIT License +- `flying_carpet_surface.png`: Roman Zacharij and Wuzzy, MIT License +- `flying_carpet_wield.png`: Roman Zacharij and Wuzzy, MIT License +- `flying_carpet_inventory.png`: Roman Zacharij and Wuzzy, MIT License +- `flying_carpet_slide.ogg`: crcavol, MIT License +- `flying_carpet_magic_smoke.png`: Wuzzy, MIT License +- `flying_carpet_smoke.png.png`: Wuzzy. MIT License +- `flying_carpet_star.png`: Wuzzy, MIT License +- `flying_carpet_star_warning.png`: Wuzzy, MIT License +- `flying_carpet_star_death_warning.png`: Wuzzy, MIT License +- `flying_carpet_death.png`: Wuzzy, MIT License + +### License references +* [CC BY-SA 3.0](https://creativecommons.org/licenses/by-sa/3.0/) diff --git a/games/default/files/Cars/hotairballoon/config.lua b/games/default/files/Cars/hotairballoon/config.lua new file mode 100644 index 000000000..a16331fde --- /dev/null +++ b/games/default/files/Cars/hotairballoon/config.lua @@ -0,0 +1,7 @@ +hotairballoon = {} + +--If you want to be available only through /giveme or at admin shops, set this to false. +hotairballoon.crafts = true + +--If you want to be only one use, set this to true. +hotairballoon.one_use = false diff --git a/games/default/files/Cars/hotairballoon/init.lua b/games/default/files/Cars/hotairballoon/init.lua new file mode 100644 index 000000000..b94f37e48 --- /dev/null +++ b/games/default/files/Cars/hotairballoon/init.lua @@ -0,0 +1,187 @@ +color1 = minetest.setting_get("color1") or "292421" +color2 = minetest.setting_get("color2") or "0000FF" +color3 = minetest.setting_get("color3") or "00FF00" +color4 = minetest.setting_get("color4") or "F5F5F5" +color5 = minetest.setting_get("color5") or "FF6103" +color6 = minetest.setting_get("color6") or "FF0000" +color7 = minetest.setting_get("color7") or "FFFF00" +color8 = minetest.setting_get("color8") or "FF69B4" + +local source_list = { + {"black", "Color1", color1, 40, 36, 33}, + {"blue", "Color2", color2, 0, 0, 255}, + {"green", "Color3", color3, 0, 255, 0}, + {"white", "Color4", color4, 245, 245, 245}, + {"orange", "Color5", color5, 255, 97, 3}, + {"red", "Color6", color6, 255, 0, 0}, + {"yellow", "Color7", color7, 255, 255, 0}, + {"pink", "Color8", color8, 255, 105, 180} +} + +for i in ipairs(source_list) do + local color = source_list[i][1] + local desc = source_list[i][2] + local colour = source_list[i][3] + local red = source_list[i][4] + local green = source_list[i][5] + local blue = source_list[i][6] + +dofile(minetest.get_modpath("hotairballoon") .. "/config.lua") + +local function get_sign(i) + if i == 0 then + return 0 + else + return i/math.abs(i) + end +end + +local carpet = { + physical = true, + collisionbox = {-.99,-0.1,-.99, .99,0.5,.99}, + collide_with_objects = true, + visual = "mesh", + mesh = "hotair.b3d", + textures = {"hotair_w.png^[colorize:#"..colour..":70"}, + driver = nil, + yaw=0, + vx=0, + vy=0, + vz=0, +} + +function carpet:on_rightclick(clicker) + if not clicker or not clicker:is_player() then + return + end + local name = clicker:get_player_name() + if self.driver and clicker == self.driver then + clicker:set_detach() + self.driver = nil + default.player_attached[name] = false + default.player_set_animation(clicker, "stand" , 10) + if hotairballoon.one_use == true then + self.object:remove() + end + elseif not self.driver then + self.driver = clicker + clicker:set_attach(self.object, "", {x=-4,y=10.1,z=0}, {x=0,y=90,z=0}) + default.player_attached[name] = true + minetest.after(0.2, function() + default.player_set_animation(clicker, "sit" , 10) + end) + self.object:setyaw(clicker:get_look_yaw()-math.pi/2) + end +end + +function carpet:on_activate(staticdata, dtime_s) + self.object:set_armor_groups({immortal = 1}) + if staticdata then + self.v = tonumber(staticdata) + end +end + +function carpet:on_punch(puncher, time_from_last_punch, tool_capabilities, direction) + if not self.driver then self.object:remove() end + if puncher and puncher:is_player() and not self.driver and not minetest.setting_getbool("creative_mode") then + puncher:get_inventory():add_item("main", "hotairballoon:hotair" .. color) + end +end + +function carpet:on_step(dtime) + if self.driver then + self.yaw = self.driver:get_look_yaw() + local yaw = self.object:getyaw() + self.vx = self.object:getvelocity().x + self.vy = self.object:getvelocity().y + self.vz = self.object:getvelocity().z + local ctrl = self.driver:get_player_control() + --Forward/backward + if ctrl.up then + self.vx = self.vx + math.cos(yaw)*0.4 + self.vz = self.vz + math.sin(yaw)*0.4 + end + if ctrl.down then + self.vx = self.vx-math.cos(yaw)*0.4 + self.vz = self.vz-math.sin(yaw)*0.4 + end + --Left/right + if ctrl.left then + self.object:setyaw(self.object:getyaw()+math.pi/60+dtime*math.pi/60) + end + if ctrl.right then + self.object:setyaw(self.object:getyaw()-math.pi/60-dtime*math.pi/60) + end + --up/down + if ctrl.jump then + if self.vy < 1.5 then + self.vy = self.vy+0.3 + end + end + if ctrl.sneak then + if self.vy>-1.5 then + self.vy = self.vy-0.6 + end + end + -- + end + if self.vx==0 and self.vz==0 and self.vy==0 then + return + end + --Decelerating + local sx=get_sign(self.vx) + self.vx = self.vx - 0.02*sx + local sz=get_sign(self.vz) + self.vz = self.vz - 0.02*sz + local sy=get_sign(self.vy) + self.vy = self.vy-0.01*sy + + --Stop + if sx ~= get_sign(self.vx) then + self.vx = 0 + end + if sz ~= get_sign(self.vz) then + self.vz = 0 + end + if sy ~= get_sign(self.vy) then + self.vy = 0 + end + + --Speed limit + if math.abs(self.vx) > 87 then + self.vx = 87*get_sign(self.vx) + end + if math.abs(self.vz) > 87 then + self.vz = 87*get_sign(self.vz) + end + if math.abs(self.vy) > 87 then + self.vz = 87*get_sign(self.vy) + end + + self.object:setvelocity({x=self.vx, y=self.vy,z=self.vz}) +end +minetest.register_entity("hotairballoon:hotair" .. color , carpet) + +minetest.register_craftitem("hotairballoon:hotair" .. color, { + description = color .."Hot Air Balloon", + inventory_image = "hotair_inv.png^[colorize:#"..colour..":70", + wield_image = "none.png", + liquids_pointable = false, + + on_place = function(itemstack, placer, pointed_thing) + if pointed_thing.type ~= "node" then + return + end + if minetest.get_node(pointed_thing.above).name ~= "air" then + return + end + pointed_thing.under.y = pointed_thing.under.y + 1 + minetest.add_entity(pointed_thing.under, "hotairballoon:hotair" .. color) + if not minetest.setting_getbool("creative_mode") then + itemstack:take_item() + end + return itemstack + end, +}) + +end diff --git a/games/default/files/Cars/hotairballoon/models/hotair.b3d b/games/default/files/Cars/hotairballoon/models/hotair.b3d new file mode 100644 index 000000000..f995e38c3 Binary files /dev/null and b/games/default/files/Cars/hotairballoon/models/hotair.b3d differ diff --git a/games/default/files/Cars/hotairballoon/textures/hotair_w.png b/games/default/files/Cars/hotairballoon/textures/hotair_w.png new file mode 100644 index 000000000..92314287d Binary files /dev/null and b/games/default/files/Cars/hotairballoon/textures/hotair_w.png differ diff --git a/games/default/files/Cars/hovercraft/LICENSE.txt b/games/default/files/Cars/hovercraft/LICENSE.txt new file mode 100644 index 000000000..9baa4887c --- /dev/null +++ b/games/default/files/Cars/hovercraft/LICENSE.txt @@ -0,0 +1,15 @@ +Hovercraft for Minetest [hovercraft] +==================================== + +Source Code: Copyright (C) 2013 Stuart Jones - LGPL + +Tetxures: Copyright (C) 2013 Stuart Jones - CC-BY-SA + +Models: Copyright (C) 2013 Stuart Jones - CC-BY-SA + +Sounds: freesound.org + + Rocket Boost Engine Loop by qubodup - CC0 + CARTOON-BING-LOW by kantouth - CC-BY-3.0 + All other sounds: Copyright Stuart Jones - CC-BY-SA + diff --git a/games/default/files/Cars/hovercraft/README.txt b/games/default/files/Cars/hovercraft/README.txt new file mode 100644 index 000000000..3c7f8b3c7 --- /dev/null +++ b/games/default/files/Cars/hovercraft/README.txt @@ -0,0 +1,29 @@ +Hovercraft for Minetest [hovercraft] +==================================== + +A fun alternative mode of transport for Minetest. + +Controls +======== + + Forward (W) Thrust + Jump (Space) Jump + Mouse Move Rotate + Sneak (Shift) Sit (only visible in multiplayer) + +Know Issues +=========== + +'Bouncing' into thin air: This can simply be the result of server lag, +even in singleplayer mode, the client and server can get out of sync. +Solution, be patient, allow the environment to fully load before preceding. + +Problems with bouncing in air and generally getting stuck, being pulled +underwater and all manner of other weirdness can also be caused by a rather +nasty entity duplication bug in minetest itself. The only solution here is +to track down and remove any duplicate entities or by running /clearobjects + +Entity Duplication: See above. This usually occurs when you move a given +distance from where the entity was originally placed. The only solution +right now is to restrict the hovercraft to a certain area. For example, +create a sunken race track the hovercraft cannot physically escape from. diff --git a/games/default/files/Cars/hovercraft/depends.txt b/games/default/files/Cars/hovercraft/depends.txt new file mode 100644 index 000000000..9bc856fd9 --- /dev/null +++ b/games/default/files/Cars/hovercraft/depends.txt @@ -0,0 +1,2 @@ +default +color diff --git a/games/default/files/Cars/hovercraft/hover.lua b/games/default/files/Cars/hovercraft/hover.lua new file mode 100644 index 000000000..20723f2f9 --- /dev/null +++ b/games/default/files/Cars/hovercraft/hover.lua @@ -0,0 +1,184 @@ +hover = {} + +function hover:register_hovercraft(name, def) + minetest.register_entity(name, { + wield_image = "none.png", + physical = true, + collisionbox = {-0.8,0,-0.8, 0.8,1.2,0.8}, + visual = "mesh", + mesh = "hovercraft.x", + textures = def.textures, + max_speed = def.max_speed, + acceleration = def.acceleration, + deceleration = def.deceleration, + jump_velocity = def.jump_velocity, + fall_velocity = def.fall_velocity, + bounce = def.bounce, + player = nil, + sound = nil, + thrust = 0, + velocity = {x=0, y=0, z=0}, + last_pos = {x=0, y=0, z=0}, + timer = 0, + on_activate = function(self, staticdata, dtime_s) + self.object:set_armor_groups({immortal=1}) + self.object:set_animation({x=0, y=24}, 30) + end, + on_punch = function(self, puncher, time_from_last_punch, tool_capabilities, dir) + if self.player then + return + end + if self.sound then + minetest.sound_stop(self.sound) + end + self.object:remove() + if puncher and puncher:is_player() then + puncher:get_inventory():add_item("main", name) + end + end, + on_rightclick = function(self, clicker) + if not clicker or not clicker:is_player() then + return + end + local pos = self.object:getpos() + if self.player and clicker == self.player then + if self.sound then + minetest.sound_stop(self.sound) + minetest.sound_play("hovercraft_thrust_fade", {object = self.object}) + self.sound = nil + end + self.thrust = 0 + self.player = nil + self.object:set_animation({x=0, y=0}, 30) + clicker:set_animation({x=0, y=0}) + clicker:set_detach() + elseif not self.player then + self.player = clicker + clicker:set_attach(self.object, "", {x=-2,y=16.5,z=0}, {x=0,y=90,z=0}) + clicker:set_animation({x=81, y=81}) + local yaw = clicker:get_look_yaw() + self.object:setyaw(yaw) + self.yaw = yaw + pos.y = pos.y + 0.5 + minetest.sound_play("hovercraft_jump", {object = self.object}) + self.object:set_animation({x=0, y=0}) + end + self.last_pos = vector.new(pos) + self.object:setpos(pos) + end, + on_step = function(self, dtime) + self.timer = self.timer + dtime + if self.player then + local yaw = self.player:get_look_yaw() + if not yaw then + return + end + self.object:setyaw(yaw) + local ctrl = self.player:get_player_control() + if ctrl.up then + if self.thrust < self.max_speed then + self.thrust = self.thrust + self.acceleration + end + local velocity = hover:get_velocity(self.thrust, self.velocity.y, 0, yaw) + if velocity.x <= self.velocity.x - self.acceleration then + self.velocity.x = self.velocity.x - self.acceleration + elseif velocity.x >= self.velocity.x + self.acceleration then + self.velocity.x = self.velocity.x + self.acceleration + end + if velocity.z <= self.velocity.z - self.acceleration then + self.velocity.z = self.velocity.z - self.acceleration + elseif velocity.z >= self.velocity.z + self.acceleration then + self.velocity.z = self.velocity.z + self.acceleration + end + if not self.sound then + self.object:set_animation({x=25, y=75}, 30) + self.sound = minetest.sound_play("hovercraft_thrust_loop", { + object = self.object, + loop = true, + }) + end + elseif self.thrust > 0 then + self.thrust = self.thrust - 0.1 + if self.sound then + minetest.sound_stop(self.sound) + minetest.sound_play("hovercraft_thrust_fade", {object = self.object}) + self.sound = nil + end + else + self.object:set_animation({x=0, y=0}) + self.thrust = 0 + end + if ctrl.jump and self.velocity.y == 0 then + self.velocity.y = self.jump_velocity + self.timer = 0 + minetest.sound_play("hovercraft_jump", {object = self.object}) + end + if ctrl.sneak then + self.player:set_animation({x=81, y=81}) + end + end + local pos = self.object:getpos() + if self.timer > 0.5 then + local node = minetest.env:get_node({x=pos.x, y=pos.y-0.5, z=pos.z}) + if node.name == "air" or node.name == "ignore" then + self.velocity.y = 0 - self.fall_velocity + else + self.velocity.y = 0 + pos.y = math.floor(pos.y) + 0.5 + self.object:setpos(pos) + end + self.timer = 0 + end + if self.last_pos.x == pos.x and math.abs(self.velocity.x) > 0.5 then + self.velocity.x = self.velocity.x * (0 - self.bounce) + self.thrust = 0 + minetest.sound_play("hovercraft_bounce", {object = self.object}) + end + if self.last_pos.z == pos.z and math.abs(self.velocity.z) > 0.5 then + self.velocity.z = self.velocity.z * (0 - self.bounce) + self.thrust = 0 + minetest.sound_play("hovercraft_bounce", {object = self.object}) + end + self.last_pos = vector.new(pos) + if self.thrust < 1 then + if self.velocity.x > self.deceleration then + self.velocity.x = self.velocity.x - self.deceleration + elseif self.velocity.x < 0 - self.deceleration then + self.velocity.x = self.velocity.x + self.deceleration + else + self.velocity.x = 0 + end + if self.velocity.z > self.deceleration then + self.velocity.z = self.velocity.z - self.deceleration + elseif self.velocity.z < 0 - self.deceleration then + self.velocity.z = self.velocity.z + self.deceleration + else + self.velocity.z = 0 + end + end + self.object:setvelocity(self.velocity) + end, + }) + minetest.register_craftitem(name, { + description = def.description, + wield_image = "none.png", + inventory_image = def.inventory_image, + liquids_pointable = true, + on_place = function(itemstack, placer, pointed_thing) + if pointed_thing.type ~= "node" then + return + end + pointed_thing.under.y = pointed_thing.under.y + 0.5 + minetest.env:add_entity(pointed_thing.under, name) + itemstack:take_item() + return itemstack + end, + }) +end + +function hover:get_velocity(vx, vy, vz, yaw) + local x = math.cos(yaw) * vx + math.cos(math.pi / 2 + yaw) * vz + local z = math.sin(yaw) * vx + math.sin(math.pi / 2 + yaw) * vz + return {x=x, y=vy, z=z} +end + diff --git a/games/default/files/Cars/hovercraft/init.lua b/games/default/files/Cars/hovercraft/init.lua new file mode 100644 index 000000000..7ed04c074 --- /dev/null +++ b/games/default/files/Cars/hovercraft/init.lua @@ -0,0 +1,44 @@ +color1 = minetest.setting_get("color1") or "292421" +color2 = minetest.setting_get("color2") or "0000FF" +color3 = minetest.setting_get("color3") or "00FF00" +color4 = minetest.setting_get("color4") or "F5F5F5" +color5 = minetest.setting_get("color5") or "FF6103" +color6 = minetest.setting_get("color6") or "FF0000" +color7 = minetest.setting_get("color7") or "FFFF00" +color8 = minetest.setting_get("color8") or "FF69B4" + +local source_list = { + {"black", "Color1", color1, 40, 36, 33}, + {"blue", "Color2", color2, 0, 0, 255}, + {"green", "Color3", color3, 0, 255, 0}, + {"white", "Color4", color4, 245, 245, 245}, + {"orange", "Color5", color5, 255, 97, 3}, + {"red", "Color6", color6, 255, 0, 0}, + {"yellow", "Color7", color7, 255, 255, 0}, + {"pink", "Color8", color8, 255, 105, 180} +} + +for i in ipairs(source_list) do + local color = source_list[i][1] + local desc = source_list[i][2] + local colour = source_list[i][3] + local red = source_list[i][4] + local green = source_list[i][5] + local blue = source_list[i][6] + +dofile(minetest.get_modpath("hovercraft").."/hover.lua") + +hover:register_hovercraft("hovercraft:hover_" .. color,{ + description = color .."Hovercraft", + textures = {"hovercraft.png^[colorize:#"..colour..":70"}, + wield_image = "none.png", + inventory_image = "hovercraft_inv.png^[colorize:#"..colour..":70", + max_speed = 10, + acceleration = 0.25, + deceleration = 0.05, + jump_velocity = 4.0, + fall_velocity = 1.0, + bounce = 0.5, +}) + +end diff --git a/games/default/files/Cars/hovercraft/models/hovercraft.blend b/games/default/files/Cars/hovercraft/models/hovercraft.blend new file mode 100644 index 000000000..a66e45828 Binary files /dev/null and b/games/default/files/Cars/hovercraft/models/hovercraft.blend differ diff --git a/games/default/files/Cars/hovercraft/models/hovercraft.x b/games/default/files/Cars/hovercraft/models/hovercraft.x new file mode 100644 index 000000000..d40912d7b --- /dev/null +++ b/games/default/files/Cars/hovercraft/models/hovercraft.x @@ -0,0 +1,2132 @@ +xof 0303txt 0032 + +template XSkinMeshHeader { + <3cf169ce-ff7c-44ab-93c0-f78f62d172e2> + WORD nMaxSkinWeightsPerVertex; + WORD nMaxSkinWeightsPerFace; + WORD nBones; +} + +template SkinWeights { + <6f0d123b-bad2-4167-a0d0-80224f25fabb> + STRING transformNodeName; + DWORD nWeights; + array DWORD vertexIndices[nWeights]; + array float weights[nWeights]; + Matrix4x4 matrixOffset; +} + +Frame Root { + FrameTransformMatrix { + 1.000000, 0.000000, 0.000000, 0.000000, + 0.000000, 0.000000, 1.000000, 0.000000, + 0.000000, 1.000000,-0.000000, 0.000000, + 0.000000, 0.000000, 0.000000, 1.000000;; + } + Frame Armature { + FrameTransformMatrix { + 1.000000, 0.000000, 0.000000, 0.000000, + 0.000000, 1.000000, 0.000000, 0.000000, + 0.000000, 0.000000, 1.000000, 0.000000, + 0.000000, 0.000000, 3.500000, 1.000000;; + } + Frame Armature_Body { + FrameTransformMatrix { + 1.000000,-0.000000,-0.000000, 0.000000, + 0.000000, 0.000000, 1.000000, 0.000000, + -0.000000,-1.000000, 0.000000, 0.000000, + -0.000000, 0.000000,-2.459941, 1.000000;; + } + Frame Armature_Thruster { + FrameTransformMatrix { + 0.000000, 0.000000,-1.000000, 0.000000, + -1.000000, 0.000000,-0.000000, 0.000000, + 0.000000, 1.000000, 0.000000, 0.000000, + -4.639344, 8.859941, 0.000000, 1.000000;; + } + } //End of Armature_Thruster + } //End of Armature_Body + Frame Hovercraft { + FrameTransformMatrix { + -0.000003,-4.000000, 0.000000, 0.000000, + 4.000000,-0.000003, 0.000000, 0.000000, + 0.000000, 0.000000, 2.581575, 0.000000, + 0.000000, 0.000000,-0.500000, 1.000000;; + } + Mesh { //Mesh Mesh + 184; + -1.874999;-1.875000;-0.774721;, + 1.875000;-1.874998;-0.774721;, + 1.874998; 1.875000;-0.774721;, + -1.875000; 1.874998;-0.774721;, + 1.874999; 1.874999; 0.387360;, + 1.875000;-1.874999; 0.387360;, + -1.874998;-1.875000; 0.387360;, + -1.874999; 1.874999; 0.387360;, + 1.874998; 1.875000;-0.774721;, + 1.874999; 1.874999; 0.387360;, + -1.874999; 1.874999; 0.387360;, + -1.875000; 1.874998;-0.774721;, + 1.875000;-1.874998;-0.774721;, + 1.875000;-1.874999; 0.387360;, + 1.874999; 1.874999; 0.387360;, + 1.874998; 1.875000;-0.774721;, + -1.874999;-1.875000;-0.774721;, + -1.874998;-1.875000; 0.387360;, + 1.875000;-1.874999; 0.387360;, + 1.875000;-1.874998;-0.774721;, + -1.874998;-1.875000; 0.387360;, + -1.874999;-1.875000;-0.774721;, + -1.875000; 1.874998;-0.774721;, + -1.874999; 1.874999; 0.387360;, + -1.999998;-2.000000;-0.581041;, + 2.000000;-1.999998;-0.581041;, + 1.999998; 2.000000;-0.581041;, + -2.000000; 1.999998;-0.581041;, + 1.999999; 1.999999; 0.193680;, + 2.000000;-1.999999; 0.193680;, + -1.999998;-2.000000; 0.193680;, + -1.999999; 1.999999; 0.193680;, + 1.999998; 2.000000;-0.581041;, + 1.999999; 1.999999; 0.193680;, + -1.999999; 1.999999; 0.193680;, + -2.000000; 1.999998;-0.581041;, + 2.000000;-1.999998;-0.581041;, + 2.000000;-1.999999; 0.193680;, + 1.999999; 1.999999; 0.193680;, + 1.999998; 2.000000;-0.581041;, + -1.999998;-2.000000;-0.581041;, + -1.999998;-2.000000; 0.193680;, + 2.000000;-1.999999; 0.193680;, + 2.000000;-1.999998;-0.581041;, + -1.999998;-2.000000; 0.193680;, + -1.999998;-2.000000;-0.581041;, + -2.000000; 1.999998;-0.581041;, + -1.999999; 1.999999; 0.193680;, + 0.500000;-1.000000; 3.200000;, + 0.500000;-2.000000; 3.200000;, + -0.500000;-2.000000; 3.200000;, + -0.500000;-1.000000; 3.200000;, + 0.500000;-2.000000; 1.700000;, + -0.500000;-2.000000; 1.700000;, + -0.500000;-2.000000; 3.200000;, + 0.500000;-2.000000; 3.200000;, + -0.500000;-2.000000; 1.700000;, + -0.500000;-1.000000; 1.700000;, + -0.500000;-1.000000; 3.200000;, + -0.500000;-2.000000; 3.200000;, + 0.500000;-2.000000; 3.200000;, + 0.500000;-1.000000; 3.200000;, + 0.500000;-1.000000; 1.700000;, + 0.500000;-2.000000; 1.700000;, + 0.500000;-1.000000; 3.200000;, + -0.500000;-1.000000; 3.200000;, + -0.500000;-1.000000; 1.700000;, + 0.500000;-1.000000; 1.700000;, + -0.500000;-2.000000; 1.700000;, + 0.500000;-2.000000; 1.700000;, + 0.500000;-1.000000; 1.700000;, + -0.500000;-1.000000; 1.700000;, + 1.000000; 1.000000; 0.676959;, + 1.000000; 0.999999; 1.100000;, + -1.000000; 1.000000; 1.100000;, + -1.000000; 1.000000; 0.676959;, + -1.000000;-1.000000; 1.100000;, + -1.000000;-1.000000; 0.677000;, + -1.000000; 1.000000; 0.676959;, + -1.000000; 1.000000; 1.100000;, + -1.000000;-1.000000; 0.677000;, + -1.000000;-1.000000; 1.100000;, + 0.999999;-1.000001; 1.100000;, + 0.999999;-1.000000; 0.677000;, + 0.999999;-1.000000; 0.677000;, + 0.999999;-1.000001; 1.100000;, + 1.000000; 0.999999; 1.100000;, + 1.000000; 1.000000; 0.676959;, + 0.999999;-1.000001; 1.100000;, + -1.000000;-1.000000; 1.100000;, + -1.000000; 1.000000; 1.100000;, + 1.000000; 0.999999; 1.100000;, + -0.500000;-1.000000; 0.677000;, + -0.500000;-1.000000; 2.900000;, + -0.750000;-1.000000; 2.900000;, + -0.750000;-1.000000; 0.677000;, + -0.750000;-1.500000; 2.900000;, + -0.750000;-1.500000; 0.677000;, + -0.750000;-1.000000; 0.677000;, + -0.750000;-1.000000; 2.900000;, + -0.500000;-1.500000; 0.677000;, + -0.500000;-1.500000; 2.900000;, + -0.500000;-1.000000; 2.900000;, + -0.500000;-1.000000; 0.677000;, + -0.500000;-1.500000; 2.900000;, + -0.750000;-1.500000; 2.900000;, + -0.750000;-1.000000; 2.900000;, + -0.500000;-1.000000; 2.900000;, + -0.750000;-1.500000; 2.900000;, + -0.500000;-1.500000; 2.900000;, + -0.500000;-1.500000; 0.677000;, + -0.750000;-1.500000; 0.677000;, + -1.500000;-1.500000; 0.387000;, + -1.500000; 1.500000; 0.387000;, + -1.500000; 1.500000; 0.677000;, + -1.500000;-1.500000; 0.677000;, + 1.500001; 1.499999; 0.387000;, + 1.499999;-1.500001; 0.387000;, + 1.499999;-1.500001; 0.677000;, + 1.500001; 1.499999; 0.677000;, + -1.500000; 1.500000; 0.677000;, + -1.500000; 1.500000; 0.387000;, + 1.500001; 1.499999; 0.387000;, + 1.500001; 1.499999; 0.677000;, + -1.000000; 1.500000; 0.677122;, + 1.000000; 1.500000; 0.676959;, + 1.000000; 1.000000; 0.676959;, + -1.000000; 1.000000; 0.676959;, + 0.999999;-1.000000; 0.677000;, + 0.999999;-1.500001; 0.677000;, + -1.000000;-1.500000; 0.677000;, + -1.000000;-1.000000; 0.677000;, + 1.499999;-1.500001; 0.387000;, + -1.500000;-1.500000; 0.387000;, + -1.500000;-1.500000; 0.677000;, + 1.499999;-1.500001; 0.677000;, + -1.500000; 1.500000; 0.677000;, + -1.000000; 1.500000; 0.677122;, + -1.000000;-1.500000; 0.677000;, + -1.500000;-1.500000; 0.677000;, + 0.499519;-1.500000; 2.900000;, + 0.750000;-1.500000; 2.900000;, + 0.750000;-1.500000; 0.677000;, + 0.499519;-1.500000; 0.677000;, + 0.750000;-1.500000; 2.900000;, + 0.499519;-1.500000; 2.900000;, + 0.499519;-1.000000; 2.900000;, + 0.750000;-1.000000; 2.900000;, + 0.750000;-1.500000; 0.677000;, + 0.750000;-1.500000; 2.900000;, + 0.750000;-1.000000; 2.900000;, + 0.750000;-1.000000; 0.677000;, + 0.499519;-1.500000; 2.900000;, + 0.499519;-1.500000; 0.677000;, + 0.499519;-1.000000; 0.677000;, + 0.499519;-1.000000; 2.900000;, + 0.750000;-1.000000; 0.677000;, + 0.750000;-1.000000; 2.900000;, + 0.499519;-1.000000; 2.900000;, + 0.499519;-1.000000; 0.677000;, + -0.374998;-1.875001; 1.898066;, + 0.375002;-1.875000; 1.898066;, + 0.375001;-1.125000; 1.898066;, + -0.374999;-1.125001; 1.898066;, + 0.375002;-1.875000; 2.982676;, + 0.375001;-1.125000; 2.982676;, + 0.375001;-1.125000; 1.898066;, + 0.375002;-1.875000; 1.898066;, + -0.374998;-1.875001; 1.898066;, + -0.374999;-1.125001; 1.898066;, + -0.374999;-1.125001; 2.982676;, + -0.374998;-1.875001; 2.982676;, + 0.375002;-1.875000; 1.898066;, + -0.374998;-1.875001; 1.898066;, + -0.374998;-1.875001; 2.982676;, + 0.375002;-1.875000; 2.982676;, + 0.375001;-1.125000; 2.982676;, + 0.375002;-1.875000; 2.982676;, + -0.374998;-1.875001; 2.982676;, + -0.374999;-1.125001; 2.982676;, + 1.499999;-1.500001; 0.677000;, + 0.999999;-1.500001; 0.677000;, + 1.000000; 1.500000; 0.676959;, + 1.500001; 1.499999; 0.677000;; + 46; + 4;0;1;2;3;, + 4;4;5;6;7;, + 4;8;9;10;11;, + 4;12;13;14;15;, + 4;16;17;18;19;, + 4;20;21;22;23;, + 4;24;25;26;27;, + 4;28;29;30;31;, + 4;32;33;34;35;, + 4;36;37;38;39;, + 4;40;41;42;43;, + 4;44;45;46;47;, + 4;48;49;50;51;, + 4;52;53;54;55;, + 4;56;57;58;59;, + 4;60;61;62;63;, + 4;64;65;66;67;, + 4;68;69;70;71;, + 4;72;73;74;75;, + 4;76;77;78;79;, + 4;80;81;82;83;, + 4;84;85;86;87;, + 4;88;89;90;91;, + 4;92;93;94;95;, + 4;96;97;98;99;, + 4;100;101;102;103;, + 4;104;105;106;107;, + 4;108;109;110;111;, + 4;112;113;114;115;, + 4;116;117;118;119;, + 4;120;121;122;123;, + 4;124;125;126;127;, + 4;128;129;130;131;, + 4;132;133;134;135;, + 4;136;137;138;139;, + 4;140;141;142;143;, + 4;144;145;146;147;, + 4;148;149;150;151;, + 4;152;153;154;155;, + 4;156;157;158;159;, + 4;160;161;162;163;, + 4;164;165;166;167;, + 4;168;169;170;171;, + 4;172;173;174;175;, + 4;176;177;178;179;, + 4;180;181;182;183;; + MeshNormals { //Mesh Normals + 184; + 0.000000; 0.000000;-1.000000;, + 0.000000; 0.000000;-1.000000;, + 0.000000; 0.000000;-1.000000;, + 0.000000; 0.000000;-1.000000;, + 0.000000; 0.000000; 1.000000;, + 0.000000; 0.000000; 1.000000;, + 0.000000; 0.000000; 1.000000;, + 0.000000; 0.000000; 1.000000;, + -0.000000; 1.000000; 0.000000;, + -0.000000; 1.000000; 0.000000;, + -0.000000; 1.000000; 0.000000;, + -0.000000; 1.000000; 0.000000;, + 1.000000; 0.000000;-0.000000;, + 1.000000; 0.000000;-0.000000;, + 1.000000; 0.000000;-0.000000;, + 1.000000; 0.000000;-0.000000;, + 0.000000;-1.000000;-0.000000;, + 0.000000;-1.000000;-0.000000;, + 0.000000;-1.000000;-0.000000;, + 0.000000;-1.000000;-0.000000;, + -1.000000;-0.000000; 0.000001;, + -1.000000;-0.000000; 0.000001;, + -1.000000;-0.000000; 0.000001;, + -1.000000;-0.000000; 0.000001;, + 0.000000; 0.000000;-1.000000;, + 0.000000; 0.000000;-1.000000;, + 0.000000; 0.000000;-1.000000;, + 0.000000; 0.000000;-1.000000;, + 0.000000; 0.000000; 1.000000;, + 0.000000; 0.000000; 1.000000;, + 0.000000; 0.000000; 1.000000;, + 0.000000; 0.000000; 1.000000;, + -0.000000; 1.000000; 0.000000;, + -0.000000; 1.000000; 0.000000;, + -0.000000; 1.000000; 0.000000;, + -0.000000; 1.000000; 0.000000;, + 1.000000; 0.000000;-0.000001;, + 1.000000; 0.000000;-0.000001;, + 1.000000; 0.000000;-0.000001;, + 1.000000; 0.000000;-0.000001;, + 0.000000;-1.000000;-0.000001;, + 0.000000;-1.000000;-0.000001;, + 0.000000;-1.000000;-0.000001;, + 0.000000;-1.000000;-0.000001;, + -1.000000;-0.000000; 0.000001;, + -1.000000;-0.000000; 0.000001;, + -1.000000;-0.000000; 0.000001;, + -1.000000;-0.000000; 0.000001;, + 0.000000; 0.000000; 1.000000;, + 0.000000; 0.000000; 1.000000;, + 0.000000; 0.000000; 1.000000;, + 0.000000; 0.000000; 1.000000;, + 0.000000;-1.000000; 0.000000;, + 0.000000;-1.000000; 0.000000;, + 0.000000;-1.000000; 0.000000;, + 0.000000;-1.000000; 0.000000;, + -1.000000; 0.000000; 0.000000;, + -1.000000; 0.000000; 0.000000;, + -1.000000; 0.000000; 0.000000;, + -1.000000; 0.000000; 0.000000;, + 1.000000; 0.000000; 0.000000;, + 1.000000; 0.000000; 0.000000;, + 1.000000; 0.000000; 0.000000;, + 1.000000; 0.000000; 0.000000;, + 0.000000; 1.000000; 0.000000;, + 0.000000; 1.000000; 0.000000;, + 0.000000; 1.000000; 0.000000;, + 0.000000; 1.000000; 0.000000;, + 0.000000; 0.000000;-1.000000;, + 0.000000; 0.000000;-1.000000;, + 0.000000; 0.000000;-1.000000;, + 0.000000; 0.000000;-1.000000;, + 0.000000; 1.000000; 0.000000;, + 0.000000; 1.000000; 0.000000;, + 0.000000; 1.000000; 0.000000;, + 0.000000; 1.000000; 0.000000;, + -1.000000; 0.000000;-0.000000;, + -1.000000; 0.000000;-0.000000;, + -1.000000; 0.000000;-0.000000;, + -1.000000; 0.000000;-0.000000;, + -0.000000;-1.000000;-0.000000;, + -0.000000;-1.000000;-0.000000;, + -0.000000;-1.000000;-0.000000;, + -0.000000;-1.000000;-0.000000;, + 1.000000;-0.000001;-0.000000;, + 1.000000;-0.000001;-0.000000;, + 1.000000;-0.000001;-0.000000;, + 1.000000;-0.000001;-0.000000;, + 0.000000;-0.000000; 1.000000;, + 0.000000;-0.000000; 1.000000;, + 0.000000;-0.000000; 1.000000;, + 0.000000;-0.000000; 1.000000;, + 0.000000; 1.000000; 0.000000;, + 0.000000; 1.000000; 0.000000;, + 0.000000; 1.000000; 0.000000;, + 0.000000; 1.000000; 0.000000;, + -1.000000; 0.000000; 0.000000;, + -1.000000; 0.000000; 0.000000;, + -1.000000; 0.000000; 0.000000;, + -1.000000; 0.000000; 0.000000;, + 1.000000;-0.000000; 0.000000;, + 1.000000;-0.000000; 0.000000;, + 1.000000;-0.000000; 0.000000;, + 1.000000;-0.000000; 0.000000;, + 0.000000;-0.000000; 1.000000;, + 0.000000;-0.000000; 1.000000;, + 0.000000;-0.000000; 1.000000;, + 0.000000;-0.000000; 1.000000;, + 0.000000;-1.000000;-0.000000;, + 0.000000;-1.000000;-0.000000;, + 0.000000;-1.000000;-0.000000;, + 0.000000;-1.000000;-0.000000;, + -1.000000; 0.000000; 0.000000;, + -1.000000; 0.000000; 0.000000;, + -1.000000; 0.000000; 0.000000;, + -1.000000; 0.000000; 0.000000;, + 1.000000;-0.000001; 0.000000;, + 1.000000;-0.000001; 0.000000;, + 1.000000;-0.000001; 0.000000;, + 1.000000;-0.000001; 0.000000;, + 0.000000; 1.000000; 0.000000;, + 0.000000; 1.000000; 0.000000;, + 0.000000; 1.000000; 0.000000;, + 0.000000; 1.000000; 0.000000;, + 0.000041;-0.000162; 1.000000;, + 0.000041;-0.000162; 1.000000;, + 0.000041;-0.000162; 1.000000;, + 0.000041;-0.000162; 1.000000;, + 0.000000; 0.000000; 1.000000;, + 0.000000; 0.000000; 1.000000;, + 0.000000; 0.000000; 1.000000;, + 0.000000; 0.000000; 1.000000;, + -0.000001;-1.000000; 0.000000;, + -0.000001;-1.000000; 0.000000;, + -0.000001;-1.000000; 0.000000;, + -0.000001;-1.000000; 0.000000;, + -0.000122;-0.000020; 1.000000;, + -0.000122;-0.000020; 1.000000;, + -0.000122;-0.000020; 1.000000;, + -0.000122;-0.000020; 1.000000;, + 0.000000;-1.000000;-0.000000;, + 0.000000;-1.000000;-0.000000;, + 0.000000;-1.000000;-0.000000;, + 0.000000;-1.000000;-0.000000;, + 0.000000;-0.000000; 1.000000;, + 0.000000;-0.000000; 1.000000;, + 0.000000;-0.000000; 1.000000;, + 0.000000;-0.000000; 1.000000;, + 1.000000;-0.000000; 0.000000;, + 1.000000;-0.000000; 0.000000;, + 1.000000;-0.000000; 0.000000;, + 1.000000;-0.000000; 0.000000;, + -1.000000; 0.000000; 0.000000;, + -1.000000; 0.000000; 0.000000;, + -1.000000; 0.000000; 0.000000;, + -1.000000; 0.000000; 0.000000;, + 0.000000; 1.000000; 0.000000;, + 0.000000; 1.000000; 0.000000;, + 0.000000; 1.000000; 0.000000;, + 0.000000; 1.000000; 0.000000;, + 0.000000; 0.000000;-1.000000;, + 0.000000; 0.000000;-1.000000;, + 0.000000; 0.000000;-1.000000;, + 0.000000; 0.000000;-1.000000;, + 1.000000; 0.000001; 0.000000;, + 1.000000; 0.000001; 0.000000;, + 1.000000; 0.000001; 0.000000;, + 1.000000; 0.000001; 0.000000;, + -1.000000;-0.000001; 0.000000;, + -1.000000;-0.000001; 0.000000;, + -1.000000;-0.000001; 0.000000;, + -1.000000;-0.000001; 0.000000;, + 0.000001;-1.000000; 0.000000;, + 0.000001;-1.000000; 0.000000;, + 0.000001;-1.000000; 0.000000;, + 0.000001;-1.000000; 0.000000;, + 0.000000; 0.000000; 1.000000;, + 0.000000; 0.000000; 1.000000;, + 0.000000; 0.000000; 1.000000;, + 0.000000; 0.000000; 1.000000;, + -0.000041; 0.000007; 1.000000;, + -0.000041; 0.000007; 1.000000;, + -0.000041; 0.000007; 1.000000;, + -0.000041; 0.000007; 1.000000;; + 46; + 4;0;1;2;3;, + 4;4;5;6;7;, + 4;8;9;10;11;, + 4;12;13;14;15;, + 4;16;17;18;19;, + 4;20;21;22;23;, + 4;24;25;26;27;, + 4;28;29;30;31;, + 4;32;33;34;35;, + 4;36;37;38;39;, + 4;40;41;42;43;, + 4;44;45;46;47;, + 4;48;49;50;51;, + 4;52;53;54;55;, + 4;56;57;58;59;, + 4;60;61;62;63;, + 4;64;65;66;67;, + 4;68;69;70;71;, + 4;72;73;74;75;, + 4;76;77;78;79;, + 4;80;81;82;83;, + 4;84;85;86;87;, + 4;88;89;90;91;, + 4;92;93;94;95;, + 4;96;97;98;99;, + 4;100;101;102;103;, + 4;104;105;106;107;, + 4;108;109;110;111;, + 4;112;113;114;115;, + 4;116;117;118;119;, + 4;120;121;122;123;, + 4;124;125;126;127;, + 4;128;129;130;131;, + 4;132;133;134;135;, + 4;136;137;138;139;, + 4;140;141;142;143;, + 4;144;145;146;147;, + 4;148;149;150;151;, + 4;152;153;154;155;, + 4;156;157;158;159;, + 4;160;161;162;163;, + 4;164;165;166;167;, + 4;168;169;170;171;, + 4;172;173;174;175;, + 4;176;177;178;179;, + 4;180;181;182;183;; + } //End of Mesh Normals + MeshMaterialList { //Mesh Material List + 1; + 46; + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0;; + Material Hovercraft { + 0.640000; 0.640000; 0.640000; 1.000000;; + 96.078431; + 1.000000; 1.000000; 1.000000;; + 0.000000; 0.000000; 0.000000;; + } + } //End of Mesh Material List + MeshTextureCoords { //Mesh UV Coordinates + 184; + 0.031250; 0.531250;, + 0.468750; 0.531250;, + 0.468750; 0.968750;, + 0.031250; 0.968750;, + 0.031250; 0.531250;, + 0.468750; 0.531250;, + 0.468750; 0.968750;, + 0.031250; 0.968750;, + 0.531250; 0.968750;, + 0.531250; 0.781250;, + 0.968750; 0.781250;, + 0.968750; 0.968750;, + 0.968750; 0.718750;, + 0.968750; 0.531250;, + 0.531250; 0.531250;, + 0.531250; 0.718750;, + 0.531250; 0.968750;, + 0.531250; 0.781250;, + 0.968750; 0.781250;, + 0.968750; 0.968750;, + 0.968750; 0.531250;, + 0.968750; 0.718750;, + 0.531250; 0.718750;, + 0.531250; 0.531250;, + 0.000000; 0.500000;, + 0.500000; 0.500000;, + 0.500000; 1.000000;, + 0.000000; 1.000000;, + 0.000000; 0.500000;, + 0.500000; 0.500000;, + 0.500000; 1.000000;, + 0.000000; 1.000000;, + 0.500000; 0.968750;, + 0.500000; 0.812500;, + 1.000000; 0.812500;, + 1.000000; 0.968750;, + 1.000000; 0.718750;, + 1.000000; 0.562500;, + 0.500000; 0.562500;, + 0.500000; 0.718750;, + 0.500000; 0.968750;, + 0.500000; 0.812500;, + 1.000000; 0.812500;, + 1.000000; 0.968750;, + 1.000000; 0.562500;, + 1.000000; 0.718750;, + 0.500000; 0.718750;, + 0.500000; 0.562500;, + 0.625000; 0.000000;, + 0.750000; 0.000000;, + 0.750000; 0.125000;, + 0.625000; 0.125000;, + 0.875000; 0.250000;, + 0.750000; 0.250000;, + 0.750000; 0.125000;, + 0.875000; 0.125000;, + 0.625000; 0.125000;, + 0.500000; 0.125000;, + 0.500000; 0.000000;, + 0.625000; 0.000000;, + 0.875000; 0.125000;, + 0.750000; 0.125000;, + 0.750000; 0.000000;, + 0.875000; 0.000000;, + 0.625000; 0.125000;, + 0.750000; 0.125000;, + 0.750000; 0.250000;, + 0.625000; 0.250000;, + 1.000000; 0.000000;, + 1.000000; 0.125000;, + 0.875000; 0.125000;, + 0.875000; 0.000000;, + 0.078125; 0.125000;, + 0.125000; 0.125000;, + 0.125000; 0.375000;, + 0.078125; 0.375000;, + 0.375000; 0.078125;, + 0.375000; 0.125000;, + 0.125000; 0.125000;, + 0.125000; 0.078125;, + 0.421875; 0.375000;, + 0.375000; 0.375000;, + 0.375000; 0.125000;, + 0.421875; 0.125000;, + 0.375000; 0.421875;, + 0.375000; 0.375000;, + 0.125000; 0.375000;, + 0.125000; 0.421875;, + 0.375000; 0.125000;, + 0.375000; 0.375000;, + 0.125000; 0.375000;, + 0.125000; 0.125000;, + 0.500000; 0.500000;, + 0.500000; 0.296875;, + 0.546875; 0.296875;, + 0.546875; 0.500000;, + 0.609375; 0.296875;, + 0.609375; 0.500000;, + 0.546875; 0.500000;, + 0.546875; 0.296875;, + 0.718750; 0.500000;, + 0.718750; 0.296875;, + 0.656250; 0.296875;, + 0.656250; 0.500000;, + 0.609375; 0.250000;, + 0.609375; 0.296875;, + 0.546875; 0.296875;, + 0.546875; 0.250000;, + 0.609375; 0.296875;, + 0.656250; 0.296875;, + 0.656250; 0.500000;, + 0.609375; 0.500000;, + 0.937500; 0.531250;, + 0.562500; 0.531250;, + 0.562500; 0.500000;, + 0.937500; 0.500000;, + 0.562500; 0.531250;, + 0.937500; 0.531250;, + 0.937500; 0.500000;, + 0.562500; 0.500000;, + 0.937500; 0.750000;, + 0.937500; 0.781250;, + 0.562500; 0.781250;, + 0.562500; 0.750000;, + 0.000000; 0.375000;, + 0.000000; 0.125000;, + 0.078125; 0.125000;, + 0.078125; 0.375000;, + 0.421875; 0.125000;, + 0.500000; 0.125000;, + 0.500000; 0.375000;, + 0.421875; 0.375000;, + 0.937500; 0.781250;, + 0.562500; 0.781250;, + 0.562500; 0.750000;, + 0.937500; 0.750000;, + 0.062500; 0.078125;, + 0.062500; 0.000000;, + 0.437500; 0.000000;, + 0.437500; 0.078125;, + 0.859375; 0.296875;, + 0.812500; 0.296875;, + 0.812500; 0.500000;, + 0.859375; 0.500000;, + 0.859375; 0.250000;, + 0.859375; 0.296875;, + 0.921875; 0.296875;, + 0.921875; 0.250000;, + 0.750000; 0.500000;, + 0.750000; 0.296875;, + 0.812500; 0.296875;, + 0.812500; 0.500000;, + 0.859375; 0.296875;, + 0.859375; 0.500000;, + 0.921875; 0.500000;, + 0.921875; 0.296875;, + 0.968750; 0.500000;, + 0.968750; 0.296875;, + 0.921875; 0.296875;, + 0.921875; 0.500000;, + 0.609375; 0.140625;, + 0.609375; 0.234375;, + 0.515625; 0.234375;, + 0.515625; 0.140625;, + 0.609375; 0.234375;, + 0.515625; 0.234375;, + 0.515625; 0.140625;, + 0.609375; 0.140625;, + 0.609375; 0.234375;, + 0.515625; 0.234375;, + 0.515625; 0.140625;, + 0.609375; 0.140625;, + 0.984375; 0.234375;, + 0.890625; 0.234375;, + 0.890625; 0.140625;, + 0.984375; 0.140625;, + 0.515625; 0.140625;, + 0.609375; 0.140625;, + 0.609375; 0.234375;, + 0.515625; 0.234375;, + 0.062500; 0.421875;, + 0.062500; 0.500000;, + 0.437500; 0.500000;, + 0.437500; 0.421875;; + } //End of Mesh UV Coordinates + XSkinMeshHeader { + 1; + 3; + 2; + } + SkinWeights { + "Armature_Thruster"; + 20; + 160, + 161, + 162, + 163, + 164, + 165, + 166, + 167, + 168, + 169, + 170, + 171, + 172, + 173, + 174, + 175, + 176, + 177, + 178, + 179; + 1.000000, + 1.000000, + 1.000000, + 1.000000, + 1.000000, + 1.000000, + 1.000000, + 1.000000, + 1.000000, + 1.000000, + 1.000000, + 1.000000, + 1.000000, + 1.000000, + 1.000000, + 1.000000, + 1.000000, + 1.000000, + 1.000000, + 1.000000; + -4.000000, 0.000002, 0.000000, 0.000000, + -0.000002,-4.000000, 0.000000, 0.000000, + 0.000000, 0.000000, 2.581575, 0.000000, + -0.000000,-4.639344,-6.900000, 1.000000;; + } //End of Armature_Thruster Skin Weights + SkinWeights { + "Armature_Body"; + 164; + 0, + 1, + 2, + 3, + 4, + 5, + 6, + 7, + 8, + 9, + 10, + 11, + 12, + 13, + 14, + 15, + 16, + 17, + 18, + 19, + 20, + 21, + 22, + 23, + 24, + 25, + 26, + 27, + 28, + 29, + 30, + 31, + 32, + 33, + 34, + 35, + 36, + 37, + 38, + 39, + 40, + 41, + 42, + 43, + 44, + 45, + 46, + 47, + 48, + 49, + 50, + 51, + 52, + 53, + 54, + 55, + 56, + 57, + 58, + 59, + 60, + 61, + 62, + 63, + 64, + 65, + 66, + 67, + 68, + 69, + 70, + 71, + 72, + 73, + 74, + 75, + 76, + 77, + 78, + 79, + 80, + 81, + 82, + 83, + 84, + 85, + 86, + 87, + 88, + 89, + 90, + 91, + 92, + 93, + 94, + 95, + 96, + 97, + 98, + 99, + 100, + 101, + 102, + 103, + 104, + 105, + 106, + 107, + 108, + 109, + 110, + 111, + 112, + 113, + 114, + 115, + 116, + 117, + 118, + 119, + 120, + 121, + 122, + 123, + 124, + 125, + 126, + 127, + 128, + 129, + 130, + 131, + 132, + 133, + 134, + 135, + 136, + 137, + 138, + 139, + 140, + 141, + 142, + 143, + 144, + 145, + 146, + 147, + 148, + 149, + 150, + 151, + 152, + 153, + 154, + 155, + 156, + 157, + 158, + 159, + 180, + 181, + 182, + 183; + 1.000000, + 1.000000, + 1.000000, + 1.000000, + 1.000000, + 1.000000, + 1.000000, + 1.000000, + 1.000000, + 1.000000, + 1.000000, + 1.000000, + 1.000000, + 1.000000, + 1.000000, + 1.000000, + 1.000000, + 1.000000, + 1.000000, + 1.000000, + 1.000000, + 1.000000, + 1.000000, + 1.000000, + 1.000000, + 1.000000, + 1.000000, + 1.000000, + 1.000000, + 1.000000, + 1.000000, + 1.000000, + 1.000000, + 1.000000, + 1.000000, + 1.000000, + 1.000000, + 1.000000, + 1.000000, + 1.000000, + 1.000000, + 1.000000, + 1.000000, + 1.000000, + 1.000000, + 1.000000, + 1.000000, + 1.000000, + 1.000000, + 1.000000, + 1.000000, + 1.000000, + 1.000000, + 1.000000, + 1.000000, + 1.000000, + 1.000000, + 1.000000, + 1.000000, + 1.000000, + 1.000000, + 1.000000, + 1.000000, + 1.000000, + 1.000000, + 1.000000, + 1.000000, + 1.000000, + 1.000000, + 1.000000, + 1.000000, + 1.000000, + 1.000000, + 1.000000, + 1.000000, + 1.000000, + 1.000000, + 1.000000, + 1.000000, + 1.000000, + 1.000000, + 1.000000, + 1.000000, + 1.000000, + 1.000000, + 1.000000, + 1.000000, + 1.000000, + 1.000000, + 1.000000, + 1.000000, + 1.000000, + 1.000000, + 1.000000, + 1.000000, + 1.000000, + 1.000000, + 1.000000, + 1.000000, + 1.000000, + 1.000000, + 1.000000, + 1.000000, + 1.000000, + 1.000000, + 1.000000, + 1.000000, + 1.000000, + 1.000000, + 1.000000, + 1.000000, + 1.000000, + 1.000000, + 1.000000, + 1.000000, + 1.000000, + 1.000000, + 1.000000, + 1.000000, + 1.000000, + 1.000000, + 1.000000, + 1.000000, + 1.000000, + 1.000000, + 1.000000, + 1.000000, + 1.000000, + 1.000000, + 1.000000, + 1.000000, + 1.000000, + 1.000000, + 1.000000, + 1.000000, + 1.000000, + 1.000000, + 1.000000, + 1.000000, + 1.000000, + 1.000000, + 1.000000, + 1.000000, + 1.000000, + 1.000000, + 1.000000, + 1.000000, + 1.000000, + 1.000000, + 1.000000, + 1.000000, + 1.000000, + 1.000000, + 1.000000, + 1.000000, + 1.000000, + 1.000000, + 1.000000, + 1.000000, + 1.000000, + 1.000000, + 1.000000, + 1.000000, + 1.000000; + -0.000003,-0.000000, 4.000000, 0.000000, + 4.000000, 0.000000, 0.000003, 0.000000, + -0.000000, 2.581575, 0.000000, 0.000000, + 0.000000, 1.959941, 0.000000, 1.000000;; + } //End of Armature_Body Skin Weights + } //End of Mesh Mesh + } //End of Hovercraft + } //End of Armature +} //End of Root Frame +AnimationSet { + Animation { + {Armature} + AnimationKey { //Position + 2; + 76; + 0;3; 0.000000, 0.000000, 3.500000;;, + 1;3; 0.000000, 0.000000, 3.500000;;, + 2;3; 0.000000, 0.000000, 3.500000;;, + 3;3; 0.000000, 0.000000, 3.500000;;, + 4;3; 0.000000, 0.000000, 3.500000;;, + 5;3; 0.000000, 0.000000, 3.500000;;, + 6;3; 0.000000, 0.000000, 3.500000;;, + 7;3; 0.000000, 0.000000, 3.500000;;, + 8;3; 0.000000, 0.000000, 3.500000;;, + 9;3; 0.000000, 0.000000, 3.500000;;, + 10;3; 0.000000, 0.000000, 3.500000;;, + 11;3; 0.000000, 0.000000, 3.500000;;, + 12;3; 0.000000, 0.000000, 3.500000;;, + 13;3; 0.000000, 0.000000, 3.500000;;, + 14;3; 0.000000, 0.000000, 3.500000;;, + 15;3; 0.000000, 0.000000, 3.500000;;, + 16;3; 0.000000, 0.000000, 3.500000;;, + 17;3; 0.000000, 0.000000, 3.500000;;, + 18;3; 0.000000, 0.000000, 3.500000;;, + 19;3; 0.000000, 0.000000, 3.500000;;, + 20;3; 0.000000, 0.000000, 3.500000;;, + 21;3; 0.000000, 0.000000, 3.500000;;, + 22;3; 0.000000, 0.000000, 3.500000;;, + 23;3; 0.000000, 0.000000, 3.500000;;, + 24;3; 0.000000, 0.000000, 3.500000;;, + 25;3; 0.000000, 0.000000, 3.500000;;, + 26;3; 0.000000, 0.000000, 3.500000;;, + 27;3; 0.000000, 0.000000, 3.500000;;, + 28;3; 0.000000, 0.000000, 3.500000;;, + 29;3; 0.000000, 0.000000, 3.500000;;, + 30;3; 0.000000, 0.000000, 3.500000;;, + 31;3; 0.000000, 0.000000, 3.500000;;, + 32;3; 0.000000, 0.000000, 3.500000;;, + 33;3; 0.000000, 0.000000, 3.500000;;, + 34;3; 0.000000, 0.000000, 3.500000;;, + 35;3; 0.000000, 0.000000, 3.500000;;, + 36;3; 0.000000, 0.000000, 3.500000;;, + 37;3; 0.000000, 0.000000, 3.500000;;, + 38;3; 0.000000, 0.000000, 3.500000;;, + 39;3; 0.000000, 0.000000, 3.500000;;, + 40;3; 0.000000, 0.000000, 3.500000;;, + 41;3; 0.000000, 0.000000, 3.500000;;, + 42;3; 0.000000, 0.000000, 3.500000;;, + 43;3; 0.000000, 0.000000, 3.500000;;, + 44;3; 0.000000, 0.000000, 3.500000;;, + 45;3; 0.000000, 0.000000, 3.500000;;, + 46;3; 0.000000, 0.000000, 3.500000;;, + 47;3; 0.000000, 0.000000, 3.500000;;, + 48;3; 0.000000, 0.000000, 3.500000;;, + 49;3; 0.000000, 0.000000, 3.500000;;, + 50;3; 0.000000, 0.000000, 3.500000;;, + 51;3; 0.000000, 0.000000, 3.500000;;, + 52;3; 0.000000, 0.000000, 3.500000;;, + 53;3; 0.000000, 0.000000, 3.500000;;, + 54;3; 0.000000, 0.000000, 3.500000;;, + 55;3; 0.000000, 0.000000, 3.500000;;, + 56;3; 0.000000, 0.000000, 3.500000;;, + 57;3; 0.000000, 0.000000, 3.500000;;, + 58;3; 0.000000, 0.000000, 3.500000;;, + 59;3; 0.000000, 0.000000, 3.500000;;, + 60;3; 0.000000, 0.000000, 3.500000;;, + 61;3; 0.000000, 0.000000, 3.500000;;, + 62;3; 0.000000, 0.000000, 3.500000;;, + 63;3; 0.000000, 0.000000, 3.500000;;, + 64;3; 0.000000, 0.000000, 3.500000;;, + 65;3; 0.000000, 0.000000, 3.500000;;, + 66;3; 0.000000, 0.000000, 3.500000;;, + 67;3; 0.000000, 0.000000, 3.500000;;, + 68;3; 0.000000, 0.000000, 3.500000;;, + 69;3; 0.000000, 0.000000, 3.500000;;, + 70;3; 0.000000, 0.000000, 3.500000;;, + 71;3; 0.000000, 0.000000, 3.500000;;, + 72;3; 0.000000, 0.000000, 3.500000;;, + 73;3; 0.000000, 0.000000, 3.500000;;, + 74;3; 0.000000, 0.000000, 3.500000;;, + 75;3; 0.000000, 0.000000, 3.500000;;; + } + AnimationKey { //Rotation + 0; + 76; + 0;4; -1.000000, 0.000000, 0.000000, 0.000000;;, + 1;4; -1.000000, 0.000000, 0.000000, 0.000000;;, + 2;4; -1.000000, 0.000000, 0.000000, 0.000000;;, + 3;4; -1.000000, 0.000000, 0.000000, 0.000000;;, + 4;4; -1.000000, 0.000000, 0.000000, 0.000000;;, + 5;4; -1.000000, 0.000000, 0.000000, 0.000000;;, + 6;4; -1.000000, 0.000000, 0.000000, 0.000000;;, + 7;4; -1.000000, 0.000000, 0.000000, 0.000000;;, + 8;4; -1.000000, 0.000000, 0.000000, 0.000000;;, + 9;4; -1.000000, 0.000000, 0.000000, 0.000000;;, + 10;4; -1.000000, 0.000000, 0.000000, 0.000000;;, + 11;4; -1.000000, 0.000000, 0.000000, 0.000000;;, + 12;4; -1.000000, 0.000000, 0.000000, 0.000000;;, + 13;4; -1.000000, 0.000000, 0.000000, 0.000000;;, + 14;4; -1.000000, 0.000000, 0.000000, 0.000000;;, + 15;4; -1.000000, 0.000000, 0.000000, 0.000000;;, + 16;4; -1.000000, 0.000000, 0.000000, 0.000000;;, + 17;4; -1.000000, 0.000000, 0.000000, 0.000000;;, + 18;4; -1.000000, 0.000000, 0.000000, 0.000000;;, + 19;4; -1.000000, 0.000000, 0.000000, 0.000000;;, + 20;4; -1.000000, 0.000000, 0.000000, 0.000000;;, + 21;4; -1.000000, 0.000000, 0.000000, 0.000000;;, + 22;4; -1.000000, 0.000000, 0.000000, 0.000000;;, + 23;4; -1.000000, 0.000000, 0.000000, 0.000000;;, + 24;4; -1.000000, 0.000000, 0.000000, 0.000000;;, + 25;4; -1.000000, 0.000000, 0.000000, 0.000000;;, + 26;4; -1.000000, 0.000000, 0.000000, 0.000000;;, + 27;4; -1.000000, 0.000000, 0.000000, 0.000000;;, + 28;4; -1.000000, 0.000000, 0.000000, 0.000000;;, + 29;4; -1.000000, 0.000000, 0.000000, 0.000000;;, + 30;4; -1.000000, 0.000000, 0.000000, 0.000000;;, + 31;4; -1.000000, 0.000000, 0.000000, 0.000000;;, + 32;4; -1.000000, 0.000000, 0.000000, 0.000000;;, + 33;4; -1.000000, 0.000000, 0.000000, 0.000000;;, + 34;4; -1.000000, 0.000000, 0.000000, 0.000000;;, + 35;4; -1.000000, 0.000000, 0.000000, 0.000000;;, + 36;4; -1.000000, 0.000000, 0.000000, 0.000000;;, + 37;4; -1.000000, 0.000000, 0.000000, 0.000000;;, + 38;4; -1.000000, 0.000000, 0.000000, 0.000000;;, + 39;4; -1.000000, 0.000000, 0.000000, 0.000000;;, + 40;4; -1.000000, 0.000000, 0.000000, 0.000000;;, + 41;4; -1.000000, 0.000000, 0.000000, 0.000000;;, + 42;4; -1.000000, 0.000000, 0.000000, 0.000000;;, + 43;4; -1.000000, 0.000000, 0.000000, 0.000000;;, + 44;4; -1.000000, 0.000000, 0.000000, 0.000000;;, + 45;4; -1.000000, 0.000000, 0.000000, 0.000000;;, + 46;4; -1.000000, 0.000000, 0.000000, 0.000000;;, + 47;4; -1.000000, 0.000000, 0.000000, 0.000000;;, + 48;4; -1.000000, 0.000000, 0.000000, 0.000000;;, + 49;4; -1.000000, 0.000000, 0.000000, 0.000000;;, + 50;4; -1.000000, 0.000000, 0.000000, 0.000000;;, + 51;4; -1.000000, 0.000000, 0.000000, 0.000000;;, + 52;4; -1.000000, 0.000000, 0.000000, 0.000000;;, + 53;4; -1.000000, 0.000000, 0.000000, 0.000000;;, + 54;4; -1.000000, 0.000000, 0.000000, 0.000000;;, + 55;4; -1.000000, 0.000000, 0.000000, 0.000000;;, + 56;4; -1.000000, 0.000000, 0.000000, 0.000000;;, + 57;4; -1.000000, 0.000000, 0.000000, 0.000000;;, + 58;4; -1.000000, 0.000000, 0.000000, 0.000000;;, + 59;4; -1.000000, 0.000000, 0.000000, 0.000000;;, + 60;4; -1.000000, 0.000000, 0.000000, 0.000000;;, + 61;4; -1.000000, 0.000000, 0.000000, 0.000000;;, + 62;4; -1.000000, 0.000000, 0.000000, 0.000000;;, + 63;4; -1.000000, 0.000000, 0.000000, 0.000000;;, + 64;4; -1.000000, 0.000000, 0.000000, 0.000000;;, + 65;4; -1.000000, 0.000000, 0.000000, 0.000000;;, + 66;4; -1.000000, 0.000000, 0.000000, 0.000000;;, + 67;4; -1.000000, 0.000000, 0.000000, 0.000000;;, + 68;4; -1.000000, 0.000000, 0.000000, 0.000000;;, + 69;4; -1.000000, 0.000000, 0.000000, 0.000000;;, + 70;4; -1.000000, 0.000000, 0.000000, 0.000000;;, + 71;4; -1.000000, 0.000000, 0.000000, 0.000000;;, + 72;4; -1.000000, 0.000000, 0.000000, 0.000000;;, + 73;4; -1.000000, 0.000000, 0.000000, 0.000000;;, + 74;4; -1.000000, 0.000000, 0.000000, 0.000000;;, + 75;4; -1.000000, 0.000000, 0.000000, 0.000000;;; + } + AnimationKey { //Scale + 1; + 76; + 0;3; 1.000000, 1.000000, 1.000000;;, + 1;3; 1.000000, 1.000000, 1.000000;;, + 2;3; 1.000000, 1.000000, 1.000000;;, + 3;3; 1.000000, 1.000000, 1.000000;;, + 4;3; 1.000000, 1.000000, 1.000000;;, + 5;3; 1.000000, 1.000000, 1.000000;;, + 6;3; 1.000000, 1.000000, 1.000000;;, + 7;3; 1.000000, 1.000000, 1.000000;;, + 8;3; 1.000000, 1.000000, 1.000000;;, + 9;3; 1.000000, 1.000000, 1.000000;;, + 10;3; 1.000000, 1.000000, 1.000000;;, + 11;3; 1.000000, 1.000000, 1.000000;;, + 12;3; 1.000000, 1.000000, 1.000000;;, + 13;3; 1.000000, 1.000000, 1.000000;;, + 14;3; 1.000000, 1.000000, 1.000000;;, + 15;3; 1.000000, 1.000000, 1.000000;;, + 16;3; 1.000000, 1.000000, 1.000000;;, + 17;3; 1.000000, 1.000000, 1.000000;;, + 18;3; 1.000000, 1.000000, 1.000000;;, + 19;3; 1.000000, 1.000000, 1.000000;;, + 20;3; 1.000000, 1.000000, 1.000000;;, + 21;3; 1.000000, 1.000000, 1.000000;;, + 22;3; 1.000000, 1.000000, 1.000000;;, + 23;3; 1.000000, 1.000000, 1.000000;;, + 24;3; 1.000000, 1.000000, 1.000000;;, + 25;3; 1.000000, 1.000000, 1.000000;;, + 26;3; 1.000000, 1.000000, 1.000000;;, + 27;3; 1.000000, 1.000000, 1.000000;;, + 28;3; 1.000000, 1.000000, 1.000000;;, + 29;3; 1.000000, 1.000000, 1.000000;;, + 30;3; 1.000000, 1.000000, 1.000000;;, + 31;3; 1.000000, 1.000000, 1.000000;;, + 32;3; 1.000000, 1.000000, 1.000000;;, + 33;3; 1.000000, 1.000000, 1.000000;;, + 34;3; 1.000000, 1.000000, 1.000000;;, + 35;3; 1.000000, 1.000000, 1.000000;;, + 36;3; 1.000000, 1.000000, 1.000000;;, + 37;3; 1.000000, 1.000000, 1.000000;;, + 38;3; 1.000000, 1.000000, 1.000000;;, + 39;3; 1.000000, 1.000000, 1.000000;;, + 40;3; 1.000000, 1.000000, 1.000000;;, + 41;3; 1.000000, 1.000000, 1.000000;;, + 42;3; 1.000000, 1.000000, 1.000000;;, + 43;3; 1.000000, 1.000000, 1.000000;;, + 44;3; 1.000000, 1.000000, 1.000000;;, + 45;3; 1.000000, 1.000000, 1.000000;;, + 46;3; 1.000000, 1.000000, 1.000000;;, + 47;3; 1.000000, 1.000000, 1.000000;;, + 48;3; 1.000000, 1.000000, 1.000000;;, + 49;3; 1.000000, 1.000000, 1.000000;;, + 50;3; 1.000000, 1.000000, 1.000000;;, + 51;3; 1.000000, 1.000000, 1.000000;;, + 52;3; 1.000000, 1.000000, 1.000000;;, + 53;3; 1.000000, 1.000000, 1.000000;;, + 54;3; 1.000000, 1.000000, 1.000000;;, + 55;3; 1.000000, 1.000000, 1.000000;;, + 56;3; 1.000000, 1.000000, 1.000000;;, + 57;3; 1.000000, 1.000000, 1.000000;;, + 58;3; 1.000000, 1.000000, 1.000000;;, + 59;3; 1.000000, 1.000000, 1.000000;;, + 60;3; 1.000000, 1.000000, 1.000000;;, + 61;3; 1.000000, 1.000000, 1.000000;;, + 62;3; 1.000000, 1.000000, 1.000000;;, + 63;3; 1.000000, 1.000000, 1.000000;;, + 64;3; 1.000000, 1.000000, 1.000000;;, + 65;3; 1.000000, 1.000000, 1.000000;;, + 66;3; 1.000000, 1.000000, 1.000000;;, + 67;3; 1.000000, 1.000000, 1.000000;;, + 68;3; 1.000000, 1.000000, 1.000000;;, + 69;3; 1.000000, 1.000000, 1.000000;;, + 70;3; 1.000000, 1.000000, 1.000000;;, + 71;3; 1.000000, 1.000000, 1.000000;;, + 72;3; 1.000000, 1.000000, 1.000000;;, + 73;3; 1.000000, 1.000000, 1.000000;;, + 74;3; 1.000000, 1.000000, 1.000000;;, + 75;3; 1.000000, 1.000000, 1.000000;;; + } + } + Animation { + {Armature_Body} + AnimationKey { //Position + 2; + 76; + 0;3; -0.000000, 0.000000,-2.459941;;, + 1;3; -0.000000, 0.000000,-2.455327;;, + 2;3; -0.000000, 0.000000,-2.441401;;, + 3;3; -0.000000, 0.000000,-2.418439;;, + 4;3; -0.000000, 0.000000,-2.387453;;, + 5;3; -0.000000, 0.000000,-2.350351;;, + 6;3; -0.000000, 0.000000,-2.309918;;, + 7;3; -0.000000, 0.000000,-2.269489;;, + 8;3; -0.000000, 0.000000,-2.232396;;, + 9;3; -0.000000, 0.000000,-2.201421;;, + 10;3; -0.000000, 0.000000,-2.178471;;, + 11;3; -0.000000, 0.000000,-2.164552;;, + 12;3; -0.000000, 0.000000,-2.159941;;, + 13;3; -0.000000, 0.000000,-2.164208;;, + 14;3; -0.000000, 0.000000,-2.175990;;, + 15;3; -0.000000, 0.000000,-2.194004;;, + 16;3; -0.000000, 0.000000,-2.217200;;, + 17;3; -0.000000, 0.000000,-2.244668;;, + 18;3; -0.000000, 0.000000,-2.275574;;, + 19;3; -0.000000, 0.000000,-2.309081;;, + 20;3; -0.000000, 0.000000,-2.344266;;, + 21;3; -0.000000, 0.000000,-2.379952;;, + 22;3; -0.000000, 0.000000,-2.414374;;, + 23;3; -0.000000, 0.000000,-2.444181;;, + 24;3; -0.000000, 0.000000,-2.459941;;, + 25;3; -0.000000, 0.000000,-2.459941;;, + 26;3; -0.000000, 0.000000,-2.459941;;, + 27;3; -0.000000, 0.000000,-2.459941;;, + 28;3; -0.000000, 0.000000,-2.459941;;, + 29;3; -0.000000, 0.000000,-2.459941;;, + 30;3; -0.000000, 0.000000,-2.459941;;, + 31;3; -0.000000, 0.000000,-2.459941;;, + 32;3; -0.000000, 0.000000,-2.459941;;, + 33;3; -0.000000, 0.000000,-2.459941;;, + 34;3; -0.000000, 0.000000,-2.459941;;, + 35;3; -0.000000, 0.000000,-2.459941;;, + 36;3; -0.000000, 0.000000,-2.459941;;, + 37;3; -0.000000, 0.000000,-2.459941;;, + 38;3; -0.000000, 0.000000,-2.459941;;, + 39;3; -0.000000, 0.000000,-2.459941;;, + 40;3; -0.000000, 0.000000,-2.459941;;, + 41;3; -0.000000, 0.000000,-2.459941;;, + 42;3; -0.000000, 0.000000,-2.459941;;, + 43;3; -0.000000, 0.000000,-2.459941;;, + 44;3; -0.000000, 0.000000,-2.459941;;, + 45;3; -0.000000, 0.000000,-2.459941;;, + 46;3; -0.000000, 0.000000,-2.459941;;, + 47;3; -0.000000, 0.000000,-2.459941;;, + 48;3; -0.000000, 0.000000,-2.459941;;, + 49;3; -0.000000, 0.000000,-2.459941;;, + 50;3; -0.000000, 0.000000,-2.459941;;, + 51;3; -0.000000, 0.000000,-2.459941;;, + 52;3; -0.000000, 0.000000,-2.459941;;, + 53;3; -0.000000, 0.000000,-2.459941;;, + 54;3; -0.000000, 0.000000,-2.459941;;, + 55;3; -0.000000, 0.000000,-2.459941;;, + 56;3; -0.000000, 0.000000,-2.459941;;, + 57;3; -0.000000, 0.000000,-2.459941;;, + 58;3; -0.000000, 0.000000,-2.459941;;, + 59;3; -0.000000, 0.000000,-2.459941;;, + 60;3; -0.000000, 0.000000,-2.459941;;, + 61;3; -0.000000, 0.000000,-2.459941;;, + 62;3; -0.000000, 0.000000,-2.459941;;, + 63;3; -0.000000, 0.000000,-2.459941;;, + 64;3; -0.000000, 0.000000,-2.459941;;, + 65;3; -0.000000, 0.000000,-2.459941;;, + 66;3; -0.000000, 0.000000,-2.459941;;, + 67;3; -0.000000, 0.000000,-2.459941;;, + 68;3; -0.000000, 0.000000,-2.459941;;, + 69;3; -0.000000, 0.000000,-2.459941;;, + 70;3; -0.000000, 0.000000,-2.459941;;, + 71;3; -0.000000, 0.000000,-2.459941;;, + 72;3; -0.000000, 0.000000,-2.459941;;, + 73;3; -0.000000, 0.000000,-2.459941;;, + 74;3; -0.000000, 0.000000,-2.459941;;, + 75;3; -0.000000, 0.000000,-2.459941;;; + } + AnimationKey { //Rotation + 0; + 76; + 0;4; -0.707107, 0.707107, 0.000000,-0.000000;;, + 1;4; -0.707107, 0.707107, 0.000000,-0.000000;;, + 2;4; -0.707107, 0.707107, 0.000000,-0.000000;;, + 3;4; -0.707107, 0.707107, 0.000000,-0.000000;;, + 4;4; -0.707107, 0.707107, 0.000000,-0.000000;;, + 5;4; -0.707107, 0.707107, 0.000000,-0.000000;;, + 6;4; -0.707107, 0.707107, 0.000000,-0.000000;;, + 7;4; -0.707107, 0.707107, 0.000000,-0.000000;;, + 8;4; -0.707107, 0.707107, 0.000000,-0.000000;;, + 9;4; -0.707107, 0.707107, 0.000000,-0.000000;;, + 10;4; -0.707107, 0.707107, 0.000000,-0.000000;;, + 11;4; -0.707107, 0.707107, 0.000000,-0.000000;;, + 12;4; -0.707107, 0.707107, 0.000000,-0.000000;;, + 13;4; -0.707107, 0.707107, 0.000000,-0.000000;;, + 14;4; -0.707107, 0.707107, 0.000000,-0.000000;;, + 15;4; -0.707107, 0.707107, 0.000000,-0.000000;;, + 16;4; -0.707107, 0.707107, 0.000000,-0.000000;;, + 17;4; -0.707107, 0.707107, 0.000000,-0.000000;;, + 18;4; -0.707107, 0.707107, 0.000000,-0.000000;;, + 19;4; -0.707107, 0.707107, 0.000000,-0.000000;;, + 20;4; -0.707107, 0.707107, 0.000000,-0.000000;;, + 21;4; -0.707107, 0.707107, 0.000000,-0.000000;;, + 22;4; -0.707107, 0.707107, 0.000000,-0.000000;;, + 23;4; -0.707107, 0.707107, 0.000000,-0.000000;;, + 24;4; -0.707107, 0.707107, 0.000000,-0.000000;;, + 25;4; -0.707107, 0.707107, 0.000000,-0.000000;;, + 26;4; -0.707107, 0.707107, 0.000000,-0.000000;;, + 27;4; -0.707107, 0.707107, 0.000000,-0.000000;;, + 28;4; -0.707107, 0.707107, 0.000000,-0.000000;;, + 29;4; -0.707107, 0.707107, 0.000000,-0.000000;;, + 30;4; -0.707107, 0.707107, 0.000000,-0.000000;;, + 31;4; -0.707107, 0.707107, 0.000000,-0.000000;;, + 32;4; -0.707107, 0.707107, 0.000000,-0.000000;;, + 33;4; -0.707107, 0.707107, 0.000000,-0.000000;;, + 34;4; -0.707107, 0.707107, 0.000000,-0.000000;;, + 35;4; -0.707107, 0.707107, 0.000000,-0.000000;;, + 36;4; -0.707107, 0.707107, 0.000000,-0.000000;;, + 37;4; -0.707107, 0.707107, 0.000000,-0.000000;;, + 38;4; -0.707107, 0.707107, 0.000000,-0.000000;;, + 39;4; -0.707107, 0.707107, 0.000000,-0.000000;;, + 40;4; -0.707107, 0.707107, 0.000000,-0.000000;;, + 41;4; -0.707107, 0.707107, 0.000000,-0.000000;;, + 42;4; -0.707107, 0.707107, 0.000000,-0.000000;;, + 43;4; -0.707107, 0.707107, 0.000000,-0.000000;;, + 44;4; -0.707107, 0.707107, 0.000000,-0.000000;;, + 45;4; -0.707107, 0.707107, 0.000000,-0.000000;;, + 46;4; -0.707107, 0.707107, 0.000000,-0.000000;;, + 47;4; -0.707107, 0.707107, 0.000000,-0.000000;;, + 48;4; -0.707107, 0.707107, 0.000000,-0.000000;;, + 49;4; -0.707107, 0.707107, 0.000000,-0.000000;;, + 50;4; -0.707107, 0.707107, 0.000000,-0.000000;;, + 51;4; -0.707107, 0.707107, 0.000000,-0.000000;;, + 52;4; -0.707107, 0.707107, 0.000000,-0.000000;;, + 53;4; -0.707107, 0.707107, 0.000000,-0.000000;;, + 54;4; -0.707107, 0.707107, 0.000000,-0.000000;;, + 55;4; -0.707107, 0.707107, 0.000000,-0.000000;;, + 56;4; -0.707107, 0.707107, 0.000000,-0.000000;;, + 57;4; -0.707107, 0.707107, 0.000000,-0.000000;;, + 58;4; -0.707107, 0.707107, 0.000000,-0.000000;;, + 59;4; -0.707107, 0.707107, 0.000000,-0.000000;;, + 60;4; -0.707107, 0.707107, 0.000000,-0.000000;;, + 61;4; -0.707107, 0.707107, 0.000000,-0.000000;;, + 62;4; -0.707107, 0.707107, 0.000000,-0.000000;;, + 63;4; -0.707107, 0.707107, 0.000000,-0.000000;;, + 64;4; -0.707107, 0.707107, 0.000000,-0.000000;;, + 65;4; -0.707107, 0.707107, 0.000000,-0.000000;;, + 66;4; -0.707107, 0.707107, 0.000000,-0.000000;;, + 67;4; -0.707107, 0.707107, 0.000000,-0.000000;;, + 68;4; -0.707107, 0.707107, 0.000000,-0.000000;;, + 69;4; -0.707107, 0.707107, 0.000000,-0.000000;;, + 70;4; -0.707107, 0.707107, 0.000000,-0.000000;;, + 71;4; -0.707107, 0.707107, 0.000000,-0.000000;;, + 72;4; -0.707107, 0.707107, 0.000000,-0.000000;;, + 73;4; -0.707107, 0.707107, 0.000000,-0.000000;;, + 74;4; -0.707107, 0.707107, 0.000000,-0.000000;;, + 75;4; -0.707107, 0.707107, 0.000000,-0.000000;;; + } + AnimationKey { //Scale + 1; + 76; + 0;3; 1.000000, 1.000000, 1.000000;;, + 1;3; 1.000000, 1.000000, 1.000000;;, + 2;3; 1.000000, 1.000000, 1.000000;;, + 3;3; 1.000000, 1.000000, 1.000000;;, + 4;3; 1.000000, 1.000000, 1.000000;;, + 5;3; 1.000000, 1.000000, 1.000000;;, + 6;3; 1.000000, 1.000000, 1.000000;;, + 7;3; 1.000000, 1.000000, 1.000000;;, + 8;3; 1.000000, 1.000000, 1.000000;;, + 9;3; 1.000000, 1.000000, 1.000000;;, + 10;3; 1.000000, 1.000000, 1.000000;;, + 11;3; 1.000000, 1.000000, 1.000000;;, + 12;3; 1.000000, 1.000000, 1.000000;;, + 13;3; 1.000000, 1.000000, 1.000000;;, + 14;3; 1.000000, 1.000000, 1.000000;;, + 15;3; 1.000000, 1.000000, 1.000000;;, + 16;3; 1.000000, 1.000000, 1.000000;;, + 17;3; 1.000000, 1.000000, 1.000000;;, + 18;3; 1.000000, 1.000000, 1.000000;;, + 19;3; 1.000000, 1.000000, 1.000000;;, + 20;3; 1.000000, 1.000000, 1.000000;;, + 21;3; 1.000000, 1.000000, 1.000000;;, + 22;3; 1.000000, 1.000000, 1.000000;;, + 23;3; 1.000000, 1.000000, 1.000000;;, + 24;3; 1.000000, 1.000000, 1.000000;;, + 25;3; 1.000000, 1.000000, 1.000000;;, + 26;3; 1.000000, 1.000000, 1.000000;;, + 27;3; 1.000000, 1.000000, 1.000000;;, + 28;3; 1.000000, 1.000000, 1.000000;;, + 29;3; 1.000000, 1.000000, 1.000000;;, + 30;3; 1.000000, 1.000000, 1.000000;;, + 31;3; 1.000000, 1.000000, 1.000000;;, + 32;3; 1.000000, 1.000000, 1.000000;;, + 33;3; 1.000000, 1.000000, 1.000000;;, + 34;3; 1.000000, 1.000000, 1.000000;;, + 35;3; 1.000000, 1.000000, 1.000000;;, + 36;3; 1.000000, 1.000000, 1.000000;;, + 37;3; 1.000000, 1.000000, 1.000000;;, + 38;3; 1.000000, 1.000000, 1.000000;;, + 39;3; 1.000000, 1.000000, 1.000000;;, + 40;3; 1.000000, 1.000000, 1.000000;;, + 41;3; 1.000000, 1.000000, 1.000000;;, + 42;3; 1.000000, 1.000000, 1.000000;;, + 43;3; 1.000000, 1.000000, 1.000000;;, + 44;3; 1.000000, 1.000000, 1.000000;;, + 45;3; 1.000000, 1.000000, 1.000000;;, + 46;3; 1.000000, 1.000000, 1.000000;;, + 47;3; 1.000000, 1.000000, 1.000000;;, + 48;3; 1.000000, 1.000000, 1.000000;;, + 49;3; 1.000000, 1.000000, 1.000000;;, + 50;3; 1.000000, 1.000000, 1.000000;;, + 51;3; 1.000000, 1.000000, 1.000000;;, + 52;3; 1.000000, 1.000000, 1.000000;;, + 53;3; 1.000000, 1.000000, 1.000000;;, + 54;3; 1.000000, 1.000000, 1.000000;;, + 55;3; 1.000000, 1.000000, 1.000000;;, + 56;3; 1.000000, 1.000000, 1.000000;;, + 57;3; 1.000000, 1.000000, 1.000000;;, + 58;3; 1.000000, 1.000000, 1.000000;;, + 59;3; 1.000000, 1.000000, 1.000000;;, + 60;3; 1.000000, 1.000000, 1.000000;;, + 61;3; 1.000000, 1.000000, 1.000000;;, + 62;3; 1.000000, 1.000000, 1.000000;;, + 63;3; 1.000000, 1.000000, 1.000000;;, + 64;3; 1.000000, 1.000000, 1.000000;;, + 65;3; 1.000000, 1.000000, 1.000000;;, + 66;3; 1.000000, 1.000000, 1.000000;;, + 67;3; 1.000000, 1.000000, 1.000000;;, + 68;3; 1.000000, 1.000000, 1.000000;;, + 69;3; 1.000000, 1.000000, 1.000000;;, + 70;3; 1.000000, 1.000000, 1.000000;;, + 71;3; 1.000000, 1.000000, 1.000000;;, + 72;3; 1.000000, 1.000000, 1.000000;;, + 73;3; 1.000000, 1.000000, 1.000000;;, + 74;3; 1.000000, 1.000000, 1.000000;;, + 75;3; 1.000000, 1.000000, 1.000000;;; + } + } + Animation { + {Armature_Thruster} + AnimationKey { //Position + 2; + 76; + 0;3; -4.639344, 8.859941, 0.000000;;, + 1;3; -4.639344, 8.859941, 0.000000;;, + 2;3; -4.639344, 8.859941, 0.000000;;, + 3;3; -4.639344, 8.859941, 0.000000;;, + 4;3; -4.639344, 8.859941, 0.000000;;, + 5;3; -4.639344, 8.859941, 0.000000;;, + 6;3; -4.639344, 8.859941, 0.000000;;, + 7;3; -4.639344, 8.859941, 0.000000;;, + 8;3; -4.639344, 8.859941, 0.000000;;, + 9;3; -4.639344, 8.859941, 0.000000;;, + 10;3; -4.639344, 8.859941, 0.000000;;, + 11;3; -4.639344, 8.859941, 0.000000;;, + 12;3; -4.639344, 8.859941, 0.000000;;, + 13;3; -4.639344, 8.859941, 0.000000;;, + 14;3; -4.639344, 8.859941, 0.000000;;, + 15;3; -4.639344, 8.859941, 0.000000;;, + 16;3; -4.639344, 8.859941, 0.000000;;, + 17;3; -4.639344, 8.859941, 0.000000;;, + 18;3; -4.639344, 8.859941, 0.000000;;, + 19;3; -4.639344, 8.859941, 0.000000;;, + 20;3; -4.639344, 8.859941, 0.000000;;, + 21;3; -4.639344, 8.859941, 0.000000;;, + 22;3; -4.639344, 8.859941, 0.000000;;, + 23;3; -4.639344, 8.859941, 0.000000;;, + 24;3; -4.639344, 8.859941, 0.000000;;, + 25;3; -4.639344, 8.859941, 0.000000;;, + 26;3; -4.751536, 8.859941, 0.000000;;, + 27;3; -4.926180, 8.859941, 0.000000;;, + 28;3; -5.116801, 8.859941, 0.000000;;, + 29;3; -5.313328, 8.859941, 0.000000;;, + 30;3; -5.511499, 8.859941, 0.000000;;, + 31;3; -5.708984, 8.859941, 0.000000;;, + 32;3; -5.904290, 8.859941, 0.000000;;, + 33;3; -6.096343, 8.859941, 0.000000;;, + 34;3; -6.284297, 8.859941, 0.000000;;, + 35;3; -6.467437, 8.859941, 0.000000;;, + 36;3; -6.645113, 8.859941, 0.000000;;, + 37;3; -6.816706, 8.859941, 0.000000;;, + 38;3; -6.981606, 8.859941, 0.000000;;, + 39;3; -7.139187, 8.859941, 0.000000;;, + 40;3; -7.288791, 8.859941, 0.000000;;, + 41;3; -7.429712, 8.859941, 0.000000;;, + 42;3; -7.561180, 8.859941, 0.000000;;, + 43;3; -7.682340, 8.859941, 0.000000;;, + 44;3; -7.792232, 8.859941, 0.000000;;, + 45;3; -7.889764, 8.859941, 0.000000;;, + 46;3; -7.973680, 8.859941, 0.000000;;, + 47;3; -8.042510, 8.859941, 0.000000;;, + 48;3; -8.094524, 8.859941, 0.000000;;, + 49;3; -8.127645, 8.859941, 0.000000;;, + 50;3; -8.139342, 8.859941, 0.000000;;, + 51;3; -8.127024, 8.859941, 0.000000;;, + 52;3; -8.089846, 8.859941, 0.000000;;, + 53;3; -8.027658, 8.859941, 0.000000;;, + 54;3; -7.940606, 8.859941, 0.000000;;, + 55;3; -7.829194, 8.859941, 0.000000;;, + 56;3; -7.694356, 8.859941, 0.000000;;, + 57;3; -7.537523, 8.859941, 0.000000;;, + 58;3; -7.360665, 8.859941, 0.000000;;, + 59;3; -7.166321, 8.859941, 0.000000;;, + 60;3; -6.957588, 8.859941, 0.000000;;, + 61;3; -6.738070, 8.859941, 0.000000;;, + 62;3; -6.511783, 8.859941, 0.000000;;, + 63;3; -6.283020, 8.859941, 0.000000;;, + 64;3; -6.056183, 8.859941, 0.000000;;, + 65;3; -5.835609, 8.859941, 0.000000;;, + 66;3; -5.625397, 8.859941, 0.000000;;, + 67;3; -5.429261, 8.859941, 0.000000;;, + 68;3; -5.250427, 8.859941, 0.000000;;, + 69;3; -5.091565, 8.859941, 0.000000;;, + 70;3; -4.954775, 8.859941, 0.000000;;, + 71;3; -4.841600, 8.859941, 0.000000;;, + 72;3; -4.753072, 8.859941, 0.000000;;, + 73;3; -4.689772, 8.859941, 0.000000;;, + 74;3; -4.651900, 8.859941, 0.000000;;, + 75;3; -4.639344, 8.859941, 0.000000;;; + } + AnimationKey { //Rotation + 0; + 76; + 0;4; -0.500000,-0.500000, 0.500000, 0.500000;;, + 1;4; -0.500000,-0.500000, 0.500000, 0.500000;;, + 2;4; -0.500000,-0.500000, 0.500000, 0.500000;;, + 3;4; -0.500000,-0.500000, 0.500000, 0.500000;;, + 4;4; -0.500000,-0.500000, 0.500000, 0.500000;;, + 5;4; -0.500000,-0.500000, 0.500000, 0.500000;;, + 6;4; -0.500000,-0.500000, 0.500000, 0.500000;;, + 7;4; -0.500000,-0.500000, 0.500000, 0.500000;;, + 8;4; -0.500000,-0.500000, 0.500000, 0.500000;;, + 9;4; -0.500000,-0.500000, 0.500000, 0.500000;;, + 10;4; -0.500000,-0.500000, 0.500000, 0.500000;;, + 11;4; -0.500000,-0.500000, 0.500000, 0.500000;;, + 12;4; -0.500000,-0.500000, 0.500000, 0.500000;;, + 13;4; -0.500000,-0.500000, 0.500000, 0.500000;;, + 14;4; -0.500000,-0.500000, 0.500000, 0.500000;;, + 15;4; -0.500000,-0.500000, 0.500000, 0.500000;;, + 16;4; -0.500000,-0.500000, 0.500000, 0.500000;;, + 17;4; -0.500000,-0.500000, 0.500000, 0.500000;;, + 18;4; -0.500000,-0.500000, 0.500000, 0.500000;;, + 19;4; -0.500000,-0.500000, 0.500000, 0.500000;;, + 20;4; -0.500000,-0.500000, 0.500000, 0.500000;;, + 21;4; -0.500000,-0.500000, 0.500000, 0.500000;;, + 22;4; -0.500000,-0.500000, 0.500000, 0.500000;;, + 23;4; -0.500000,-0.500000, 0.500000, 0.500000;;, + 24;4; -0.500000,-0.500000, 0.500000, 0.500000;;, + 25;4; -0.500000,-0.500000, 0.500000, 0.500000;;, + 26;4; -0.500000,-0.500000, 0.500000, 0.500000;;, + 27;4; -0.500000,-0.500000, 0.500000, 0.500000;;, + 28;4; -0.500000,-0.500000, 0.500000, 0.500000;;, + 29;4; -0.500000,-0.500000, 0.500000, 0.500000;;, + 30;4; -0.500000,-0.500000, 0.500000, 0.500000;;, + 31;4; -0.500000,-0.500000, 0.500000, 0.500000;;, + 32;4; -0.500000,-0.500000, 0.500000, 0.500000;;, + 33;4; -0.500000,-0.500000, 0.500000, 0.500000;;, + 34;4; -0.500000,-0.500000, 0.500000, 0.500000;;, + 35;4; -0.500000,-0.500000, 0.500000, 0.500000;;, + 36;4; -0.500000,-0.500000, 0.500000, 0.500000;;, + 37;4; -0.500000,-0.500000, 0.500000, 0.500000;;, + 38;4; -0.500000,-0.500000, 0.500000, 0.500000;;, + 39;4; -0.500000,-0.500000, 0.500000, 0.500000;;, + 40;4; -0.500000,-0.500000, 0.500000, 0.500000;;, + 41;4; -0.500000,-0.500000, 0.500000, 0.500000;;, + 42;4; -0.500000,-0.500000, 0.500000, 0.500000;;, + 43;4; -0.500000,-0.500000, 0.500000, 0.500000;;, + 44;4; -0.500000,-0.500000, 0.500000, 0.500000;;, + 45;4; -0.500000,-0.500000, 0.500000, 0.500000;;, + 46;4; -0.500000,-0.500000, 0.500000, 0.500000;;, + 47;4; -0.500000,-0.500000, 0.500000, 0.500000;;, + 48;4; -0.500000,-0.500000, 0.500000, 0.500000;;, + 49;4; -0.500000,-0.500000, 0.500000, 0.500000;;, + 50;4; -0.500000,-0.500000, 0.500000, 0.500000;;, + 51;4; -0.500000,-0.500000, 0.500000, 0.500000;;, + 52;4; -0.500000,-0.500000, 0.500000, 0.500000;;, + 53;4; -0.500000,-0.500000, 0.500000, 0.500000;;, + 54;4; -0.500000,-0.500000, 0.500000, 0.500000;;, + 55;4; -0.500000,-0.500000, 0.500000, 0.500000;;, + 56;4; -0.500000,-0.500000, 0.500000, 0.500000;;, + 57;4; -0.500000,-0.500000, 0.500000, 0.500000;;, + 58;4; -0.500000,-0.500000, 0.500000, 0.500000;;, + 59;4; -0.500000,-0.500000, 0.500000, 0.500000;;, + 60;4; -0.500000,-0.500000, 0.500000, 0.500000;;, + 61;4; -0.500000,-0.500000, 0.500000, 0.500000;;, + 62;4; -0.500000,-0.500000, 0.500000, 0.500000;;, + 63;4; -0.500000,-0.500000, 0.500000, 0.500000;;, + 64;4; -0.500000,-0.500000, 0.500000, 0.500000;;, + 65;4; -0.500000,-0.500000, 0.500000, 0.500000;;, + 66;4; -0.500000,-0.500000, 0.500000, 0.500000;;, + 67;4; -0.500000,-0.500000, 0.500000, 0.500000;;, + 68;4; -0.500000,-0.500000, 0.500000, 0.500000;;, + 69;4; -0.500000,-0.500000, 0.500000, 0.500000;;, + 70;4; -0.500000,-0.500000, 0.500000, 0.500000;;, + 71;4; -0.500000,-0.500000, 0.500000, 0.500000;;, + 72;4; -0.500000,-0.500000, 0.500000, 0.500000;;, + 73;4; -0.500000,-0.500000, 0.500000, 0.500000;;, + 74;4; -0.500000,-0.500000, 0.500000, 0.500000;;, + 75;4; -0.500000,-0.500000, 0.500000, 0.500000;;; + } + AnimationKey { //Scale + 1; + 76; + 0;3; 1.000000, 1.000000, 1.000000;;, + 1;3; 1.000000, 1.000000, 1.000000;;, + 2;3; 1.000000, 1.000000, 1.000000;;, + 3;3; 1.000000, 1.000000, 1.000000;;, + 4;3; 1.000000, 1.000000, 1.000000;;, + 5;3; 1.000000, 1.000000, 1.000000;;, + 6;3; 1.000000, 1.000000, 1.000000;;, + 7;3; 1.000000, 1.000000, 1.000000;;, + 8;3; 1.000000, 1.000000, 1.000000;;, + 9;3; 1.000000, 1.000000, 1.000000;;, + 10;3; 1.000000, 1.000000, 1.000000;;, + 11;3; 1.000000, 1.000000, 1.000000;;, + 12;3; 1.000000, 1.000000, 1.000000;;, + 13;3; 1.000000, 1.000000, 1.000000;;, + 14;3; 1.000000, 1.000000, 1.000000;;, + 15;3; 1.000000, 1.000000, 1.000000;;, + 16;3; 1.000000, 1.000000, 1.000000;;, + 17;3; 1.000000, 1.000000, 1.000000;;, + 18;3; 1.000000, 1.000000, 1.000000;;, + 19;3; 1.000000, 1.000000, 1.000000;;, + 20;3; 1.000000, 1.000000, 1.000000;;, + 21;3; 1.000000, 1.000000, 1.000000;;, + 22;3; 1.000000, 1.000000, 1.000000;;, + 23;3; 1.000000, 1.000000, 1.000000;;, + 24;3; 1.000000, 1.000000, 1.000000;;, + 25;3; 1.000000, 1.000000, 1.000000;;, + 26;3; 1.000000, 1.000000, 1.000000;;, + 27;3; 1.000000, 1.000000, 1.000000;;, + 28;3; 1.000000, 1.000000, 1.000000;;, + 29;3; 1.000000, 1.000000, 1.000000;;, + 30;3; 1.000000, 1.000000, 1.000000;;, + 31;3; 1.000000, 1.000000, 1.000000;;, + 32;3; 1.000000, 1.000000, 1.000000;;, + 33;3; 1.000000, 1.000000, 1.000000;;, + 34;3; 1.000000, 1.000000, 1.000000;;, + 35;3; 1.000000, 1.000000, 1.000000;;, + 36;3; 1.000000, 1.000000, 1.000000;;, + 37;3; 1.000000, 1.000000, 1.000000;;, + 38;3; 1.000000, 1.000000, 1.000000;;, + 39;3; 1.000000, 1.000000, 1.000000;;, + 40;3; 1.000000, 1.000000, 1.000000;;, + 41;3; 1.000000, 1.000000, 1.000000;;, + 42;3; 1.000000, 1.000000, 1.000000;;, + 43;3; 1.000000, 1.000000, 1.000000;;, + 44;3; 1.000000, 1.000000, 1.000000;;, + 45;3; 1.000000, 1.000000, 1.000000;;, + 46;3; 1.000000, 1.000000, 1.000000;;, + 47;3; 1.000000, 1.000000, 1.000000;;, + 48;3; 1.000000, 1.000000, 1.000000;;, + 49;3; 1.000000, 1.000000, 1.000000;;, + 50;3; 1.000000, 1.000000, 1.000000;;, + 51;3; 1.000000, 1.000000, 1.000000;;, + 52;3; 1.000000, 1.000000, 1.000000;;, + 53;3; 1.000000, 1.000000, 1.000000;;, + 54;3; 1.000000, 1.000000, 1.000000;;, + 55;3; 1.000000, 1.000000, 1.000000;;, + 56;3; 1.000000, 1.000000, 1.000000;;, + 57;3; 1.000000, 1.000000, 1.000000;;, + 58;3; 1.000000, 1.000000, 1.000000;;, + 59;3; 1.000000, 1.000000, 1.000000;;, + 60;3; 1.000000, 1.000000, 1.000000;;, + 61;3; 1.000000, 1.000000, 1.000000;;, + 62;3; 1.000000, 1.000000, 1.000000;;, + 63;3; 1.000000, 1.000000, 1.000000;;, + 64;3; 1.000000, 1.000000, 1.000000;;, + 65;3; 1.000000, 1.000000, 1.000000;;, + 66;3; 1.000000, 1.000000, 1.000000;;, + 67;3; 1.000000, 1.000000, 1.000000;;, + 68;3; 1.000000, 1.000000, 1.000000;;, + 69;3; 1.000000, 1.000000, 1.000000;;, + 70;3; 1.000000, 1.000000, 1.000000;;, + 71;3; 1.000000, 1.000000, 1.000000;;, + 72;3; 1.000000, 1.000000, 1.000000;;, + 73;3; 1.000000, 1.000000, 1.000000;;, + 74;3; 1.000000, 1.000000, 1.000000;;, + 75;3; 1.000000, 1.000000, 1.000000;;; + } + } + Animation { + {Hovercraft} + AnimationKey { //Position + 2; + 76; + 0;3; 0.000000, 0.000000,-0.500000;;, + 1;3; 0.000000, 0.000000,-0.500000;;, + 2;3; 0.000000, 0.000000,-0.500000;;, + 3;3; 0.000000, 0.000000,-0.500000;;, + 4;3; 0.000000, 0.000000,-0.500000;;, + 5;3; 0.000000, 0.000000,-0.500000;;, + 6;3; 0.000000, 0.000000,-0.500000;;, + 7;3; 0.000000, 0.000000,-0.500000;;, + 8;3; 0.000000, 0.000000,-0.500000;;, + 9;3; 0.000000, 0.000000,-0.500000;;, + 10;3; 0.000000, 0.000000,-0.500000;;, + 11;3; 0.000000, 0.000000,-0.500000;;, + 12;3; 0.000000, 0.000000,-0.500000;;, + 13;3; 0.000000, 0.000000,-0.500000;;, + 14;3; 0.000000, 0.000000,-0.500000;;, + 15;3; 0.000000, 0.000000,-0.500000;;, + 16;3; 0.000000, 0.000000,-0.500000;;, + 17;3; 0.000000, 0.000000,-0.500000;;, + 18;3; 0.000000, 0.000000,-0.500000;;, + 19;3; 0.000000, 0.000000,-0.500000;;, + 20;3; 0.000000, 0.000000,-0.500000;;, + 21;3; 0.000000, 0.000000,-0.500000;;, + 22;3; 0.000000, 0.000000,-0.500000;;, + 23;3; 0.000000, 0.000000,-0.500000;;, + 24;3; 0.000000, 0.000000,-0.500000;;, + 25;3; 0.000000, 0.000000,-0.500000;;, + 26;3; 0.000000, 0.000000,-0.500000;;, + 27;3; 0.000000, 0.000000,-0.500000;;, + 28;3; 0.000000, 0.000000,-0.500000;;, + 29;3; 0.000000, 0.000000,-0.500000;;, + 30;3; 0.000000, 0.000000,-0.500000;;, + 31;3; 0.000000, 0.000000,-0.500000;;, + 32;3; 0.000000, 0.000000,-0.500000;;, + 33;3; 0.000000, 0.000000,-0.500000;;, + 34;3; 0.000000, 0.000000,-0.500000;;, + 35;3; 0.000000, 0.000000,-0.500000;;, + 36;3; 0.000000, 0.000000,-0.500000;;, + 37;3; 0.000000, 0.000000,-0.500000;;, + 38;3; 0.000000, 0.000000,-0.500000;;, + 39;3; 0.000000, 0.000000,-0.500000;;, + 40;3; 0.000000, 0.000000,-0.500000;;, + 41;3; 0.000000, 0.000000,-0.500000;;, + 42;3; 0.000000, 0.000000,-0.500000;;, + 43;3; 0.000000, 0.000000,-0.500000;;, + 44;3; 0.000000, 0.000000,-0.500000;;, + 45;3; 0.000000, 0.000000,-0.500000;;, + 46;3; 0.000000, 0.000000,-0.500000;;, + 47;3; 0.000000, 0.000000,-0.500000;;, + 48;3; 0.000000, 0.000000,-0.500000;;, + 49;3; 0.000000, 0.000000,-0.500000;;, + 50;3; 0.000000, 0.000000,-0.500000;;, + 51;3; 0.000000, 0.000000,-0.500000;;, + 52;3; 0.000000, 0.000000,-0.500000;;, + 53;3; 0.000000, 0.000000,-0.500000;;, + 54;3; 0.000000, 0.000000,-0.500000;;, + 55;3; 0.000000, 0.000000,-0.500000;;, + 56;3; 0.000000, 0.000000,-0.500000;;, + 57;3; 0.000000, 0.000000,-0.500000;;, + 58;3; 0.000000, 0.000000,-0.500000;;, + 59;3; 0.000000, 0.000000,-0.500000;;, + 60;3; 0.000000, 0.000000,-0.500000;;, + 61;3; 0.000000, 0.000000,-0.500000;;, + 62;3; 0.000000, 0.000000,-0.500000;;, + 63;3; 0.000000, 0.000000,-0.500000;;, + 64;3; 0.000000, 0.000000,-0.500000;;, + 65;3; 0.000000, 0.000000,-0.500000;;, + 66;3; 0.000000, 0.000000,-0.500000;;, + 67;3; 0.000000, 0.000000,-0.500000;;, + 68;3; 0.000000, 0.000000,-0.500000;;, + 69;3; 0.000000, 0.000000,-0.500000;;, + 70;3; 0.000000, 0.000000,-0.500000;;, + 71;3; 0.000000, 0.000000,-0.500000;;, + 72;3; 0.000000, 0.000000,-0.500000;;, + 73;3; 0.000000, 0.000000,-0.500000;;, + 74;3; 0.000000, 0.000000,-0.500000;;, + 75;3; 0.000000, 0.000000,-0.500000;;; + } + AnimationKey { //Rotation + 0; + 76; + 0;4; -0.707107, 0.000000, 0.000000,-0.707107;;, + 1;4; -0.707107, 0.000000, 0.000000,-0.707107;;, + 2;4; -0.707107, 0.000000, 0.000000,-0.707107;;, + 3;4; -0.707107, 0.000000, 0.000000,-0.707107;;, + 4;4; -0.707107, 0.000000, 0.000000,-0.707107;;, + 5;4; -0.707107, 0.000000, 0.000000,-0.707107;;, + 6;4; -0.707107, 0.000000, 0.000000,-0.707107;;, + 7;4; -0.707107, 0.000000, 0.000000,-0.707107;;, + 8;4; -0.707107, 0.000000, 0.000000,-0.707107;;, + 9;4; -0.707107, 0.000000, 0.000000,-0.707107;;, + 10;4; -0.707107, 0.000000, 0.000000,-0.707107;;, + 11;4; -0.707107, 0.000000, 0.000000,-0.707107;;, + 12;4; -0.707107, 0.000000, 0.000000,-0.707107;;, + 13;4; -0.707107, 0.000000, 0.000000,-0.707107;;, + 14;4; -0.707107, 0.000000, 0.000000,-0.707107;;, + 15;4; -0.707107, 0.000000, 0.000000,-0.707107;;, + 16;4; -0.707107, 0.000000, 0.000000,-0.707107;;, + 17;4; -0.707107, 0.000000, 0.000000,-0.707107;;, + 18;4; -0.707107, 0.000000, 0.000000,-0.707107;;, + 19;4; -0.707107, 0.000000, 0.000000,-0.707107;;, + 20;4; -0.707107, 0.000000, 0.000000,-0.707107;;, + 21;4; -0.707107, 0.000000, 0.000000,-0.707107;;, + 22;4; -0.707107, 0.000000, 0.000000,-0.707107;;, + 23;4; -0.707107, 0.000000, 0.000000,-0.707107;;, + 24;4; -0.707107, 0.000000, 0.000000,-0.707107;;, + 25;4; -0.707107, 0.000000, 0.000000,-0.707107;;, + 26;4; -0.707107, 0.000000, 0.000000,-0.707107;;, + 27;4; -0.707107, 0.000000, 0.000000,-0.707107;;, + 28;4; -0.707107, 0.000000, 0.000000,-0.707107;;, + 29;4; -0.707107, 0.000000, 0.000000,-0.707107;;, + 30;4; -0.707107, 0.000000, 0.000000,-0.707107;;, + 31;4; -0.707107, 0.000000, 0.000000,-0.707107;;, + 32;4; -0.707107, 0.000000, 0.000000,-0.707107;;, + 33;4; -0.707107, 0.000000, 0.000000,-0.707107;;, + 34;4; -0.707107, 0.000000, 0.000000,-0.707107;;, + 35;4; -0.707107, 0.000000, 0.000000,-0.707107;;, + 36;4; -0.707107, 0.000000, 0.000000,-0.707107;;, + 37;4; -0.707107, 0.000000, 0.000000,-0.707107;;, + 38;4; -0.707107, 0.000000, 0.000000,-0.707107;;, + 39;4; -0.707107, 0.000000, 0.000000,-0.707107;;, + 40;4; -0.707107, 0.000000, 0.000000,-0.707107;;, + 41;4; -0.707107, 0.000000, 0.000000,-0.707107;;, + 42;4; -0.707107, 0.000000, 0.000000,-0.707107;;, + 43;4; -0.707107, 0.000000, 0.000000,-0.707107;;, + 44;4; -0.707107, 0.000000, 0.000000,-0.707107;;, + 45;4; -0.707107, 0.000000, 0.000000,-0.707107;;, + 46;4; -0.707107, 0.000000, 0.000000,-0.707107;;, + 47;4; -0.707107, 0.000000, 0.000000,-0.707107;;, + 48;4; -0.707107, 0.000000, 0.000000,-0.707107;;, + 49;4; -0.707107, 0.000000, 0.000000,-0.707107;;, + 50;4; -0.707107, 0.000000, 0.000000,-0.707107;;, + 51;4; -0.707107, 0.000000, 0.000000,-0.707107;;, + 52;4; -0.707107, 0.000000, 0.000000,-0.707107;;, + 53;4; -0.707107, 0.000000, 0.000000,-0.707107;;, + 54;4; -0.707107, 0.000000, 0.000000,-0.707107;;, + 55;4; -0.707107, 0.000000, 0.000000,-0.707107;;, + 56;4; -0.707107, 0.000000, 0.000000,-0.707107;;, + 57;4; -0.707107, 0.000000, 0.000000,-0.707107;;, + 58;4; -0.707107, 0.000000, 0.000000,-0.707107;;, + 59;4; -0.707107, 0.000000, 0.000000,-0.707107;;, + 60;4; -0.707107, 0.000000, 0.000000,-0.707107;;, + 61;4; -0.707107, 0.000000, 0.000000,-0.707107;;, + 62;4; -0.707107, 0.000000, 0.000000,-0.707107;;, + 63;4; -0.707107, 0.000000, 0.000000,-0.707107;;, + 64;4; -0.707107, 0.000000, 0.000000,-0.707107;;, + 65;4; -0.707107, 0.000000, 0.000000,-0.707107;;, + 66;4; -0.707107, 0.000000, 0.000000,-0.707107;;, + 67;4; -0.707107, 0.000000, 0.000000,-0.707107;;, + 68;4; -0.707107, 0.000000, 0.000000,-0.707107;;, + 69;4; -0.707107, 0.000000, 0.000000,-0.707107;;, + 70;4; -0.707107, 0.000000, 0.000000,-0.707107;;, + 71;4; -0.707107, 0.000000, 0.000000,-0.707107;;, + 72;4; -0.707107, 0.000000, 0.000000,-0.707107;;, + 73;4; -0.707107, 0.000000, 0.000000,-0.707107;;, + 74;4; -0.707107, 0.000000, 0.000000,-0.707107;;, + 75;4; -0.707107, 0.000000, 0.000000,-0.707107;;; + } + AnimationKey { //Scale + 1; + 76; + 0;3; 4.000000, 4.000000, 2.581575;;, + 1;3; 4.000000, 4.000000, 2.581575;;, + 2;3; 4.000000, 4.000000, 2.581575;;, + 3;3; 4.000000, 4.000000, 2.581575;;, + 4;3; 4.000000, 4.000000, 2.581575;;, + 5;3; 4.000000, 4.000000, 2.581575;;, + 6;3; 4.000000, 4.000000, 2.581575;;, + 7;3; 4.000000, 4.000000, 2.581575;;, + 8;3; 4.000000, 4.000000, 2.581575;;, + 9;3; 4.000000, 4.000000, 2.581575;;, + 10;3; 4.000000, 4.000000, 2.581575;;, + 11;3; 4.000000, 4.000000, 2.581575;;, + 12;3; 4.000000, 4.000000, 2.581575;;, + 13;3; 4.000000, 4.000000, 2.581575;;, + 14;3; 4.000000, 4.000000, 2.581575;;, + 15;3; 4.000000, 4.000000, 2.581575;;, + 16;3; 4.000000, 4.000000, 2.581575;;, + 17;3; 4.000000, 4.000000, 2.581575;;, + 18;3; 4.000000, 4.000000, 2.581575;;, + 19;3; 4.000000, 4.000000, 2.581575;;, + 20;3; 4.000000, 4.000000, 2.581575;;, + 21;3; 4.000000, 4.000000, 2.581575;;, + 22;3; 4.000000, 4.000000, 2.581575;;, + 23;3; 4.000000, 4.000000, 2.581575;;, + 24;3; 4.000000, 4.000000, 2.581575;;, + 25;3; 4.000000, 4.000000, 2.581575;;, + 26;3; 4.000000, 4.000000, 2.581575;;, + 27;3; 4.000000, 4.000000, 2.581575;;, + 28;3; 4.000000, 4.000000, 2.581575;;, + 29;3; 4.000000, 4.000000, 2.581575;;, + 30;3; 4.000000, 4.000000, 2.581575;;, + 31;3; 4.000000, 4.000000, 2.581575;;, + 32;3; 4.000000, 4.000000, 2.581575;;, + 33;3; 4.000000, 4.000000, 2.581575;;, + 34;3; 4.000000, 4.000000, 2.581575;;, + 35;3; 4.000000, 4.000000, 2.581575;;, + 36;3; 4.000000, 4.000000, 2.581575;;, + 37;3; 4.000000, 4.000000, 2.581575;;, + 38;3; 4.000000, 4.000000, 2.581575;;, + 39;3; 4.000000, 4.000000, 2.581575;;, + 40;3; 4.000000, 4.000000, 2.581575;;, + 41;3; 4.000000, 4.000000, 2.581575;;, + 42;3; 4.000000, 4.000000, 2.581575;;, + 43;3; 4.000000, 4.000000, 2.581575;;, + 44;3; 4.000000, 4.000000, 2.581575;;, + 45;3; 4.000000, 4.000000, 2.581575;;, + 46;3; 4.000000, 4.000000, 2.581575;;, + 47;3; 4.000000, 4.000000, 2.581575;;, + 48;3; 4.000000, 4.000000, 2.581575;;, + 49;3; 4.000000, 4.000000, 2.581575;;, + 50;3; 4.000000, 4.000000, 2.581575;;, + 51;3; 4.000000, 4.000000, 2.581575;;, + 52;3; 4.000000, 4.000000, 2.581575;;, + 53;3; 4.000000, 4.000000, 2.581575;;, + 54;3; 4.000000, 4.000000, 2.581575;;, + 55;3; 4.000000, 4.000000, 2.581575;;, + 56;3; 4.000000, 4.000000, 2.581575;;, + 57;3; 4.000000, 4.000000, 2.581575;;, + 58;3; 4.000000, 4.000000, 2.581575;;, + 59;3; 4.000000, 4.000000, 2.581575;;, + 60;3; 4.000000, 4.000000, 2.581575;;, + 61;3; 4.000000, 4.000000, 2.581575;;, + 62;3; 4.000000, 4.000000, 2.581575;;, + 63;3; 4.000000, 4.000000, 2.581575;;, + 64;3; 4.000000, 4.000000, 2.581575;;, + 65;3; 4.000000, 4.000000, 2.581575;;, + 66;3; 4.000000, 4.000000, 2.581575;;, + 67;3; 4.000000, 4.000000, 2.581575;;, + 68;3; 4.000000, 4.000000, 2.581575;;, + 69;3; 4.000000, 4.000000, 2.581575;;, + 70;3; 4.000000, 4.000000, 2.581575;;, + 71;3; 4.000000, 4.000000, 2.581575;;, + 72;3; 4.000000, 4.000000, 2.581575;;, + 73;3; 4.000000, 4.000000, 2.581575;;, + 74;3; 4.000000, 4.000000, 2.581575;;, + 75;3; 4.000000, 4.000000, 2.581575;;; + } + } +} //End of AnimationSet diff --git a/games/default/files/Cars/hovercraft/sounds/hovercraft_bounce.ogg b/games/default/files/Cars/hovercraft/sounds/hovercraft_bounce.ogg new file mode 100644 index 000000000..ec635156d Binary files /dev/null and b/games/default/files/Cars/hovercraft/sounds/hovercraft_bounce.ogg differ diff --git a/games/default/files/Cars/hovercraft/sounds/hovercraft_jump.ogg b/games/default/files/Cars/hovercraft/sounds/hovercraft_jump.ogg new file mode 100644 index 000000000..851c42a0d Binary files /dev/null and b/games/default/files/Cars/hovercraft/sounds/hovercraft_jump.ogg differ diff --git a/games/default/files/Cars/hovercraft/sounds/hovercraft_thrust_fade.ogg b/games/default/files/Cars/hovercraft/sounds/hovercraft_thrust_fade.ogg new file mode 100644 index 000000000..f60dd23e5 Binary files /dev/null and b/games/default/files/Cars/hovercraft/sounds/hovercraft_thrust_fade.ogg differ diff --git a/games/default/files/Cars/hovercraft/sounds/hovercraft_thrust_loop.ogg b/games/default/files/Cars/hovercraft/sounds/hovercraft_thrust_loop.ogg new file mode 100644 index 000000000..f99ad993a Binary files /dev/null and b/games/default/files/Cars/hovercraft/sounds/hovercraft_thrust_loop.ogg differ diff --git a/games/default/files/Cars/hovercraft/textures/hovercraft.png b/games/default/files/Cars/hovercraft/textures/hovercraft.png new file mode 100644 index 000000000..d35bd8b0b Binary files /dev/null and b/games/default/files/Cars/hovercraft/textures/hovercraft.png differ diff --git a/games/default/files/dye/depends.txt b/games/default/files/Cars/modpack.txt similarity index 100% rename from games/default/files/dye/depends.txt rename to games/default/files/Cars/modpack.txt diff --git a/games/default/files/Cars/spaceship/README.txt b/games/default/files/Cars/spaceship/README.txt new file mode 100644 index 000000000..e1c225dc2 --- /dev/null +++ b/games/default/files/Cars/spaceship/README.txt @@ -0,0 +1,43 @@ + +Spaceship'Mod by Mrchiantos + +spaceship'Model by Viktor Hahn (Viktor.Hahn@web.de) +airboat 0.1.8 by paramat + +For Minetest 0.4.16 and later. Compatible with MT 5.0.0-dev. +Depends: default + +Licenses +-------- +Source code: MIT +Spaceship Model : CC By 3.0 +Media (textures and nodebox design): CC0 1.0 + +Note about textures and crafting +-------------------------------- +This mod is fully functional but does not currently have a crafting recipe or +detailed textures. The textures are templates for you to add detail to. +The airboat is available in the creative inventory or by using the /giveme chat +command. + +Usage +----- +Third-person camera mode is recommended when travelling for a better view. +The airboat can be placed on any node, including liquids. It can land on, and +will float in, a liquid. + +Controls +-------- +Right mouse button = Enter or exit airboat when pointing at airboat. +Forward = Speed up. + Slow down when moving backwards. +Forward + backward = Enable cruise mode: Airboat will accelerate to maximum + forward speed and remain at that speed without needing to + hold the forward key. +Backward = Slow down. + Speed up when moving backwards. + Disable cruise mode. +Left = Turn left. +Right = Turn right. +Jump/up = Ascend. +Sneak/down = Descend. diff --git a/games/default/files/doors/depends.txt b/games/default/files/Cars/spaceship/depends.txt similarity index 100% rename from games/default/files/doors/depends.txt rename to games/default/files/Cars/spaceship/depends.txt diff --git a/games/default/files/Cars/spaceship/init.lua b/games/default/files/Cars/spaceship/init.lua new file mode 100644 index 000000000..50643314b --- /dev/null +++ b/games/default/files/Cars/spaceship/init.lua @@ -0,0 +1,294 @@ +local source_list = { + {"black", "Darkened", "292421"}, + {"blue", "Blue", "0000FF"}, + {"green", "Green", "00FF00"}, + {"white", "White", "F5F5F5"}, + {"orange", "Orange", "FF6103"}, + {"red", "Red", "FF0000"}, + {"yellow", "Yellow", "FFFF00"}, + {"pink", "pink", "FF69B4"} +} + +for i in ipairs(source_list) do + local color = source_list[i][1] + local description = source_list[i][2] + local colour = source_list[i][3] + +-- Functions + +local function get_sign(i) + if i == 0 then + return 0 + else + return i / math.abs(i) + end +end + + +local function get_velocity(v, yaw, y) + local x = -math.sin(yaw) * v + local z = math.cos(yaw) * v + return {x = x, y = y, z = z} +end + + +local function get_v(v) + return math.sqrt(v.x ^ 2 + v.z ^ 2) +end + + +-- Spaceship entity + +local spaceship = { + initial_properties = { + physical = true, + collide_with_objects = false, -- Workaround fix for a MT engine bug + collisionbox = {-2, -1.5, -2.25, 2, 1.5, 3.5}, + visual = "wielditem", + visual_size = {x = 0.25, y = 0.25}, -- Scale up of nodebox is these * 1.5 + textures = {"spaceship:spaceship_nodebox" ..color}, + }, + + -- Custom fields + driver = nil, + removed = false, + v = 0, + vy = 0, + rot = 0, + auto = false, +} + + +function spaceship.on_rightclick(self, clicker) + if not clicker or not clicker:is_player() then + return + end + local name = clicker:get_player_name() + if self.driver and name == self.driver then + -- Detach + self.driver = nil + self.auto = false + clicker:set_detach() + default.player_attached[name] = false + default.player_set_animation(clicker, "stand" , 30) + local pos = clicker:getpos() + minetest.after(0.1, function() + clicker:setpos(pos) + end) + elseif not self.driver then + -- Attach + local attach = clicker:get_attach() + if attach and attach:get_luaentity() then + local luaentity = attach:get_luaentity() + if luaentity.driver then + luaentity.driver = nil + end + clicker:set_detach() + end + self.driver = name + clicker:set_attach(self.object, "", + {x = 0, y = -2, z = 0}, {x = 0, y = 0, z = 0}) + default.player_attached[name] = true + minetest.after(0.2, function() + default.player_set_animation(clicker, "sit" , 30) + end) + clicker:set_look_horizontal(self.object:getyaw()) + end +end + + +function spaceship.on_activate(self, staticdata, dtime_s) + self.object:set_armor_groups({immortal = 1}) +end + + +function spaceship.on_punch(self, puncher) + if not puncher or not puncher:is_player() or self.removed then + return + end + + local name = puncher:get_player_name() + if self.driver and name == self.driver then + -- Detach + self.driver = nil + puncher:set_detach() + default.player_attached[name] = false + end + if not self.driver then + -- Move to inventory + self.removed = true + local inv = puncher:get_inventory() + if not (creative and creative.is_enabled_for + and creative.is_enabled_for(name)) + or not inv:contains_item("main", "spaceship:spaceship" ..color) then + local leftover = inv:add_item("main", "spaceship:spaceship" ..color) + if not leftover:is_empty() then + minetest.add_item(self.object:getpos(), leftover) + end + end + minetest.after(0.1, function() + self.object:remove() + end) + end +end + + +function spaceship.on_step(self, dtime) + self.v = get_v(self.object:getvelocity()) * get_sign(self.v) + self.vy = self.object:getvelocity().y + + -- Controls + if self.driver then + local driver_objref = minetest.get_player_by_name(self.driver) + if driver_objref then + local ctrl = driver_objref:get_player_control() + if ctrl.up and ctrl.down then + if not self.auto then + self.auto = true + minetest.chat_send_player(self.driver, + "[spaceship] Cruise on") + end + elseif ctrl.down then + self.v = self.v - 0.1 + if self.auto then + self.auto = false + minetest.chat_send_player(self.driver, + "[spaceship] Cruise off") + end + elseif ctrl.up or self.auto then + self.v = self.v + 0.1 + end + if ctrl.left then + self.rot = self.rot + 0.001 + elseif ctrl.right then + self.rot = self.rot - 0.001 + end + if ctrl.jump then + self.vy = self.vy + 0.075 + elseif ctrl.sneak then + self.vy = self.vy - 0.075 + end + else + -- Player left server while driving + -- In MT 5.0.0 use 'spaceship:on_detach_child()' to do this + self.driver = nil + self.auto = false + minetest.log("warning", "[spaceship] Driver left server while" .. + " driving. This may cause some 'Pushing ObjectRef to" .. + " removed/deactivated object' warnings.") + end + end + + -- Early return for stationary vehicle + if self.v == 0 and self.rot == 0 and self.vy == 0 then + self.object:setpos(self.object:getpos()) + return + end + + -- Reduction and limiting of linear speed + local s = get_sign(self.v) + self.v = self.v - 0.02 * s + if s ~= get_sign(self.v) then + self.v = 0 + end + if math.abs(self.v) > 6 then + self.v = 6 * get_sign(self.v) + end + + -- Reduction and limiting of rotation + local sr = get_sign(self.rot) + self.rot = self.rot - 0.0003 * sr + if sr ~= get_sign(self.rot) then + self.rot = 0 + end + if math.abs(self.rot) > 0.015 then + self.rot = 0.015 * get_sign(self.rot) + end + + -- Reduction and limiting of vertical speed + local sy = get_sign(self.vy) + self.vy = self.vy - 0.03 * sy + if sy ~= get_sign(self.vy) then + self.vy = 0 + end + if math.abs(self.vy) > 4 then + self.vy = 4 * get_sign(self.vy) + end + + local new_acce = {x = 0, y = 0, z = 0} + -- Bouyancy in liquids + local p = self.object:getpos() + p.y = p.y - 1.5 + local def = minetest.registered_nodes[minetest.get_node(p).name] + if def and (def.liquidtype == "source" or def.liquidtype == "flowing") then + new_acce = {x = 0, y = 10, z = 0} + end + + self.object:setpos(self.object:getpos()) + self.object:setvelocity(get_velocity(self.v, self.object:getyaw(), self.vy)) + self.object:setacceleration(new_acce) + self.object:setyaw(self.object:getyaw() + (1 + dtime) * self.rot) +end + + +minetest.register_entity("spaceship:spaceship" ..color , spaceship) + + +-- Craftitem + +minetest.register_craftitem("spaceship:spaceship" .. color, { + description = "spaceship" .. color, + inventory_image = "spaceship_spaceship_inv.png^[colorize:#"..colour..":70", +wield_image = "none.png", + wield_scale = {x = 4, y = 4, z = 4}, + liquids_pointable = true, + + on_place = function(itemstack, placer, pointed_thing) + local under = pointed_thing.under + local node = minetest.get_node(under) + local udef = minetest.registered_nodes[node.name] + + -- Run any on_rightclick function of pointed node instead + if udef and udef.on_rightclick and + not (placer and placer:is_player() and + placer:get_player_control().sneak) then + return udef.on_rightclick(under, node, placer, itemstack, + pointed_thing) or itemstack + end + + if pointed_thing.type ~= "node" then + return itemstack + end + + pointed_thing.under.y = pointed_thing.under.y + 2 + local spaceship = minetest.add_entity(pointed_thing.under, + "spaceship:spaceship" ..color) + if spaceship then + if placer then + spaceship:setyaw(placer:get_look_horizontal()) + end + local player_name = placer and placer:get_player_name() or "" + if not (creative and creative.is_enabled_for and + creative.is_enabled_for(player_name)) then + itemstack:take_item() + end + end + return itemstack + end, +}) + + +-- Nodebox for entity wielditem visual + +minetest.register_node("spaceship:spaceship_nodebox" .. color, { + description = "Spaceship Nodebox" .. color, + tiles = { -- Top, base, right, left, front, back + "color_white.png^[colorize:#"..colour..":70", + }, + paramtype = "light", + drawtype = "mesh", + mesh = "spaceship.obj", + groups = {not_in_creative_inventory = 1}, +}) + +end diff --git a/games/default/files/Cars/spaceship/license.txt b/games/default/files/Cars/spaceship/license.txt new file mode 100644 index 000000000..b8d51237e --- /dev/null +++ b/games/default/files/Cars/spaceship/license.txt @@ -0,0 +1,65 @@ +License of model spaceship +-------------------------- + +This work, made by Viktor Hahn (Viktor.Hahn@web.de), is +licensed under the Creative Commons Attribution 3.0 Unported License. +http://creativecommons.org/licenses/by/3.0/ + + +License of source code +---------------------- + +The MIT License (MIT) +Copyright (C) 2018 paramat + +Permission is hereby granted, free of charge, to any person obtaining a copy of this +software and associated documentation files (the "Software"), to deal in the Software +without restriction, including without limitation the rights to use, copy, modify, merge, +publish, distribute, sublicense, and/or sell copies of the Software, and to permit +persons to whom the Software is furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all copies or +substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, +INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR +PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE +FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR +OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER +DEALINGS IN THE SOFTWARE. + +For more details: +https://opensource.org/licenses/MIT + + +License of media (textures) +--------------------------- + +CC0 1.0 Universal (CC0 1.0) Public Domain Dedication +Paramat + +No Copyright + +The person who associated a work with this deed has dedicated the work to the +public domain by waiving all of his or her rights to the work worldwide under +copyright law, including all related and neighboring rights, to the extent +allowed by law. + +You can copy, modify, distribute and perform the work, even for commercial +purposes, all without asking permission. See Other Information below. + +Other Information: + +In no way are the patent or trademark rights of any person affected by CC0, nor +are the rights that other persons may have in the work or in how the work is +used, such as publicity or privacy rights. + +Unless expressly stated otherwise, the person who associated a work with this +deed makes no warranties about the work, and disclaims liability for all uses +of the work, to the fullest extent permitted by applicable law. + +When using or citing the work, you should not imply endorsement by the author +or the affirmer. + +For more details: +https://creativecommons.org/publicdomain/zero/1.0/ diff --git a/games/default/files/Cars/spaceship/mod.conf b/games/default/files/Cars/spaceship/mod.conf new file mode 100644 index 000000000..91e9fc59f --- /dev/null +++ b/games/default/files/Cars/spaceship/mod.conf @@ -0,0 +1 @@ +name = spaceship \ No newline at end of file diff --git a/games/default/files/Cars/spaceship/models/spaceship.obj b/games/default/files/Cars/spaceship/models/spaceship.obj new file mode 100644 index 000000000..d56e4f28a --- /dev/null +++ b/games/default/files/Cars/spaceship/models/spaceship.obj @@ -0,0 +1,14657 @@ +# Blender v2.77 (sub 0) OBJ File: 'carrier01.blend' +# www.blender.org +o Mesh_LP_Mesh +v 1.234418 0.732790 7.656475 +v 1.333296 -0.009614 8.300000 +v 1.333296 0.105526 8.434860 +v 1.333296 -0.009614 8.800000 +v 1.333296 0.566086 7.724300 +v 1.333296 0.566086 8.224300 +v 1.333296 0.380235 8.160151 +v 1.333296 0.380235 7.910151 +v 0.602554 0.450946 9.070183 +v 0.602554 0.450946 8.070183 +v 1.147446 0.450946 7.525291 +v 1.147446 0.450946 8.525291 +v 1.147446 0.105526 8.870710 +v 1.147446 0.105526 7.870711 +v 0.602554 0.105526 8.415603 +v 0.602554 0.105526 9.415603 +v 1.218157 0.380235 8.525291 +v 1.218157 0.380235 7.525291 +v 1.218157 0.176237 7.729290 +v 1.218157 0.176237 8.729289 +v -1.218157 0.176237 8.729289 +v -1.218157 0.176237 7.729290 +v -1.218157 0.380235 7.525291 +v -1.218157 0.380235 8.525291 +v -1.147446 0.450946 8.525291 +v -1.147446 0.450946 7.525291 +v -0.602554 0.450946 8.070183 +v -0.602554 0.450946 9.070183 +v -0.602554 0.105526 8.415603 +v -0.602554 0.105526 9.415603 +v -0.531843 0.176237 9.415603 +v -0.531843 0.176237 8.415603 +v -1.333296 0.380235 8.160151 +v -1.433296 0.380235 8.160151 +v -1.433296 0.105526 8.434860 +v -1.333296 0.105526 8.434860 +v 1.500000 0.380236 6.821724 +v 1.600000 0.380236 6.921724 +v 1.600000 0.105527 7.059078 +v 1.500000 0.105527 6.959078 +v -1.500000 0.105527 6.959078 +v -1.600000 0.105527 7.059078 +v -1.600000 0.380236 6.921724 +v -1.500000 0.380236 6.821724 +v 1.333296 0.105526 8.184860 +v 1.600000 0.380235 7.743448 +v 1.433296 0.380235 8.160151 +v 1.433296 0.105526 8.434860 +v 1.600000 0.105526 8.018157 +v -1.112377 0.566086 7.945220 +v -1.112377 0.566086 8.345220 +v -1.112377 0.649438 8.143991 +v -1.112377 0.649438 7.861868 +v 0.637623 0.566086 8.419974 +v 0.637623 0.566086 8.819974 +v 0.637623 0.649438 8.618746 +v 0.637623 0.649438 8.336622 +v 0.779044 -0.009614 8.854253 +v 0.779044 -0.009614 9.254252 +v 0.779044 -0.092965 9.219727 +v 0.779044 -0.092965 8.937604 +v 0.970956 0.566086 8.086641 +v 0.970956 0.566086 8.486641 +v 0.970956 0.649438 8.285412 +v 0.970956 0.649438 8.003289 +v 1.112377 -0.009614 8.520919 +v 1.112377 -0.009614 8.920919 +v 1.112377 -0.092965 8.886394 +v 1.112377 -0.092965 8.604271 +v -0.970956 0.649438 8.003289 +v -0.970956 0.649438 8.285412 +v -0.970956 0.566086 8.486641 +v -0.970956 0.566086 8.086641 +v -0.637623 -0.092965 9.079025 +v -0.637623 -0.092966 9.361149 +v -0.779044 -0.092965 9.219727 +v -0.779044 -0.092965 8.937604 +v 0.970956 -0.092965 8.745692 +v 0.970956 -0.092965 9.027815 +v 0.970956 -0.009614 9.062341 +v 0.970956 -0.009614 8.662340 +v 0.637623 -0.092965 9.079025 +v 0.637623 -0.092966 9.361149 +v 0.637623 -0.009614 9.395674 +v 0.637623 -0.009614 8.995674 +v 1.112377 0.649438 7.861868 +v 1.112377 0.649438 8.143991 +v 1.112377 0.566086 8.345220 +v 1.112377 0.566086 7.945220 +v 0.779044 0.649438 8.195201 +v 0.779044 0.649438 8.477324 +v 0.779044 0.566086 8.678553 +v 0.779044 0.566086 8.278553 +v -1.112377 -0.009614 8.920919 +v -1.112377 -0.092965 8.886394 +v -0.970956 -0.092965 9.027815 +v -0.970956 -0.009614 9.062341 +v -0.637623 0.566086 8.819974 +v -0.637623 0.649438 8.618746 +v -0.779044 0.649438 8.477324 +v -0.779044 0.566086 8.678553 +v 0.531843 0.348947 9.242892 +v 0.416704 0.348947 9.208033 +v 0.531843 0.348947 9.092893 +v 0.416704 0.207525 9.499454 +v 0.531843 0.207525 9.384314 +v 0.416704 0.207525 9.349454 +v 0.416704 0.348947 9.358032 +v -0.416704 0.348947 9.208033 +v -0.531843 0.348947 9.092893 +v -0.531843 0.207525 9.234314 +v -0.416704 0.207525 9.349454 +v 0.531843 0.207525 9.234314 +v 1.500000 0.105526 8.018157 +v 0.416704 0.566086 8.640893 +v 0.416704 0.566086 9.140893 +v -1.147446 0.105526 7.870711 +v -0.531843 0.380235 8.211604 +v 0.531843 0.380235 8.211604 +v 0.531843 0.176237 8.415603 +v -1.500000 0.380235 7.743448 +v -1.333296 0.380235 7.910151 +v -1.600000 0.380235 7.743448 +v 1.500000 0.380235 7.743448 +v -1.500000 0.105526 8.018157 +v -1.333296 0.105526 8.184860 +v -1.600000 0.105526 8.018157 +v -0.970956 -0.009614 8.662340 +v -0.970956 -0.092965 8.745692 +v -0.779044 0.566086 8.278553 +v -0.779044 0.649438 8.195201 +v -0.637623 0.649438 8.336622 +v -0.637623 0.566086 8.419974 +v -1.112377 -0.092965 8.604271 +v -1.112377 -0.009614 8.520919 +v -0.779044 -0.009614 9.254252 +v -0.637623 -0.009614 9.395674 +v -0.531843 0.207525 9.384314 +v 0.416704 -0.009614 9.216593 +v 0.416704 -0.009614 9.716593 +v -0.416704 0.348947 9.358032 +v -0.531843 0.348947 9.242892 +v -0.416704 0.207525 9.499454 +v -1.500000 -0.176317 8.300000 +v -1.333296 -0.009614 8.300000 +v -1.333296 -0.009614 8.800000 +v -0.416704 -0.009614 9.216593 +v -0.416704 -0.009614 9.716593 +v -1.333296 0.566086 7.724300 +v -1.333296 0.566086 8.224300 +v -0.416704 0.566086 9.140893 +v -0.416704 0.566086 8.640893 +v -1.147446 0.105526 8.870710 +v -0.531843 0.380235 9.211604 +v 0.531843 0.380235 9.211604 +v 0.531843 0.176237 9.415603 +v -0.637623 -0.009614 8.995674 +v -0.779044 -0.009614 8.854253 +v 0.875000 0.566086 8.682597 +v 0.875000 -0.176317 8.925000 +v 0.250000 -0.176317 9.550000 +v -0.875000 -0.176317 8.925000 +v 0.875000 -0.009614 9.258296 +v -0.875000 -0.009614 9.258296 +v -0.875000 0.566086 8.682597 +v 0.250000 0.732789 8.640893 +v -0.742209 0.732790 8.148685 +v 0.742209 0.732790 8.148685 +v 3.135491 -0.899999 -3.264509 +v 3.135491 -1.100000 -3.264509 +v 3.664509 -0.899999 -3.264509 +v 3.664509 -1.100000 -3.264509 +v 3.664509 -1.100000 -1.360176 +v 3.194252 -1.100000 -0.712636 +v 3.135491 -1.100000 -0.731722 +v 3.175491 -0.969999 -3.264509 +v 3.175491 -0.969999 -3.214509 +v 3.175491 -1.029999 -3.214509 +v 3.175491 -1.029999 -3.264509 +v 3.624509 -1.029999 -3.214509 +v 3.624509 -1.029999 -3.264509 +v 3.594509 -1.059999 -3.264509 +v 3.594509 -1.059999 -3.214509 +v 3.594509 -0.939999 -3.214509 +v 3.594509 -0.939999 -3.264509 +v 3.624509 -0.969999 -3.264509 +v 3.624509 -0.969999 -3.214509 +v 2.461059 -0.161622 1.514469 +v 2.461059 -0.161621 0.132959 +v 2.461059 0.162750 0.132959 +v 2.461059 0.162750 0.971277 +v 3.022119 0.171691 0.537423 +v 3.022119 0.171691 -0.267041 +v 3.022119 -0.169433 -0.267041 +v 3.022119 -0.169433 1.108667 +v 5.434361 -1.213743 -5.034361 +v 4.114653 -0.499999 -4.500000 +v 3.500000 -0.499999 -4.500000 +v 3.500000 0.500001 -3.500000 +v 2.700000 -0.499999 -4.500000 +v 2.700000 0.500001 -3.500000 +v 3.100000 0.500001 -3.500000 +v 3.100000 -0.499999 -4.500000 +v 2.300000 0.800001 -3.665685 +v 2.700000 0.800001 -3.665685 +v 3.100000 0.800001 -3.665685 +v 3.500000 0.800001 -3.665685 +v 3.393579 -0.400735 -4.800000 +v 3.393579 -0.400735 -4.700000 +v 3.206421 -0.400735 -4.700000 +v 3.206421 -0.400735 -4.800000 +v 3.433579 -0.493578 -4.800000 +v 3.393579 -0.533578 -4.800000 +v 3.393579 -0.533578 -4.700000 +v 3.433579 -0.493578 -4.700000 +v 2.633579 -0.493578 -4.800000 +v 2.633579 -0.493578 -4.700000 +v 2.633579 -0.440735 -4.700000 +v 2.633579 -0.440735 -4.800000 +v 2.366421 -0.440735 -4.700000 +v 2.366421 -0.440735 -4.800000 +v 2.406421 -0.400735 -4.800000 +v 2.406421 -0.400735 -4.700000 +v 2.366421 -0.493578 -4.700000 +v 2.406421 -0.533578 -4.700000 +v 2.406421 -0.533578 -4.800000 +v 2.366421 -0.493578 -4.800000 +v 3.206421 -0.533578 -4.700000 +v 3.206421 -0.533578 -4.800000 +v 3.166421 -0.493578 -4.800000 +v 3.166421 -0.493578 -4.700000 +v 3.220000 0.500000 -1.585638 +v 3.220000 0.650000 -1.685638 +v 3.220000 0.650000 -1.985638 +v 2.420000 0.500000 -1.585638 +v 2.420000 0.650000 -1.685638 +v 2.420000 0.650000 -1.985638 +v 2.580000 0.650000 -1.985638 +v 2.580000 0.650000 -1.685638 +v 2.580000 0.500000 -1.585638 +v 3.380000 0.650000 -1.985638 +v 3.380000 0.650000 -1.685638 +v 3.380000 0.500000 -1.585638 +v 2.420000 0.500000 -1.285638 +v 2.580000 0.500000 -1.285638 +v 3.220000 0.500000 -1.285638 +v 3.380000 0.500000 -1.285638 +v 2.626528 -0.239935 -4.705621 +v 2.626528 -0.310645 -4.634910 +v 2.626528 -0.239640 -4.563905 +v 2.626528 -0.168930 -4.634616 +v 2.566528 -0.126503 -4.592189 +v 2.566528 -0.197214 -4.521479 +v 2.433472 -0.197214 -4.521479 +v 2.433472 -0.126503 -4.592189 +v 3.366528 -0.126503 -4.592189 +v 3.426528 -0.168930 -4.634616 +v 3.426528 -0.239640 -4.563905 +v 3.366528 -0.197214 -4.521479 +v 3.366528 -0.353072 -4.677337 +v 3.426528 -0.310645 -4.634910 +v 3.426528 -0.239935 -4.705621 +v 3.366528 -0.282361 -4.748047 +v 3.233472 -0.353072 -4.677337 +v 3.233472 -0.282361 -4.748047 +v 3.173472 -0.239935 -4.705621 +v 3.173472 -0.310645 -4.634910 +v 3.233472 -0.197214 -4.521479 +v 3.173472 -0.239640 -4.563905 +v 3.173472 -0.168930 -4.634616 +v 3.233472 -0.126503 -4.592189 +v 2.373472 -0.310645 -4.634910 +v 2.433472 -0.353072 -4.677337 +v 2.433472 -0.282361 -4.748047 +v 2.373472 -0.239935 -4.705621 +v 1.900000 -0.500001 5.500000 +v 1.900000 -0.500001 5.985623 +v 1.900000 -1.000001 5.500000 +v 2.202025 -1.000001 5.274510 +v 2.305831 -0.870454 5.197009 +v 2.305831 -0.629548 5.197009 +v 2.202025 -0.500001 5.274510 +v 1.900000 -0.500001 3.192308 +v 1.900000 -0.500001 3.769231 +v 1.900000 -0.500001 4.346154 +v 2.202025 -1.000000 2.274510 +v 2.305831 -0.870454 2.197009 +v 2.305831 -0.629547 2.197009 +v 2.202025 -0.500000 2.274511 +v 2.166842 -0.606002 5.300778 +v 2.166842 -0.606002 5.100778 +v 2.220892 -0.673455 5.060424 +v 2.220892 -0.673455 5.260425 +v 1.984940 -0.894000 5.436584 +v 1.984940 -0.894000 5.236585 +v 1.984940 -0.606002 5.236585 +v 1.984940 -0.606002 5.436584 +v 2.220892 -0.826547 5.260425 +v 2.220892 -0.826547 5.060424 +v 2.166842 -0.894000 5.100778 +v 2.166842 -0.894000 5.300778 +v 2.380000 -0.699756 -4.687980 +v 2.380000 -0.625076 -4.621475 +v 2.380000 -0.692719 -4.545516 +v 2.380000 -0.767400 -4.612020 +v 2.550000 -0.653203 -4.740256 +v 2.550000 -0.578523 -4.673751 +v 2.450000 -0.578523 -4.673751 +v 2.450000 -0.653203 -4.740256 +v 3.180000 -0.699756 -4.687980 +v 3.250000 -0.653203 -4.740256 +v 3.250000 -0.578523 -4.673751 +v 3.180000 -0.625076 -4.621475 +v 3.420000 -0.767400 -4.612020 +v 3.420000 -0.692719 -4.545516 +v 3.420000 -0.625076 -4.621475 +v 3.420000 -0.699756 -4.687980 +v 3.250000 -0.813953 -4.559744 +v 3.250000 -0.739273 -4.493239 +v 3.350000 -0.739273 -4.493239 +v 3.350000 -0.813953 -4.559744 +v 2.620000 -0.692719 -4.545516 +v 2.620000 -0.767400 -4.612020 +v 2.550000 -0.813953 -4.559744 +v 2.550000 -0.739273 -4.493239 +v 1.500000 -0.176317 6.300000 +v 0.750000 -1.524999 -5.250000 +v 0.750000 -1.524999 -2.750000 +v 0.750000 -1.024999 -2.750000 +v 0.750000 -1.024999 -5.250000 +v 0.700000 1.223137 0.700487 +v 0.593934 1.212365 0.956326 +v 0.200000 1.750001 -5.000000 +v 0.200000 1.900001 -4.849999 +v 0.700000 1.900001 -4.849999 +v 0.700000 1.750001 -5.000000 +v 0.100000 1.900001 -3.500000 +v 0.100000 2.136979 -2.143999 +v 0.100000 1.815864 -1.501770 +v 0.100000 2.400001 -4.500000 +v 0.100000 2.332692 -2.901416 +v 0.200000 1.450001 -5.000000 +v -0.200000 1.450001 -5.000000 +v -0.200000 1.450001 -5.200000 +v 0.200000 1.450001 -5.200000 +v 0.200000 2.860778 -5.896116 +v -0.200000 2.860778 -5.896116 +v -0.200000 2.900001 -5.500000 +v 0.200000 2.900001 -5.500000 +v 1.500000 -0.176317 5.958317 +v 1.234418 -0.825001 5.269968 +v 1.234418 -1.000001 5.500000 +v 0.457571 -0.676101 7.814587 +v 0.457572 -0.676101 7.679603 +v 0.457572 -0.325217 8.020397 +v 0.457571 -0.325217 8.155381 +v 0.542209 0.732998 2.883173 +v 0.542209 0.940183 3.691586 +v 0.542209 0.940183 2.691587 +v 0.542209 0.940183 4.691586 +v 1.292429 -0.325217 8.020397 +v 1.148083 -0.676101 7.679603 +v 1.148083 -0.676101 7.814587 +v 1.292429 -0.325217 8.155381 +v 1.110707 -0.640234 7.664439 +v 0.507572 -0.640234 7.664439 +v 0.250000 -1.000001 5.100000 +v 0.250000 -0.825001 5.269968 +v 1.234418 -1.000001 5.100000 +v 0.900000 -0.899999 -5.250000 +v -0.900000 -0.899999 -5.250000 +v -0.900000 -0.709999 -5.000000 +v 0.900000 -0.709999 -5.000000 +v 1.900000 -1.249999 -4.266667 +v 2.150000 -1.249999 -4.266667 +v 2.150000 -1.249999 -4.033333 +v 1.900000 -1.249999 -4.033333 +v 2.250000 -0.999999 -4.033333 +v 2.250000 -1.149999 -4.033333 +v 2.250000 -1.149999 -4.266667 +v 2.250000 -0.999999 -4.266667 +v 1.900000 -1.249999 -3.333333 +v 2.150000 -1.249999 -3.333333 +v 2.150000 -1.250000 -3.100000 +v 1.900000 -1.250000 -3.100000 +v 2.250000 -1.000000 -3.100000 +v 2.250000 -1.149999 -3.100000 +v 2.250000 -1.149999 -3.333333 +v 2.250000 -0.999999 -3.333333 +v 1.900000 -1.250000 -2.400000 +v 2.150000 -1.250000 -2.400000 +v 2.150000 -1.250000 -2.166667 +v 1.900000 -1.250000 -2.166667 +v 2.250000 -1.000000 -2.166667 +v 2.250000 -1.150000 -2.166667 +v 2.250000 -1.150000 -2.400000 +v 2.250000 -1.000000 -2.400000 +v 1.900000 -1.250000 -1.933334 +v 2.150000 -1.250000 -1.933334 +v 2.150000 -1.250000 -1.700000 +v 1.900000 -1.250000 -1.700000 +v 2.250000 -1.000000 -1.700000 +v 2.250000 -1.150000 -1.700000 +v 2.250000 -1.150000 -1.933334 +v 2.250000 -1.000000 -1.933333 +v 1.900000 -1.250000 -1.466667 +v 2.150000 -1.250000 -1.466667 +v 2.150000 -1.250000 -1.233334 +v 1.900000 -1.250000 -1.233334 +v 2.250000 -1.000000 -1.233333 +v 2.250000 -1.150000 -1.233334 +v 2.250000 -1.150000 -1.466667 +v 2.250000 -1.000000 -1.466667 +v 2.150000 -1.249999 -3.800000 +v 2.250000 -1.149999 -3.800000 +v 2.250000 -1.149999 -3.566667 +v 2.150000 -1.249999 -3.566667 +v 2.150000 -1.250000 -2.866667 +v 2.250000 -1.149999 -2.866667 +v 2.250000 -1.149999 -2.633334 +v 2.150000 -1.250000 -2.633334 +v 1.650000 -1.499999 -3.400000 +v 1.650000 -1.700000 -3.200000 +v 1.350000 -1.700000 -3.200000 +v 1.250000 -1.499999 -3.400000 +v 0.700000 1.625785 -2.924894 +v 0.950000 1.625785 -2.924894 +v 0.950000 1.637893 -3.212447 +v 0.700000 1.637893 -3.212447 +v 0.700000 1.601570 -2.349789 +v 0.950000 1.601570 -2.349789 +v 0.950000 1.613678 -2.637341 +v 0.700000 1.613678 -2.637341 +v 1.050000 1.315248 -1.487130 +v 1.050000 1.465248 -1.487130 +v 1.050000 1.453140 -1.199578 +v 1.050000 1.303140 -1.199578 +v 0.700000 1.553140 -1.199578 +v 0.950000 1.553140 -1.199578 +v 0.950000 1.565248 -1.487130 +v 0.700000 1.565248 -1.487130 +v 0.700000 1.528925 -0.624472 +v 0.950000 1.528925 -0.624472 +v 0.950000 1.541033 -0.912025 +v 0.700000 1.541033 -0.912025 +v 0.700000 1.504710 -0.049366 +v 0.950000 1.504710 -0.049366 +v 0.950000 1.516818 -0.336919 +v 0.700000 1.516818 -0.336919 +v 1.050000 1.254710 -0.049367 +v 1.050000 1.266818 -0.336919 +v 1.050000 1.416818 -0.336919 +v 1.050000 1.404710 -0.049366 +v 1.050000 1.278925 -0.624472 +v 1.050000 1.291033 -0.912025 +v 1.050000 1.441033 -0.912025 +v 1.050000 1.428925 -0.624472 +v 1.050000 1.351570 -2.349789 +v 1.050000 1.363678 -2.637341 +v 1.050000 1.513678 -2.637341 +v 1.050000 1.501570 -2.349789 +v 1.050000 1.375785 -2.924894 +v 1.050000 1.387893 -3.212447 +v 1.050000 1.537893 -3.212447 +v 1.050000 1.525786 -2.924894 +v 0.950000 1.589463 -2.062236 +v 0.950000 1.577355 -1.774683 +v 1.050000 1.477355 -1.774683 +v 1.050000 1.489463 -2.062236 +v 1.000000 -1.601124 -1.987551 +v 1.000000 -1.000000 0.416944 +v 0.850000 -1.000000 1.030776 +v 0.850000 -1.750000 -1.969224 +v 0.850000 -1.749999 -5.250000 +v 1.000000 -1.599999 -5.250000 +v 0.100000 -1.000000 1.030776 +v 0.100000 -1.375000 0.130776 +v 0.100000 -1.375000 -0.469224 +v 0.100000 -1.277986 0.918833 +v 0.100000 -1.000000 2.030776 +v 2.150000 -0.149999 -5.100000 +v 2.150000 -0.149999 -4.500000 +v 2.135589 -0.296317 -4.500000 +v 2.135589 -0.296317 -5.100000 +v 2.092910 -0.437012 -4.500000 +v 2.092910 -0.437012 -5.100000 +v 2.059242 -0.499999 -4.500000 +v 2.023602 -0.566677 -5.100000 +v 2.023602 -0.566677 -4.500000 +v 1.930330 -0.680329 -4.500000 +v 1.930330 -0.680329 -5.100000 +v 1.900000 -0.705221 -5.000000 +v 1.816678 -0.773601 -5.100000 +v 1.816678 -0.773601 -5.000000 +v 1.687013 -0.842909 -5.000000 +v 1.687013 -0.842909 -5.100000 +v 1.546318 -0.885588 -5.000000 +v 1.546318 -0.885588 -5.100000 +v 1.400000 -0.899999 -5.000000 +v 1.400000 -0.899999 -5.100000 +v 1.253682 -0.885588 -5.000000 +v 1.253682 -0.885588 -5.100000 +v 1.112987 -0.842909 -5.100000 +v 0.983322 -0.773601 -5.000000 +v 0.983322 -0.773601 -5.100000 +v 0.869670 -0.680329 -5.100000 +v 0.776398 -0.566677 -5.000000 +v 0.776398 -0.566677 -5.100000 +v 0.707090 -0.437012 -5.000000 +v 0.707090 -0.437012 -5.100000 +v 0.664411 -0.296317 -5.000000 +v 0.664411 -0.296317 -5.100000 +v 0.650000 -0.149999 -5.000000 +v 0.650000 -0.149999 -5.100000 +v 0.664411 -0.003681 -5.100000 +v 0.707090 0.137013 -5.000000 +v 0.707090 0.137013 -5.100000 +v 0.776398 0.266678 -5.000000 +v 0.776398 0.266679 -5.100000 +v 0.869670 0.380331 -5.000000 +v 0.869670 0.380331 -5.100000 +v 0.982997 0.473336 -5.000000 +v 0.983322 0.473603 -5.100000 +v 1.119703 0.544948 -5.000000 +v 1.112987 0.542910 -5.100000 +v 1.253682 0.585590 -5.100000 +v 1.253682 0.585590 -4.500000 +v 1.400000 0.600001 -4.500000 +v 1.400000 0.600001 -5.100000 +v 1.546318 0.585590 -4.500000 +v 1.546318 0.585590 -5.100000 +v 1.687013 0.542910 -4.500000 +v 1.687013 0.542910 -5.100000 +v 1.816678 0.473603 -4.500000 +v 1.816678 0.473603 -5.100000 +v 1.930330 0.380331 -4.500000 +v 1.930330 0.380331 -5.100000 +v 2.023602 0.266678 -4.500000 +v 2.023602 0.266679 -5.100000 +v 2.092910 0.137013 -4.500000 +v 2.092910 0.137013 -5.100000 +v 2.135589 -0.003682 -4.500000 +v 2.135589 -0.003681 -5.100000 +v 1.400000 -0.149999 -5.000000 +v 1.838843 0.031775 -5.000000 +v 1.865873 -0.057331 -5.200000 +v 1.838843 0.031775 -5.200000 +v 1.794948 0.113897 -5.200000 +v 1.735876 0.185877 -5.200000 +v 1.581775 0.288844 -5.000000 +v 1.663896 0.244949 -5.200000 +v 1.581775 0.288844 -5.200000 +v 1.492668 0.315874 -5.200000 +v 1.400000 0.325001 -5.200000 +v 1.218225 0.288844 -5.000000 +v 1.307332 0.315874 -5.200000 +v 1.218225 0.288844 -5.200000 +v 1.136104 0.244949 -5.200000 +v 1.064124 0.185877 -5.200000 +v 0.961157 0.031775 -5.000000 +v 1.005052 0.113897 -5.200000 +v 0.961157 0.031775 -5.200000 +v 0.934127 -0.057331 -5.200000 +v 0.925000 -0.149999 -5.200000 +v 0.961157 -0.331774 -5.000000 +v 0.934127 -0.242667 -5.200000 +v 0.961157 -0.331774 -5.200000 +v 1.005052 -0.413895 -5.200000 +v 1.064124 -0.485875 -5.200000 +v 1.218225 -0.588842 -5.000000 +v 1.136104 -0.544947 -5.200000 +v 1.218225 -0.588842 -5.200000 +v 1.307332 -0.615872 -5.200000 +v 1.400000 -0.624999 -5.200000 +v 1.581775 -0.588842 -5.000000 +v 1.492668 -0.615872 -5.200000 +v 1.581775 -0.588842 -5.200000 +v 1.663896 -0.544947 -5.200000 +v 1.735876 -0.485875 -5.200000 +v 1.838843 -0.331774 -5.000000 +v 1.794948 -0.413895 -5.200000 +v 1.838843 -0.331774 -5.200000 +v 1.865873 -0.242667 -5.200000 +v 1.875000 -0.149999 -5.200000 +v 1.814710 -0.149999 -5.000000 +v 1.693244 0.143245 -5.000000 +v 1.400000 0.264710 -5.000000 +v 1.106756 0.143245 -5.000000 +v 0.985290 -0.149999 -5.000000 +v 1.400000 -0.564709 -5.000000 +v 1.735876 -0.485875 -5.100000 +v 1.064124 -0.485875 -5.100000 +v 1.788765 -0.731827 -5.200000 +v 1.051433 0.075833 -5.000000 +v 1.486787 -0.556161 -5.000000 +v 1.693244 -0.443243 -5.050000 +v 1.693244 -0.443243 -5.000000 +v 1.814710 -0.149999 -5.050000 +v 1.875000 -0.149999 -5.100000 +v 1.005052 -0.413895 -5.100000 +v 0.985290 -0.149999 -5.050000 +v 0.925000 -0.149999 -5.100000 +v 1.400000 0.264711 -5.050000 +v 1.400000 0.325001 -5.100000 +v 1.693244 0.143245 -5.050000 +v 1.735876 0.185877 -5.100000 +v 1.174168 0.198568 -5.000000 +v 1.136104 0.244949 -5.000000 +v 1.005052 0.113897 -5.000000 +v 1.005052 -0.413895 -5.000000 +v 1.136104 -0.544947 -5.100000 +v 1.136104 -0.544947 -5.000000 +v 1.313213 -0.556161 -5.000000 +v 1.307332 -0.615872 -5.000000 +v 1.492668 -0.615872 -5.000000 +v 1.930062 0.204177 -5.200000 +v 1.524370 0.475251 -5.200000 +v 1.400000 0.485541 -5.200000 +v 1.275630 0.475251 -5.200000 +v 1.156790 0.437163 -5.200000 +v 1.045824 0.380063 -5.200000 +v 0.950606 0.299395 -5.200000 +v 0.869938 0.204177 -5.200000 +v 0.774749 -0.274369 -5.200000 +v 1.275630 -0.775250 -5.200000 +v 1.400000 -0.785539 -5.200000 +v 1.524370 -0.775250 -5.200000 +v 2.025251 -0.274369 -5.200000 +v 1.066658 -0.648881 -5.600000 +v 2.086313 -0.013483 -5.200000 +v 1.788765 0.431828 -5.200000 +v 0.713688 -0.013483 -5.200000 +v 0.818172 -0.538764 -5.200000 +v 1.893418 -0.643417 -5.200000 +v 1.981828 -0.538764 -5.200000 +v 1.987162 0.093211 -5.200000 +v 1.869367 0.044419 -5.600000 +v 1.643211 0.437163 -5.200000 +v 1.594418 0.319368 -5.600000 +v 0.764460 -0.149999 -5.200000 +v 1.156790 -0.737161 -5.200000 +v 1.987162 -0.393210 -5.200000 +v 1.869367 -0.344417 -5.600000 +v 1.759238 0.209239 -5.600000 +v 1.822878 0.272879 -5.600000 +v 1.400000 0.358041 -5.600000 +v 1.400000 0.448041 -5.600000 +v 1.040762 0.209239 -5.600000 +v 0.977122 0.272879 -5.600000 +v 0.930633 0.044419 -5.600000 +v 0.847483 0.078861 -5.600000 +v 0.930633 -0.344417 -5.600000 +v 0.847483 -0.378859 -5.600000 +v 1.400000 -0.658039 -5.600000 +v 1.400000 -0.748039 -5.600000 +v 1.952517 0.078861 -5.600000 +v 2.091099 0.136263 -5.200000 +v 1.628860 0.402518 -5.600000 +v 1.686262 0.541099 -5.200000 +v 0.801960 -0.149999 -5.600000 +v 0.651960 -0.149999 -5.200000 +v 0.977122 -0.572877 -5.600000 +v 0.871056 -0.678943 -5.200000 +v 1.822878 -0.572877 -5.600000 +v 1.928944 -0.678943 -5.200000 +v 1.952517 -0.378859 -5.600000 +v 2.091099 -0.436262 -5.200000 +v 1.806162 -0.063212 -5.000000 +v 1.625832 0.198568 -5.000000 +v 1.313213 0.256163 -5.000000 +v 1.136104 0.244949 -5.100000 +v 1.174168 0.198568 -5.050000 +v 0.993838 -0.236786 -5.000000 +v 1.174168 -0.498567 -5.000000 +v 1.174168 -0.498567 -5.050000 +v 1.106756 -0.443243 -5.050000 +v 1.051433 -0.375831 -5.050000 +v 1.051433 -0.375831 -5.000000 +v 1.106756 -0.443243 -5.000000 +v 1.307332 -0.615872 -5.100000 +v 1.313213 -0.556161 -5.050000 +v 1.748567 -0.375831 -5.000000 +v 1.865873 -0.242667 -5.100000 +v 1.663896 -0.544947 -5.100000 +v 1.400000 -0.564709 -5.050000 +v 1.486787 -0.556161 -5.050000 +v 1.492668 -0.615872 -5.100000 +v 1.400000 -0.624999 -5.100000 +v 0.934127 -0.057331 -5.100000 +v 1.106756 0.143245 -5.050000 +v 1.051433 0.075833 -5.050000 +v 1.005052 0.113897 -5.100000 +v 1.064124 0.185877 -5.100000 +v 1.492668 0.315874 -5.100000 +v 1.794948 0.113897 -5.100000 +v 1.865873 -0.057331 -5.100000 +v 1.806162 -0.063212 -5.050000 +v 1.865873 -0.057331 -5.000000 +v 1.748567 0.075833 -5.000000 +v 1.748567 0.075833 -5.050000 +v 1.794948 0.113897 -5.000000 +v 1.663896 0.244949 -5.100000 +v 1.625832 0.198568 -5.050000 +v 1.663896 0.244949 -5.000000 +v 1.486787 0.256163 -5.000000 +v 1.486787 0.256163 -5.050000 +v 1.492668 0.315874 -5.000000 +v 1.307332 0.315874 -5.100000 +v 1.313213 0.256163 -5.050000 +v 1.307332 0.315874 -5.000000 +v 0.993838 -0.063212 -5.000000 +v 1.122756 0.545874 -4.500000 +v 2.234142 0.015922 -4.000000 +v 2.234142 0.015922 -3.984079 +v 2.235707 0.000034 -3.999967 +v 2.185745 0.175467 -4.000000 +v 2.185745 0.175467 -3.824534 +v 2.107152 0.322504 -4.000000 +v 2.001383 0.451384 -4.000000 +v 2.001383 0.451384 -3.800000 +v 2.107152 0.322504 -3.800000 +v 2.172631 0.200001 -3.800000 +v 1.872504 0.557152 -4.000000 +v 1.872504 0.557152 -3.800000 +v 1.725466 0.635745 -4.000000 +v 1.725466 0.635745 -3.800000 +v 1.565922 0.684143 -4.000000 +v 1.565922 0.684143 -3.800000 +v 1.400000 0.700485 -4.000000 +v 1.400000 0.700485 -3.800000 +v 1.234079 0.684143 -4.000000 +v 1.234079 0.684143 -3.800000 +v 1.074534 0.635745 -4.000000 +v 1.074534 0.635745 -3.800000 +v 1.047392 0.621238 -4.000000 +v 1.047392 0.621238 -3.800000 +v 1.900000 -0.705221 -4.500000 +v 1.900000 0.405222 -3.500000 +v 1.900000 0.500001 -3.500000 +v 1.900000 0.405222 -3.594779 +v 0.750000 0.600001 -5.000000 +v 0.750000 0.600001 -5.100000 +v 0.735589 0.746319 -5.100000 +v 0.735589 0.746319 -5.000000 +v 0.735589 0.453683 -5.000000 +v 0.735589 0.453683 -5.100000 +v 0.692910 0.312988 -5.000000 +v 0.692910 0.312988 -5.100000 +v 0.623602 0.183323 -5.000000 +v 0.623602 0.183323 -5.100000 +v 0.530330 0.069671 -5.000000 +v 0.530330 0.069671 -5.100000 +v 0.416678 -0.023601 -5.000000 +v 0.416678 -0.023601 -5.100000 +v 0.287013 -0.092909 -5.000000 +v 0.287013 -0.092909 -5.100000 +v 0.146318 -0.135588 -5.000000 +v 0.146318 -0.135588 -5.100000 +v 0.146318 1.335590 -5.000000 +v 0.146318 1.335590 -5.100000 +v 0.000000 1.350001 -5.100000 +v 0.000000 1.350001 -5.000000 +v 0.287013 1.292910 -5.000000 +v 0.287013 1.292910 -5.100000 +v 0.416678 1.223603 -5.000000 +v 0.416678 1.223603 -5.100000 +v 0.530330 1.130331 -5.000000 +v 0.530330 1.130331 -5.100000 +v 0.623602 1.016678 -5.000000 +v 0.623602 1.016678 -5.100000 +v 0.692910 0.887013 -5.000000 +v 0.692910 0.887013 -5.100000 +v 0.735589 0.453683 -5.200000 +v 0.588471 0.482947 -5.600000 +v 0.598040 0.600001 -5.600000 +v 0.691099 0.313738 -5.200000 +v 0.117054 0.011530 -5.600000 +v 0.099496 0.099800 -5.600000 +v 0.194418 0.130633 -5.600000 +v 0.228860 0.047484 -5.600000 +v 0.000000 0.001961 -5.600000 +v 0.588471 0.717055 -5.600000 +v 0.500201 0.699497 -5.600000 +v 0.469367 0.794419 -5.600000 +v 0.552517 0.828861 -5.600000 +v 0.500201 0.500505 -5.600000 +v 0.625251 0.475631 -5.200000 +v 0.635540 0.600001 -5.200000 +v 0.508040 0.600001 -5.600000 +v 0.587162 0.356790 -5.200000 +v 0.424049 0.316660 -5.600000 +v 0.530062 0.245825 -5.200000 +v 0.469367 0.405583 -5.600000 +v 0.449394 0.150606 -5.200000 +v 0.283341 0.175951 -5.600000 +v 0.354176 0.069939 -5.200000 +v 0.359238 0.240763 -5.600000 +v 0.243210 0.012839 -5.200000 +v 0.099496 1.100201 -5.600000 +v 0.124370 1.225251 -5.200000 +v 0.000000 1.235541 -5.200000 +v 0.000000 1.108041 -5.600000 +v 0.194418 1.069368 -5.600000 +v 0.243210 1.187163 -5.200000 +v 0.283341 1.024050 -5.600000 +v 0.354176 1.130063 -5.200000 +v 0.359238 0.959239 -5.600000 +v 0.449394 1.049395 -5.200000 +v 0.424049 0.883342 -5.600000 +v 0.530062 0.954177 -5.200000 +v 0.587162 0.843211 -5.200000 +v 0.394948 0.336105 -5.000000 +v 0.348567 0.374169 -5.050000 +v 0.348567 0.374169 -5.000000 +v 0.263896 0.205053 -5.000000 +v 0.225832 0.251433 -5.050000 +v 0.263896 0.205053 -5.100000 +v 0.092668 1.065874 -5.000000 +v 0.086787 1.006163 -5.050000 +v 0.092668 1.065874 -5.100000 +v 0.263896 0.994949 -5.000000 +v 0.225832 0.948568 -5.050000 +v 0.225832 0.948568 -5.000000 +v 0.394948 0.863897 -5.000000 +v 0.348567 0.825833 -5.050000 +v 0.394948 0.863897 -5.100000 +v 0.581828 0.211236 -5.200000 +v 0.493418 0.106583 -5.200000 +v 0.623602 0.183323 -5.200000 +v 0.388765 0.018173 -5.200000 +v 0.267036 -0.044680 -5.200000 +v 0.286262 -0.091098 -5.200000 +v 0.416678 -0.023601 -5.200000 +v 0.136516 -0.086312 -5.200000 +v 0.000000 -0.097797 -5.200000 +v 0.000000 -0.148039 -5.200000 +v 0.146318 -0.135588 -5.200000 +v 0.136516 1.286313 -5.200000 +v 0.267036 1.244682 -5.200000 +v 0.286262 1.291099 -5.200000 +v 0.146318 1.335590 -5.200000 +v 0.388765 1.181828 -5.200000 +v 0.493418 1.093418 -5.200000 +v 0.528944 1.128945 -5.200000 +v 0.416678 1.223603 -5.200000 +v 0.581828 0.988766 -5.200000 +v 0.644681 0.867036 -5.200000 +v 0.623602 1.016678 -5.200000 +v 0.686312 0.736517 -5.200000 +v 0.697798 0.600001 -5.200000 +v 0.748040 0.600001 -5.200000 +v 0.735589 0.746319 -5.200000 +v 0.263896 0.994949 -5.100000 +v 0.394948 0.336105 -5.100000 +v 0.225832 0.251433 -5.000000 +v 0.086787 1.006163 -5.000000 +v 0.348567 0.825833 -5.000000 +v 0.414710 0.600001 -5.000000 +v 0.406162 0.686788 -5.000000 +v 0.406162 0.686788 -5.050000 +v 0.414710 0.600001 -5.050000 +v 0.406162 0.513214 -5.050000 +v 0.406162 0.513214 -5.000000 +v 0.644681 0.332965 -5.200000 +v 0.528944 0.071057 -5.200000 +v 0.000000 1.297799 -5.200000 +v 0.691099 0.886263 -5.200000 +v 0.780589 1.060589 -3.500000 +v 0.877884 1.083691 -3.500000 +v 0.877883 1.083691 -4.300000 +v 0.780588 1.060589 -4.500000 +v 0.726863 1.286864 -4.500000 +v 0.824158 1.309965 -4.300000 +v 0.851021 1.196828 -4.300000 +v 0.753726 1.173727 -4.500000 +v 0.807451 0.947452 -4.500000 +v 0.904746 0.970554 -4.300000 +v 0.904747 0.970554 -3.500000 +v 0.807452 0.947452 -3.500000 +v 1.826690 0.961203 -3.212447 +v 1.806117 0.940631 -3.243326 +v 1.732807 1.013941 -3.243326 +v 1.753380 1.034513 -3.212447 +v 1.659434 0.940567 -3.500000 +v 1.659434 0.940567 -3.470000 +v 1.732744 0.867257 -3.470000 +v 1.732744 0.867257 -3.500000 +v 1.680070 1.107823 -3.212447 +v 1.659497 1.087251 -3.243326 +v 1.586187 1.160561 -3.243326 +v 1.606760 1.181133 -3.212447 +v 1.512814 1.087187 -3.500000 +v 1.512814 1.087187 -3.470000 +v 1.586124 1.013877 -3.470000 +v 1.586124 1.013877 -3.500000 +v 1.533450 1.254443 -3.212447 +v 1.512877 1.233871 -3.243326 +v 1.439567 1.307181 -3.243326 +v 1.460140 1.327753 -3.212447 +v 1.439504 1.160497 -3.470000 +v 1.366194 1.233807 -3.470000 +v 1.413883 1.281496 -3.470000 +v 1.487193 1.208186 -3.470000 +v 1.809983 0.944496 -3.426947 +v 1.780433 0.914946 -3.470000 +v 1.707123 0.988256 -3.470000 +v 1.736673 1.017806 -3.426947 +v 1.663363 1.091116 -3.426947 +v 1.633813 1.061566 -3.470000 +v 1.560503 1.134876 -3.470000 +v 1.590053 1.164426 -3.426947 +v 1.048656 0.617340 -4.838302 +v 0.977580 0.546997 -4.838145 +v 0.978125 0.547243 -4.711541 +v 1.049202 0.617586 -4.711698 +v 0.876947 0.649009 -4.898145 +v 0.948023 0.719352 -4.898302 +v 0.905910 0.762089 -4.838302 +v 0.834834 0.691746 -4.838145 +v 0.834718 0.691631 -4.711541 +v 0.905794 0.761974 -4.711698 +v 0.948092 0.719420 -4.651698 +v 0.877016 0.649077 -4.651541 +v 1.534224 -0.176317 5.892354 +v 1.534224 -0.226317 5.892354 +v 1.534224 -0.226317 5.814866 +v 1.534224 -0.176317 5.814866 +v 1.606897 -0.176317 5.922353 +v 1.606897 -0.226317 5.922353 +v 1.564224 -0.226317 5.922353 +v 1.564224 -0.176317 5.922353 +v 1.636897 -0.176317 6.072460 +v 1.636897 -0.226317 6.072460 +v 1.636897 -0.226317 6.149947 +v 1.636897 -0.176317 6.149947 +v 1.564224 -0.176317 6.042459 +v 1.564224 -0.226317 6.042459 +v 1.606897 -0.226317 6.042459 +v 1.606897 -0.176317 6.042459 +v 1.534224 -0.176317 6.149947 +v 1.534224 -0.226317 6.149947 +v 1.534224 -0.226317 6.072460 +v 1.534224 -0.176317 6.072460 +v 1.606897 -0.176317 6.179947 +v 1.606897 -0.226317 6.179947 +v 1.564224 -0.226317 6.179947 +v 1.564224 -0.176317 6.179947 +v 1.636897 -0.226317 5.814866 +v 1.636897 -0.176317 5.814866 +v 1.606897 -0.176317 5.784866 +v 1.606897 -0.226317 5.784866 +v 1.454709 -1.000001 5.051346 +v 1.454709 -0.950001 5.051346 +v 1.454709 -0.950001 5.206346 +v 1.454709 -1.000001 5.206346 +v 1.619709 -1.000001 4.991346 +v 1.679709 -1.000001 5.051346 +v 1.679709 -0.950001 5.051346 +v 1.619709 -0.950001 4.991346 +v 1.679709 -0.950001 5.206346 +v 1.679709 -1.000001 5.206346 +v 1.619709 -1.000001 5.266346 +v 1.619709 -0.950001 5.266346 +v 1.500000 -0.176316 2.961539 +v 1.671121 -0.176316 2.961539 +v 1.671121 -0.176316 2.728879 +v 1.500000 -0.176316 2.900000 +v 1.234418 0.732983 3.118816 +v 0.942209 0.732998 3.118816 +v 0.942209 0.732998 3.276093 +v 1.234418 0.732974 3.276093 +v 1.500000 -0.176316 3.276093 +v 1.671121 -0.176316 3.276093 +v 1.671121 -0.176316 3.118816 +v 1.500000 -0.176316 3.118816 +v 1.234418 0.732964 3.433370 +v 0.942209 0.732998 3.433370 +v 0.942209 0.732998 3.590647 +v 1.234418 0.732955 3.590647 +v 1.500000 -0.176316 3.433370 +v 1.500000 0.467034 3.433370 +v 1.500000 0.467044 3.590647 +v 1.500000 -0.176316 3.590647 +v 1.500000 -0.176316 3.905201 +v 1.671121 -0.176316 3.905201 +v 1.671121 -0.176316 3.747924 +v 1.500000 -0.176316 3.747924 +v 1.234418 0.732936 3.905201 +v 1.500000 0.467063 3.905201 +v 1.500000 0.467053 3.747924 +v 1.234418 0.732945 3.747924 +v 1.234418 0.732926 4.062478 +v 0.942209 0.732998 4.062478 +v 0.942209 0.732998 4.219755 +v 1.234418 0.732916 4.219755 +v 1.500000 -0.176316 4.062478 +v 1.500000 0.467072 4.062478 +v 1.500000 0.467082 4.219755 +v 1.500000 -0.176316 4.219755 +v 1.234418 0.732907 4.377032 +v 0.942209 0.732998 4.377032 +v 0.942209 0.732998 4.534309 +v 1.234418 0.732897 4.534309 +v 1.500000 -0.176316 4.377032 +v 1.500000 0.467091 4.377032 +v 1.500000 0.467101 4.534309 +v 1.500000 -0.176317 4.534309 +v 1.600000 0.508383 2.961539 +v 1.600000 0.508390 3.068815 +v 1.600000 0.046568 3.068815 +v 1.600000 0.046568 2.961539 +v 1.842780 -0.245875 3.905201 +v 1.842780 -0.245875 4.012478 +v 1.842780 -0.419080 4.012478 +v 1.842780 -0.419080 3.905201 +v 1.842780 -0.245874 3.590647 +v 1.842780 -0.245874 3.697924 +v 1.842780 -0.419080 3.697924 +v 1.842780 -0.419080 3.590647 +v 1.842780 -0.245874 2.961539 +v 1.842780 -0.245874 3.068815 +v 1.842780 -0.419079 3.068815 +v 1.842780 -0.419079 2.961539 +v 0.542209 0.732997 4.591587 +v 0.942209 0.832997 4.641586 +v 1.275877 0.832876 4.641588 +v 1.275877 0.832882 4.534311 +v 0.942209 0.832997 4.534309 +v 1.600000 0.046568 4.641586 +v 1.600000 0.508506 4.641586 +v 1.550000 0.487809 4.691586 +v 1.550000 0.028518 4.691586 +v 1.842780 -0.245875 4.641586 +v 1.842780 -0.245875 4.534309 +v 1.600000 0.046568 4.534309 +v 1.792780 -0.263924 4.691586 +v 1.792780 -0.348369 4.691586 +v 1.842780 -0.419080 4.641586 +v 0.942209 0.832998 3.068816 +v 1.275885 0.832985 3.068818 +v 1.275885 0.832992 2.961540 +v 0.942209 0.832998 2.961539 +v 0.942209 0.832997 3.383370 +v 1.275883 0.832963 3.383372 +v 1.275883 0.832970 3.276095 +v 0.942209 0.832997 3.276093 +v 1.275882 0.832941 3.697926 +v 0.942209 0.832997 3.697924 +v 0.942209 0.782997 3.747924 +v 1.255150 0.782942 3.747926 +v 1.600000 0.508436 3.697924 +v 1.600000 0.508430 3.590647 +v 1.275882 0.832948 3.590649 +v 1.275880 0.832920 4.012480 +v 0.942209 0.832997 4.012478 +v 0.942209 0.782997 4.062478 +v 1.255149 0.782922 4.062479 +v 1.600000 0.508460 4.012478 +v 1.600000 0.508453 3.905201 +v 1.275880 0.832926 3.905203 +v 1.275879 0.832898 4.327034 +v 0.942209 0.832997 4.327032 +v 0.942209 0.782997 4.377032 +v 1.255149 0.782901 4.377034 +v 1.600000 0.508483 4.327032 +v 1.600000 0.508476 4.219755 +v 1.275879 0.832904 4.219757 +v 1.550000 0.487788 4.377032 +v 1.550000 0.028518 4.377032 +v 1.600000 0.046568 4.327032 +v 1.600000 0.046568 4.012478 +v 1.550000 0.028518 4.062478 +v 1.792780 -0.263924 4.062478 +v 1.550000 0.028518 3.118815 +v 1.792780 -0.263924 3.118815 +v 1.600000 0.046568 3.383370 +v 1.600000 0.508413 3.383370 +v 1.550000 0.487725 3.433370 +v 1.550000 0.028518 3.433370 +v 1.842780 -0.245874 3.383370 +v 1.842780 -0.245874 3.276093 +v 1.600000 0.046568 3.276093 +v 1.600000 0.046568 3.697924 +v 1.550000 0.487746 3.747924 +v 1.550000 0.028518 3.747924 +v 1.842780 -0.245875 4.327032 +v 1.842780 -0.245875 4.219755 +v 1.600000 0.046568 4.219755 +v 1.792780 -0.263924 3.433370 +v 1.842780 -0.419079 3.383370 +v 1.792780 -0.348369 3.433370 +v 1.255152 0.782983 3.118817 +v 1.550000 0.487703 3.118815 +v 1.792780 -0.263924 4.377032 +v 1.792780 -0.348369 4.377032 +v 1.842780 -0.419080 4.327032 +v 1.800000 0.590958 0.955373 +v 1.800000 0.490310 1.052712 +v 1.900000 0.490429 1.052717 +v 1.900000 0.590963 0.956326 +v 1.278605 1.112454 0.952120 +v 1.278605 1.212365 0.956326 +v 0.942209 1.098302 1.288217 +v 1.900000 0.250000 2.160000 +v 1.900000 0.300000 2.210000 +v 1.840000 0.300000 2.210000 +v 1.840000 0.250000 2.160000 +v 1.840000 0.140000 2.210000 +v 1.900000 0.140000 2.210000 +v 1.900000 0.190000 2.160000 +v 1.840000 0.190000 2.160000 +v 1.840000 0.300000 2.310000 +v 1.900000 0.300000 2.310000 +v 1.900000 0.250000 2.360000 +v 1.840000 0.250000 2.360000 +v 1.840000 0.190000 2.360000 +v 1.900000 0.190000 2.360000 +v 1.900000 0.140000 2.310000 +v 1.840000 0.140000 2.310000 +v 0.250000 0.532790 6.300000 +v -0.250000 0.532790 6.300000 +v -0.250000 -0.176317 6.300000 +v 0.250000 -0.176317 6.300000 +v 0.250000 0.632888 4.691586 +v -0.250000 0.632888 4.691586 +v -0.250000 0.632796 6.200000 +v 0.250000 0.632796 6.200000 +v 0.398918 -0.250767 8.227691 +v 0.398918 -0.250767 8.527691 +v 0.398918 -0.176317 8.600000 +v 0.398918 -0.176317 8.300000 +v 0.547837 -0.176317 8.300000 +v 0.547837 -0.176317 8.600000 +v 0.547837 -0.250767 8.527691 +v 0.547837 -0.250767 8.227691 +v 0.696755 -0.250767 8.227691 +v 0.696755 -0.250767 8.527691 +v 0.696755 -0.176317 8.600000 +v 0.696755 -0.176317 8.300000 +v 0.845674 -0.176317 8.300000 +v 0.845674 -0.176317 8.600000 +v 0.845674 -0.250767 8.527691 +v 0.845674 -0.250767 8.227691 +v 1.143510 -0.176317 8.600000 +v 0.994592 -0.176317 8.600000 +v 0.994592 -0.250767 8.527691 +v 1.143510 -0.250767 8.527691 +v 1.500000 0.467110 4.691586 +v 1.234418 0.732888 4.691586 +v 0.492209 0.682790 6.486244 +v 0.492209 0.682790 6.672488 +v 0.542209 0.732790 6.672488 +v 0.250000 0.532790 6.672488 +v 0.300000 0.532790 6.672488 +v 0.300000 0.532790 6.486244 +v 0.250000 0.532790 6.486244 +v 0.542209 0.732790 6.858732 +v 0.492209 0.682790 6.858732 +v 0.492209 0.682790 7.044976 +v 0.542209 0.732790 7.044976 +v 0.250000 0.532790 7.044976 +v 0.300000 0.532790 7.044976 +v 0.300000 0.532790 6.858732 +v 0.250000 0.532790 6.858732 +v 0.250000 0.532790 8.162440 +v 0.300000 0.532790 8.162440 +v 0.300000 0.532790 7.976196 +v 0.250000 0.532790 7.976196 +v 0.300000 0.532790 7.231220 +v 0.300000 0.532790 7.417464 +v 0.300000 0.612079 7.417464 +v 0.300000 0.612079 7.231220 +v 0.300000 0.532790 7.603708 +v 0.300000 0.532790 7.789952 +v 0.300000 0.612079 7.789952 +v 0.300000 0.612079 7.603708 +v 0.370711 0.682790 6.486244 +v 0.300000 0.612079 6.486244 +v 0.300000 0.612079 6.672488 +v 0.370711 0.682790 6.672488 +v 0.300000 0.612079 7.044976 +v 0.370711 0.682790 7.044976 +v 0.370711 0.682790 6.858732 +v 0.300000 0.612079 6.858732 +v 0.370711 0.682790 7.231220 +v 0.370711 0.682790 7.417464 +v 0.492209 0.682790 7.417464 +v 0.492209 0.682790 7.231220 +v 0.370711 0.682790 7.603708 +v 0.370711 0.682790 7.789952 +v 0.492209 0.682790 7.789952 +v 0.492209 0.682790 7.603708 +v 0.370711 0.682790 7.976196 +v 0.370711 0.682790 8.162440 +v 0.492209 0.682790 8.162440 +v 0.492209 0.682790 7.976196 +v 0.250000 -0.250767 8.227691 +v 0.350000 -0.250767 8.227691 +v 0.350000 -0.250767 6.227691 +v 0.250000 -0.250767 6.227691 +v 0.250000 -0.176317 8.312815 +v 0.250000 -0.176317 8.871547 +v 0.150000 -0.105607 8.700836 +v 0.150000 -0.105606 8.242105 +v 0.250000 0.467314 7.296696 +v 0.150000 0.396603 7.267406 +v 0.150000 -0.105606 7.769616 +v 0.250000 -0.176317 7.940327 +v 0.250000 -0.176317 7.381595 +v 0.150000 -0.105606 7.310884 +v 0.150000 0.396604 6.808674 +v 0.250000 0.467314 6.737964 +v 0.150000 0.396603 7.739894 +v 0.150000 0.396603 8.198627 +v 0.250000 0.467314 8.227916 +v 0.250000 0.467314 7.669184 +v 1.369519 -0.250767 6.227691 +v 1.400000 -0.176317 6.300000 +v 1.400000 -0.176317 8.300000 +v 1.369519 -0.250767 8.227691 +v -3.664509 -1.100000 -3.264509 +v -3.135491 -1.100000 -3.264509 +v -3.664509 -1.100000 -1.360176 +v -3.594509 -1.059999 -3.264509 +v -3.594509 -1.059999 -3.214509 +v -3.205491 -1.059999 -3.214509 +v -3.205491 -1.059999 -3.264509 +v -3.175491 -1.029999 -3.264509 +v -3.175491 -1.029999 -3.214509 +v -3.175491 -0.969999 -3.214509 +v -3.175491 -0.969999 -3.264509 +v -3.624509 -0.969999 -3.214509 +v -3.624509 -0.969999 -3.264509 +v -3.594509 -0.939999 -3.264509 +v -3.594509 -0.939999 -3.214509 +v -2.461059 -0.161622 1.514469 +v -2.461059 -0.161621 0.132959 +v -3.022119 -0.169433 -0.267041 +v -3.022119 -0.169433 1.108667 +v -3.022119 0.171691 0.537423 +v -3.022119 0.171691 -0.267041 +v -2.461059 0.162750 0.132959 +v -2.461059 0.162750 0.971277 +v -4.114653 -0.499999 -4.500000 +v -5.434361 -1.213743 -5.034361 +v -3.500000 0.500001 -3.500000 +v -3.500000 -0.499999 -4.500000 +v -3.100000 -0.499999 -4.500000 +v -3.100000 0.500001 -3.500000 +v -2.700000 0.500001 -3.500000 +v -2.700000 -0.499999 -4.500000 +v -2.700000 0.800001 -3.665685 +v -2.300000 0.800001 -3.665685 +v -3.500000 0.800001 -3.665685 +v -3.100000 0.800001 -3.665685 +v -3.206421 -0.400735 -4.800000 +v -3.206421 -0.400735 -4.700000 +v -3.393579 -0.400735 -4.700000 +v -3.393579 -0.400735 -4.800000 +v -2.406421 -0.400735 -4.800000 +v -2.406421 -0.400735 -4.700000 +v -2.593579 -0.400735 -4.700000 +v -2.593579 -0.400735 -4.800000 +v -2.633579 -0.440735 -4.800000 +v -2.633579 -0.440735 -4.700000 +v -2.633579 -0.493578 -4.700000 +v -2.633579 -0.493578 -4.800000 +v -2.593579 -0.533578 -4.800000 +v -2.593579 -0.533578 -4.700000 +v -2.406421 -0.533578 -4.700000 +v -2.406421 -0.533578 -4.800000 +v -2.366421 -0.493578 -4.800000 +v -2.366421 -0.493578 -4.700000 +v -2.366421 -0.440735 -4.700000 +v -2.366421 -0.440735 -4.800000 +v -3.433579 -0.493578 -4.700000 +v -3.393579 -0.533578 -4.700000 +v -3.393579 -0.533578 -4.800000 +v -3.433579 -0.493578 -4.800000 +v -3.166421 -0.493578 -4.700000 +v -3.166421 -0.493578 -4.800000 +v -3.206421 -0.533578 -4.800000 +v -3.206421 -0.533578 -4.700000 +v -3.380000 0.500000 -1.585638 +v -3.380000 0.650000 -1.685638 +v -3.380000 0.650000 -1.985638 +v -2.580000 0.500000 -1.585638 +v -2.580000 0.650000 -1.685638 +v -2.580000 0.650000 -1.985638 +v -2.420000 0.650000 -1.985638 +v -2.420000 0.650000 -1.685638 +v -2.420000 0.500000 -1.585638 +v -3.220000 0.650000 -1.985638 +v -3.220000 0.650000 -1.685638 +v -3.220000 0.500000 -1.585638 +v -2.580000 0.500000 -1.285638 +v -2.420000 0.500000 -1.285638 +v -3.380000 0.500000 -1.285638 +v -3.220000 0.500000 -1.285638 +v -2.566528 -0.282361 -4.748047 +v -2.566528 -0.353072 -4.677337 +v -2.433472 -0.353072 -4.677337 +v -2.433472 -0.282361 -4.748047 +v -2.626528 -0.168930 -4.634616 +v -2.626528 -0.239640 -4.563905 +v -2.626528 -0.310645 -4.634910 +v -2.626528 -0.239935 -4.705621 +v -3.366528 -0.282361 -4.748047 +v -3.426528 -0.239935 -4.705621 +v -3.426528 -0.310645 -4.634910 +v -3.366528 -0.353072 -4.677337 +v -3.233472 -0.126503 -4.592189 +v -3.173472 -0.168930 -4.634616 +v -3.173472 -0.239640 -4.563905 +v -3.233472 -0.197214 -4.521479 +v -3.173472 -0.310645 -4.634910 +v -3.173472 -0.239935 -4.705621 +v -3.233472 -0.282361 -4.748047 +v -3.233472 -0.353072 -4.677337 +v -3.366528 -0.197214 -4.521479 +v -3.426528 -0.239640 -4.563905 +v -3.426528 -0.168930 -4.634616 +v -3.366528 -0.126503 -4.592189 +v -2.433472 -0.197214 -4.521479 +v -2.433472 -0.126503 -4.592189 +v -2.373472 -0.168930 -4.634616 +v -2.373472 -0.239640 -4.563905 +v -2.305831 -0.870454 2.197009 +v -2.305831 -0.629547 2.197009 +v -2.305831 -0.870454 5.197009 +v -2.202025 -1.000001 5.274510 +v -2.202025 -0.500000 2.274511 +v -1.900000 -0.500000 2.500000 +v -2.202025 -0.500001 5.274510 +v -2.305831 -0.629548 5.197009 +v -1.900000 -0.500001 3.192308 +v -1.900000 -0.500001 3.769231 +v -1.900000 -0.500001 4.346154 +v -2.166842 -0.606002 5.300778 +v -2.166842 -0.606002 5.100778 +v -1.984940 -0.606002 5.236585 +v -1.984940 -0.606002 5.436584 +v -2.166842 -0.894000 5.300778 +v -2.166842 -0.894000 5.100778 +v -2.220892 -0.826547 5.060424 +v -2.220892 -0.826547 5.260425 +v -3.135491 -1.100000 -0.731722 +v -3.194252 -1.100000 -0.712636 +v -2.450000 -0.653203 -4.740256 +v -2.450000 -0.578523 -4.673751 +v -2.550000 -0.578523 -4.673751 +v -2.550000 -0.653203 -4.740256 +v -2.620000 -0.699756 -4.687980 +v -2.620000 -0.625076 -4.621475 +v -2.620000 -0.692719 -4.545516 +v -2.620000 -0.767400 -4.612020 +v -2.550000 -0.813953 -4.559744 +v -2.550000 -0.739273 -4.493239 +v -2.450000 -0.739273 -4.493239 +v -2.450000 -0.813953 -4.559744 +v -2.380000 -0.767400 -4.612020 +v -2.380000 -0.692719 -4.545516 +v -2.380000 -0.625076 -4.621475 +v -2.380000 -0.699756 -4.687980 +v -3.420000 -0.699756 -4.687980 +v -3.350000 -0.653203 -4.740256 +v -3.350000 -0.578523 -4.673751 +v -3.420000 -0.625076 -4.621475 +v -3.350000 -0.813953 -4.559744 +v -3.350000 -0.739273 -4.493239 +v -3.250000 -0.739273 -4.493239 +v -3.250000 -0.813953 -4.559744 +v -3.180000 -0.625076 -4.621475 +v -3.250000 -0.578523 -4.673751 +v -3.250000 -0.653203 -4.740256 +v -3.180000 -0.699756 -4.687980 +v -0.750000 -1.024999 -5.250000 +v -0.750000 -1.024999 -2.750000 +v -0.750000 -1.524999 -2.750000 +v -0.750000 -1.524999 -5.250000 +v -0.593934 1.212365 0.956326 +v -0.700000 1.223137 0.700487 +v -0.700000 1.750001 -5.000000 +v -0.700000 1.900001 -4.849999 +v -0.200000 1.900001 -4.849999 +v -0.200000 1.750001 -5.000000 +v -0.100000 1.900001 -3.500000 +v -0.100000 2.332692 -2.901416 +v -0.100000 2.400001 -4.500000 +v -0.100000 1.815864 -1.501770 +v -0.100000 2.136979 -2.143999 +v -1.500000 -0.176316 2.900000 +v -1.671121 -0.176316 2.728879 +v -1.671121 -0.176316 2.961539 +v -1.500000 -0.176316 2.961539 +v -1.900000 -1.000001 5.500000 +v -1.900000 -0.500001 5.985623 +v -1.900000 -0.500001 5.500000 +v -0.457571 -0.676101 7.814587 +v -0.457572 -0.676101 7.679603 +v -1.148083 -0.676101 7.679603 +v -1.148083 -0.676101 7.814587 +v -0.942209 0.940183 2.691587 +v -0.942209 0.940183 3.358253 +v -0.542209 0.940183 3.691586 +v -0.542209 0.940183 2.691587 +v -0.542209 0.940183 4.691586 +v -0.942209 0.940183 4.024920 +v -0.942209 0.940183 4.691586 +v -0.457572 -0.325217 8.020397 +v -0.507572 -0.361084 7.935561 +v -0.507572 -0.640234 7.664439 +v -1.110707 -0.640234 7.664439 +v -1.225543 -0.361084 7.935561 +v -1.292429 -0.325217 8.020397 +v -1.234418 -1.000001 5.500000 +v -1.234418 -0.825001 5.269968 +v -0.250000 -0.825001 5.269968 +v -0.250000 -1.000001 5.100000 +v -1.234418 -1.000001 5.100000 +v -2.250000 -0.999999 -4.266667 +v -2.250000 -1.149999 -4.266667 +v -2.250000 -1.149999 -4.033333 +v -2.250000 -0.999999 -4.033333 +v -1.900000 -1.249999 -4.033333 +v -2.150000 -1.249999 -4.033333 +v -2.150000 -1.249999 -4.266667 +v -1.900000 -1.249999 -4.266667 +v -2.250000 -0.999999 -3.333333 +v -2.250000 -1.149999 -3.333333 +v -2.250000 -1.149999 -3.100000 +v -2.250000 -1.000000 -3.100000 +v -1.900000 -1.250000 -3.100000 +v -2.150000 -1.250000 -3.100000 +v -2.150000 -1.249999 -3.333333 +v -1.900000 -1.249999 -3.333333 +v -2.250000 -1.000000 -2.866667 +v -2.250000 -1.149999 -2.866667 +v -2.250000 -1.149999 -2.633334 +v -2.250000 -1.000000 -2.633334 +v -1.900000 -1.250000 -2.633334 +v -2.150000 -1.250000 -2.633334 +v -2.150000 -1.250000 -2.866667 +v -1.900000 -1.250000 -2.866667 +v -1.900000 -1.250000 -2.400000 +v -2.150000 -1.250000 -2.400000 +v -1.900000 -1.000000 -2.400000 +v -2.250000 -1.150000 -2.400000 +v -2.250000 -1.000000 -2.400000 +v -2.250000 -1.000000 -2.166667 +v -2.250000 -1.150000 -2.166667 +v -1.900000 -1.000000 -2.166667 +v -2.150000 -1.250000 -2.166667 +v -2.250000 -1.000000 -1.933333 +v -2.250000 -1.150000 -1.933334 +v -2.250000 -1.150000 -1.700000 +v -2.250000 -1.000000 -1.700000 +v -1.900000 -1.250000 -1.700000 +v -2.150000 -1.250000 -1.700000 +v -2.150000 -1.250000 -1.933334 +v -1.900000 -1.250000 -1.933334 +v -2.250000 -1.000000 -1.466667 +v -2.250000 -1.150000 -1.466667 +v -2.250000 -1.150000 -1.233334 +v -2.250000 -1.000000 -1.233333 +v -1.900000 -1.250000 -1.233334 +v -2.150000 -1.250000 -1.233334 +v -2.150000 -1.250000 -1.466667 +v -1.900000 -1.250000 -1.466667 +v -2.150000 -1.249999 -3.566667 +v -2.250000 -1.149999 -3.566667 +v -2.250000 -1.149999 -3.800000 +v -2.150000 -1.249999 -3.800000 +v -1.900000 -1.250000 -2.166667 +v -1.250000 -1.499999 -3.400000 +v -1.350000 -1.700000 -3.200000 +v -1.650000 -1.700000 -3.200000 +v -1.650000 -1.499999 -3.400000 +v -0.700000 1.637893 -3.212447 +v -0.950000 1.637893 -3.212447 +v -0.950000 1.625785 -2.924894 +v -0.700000 1.625785 -2.924894 +v -0.700000 1.613678 -2.637341 +v -0.950000 1.613678 -2.637341 +v -0.950000 1.601570 -2.349789 +v -0.700000 1.601570 -2.349789 +v -0.700000 1.339463 -2.062236 +v -0.950000 1.589463 -2.062236 +v -0.700000 1.589463 -2.062236 +v -0.700000 1.577355 -1.774683 +v -0.950000 1.577355 -1.774683 +v -0.700000 1.327355 -1.774683 +v -0.700000 1.565248 -1.487130 +v -0.950000 1.565248 -1.487130 +v -0.950000 1.553140 -1.199578 +v -0.700000 1.553140 -1.199578 +v -1.050000 1.303140 -1.199578 +v -1.050000 1.453140 -1.199578 +v -1.050000 1.465248 -1.487130 +v -1.050000 1.315248 -1.487130 +v -0.700000 1.516818 -0.336919 +v -0.950000 1.516818 -0.336919 +v -0.950000 1.504710 -0.049366 +v -0.700000 1.504710 -0.049366 +v -1.050000 1.327355 -1.774683 +v -1.050000 1.477355 -1.774683 +v -1.050000 1.339463 -2.062236 +v -1.050000 1.489463 -2.062236 +v -1.050000 1.404710 -0.049366 +v -1.050000 1.416818 -0.336919 +v -1.050000 1.266818 -0.336919 +v -1.050000 1.254710 -0.049367 +v -0.950000 1.541033 -0.912025 +v -1.050000 1.441033 -0.912025 +v -1.050000 1.428925 -0.624472 +v -0.950000 1.528925 -0.624472 +v -1.050000 1.501570 -2.349789 +v -1.050000 1.513678 -2.637341 +v -1.050000 1.363678 -2.637341 +v -1.050000 1.351570 -2.349789 +v -1.050000 1.525786 -2.924894 +v -1.050000 1.537893 -3.212447 +v -1.050000 1.387893 -3.212447 +v -1.050000 1.375785 -2.924894 +v -1.000000 -1.601124 -1.987551 +v -1.000000 -1.599999 -5.250000 +v -0.850000 -1.749999 -5.250000 +v -0.850000 -1.750000 -1.969224 +v -0.850000 -1.000000 1.030776 +v -1.000000 -1.000000 0.416944 +v -0.100000 -1.375000 -0.469224 +v -0.100000 -1.375000 0.130776 +v -0.100000 -1.000000 1.030776 +v -0.100000 -1.000000 2.030776 +v -0.100000 -1.277986 0.918833 +v -2.150000 -0.149999 -5.100000 +v -2.099758 -0.149999 -5.100000 +v -2.086313 -0.286515 -5.100000 +v -2.135589 -0.296317 -5.100000 +v -2.046492 -0.417785 -5.100000 +v -2.092910 -0.437012 -5.100000 +v -1.981828 -0.538764 -5.100000 +v -2.023602 -0.566677 -5.100000 +v -1.894804 -0.644803 -5.100000 +v -1.930330 -0.680329 -5.100000 +v -1.816678 -0.773601 -5.100000 +v -1.788765 -0.731827 -5.100000 +v -1.667786 -0.796491 -5.100000 +v -1.687013 -0.842909 -5.100000 +v -1.536516 -0.836312 -5.100000 +v -1.546318 -0.885588 -5.100000 +v -1.400000 -0.849757 -5.100000 +v -1.400000 -0.899999 -5.100000 +v -1.263484 -0.836312 -5.100000 +v -1.253682 -0.885588 -5.100000 +v -1.132214 -0.796491 -5.100000 +v -1.112987 -0.842909 -5.100000 +v -1.011235 -0.731827 -5.100000 +v -0.983322 -0.773601 -5.100000 +v -0.905196 -0.644803 -5.100000 +v -0.869670 -0.680329 -5.100000 +v -0.818172 -0.538764 -5.100000 +v -0.776398 -0.566677 -5.100000 +v -0.753508 -0.417785 -5.100000 +v -0.707090 -0.437012 -5.100000 +v -0.713688 -0.286515 -5.100000 +v -0.664411 -0.296317 -5.100000 +v -0.700242 -0.149999 -5.100000 +v -0.650000 -0.149999 -5.100000 +v -0.713688 -0.013483 -5.100000 +v -0.664411 -0.003681 -5.100000 +v -0.753508 0.117787 -5.100000 +v -0.707090 0.137013 -5.100000 +v -0.818172 0.238766 -5.100000 +v -0.776398 0.266679 -5.100000 +v -0.905196 0.344805 -5.100000 +v -0.869670 0.380331 -5.100000 +v -1.011235 0.431828 -5.100000 +v -0.983322 0.473603 -5.100000 +v -1.132214 0.496493 -5.100000 +v -1.112987 0.542910 -5.100000 +v -1.263484 0.536313 -5.100000 +v -1.253682 0.585590 -5.100000 +v -1.400000 0.549759 -5.100000 +v -1.400000 0.600001 -5.100000 +v -1.536516 0.536313 -5.100000 +v -1.546318 0.585590 -5.100000 +v -1.667786 0.496493 -5.100000 +v -1.687013 0.542910 -5.100000 +v -1.788765 0.431828 -5.100000 +v -1.816678 0.473603 -5.100000 +v -1.894804 0.344805 -5.100000 +v -1.930330 0.380331 -5.100000 +v -1.981828 0.238766 -5.100000 +v -2.023602 0.266679 -5.100000 +v -2.046492 0.117787 -5.100000 +v -2.092910 0.137013 -5.100000 +v -2.086313 -0.013483 -5.100000 +v -2.135589 -0.003681 -5.100000 +v -2.135589 -0.296317 -5.200000 +v -2.086313 -0.286515 -5.200000 +v -2.097798 -0.149999 -5.200000 +v -2.148040 -0.149999 -5.200000 +v -2.044681 -0.417035 -5.200000 +v -1.546318 -0.885588 -5.200000 +v -1.536516 -0.836312 -5.200000 +v -1.667036 -0.794680 -5.200000 +v -1.686262 -0.841098 -5.200000 +v -1.400000 -0.847797 -5.200000 +v -1.253682 -0.885588 -5.200000 +v -1.263484 -0.836312 -5.200000 +v -1.400000 -0.898039 -5.200000 +v -1.132964 -0.794680 -5.200000 +v -0.983322 -0.773601 -5.200000 +v -1.011235 -0.731827 -5.200000 +v -1.113738 -0.841098 -5.200000 +v -0.906582 -0.643417 -5.200000 +v -0.664411 -0.296317 -5.200000 +v -0.713688 -0.286515 -5.200000 +v -0.755319 -0.417035 -5.200000 +v -0.708901 -0.436262 -5.200000 +v -0.702202 -0.149999 -5.200000 +v -0.776398 0.266679 -5.200000 +v -0.818172 0.238766 -5.200000 +v -0.755319 0.117036 -5.200000 +v -0.708901 0.136263 -5.200000 +v -0.906582 0.343418 -5.200000 +v -0.983322 0.473603 -5.200000 +v -1.011235 0.431828 -5.200000 +v -0.871056 0.378945 -5.200000 +v -1.113738 0.541099 -5.200000 +v -1.132964 0.494682 -5.200000 +v -1.253682 0.585590 -5.200000 +v -1.263484 0.536313 -5.200000 +v -1.400000 0.547799 -5.200000 +v -1.546318 0.585590 -5.200000 +v -1.536516 0.536313 -5.200000 +v -1.400000 0.598041 -5.200000 +v -1.667036 0.494682 -5.200000 +v -2.023602 0.266679 -5.200000 +v -1.981828 0.238766 -5.200000 +v -1.893418 0.343418 -5.200000 +v -1.928944 0.378945 -5.200000 +v -2.044681 0.117036 -5.200000 +v -1.898882 -0.483341 -5.600000 +v -2.023602 -0.566677 -5.200000 +v -1.733342 -0.648881 -5.600000 +v -1.628860 -0.702516 -5.600000 +v -1.816678 -0.773601 -5.200000 +v -0.901118 -0.483341 -5.600000 +v -0.776398 -0.566677 -5.200000 +v -0.811529 -0.032945 -5.600000 +v -0.664411 -0.003681 -5.200000 +v -1.733342 0.348883 -5.600000 +v -1.816678 0.473603 -5.200000 +v -1.988471 -0.032945 -5.600000 +v -1.998040 -0.149999 -5.600000 +v -2.135589 -0.003681 -5.200000 +v -1.900200 -0.249495 -5.600000 +v -1.988471 -0.267053 -5.600000 +v -1.499496 -0.650200 -5.600000 +v -1.517054 -0.738470 -5.600000 +v -1.300504 -0.650200 -5.600000 +v -1.205582 -0.619367 -5.600000 +v -1.171140 -0.702516 -5.600000 +v -1.282946 -0.738470 -5.600000 +v -0.899800 -0.249495 -5.600000 +v -0.891960 -0.149999 -5.600000 +v -0.811529 -0.267053 -5.600000 +v -0.975950 0.133342 -5.600000 +v -0.901118 0.183343 -5.600000 +v -1.116659 0.274050 -5.600000 +v -1.205582 0.319368 -5.600000 +v -1.171140 0.402518 -5.600000 +v -1.066658 0.348883 -5.600000 +v -1.300504 0.350201 -5.600000 +v -1.282946 0.438472 -5.600000 +v -1.499496 0.350201 -5.600000 +v -1.517054 0.438472 -5.600000 +v -1.824049 0.133342 -5.600000 +v -1.898882 0.183343 -5.600000 +v -1.930062 -0.504175 -5.200000 +v -1.849394 -0.599394 -5.200000 +v -1.759238 -0.509237 -5.600000 +v -1.824049 -0.433340 -5.600000 +v -1.754176 -0.680061 -5.200000 +v -1.643211 -0.737161 -5.200000 +v -1.594418 -0.619367 -5.600000 +v -1.683341 -0.574049 -5.600000 +v -1.045824 -0.680061 -5.200000 +v -0.950606 -0.599394 -5.200000 +v -1.040762 -0.509237 -5.600000 +v -1.116659 -0.574049 -5.600000 +v -0.869938 -0.504175 -5.200000 +v -0.812838 -0.393210 -5.200000 +v -0.975950 -0.433340 -5.600000 +v -0.774749 -0.025629 -5.200000 +v -0.812838 0.093211 -5.200000 +v -0.899800 -0.050503 -5.600000 +v -1.754176 0.380063 -5.200000 +v -1.849394 0.299395 -5.200000 +v -1.683341 0.274050 -5.600000 +v -2.025251 -0.025629 -5.200000 +v -2.035540 -0.149999 -5.200000 +v -1.908040 -0.149999 -5.600000 +v -1.900200 -0.050503 -5.600000 +v -1.865873 -0.242667 -5.000000 +v -1.806162 -0.236786 -5.050000 +v -1.806162 -0.236786 -5.000000 +v -1.794948 -0.413895 -5.000000 +v -1.748567 -0.375831 -5.050000 +v -1.794948 -0.413895 -5.100000 +v -1.663896 -0.544947 -5.000000 +v -1.625832 -0.498567 -5.050000 +v -1.625832 -0.498567 -5.000000 +v -0.934127 -0.242667 -5.000000 +v -0.993838 -0.236786 -5.050000 +v -0.934127 -0.242667 -5.100000 +v -0.934127 -0.057331 -5.000000 +v -0.993838 -0.063212 -5.050000 +v -0.993838 -0.063212 -5.000000 +v -1.307332 0.315874 -5.000000 +v -1.313213 0.256163 -5.050000 +v -1.307332 0.315874 -5.100000 +v -1.492668 0.315874 -5.000000 +v -1.486787 0.256163 -5.050000 +v -1.486787 0.256163 -5.000000 +v -1.663896 0.244949 -5.000000 +v -1.625832 0.198568 -5.050000 +v -1.663896 0.244949 -5.100000 +v -1.794948 0.113897 -5.000000 +v -1.748567 0.075833 -5.050000 +v -1.748567 0.075833 -5.000000 +v -1.865873 -0.057331 -5.000000 +v -1.806162 -0.063212 -5.050000 +v -1.865873 -0.057331 -5.100000 +v -1.794948 0.113897 -5.100000 +v -1.492668 0.315874 -5.100000 +v -1.064124 0.185877 -5.100000 +v -1.005052 0.113897 -5.100000 +v -1.051433 0.075833 -5.050000 +v -1.106756 0.143245 -5.050000 +v -0.934127 -0.057331 -5.100000 +v -1.400000 -0.624999 -5.100000 +v -1.492668 -0.615872 -5.100000 +v -1.486787 -0.556161 -5.050000 +v -1.400000 -0.564709 -5.050000 +v -1.663896 -0.544947 -5.100000 +v -1.865873 -0.242667 -5.100000 +v -1.748567 -0.375831 -5.000000 +v -1.313213 -0.556161 -5.050000 +v -1.307332 -0.615872 -5.100000 +v -1.106756 -0.443243 -5.000000 +v -1.051433 -0.375831 -5.000000 +v -1.051433 -0.375831 -5.050000 +v -1.106756 -0.443243 -5.050000 +v -1.174168 -0.498567 -5.050000 +v -1.174168 -0.498567 -5.000000 +v -0.993838 -0.236786 -5.000000 +v -1.174168 0.198568 -5.050000 +v -1.136104 0.244949 -5.100000 +v -1.313213 0.256163 -5.000000 +v -1.625832 0.198568 -5.000000 +v -1.806162 -0.063212 -5.000000 +v -2.091099 -0.436262 -5.200000 +v -1.952517 -0.378859 -5.600000 +v -1.928944 -0.678943 -5.200000 +v -1.822878 -0.572877 -5.600000 +v -0.871056 -0.678943 -5.200000 +v -0.977122 -0.572877 -5.600000 +v -0.651960 -0.149999 -5.200000 +v -0.801960 -0.149999 -5.600000 +v -1.686262 0.541099 -5.200000 +v -1.628860 0.402518 -5.600000 +v -2.091099 0.136263 -5.200000 +v -1.952517 0.078861 -5.600000 +v -1.400000 -0.748039 -5.600000 +v -1.400000 -0.658039 -5.600000 +v -0.847483 -0.378859 -5.600000 +v -0.930633 -0.344417 -5.600000 +v -0.847483 0.078861 -5.600000 +v -0.930633 0.044419 -5.600000 +v -0.977122 0.272879 -5.600000 +v -1.040762 0.209239 -5.600000 +v -1.400000 0.448041 -5.600000 +v -1.400000 0.358041 -5.600000 +v -1.822878 0.272879 -5.600000 +v -1.759238 0.209239 -5.600000 +v -1.869367 -0.344417 -5.600000 +v -1.987162 -0.393210 -5.200000 +v -1.156790 -0.737161 -5.200000 +v -0.764460 -0.149999 -5.200000 +v -1.594418 0.319368 -5.600000 +v -1.643211 0.437163 -5.200000 +v -1.869367 0.044419 -5.600000 +v -1.987162 0.093211 -5.200000 +v -2.135589 -0.003682 -4.500000 +v -2.234142 0.015922 -4.475000 +v -2.185745 0.175467 -4.475000 +v -2.092910 0.137013 -4.500000 +v -2.107152 0.322504 -4.475000 +v -2.023602 0.266678 -4.500000 +v -2.001383 0.451384 -4.475000 +v -1.930330 0.380331 -4.500000 +v -1.872504 0.557152 -4.475000 +v -1.816678 0.473603 -4.500000 +v -1.725466 0.635745 -4.475000 +v -1.687013 0.542910 -4.500000 +v -1.565921 0.684143 -4.475000 +v -1.546318 0.585590 -4.500000 +v -1.400000 0.700485 -4.475000 +v -1.400000 0.600001 -4.500000 +v -1.234079 0.684143 -4.475000 +v -1.253682 0.585590 -4.500000 +v -1.074534 0.635745 -4.475000 +v -1.103985 0.564645 -4.494147 +v -1.122756 0.545874 -4.500000 +v -2.092910 -0.437012 -4.500000 +v -2.185886 -0.474999 -4.475000 +v -2.234142 -0.315920 -4.475000 +v -2.135589 -0.296317 -4.500000 +v -2.250484 -0.149999 -4.475000 +v -2.150000 -0.149999 -4.500000 +v -1.047392 0.621238 -4.475000 +v -2.234142 0.015922 -4.000000 +v -2.234142 0.015922 -3.984079 +v -2.185745 0.175467 -3.824534 +v -2.185745 0.175467 -4.000000 +v -2.107152 0.322504 -4.000000 +v -2.107152 0.322504 -3.800000 +v -2.001383 0.451384 -3.800000 +v -2.001383 0.451384 -4.000000 +v -1.872504 0.557152 -3.800000 +v -1.872504 0.557152 -4.000000 +v -1.725466 0.635745 -3.800000 +v -1.725466 0.635745 -4.000000 +v -1.565922 0.684143 -3.800000 +v -1.565922 0.684143 -4.000000 +v -1.400000 0.700485 -3.800000 +v -1.400000 0.700485 -4.000000 +v -1.234079 0.684143 -3.800000 +v -1.234079 0.684143 -4.000000 +v -1.074534 0.635745 -3.800000 +v -1.074534 0.635745 -4.000000 +v -1.047392 0.621238 -3.800000 +v -1.047392 0.621238 -4.000000 +v -2.235707 0.000034 -3.999967 +v -2.059242 -0.499999 -4.500000 +v -1.900000 0.405222 -3.594779 +v -1.900000 0.500001 -3.500000 +v -1.900000 0.405222 -3.500000 +v -0.750000 0.600001 -5.000000 +v -0.750000 0.600001 -5.100000 +v -0.735589 0.453683 -5.100000 +v -0.735589 0.453683 -5.000000 +v -0.692910 0.312988 -5.100000 +v -0.692910 0.312988 -5.000000 +v -0.623602 0.183323 -5.100000 +v -0.623602 0.183323 -5.000000 +v -0.530330 0.069671 -5.100000 +v -0.530330 0.069671 -5.000000 +v -0.416678 -0.023601 -5.100000 +v -0.416678 -0.023601 -5.000000 +v -0.287013 -0.092909 -5.100000 +v -0.287013 -0.092909 -5.000000 +v -0.146318 -0.135588 -5.100000 +v -0.146318 -0.135588 -5.000000 +v 0.000000 -0.149999 -5.000000 +v 0.000000 -0.149999 -5.100000 +v -0.146318 1.335590 -5.000000 +v -0.146318 1.335590 -5.100000 +v -0.287013 1.292910 -5.100000 +v -0.287013 1.292910 -5.000000 +v -0.416678 1.223603 -5.100000 +v -0.416678 1.223603 -5.000000 +v -0.530330 1.130331 -5.100000 +v -0.530330 1.130331 -5.000000 +v -0.623602 1.016678 -5.100000 +v -0.623602 1.016678 -5.000000 +v -0.692910 0.887013 -5.100000 +v -0.692910 0.887013 -5.000000 +v -0.735589 0.746319 -5.100000 +v -0.735589 0.746319 -5.000000 +v -0.735589 0.453683 -5.200000 +v -0.686312 0.463485 -5.200000 +v -0.697798 0.600001 -5.200000 +v -0.748040 0.600001 -5.200000 +v -0.644681 0.332965 -5.200000 +v -0.623602 0.183323 -5.200000 +v -0.581828 0.211236 -5.200000 +v -0.691099 0.313738 -5.200000 +v -0.493418 0.106583 -5.200000 +v -0.416678 -0.023601 -5.200000 +v -0.388765 0.018173 -5.200000 +v -0.528944 0.071057 -5.200000 +v -0.267036 -0.044680 -5.200000 +v -0.146318 -0.135588 -5.200000 +v -0.136516 -0.086312 -5.200000 +v -0.286262 -0.091098 -5.200000 +v -0.623602 1.016678 -5.200000 +v -0.581828 0.988766 -5.200000 +v -0.493418 1.093418 -5.200000 +v -0.528944 1.128945 -5.200000 +v -0.644681 0.867036 -5.200000 +v -0.333342 1.098883 -5.600000 +v -0.416678 1.223603 -5.200000 +v -0.588471 0.717055 -5.600000 +v -0.598040 0.600001 -5.600000 +v -0.735589 0.746319 -5.200000 +v -0.500201 0.500505 -5.600000 +v -0.588471 0.482947 -5.600000 +v -0.424049 0.316660 -5.600000 +v -0.359238 0.240763 -5.600000 +v -0.422878 0.177123 -5.600000 +v -0.498882 0.266659 -5.600000 +v -0.283341 0.175951 -5.600000 +v -0.333342 0.101119 -5.600000 +v -0.099496 0.099800 -5.600000 +v 0.000000 0.091961 -5.600000 +v -0.117054 0.011530 -5.600000 +v -0.354176 1.130063 -5.200000 +v -0.449394 1.049395 -5.200000 +v -0.283341 1.024050 -5.600000 +v -0.530062 0.954177 -5.200000 +v -0.587162 0.843211 -5.200000 +v -0.424049 0.883342 -5.600000 +v -0.625251 0.724371 -5.200000 +v -0.635540 0.600001 -5.200000 +v -0.508040 0.600001 -5.600000 +v -0.500201 0.699497 -5.600000 +v -0.465873 0.507333 -5.000000 +v -0.406162 0.513214 -5.050000 +v -0.406162 0.513214 -5.000000 +v -0.092668 1.065874 -5.000000 +v -0.086787 1.006163 -5.050000 +v -0.086787 1.006163 -5.000000 +v -0.263896 0.994949 -5.000000 +v -0.225832 0.948568 -5.050000 +v -0.263896 0.994949 -5.100000 +v -0.394948 0.863897 -5.000000 +v -0.348567 0.825833 -5.050000 +v -0.348567 0.825833 -5.000000 +v -0.465873 0.692669 -5.000000 +v -0.406162 0.686788 -5.050000 +v -0.465873 0.692669 -5.100000 +v -0.394948 0.863897 -5.100000 +v -0.092668 1.065874 -5.100000 +v -0.335876 0.264125 -5.100000 +v -0.394948 0.336105 -5.100000 +v -0.348567 0.374169 -5.050000 +v -0.293244 0.306757 -5.050000 +v -0.465873 0.507333 -5.100000 +v -0.225832 0.251433 -5.050000 +v -0.263896 0.205053 -5.100000 +v 0.000000 0.185291 -5.000000 +v 0.086787 0.193839 -5.000000 +v 0.086787 0.193839 -5.050000 +v 0.000000 0.185291 -5.050000 +v -0.086787 0.193839 -5.050000 +v -0.086787 0.193839 -5.000000 +v -0.225832 0.948568 -5.000000 +v -0.406162 0.686788 -5.000000 +v -0.286262 1.291099 -5.200000 +v -0.228860 1.152518 -5.600000 +v -0.267036 1.244682 -5.200000 +v -0.691099 0.886263 -5.200000 +v -0.552517 0.828861 -5.600000 +v -0.552517 0.371141 -5.600000 +v -0.469367 0.405583 -5.600000 +v -0.228860 0.047484 -5.600000 +v -0.194418 0.130633 -5.600000 +v -0.194418 1.069368 -5.600000 +v -0.243210 1.187163 -5.200000 +v -0.359238 0.959239 -5.600000 +v -0.469367 0.794419 -5.600000 +v -0.807452 0.947452 -3.500000 +v -0.904747 0.970554 -3.500000 +v -0.904746 0.970554 -4.300000 +v -0.807451 0.947452 -4.500000 +v -0.780588 1.060589 -4.500000 +v -0.877883 1.083691 -4.300000 +v -0.877884 1.083691 -3.500000 +v -0.780589 1.060589 -3.500000 +v -0.824158 1.309965 -4.300000 +v -0.851021 1.196828 -4.300000 +v -0.851021 1.196828 -3.500000 +v -0.824158 1.309965 -3.500000 +v -1.732744 0.867257 -3.500000 +v -1.732744 0.867257 -3.470000 +v -1.659434 0.940567 -3.470000 +v -1.659434 0.940567 -3.500000 +v -1.753380 1.034513 -3.212447 +v -1.732807 1.013941 -3.243326 +v -1.806117 0.940631 -3.243326 +v -1.826690 0.961203 -3.212447 +v -1.460140 1.327753 -3.212447 +v -1.439567 1.307181 -3.243326 +v -1.512877 1.233871 -3.243326 +v -1.533450 1.254443 -3.212447 +v -1.736673 1.017806 -3.426947 +v -1.707123 0.988256 -3.470000 +v -1.780433 0.914946 -3.470000 +v -1.809983 0.944496 -3.426947 +v -1.633813 1.061566 -3.470000 +v -1.560503 1.134876 -3.470000 +v -1.512814 1.087187 -3.470000 +v -1.586124 1.013877 -3.470000 +v -1.590053 1.164426 -3.426947 +v -1.663363 1.091116 -3.426947 +v -1.659497 1.087251 -3.243326 +v -1.586187 1.160561 -3.243326 +v -1.487193 1.208186 -3.470000 +v -1.413883 1.281496 -3.470000 +v -1.366194 1.233807 -3.470000 +v -1.439504 1.160497 -3.470000 +v -1.006340 0.660016 -4.898302 +v -0.935263 0.589673 -4.898145 +v -0.876947 0.649009 -4.898145 +v -0.948023 0.719352 -4.898302 +v -1.049202 0.617586 -4.711698 +v -1.007107 0.660201 -4.651698 +v -0.936031 0.589859 -4.651541 +v -0.978125 0.547243 -4.711541 +v -0.877016 0.649077 -4.651541 +v -0.948092 0.719420 -4.651698 +v -0.905794 0.761974 -4.711698 +v -0.834718 0.691631 -4.711541 +v -1.564224 -0.176317 5.922353 +v -1.564224 -0.226317 5.922353 +v -1.606897 -0.226317 5.922353 +v -1.606897 -0.176317 5.922353 +v -1.636897 -0.176317 5.892354 +v -1.636897 -0.226317 5.892354 +v -1.636897 -0.226317 5.814866 +v -1.636897 -0.176317 5.814866 +v -1.606897 -0.176317 6.042459 +v -1.606897 -0.226317 6.042459 +v -1.564224 -0.226317 6.042459 +v -1.564224 -0.176317 6.042459 +v -1.534224 -0.176317 6.072460 +v -1.534224 -0.226317 6.072460 +v -1.534224 -0.226317 6.149947 +v -1.534224 -0.176317 6.149947 +v -1.564224 -0.176317 6.179947 +v -1.564224 -0.226317 6.179947 +v -1.606897 -0.226317 6.179947 +v -1.606897 -0.176317 6.179947 +v -1.636897 -0.176317 6.149947 +v -1.636897 -0.226317 6.149947 +v -1.636897 -0.226317 6.072460 +v -1.636897 -0.176317 6.072460 +v -1.564224 -0.226317 5.784866 +v -1.534224 -0.226317 5.814866 +v -1.534224 -0.176317 5.814866 +v -1.564224 -0.176317 5.784866 +v -1.514709 -1.000001 4.991346 +v -1.514709 -0.950001 4.991346 +v -1.619709 -0.950001 4.991346 +v -1.619709 -1.000001 4.991346 +v -1.679709 -1.000001 5.051346 +v -1.679709 -0.950001 5.051346 +v -1.679709 -0.950001 5.206346 +v -1.679709 -1.000001 5.206346 +v -1.454709 -0.950001 5.206346 +v -1.454709 -1.000001 5.206346 +v -1.514709 -1.000001 5.266346 +v -1.514709 -0.950001 5.266346 +v -1.500000 -0.176316 3.118816 +v -1.671121 -0.176316 3.118816 +v -1.671121 -0.176316 3.276093 +v -1.500000 -0.176316 3.276093 +v -1.234418 0.732974 3.276093 +v -0.942209 0.732998 3.276093 +v -0.942209 0.732998 3.118816 +v -1.234418 0.732983 3.118816 +v -1.842780 -0.419079 3.276093 +v -1.842780 -0.419079 3.383370 +v -1.842780 -0.245874 3.383370 +v -1.842780 -0.245874 3.276093 +v -1.500000 -0.176316 3.590647 +v -1.500000 0.467044 3.590647 +v -1.500000 0.467034 3.433370 +v -1.500000 -0.176316 3.433370 +v -1.234418 0.732955 3.590647 +v -0.942209 0.732998 3.590647 +v -0.942209 0.732998 3.433370 +v -1.234418 0.732964 3.433370 +v -0.942209 0.832997 3.590647 +v -1.275882 0.832948 3.590649 +v -1.275882 0.832941 3.697926 +v -0.942209 0.832997 3.697924 +v -1.234418 0.732945 3.747924 +v -1.500000 0.467053 3.747924 +v -1.500000 0.467063 3.905201 +v -1.234418 0.732936 3.905201 +v -1.500000 -0.176316 3.747924 +v -1.671121 -0.176316 3.747924 +v -1.671121 -0.176316 3.905201 +v -1.500000 -0.176316 3.905201 +v -0.942209 0.832997 3.905201 +v -1.275880 0.832926 3.905203 +v -1.275880 0.832920 4.012480 +v -0.942209 0.832997 4.012478 +v -1.842780 -0.419080 3.905201 +v -1.842780 -0.419080 4.012478 +v -1.842780 -0.245875 4.012478 +v -1.842780 -0.245875 3.905201 +v -1.234418 0.732926 4.062478 +v -1.500000 0.467072 4.062478 +v -1.500000 0.467082 4.219755 +v -1.234418 0.732916 4.219755 +v -1.500000 -0.176316 4.062478 +v -1.671121 -0.176316 4.062478 +v -1.671121 -0.176316 4.219755 +v -1.500000 -0.176316 4.219755 +v -0.942209 0.832997 4.219755 +v -1.275879 0.832904 4.219757 +v -1.275879 0.832898 4.327034 +v -0.942209 0.832997 4.327032 +v -1.500000 -0.176317 4.534309 +v -1.500000 0.467101 4.534309 +v -1.500000 0.467091 4.377032 +v -1.500000 -0.176316 4.377032 +v -1.234418 0.732897 4.534309 +v -0.942209 0.732998 4.534309 +v -0.942209 0.732998 4.377032 +v -1.234418 0.732907 4.377032 +v -1.842780 -0.419080 4.534309 +v -1.842780 -0.419080 4.641586 +v -1.842780 -0.245875 4.641586 +v -1.842780 -0.245875 4.534309 +v -1.275885 0.832992 2.961540 +v -1.600000 0.508383 2.961539 +v -1.600000 0.508390 3.068815 +v -1.275885 0.832985 3.068818 +v -1.275883 0.832970 3.276095 +v -1.600000 0.508406 3.276093 +v -1.600000 0.508413 3.383370 +v -1.275883 0.832963 3.383372 +v -1.275877 0.832882 4.534311 +v -1.600000 0.508500 4.534309 +v -1.600000 0.508506 4.641586 +v -1.275877 0.832876 4.641588 +v -1.600000 0.046568 2.961539 +v -1.842780 -0.245874 2.961539 +v -1.842780 -0.245874 3.068815 +v -1.600000 0.046568 3.068815 +v -1.600000 0.046568 3.590647 +v -1.842780 -0.245874 3.590647 +v -1.842780 -0.245874 3.697924 +v -1.600000 0.046568 3.697924 +v -1.600000 0.046568 3.905201 +v -1.600000 0.046568 4.012478 +v -1.600000 0.508460 4.012478 +v -1.600000 0.508453 3.905201 +v -1.600000 0.046568 4.219755 +v -1.600000 0.046568 4.327032 +v -1.600000 0.508483 4.327032 +v -1.600000 0.508476 4.219755 +v -1.255148 0.782881 4.691588 +v -0.942209 0.782997 4.691586 +v -0.942209 0.832997 4.641586 +v -1.550000 0.028518 4.691586 +v -1.550000 0.487809 4.691586 +v -1.600000 0.046568 4.641586 +v -1.842780 -0.419079 3.068815 +v -1.792780 -0.348369 3.118816 +v -1.792780 -0.263924 3.118815 +v -1.842780 -0.419080 3.697924 +v -1.792780 -0.348369 3.747924 +v -1.792780 -0.263924 3.747924 +v -1.600000 0.508436 3.697924 +v -1.550000 0.487746 3.747924 +v -1.255150 0.782942 3.747926 +v -1.550000 0.487767 4.062478 +v -1.255149 0.782922 4.062479 +v -1.550000 0.487788 4.377032 +v -1.255149 0.782901 4.377034 +v -1.842780 -0.245875 4.327032 +v -1.842780 -0.419080 4.327032 +v -1.792780 -0.348369 4.377032 +v -1.792780 -0.263924 4.377032 +v -1.792780 -0.263924 3.433370 +v -1.550000 0.028518 3.433370 +v -1.600000 0.046568 3.383370 +v -1.255151 0.782963 3.433372 +v -0.942209 0.782997 3.433370 +v -0.942209 0.832997 3.383370 +v -1.550000 0.028518 3.118815 +v -1.550000 0.487703 3.118815 +v -1.255152 0.782983 3.118817 +v -0.942209 0.782997 3.118816 +v -0.942209 0.832998 3.068816 +v -1.792780 -0.263924 4.062478 +v -1.550000 0.028518 4.062478 +v -0.942209 1.098302 1.288217 +v -1.278605 1.212365 0.956326 +v -1.278605 1.112454 0.952120 +v -1.900000 0.590963 0.956326 +v -1.900000 0.490429 1.052717 +v -1.800000 0.490310 1.052712 +v -1.800000 0.590958 0.955373 +v -1.900000 0.300000 2.210000 +v -1.840000 0.300000 2.210000 +v -1.840000 0.300000 2.310000 +v -1.900000 0.300000 2.310000 +v -1.840000 0.190000 2.160000 +v -1.900000 0.190000 2.160000 +v -1.900000 0.140000 2.210000 +v -1.840000 0.140000 2.210000 +v -1.840000 0.140000 2.310000 +v -1.900000 0.140000 2.310000 +v -1.900000 0.190000 2.360000 +v -1.840000 0.190000 2.360000 +v -0.398918 -0.176317 8.300000 +v -0.398918 -0.176317 8.600000 +v -0.398918 -0.250767 8.527691 +v -0.398918 -0.250767 8.227691 +v -0.547837 -0.250767 8.227691 +v -0.547837 -0.250767 8.527691 +v -0.547837 -0.176317 8.600000 +v -0.547837 -0.176317 8.300000 +v -0.696755 -0.176317 8.300000 +v -0.696755 -0.176317 8.600000 +v -0.696755 -0.250767 8.527691 +v -0.696755 -0.250767 8.227691 +v -0.845674 -0.250767 8.227691 +v -0.845674 -0.250767 8.527691 +v -0.845674 -0.176317 8.600000 +v -0.845674 -0.176317 8.300000 +v -0.994592 -0.176317 8.300000 +v -0.994592 -0.176317 8.600000 +v -0.994592 -0.250767 8.527691 +v -0.994592 -0.250767 8.227691 +v -1.143510 -0.250767 8.227691 +v -1.143510 -0.250767 8.527691 +v -1.143510 -0.176317 8.600000 +v -1.143510 -0.176317 8.300000 +v -1.500000 0.467110 4.691586 +v -1.500000 -0.176317 4.691586 +v -0.250000 0.532790 6.486244 +v -0.300000 0.532790 6.486244 +v -0.300000 0.532790 6.672488 +v -0.250000 0.532790 6.672488 +v -0.542209 0.732790 6.672488 +v -0.492209 0.682790 6.672488 +v -0.492209 0.682790 6.486244 +v -0.250000 0.532790 6.858732 +v -0.300000 0.532790 6.858732 +v -0.300000 0.532790 7.044976 +v -0.250000 0.532790 7.044976 +v -0.542209 0.732790 7.044976 +v -0.492209 0.682790 7.044976 +v -0.492209 0.682790 6.858732 +v -0.542209 0.732790 6.858732 +v -0.250000 0.532790 7.231220 +v -0.300000 0.532790 7.231220 +v -0.300000 0.532790 7.417464 +v -0.250000 0.532790 7.417464 +v -0.542209 0.732790 7.417464 +v -0.492209 0.682790 7.417464 +v -0.492209 0.682790 7.231220 +v -0.542209 0.732790 7.231220 +v -0.250000 0.532790 7.603708 +v -0.300000 0.532790 7.603708 +v -0.300000 0.532790 7.789952 +v -0.250000 0.532790 7.789952 +v -0.250000 0.532790 7.976196 +v -0.300000 0.532790 7.976196 +v -0.300000 0.532790 8.162440 +v -0.250000 0.532790 8.162440 +v -0.542209 0.732790 8.162440 +v -0.492209 0.682790 8.162440 +v -0.492209 0.682790 7.976196 +v -0.542209 0.732790 7.976196 +v -0.370711 0.682790 6.672488 +v -0.300000 0.612079 6.672488 +v -0.300000 0.612079 6.486244 +v -0.370711 0.682790 6.486244 +v -0.300000 0.612079 6.858732 +v -0.370711 0.682790 6.858732 +v -0.370711 0.682790 7.044976 +v -0.300000 0.612079 7.044976 +v -0.300000 0.612079 7.231220 +v -0.370711 0.682790 7.231220 +v -0.370711 0.682790 7.417464 +v -0.300000 0.612079 7.417464 +v -0.300000 0.612079 7.976196 +v -0.370711 0.682790 7.976196 +v -0.370711 0.682790 8.162440 +v -0.300000 0.612079 8.162440 +v -0.492209 0.682790 7.603708 +v -0.492209 0.682790 7.789952 +v -0.370711 0.682790 7.789952 +v -0.370711 0.682790 7.603708 +v -0.250000 -0.250767 6.227691 +v -0.350000 -0.250767 6.227691 +v -0.350000 -0.250767 8.227691 +v -0.250000 -0.250767 8.227691 +v -0.250000 -0.176317 8.871547 +v -0.150000 -0.105607 8.700836 +v -0.150000 0.396603 8.198627 +v -0.250000 0.467314 8.227916 +v -0.250000 0.467314 7.669184 +v -0.150000 0.396603 7.739894 +v -0.150000 -0.105606 8.242105 +v -0.250000 -0.176317 8.312815 +v -0.250000 -0.176317 7.940327 +v -0.150000 -0.105606 7.769616 +v -0.150000 0.396603 7.267406 +v -0.250000 0.467314 7.296696 +v -0.250000 0.467314 6.737964 +v -0.150000 0.396604 6.808674 +v -0.150000 -0.105606 7.310884 +v -0.250000 -0.176317 7.381595 +v -1.369519 -0.250767 8.227691 +v -1.400000 -0.176317 8.300000 +v -1.400000 -0.176317 6.300000 +v -1.369519 -0.250767 6.227691 +v 1.900000 -0.999999 -4.500000 +v 2.300000 -0.867157 -4.500000 +v 2.300000 0.500001 -3.500000 +v 1.900000 -0.500000 2.500000 +v 1.900000 0.429490 2.500000 +v 3.664509 -0.900000 -1.360176 +v 3.205491 -0.939999 -3.214509 +v 3.205491 -0.939999 -3.264509 +v 3.205491 -1.059999 -3.214509 +v 3.205491 -1.059999 -3.264509 +v 1.900000 0.500000 0.825402 +v 1.900000 0.500000 -1.271277 +v 4.114653 -0.999999 -4.500000 +v 3.500000 -0.867157 -4.500000 +v 2.300000 0.500000 -1.585638 +v 2.300000 -0.499999 -4.500000 +v 3.100000 -0.867157 -4.500000 +v 2.700000 -0.867157 -4.500000 +v 2.300000 0.800000 -2.385638 +v 2.700000 0.500000 -1.585638 +v 3.100000 0.500000 -1.585638 +v 3.500000 0.500000 -1.585638 +v 3.100000 0.800000 -2.385638 +v 2.700000 0.800000 -2.385638 +v 3.500000 0.800000 -2.385638 +v 3.166421 -0.440735 -4.800000 +v 3.166421 -0.440735 -4.700000 +v 2.593579 -0.400735 -4.800000 +v 2.593579 -0.400735 -4.700000 +v 2.593579 -0.533578 -4.800000 +v 2.593579 -0.533578 -4.700000 +v 3.433579 -0.440735 -4.800000 +v 3.433579 -0.440735 -4.700000 +v 2.373472 -0.168930 -4.634616 +v 2.373472 -0.239640 -4.563905 +v 2.566528 -0.353072 -4.677337 +v 2.566528 -0.282361 -4.748047 +v 1.900000 -1.000001 4.576923 +v 3.194252 -0.900000 -0.712636 +v 3.135491 -0.900000 -0.731722 +v 2.620000 -0.625076 -4.621475 +v 2.620000 -0.699756 -4.687980 +v 3.180000 -0.692719 -4.545516 +v 3.180000 -0.767400 -4.612020 +v 3.350000 -0.653203 -4.740256 +v 3.350000 -0.578523 -4.673751 +v 2.450000 -0.739273 -4.493239 +v 2.450000 -0.813953 -4.559744 +v 0.406066 1.204462 1.144028 +v 0.150000 1.200000 1.250000 +v -0.150000 1.200000 1.250000 +v 0.200000 1.900001 -3.500000 +v 1.496956 0.394364 2.893893 +v 0.250000 -0.825001 5.669968 +v 0.250000 -0.825001 7.669968 +v 0.942209 0.732997 4.883173 +v 0.942209 0.940183 4.691586 +v 1.225543 -0.361084 7.935561 +v 0.507572 -0.361084 7.935561 +v 0.250000 -1.000001 5.500000 +v 1.000000 -0.999999 -5.250000 +v 1.000000 -0.809999 -5.000000 +v 2.250000 -0.999999 -3.800000 +v 1.900000 -0.999999 -3.800000 +v 1.900000 -1.249999 -3.800000 +v 1.900000 -0.999999 -3.566667 +v 1.900000 -1.249999 -3.566667 +v 2.250000 -0.999999 -3.566667 +v 1.900000 -1.250000 -2.866667 +v 1.900000 -1.250000 -2.633334 +v 2.250000 -1.000000 -2.633334 +v 2.250000 -1.000000 -2.866667 +v 1.900000 -1.000000 -2.400000 +v 1.900000 -1.000000 -2.166667 +v 1.250000 -1.500000 -2.000000 +v 1.650000 -1.000000 2.730769 +v 1.650000 -1.200000 2.130769 +v 1.650000 -1.000000 -0.000000 +v 1.650000 -1.500000 -2.000000 +v 1.650000 -1.200000 -0.000000 +v 1.650000 -1.700000 -2.000000 +v 1.350000 -1.700000 -2.000000 +v 1.350000 -1.200000 -0.000000 +v 1.250000 -1.000000 -0.000000 +v 1.350000 -1.200000 2.130769 +v 0.700000 1.387893 -3.212447 +v 0.700000 1.375785 -2.924894 +v 0.700000 1.363678 -2.637341 +v 0.700000 1.351570 -2.349789 +v 0.700000 1.577355 -1.774683 +v 0.700000 1.589463 -2.062236 +v 0.700000 1.266818 -0.336919 +v 0.700000 1.254710 -0.049367 +v 1.050000 1.327355 -1.774683 +v 1.050000 1.339463 -2.062236 +v 1.250000 -1.000000 2.730769 +v 2.099758 -0.149999 -5.100000 +v 2.086313 -0.013483 -5.100000 +v 2.086313 -0.286515 -5.100000 +v 1.981828 -0.538764 -5.100000 +v 1.894804 -0.644803 -5.100000 +v 1.667786 -0.796491 -5.100000 +v 1.263484 -0.836312 -5.100000 +v 1.132214 -0.796491 -5.100000 +v 0.818172 -0.538764 -5.100000 +v 0.753508 -0.417785 -5.100000 +v 0.700242 -0.149999 -5.100000 +v 0.753508 0.117787 -5.100000 +v 0.905196 0.344805 -5.100000 +v 1.132214 0.496493 -5.100000 +v 1.400000 0.549759 -5.100000 +v 1.536516 0.536313 -5.100000 +v 1.788765 0.431828 -5.100000 +v 1.894804 0.344805 -5.100000 +v 1.981828 0.238766 -5.100000 +v 0.993838 -0.063212 -5.050000 +v 0.934127 -0.057331 -5.000000 +v 0.934127 -0.242667 -5.100000 +v 0.993838 -0.236786 -5.050000 +v 0.934127 -0.242667 -5.000000 +v 1.625832 -0.498567 -5.000000 +v 1.625832 -0.498567 -5.050000 +v 1.663896 -0.544947 -5.000000 +v 1.794948 -0.413895 -5.100000 +v 1.748567 -0.375831 -5.050000 +v 1.794948 -0.413895 -5.000000 +v 1.806162 -0.236786 -5.000000 +v 1.806162 -0.236786 -5.050000 +v 1.865873 -0.242667 -5.000000 +v 1.900200 -0.050503 -5.600000 +v 1.908040 -0.149999 -5.600000 +v 2.035540 -0.149999 -5.200000 +v 2.025251 -0.025629 -5.200000 +v 1.683341 0.274050 -5.600000 +v 1.849394 0.299395 -5.200000 +v 1.754176 0.380063 -5.200000 +v 0.899800 -0.050503 -5.600000 +v 0.812838 0.093211 -5.200000 +v 0.774749 -0.025629 -5.200000 +v 0.975950 -0.433340 -5.600000 +v 0.812838 -0.393210 -5.200000 +v 0.869938 -0.504175 -5.200000 +v 1.116659 -0.574049 -5.600000 +v 1.040762 -0.509237 -5.600000 +v 0.950606 -0.599394 -5.200000 +v 1.045824 -0.680061 -5.200000 +v 1.683341 -0.574049 -5.600000 +v 1.594418 -0.619367 -5.600000 +v 1.643211 -0.737161 -5.200000 +v 1.754176 -0.680061 -5.200000 +v 1.824049 -0.433340 -5.600000 +v 1.759238 -0.509237 -5.600000 +v 1.849394 -0.599394 -5.200000 +v 1.930062 -0.504175 -5.200000 +v 1.898882 0.183343 -5.600000 +v 1.824049 0.133342 -5.600000 +v 1.517054 0.438472 -5.600000 +v 1.499496 0.350201 -5.600000 +v 1.282946 0.438472 -5.600000 +v 1.300504 0.350201 -5.600000 +v 1.066658 0.348883 -5.600000 +v 1.171140 0.402518 -5.600000 +v 1.205582 0.319368 -5.600000 +v 1.116659 0.274050 -5.600000 +v 0.901118 0.183343 -5.600000 +v 0.975950 0.133342 -5.600000 +v 0.811529 -0.267053 -5.600000 +v 0.891960 -0.149999 -5.600000 +v 0.899800 -0.249495 -5.600000 +v 1.282946 -0.738470 -5.600000 +v 1.171140 -0.702516 -5.600000 +v 1.205582 -0.619367 -5.600000 +v 1.300504 -0.650200 -5.600000 +v 1.517054 -0.738470 -5.600000 +v 1.499496 -0.650200 -5.600000 +v 1.988471 -0.267053 -5.600000 +v 1.900200 -0.249495 -5.600000 +v 2.135589 -0.003681 -5.200000 +v 1.998040 -0.149999 -5.600000 +v 1.988471 -0.032945 -5.600000 +v 1.816678 0.473603 -5.200000 +v 1.733342 0.348883 -5.600000 +v 0.664411 -0.003681 -5.200000 +v 0.811529 -0.032945 -5.600000 +v 0.776398 -0.566677 -5.200000 +v 0.901118 -0.483341 -5.600000 +v 1.816678 -0.773601 -5.200000 +v 1.628860 -0.702516 -5.600000 +v 1.733342 -0.648881 -5.600000 +v 2.023602 -0.566677 -5.200000 +v 1.898882 -0.483341 -5.600000 +v 2.044681 0.117036 -5.200000 +v 1.928944 0.378945 -5.200000 +v 1.893418 0.343418 -5.200000 +v 1.981828 0.238766 -5.200000 +v 2.023602 0.266679 -5.200000 +v 1.667036 0.494682 -5.200000 +v 1.400000 0.598041 -5.200000 +v 1.536516 0.536313 -5.200000 +v 1.546318 0.585590 -5.200000 +v 1.400000 0.547799 -5.200000 +v 1.263484 0.536313 -5.200000 +v 1.253682 0.585590 -5.200000 +v 1.132964 0.494682 -5.200000 +v 1.113738 0.541099 -5.200000 +v 0.871056 0.378945 -5.200000 +v 1.011235 0.431828 -5.200000 +v 0.983322 0.473603 -5.200000 +v 0.906582 0.343418 -5.200000 +v 0.708901 0.136263 -5.200000 +v 0.755319 0.117036 -5.200000 +v 0.818172 0.238766 -5.200000 +v 2.234142 0.015922 -4.475000 +v 2.250484 -0.149999 -4.475000 +v 2.185745 0.175467 -4.475000 +v 2.107152 0.322504 -4.475000 +v 2.001383 0.451384 -4.475000 +v 1.872504 0.557152 -4.475000 +v 1.725466 0.635745 -4.475000 +v 1.565921 0.684143 -4.475000 +v 1.400000 0.700485 -4.475000 +v 1.234079 0.684143 -4.475000 +v 2.185886 -0.474999 -4.475000 +v 2.234142 -0.315920 -4.475000 +v 2.092910 0.137013 -4.025000 +v 2.135589 -0.003682 -4.025000 +v 2.023602 0.266678 -4.025000 +v 2.023602 0.266678 -3.775000 +v 2.045880 0.225001 -3.775000 +v 1.930330 0.380331 -4.025000 +v 1.816678 0.473603 -4.025000 +v 1.687013 0.542910 -4.025000 +v 1.546318 0.585590 -4.025000 +v 1.400000 0.600001 -4.025000 +v 1.253683 0.585590 -4.025000 +v 2.137689 -0.024999 -4.025000 +v 1.930330 0.380331 -3.775000 +v 1.816678 0.473603 -3.775000 +v 1.687013 0.542910 -3.775000 +v 1.546318 0.585590 -3.775000 +v 1.400000 0.600001 -3.775000 +v 1.253683 0.585590 -3.775000 +v 1.103985 0.564644 -3.780853 +v 1.122756 0.545874 -3.775000 +v 1.103985 0.564644 -4.019147 +v 1.103985 0.564645 -4.494147 +v 1.047392 0.621238 -4.475000 +v 1.074534 0.635745 -4.475000 +v 1.122756 0.545874 -4.025000 +v 0.699758 0.600001 -5.100000 +v 0.686312 0.736517 -5.100000 +v 0.686312 0.463485 -5.100000 +v 0.646492 0.332215 -5.100000 +v 0.581828 0.211236 -5.100000 +v 0.494804 0.105197 -5.100000 +v 0.388765 0.018173 -5.100000 +v 0.267786 -0.046491 -5.100000 +v 0.136516 -0.086312 -5.100000 +v 0.136516 1.286313 -5.100000 +v 0.000000 1.299759 -5.100000 +v 0.267786 1.246493 -5.100000 +v 0.388765 1.181828 -5.100000 +v 0.494804 1.094805 -5.100000 +v 0.581828 0.988766 -5.100000 +v 0.646492 0.867787 -5.100000 +v 0.498882 0.266659 -5.600000 +v 0.552517 0.371141 -5.600000 +v 0.333342 0.101119 -5.600000 +v 0.422878 0.177123 -5.600000 +v 0.333342 1.098883 -5.600000 +v 0.422878 1.022879 -5.600000 +v 0.498882 0.933343 -5.600000 +v 0.625251 0.724371 -5.200000 +v 0.465873 0.507333 -5.000000 +v 0.465873 0.507333 -5.100000 +v 0.092668 0.134128 -5.000000 +v 0.465873 0.692669 -5.000000 +v 0.686312 0.463485 -5.200000 +v 0.465873 0.692669 -5.100000 +v 0.092668 0.134128 -5.100000 +v 0.335876 0.264125 -5.100000 +v 0.293244 0.306757 -5.050000 +v 0.293244 0.893245 -5.000000 +v 0.293244 0.893245 -5.050000 +v 0.000000 1.198041 -5.600000 +v 0.824158 1.309965 -3.500000 +v 0.851021 1.196828 -3.500000 +v 1.366194 1.233807 -3.500000 +v 1.439504 1.160497 -3.500000 +v 1.516743 1.237736 -3.426947 +v 1.443433 1.311046 -3.426947 +v 0.935263 0.589673 -4.898145 +v 1.006340 0.660016 -4.898302 +v 0.936031 0.589859 -4.651541 +v 1.007107 0.660201 -4.651698 +v 1.636897 -0.176317 5.892354 +v 1.636897 -0.226317 5.892354 +v 1.564224 -0.176317 5.784866 +v 1.564224 -0.226317 5.784866 +v 1.514709 -0.950001 4.991346 +v 1.514709 -1.000001 4.991346 +v 1.514709 -1.000001 5.266346 +v 1.514709 -0.950001 5.266346 +v 1.500000 -0.176317 4.691586 +v 1.500000 0.467015 3.118816 +v 1.500000 0.467025 3.276093 +v 1.671121 -0.176316 3.590647 +v 1.671121 -0.176316 3.433370 +v 0.942209 0.732998 3.747924 +v 0.942209 0.732998 3.905201 +v 1.671121 -0.176316 4.219755 +v 1.671121 -0.176316 4.062478 +v 1.671121 -0.176317 4.534309 +v 1.671121 -0.176316 4.377032 +v 1.600000 0.508406 3.276093 +v 1.600000 0.046568 3.905201 +v 1.600000 0.508500 4.534309 +v 1.842780 -0.419080 4.534309 +v 1.842780 -0.419080 4.219755 +v 1.842780 -0.419079 3.276093 +v 0.942209 0.782997 4.691586 +v 1.255148 0.782881 4.691588 +v 0.942209 0.832997 3.590647 +v 0.942209 0.832997 3.905201 +v 0.942209 0.832997 4.219755 +v 0.942209 0.782997 3.118816 +v 1.600000 0.046568 3.590647 +v 1.255151 0.782963 3.433372 +v 1.792780 -0.263924 3.747924 +v 1.792780 -0.348369 3.747924 +v 1.792780 -0.348369 3.118816 +v 1.792780 -0.348369 4.062478 +v 1.550000 0.487767 4.062478 +v 1.400000 1.212365 0.956326 +v 1.415166 1.055879 0.952435 +v 1.743438 0.727529 0.954267 +v 1.900000 0.712365 0.956326 +v 1.143510 -0.250767 8.227691 +v 0.994592 -0.250767 8.227691 +v 1.500000 -0.176317 5.616635 +v 0.250000 0.732790 6.672488 +v 0.250000 0.732790 6.858732 +v 0.250000 0.732790 7.044976 +v 0.542209 0.732790 7.231220 +v 0.542209 0.732790 7.417464 +v 0.250000 0.532790 7.417464 +v 0.250000 0.532790 7.231220 +v 0.542209 0.732790 7.603708 +v 0.542209 0.732790 7.789952 +v 0.250000 0.532790 7.789952 +v 0.250000 0.532790 7.603708 +v 0.542209 0.732790 7.976196 +v 0.542209 0.732790 8.162440 +v 0.300000 0.612079 8.162440 +v 0.300000 0.612079 7.976196 +v 0.350000 -0.176317 8.300000 +v 0.350000 -0.176317 6.300000 +v -3.664509 -0.899999 -3.264509 +v -3.135491 -0.899999 -3.264509 +v -3.664509 -0.900000 -1.360176 +v -3.205491 -0.939999 -3.264509 +v -3.205491 -0.939999 -3.214509 +v -3.624509 -1.029999 -3.264509 +v -3.624509 -1.029999 -3.214509 +v -3.166421 -0.440735 -4.700000 +v -3.166421 -0.440735 -4.800000 +v -3.433579 -0.440735 -4.700000 +v -3.433579 -0.440735 -4.800000 +v -2.373472 -0.239935 -4.705621 +v -2.373472 -0.310645 -4.634910 +v -2.566528 -0.197214 -4.521479 +v -2.566528 -0.126503 -4.592189 +v -2.202025 -1.000000 2.274510 +v -1.900000 -1.000001 4.576923 +v -1.984940 -0.894000 5.436584 +v -1.984940 -0.894000 5.236585 +v -2.220892 -0.673455 5.060424 +v -2.220892 -0.673455 5.260425 +v -3.135491 -0.900000 -0.731722 +v -3.194252 -0.900000 -0.712636 +v -3.420000 -0.767400 -4.612020 +v -3.420000 -0.692719 -4.545516 +v -3.180000 -0.767400 -4.612020 +v -3.180000 -0.692719 -4.545516 +v -1.500000 -0.176317 5.958317 +v -1.500000 -0.176317 6.300000 +v -0.406066 1.204462 1.144028 +v -0.200000 1.900001 -3.500000 +v -1.671121 -0.176317 6.300000 +v -0.250000 -0.825001 5.669968 +v -0.250000 -1.000001 5.500000 +v -0.250000 -0.825001 7.669968 +v -1.292429 -0.325217 8.155381 +v -0.457571 -0.325217 8.155381 +v -0.542209 0.732998 2.883173 +v -0.542209 0.732997 4.591587 +v -1.000000 -0.809999 -5.000000 +v -1.000000 -0.999999 -5.250000 +v -2.250000 -0.999999 -3.800000 +v -2.250000 -0.999999 -3.566667 +v -1.900000 -1.249999 -3.566667 +v -1.900000 -1.249999 -3.800000 +v -1.900000 -0.999999 -3.333333 +v -1.900000 -1.000000 -3.100000 +v -1.900000 -1.000000 -2.866667 +v -1.900000 -1.000000 -2.633334 +v -1.900000 -1.000000 -1.933333 +v -1.900000 -1.000000 -1.700000 +v -1.650000 -1.500000 -2.000000 +v -1.250000 -1.000000 2.730769 +v -1.350000 -1.200000 2.130769 +v -1.650000 -1.700000 -2.000000 +v -1.250000 -1.500000 -2.000000 +v -1.250000 -1.000000 -0.000000 +v -1.350000 -1.200000 -0.000000 +v -1.350000 -1.700000 -2.000000 +v -1.650000 -1.000000 -0.000000 +v -1.650000 -1.200000 2.130769 +v -1.650000 -1.000000 2.730769 +v -1.650000 -1.200000 -0.000000 +v -0.700000 1.315248 -1.487130 +v -0.700000 1.303140 -1.199578 +v -0.700000 1.541033 -0.912025 +v -0.700000 1.528925 -0.624472 +v -0.700000 1.266818 -0.336919 +v -0.700000 1.254710 -0.049367 +v -1.050000 1.291033 -0.912025 +v -1.050000 1.278925 -0.624472 +v -1.930330 0.380331 -3.619670 +v -1.930330 0.380331 -3.775000 +v -2.023602 0.266678 -3.733322 +v -1.253682 0.585590 -3.500000 +v -1.253683 0.585590 -3.775000 +v -1.400000 0.600001 -3.775000 +v -1.400000 0.600001 -3.500000 +v -1.122756 0.545874 -3.500000 +v -1.122756 0.545874 -3.775000 +v -1.546318 0.585590 -3.775000 +v -1.546318 0.585590 -3.500000 +v -1.687013 0.542910 -3.775000 +v -1.687013 0.542910 -3.500000 +v -1.816678 0.473603 -3.775000 +v -1.816678 0.473603 -3.500000 +v -2.023602 -0.566677 -4.500000 +v -1.930330 -0.680329 -4.500000 +v -1.900000 -0.705221 -5.000000 +v -1.687013 -0.842909 -5.000000 +v -1.816678 -0.773601 -5.000000 +v -1.546318 -0.885588 -5.000000 +v -1.400000 -0.899999 -5.000000 +v -1.253682 -0.885588 -5.000000 +v -1.112987 -0.842909 -5.000000 +v -0.869670 -0.680329 -5.000000 +v -0.776398 -0.566677 -5.000000 +v -0.664411 -0.296317 -5.000000 +v -0.664411 -0.003681 -5.000000 +v -0.707090 0.137013 -5.000000 +v -0.776398 0.266678 -5.000000 +v -0.869670 0.380331 -5.000000 +v -0.982997 0.473336 -5.000000 +v -1.119703 0.544948 -5.000000 +v -1.981828 -0.538764 -5.200000 +v -1.893418 -0.643417 -5.200000 +v -0.818172 -0.538764 -5.200000 +v -0.713688 -0.013483 -5.200000 +v -1.788765 0.431828 -5.200000 +v -2.086313 -0.013483 -5.200000 +v -1.066658 -0.648881 -5.600000 +v -2.025251 -0.274369 -5.200000 +v -1.524370 -0.775250 -5.200000 +v -1.400000 -0.785539 -5.200000 +v -1.275630 -0.775250 -5.200000 +v -0.774749 -0.274369 -5.200000 +v -0.869938 0.204177 -5.200000 +v -0.950606 0.299395 -5.200000 +v -1.045824 0.380063 -5.200000 +v -1.156790 0.437163 -5.200000 +v -1.275630 0.475251 -5.200000 +v -1.400000 0.485541 -5.200000 +v -1.524370 0.475251 -5.200000 +v -1.930062 0.204177 -5.200000 +v -1.492668 -0.615872 -5.000000 +v -1.307332 -0.615872 -5.000000 +v -1.313213 -0.556161 -5.000000 +v -1.136104 -0.544947 -5.000000 +v -1.136104 -0.544947 -5.100000 +v -1.005052 -0.413895 -5.000000 +v -1.005052 0.113897 -5.000000 +v -1.136104 0.244949 -5.000000 +v -1.174168 0.198568 -5.000000 +v -1.735876 0.185877 -5.100000 +v -1.693244 0.143245 -5.050000 +v -1.400000 0.325001 -5.100000 +v -1.400000 0.264711 -5.050000 +v -0.925000 -0.149999 -5.100000 +v -0.985290 -0.149999 -5.050000 +v -1.005052 -0.413895 -5.100000 +v -1.875000 -0.149999 -5.100000 +v -1.814710 -0.149999 -5.050000 +v -1.693244 -0.443243 -5.000000 +v -1.693244 -0.443243 -5.050000 +v -1.486787 -0.556161 -5.000000 +v -1.051433 0.075833 -5.000000 +v -2.135589 -0.003682 -4.025000 +v -2.092910 0.137013 -4.025000 +v -2.137689 -0.024999 -4.025000 +v -2.023602 0.266678 -4.025000 +v -1.930330 0.380331 -4.025000 +v -2.023602 0.266678 -3.775000 +v -1.816678 0.473603 -4.025000 +v -1.687013 0.542910 -4.025000 +v -1.546318 0.585590 -4.025000 +v -1.400000 0.600001 -4.025000 +v -1.253683 0.585590 -4.025000 +v -1.103985 0.564644 -4.019147 +v -1.122756 0.545874 -4.025000 +v -2.045880 0.225001 -3.775000 +v -1.900000 -0.705221 -4.500000 +v -0.699758 0.600001 -5.100000 +v -0.686312 0.463485 -5.100000 +v -0.646492 0.332215 -5.100000 +v -0.581828 0.211236 -5.100000 +v -0.494804 0.105197 -5.100000 +v -0.388765 0.018173 -5.100000 +v -0.267786 -0.046491 -5.100000 +v -0.136516 -0.086312 -5.100000 +v 0.000000 -0.099757 -5.100000 +v -0.136516 1.286313 -5.100000 +v -0.267786 1.246493 -5.100000 +v -0.388765 1.181828 -5.100000 +v -0.494804 1.094805 -5.100000 +v -0.581828 0.988766 -5.100000 +v -0.646492 0.867787 -5.100000 +v -0.686312 0.736517 -5.100000 +v -0.146318 1.335590 -5.200000 +v -0.136516 1.286313 -5.200000 +v 0.000000 1.348040 -5.200000 +v -0.388765 1.181828 -5.200000 +v -0.686312 0.736517 -5.200000 +v -0.498882 0.933343 -5.600000 +v -0.625251 0.475631 -5.200000 +v -0.587162 0.356790 -5.200000 +v -0.530062 0.245825 -5.200000 +v -0.449394 0.150606 -5.200000 +v -0.354176 0.069939 -5.200000 +v -0.243210 0.012839 -5.200000 +v -0.124370 -0.025250 -5.200000 +v 0.000000 -0.035539 -5.200000 +v -0.124370 1.225251 -5.200000 +v -0.099496 1.100201 -5.600000 +v -0.394948 0.336105 -5.000000 +v -0.263896 0.205053 -5.000000 +v -0.225832 0.251433 -5.000000 +v -0.092668 0.134128 -5.000000 +v -0.092668 0.134128 -5.100000 +v -0.348567 0.374169 -5.000000 +v 0.000000 1.014711 -5.000000 +v 0.000000 1.014711 -5.050000 +v -0.293244 0.893245 -5.000000 +v -0.293244 0.893245 -5.050000 +v -0.414710 0.600001 -5.000000 +v -0.414710 0.600001 -5.050000 +v -0.422878 1.022879 -5.600000 +v -0.753726 1.173726 -3.500000 +v -0.753726 1.173727 -4.500000 +v -0.726863 1.286864 -4.500000 +v -0.726863 1.286864 -3.500000 +v -1.586124 1.013877 -3.500000 +v -1.512814 1.087187 -3.500000 +v -1.606760 1.181133 -3.212447 +v -1.680070 1.107823 -3.212447 +v -1.539504 1.260497 -3.500000 +v -1.439504 1.160497 -3.500000 +v -1.516743 1.237736 -3.426947 +v -1.366194 1.233807 -3.500000 +v -1.466194 1.333807 -3.500000 +v -1.443433 1.311046 -3.426947 +v -1.048656 0.617340 -4.838302 +v -0.977580 0.546997 -4.838145 +v -0.834834 0.691746 -4.838145 +v -0.905910 0.762089 -4.838302 +v -1.606897 -0.176317 5.784866 +v -1.606897 -0.226317 5.784866 +v -1.534224 -0.176317 5.892354 +v -1.534224 -0.226317 5.892354 +v -1.619709 -0.950001 5.266346 +v -1.619709 -1.000001 5.266346 +v -1.454709 -0.950001 5.051346 +v -1.454709 -1.000001 5.051346 +v -1.234418 0.732888 4.691586 +v -0.942209 0.732998 2.961539 +v -0.942209 0.732998 2.833173 +v -1.154418 0.732998 2.833173 +v -1.154418 0.732994 2.961539 +v -1.496956 0.394364 2.893893 +v -1.496993 0.394255 2.961539 +v -0.942209 0.832998 2.961539 +v -1.842780 -0.419079 2.961539 +v -1.500000 0.467015 3.118816 +v -1.500000 0.467025 3.276093 +v -0.942209 0.832997 3.276093 +v -1.671121 -0.176316 3.433370 +v -1.671121 -0.176316 3.590647 +v -1.842780 -0.419080 3.590647 +v -0.942209 0.732998 3.905201 +v -0.942209 0.732998 4.219755 +v -0.942209 0.732998 4.062478 +v -1.671121 -0.176316 4.377032 +v -1.671121 -0.176317 4.534309 +v -0.942209 0.832997 4.534309 +v -1.600000 0.508430 3.590647 +v -1.600000 0.046568 3.276093 +v -1.842780 -0.245875 4.219755 +v -1.600000 0.046568 4.534309 +v -1.792780 -0.348369 4.691586 +v -1.792780 -0.263924 4.691586 +v -1.792780 -0.348369 3.433370 +v -1.550000 0.487725 3.433370 +v -1.792780 -0.348369 4.062478 +v -1.550000 0.028518 4.377032 +v -1.550000 0.028518 3.747924 +v -0.942209 0.782997 3.747924 +v -0.942209 0.782997 4.062478 +v -0.942209 0.782997 4.377032 +v -1.900000 0.712365 0.956326 +v -1.743438 0.727529 0.954267 +v -1.415166 1.055879 0.952435 +v -1.400000 1.212365 0.956326 +v -1.290923 0.676405 2.835269 +v -1.290944 0.676381 2.961539 +v -1.443495 0.523594 2.840929 +v -1.443475 0.523617 2.961539 +v -1.900000 0.250000 2.360000 +v -1.840000 0.250000 2.360000 +v -1.840000 0.250000 2.160000 +v -1.900000 0.250000 2.160000 +v -1.500000 -0.176317 5.616635 +v -1.496038 0.396584 2.843685 +v -0.542209 0.732790 7.789952 +v -0.542209 0.732790 7.603708 +v -0.250000 0.732790 7.976196 +v -0.250000 0.732790 8.162440 +v -0.300000 0.612079 7.603708 +v -0.300000 0.612079 7.789952 +v -0.350000 -0.176317 6.300000 +v -0.350000 -0.176317 8.300000 +v 1.900000 0.900001 -3.500000 +v 1.900000 0.815790 -1.500000 +v 1.900000 0.731579 0.500000 +v 3.100000 -0.334314 -4.800000 +v 3.100000 -0.599999 -4.800000 +v 3.500000 -0.334314 -4.800000 +v 2.700000 -0.599999 -4.800000 +v 2.300000 -0.599999 -4.800000 +v 3.500000 -0.599999 -4.800000 +v 1.000000 -1.500000 -2.000000 +v 1.000000 -1.000000 -0.000000 +v 1.671121 -0.176317 6.300000 +v 0.942209 0.940183 2.691587 +v 1.900000 -0.999999 -4.266667 +v 1.900000 -0.999999 -4.033333 +v 1.900000 -0.999999 -3.333333 +v 1.900000 -1.000000 -3.100000 +v 1.900000 -1.000000 -2.866667 +v 1.900000 -1.000000 -2.633334 +v 1.900000 -1.000000 -1.933333 +v 1.900000 -1.000000 -1.700000 +v 1.900000 -1.000000 -1.466667 +v 1.900000 -1.000000 -1.233333 +v 1.000000 -1.039999 -5.000000 +v 1.000000 -1.136193 -4.980866 +v 1.000000 -1.231587 -4.941352 +v 1.000000 -1.313136 -4.886863 +v 1.000000 -1.386862 -4.813137 +v 1.000000 -1.441352 -4.731588 +v 1.000000 -1.480865 -4.636194 +v 1.000000 -1.499999 -4.540000 +v 0.700000 1.339463 -2.062236 +v 0.700000 1.327355 -1.774683 +v 0.700000 1.315248 -1.487130 +v 0.700000 1.303140 -1.199578 +v 0.700000 1.291033 -0.912025 +v 0.700000 1.278925 -0.624472 +v 2.023602 0.266678 -3.733322 +v 1.930330 0.380331 -3.619670 +v 1.400000 0.600001 -3.500000 +v 1.253682 0.585590 -3.500000 +v 1.546318 0.585590 -3.500000 +v 1.687013 0.542910 -3.500000 +v 1.816678 0.473603 -3.500000 +v 0.776398 0.266679 -5.200000 +v 0.702202 -0.149999 -5.200000 +v 0.708901 -0.436262 -5.200000 +v 0.755319 -0.417035 -5.200000 +v 0.713688 -0.286515 -5.200000 +v 0.664411 -0.296317 -5.200000 +v 0.906582 -0.643417 -5.200000 +v 1.113738 -0.841098 -5.200000 +v 1.011235 -0.731827 -5.200000 +v 0.983322 -0.773601 -5.200000 +v 1.132964 -0.794680 -5.200000 +v 1.400000 -0.898039 -5.200000 +v 1.263484 -0.836312 -5.200000 +v 1.253682 -0.885588 -5.200000 +v 1.122756 0.545874 -3.500000 +v 0.124370 -0.025250 -5.200000 +v 0.335876 0.935877 -5.100000 +v 0.475000 0.600001 -5.100000 +v 0.293244 0.306757 -5.000000 +v 0.228860 1.152518 -5.600000 +v 0.726863 1.286864 -3.500000 +v 0.753726 1.173726 -3.500000 +v 1.832744 0.967257 -3.500000 +v 1.759434 1.040567 -3.500000 +v 1.686124 1.113877 -3.500000 +v 1.612814 1.187187 -3.500000 +v 1.539504 1.260497 -3.500000 +v 1.466194 1.333807 -3.500000 +v 0.942209 0.732997 4.691586 +v 1.671121 -0.176317 4.691586 +v 1.496993 0.394255 2.961539 +v 1.154418 0.732994 2.961539 +v 0.942209 0.732998 2.961539 +v 1.443475 0.523617 2.961539 +v 1.290944 0.676381 2.961539 +v 0.942209 0.782997 3.433370 +v 1.743431 0.666697 2.349201 +v 1.800000 0.530137 2.350295 +v 1.800000 0.431848 2.351695 +v 1.415174 0.994944 2.349444 +v 1.269724 1.025770 2.456263 +v 0.942209 1.025599 2.455878 +v 0.942209 0.963465 2.590967 +v 1.246090 0.963560 2.590967 +v 1.278605 1.051522 2.349234 +v 0.942209 1.051567 2.348173 +v 1.406305 0.969232 2.456494 +v 1.722131 0.653552 2.456777 +v 1.382629 0.906938 2.591674 +v 1.664749 0.624537 2.594619 +v 1.778356 0.517179 2.457766 +v 1.777661 0.427614 2.459924 +v 0.942209 0.900406 2.678368 +v 1.221315 0.900406 2.678368 +v 0.942209 0.732998 2.833173 +v 1.154418 0.732998 2.833173 +v 1.357906 0.843946 2.679244 +v 1.604996 0.596425 2.683313 +v 1.718500 0.487908 2.598976 +v 1.290923 0.676405 2.835269 +v 1.443495 0.523594 2.840929 +v 1.658619 0.459781 2.687691 +v 1.657601 0.410557 2.689068 +v 1.718319 0.417748 2.598503 +v 0.994592 -0.176317 8.300000 +v 1.143510 -0.176317 8.300000 +v 1.526229 0.399040 2.818063 +v 1.496038 0.396584 2.843685 +v 1.639189 0.408908 2.707147 +v 0.250000 0.732790 7.231220 +v 0.250000 0.732790 7.417464 +v 0.250000 0.732790 7.603708 +v 0.250000 0.732790 7.789952 +v 0.250000 0.732790 7.976196 +v 0.250000 0.732790 8.162440 +v -1.900000 -0.999999 -4.500000 +v -4.114653 -0.999999 -4.500000 +v -3.100000 -0.867157 -4.500000 +v -2.700000 -0.867157 -4.500000 +v -1.900000 0.500000 0.825402 +v -3.500000 -0.867157 -4.500000 +v -2.300000 -0.499999 -4.500000 +v -2.300000 -0.867157 -4.500000 +v -2.700000 -0.334314 -4.800000 +v -2.700000 -0.599999 -4.800000 +v -2.300000 -0.334314 -4.800000 +v -2.300000 -0.599999 -4.800000 +v -1.000000 -1.500000 -2.000000 +v -1.000000 -1.499999 -4.540000 +v -0.942209 0.732997 4.883173 +v -1.000000 -1.039999 -5.000000 +v -1.000000 -1.231587 -4.941352 +v -1.900000 -0.999999 -4.266667 +v -1.900000 -0.999999 -4.033333 +v -1.900000 -0.999999 -3.800000 +v -1.900000 -0.999999 -3.566667 +v -1.900000 -1.000000 -1.466667 +v -1.900000 -1.000000 -1.233333 +v -1.000000 -1.136193 -4.980866 +v -1.000000 -1.313136 -4.886863 +v -1.000000 -1.386862 -4.813137 +v -1.000000 -1.441352 -4.731588 +v -1.000000 -1.480865 -4.636194 +v -0.700000 1.387893 -3.212447 +v -0.700000 1.375785 -2.924894 +v -0.700000 1.363678 -2.637341 +v -0.700000 1.351570 -2.349789 +v -0.700000 1.291033 -0.912025 +v -0.700000 1.278925 -0.624472 +v -1.000000 -1.000000 -0.000000 +v -1.788765 -0.731827 -5.200000 +v -1.064124 -0.485875 -5.100000 +v -1.735876 -0.485875 -5.100000 +v -1.400000 -0.564709 -5.000000 +v -0.985290 -0.149999 -5.000000 +v -1.106756 0.143245 -5.000000 +v -1.400000 0.264710 -5.000000 +v -1.693244 0.143245 -5.000000 +v -1.814710 -0.149999 -5.000000 +v -1.103985 0.564644 -3.780853 +v -0.117054 1.188472 -5.600000 +v -0.335876 0.935877 -5.100000 +v 0.000000 1.075001 -5.100000 +v 0.000000 0.125001 -5.100000 +v -0.475000 0.600001 -5.100000 +v -0.293244 0.306757 -5.000000 +v -1.832744 0.967257 -3.500000 +v -1.759434 1.040567 -3.500000 +v -1.686124 1.113877 -3.500000 +v -1.612814 1.187187 -3.500000 +v -1.671121 -0.176317 4.691586 +v -0.942209 0.732998 3.747924 +v -1.842780 -0.419080 4.219755 +v -0.942209 0.732997 4.691586 +v -1.900000 0.429490 2.500000 +v -1.800000 0.431848 2.351695 +v -1.718319 0.417748 2.598503 +v -1.777661 0.427614 2.459924 +v -0.250000 -0.176317 9.550000 +v -0.250000 0.732789 8.640893 +v -1.639189 0.408908 2.707147 +v -1.526229 0.399040 2.818063 +v -1.657601 0.410557 2.689068 +v -0.250000 0.732790 6.672488 +v -0.250000 0.732790 6.858732 +v -0.250000 0.732790 7.044976 +v -0.250000 0.732790 7.231220 +v -0.250000 0.732790 7.417464 +v 4.900000 -1.000000 -1.000000 +v 3.776732 -1.000000 1.098845 +v 2.700000 -0.334314 -4.800000 +v 2.700000 -0.074551 -4.540237 +v 2.300000 -0.334314 -4.800000 +v 3.500000 -0.074551 -4.540237 +v 2.300000 -0.074551 -4.540237 +v 3.100000 -0.074551 -4.540237 +v 1.900000 -1.500000 -2.000000 +v 1.900000 -1.000000 -0.000000 +v 1.400000 1.400001 -3.500000 +v 0.834315 0.834315 -5.000000 +v 0.834315 0.834315 -3.500000 +v 0.700000 1.900001 -3.500000 +v 0.700000 1.854023 -2.408038 +v 0.942209 0.940183 3.358253 +v 0.942209 0.940183 4.024920 +v 1.900000 -1.499999 -4.540000 +v 1.900000 -1.499999 -3.400000 +v 1.900000 -1.039999 -5.000000 +v 1.900000 -1.136193 -4.980866 +v 1.900000 -1.231587 -4.941352 +v 1.900000 -1.313136 -4.886863 +v 1.900000 -1.386862 -4.813137 +v 1.900000 -1.441352 -4.731588 +v 1.900000 -1.480865 -4.636194 +v 1.400000 1.248421 0.100000 +v 1.400000 1.298948 -1.100000 +v 1.400000 1.349474 -2.300000 +v 1.671121 -0.176317 5.704813 +v 1.400000 -0.847797 -5.200000 +v 1.686262 -0.841098 -5.200000 +v 1.667036 -0.794680 -5.200000 +v 1.536516 -0.836312 -5.200000 +v 1.546318 -0.885588 -5.200000 +v 2.044681 -0.417035 -5.200000 +v 2.148040 -0.149999 -5.200000 +v 2.097798 -0.149999 -5.200000 +v 2.086313 -0.286515 -5.200000 +v 2.135589 -0.296317 -5.200000 +v 0.834315 0.834315 -4.250000 +v 1.047392 0.621238 -4.275000 +v 1.103985 0.564645 -4.255853 +v 1.122756 0.545874 -4.250000 +v 0.117054 1.188472 -5.600000 +v 0.438843 0.418226 -5.000000 +v 0.000000 0.600001 -5.000000 +v 0.181775 0.161158 -5.000000 +v 0.181775 1.038844 -5.000000 +v 0.438843 0.781775 -5.000000 +v 1.671121 -0.176317 5.982407 +v -1.900000 -1.499999 -4.540000 +v -3.776732 -1.000000 1.098845 +v -4.900000 -1.000000 -1.000000 +v -3.100000 -0.334314 -4.800000 +v -3.500000 -0.334314 -4.800000 +v -3.500000 -0.599999 -4.800000 +v -3.100000 -0.599999 -4.800000 +v -1.900000 -1.000000 -0.000000 +v -1.900000 -1.500000 -2.000000 +v -1.900000 -1.499999 -3.400000 +v -1.400000 1.400001 -3.500000 +v -1.400000 1.349474 -2.300000 +v -1.900000 0.900001 -3.500000 +v -0.834315 0.834315 -5.000000 +v -0.834315 0.834315 -4.250000 +v -0.834315 0.834315 -3.500000 +v -0.700000 1.900001 -3.500000 +v -0.700000 1.854023 -2.408038 +v -1.900000 -1.039999 -5.000000 +v -1.900000 -1.136193 -4.980866 +v -1.900000 -1.231587 -4.941352 +v -1.900000 -1.313136 -4.886863 +v -1.900000 -1.386862 -4.813137 +v -1.900000 -1.441352 -4.731588 +v -1.900000 -1.480865 -4.636194 +v -1.400000 1.298948 -1.100000 +v -1.900000 0.815790 -1.500000 +v -1.400000 1.248421 0.100000 +v -1.900000 0.731579 0.500000 +v -1.875000 -0.149999 -5.200000 +v -1.865873 -0.242667 -5.200000 +v -1.838843 -0.331774 -5.200000 +v -1.794948 -0.413895 -5.200000 +v -1.838843 -0.331774 -5.000000 +v -1.735876 -0.485875 -5.200000 +v -1.663896 -0.544947 -5.200000 +v -1.581775 -0.588842 -5.200000 +v -1.492668 -0.615872 -5.200000 +v -1.581775 -0.588842 -5.000000 +v -1.400000 -0.624999 -5.200000 +v -1.307332 -0.615872 -5.200000 +v -1.218225 -0.588842 -5.200000 +v -1.136104 -0.544947 -5.200000 +v -1.218225 -0.588842 -5.000000 +v -1.064124 -0.485875 -5.200000 +v -1.005052 -0.413895 -5.200000 +v -0.961157 -0.331774 -5.200000 +v -0.934127 -0.242667 -5.200000 +v -0.961157 -0.331774 -5.000000 +v -0.925000 -0.149999 -5.200000 +v -0.934127 -0.057331 -5.200000 +v -0.961157 0.031775 -5.200000 +v -1.005052 0.113897 -5.200000 +v -0.961157 0.031775 -5.000000 +v -1.064124 0.185877 -5.200000 +v -1.136104 0.244949 -5.200000 +v -1.218225 0.288844 -5.200000 +v -1.307332 0.315874 -5.200000 +v -1.218225 0.288844 -5.000000 +v -1.400000 0.325001 -5.200000 +v -1.492668 0.315874 -5.200000 +v -1.581775 0.288844 -5.200000 +v -1.663896 0.244949 -5.200000 +v -1.581775 0.288844 -5.000000 +v -1.735876 0.185877 -5.200000 +v -1.794948 0.113897 -5.200000 +v -1.838843 0.031775 -5.200000 +v -1.865873 -0.057331 -5.200000 +v -1.838843 0.031775 -5.000000 +v -1.047392 0.621238 -4.275000 +v -1.122756 0.545874 -4.250000 +v -1.103985 0.564645 -4.255853 +v -0.438843 0.418226 -5.000000 +v -0.181775 0.161158 -5.000000 +v -0.181775 1.038844 -5.000000 +v -0.438843 0.781775 -5.000000 +v -1.743431 0.666697 2.349201 +v -1.415174 0.994944 2.349444 +v -1.800000 0.530137 2.350295 +v -1.278605 1.051522 2.349234 +v -1.269724 1.025770 2.456263 +v -1.406305 0.969232 2.456494 +v -1.382629 0.906938 2.591674 +v -1.246090 0.963560 2.590967 +v -1.722131 0.653552 2.456777 +v -1.778356 0.517179 2.457766 +v -1.718500 0.487908 2.598976 +v -1.664749 0.624537 2.594619 +v -0.942209 0.963465 2.590967 +v -0.942209 1.025599 2.455878 +v -1.221315 0.900406 2.678368 +v -1.357906 0.843946 2.679244 +v -0.942209 0.900406 2.678368 +v -1.604996 0.596425 2.683313 +v -1.658619 0.459781 2.687691 +v -0.942209 1.051567 2.348173 +v -0.250000 0.732790 7.603708 +v -0.250000 0.732790 7.789952 +v 0.700000 1.400001 -5.000000 +v 0.700000 1.400001 -3.500000 +v 2.300000 0.000001 -4.000000 +v 2.238172 -0.274999 -4.275000 +v 2.140151 -0.249999 -4.250000 +v 2.150000 -0.149999 -4.150000 +v 2.150000 -0.149999 -4.250000 +v 2.046492 0.117787 -5.100000 +v 1.667786 0.496493 -5.100000 +v 1.263484 0.536313 -5.100000 +v 1.011235 0.431828 -5.100000 +v 0.818172 0.238766 -5.100000 +v 0.713688 -0.013483 -5.100000 +v 0.713688 -0.286515 -5.100000 +v 0.905196 -0.644803 -5.100000 +v 1.011235 -0.731827 -5.100000 +v 1.400000 -0.849757 -5.100000 +v 1.536516 -0.836312 -5.100000 +v 1.788765 -0.731827 -5.100000 +v 2.046492 -0.417785 -5.100000 +v 2.135589 -0.003682 -4.250000 +v 2.092910 0.137013 -4.250000 +v 2.250484 -0.149999 -4.275000 +v 2.234142 0.015922 -4.275000 +v 2.023602 0.266678 -4.250000 +v 1.930330 0.380331 -4.250000 +v 1.816678 0.473603 -4.250000 +v 1.687013 0.542910 -4.250000 +v 1.546318 0.585590 -4.250000 +v 1.400000 0.600001 -4.250000 +v 1.253682 0.585590 -4.250000 +v 2.185745 0.175467 -4.275000 +v 2.107152 0.322504 -4.275000 +v 2.001383 0.451384 -4.275000 +v 1.872504 0.557152 -4.275000 +v 1.725466 0.635745 -4.275000 +v 1.565921 0.684143 -4.275000 +v 1.400000 0.700485 -4.275000 +v 1.234079 0.684143 -4.275000 +v 1.074534 0.635745 -4.275000 +v 2.234142 -0.315920 -4.315921 +v 0.475000 0.600001 -5.200000 +v 0.465873 0.692669 -5.200000 +v 0.465873 0.507333 -5.200000 +v 0.438843 0.418226 -5.200000 +v 0.394948 0.336105 -5.200000 +v 0.335876 0.264125 -5.200000 +v 0.263896 0.205053 -5.200000 +v 0.181775 0.161158 -5.200000 +v 0.092668 0.134128 -5.200000 +v 0.092668 1.065874 -5.200000 +v 0.000000 1.075001 -5.200000 +v 0.181775 1.038844 -5.200000 +v 0.263896 0.994949 -5.200000 +v 0.335876 0.935877 -5.200000 +v 0.394948 0.863897 -5.200000 +v 0.438843 0.781775 -5.200000 +v -1.800000 0.800001 -3.500000 +v -2.700000 -0.074551 -4.540237 +v -2.300000 0.500001 -3.500000 +v -2.300000 0.000001 -4.000000 +v -3.500000 -0.074551 -4.540237 +v -3.100000 -0.074551 -4.540237 +v -2.300000 0.500000 -1.585638 +v -2.300000 0.800000 -2.385638 +v -2.700000 0.500000 -1.585638 +v -2.700000 0.800000 -2.385638 +v -3.500000 0.500000 -1.585638 +v -3.500000 0.800000 -2.385638 +v -3.100000 0.500000 -1.585638 +v -3.100000 0.800000 -2.385638 +v -2.300000 -0.074551 -4.540237 +v -0.700000 1.400001 -3.500000 +v -1.671121 -0.176317 5.982407 +v -1.671121 -0.176317 5.704813 +v -1.400000 -0.149999 -5.000000 +v -0.475000 0.600001 -5.200000 +v -0.465873 0.507333 -5.200000 +v -0.438843 0.418226 -5.200000 +v -0.394948 0.336105 -5.200000 +v -0.335876 0.264125 -5.200000 +v -0.263896 0.205053 -5.200000 +v -0.181775 0.161158 -5.200000 +v -0.092668 0.134128 -5.200000 +v 0.000000 0.125001 -5.200000 +v -0.092668 1.065874 -5.200000 +v -0.181775 1.038844 -5.200000 +v -0.263896 0.994949 -5.200000 +v -0.335876 0.935877 -5.200000 +v -0.394948 0.863897 -5.200000 +v -0.438843 0.781775 -5.200000 +v -0.465873 0.692669 -5.200000 +v 1.800000 0.800001 -3.500000 +v -1.900000 0.500000 -1.271277 +v -2.238172 -0.274999 -4.275000 +v -0.700000 1.400001 -5.000000 +v -2.172631 0.200001 -3.800000 +v -2.150000 -0.149999 -4.150000 +v -2.150000 -0.149999 -4.250000 +v -2.234142 -0.315920 -4.315921 +v -2.140151 -0.249999 -4.250000 +v -2.135589 -0.003682 -4.250000 +v -2.092910 0.137013 -4.250000 +v -2.185745 0.175467 -4.275000 +v -2.234142 0.015922 -4.275000 +v -2.023602 0.266678 -4.250000 +v -2.107152 0.322504 -4.275000 +v -1.930330 0.380331 -4.250000 +v -2.001383 0.451384 -4.275000 +v -1.816678 0.473603 -4.250000 +v -1.872504 0.557152 -4.275000 +v -1.687013 0.542910 -4.250000 +v -1.725466 0.635745 -4.275000 +v -1.546318 0.585590 -4.250000 +v -1.565921 0.684143 -4.275000 +v -1.400000 0.600001 -4.250000 +v -1.400000 0.700485 -4.275000 +v -1.253682 0.585590 -4.250000 +v -1.234079 0.684143 -4.275000 +v -1.074534 0.635745 -4.275000 +v -2.250484 -0.149999 -4.275000 +v 1.900000 -1.000000 2.500000 +v 2.455324 -1.000000 1.462367 +v 4.344676 -1.000000 -1.139256 +v 4.900000 -0.999999 -3.714653 +v 2.738727 -0.900000 0.589830 +v 4.061273 -0.900000 -1.231306 +v 2.455324 -1.000000 -1.000000 +v 2.455324 -0.999999 -3.944676 +v 2.738727 -0.899999 -3.661273 +v 2.455324 -1.000000 -2.963118 +v 4.344676 -0.999999 -3.944676 +v 4.061273 -0.899999 -3.661273 +v 2.455324 -1.000000 -1.981559 +v 1.112987 -0.842909 -5.000000 +v 0.869670 -0.680329 -5.000000 +v 0.664411 -0.003681 -5.000000 +v -1.900000 -1.000000 2.500000 +v -4.344676 -1.000000 -1.139256 +v -2.455324 -1.000000 1.462367 +v -4.900000 -0.999999 -3.714653 +v -2.455324 -1.000000 -1.000000 +v -2.455324 -0.999999 -3.944676 +v -2.738727 -0.899999 -3.661273 +v -4.061273 -0.899999 -3.661273 +v -4.344676 -0.999999 -3.944676 +v -2.455324 -1.000000 -2.963118 +v -4.061273 -0.900000 -1.231306 +v -2.738727 -0.900000 0.589830 +v -2.455324 -1.000000 -1.981559 +v -0.983322 -0.773601 -5.000000 +v -0.650000 -0.149999 -5.000000 +v -0.707090 -0.437012 -5.000000 +v 3.440000 0.589233 -3.876454 +v 3.390000 0.639232 -3.826454 +v 3.440000 0.589233 -5.185313 +v 3.390000 0.607757 -5.287604 +v 3.390000 0.639233 -5.276453 +v 3.210000 0.607757 -5.287604 +v 3.160000 0.589233 -5.185313 +v 3.210000 0.639233 -5.276453 +v 3.210000 0.639232 -3.826454 +v 3.160000 0.589233 -3.876454 +v 2.410000 0.639232 -3.826454 +v 2.360000 0.589233 -3.876454 +v 2.360000 0.589233 -5.185313 +v 2.410000 0.639233 -5.276453 +v 2.410000 0.607757 -5.287604 +v 2.360000 0.003425 -4.462261 +v 2.410000 -0.032124 -4.497810 +v 2.590000 -0.032124 -4.497810 +v 2.640000 0.003425 -4.462261 +v 2.590000 0.607757 -5.287604 +v 2.590000 0.639233 -5.276453 +v 2.640000 0.589233 -5.185313 +v 2.640000 0.589233 -3.876454 +v 2.590000 0.639232 -3.826454 +v 3.160000 0.003425 -4.462261 +v 3.210000 -0.032124 -4.497810 +v 3.390000 -0.032124 -4.497810 +v 3.440000 0.003425 -4.462261 +v -3.210000 -0.032124 -4.497810 +v -3.160000 0.003425 -4.462261 +v -3.160000 0.589233 -5.185313 +v -3.210000 0.607757 -5.287604 +v -3.210000 0.639233 -5.276453 +v -3.160000 0.589233 -3.876454 +v -3.210000 0.639232 -3.826454 +v -3.390000 0.639232 -3.826454 +v -3.440000 0.589233 -3.876454 +v -3.390000 0.639233 -5.276453 +v -3.390000 0.607757 -5.287604 +v -3.440000 0.589233 -5.185313 +v -3.440000 0.003425 -4.462261 +v -3.390000 -0.032124 -4.497810 +v -2.640000 0.003425 -4.462261 +v -2.590000 -0.032124 -4.497810 +v -2.640000 0.589233 -5.185313 +v -2.590000 0.639233 -5.276453 +v -2.590000 0.607757 -5.287604 +v -2.360000 0.589233 -5.185313 +v -2.410000 0.607757 -5.287604 +v -2.410000 0.639233 -5.276453 +v -2.410000 -0.032124 -4.497810 +v -2.360000 0.003425 -4.462261 +v -2.360000 0.589233 -3.876454 +v -2.410000 0.639232 -3.826454 +v -2.590000 0.639232 -3.826454 +v -2.640000 0.589233 -3.876454 +v 3.177040 0.500000 -0.128027 +v 3.776732 -0.500000 1.098845 +v -3.177040 0.500000 -0.128027 +v -3.776732 -0.500000 1.098845 +v 3.788889 0.500000 -1.271277 +v 4.900000 -0.500000 -1.000000 +v -4.414811 -0.063329 -4.063330 +v -5.368499 -0.921648 -4.968499 +v -5.900000 -1.399999 -5.500000 +v -3.788889 0.500001 -3.500000 +v -3.788889 0.500000 -1.271277 +v 5.900000 -1.399999 -5.500000 +v 5.900000 -1.399999 -4.000000 +v 3.788889 0.500001 -3.500000 +v 4.414811 -0.063329 -4.063330 +v 5.368499 -0.921648 -4.968499 +v -5.900000 -1.399999 -4.000000 +v -4.900000 -0.500000 -1.000000 +v 0.700000 1.762068 -0.224114 +v 0.700000 1.808046 -1.316076 +v -0.593934 1.751296 0.031725 +v -0.406066 1.743393 0.219427 +v 0.150000 1.738931 0.325399 +v -0.150000 1.738931 0.325399 +v 0.406066 1.743393 0.219427 +v -0.700000 1.762068 -0.224114 +v 0.593934 1.751296 0.031725 +v -0.700000 1.808046 -1.316076 +v -1.469519 -0.250767 6.227691 +v -1.234418 -0.825001 5.669968 +v -1.234418 -0.825001 7.669968 +v -1.469519 -0.250767 8.227691 +v 1.469519 -0.250767 8.227691 +v 1.234418 -0.825001 7.669968 +v 1.469519 -0.250767 6.227691 +v 1.234418 -0.825001 5.669968 +v 0.942209 1.198213 1.292424 +v 0.942209 1.147368 2.500000 +v -0.942209 1.198213 1.292424 +v -0.942209 1.147368 2.500000 +v 1.500000 -0.176317 8.300000 +v -1.500000 0.467208 6.300000 +v 1.234418 0.732790 6.300000 +v -1.500000 0.467208 7.656475 +v -1.234418 0.732790 6.300000 +v -1.234418 0.732790 7.656475 +v 1.500000 0.467208 7.656475 +v 1.500000 0.467208 6.300000 +v 0.542209 0.732997 4.883173 +v -0.542209 0.732790 6.486244 +v -0.250000 0.732790 6.486244 +v 0.250000 0.732894 4.591587 +v 0.250000 0.732790 6.486244 +v -0.542209 0.732997 4.883173 +v 0.542209 0.732790 6.486244 +v -0.250000 0.732894 4.591587 +v 5.900000 -1.399999 -5.343764 +vt 0.9519 0.5120 +vt 0.9586 0.5192 +vt 0.9562 0.5309 +vt 0.9889 0.4978 +vt 0.9774 0.5147 +vt 0.9719 0.5103 +vt 0.9772 0.5013 +vt 0.8594 0.9197 +vt 0.8370 0.8904 +vt 0.8407 0.8622 +vt 0.8632 0.8915 +vt 0.7948 0.8916 +vt 0.8240 0.8691 +vt 0.8203 0.8973 +vt 0.7910 0.9198 +vt 0.8037 0.8459 +vt 0.8378 0.8600 +vt 0.8279 0.8641 +vt 0.7938 0.8499 +vt 0.8696 0.9268 +vt 0.9036 0.9127 +vt 0.9135 0.9168 +vt 0.8794 0.9309 +vt 0.9389 0.8853 +vt 0.9164 0.9145 +vt 0.9127 0.8864 +vt 0.9352 0.8571 +vt 0.8960 0.8795 +vt 0.8736 0.8502 +vt 0.8765 0.8479 +vt 0.8990 0.8772 +vt 0.2700 0.7226 +vt 0.2729 0.7195 +vt 0.2850 0.7307 +vt 0.2821 0.7338 +vt 0.2797 0.6664 +vt 0.2785 0.6610 +vt 0.2888 0.6549 +vt 0.2899 0.6602 +vt 0.2899 0.6739 +vt 0.2888 0.6792 +vt 0.2785 0.6731 +vt 0.2797 0.6677 +vt 0.9589 0.5068 +vt 0.2764 0.6313 +vt 0.2729 0.6146 +vt 0.2850 0.6034 +vt 0.2849 0.6210 +vt 0.9026 0.8260 +vt 0.9026 0.8109 +vt 0.9058 0.8185 +vt 0.9273 0.8135 +vt 0.9273 0.8286 +vt 0.9241 0.8210 +vt 0.8541 0.6204 +vt 0.8509 0.6191 +vt 0.8509 0.6085 +vt 0.9346 0.5874 +vt 0.9346 0.6025 +vt 0.9315 0.5949 +vt 0.8947 0.6205 +vt 0.8915 0.6192 +vt 0.8915 0.6085 +vt 0.9111 0.8132 +vt 0.9143 0.8056 +vt 0.9143 0.8207 +vt 0.8785 0.6139 +vt 0.8785 0.6245 +vt 0.8732 0.6192 +vt 0.8732 0.6085 +vt 0.8862 0.6139 +vt 0.8862 0.6245 +vt 0.8830 0.6258 +vt 0.8456 0.6138 +vt 0.8456 0.6245 +vt 0.8424 0.6258 +vt 0.9261 0.5895 +vt 0.9230 0.5971 +vt 0.9230 0.5820 +vt 0.9188 0.8156 +vt 0.9156 0.8232 +vt 0.9156 0.8081 +vt 0.8569 0.6221 +vt 0.8586 0.6191 +vt 0.8639 0.6245 +vt 0.8623 0.6275 +vt 0.9324 0.8292 +vt 0.9318 0.8210 +vt 0.9371 0.8156 +vt 0.9377 0.8238 +vt 0.8133 0.9410 +vt 0.8105 0.9400 +vt 0.8152 0.9345 +vt 0.8025 0.9461 +vt 0.8017 0.9412 +vt 0.8051 0.9424 +vt 0.8103 0.9436 +vt 0.8863 0.8368 +vt 0.8910 0.8423 +vt 0.8806 0.8408 +vt 0.8808 0.8344 +vt 0.8049 0.9360 +vt 0.9881 0.5522 +vt 0.9696 0.5580 +vt 0.9726 0.5536 +vt 0.9666 0.5559 +vt 0.8998 0.9076 +vt 0.9088 0.8813 +vt 0.8331 0.8955 +vt 0.8233 0.8996 +vt 0.2751 0.6692 +vt 0.2728 0.7030 +vt 0.2671 0.7102 +vt 0.2764 0.7028 +vt 0.2689 0.7202 +vt 0.2884 0.7140 +vt 0.2928 0.6761 +vt 0.2928 0.7223 +vt 0.2849 0.7131 +vt 0.2889 0.7322 +vt 0.2821 0.6003 +vt 0.2700 0.6115 +vt 0.8671 0.6258 +vt 0.8639 0.6138 +vt 0.9403 0.8081 +vt 0.9403 0.8232 +vt 0.9286 0.8286 +vt 0.9286 0.8135 +vt 0.9058 0.8292 +vt 0.9111 0.8238 +vt 0.8586 0.6085 +vt 0.8554 0.6204 +vt 0.9241 0.8103 +vt 0.9188 0.8050 +vt 0.9255 0.5978 +vt 0.9309 0.6031 +vt 0.8715 0.6221 +vt 0.8769 0.6275 +vt 0.8774 0.8355 +vt 0.9632 0.5556 +vt 0.9532 0.5715 +vt 0.9615 0.5551 +vt 0.8860 0.8332 +vt 0.8890 0.8358 +vt 0.9643 0.5581 +vt 0.8782 0.8307 +vt 0.9769 0.5459 +vt 0.9896 0.5382 +vt 0.2399 0.8762 +vt 0.2442 0.8572 +vt 0.2466 0.8689 +vt 0.2469 0.8814 +vt 0.2412 0.8167 +vt 0.2511 0.8325 +vt 0.2495 0.8331 +vt 0.2769 0.8903 +vt 0.2599 0.8779 +vt 0.2655 0.8734 +vt 0.2606 0.8345 +vt 0.2576 0.8301 +vt 0.2760 0.8359 +vt 0.7888 0.8801 +vt 0.7927 0.8750 +vt 0.8758 0.8351 +vt 0.8668 0.8570 +vt 0.8705 0.8852 +vt 0.8903 0.8365 +vt 0.9389 0.9438 +vt 0.9359 0.9461 +vt 0.8355 0.9273 +vt 0.8316 0.9324 +vt 0.8008 0.9288 +vt 0.7979 0.9266 +vt 0.8602 0.8307 +vt 0.8632 0.8330 +vt 0.2689 0.6139 +vt 0.2671 0.6240 +vt 0.2653 0.8868 +vt 0.2728 0.6311 +vt 0.2751 0.6649 +vt 0.2928 0.6581 +vt 0.2884 0.6201 +vt 0.2928 0.6118 +vt 0.2889 0.6019 +vt 0.8817 0.6258 +vt 0.9902 0.5305 +vt 0.9786 0.5394 +vt 0.9795 0.5302 +vt 0.9903 0.5199 +vt 0.9902 0.5121 +vt 0.9371 0.8050 +vt 0.9318 0.8103 +vt 0.8700 0.6205 +vt 0.9315 0.5842 +vt 0.9261 0.5789 +vt 0.9769 0.5370 +vt 0.9798 0.5230 +vt 0.8473 0.6275 +vt 0.8526 0.6221 +vt 0.8879 0.6275 +vt 0.8932 0.6221 +vt 0.9105 0.8050 +vt 0.9052 0.8103 +vt 0.2545 0.8323 +vt 0.2522 0.8300 +vt 0.9591 0.5533 +vt 0.9471 0.5271 +vt 0.2351 0.8611 +vt 0.2470 0.8348 +vt 0.2354 0.8373 +vt 0.2649 0.8422 +vt 0.2782 0.8761 +vt 0.8146 0.9402 +vt 0.8001 0.9417 +vt 0.8684 0.9018 +vt 0.8645 0.8967 +vt 0.9074 0.8444 +vt 0.9113 0.8495 +vt 0.2678 0.8651 +vt 0.2784 0.8682 +vt 0.2675 0.8579 +vt 0.2666 0.8487 +vt 0.2782 0.8576 +vt 0.2776 0.8499 +vt 0.2339 0.8445 +vt 0.2449 0.8386 +vt 0.2433 0.8454 +vt 0.2340 0.8543 +vt 0.9475 0.5509 +vt 0.9461 0.5339 +vt 0.9553 0.5428 +vt 0.9570 0.5496 +vt 0.9459 0.5436 +vt 0.9547 0.5369 +vt 0.9578 0.5479 +vt 0.2458 0.8403 +vt 0.2426 0.8513 +vt 0.2648 0.8511 +vt 0.9182 0.8238 +vt 0.9235 0.8292 +vt 0.9840 0.4895 +vt 0.9985 0.4995 +vt 0.9942 0.5094 +vt 0.9430 0.5918 +vt 0.9961 0.5565 +vt 0.9437 0.5546 +vt 0.9375 0.5433 +vt 0.2292 0.8823 +vt 0.2310 0.8598 +vt 0.2255 0.8449 +vt 0.2865 0.8886 +vt 0.2720 0.8986 +vt 0.2840 0.8316 +vt 0.2309 0.7964 +vt 0.2817 0.8518 +vt 0.9937 0.5362 +vt 0.9430 0.5284 +vt 0.9412 0.5059 +vt 0.2463 0.8934 +vt 0.2317 0.8335 +vt 0.9791 0.4915 +vt 0.2822 0.8787 +vt 0.2506 0.8568 +vt 0.2581 0.8620 +vt 0.2484 0.8524 +vt 0.2514 0.8343 +vt 0.2562 0.8360 +vt 0.2584 0.8390 +vt 0.9683 0.5521 +vt 0.9635 0.5538 +vt 0.9623 0.5530 +vt 0.9701 0.5262 +vt 0.9626 0.5314 +vt 0.9731 0.5276 +vt 0.9673 0.5525 +vt 0.9705 0.5492 +vt 0.9604 0.5358 +vt 0.2503 0.8351 +vt 0.2520 0.8345 +vt 0.2611 0.8606 +vt 0.2672 0.8966 +vt 0.9582 0.4948 +vt 0.2303 0.8524 +vt 0.2302 0.8420 +vt 0.2823 0.8597 +vt 0.2824 0.8705 +vt 0.9423 0.5462 +vt 0.9423 0.5358 +vt 0.9943 0.5176 +vt 0.9943 0.5284 +vt 0.2865 0.8598 +vt 0.9985 0.5283 +vt 0.2553 0.8356 +vt 0.9641 0.5536 +vt 0.9677 0.8379 +vt 0.9699 0.8386 +vt 0.9699 0.9341 +vt 0.9675 0.9409 +vt 0.9657 0.9400 +vt 0.9657 0.9383 +vt 0.9677 0.9376 +vt 0.9515 0.9381 +vt 0.9496 0.9371 +vt 0.9512 0.9354 +vt 0.9524 0.9372 +vt 0.9524 0.9407 +vt 0.9509 0.9424 +vt 0.9494 0.9404 +vt 0.9515 0.9397 +vt 0.0192 0.8221 +vt 0.0429 0.8687 +vt 0.0319 0.8742 +vt 0.0176 0.8460 +vt 0.0572 0.9247 +vt 0.0434 0.8976 +vt 0.0549 0.8918 +vt 0.0785 0.9381 +vt 0.6156 0.4452 +vt 0.6062 0.4702 +vt 0.5940 0.4736 +vt 0.5339 0.5548 +vt 0.5826 0.5316 +vt 0.5872 0.5553 +vt 0.5350 0.5650 +vt 0.5559 0.5256 +vt 0.5912 0.5869 +vt 0.5378 0.5946 +vt 0.5364 0.5794 +vt 0.5891 0.5698 +vt 0.8857 0.2548 +vt 0.8820 0.2512 +vt 0.8816 0.2471 +vt 0.8857 0.2437 +vt 0.8785 0.2565 +vt 0.8748 0.2547 +vt 0.8789 0.2512 +vt 0.8798 0.2522 +vt 0.6237 0.8782 +vt 0.6253 0.8736 +vt 0.6264 0.8735 +vt 0.6277 0.8785 +vt 0.6261 0.8676 +vt 0.6278 0.8630 +vt 0.6310 0.8655 +vt 0.6271 0.8686 +vt 0.6250 0.8677 +vt 0.6239 0.8686 +vt 0.6204 0.8653 +vt 0.6237 0.8627 +vt 0.8784 0.2472 +vt 0.8748 0.2436 +vt 0.8784 0.2417 +vt 0.8794 0.2462 +vt 0.3357 0.9500 +vt 0.3329 0.9507 +vt 0.3197 0.8996 +vt 0.3229 0.9008 +vt 0.5026 0.9140 +vt 0.5083 0.9173 +vt 0.5102 0.9277 +vt 0.5026 0.9435 +vt 0.5083 0.9468 +vt 0.5102 0.9572 +vt 0.5167 0.9557 +vt 0.5133 0.9453 +vt 0.5167 0.9397 +vt 0.5167 0.9262 +vt 0.5133 0.9158 +vt 0.5167 0.9102 +vt 0.5033 0.9308 +vt 0.5101 0.9291 +vt 0.5033 0.9013 +vt 0.5101 0.8996 +vt 0.7987 0.9474 +vt 0.7968 0.9523 +vt 0.7943 0.9524 +vt 0.7924 0.9486 +vt 0.7888 0.9521 +vt 0.7929 0.9542 +vt 0.7934 0.9575 +vt 0.7889 0.9601 +vt 0.8194 0.9521 +vt 0.8231 0.9486 +vt 0.8250 0.9524 +vt 0.8236 0.9542 +vt 0.8290 0.9539 +vt 0.8274 0.9523 +vt 0.8294 0.9474 +vt 0.8334 0.9516 +vt 0.8295 0.9573 +vt 0.8334 0.9591 +vt 0.8301 0.9634 +vt 0.8279 0.9589 +vt 0.8240 0.9575 +vt 0.8255 0.9591 +vt 0.8240 0.9632 +vt 0.8195 0.9601 +vt 0.7973 0.9589 +vt 0.7989 0.9573 +vt 0.8028 0.9591 +vt 0.7995 0.9634 +vt 0.1231 0.6540 +vt 0.1191 0.6396 +vt 0.1411 0.6456 +vt 0.8659 0.2567 +vt 0.8633 0.2496 +vt 0.8659 0.2470 +vt 0.8685 0.2541 +vt 0.8472 0.2387 +vt 0.8548 0.2387 +vt 0.8548 0.2496 +vt 0.8472 0.2496 +vt 0.8685 0.2341 +vt 0.8659 0.2413 +vt 0.8633 0.2387 +vt 0.8659 0.2316 +vt 0.7989 0.6123 +vt 0.8040 0.6142 +vt 0.8042 0.6167 +vt 0.8003 0.6188 +vt 0.8103 0.6078 +vt 0.8084 0.6121 +vt 0.8058 0.6124 +vt 0.8039 0.6077 +vt 0.0593 0.9547 +vt 0.0540 0.9512 +vt 0.0586 0.9486 +vt 0.0603 0.9504 +vt 0.0635 0.9395 +vt 0.0621 0.9438 +vt 0.0596 0.9440 +vt 0.0570 0.9395 +vt 0.0686 0.9496 +vt 0.0643 0.9481 +vt 0.0639 0.9456 +vt 0.0686 0.9432 +vt 0.8106 0.6161 +vt 0.8144 0.6175 +vt 0.8110 0.6224 +vt 0.8088 0.6178 +vt 0.7430 0.1877 +vt 0.6762 0.1209 +vt 0.6895 0.1075 +vt 0.7563 0.1743 +vt 0.5386 0.7045 +vt 0.5307 0.7045 +vt 0.5307 0.6857 +vt 0.5387 0.6857 +vt 0.2571 0.5881 +vt 0.2540 0.5496 +vt 0.2647 0.5325 +vt 0.2328 0.6602 +vt 0.2466 0.5702 +vt 0.2060 0.7950 +vt 0.1941 0.7927 +vt 0.1952 0.7867 +vt 0.2072 0.7890 +vt 0.2164 0.7420 +vt 0.2044 0.7397 +vt 0.2067 0.7278 +vt 0.2187 0.7301 +vt 0.7062 0.4719 +vt 0.7055 0.5030 +vt 0.7014 0.4530 +vt 0.1340 0.6167 +vt 0.1469 0.6060 +vt 0.1441 0.6178 +vt 0.7372 0.6196 +vt 0.7337 0.6160 +vt 0.7521 0.6160 +vt 0.7557 0.6196 +vt 0.5090 0.8265 +vt 0.4785 0.8187 +vt 0.5162 0.8187 +vt 0.4334 0.8675 +vt 0.4445 0.8675 +vt 0.4407 0.8753 +vt 0.7520 0.5835 +vt 0.7335 0.5889 +vt 0.7357 0.5843 +vt 0.7542 0.5789 +vt 0.7328 0.6155 +vt 0.7328 0.5894 +vt 0.7342 0.5909 +vt 0.7342 0.6136 +vt 0.1571 0.6071 +vt 0.0124 0.0985 +vt 0.0120 0.1608 +vt 0.0008 0.1621 +vt 0.0007 0.0971 +vt 0.6881 0.9497 +vt 0.6948 0.9430 +vt 0.7010 0.9493 +vt 0.6943 0.9560 +vt 0.7088 0.9415 +vt 0.7048 0.9455 +vt 0.6985 0.9393 +vt 0.7025 0.9353 +vt 0.9465 0.5959 +vt 0.9532 0.6026 +vt 0.9470 0.6089 +vt 0.9403 0.6022 +vt 0.9548 0.6166 +vt 0.9507 0.6126 +vt 0.9570 0.6064 +vt 0.9610 0.6104 +vt 0.9189 0.5879 +vt 0.9122 0.5946 +vt 0.9060 0.5883 +vt 0.9126 0.5817 +vt 0.8982 0.5961 +vt 0.9022 0.5921 +vt 0.9084 0.5983 +vt 0.9044 0.6024 +vt 0.8530 0.2052 +vt 0.8597 0.1985 +vt 0.8659 0.2047 +vt 0.8592 0.2114 +vt 0.8737 0.1969 +vt 0.8697 0.2010 +vt 0.8635 0.1947 +vt 0.8675 0.1907 +vt 0.6812 0.9426 +vt 0.6745 0.9493 +vt 0.6683 0.9430 +vt 0.6750 0.9364 +vt 0.6605 0.9508 +vt 0.6645 0.9468 +vt 0.6707 0.9531 +vt 0.6667 0.9571 +vt 0.7275 0.9430 +vt 0.7313 0.9468 +vt 0.7250 0.9531 +vt 0.7212 0.9493 +vt 0.6480 0.9493 +vt 0.6443 0.9531 +vt 0.6380 0.9468 +vt 0.6418 0.9430 +vt 0.1016 0.0662 +vt 0.1122 0.0696 +vt 0.1119 0.0776 +vt 0.1033 0.0837 +vt 0.8018 0.2342 +vt 0.8082 0.2410 +vt 0.8003 0.2485 +vt 0.7938 0.2416 +vt 0.8330 0.1916 +vt 0.8394 0.1985 +vt 0.8315 0.2060 +vt 0.8251 0.1991 +vt 0.7800 0.2562 +vt 0.7759 0.2523 +vt 0.7838 0.2448 +vt 0.7879 0.2488 +vt 0.7736 0.2342 +vt 0.7801 0.2410 +vt 0.7722 0.2485 +vt 0.7657 0.2416 +vt 0.2830 0.7866 +vt 0.2766 0.7798 +vt 0.2845 0.7723 +vt 0.2910 0.7792 +vt 0.7614 0.5948 +vt 0.7683 0.5883 +vt 0.7758 0.5962 +vt 0.7689 0.6027 +vt 0.7761 0.5805 +vt 0.7835 0.5884 +vt 0.7795 0.5925 +vt 0.7721 0.5846 +vt 0.2687 0.7720 +vt 0.2766 0.7646 +vt 0.2807 0.7685 +vt 0.2728 0.7760 +vt 0.8473 0.2062 +vt 0.8394 0.2137 +vt 0.8353 0.2097 +vt 0.8432 0.2023 +vt 0.8161 0.2488 +vt 0.8082 0.2562 +vt 0.8041 0.2523 +vt 0.8120 0.2448 +vt 0.7960 0.5958 +vt 0.8039 0.5883 +vt 0.8077 0.5921 +vt 0.7998 0.5996 +vt 0.1490 0.0950 +vt 0.2337 0.0901 +vt 0.2555 0.0961 +vt 0.1492 0.1024 +vt 0.0422 0.1034 +vt 0.0393 0.0963 +vt 0.2947 0.5609 +vt 0.2898 0.5267 +vt 0.2947 0.5048 +vt 0.2857 0.5534 +vt 0.2781 0.5990 +vt 0.8611 0.7102 +vt 0.8798 0.6991 +vt 0.8826 0.7040 +vt 0.8636 0.7146 +vt 0.8854 0.7090 +vt 0.8661 0.7191 +vt 0.8864 0.7114 +vt 0.8685 0.7237 +vt 0.8877 0.7139 +vt 0.8902 0.7188 +vt 0.8708 0.7284 +vt 0.8746 0.7281 +vt 0.8730 0.7331 +vt 0.8763 0.7316 +vt 0.8784 0.7364 +vt 0.8752 0.7378 +vt 0.8806 0.7412 +vt 0.8773 0.7426 +vt 0.8826 0.7460 +vt 0.8793 0.7474 +vt 0.8846 0.7509 +vt 0.8812 0.7522 +vt 0.8865 0.7559 +vt 0.8831 0.7571 +vt 0.8883 0.7609 +vt 0.8849 0.7621 +vt 0.8901 0.7660 +vt 0.8866 0.7671 +vt 0.8917 0.7711 +vt 0.8882 0.7721 +vt 0.8933 0.7762 +vt 0.8897 0.7772 +vt 0.8947 0.7814 +vt 0.8912 0.7823 +vt 0.8961 0.7866 +vt 0.8925 0.7875 +vt 0.8973 0.7919 +vt 0.8937 0.7927 +vt 0.8984 0.7972 +vt 0.8948 0.7979 +vt 0.8994 0.8026 +vt 0.8957 0.8032 +vt 0.9002 0.8080 +vt 0.8965 0.8085 +vt 0.9008 0.8135 +vt 0.8971 0.8139 +vt 0.9013 0.8194 +vt 0.8975 0.8194 +vt 0.8324 0.6696 +vt 0.8352 0.6676 +vt 0.8357 0.6734 +vt 0.8520 0.6605 +vt 0.8551 0.6646 +vt 0.8387 0.6772 +vt 0.8582 0.6687 +vt 0.8418 0.6811 +vt 0.8614 0.6728 +vt 0.8447 0.6850 +vt 0.8645 0.6769 +vt 0.8476 0.6890 +vt 0.8676 0.6812 +vt 0.8504 0.6931 +vt 0.8707 0.6855 +vt 0.8531 0.6972 +vt 0.8737 0.6899 +vt 0.8558 0.7015 +vt 0.8768 0.6944 +vt 0.8585 0.7058 +vt 0.8138 0.7157 +vt 0.8160 0.7195 +vt 0.8100 0.7228 +vt 0.8080 0.7188 +vt 0.8402 0.7729 +vt 0.8418 0.7771 +vt 0.8351 0.7795 +vt 0.8338 0.7752 +vt 0.8433 0.6920 +vt 0.8461 0.6900 +vt 0.8489 0.6941 +vt 0.8459 0.6961 +vt 0.8760 0.7543 +vt 0.8795 0.7529 +vt 0.8814 0.7578 +vt 0.8778 0.7591 +vt 0.8404 0.6881 +vt 0.8433 0.6861 +vt 0.8756 0.7433 +vt 0.8722 0.7447 +vt 0.8701 0.7401 +vt 0.8735 0.7386 +vt 0.7999 0.7038 +vt 0.7979 0.7004 +vt 0.8032 0.6970 +vt 0.8054 0.7007 +vt 0.8273 0.7585 +vt 0.8254 0.7545 +vt 0.8318 0.7517 +vt 0.8335 0.7559 +vt 0.7087 0.5965 +vt 0.7018 0.6131 +vt 0.7002 0.6097 +vt 0.6955 0.6050 +vt 0.6921 0.6034 +vt 0.7198 0.5854 +vt 0.7219 0.5880 +vt 0.7187 0.6114 +vt 0.7156 0.6131 +vt 0.7172 0.6097 +vt 0.7018 0.5799 +vt 0.7052 0.5789 +vt 0.7054 0.5811 +vt 0.8762 0.7597 +vt 0.8778 0.7646 +vt 0.8627 0.7698 +vt 0.8610 0.7653 +vt 0.8366 0.8155 +vt 0.8360 0.8121 +vt 0.8411 0.8152 +vt 0.8190 0.7619 +vt 0.8173 0.7590 +vt 0.8209 0.7563 +vt 0.8121 0.7265 +vt 0.8140 0.7305 +vt 0.8097 0.7327 +vt 0.8832 0.7627 +vt 0.8796 0.7640 +vt 0.7960 0.7058 +vt 0.7938 0.7023 +vt 0.8829 0.7738 +vt 0.8865 0.7727 +vt 0.8879 0.7777 +vt 0.8843 0.7788 +vt 0.8461 0.7902 +vt 0.8475 0.7945 +vt 0.8407 0.7966 +vt 0.8396 0.7923 +vt 0.8237 0.7503 +vt 0.8194 0.7522 +vt 0.8539 0.7085 +vt 0.8570 0.7067 +vt 0.8595 0.7111 +vt 0.8563 0.7129 +vt 0.8379 0.8210 +vt 0.8398 0.8203 +vt 0.8405 0.8234 +vt 0.8389 0.8241 +vt 0.8345 0.8031 +vt 0.8327 0.8037 +vt 0.8316 0.8006 +vt 0.8333 0.8003 +vt 0.8517 0.6982 +vt 0.8487 0.7001 +vt 0.8018 0.7076 +vt 0.7976 0.7097 +vt 0.8039 0.7113 +vt 0.8075 0.7044 +vt 0.8096 0.7081 +vt 0.8697 0.7930 +vt 0.8709 0.7976 +vt 0.8670 0.7986 +vt 0.8659 0.7940 +vt 0.8642 0.7745 +vt 0.8658 0.7791 +vt 0.8619 0.7803 +vt 0.8604 0.7757 +vt 0.8306 0.7668 +vt 0.8288 0.7627 +vt 0.8353 0.7600 +vt 0.8370 0.7643 +vt 0.6934 0.5998 +vt 0.6934 0.5932 +vt 0.6921 0.5896 +vt 0.7172 0.5833 +vt 0.7122 0.6141 +vt 0.7120 0.6118 +vt 0.7122 0.5789 +vt 0.7156 0.5799 +vt 0.7120 0.5811 +vt 0.7052 0.6141 +vt 0.7054 0.6118 +vt 0.7888 0.6997 +vt 0.7962 0.6971 +vt 0.8198 0.7651 +vt 0.8242 0.7645 +vt 0.8043 0.7305 +vt 0.8057 0.7249 +vt 0.8218 0.7669 +vt 0.8310 0.7111 +vt 0.8333 0.7151 +vt 0.8180 0.7234 +vt 0.8548 0.8205 +vt 0.8708 0.8161 +vt 0.8714 0.8201 +vt 0.8558 0.8250 +vt 0.8646 0.7895 +vt 0.8487 0.7989 +vt 0.8242 0.7353 +vt 0.8399 0.7274 +vt 0.8421 0.7315 +vt 0.8261 0.7394 +vt 0.8263 0.7034 +vt 0.8295 0.7014 +vt 0.8318 0.7053 +vt 0.8287 0.7072 +vt 0.8671 0.7837 +vt 0.8633 0.7849 +vt 0.8442 0.7358 +vt 0.8478 0.7340 +vt 0.8498 0.7384 +vt 0.8462 0.7401 +vt 0.8195 0.6872 +vt 0.8303 0.6778 +vt 0.8333 0.6815 +vt 0.8220 0.6906 +vt 0.8729 0.8068 +vt 0.8882 0.8044 +vt 0.8890 0.8095 +vt 0.8736 0.8113 +vt 0.8594 0.7607 +vt 0.8743 0.7549 +vt 0.8435 0.7255 +vt 0.8572 0.7181 +vt 0.8597 0.7225 +vt 0.8456 0.7298 +vt 0.8418 0.6930 +vt 0.8446 0.6970 +vt 0.8391 0.6891 +vt 0.8811 0.7743 +vt 0.8826 0.7793 +vt 0.8619 0.7270 +vt 0.8636 0.7262 +vt 0.8658 0.7308 +vt 0.8642 0.7316 +vt 0.8355 0.7191 +vt 0.8201 0.7273 +vt 0.8501 0.8033 +vt 0.8573 0.7666 +vt 0.8588 0.7712 +vt 0.8281 0.7434 +vt 0.8169 0.6841 +vt 0.8169 0.6893 +vt 0.8146 0.6862 +vt 0.8743 0.8157 +vt 0.8700 0.8119 +vt 0.8685 0.7884 +vt 0.8412 0.7214 +vt 0.8378 0.7232 +vt 0.8852 0.7892 +vt 0.8863 0.7943 +vt 0.8663 0.7362 +vt 0.8519 0.7428 +vt 0.7901 0.7052 +vt 0.7896 0.7030 +vt 0.7917 0.7046 +vt 0.8314 0.7983 +vt 0.8292 0.7862 +vt 0.8274 0.7868 +vt 0.8262 0.7838 +vt 0.8279 0.7834 +vt 0.8233 0.7696 +vt 0.8262 0.7685 +vt 0.8275 0.7727 +vt 0.8241 0.7726 +vt 0.8136 0.7404 +vt 0.8101 0.7433 +vt 0.8102 0.7406 +vt 0.8491 0.6569 +vt 0.8986 0.6789 +vt 0.8991 0.6786 +vt 0.8990 0.6794 +vt 0.8951 0.6741 +vt 0.9000 0.6700 +vt 0.8913 0.6696 +vt 0.8877 0.6654 +vt 0.8925 0.6609 +vt 0.8964 0.6650 +vt 0.9000 0.6686 +vt 0.8841 0.6612 +vt 0.8889 0.6569 +vt 0.8806 0.6572 +vt 0.8853 0.6530 +vt 0.8772 0.6532 +vt 0.8819 0.6491 +vt 0.8739 0.6493 +vt 0.8785 0.6452 +vt 0.8706 0.6454 +vt 0.8751 0.6413 +vt 0.8672 0.6415 +vt 0.8719 0.6374 +vt 0.8665 0.6408 +vt 0.8713 0.6367 +vt 0.8908 0.7201 +vt 0.5433 0.6281 +vt 0.5404 0.6256 +vt 0.5458 0.6252 +vt 0.8896 0.0411 +vt 0.8931 0.0416 +vt 0.8924 0.0466 +vt 0.8890 0.0462 +vt 0.8904 0.0360 +vt 0.8938 0.0366 +vt 0.8912 0.0309 +vt 0.8947 0.0316 +vt 0.8922 0.0258 +vt 0.8956 0.0266 +vt 0.8933 0.0208 +vt 0.8968 0.0216 +vt 0.8946 0.0157 +vt 0.8980 0.0166 +vt 0.8960 0.0107 +vt 0.8994 0.0117 +vt 0.8976 0.0056 +vt 0.9010 0.0068 +vt 0.8871 0.0766 +vt 0.8905 0.0767 +vt 0.8905 0.0817 +vt 0.8870 0.0817 +vt 0.8872 0.0716 +vt 0.8907 0.0717 +vt 0.8874 0.0665 +vt 0.8908 0.0667 +vt 0.8877 0.0614 +vt 0.8911 0.0617 +vt 0.8880 0.0564 +vt 0.8915 0.0567 +vt 0.8885 0.0513 +vt 0.8919 0.0516 +vt 0.9009 0.0377 +vt 0.9159 0.0400 +vt 0.9154 0.0446 +vt 0.9001 0.0425 +vt 0.9017 0.0328 +vt 0.9167 0.0355 +vt 0.9214 0.0141 +vt 0.9247 0.0151 +vt 0.9237 0.0190 +vt 0.9203 0.0182 +vt 0.9228 0.0103 +vt 0.9257 0.0114 +vt 0.9148 0.0492 +vt 0.9186 0.0496 +vt 0.9182 0.0542 +vt 0.9144 0.0538 +vt 0.9191 0.0451 +vt 0.9197 0.0406 +vt 0.9366 0.0426 +vt 0.9362 0.0469 +vt 0.9204 0.0361 +vt 0.9371 0.0384 +vt 0.9211 0.0317 +vt 0.9376 0.0341 +vt 0.9219 0.0274 +vt 0.9382 0.0299 +vt 0.9228 0.0232 +vt 0.9387 0.0258 +vt 0.9394 0.0217 +vt 0.9170 0.0772 +vt 0.9343 0.0775 +vt 0.9343 0.0819 +vt 0.9169 0.0818 +vt 0.9170 0.0726 +vt 0.9344 0.0731 +vt 0.9173 0.0680 +vt 0.9345 0.0687 +vt 0.9175 0.0633 +vt 0.9348 0.0643 +vt 0.9178 0.0588 +vt 0.9350 0.0600 +vt 0.9354 0.0556 +vt 0.9528 0.0367 +vt 0.9518 0.0343 +vt 0.9534 0.0346 +vt 0.9537 0.0263 +vt 0.9524 0.0285 +vt 0.9495 0.0271 +vt 0.9500 0.0767 +vt 0.9489 0.0790 +vt 0.9458 0.0777 +vt 0.9502 0.0703 +vt 0.9491 0.0680 +vt 0.9507 0.0682 +vt 0.9507 0.0599 +vt 0.9495 0.0621 +vt 0.9465 0.0607 +vt 0.9009 0.0277 +vt 0.9021 0.0229 +vt 0.9037 0.0233 +vt 0.9027 0.0280 +vt 0.9032 0.0180 +vt 0.9047 0.0133 +vt 0.9063 0.0138 +vt 0.9050 0.0185 +vt 0.9062 0.0086 +vt 0.9078 0.0039 +vt 0.9094 0.0043 +vt 0.9079 0.0091 +vt 0.8958 0.0768 +vt 0.8960 0.0719 +vt 0.8977 0.0719 +vt 0.8976 0.0768 +vt 0.8962 0.0669 +vt 0.8965 0.0620 +vt 0.8982 0.0621 +vt 0.8980 0.0670 +vt 0.8968 0.0571 +vt 0.8973 0.0522 +vt 0.8990 0.0523 +vt 0.8986 0.0572 +vt 0.8978 0.0472 +vt 0.8985 0.0423 +vt 0.8996 0.0474 +vt 0.9460 0.0691 +vt 0.9487 0.0353 +vt 0.9540 0.0285 +vt 0.9505 0.0789 +vt 0.9511 0.0621 +vt 0.9520 0.0484 +vt 0.9518 0.0514 +vt 0.9502 0.0511 +vt 0.9502 0.0482 +vt 0.9508 0.0453 +vt 0.9524 0.0453 +vt 0.9000 0.0325 +vt 0.8975 0.0817 +vt 0.8959 0.0817 +vt 0.4788 0.6574 +vt 0.4788 0.6536 +vt 0.5091 0.6536 +vt 0.5166 0.6574 +vt 0.6956 0.6243 +vt 0.6872 0.6243 +vt 0.6872 0.6199 +vt 0.6956 0.6199 +vt 0.5166 0.6455 +vt 0.5091 0.6492 +vt 0.4788 0.6492 +vt 0.4788 0.6454 +vt 0.8852 0.2168 +vt 0.8843 0.2179 +vt 0.8818 0.2172 +vt 0.8816 0.2155 +vt 0.8772 0.2285 +vt 0.8776 0.2277 +vt 0.8800 0.2289 +vt 0.8800 0.2299 +vt 0.2909 0.9138 +vt 0.2911 0.9125 +vt 0.2934 0.9118 +vt 0.2944 0.9131 +vt 0.2901 0.9000 +vt 0.2899 0.9006 +vt 0.2883 0.9008 +vt 0.2878 0.9001 +vt 0.6264 0.9102 +vt 0.6265 0.9087 +vt 0.6289 0.9081 +vt 0.6298 0.9091 +vt 0.6237 0.8971 +vt 0.6253 0.8968 +vt 0.6270 0.8981 +vt 0.6227 0.8995 +vt 0.8838 0.2253 +vt 0.8823 0.2278 +vt 0.8785 0.2260 +vt 0.8787 0.2235 +vt 0.2875 0.9062 +vt 0.2873 0.9033 +vt 0.2917 0.9019 +vt 0.2930 0.9045 +vt 0.8485 0.9600 +vt 0.8440 0.9569 +vt 0.8446 0.9538 +vt 0.8485 0.9523 +vt 0.8405 0.9584 +vt 0.8382 0.9621 +vt 0.8352 0.9582 +vt 0.8391 0.9567 +vt 0.8397 0.9536 +vt 0.8352 0.9506 +vt 0.8403 0.9474 +vt 0.8413 0.9522 +vt 0.5693 0.2526 +vt 0.5714 0.2539 +vt 0.5716 0.2559 +vt 0.5693 0.2572 +vt 0.5739 0.2510 +vt 0.5732 0.2530 +vt 0.5721 0.2530 +vt 0.5714 0.2509 +vt 0.7806 0.1857 +vt 0.7787 0.1847 +vt 0.7784 0.1827 +vt 0.7806 0.1813 +vt 0.7762 0.1876 +vt 0.7768 0.1855 +vt 0.7779 0.1854 +vt 0.7789 0.1877 +vt 0.7738 0.1817 +vt 0.7758 0.1827 +vt 0.7761 0.1847 +vt 0.7739 0.1861 +vt 0.7783 0.1797 +vt 0.7776 0.1819 +vt 0.7765 0.1819 +vt 0.7755 0.1796 +vt 0.5742 0.2558 +vt 0.5762 0.2571 +vt 0.5741 0.2588 +vt 0.5734 0.2567 +vt 0.8632 0.2190 +vt 0.8651 0.2199 +vt 0.8654 0.2252 +vt 0.8632 0.2259 +vt 0.8714 0.2158 +vt 0.8748 0.2188 +vt 0.8724 0.2199 +vt 0.8705 0.2178 +vt 0.8726 0.2253 +vt 0.8748 0.2265 +vt 0.8714 0.2296 +vt 0.8706 0.2273 +vt 0.1346 0.7829 +vt 0.1368 0.7768 +vt 0.1449 0.7822 +vt 0.1364 0.7846 +vt 0.0853 0.7923 +vt 0.0712 0.7989 +vt 0.0678 0.7921 +vt 0.0819 0.7848 +vt 0.1217 0.7652 +vt 0.1250 0.7610 +vt 0.1283 0.7667 +vt 0.1235 0.7673 +vt 0.0757 0.7704 +vt 0.0612 0.7751 +vt 0.0588 0.7682 +vt 0.0731 0.7628 +vt 0.1143 0.7507 +vt 0.0928 0.7638 +vt 0.0900 0.7559 +vt 0.1130 0.7485 +vt 0.1068 0.7316 +vt 0.1108 0.7287 +vt 0.1123 0.7345 +vt 0.1079 0.7338 +vt 0.0672 0.7408 +vt 0.0840 0.7360 +vt 0.0858 0.7438 +vt 0.0688 0.7484 +vt 0.0646 0.7266 +vt 0.0506 0.7277 +vt 0.0499 0.7211 +vt 0.0638 0.7192 +vt 0.1037 0.7168 +vt 0.0813 0.7241 +vt 0.0804 0.7164 +vt 0.1029 0.7146 +vt 0.0629 0.7054 +vt 0.0496 0.7050 +vt 0.0497 0.6986 +vt 0.0630 0.6985 +vt 0.1015 0.6998 +vt 0.0789 0.7046 +vt 0.0786 0.6972 +vt 0.1011 0.6974 +vt 0.1073 0.7918 +vt 0.1049 0.7881 +vt 0.1221 0.7759 +vt 0.1254 0.7812 +vt 0.1146 0.7242 +vt 0.1141 0.7211 +vt 0.1206 0.7188 +vt 0.1221 0.7242 +vt 0.1199 0.7400 +vt 0.1190 0.7370 +vt 0.1253 0.7336 +vt 0.1275 0.7390 +vt 0.1384 0.7699 +vt 0.1363 0.7671 +vt 0.1414 0.7615 +vt 0.1451 0.7659 +vt 0.4407 0.8187 +vt 0.4445 0.8265 +vt 0.4334 0.8265 +vt 0.0505 0.6884 +vt 0.0633 0.6904 +vt 0.0631 0.6942 +vt 0.0499 0.6936 +vt 0.0959 0.6875 +vt 0.0781 0.6903 +vt 0.0780 0.6880 +vt 0.0958 0.6842 +vt 0.1109 0.6892 +vt 0.1106 0.6922 +vt 0.0959 0.6928 +vt 0.1109 0.6869 +vt 0.1141 0.6860 +vt 0.1176 0.6889 +vt 0.0737 0.8046 +vt 0.0882 0.7976 +vt 0.0905 0.8017 +vt 0.0769 0.8102 +vt 0.0630 0.7810 +vt 0.0779 0.7758 +vt 0.0798 0.7801 +vt 0.0653 0.7868 +vt 0.0703 0.7538 +vt 0.0555 0.7570 +vt 0.0548 0.7534 +vt 0.0694 0.7507 +vt 0.0874 0.7484 +vt 0.0889 0.7522 +vt 0.0717 0.7581 +vt 0.0654 0.7319 +vt 0.0509 0.7334 +vt 0.0507 0.7299 +vt 0.0649 0.7289 +vt 0.0824 0.7286 +vt 0.0833 0.7324 +vt 0.0663 0.7361 +vt 0.0631 0.7105 +vt 0.0492 0.7103 +vt 0.0494 0.7070 +vt 0.0630 0.7076 +vt 0.0795 0.7090 +vt 0.0801 0.7129 +vt 0.0635 0.7146 +vt 0.0792 0.7065 +vt 0.0969 0.7027 +vt 0.0972 0.7058 +vt 0.0999 0.7233 +vt 0.0993 0.7203 +vt 0.1134 0.7189 +vt 0.1201 0.7728 +vt 0.1345 0.7651 +vt 0.1121 0.7583 +vt 0.0950 0.7683 +vt 0.0937 0.7657 +vt 0.1107 0.7553 +vt 0.1263 0.7525 +vt 0.1277 0.7554 +vt 0.1145 0.7633 +vt 0.1048 0.7409 +vt 0.0865 0.7458 +vt 0.1038 0.7378 +vt 0.1112 0.7052 +vt 0.1114 0.7083 +vt 0.0976 0.7108 +vt 0.1250 0.7504 +vt 0.1324 0.7481 +vt 0.1275 0.7478 +vt 0.0865 0.7946 +vt 0.1034 0.7856 +vt 0.1108 0.7030 +vt 0.1139 0.7015 +vt 0.1177 0.7039 +vt 0.2135 0.4632 +vt 0.2174 0.4658 +vt 0.2165 0.4697 +vt 0.2107 0.4665 +vt 0.2086 0.4354 +vt 0.2051 0.4332 +vt 0.2182 0.4193 +vt 0.2200 0.4226 +vt 0.7864 0.2283 +vt 0.7830 0.2260 +vt 0.7858 0.2245 +vt 0.7872 0.2260 +vt 0.7902 0.2244 +vt 0.7926 0.2257 +vt 0.7897 0.2283 +vt 0.7888 0.2259 +vt 0.7855 0.2216 +vt 0.7828 0.2201 +vt 0.7861 0.2172 +vt 0.7869 0.2200 +vt 0.7886 0.2199 +vt 0.7898 0.2174 +vt 0.7926 0.2203 +vt 0.7900 0.2214 +vt 0.3768 0.8375 +vt 0.3768 0.8564 +vt 0.3500 0.8564 +vt 0.3500 0.8375 +vt 0.4391 0.8375 +vt 0.4391 0.8564 +vt 0.3821 0.8564 +vt 0.3821 0.8375 +vt 0.7009 0.6196 +vt 0.6982 0.6168 +vt 0.7095 0.6168 +vt 0.7095 0.6281 +vt 0.6982 0.6281 +vt 0.7009 0.6252 +vt 0.7701 0.2200 +vt 0.7674 0.2172 +vt 0.7787 0.2172 +vt 0.7787 0.2285 +vt 0.7674 0.2285 +vt 0.7701 0.2257 +vt 0.7811 0.5728 +vt 0.7811 0.5672 +vt 0.7850 0.5672 +vt 0.7850 0.5728 +vt 0.9293 0.9474 +vt 0.9301 0.9493 +vt 0.9262 0.9517 +vt 0.9246 0.9502 +vt 0.9332 0.9633 +vt 0.9323 0.9619 +vt 0.9375 0.9585 +vt 0.9384 0.9598 +vt 0.9006 0.6121 +vt 0.9016 0.6139 +vt 0.8980 0.6170 +vt 0.8960 0.6157 +vt 0.9071 0.6272 +vt 0.9059 0.6262 +vt 0.9093 0.6222 +vt 0.9109 0.6226 +vt 0.9176 0.9633 +vt 0.9166 0.9619 +vt 0.9218 0.9585 +vt 0.9227 0.9598 +vt 0.9545 0.8160 +vt 0.9494 0.8195 +vt 0.9469 0.8179 +vt 0.9538 0.8128 +vt 0.1090 0.9505 +vt 0.1039 0.9539 +vt 0.1014 0.9524 +vt 0.1083 0.9473 +vt 0.9341 0.9514 +vt 0.9367 0.9553 +vt 0.9298 0.9603 +vt 0.9270 0.9568 +vt 0.9031 0.6251 +vt 0.8996 0.6220 +vt 0.9059 0.6156 +vt 0.9087 0.6191 +vt 0.9512 0.8090 +vt 0.9440 0.8144 +vt 0.9433 0.8093 +vt 0.9472 0.8068 +vt 0.1057 0.9435 +vt 0.0985 0.9488 +vt 0.0978 0.9438 +vt 0.1016 0.9413 +vt 0.9184 0.9514 +vt 0.9113 0.9568 +vt 0.9105 0.9517 +vt 0.9144 0.9493 +vt 0.2768 0.9027 +vt 0.2806 0.9027 +vt 0.2806 0.9782 +vt 0.2768 0.9782 +vt 0.0040 0.5508 +vt 0.0051 0.5292 +vt 0.0086 0.5369 +vt 0.0091 0.5515 +vt 0.0274 0.5835 +vt 0.0229 0.5850 +vt 0.0076 0.5697 +vt 0.0047 0.5619 +vt 0.0021 0.5829 +vt 0.0070 0.5840 +vt 0.0217 0.5972 +vt 0.0240 0.6039 +vt 0.0249 0.5639 +vt 0.0255 0.5514 +vt 0.0301 0.5495 +vt 0.0275 0.5703 +vt 0.4910 0.9207 +vt 0.4940 0.9234 +vt 0.4940 0.9990 +vt 0.4910 0.9962 +vt 0.5918 0.8050 +vt 0.5932 0.8032 +vt 0.6056 0.8028 +vt 0.6069 0.8046 +vt 0.6085 0.8028 +vt 0.6065 0.8019 +vt 0.6064 0.8003 +vt 0.6085 0.7993 +vt 0.5922 0.8007 +vt 0.5903 0.7998 +vt 0.5918 0.7980 +vt 0.5931 0.7998 +vt 0.0926 0.8676 +vt 0.1226 0.8626 +vt 0.1111 0.8860 +vt 0.0798 0.8911 +vt 0.3789 0.3712 +vt 0.3292 0.3492 +vt 0.3561 0.3425 +vt 0.3164 0.2909 +vt 0.3042 0.2869 +vt 0.2961 0.2601 +vt 0.3781 0.3813 +vt 0.3259 0.3743 +vt 0.3240 0.3899 +vt 0.3772 0.3957 +vt 0.3764 0.4105 +vt 0.3223 0.4055 +vt 0.6310 0.8587 +vt 0.6275 0.8555 +vt 0.6271 0.8514 +vt 0.6310 0.8484 +vt 0.6310 0.8929 +vt 0.6273 0.8894 +vt 0.6269 0.8853 +vt 0.6310 0.8819 +vt 0.6273 0.8801 +vt 0.6260 0.8843 +vt 0.6248 0.8844 +vt 0.6237 0.8799 +vt 0.6201 0.8818 +vt 0.6238 0.8854 +vt 0.6242 0.8894 +vt 0.6201 0.8928 +vt 0.6239 0.8947 +vt 0.6251 0.8904 +vt 0.6263 0.8903 +vt 0.6274 0.8949 +vt 0.6250 0.8506 +vt 0.6239 0.8515 +vt 0.6204 0.8482 +vt 0.6237 0.8456 +vt 0.6253 0.8564 +vt 0.6237 0.8611 +vt 0.6204 0.8586 +vt 0.6243 0.8555 +vt 0.4315 0.8996 +vt 0.4446 0.9507 +vt 0.4422 0.9516 +vt 0.4225 0.9024 +vt 0.5593 0.8769 +vt 0.5468 0.8776 +vt 0.5497 0.8706 +vt 0.5553 0.8702 +vt 0.7648 0.9479 +vt 0.7705 0.9512 +vt 0.7725 0.9617 +vt 0.9492 0.7907 +vt 0.9441 0.7862 +vt 0.9443 0.7752 +vt 0.9374 0.7754 +vt 0.9386 0.7866 +vt 0.9341 0.7916 +vt 0.7790 0.9602 +vt 0.7756 0.9498 +vt 0.7790 0.9442 +vt 0.9458 0.8033 +vt 0.9386 0.8036 +vt 0.7655 0.9353 +vt 0.7723 0.9336 +vt 0.8181 0.9591 +vt 0.8142 0.9573 +vt 0.8137 0.9539 +vt 0.8181 0.9516 +vt 0.8087 0.9632 +vt 0.8102 0.9591 +vt 0.8126 0.9589 +vt 0.8148 0.9634 +vt 0.8918 0.9591 +vt 0.8885 0.9634 +vt 0.8863 0.9589 +vt 0.8879 0.9573 +vt 0.8779 0.9521 +vt 0.8815 0.9486 +vt 0.8834 0.9524 +vt 0.8820 0.9542 +vt 0.8859 0.9523 +vt 0.8878 0.9474 +vt 0.8918 0.9516 +vt 0.8875 0.9539 +vt 0.8825 0.9575 +vt 0.8839 0.9591 +vt 0.8824 0.9632 +vt 0.8779 0.9601 +vt 0.8083 0.9542 +vt 0.8041 0.9521 +vt 0.8077 0.9486 +vt 0.8096 0.9524 +vt 0.7417 0.3758 +vt 0.7434 0.4253 +vt 0.7377 0.3898 +vt 0.4284 0.2458 +vt 0.2996 0.2453 +vt 0.2963 0.2381 +vt 0.4251 0.2387 +vt 0.7340 0.3928 +vt 0.8541 0.5799 +vt 0.8586 0.5860 +vt 0.8500 0.5860 +vt 0.8455 0.5799 +vt 0.8612 0.6040 +vt 0.8586 0.5969 +vt 0.8611 0.5943 +vt 0.8637 0.6014 +vt 0.7663 0.7260 +vt 0.7665 0.7631 +vt 0.7549 0.7001 +vt 0.8271 0.6078 +vt 0.8253 0.6121 +vt 0.8227 0.6124 +vt 0.8208 0.6077 +vt 0.8158 0.6123 +vt 0.8209 0.6142 +vt 0.8210 0.6167 +vt 0.8172 0.6188 +vt 0.8215 0.6226 +vt 0.8231 0.6182 +vt 0.8257 0.6178 +vt 0.8279 0.6224 +vt 0.8313 0.6175 +vt 0.8275 0.6161 +vt 0.8273 0.6136 +vt 0.8313 0.6120 +vt 0.0855 0.9547 +vt 0.0802 0.9512 +vt 0.0848 0.9486 +vt 0.0865 0.9504 +vt 0.0948 0.9496 +vt 0.0905 0.9481 +vt 0.0901 0.9456 +vt 0.0948 0.9432 +vt 0.0857 0.9440 +vt 0.0842 0.9460 +vt 0.0798 0.9449 +vt 0.0832 0.9395 +vt 0.7248 0.4513 +vt 0.6976 0.3918 +vt 0.7239 0.4389 +vt 0.5827 0.0007 +vt 0.6494 0.0675 +vt 0.6361 0.0808 +vt 0.5693 0.0140 +vt 0.5386 0.7382 +vt 0.5307 0.7383 +vt 0.5307 0.7194 +vt 0.5386 0.7195 +vt 0.2217 0.5815 +vt 0.2379 0.5685 +vt 0.2185 0.6584 +vt 0.2344 0.5267 +vt 0.2383 0.5466 +vt 0.7562 0.2963 +vt 0.7640 0.2987 +vt 0.7563 0.3036 +vt 0.7544 0.2978 +vt 0.7612 0.4345 +vt 0.7389 0.4397 +vt 0.7649 0.2257 +vt 0.7598 0.2257 +vt 0.7598 0.1996 +vt 0.7649 0.1996 +vt 0.5162 0.8904 +vt 0.4911 0.8904 +vt 0.4785 0.8753 +vt 0.5162 0.8753 +vt 0.4659 0.8904 +vt 0.4407 0.8904 +vt 0.7589 0.2261 +vt 0.7404 0.2261 +vt 0.7436 0.2238 +vt 0.7583 0.2238 +vt 0.7583 0.2010 +vt 0.7436 0.1967 +vt 0.7405 0.1937 +vt 0.7590 0.1991 +vt 0.7634 0.4624 +vt 0.7658 0.4744 +vt 0.7531 0.4632 +vt 0.7760 0.4736 +vt 0.5946 0.9544 +vt 0.5986 0.9504 +vt 0.6049 0.9566 +vt 0.6009 0.9606 +vt 0.6153 0.9462 +vt 0.6086 0.9529 +vt 0.6024 0.9466 +vt 0.6091 0.9399 +vt 0.7399 0.9508 +vt 0.7439 0.9468 +vt 0.7502 0.9531 +vt 0.7462 0.9571 +vt 0.7606 0.9426 +vt 0.7540 0.9493 +vt 0.7477 0.9430 +vt 0.7544 0.9364 +vt 0.0179 0.9629 +vt 0.0139 0.9589 +vt 0.0201 0.9527 +vt 0.0241 0.9567 +vt 0.0097 0.9422 +vt 0.0164 0.9489 +vt 0.0101 0.9551 +vt 0.0034 0.9485 +vt 0.0366 0.9395 +vt 0.0366 0.9489 +vt 0.0272 0.9395 +vt 0.0328 0.9527 +vt 0.0272 0.9527 +vt 0.0391 0.9646 +vt 0.0391 0.9589 +vt 0.0523 0.9646 +vt 0.0428 0.9551 +vt 0.8935 0.5868 +vt 0.8895 0.5908 +vt 0.8833 0.5846 +vt 0.8873 0.5805 +vt 0.8728 0.5950 +vt 0.8795 0.5883 +vt 0.8857 0.5946 +vt 0.8790 0.6012 +vt 0.1559 0.9473 +vt 0.1519 0.9514 +vt 0.1457 0.9451 +vt 0.1497 0.9411 +vt 0.1352 0.9556 +vt 0.1419 0.9489 +vt 0.1482 0.9551 +vt 0.1415 0.9618 +vt 0.6024 0.9201 +vt 0.6062 0.9164 +vt 0.6124 0.9226 +vt 0.6086 0.9264 +vt 0.0523 0.9551 +vt 0.1026 0.1755 +vt 0.1112 0.1815 +vt 0.1117 0.1894 +vt 0.1011 0.1929 +vt 0.7762 0.1920 +vt 0.7831 0.1985 +vt 0.7757 0.2064 +vt 0.7688 0.1999 +vt 0.8429 0.2416 +vt 0.8364 0.2485 +vt 0.8285 0.2410 +vt 0.8350 0.2342 +vt 0.2939 0.7615 +vt 0.2845 0.7521 +vt 0.2939 0.7521 +vt 0.2766 0.7352 +vt 0.2766 0.7446 +vt 0.2671 0.7352 +vt 0.8311 0.6027 +vt 0.8242 0.5962 +vt 0.8316 0.5883 +vt 0.8385 0.5948 +vt 0.8239 0.5805 +vt 0.8279 0.5846 +vt 0.8204 0.5925 +vt 0.8164 0.5884 +vt 0.7450 0.2341 +vt 0.7519 0.2406 +vt 0.7445 0.2485 +vt 0.7376 0.2420 +vt 0.2671 0.7484 +vt 0.2728 0.7484 +vt 0.2807 0.7615 +vt 0.2807 0.7558 +vt 0.7482 0.2523 +vt 0.7557 0.2444 +vt 0.7596 0.2484 +vt 0.7522 0.2563 +vt 0.8113 0.2060 +vt 0.8075 0.2097 +vt 0.7996 0.2023 +vt 0.8034 0.1985 +vt 0.8247 0.2448 +vt 0.8326 0.2523 +vt 0.8286 0.2562 +vt 0.8206 0.2488 +vt 0.7794 0.2102 +vt 0.7869 0.2023 +vt 0.7909 0.2063 +vt 0.7834 0.2142 +vt 0.1485 0.1637 +vt 0.0382 0.1634 +vt 0.0409 0.1566 +vt 0.1486 0.1562 +vt 0.2554 0.1630 +vt 0.2335 0.1689 +vt 0.2864 0.5035 +vt 0.2835 0.5254 +vt 0.2671 0.5561 +vt 0.2698 0.5975 +vt 0.2782 0.5520 +vt 0.8218 0.0644 +vt 0.8236 0.0646 +vt 0.8230 0.0697 +vt 0.8213 0.0695 +vt 0.8227 0.0747 +vt 0.8209 0.0746 +vt 0.8223 0.0798 +vt 0.8205 0.0797 +vt 0.8221 0.0849 +vt 0.8203 0.0849 +vt 0.8201 0.0900 +vt 0.8220 0.0901 +vt 0.8219 0.0952 +vt 0.8201 0.0952 +vt 0.8219 0.1003 +vt 0.8201 0.1004 +vt 0.8221 0.1055 +vt 0.8203 0.1055 +vt 0.8223 0.1106 +vt 0.8205 0.1107 +vt 0.8226 0.1157 +vt 0.8208 0.1158 +vt 0.8230 0.1208 +vt 0.8212 0.1209 +vt 0.8235 0.1259 +vt 0.8217 0.1261 +vt 0.8240 0.1309 +vt 0.8222 0.1311 +vt 0.8247 0.1360 +vt 0.8229 0.1362 +vt 0.8254 0.1410 +vt 0.8237 0.1413 +vt 0.8263 0.1460 +vt 0.8246 0.1463 +vt 0.8273 0.1509 +vt 0.8255 0.1513 +vt 0.8284 0.1559 +vt 0.8267 0.1563 +vt 0.8296 0.1607 +vt 0.8279 0.1612 +vt 0.8310 0.1656 +vt 0.8293 0.1661 +vt 0.8325 0.1703 +vt 0.8308 0.1709 +vt 0.8341 0.1749 +vt 0.8325 0.1756 +vt 0.8317 0.0144 +vt 0.8334 0.0152 +vt 0.8318 0.0200 +vt 0.8300 0.0194 +vt 0.8305 0.0249 +vt 0.8287 0.0245 +vt 0.8292 0.0298 +vt 0.8275 0.0294 +vt 0.8282 0.0348 +vt 0.8264 0.0344 +vt 0.8271 0.0397 +vt 0.8254 0.0394 +vt 0.8263 0.0447 +vt 0.8245 0.0444 +vt 0.8254 0.0496 +vt 0.8237 0.0493 +vt 0.8248 0.0546 +vt 0.8230 0.0544 +vt 0.8241 0.0596 +vt 0.8223 0.0594 +vt 0.8285 0.0701 +vt 0.8267 0.0700 +vt 0.8272 0.0650 +vt 0.8289 0.0652 +vt 0.8281 0.0751 +vt 0.8263 0.0750 +vt 0.8275 0.1003 +vt 0.8256 0.1003 +vt 0.8256 0.0952 +vt 0.8274 0.0952 +vt 0.8275 0.1053 +vt 0.8258 0.1053 +vt 0.8278 0.1103 +vt 0.8260 0.1104 +vt 0.8280 0.1153 +vt 0.8263 0.1154 +vt 0.8285 0.1203 +vt 0.8266 0.1205 +vt 0.8289 0.1253 +vt 0.8272 0.1255 +vt 0.8308 0.1401 +vt 0.8290 0.1404 +vt 0.8284 0.1355 +vt 0.8300 0.1352 +vt 0.8316 0.1450 +vt 0.8299 0.1453 +vt 0.8348 0.1594 +vt 0.8331 0.1598 +vt 0.8319 0.1550 +vt 0.8336 0.1546 +vt 0.8361 0.1641 +vt 0.8345 0.1645 +vt 0.8375 0.1687 +vt 0.8359 0.1692 +vt 0.8390 0.1735 +vt 0.8373 0.1738 +vt 0.8371 0.0215 +vt 0.8354 0.0210 +vt 0.8368 0.0162 +vt 0.8385 0.0165 +vt 0.8357 0.0263 +vt 0.8340 0.0259 +vt 0.8345 0.0311 +vt 0.8328 0.0307 +vt 0.8334 0.0359 +vt 0.8317 0.0355 +vt 0.8308 0.0504 +vt 0.8290 0.0502 +vt 0.8299 0.0453 +vt 0.8315 0.0456 +vt 0.8301 0.0553 +vt 0.8284 0.0551 +vt 0.8435 0.0809 +vt 0.8434 0.0857 +vt 0.8275 0.0851 +vt 0.8278 0.0801 +vt 0.8432 0.0904 +vt 0.8433 0.0952 +vt 0.8275 0.0902 +vt 0.8449 0.1285 +vt 0.8455 0.1332 +vt 0.8295 0.1303 +vt 0.8474 0.1469 +vt 0.8483 0.1513 +vt 0.8326 0.1498 +vt 0.8473 0.0435 +vt 0.8467 0.0481 +vt 0.8325 0.0407 +vt 0.8449 0.0619 +vt 0.8445 0.0667 +vt 0.8295 0.0602 +vt 0.8481 0.0717 +vt 0.8477 0.0763 +vt 0.8438 0.0761 +vt 0.8441 0.0714 +vt 0.8472 0.0999 +vt 0.8473 0.1047 +vt 0.8434 0.1048 +vt 0.8432 0.1000 +vt 0.8475 0.1094 +vt 0.8477 0.1141 +vt 0.8438 0.1143 +vt 0.8435 0.1096 +vt 0.8499 0.1373 +vt 0.8505 0.1418 +vt 0.8468 0.1424 +vt 0.8460 0.1378 +vt 0.8527 0.1550 +vt 0.8535 0.1592 +vt 0.8502 0.1599 +vt 0.8491 0.1557 +vt 0.8545 0.1631 +vt 0.8554 0.1669 +vt 0.8525 0.1679 +vt 0.8512 0.1641 +vt 0.8544 0.0271 +vt 0.8535 0.0311 +vt 0.8500 0.0303 +vt 0.8510 0.0262 +vt 0.8527 0.0354 +vt 0.8518 0.0397 +vt 0.8482 0.0390 +vt 0.8490 0.0346 +vt 0.8499 0.0531 +vt 0.8493 0.0577 +vt 0.8455 0.0573 +vt 0.8460 0.0526 +vt 0.8652 0.0818 +vt 0.8651 0.0862 +vt 0.8473 0.0858 +vt 0.8475 0.0811 +vt 0.8649 0.0908 +vt 0.8650 0.0952 +vt 0.8472 0.0952 +vt 0.8472 0.0905 +vt 0.8656 0.1176 +vt 0.8659 0.1221 +vt 0.8484 0.1235 +vt 0.8480 0.1188 +vt 0.8662 0.1265 +vt 0.8667 0.1310 +vt 0.8493 0.1327 +vt 0.8488 0.1281 +vt 0.8680 0.1441 +vt 0.8686 0.1484 +vt 0.8519 0.1507 +vt 0.8512 0.1463 +vt 0.8680 0.0463 +vt 0.8676 0.0506 +vt 0.8505 0.0486 +vt 0.8512 0.0441 +vt 0.8663 0.0639 +vt 0.8660 0.0683 +vt 0.8484 0.0670 +vt 0.8488 0.0623 +vt 0.8816 0.0748 +vt 0.8805 0.0724 +vt 0.8822 0.0726 +vt 0.8812 0.0813 +vt 0.8800 0.0836 +vt 0.8770 0.0822 +vt 0.8810 0.0920 +vt 0.8798 0.0896 +vt 0.8815 0.0897 +vt 0.8828 0.1328 +vt 0.8819 0.1352 +vt 0.8787 0.1342 +vt 0.8839 0.1434 +vt 0.8824 0.1412 +vt 0.8841 0.1411 +vt 0.8853 0.0294 +vt 0.8840 0.0318 +vt 0.8811 0.0304 +vt 0.8846 0.0403 +vt 0.8836 0.0378 +vt 0.8852 0.0380 +vt 0.8839 0.0469 +vt 0.8825 0.0491 +vt 0.8796 0.0475 +vt 0.8829 0.0576 +vt 0.8819 0.0551 +vt 0.8836 0.0554 +vt 0.8823 0.0641 +vt 0.8810 0.0664 +vt 0.8780 0.0648 +vt 0.8787 0.0561 +vt 0.8804 0.0388 +vt 0.8804 0.1557 +vt 0.8804 0.1514 +vt 0.8836 0.1525 +vt 0.8835 0.1555 +vt 0.8795 0.1428 +vt 0.8764 0.1039 +vt 0.8767 0.0996 +vt 0.8798 0.1009 +vt 0.8795 0.1038 +vt 0.8767 0.0908 +vt 0.8773 0.0734 +vt 0.8816 0.0835 +vt 0.8799 0.1068 +vt 0.8769 0.1082 +vt 0.8822 0.1209 +vt 0.8825 0.1240 +vt 0.8808 0.1240 +vt 0.8803 0.1210 +vt 0.8805 0.1181 +vt 0.8821 0.1178 +vt 0.8835 0.1349 +vt 0.8839 0.1585 +vt 0.8810 0.1598 +vt 0.8857 0.0317 +vt 0.8842 0.0491 +vt 0.8826 0.0663 +vt 0.8445 0.1238 +vt 0.8524 0.0222 +vt 0.8553 0.0233 +vt 0.8654 0.0773 +vt 0.8654 0.1132 +vt 0.8676 0.1397 +vt 0.8686 0.0420 +vt 0.8667 0.0595 +vt 0.8010 0.0567 +vt 0.7975 0.0562 +vt 0.7982 0.0509 +vt 0.8018 0.0514 +vt 0.7991 0.0455 +vt 0.8026 0.0460 +vt 0.7999 0.0402 +vt 0.8034 0.0407 +vt 0.8008 0.0348 +vt 0.8044 0.0354 +vt 0.8018 0.0295 +vt 0.8053 0.0301 +vt 0.8028 0.0240 +vt 0.8064 0.0247 +vt 0.8039 0.0186 +vt 0.8076 0.0194 +vt 0.8051 0.0130 +vt 0.8089 0.0139 +vt 0.8066 0.0074 +vt 0.8093 0.0083 +vt 0.8101 0.0089 +vt 0.7993 0.0730 +vt 0.7956 0.0729 +vt 0.7961 0.0672 +vt 0.7997 0.0675 +vt 0.7967 0.0617 +vt 0.8003 0.0621 +vt 0.8069 0.0064 +vt 0.7751 0.0535 +vt 0.7701 0.0471 +vt 0.7762 0.0479 +vt 0.7769 0.0423 +vt 0.7694 0.0460 +vt 0.7703 0.0413 +vt 0.7712 0.0358 +vt 0.7778 0.0367 +vt 0.7720 0.0303 +vt 0.7786 0.0312 +vt 0.7728 0.0248 +vt 0.7795 0.0257 +vt 0.7736 0.0192 +vt 0.7803 0.0201 +vt 0.7744 0.0136 +vt 0.7812 0.0144 +vt 0.7752 0.0078 +vt 0.7821 0.0087 +vt 0.7759 0.0018 +vt 0.7831 0.0029 +vt 0.7760 0.0007 +vt 0.7834 0.0017 +vt 0.7757 0.0540 +vt 0.7757 0.0535 +vt 0.7993 0.0756 +vt 0.3697 0.4405 +vt 0.3750 0.4408 +vt 0.3722 0.4433 +vt 0.8896 0.1222 +vt 0.8930 0.1218 +vt 0.8937 0.1267 +vt 0.8903 0.1272 +vt 0.8946 0.1316 +vt 0.8912 0.1322 +vt 0.8955 0.1365 +vt 0.8921 0.1372 +vt 0.8966 0.1414 +vt 0.8932 0.1421 +vt 0.8977 0.1462 +vt 0.8944 0.1470 +vt 0.8991 0.1509 +vt 0.8958 0.1519 +vt 0.9005 0.1556 +vt 0.8973 0.1567 +vt 0.8989 0.1614 +vt 0.9022 0.1603 +vt 0.8994 0.0007 +vt 0.9028 0.0019 +vt 0.8870 0.0868 +vt 0.8904 0.0867 +vt 0.8906 0.0918 +vt 0.8871 0.0919 +vt 0.8908 0.0968 +vt 0.8873 0.0969 +vt 0.8911 0.1018 +vt 0.8876 0.1020 +vt 0.8914 0.1068 +vt 0.8880 0.1071 +vt 0.8919 0.1118 +vt 0.8884 0.1121 +vt 0.8924 0.1168 +vt 0.8890 0.1172 +vt 0.9007 0.1256 +vt 0.8990 0.1259 +vt 0.8983 0.1210 +vt 0.9000 0.1208 +vt 0.9014 0.1304 +vt 0.8998 0.1307 +vt 0.9024 0.1351 +vt 0.9007 0.1354 +vt 0.9033 0.1398 +vt 0.9017 0.1402 +vt 0.9045 0.1444 +vt 0.9028 0.1448 +vt 0.9057 0.1490 +vt 0.9041 0.1495 +vt 0.9071 0.1535 +vt 0.9055 0.1540 +vt 0.9085 0.1582 +vt 0.9069 0.1585 +vt 0.8985 0.1063 +vt 0.8967 0.1064 +vt 0.8964 0.1015 +vt 0.8981 0.1014 +vt 0.8989 0.1111 +vt 0.8972 0.1113 +vt 0.9132 0.0958 +vt 0.9135 0.1005 +vt 0.8979 0.0965 +vt 0.9145 0.1143 +vt 0.9151 0.1189 +vt 0.8994 0.1160 +vt 0.9193 0.1229 +vt 0.9199 0.1273 +vt 0.9163 0.1279 +vt 0.9155 0.1234 +vt 0.9206 0.1317 +vt 0.9212 0.1360 +vt 0.9177 0.1366 +vt 0.9169 0.1323 +vt 0.9220 0.1402 +vt 0.9228 0.1443 +vt 0.9195 0.1450 +vt 0.9185 0.1409 +vt 0.9237 0.1482 +vt 0.9246 0.1518 +vt 0.9217 0.1529 +vt 0.9205 0.1491 +vt 0.9344 0.0951 +vt 0.9346 0.0995 +vt 0.9173 0.1003 +vt 0.9171 0.0957 +vt 0.9348 0.1038 +vt 0.9351 0.1082 +vt 0.9179 0.1094 +vt 0.9176 0.1048 +vt 0.9353 0.1125 +vt 0.9357 0.1168 +vt 0.9188 0.1185 +vt 0.9184 0.1139 +vt 0.9516 0.1207 +vt 0.9502 0.1186 +vt 0.9519 0.1185 +vt 0.9500 0.0873 +vt 0.9488 0.0849 +vt 0.9505 0.0850 +vt 0.9501 0.0936 +vt 0.9490 0.0960 +vt 0.9459 0.0948 +vt 0.9504 0.1040 +vt 0.9491 0.1018 +vt 0.9508 0.1018 +vt 0.9508 0.1104 +vt 0.9498 0.1127 +vt 0.9468 0.1117 +vt 0.9462 0.1032 +vt 0.9458 0.0862 +vt 0.9482 0.1327 +vt 0.9482 0.1285 +vt 0.9513 0.1295 +vt 0.9512 0.1324 +vt 0.9474 0.1200 +vt 0.9517 0.1353 +vt 0.9489 0.1368 +vt 0.9538 0.1491 +vt 0.9535 0.1522 +vt 0.9519 0.1518 +vt 0.9520 0.1489 +vt 0.9524 0.1462 +vt 0.9540 0.1461 +vt 0.9506 0.0958 +vt 0.9514 0.1125 +vt 0.8977 0.0916 +vt 0.9132 0.0911 +vt 0.9142 0.1097 +vt 0.9170 0.0911 +vt 0.9344 0.0907 +vt 0.6169 0.6281 +vt 0.6169 0.6243 +vt 0.6472 0.6243 +vt 0.6547 0.6281 +vt 0.6547 0.6161 +vt 0.6472 0.6199 +vt 0.6169 0.6199 +vt 0.6169 0.6161 +vt 0.7891 0.6115 +vt 0.7891 0.6158 +vt 0.7589 0.6158 +vt 0.7589 0.6115 +vt 0.2901 0.9151 +vt 0.2899 0.9158 +vt 0.2883 0.9160 +vt 0.2878 0.9153 +vt 0.2909 0.9290 +vt 0.2911 0.9276 +vt 0.2934 0.9270 +vt 0.2944 0.9283 +vt 0.6263 0.9254 +vt 0.6265 0.9240 +vt 0.6288 0.9234 +vt 0.6298 0.9247 +vt 0.2875 0.9214 +vt 0.2873 0.9184 +vt 0.2917 0.9171 +vt 0.2930 0.9197 +vt 0.5869 0.9126 +vt 0.5825 0.9140 +vt 0.5835 0.9115 +vt 0.5852 0.9113 +vt 0.5827 0.9170 +vt 0.5883 0.9152 +vt 0.5887 0.9226 +vt 0.5863 0.9232 +vt 0.6270 0.9135 +vt 0.6227 0.9148 +vt 0.6237 0.9124 +vt 0.6253 0.9122 +vt 0.8581 0.9474 +vt 0.8571 0.9522 +vt 0.8551 0.9522 +vt 0.8529 0.9484 +vt 0.8632 0.9582 +vt 0.8602 0.9621 +vt 0.8579 0.9584 +vt 0.8593 0.9567 +vt 0.8559 0.9584 +vt 0.8549 0.9631 +vt 0.8499 0.9600 +vt 0.8544 0.9569 +vt 0.7595 0.1875 +vt 0.7606 0.1853 +vt 0.7616 0.1853 +vt 0.7625 0.1877 +vt 0.7643 0.1856 +vt 0.7624 0.1845 +vt 0.7622 0.1825 +vt 0.7643 0.1814 +vt 0.7702 0.1797 +vt 0.7695 0.1819 +vt 0.7684 0.1819 +vt 0.7674 0.1796 +vt 0.7657 0.1817 +vt 0.7676 0.1827 +vt 0.7679 0.1847 +vt 0.7657 0.1861 +vt 0.7680 0.1876 +vt 0.7687 0.1855 +vt 0.7697 0.1854 +vt 0.7707 0.1877 +vt 0.7725 0.1857 +vt 0.7705 0.1847 +vt 0.7702 0.1827 +vt 0.7725 0.1813 +vt 0.7604 0.1817 +vt 0.7596 0.1825 +vt 0.7577 0.1815 +vt 0.7594 0.1793 +vt 0.8585 0.2158 +vt 0.8576 0.2178 +vt 0.8542 0.2179 +vt 0.8531 0.2155 +vt 0.8502 0.2190 +vt 0.8522 0.2199 +vt 0.8524 0.2252 +vt 0.8503 0.2259 +vt 0.8597 0.2253 +vt 0.8618 0.2265 +vt 0.8584 0.2296 +vt 0.8577 0.2273 +vt 0.7433 0.3123 +vt 0.7484 0.3133 +vt 0.7446 0.3182 +vt 0.7421 0.3146 +vt 0.7027 0.2954 +vt 0.6891 0.2883 +vt 0.6925 0.2817 +vt 0.7067 0.2883 +vt 0.7545 0.3259 +vt 0.7519 0.3309 +vt 0.7459 0.3267 +vt 0.7474 0.3238 +vt 0.7335 0.3306 +vt 0.7107 0.3232 +vt 0.7137 0.3157 +vt 0.7343 0.3282 +vt 0.6939 0.3168 +vt 0.6800 0.3117 +vt 0.6825 0.3050 +vt 0.6969 0.3096 +vt 0.6782 0.3169 +vt 0.6925 0.3215 +vt 0.6913 0.3257 +vt 0.6766 0.3226 +vt 0.6899 0.3311 +vt 0.7066 0.3350 +vt 0.7045 0.3426 +vt 0.6878 0.3383 +vt 0.7279 0.3447 +vt 0.7328 0.3442 +vt 0.7306 0.3498 +vt 0.7274 0.3471 +vt 0.6728 0.3401 +vt 0.6870 0.3429 +vt 0.6863 0.3471 +vt 0.6719 0.3457 +vt 0.7419 0.3543 +vt 0.7406 0.3596 +vt 0.7341 0.3575 +vt 0.7347 0.3544 +vt 0.6855 0.3524 +vt 0.7020 0.3544 +vt 0.7007 0.3619 +vt 0.6842 0.3595 +vt 0.7236 0.3614 +vt 0.7283 0.3604 +vt 0.7269 0.3661 +vt 0.7234 0.3638 +vt 0.6702 0.3628 +vt 0.6840 0.3640 +vt 0.6837 0.3680 +vt 0.6700 0.3682 +vt 0.7213 0.3809 +vt 0.6985 0.3808 +vt 0.6993 0.3735 +vt 0.7213 0.3784 +vt 0.6830 0.3799 +vt 0.6703 0.3797 +vt 0.6703 0.3735 +vt 0.6835 0.3731 +vt 0.7375 0.3844 +vt 0.7307 0.3895 +vt 0.7305 0.3863 +vt 0.7118 0.2790 +vt 0.7282 0.2887 +vt 0.7259 0.2923 +vt 0.7095 0.2831 +vt 0.7008 0.3000 +vt 0.7177 0.3075 +vt 0.7158 0.3113 +vt 0.6990 0.3042 +vt 0.6832 0.3840 +vt 0.6984 0.3842 +vt 0.6981 0.3877 +vt 0.6833 0.3877 +vt 0.7456 0.2992 +vt 0.7578 0.3102 +vt 0.7556 0.3128 +vt 0.7422 0.3041 +vt 0.7270 0.3331 +vt 0.7400 0.3388 +vt 0.7389 0.3418 +vt 0.7251 0.3379 +vt 0.7214 0.3503 +vt 0.7202 0.3552 +vt 0.7029 0.3500 +vt 0.7039 0.3462 +vt 0.7179 0.3676 +vt 0.7172 0.3726 +vt 0.6998 0.3692 +vt 0.7004 0.3654 +vt 0.6835 0.3903 +vt 0.6714 0.3926 +vt 0.6708 0.3896 +vt 0.7156 0.3941 +vt 0.6979 0.3901 +vt 0.7157 0.3908 +vt 0.7605 0.3181 +vt 0.7559 0.3175 +vt 0.7540 0.3146 +vt 0.7452 0.3451 +vt 0.7407 0.3460 +vt 0.7380 0.3439 +vt 0.7082 0.3306 +vt 0.7073 0.3332 +vt 0.6905 0.3287 +vt 0.7024 0.3525 +vt 0.6858 0.3501 +vt 0.6996 0.3717 +vt 0.6835 0.3709 +vt 0.7313 0.3733 +vt 0.7378 0.3745 +vt 0.7339 0.3770 +vt 0.7309 0.3754 +vt 0.7448 0.3288 +vt 0.7309 0.3239 +vt 0.7324 0.3210 +vt 0.6978 0.3072 +vt 0.6831 0.3028 +vt 0.6842 0.2992 +vt 0.7402 0.3070 +vt 0.7244 0.2947 +vt 0.7079 0.2860 +vt 0.6935 0.2795 +vt 0.6951 0.2760 +vt 0.7334 0.3596 +vt 0.7195 0.3581 +vt 0.2207 0.3403 +vt 0.2186 0.3438 +vt 0.2064 0.3293 +vt 0.2095 0.3276 +vt 0.2125 0.2976 +vt 0.2182 0.2946 +vt 0.2190 0.2984 +vt 0.2152 0.3008 +vt 0.7136 0.6201 +vt 0.7160 0.6211 +vt 0.7163 0.6240 +vt 0.7138 0.6251 +vt 0.7191 0.6195 +vt 0.7203 0.6167 +vt 0.7232 0.6198 +vt 0.7205 0.6209 +vt 0.7207 0.6239 +vt 0.7232 0.6253 +vt 0.7201 0.6281 +vt 0.7193 0.6254 +vt 0.6310 0.8151 +vt 0.6310 0.8264 +vt 0.6282 0.8237 +vt 0.6226 0.8237 +vt 0.6197 0.8264 +vt 0.6197 0.8151 +vt 0.6310 0.8317 +vt 0.6310 0.8430 +vt 0.6282 0.8403 +vt 0.6226 0.8403 +vt 0.6197 0.8430 +vt 0.6197 0.8317 +vt 0.6310 0.7985 +vt 0.6310 0.8098 +vt 0.6282 0.8071 +vt 0.6226 0.8071 +vt 0.6197 0.8098 +vt 0.6197 0.7985 +vt 0.9489 0.9617 +vt 0.9480 0.9603 +vt 0.9531 0.9569 +vt 0.9541 0.9583 +vt 0.9450 0.9458 +vt 0.9457 0.9477 +vt 0.9419 0.9502 +vt 0.9402 0.9486 +vt 0.9019 0.9633 +vt 0.9010 0.9619 +vt 0.9061 0.9585 +vt 0.9070 0.9598 +vt 0.8979 0.9474 +vt 0.8987 0.9493 +vt 0.8948 0.9517 +vt 0.8932 0.9502 +vt 0.9233 0.6272 +vt 0.9221 0.6262 +vt 0.9255 0.6222 +vt 0.9271 0.6226 +vt 0.9168 0.6121 +vt 0.9178 0.6139 +vt 0.9142 0.6170 +vt 0.9122 0.6157 +vt 0.9516 0.2519 +vt 0.9507 0.2505 +vt 0.9558 0.2471 +vt 0.9567 0.2484 +vt 0.1255 0.9553 +vt 0.1246 0.9539 +vt 0.1297 0.9505 +vt 0.1306 0.9519 +vt 0.1215 0.9395 +vt 0.1223 0.9413 +vt 0.1184 0.9438 +vt 0.1168 0.9422 +vt 0.9498 0.9498 +vt 0.9524 0.9537 +vt 0.9455 0.9588 +vt 0.9426 0.9552 +vt 0.8985 0.9603 +vt 0.8956 0.9568 +vt 0.9027 0.9514 +vt 0.9053 0.9553 +vt 0.9193 0.6251 +vt 0.9158 0.6220 +vt 0.9221 0.6156 +vt 0.9249 0.6191 +vt 0.1221 0.9524 +vt 0.1192 0.9488 +vt 0.1263 0.9435 +vt 0.1289 0.9473 +vt 0.9446 0.2403 +vt 0.9484 0.2379 +vt 0.9525 0.2400 +vt 0.9453 0.2454 +vt 0.2321 0.9782 +vt 0.2283 0.9782 +vt 0.2283 0.9027 +vt 0.2321 0.9027 +vt 0.6201 0.5505 +vt 0.6241 0.5423 +vt 0.6419 0.5272 +vt 0.6468 0.5292 +vt 0.6445 0.5079 +vt 0.6415 0.5139 +vt 0.6255 0.5268 +vt 0.6196 0.5270 +vt 0.6207 0.5156 +vt 0.6240 0.5077 +vt 0.6402 0.4926 +vt 0.6448 0.4943 +vt 0.6420 0.4736 +vt 0.6393 0.4797 +vt 0.6246 0.4929 +vt 0.6190 0.4934 +vt 0.9682 0.7261 +vt 0.9651 0.7288 +vt 0.9651 0.6532 +vt 0.9682 0.6505 +vt 0.6156 0.6144 +vt 0.6040 0.6155 +vt 0.6085 0.6008 +vt 0.2784 0.4887 +vt 0.2668 0.4601 +vt 0.2857 0.4729 +vt 0.9648 0.9408 +vt 0.9660 0.9427 +vt 0.9649 0.9374 +vt 0.9663 0.9358 +vt 0.6019 0.5294 +vt 0.6008 0.5535 +vt 0.4534 0.6273 +vt 0.4544 0.6069 +vt 0.4660 0.6116 +vt 0.5951 0.6032 +vt 0.5993 0.6129 +vt 0.5966 0.6120 +vt 0.6031 0.5712 +vt 0.6055 0.5853 +vt 0.7336 0.2118 +vt 0.7151 0.2170 +vt 0.6965 0.2118 +vt 0.4659 0.6070 +vt 0.7336 0.2292 +vt 0.7151 0.2239 +vt 0.7336 0.2239 +vt 0.4659 0.5964 +vt 0.4546 0.6008 +vt 0.4549 0.5769 +vt 0.4660 0.5814 +vt 0.2103 0.7969 +vt 0.2045 0.8153 +vt 0.2051 0.7968 +vt 0.4659 0.5668 +vt 0.4550 0.5711 +vt 0.4547 0.5563 +vt 0.1930 0.7964 +vt 0.1976 0.8151 +vt 0.1918 0.8334 +vt 0.4660 0.5770 +vt 0.6965 0.2292 +vt 0.2091 0.8340 +vt 0.6058 0.5853 +vt 0.6033 0.5710 +vt 0.8819 0.2419 +vt 0.8806 0.2462 +vt 0.6310 0.8759 +vt 0.6275 0.8726 +vt 0.6204 0.8757 +vt 0.6243 0.8727 +vt 0.8821 0.2567 +vt 0.8810 0.2522 +vt 0.3479 0.9851 +vt 0.3330 0.9511 +vt 0.3506 0.9842 +vt 0.3384 0.9879 +vt 0.3306 0.9521 +vt 0.4660 0.5712 +vt 0.1982 0.7965 +vt 0.4659 0.6009 +vt 0.7336 0.2170 +vt 0.7933 0.9632 +vt 0.7949 0.9591 +vt 0.7984 0.9539 +vt 0.8028 0.9516 +vt 0.4251 0.0208 +vt 0.4252 0.0311 +vt 0.2965 0.0315 +vt 0.2965 0.0212 +vt 0.2999 0.0386 +vt 0.4285 0.0382 +vt 0.8502 0.2556 +vt 0.8588 0.2556 +vt 0.8588 0.2326 +vt 0.8502 0.2326 +vt 0.8734 0.2470 +vt 0.8734 0.2413 +vt 0.9700 0.8307 +vt 0.9722 0.8314 +vt 0.8104 0.6136 +vt 0.8144 0.6120 +vt 0.0629 0.9502 +vt 0.0648 0.9536 +vt 0.0536 0.9449 +vt 0.0580 0.9460 +vt 0.8062 0.6182 +vt 0.8046 0.6226 +vt 0.3428 0.7524 +vt 0.3170 0.7427 +vt 0.3464 0.7439 +vt 0.3076 0.7374 +vt 0.3004 0.7297 +vt 0.3401 0.7270 +vt 0.3465 0.7335 +vt 0.3550 0.7378 +vt 0.3569 0.7468 +vt 0.2624 0.5898 +vt 0.2838 0.4471 +vt 0.2947 0.4683 +vt 0.2551 0.9993 +vt 0.2551 0.9238 +vt 0.7277 0.5894 +vt 0.7277 0.6155 +vt 0.4300 0.8187 +vt 0.4300 0.8036 +vt 0.4407 0.8036 +vt 0.7489 0.5865 +vt 0.7489 0.6136 +vt 0.3066 0.8375 +vt 0.3053 0.8267 +vt 0.3158 0.8375 +vt 0.2961 0.8267 +vt 0.0159 0.0944 +vt 0.0038 0.0922 +vt 0.7369 0.9468 +vt 0.7369 0.9336 +vt 0.7275 0.9336 +vt 0.7118 0.9587 +vt 0.7118 0.9493 +vt 0.7250 0.9587 +vt 0.6547 0.9426 +vt 0.6485 0.9364 +vt 0.6340 0.9508 +vt 0.6402 0.9571 +vt 0.9084 0.6040 +vt 0.9216 0.6040 +vt 0.9216 0.5946 +vt 0.8965 0.5789 +vt 0.9060 0.5789 +vt 0.8965 0.5921 +vt 0.1486 0.0832 +vt 0.3187 0.0620 +vt 0.2926 0.0662 +vt 0.2204 0.0535 +vt 0.1468 0.0587 +vt 0.2195 0.0607 +vt 0.1466 0.0658 +vt 0.1474 0.0757 +vt 0.2192 0.0722 +vt 0.2200 0.0801 +vt 0.2929 0.0749 +vt 0.7909 0.2579 +vt 0.8041 0.2579 +vt 0.7909 0.2485 +vt 0.8177 0.2316 +vt 0.8082 0.2316 +vt 0.8221 0.2060 +vt 0.8221 0.2154 +vt 0.8353 0.2154 +vt 0.8489 0.1890 +vt 0.8394 0.1890 +vt 0.7975 0.5815 +vt 0.7895 0.5889 +vt 0.7758 0.6057 +vt 0.7852 0.6057 +vt 0.7852 0.5925 +vt 0.7589 0.5789 +vt 0.7589 0.5883 +vt 0.8118 0.5961 +vt 0.8039 0.6035 +vt 0.7721 0.5789 +vt 0.8489 0.2023 +vt 0.8177 0.2448 +vt 0.8621 0.7155 +vt 0.8645 0.7200 +vt 0.8669 0.7245 +vt 0.8714 0.7338 +vt 0.8691 0.7292 +vt 0.8776 0.7481 +vt 0.8848 0.7677 +vt 0.8894 0.7828 +vt 0.8907 0.7879 +vt 0.8919 0.7931 +vt 0.8929 0.7983 +vt 0.8939 0.8035 +vt 0.8946 0.8088 +vt 0.8952 0.8141 +vt 0.8955 0.8193 +vt 0.8344 0.6745 +vt 0.8313 0.6709 +vt 0.8374 0.6783 +vt 0.8404 0.6821 +vt 0.8543 0.7024 +vt 0.6976 0.6076 +vt 0.6930 0.5965 +vt 0.8260 0.7815 +vt 0.8253 0.7782 +vt 0.8304 0.7811 +vt 0.8309 0.7950 +vt 0.8360 0.7981 +vt 0.8839 0.7842 +vt 0.8200 0.7423 +vt 0.8217 0.7463 +vt 0.8173 0.7484 +vt 0.8482 0.7444 +vt 0.8322 0.7852 +vt 0.8333 0.7895 +vt 0.8299 0.7892 +vt 0.8538 0.7472 +vt 0.8501 0.7488 +vt 0.8272 0.6740 +vt 0.8448 0.8095 +vt 0.8433 0.8053 +vt 0.8513 0.8076 +vt 0.8914 0.8144 +vt 0.8908 0.8092 +vt 0.8214 0.7703 +vt 0.8225 0.7733 +vt 0.8161 0.7343 +vt 0.8180 0.7384 +vt 0.8119 0.7364 +vt 0.8092 0.7377 +vt 0.8074 0.7386 +vt 0.8060 0.7358 +vt 0.8075 0.7352 +vt 0.8376 0.6842 +vt 0.8741 0.7495 +vt 0.8422 0.8009 +vt 0.8386 0.8066 +vt 0.8376 0.8022 +vt 0.8680 0.7354 +vt 0.8874 0.7993 +vt 0.8719 0.8022 +vt 0.8237 0.7752 +vt 0.8216 0.6961 +vt 0.8240 0.6997 +vt 0.8192 0.6926 +vt 0.8387 0.7685 +vt 0.8555 0.7622 +vt 0.8520 0.7532 +vt 0.8538 0.7577 +vt 0.8895 0.8146 +vt 0.8900 0.8199 +vt 0.8746 0.8200 +vt 0.8523 0.7095 +vt 0.8498 0.7052 +vt 0.8513 0.7043 +vt 0.8882 0.7939 +vt 0.8892 0.7990 +vt 0.8870 0.7888 +vt 0.8795 0.7694 +vt 0.8812 0.7689 +vt 0.8117 0.7118 +vt 0.8299 0.7475 +vt 0.8246 0.6940 +vt 0.8691 0.8075 +vt 0.8682 0.8031 +vt 0.8575 0.7562 +vt 0.8390 0.7172 +vt 0.8366 0.7132 +vt 0.8054 0.7337 +vt 0.7980 0.7206 +vt 0.7974 0.7184 +vt 0.7995 0.7199 +vt 0.8428 0.8193 +vt 0.8439 0.8235 +vt 0.8283 0.7898 +vt 0.8134 0.7514 +vt 0.8130 0.7492 +vt 0.8150 0.7509 +vt 0.8798 0.6924 +vt 0.8829 0.6971 +vt 0.8767 0.6878 +vt 0.8736 0.6834 +vt 0.8704 0.6791 +vt 0.8672 0.6748 +vt 0.8641 0.6707 +vt 0.8609 0.6666 +vt 0.8578 0.6625 +vt 0.8546 0.6584 +vt 0.8889 0.7073 +vt 0.8860 0.7021 +vt 0.8920 0.6766 +vt 0.8955 0.6811 +vt 0.8884 0.6721 +vt 0.8991 0.6624 +vt 0.9004 0.6636 +vt 0.8849 0.6678 +vt 0.8814 0.6636 +vt 0.8780 0.6595 +vt 0.8746 0.6554 +vt 0.8713 0.6515 +vt 0.8681 0.6476 +vt 0.8959 0.6818 +vt 0.8952 0.6584 +vt 0.8915 0.6545 +vt 0.8879 0.6506 +vt 0.8844 0.6468 +vt 0.8810 0.6430 +vt 0.8777 0.6392 +vt 0.8738 0.6359 +vt 0.8746 0.6357 +vt 0.8654 0.6432 +vt 0.8495 0.6561 +vt 0.8507 0.6537 +vt 0.8514 0.6544 +vt 0.8651 0.6440 +vt 0.6051 0.6164 +vt 0.8949 0.0418 +vt 0.8942 0.0468 +vt 0.8956 0.0368 +vt 0.8965 0.0319 +vt 0.8974 0.0269 +vt 0.8985 0.0220 +vt 0.8997 0.0171 +vt 0.9012 0.0122 +vt 0.9027 0.0074 +vt 0.8923 0.0767 +vt 0.8922 0.0817 +vt 0.8924 0.0718 +vt 0.8926 0.0668 +vt 0.8929 0.0618 +vt 0.8932 0.0568 +vt 0.8937 0.0518 +vt 0.9174 0.0311 +vt 0.9183 0.0267 +vt 0.9192 0.0224 +vt 0.9133 0.0678 +vt 0.9132 0.0724 +vt 0.9137 0.0631 +vt 0.9139 0.0585 +vt 0.9357 0.0512 +vt 0.9521 0.0431 +vt 0.9479 0.0438 +vt 0.9524 0.1543 +vt 0.9512 0.0535 +vt 0.8991 0.0374 +vt 0.9471 0.0521 +vt 0.9493 0.1522 +vt 0.9488 0.0311 +vt 0.9518 0.0314 +vt 0.9508 0.0651 +vt 0.9489 0.0650 +vt 0.6570 0.6243 +vt 0.6570 0.6199 +vt 0.6255 0.8962 +vt 0.6232 0.8963 +vt 0.6229 0.9025 +vt 0.6284 0.9007 +vt 0.8425 0.9584 +vt 0.8435 0.9631 +vt 0.8433 0.9522 +vt 0.8455 0.9484 +vt 0.5762 0.2525 +vt 0.5740 0.2538 +vt 0.5716 0.2587 +vt 0.5723 0.2567 +vt 0.8672 0.2179 +vt 0.8661 0.2155 +vt 0.8660 0.2293 +vt 0.8672 0.2273 +vt 0.0777 0.6862 +vt 0.0823 0.6256 +vt 0.1055 0.6278 +vt 0.1043 0.6400 +vt 0.1022 0.7837 +vt 0.0986 0.7758 +vt 0.1166 0.7450 +vt 0.1190 0.7508 +vt 0.0544 0.7512 +vt 0.0529 0.7444 +vt 0.1070 0.7122 +vt 0.1078 0.7181 +vt 0.1055 0.6956 +vt 0.1056 0.7015 +vt 0.0969 0.7721 +vt 0.1009 0.7283 +vt 0.0785 0.6939 +vt 0.1175 0.6942 +vt 0.1185 0.7091 +vt 0.1353 0.7533 +vt 0.0512 0.6854 +vt 0.0634 0.6878 +vt 0.0570 0.7629 +vt 0.0517 0.7391 +vt 0.0494 0.7159 +vt 0.0721 0.8010 +vt 0.1065 0.7459 +vt 0.0766 0.7728 +vt 0.1181 0.7348 +vt 0.1208 0.7327 +vt 0.1366 0.7621 +vt 0.1162 0.7170 +vt 0.0818 0.7260 +vt 0.2039 0.4377 +vt 0.2084 0.4409 +vt 0.2117 0.4580 +vt 0.2084 0.4625 +vt 0.4445 0.8375 +vt 0.4445 0.8564 +vt 0.7964 0.5728 +vt 0.7964 0.5672 +vt 0.7662 0.2257 +vt 0.7662 0.2200 +vt 0.6970 0.6252 +vt 0.6970 0.6196 +vt 0.9389 0.9582 +vt 0.9389 0.9510 +vt 0.9251 0.9612 +vt 0.9109 0.6148 +vt 0.8984 0.6268 +vt 0.9464 0.8050 +vt 0.9416 0.8077 +vt 0.9503 0.8208 +vt 0.9555 0.8174 +vt 0.1009 0.9395 +vt 0.0961 0.9422 +vt 0.1048 0.9553 +vt 0.1099 0.9519 +vt 0.9136 0.9474 +vt 0.9089 0.9502 +vt 0.9318 0.9631 +vt 0.9056 0.6275 +vt 0.9141 0.9603 +vt 0.9210 0.9553 +vt 0.2834 0.9000 +vt 0.2834 0.9755 +vt 0.4872 0.9207 +vt 0.4872 0.9962 +vt 0.6068 0.7976 +vt 0.6056 0.7993 +vt 0.5903 0.8032 +vt 0.5923 0.8024 +vt 0.0967 0.9142 +vt 0.1220 0.8916 +vt 0.0984 0.9381 +vt 0.1576 0.8221 +vt 0.1341 0.8685 +vt 0.1363 0.8355 +vt 0.6264 0.8564 +vt 0.6277 0.8614 +vt 0.6261 0.8505 +vt 0.6278 0.8459 +vt 0.5553 0.8392 +vt 0.5573 0.8349 +vt 0.5568 0.8679 +vt 0.9187 0.2159 +vt 0.9214 0.2147 +vt 0.9216 0.2152 +vt 0.8141 0.9474 +vt 0.8121 0.9523 +vt 0.8087 0.9575 +vt 0.8042 0.9601 +vt 0.7257 0.3940 +vt 0.2964 0.2278 +vt 0.2997 0.2207 +vt 0.4285 0.2212 +vt 0.4251 0.2283 +vt 0.3095 0.2077 +vt 0.3992 0.2082 +vt 0.4168 0.1967 +vt 0.4192 0.1992 +vt 0.8455 0.6029 +vt 0.8500 0.5969 +vt 0.8541 0.6029 +vt 0.8687 0.5943 +vt 0.8611 0.5885 +vt 0.8687 0.5885 +vt 0.6106 0.9015 +vt 0.6129 0.9086 +vt 0.6107 0.9093 +vt 0.6084 0.9022 +vt 0.0910 0.9536 +vt 0.0891 0.9502 +vt 0.0897 0.9395 +vt 0.0883 0.9438 +vt 0.6879 0.4539 +vt 0.6837 0.3923 +vt 0.3165 0.6834 +vt 0.3423 0.6733 +vt 0.3460 0.6818 +vt 0.3001 0.6967 +vt 0.3072 0.6888 +vt 0.3462 0.6921 +vt 0.3399 0.6988 +vt 0.2161 0.5813 +vt 0.4798 0.7571 +vt 0.5363 0.7439 +vt 0.5363 0.7571 +vt 0.0874 0.6070 +vt 0.7301 0.4454 +vt 0.7295 0.4508 +vt 0.7271 0.4480 +vt 0.3158 0.8564 +vt 0.3053 0.8673 +vt 0.3066 0.8564 +vt 0.2538 0.9238 +vt 0.7383 0.1890 +vt 0.7568 0.1945 +vt 0.7368 0.2298 +vt 0.7553 0.2298 +vt 0.5090 0.8675 +vt 0.2961 0.8673 +vt 0.4481 0.1805 +vt 0.4481 0.1399 +vt 0.5306 0.1398 +vt 0.5306 0.1804 +vt 0.0038 0.1667 +vt 0.0154 0.1648 +vt 0.6164 0.9186 +vt 0.6102 0.9124 +vt 0.5957 0.9268 +vt 0.6020 0.9331 +vt 0.7477 0.9336 +vt 0.7383 0.9336 +vt 0.7383 0.9468 +vt 0.7502 0.9587 +vt 0.7634 0.9587 +vt 0.0007 0.9551 +vt 0.0007 0.9646 +vt 0.0139 0.9646 +vt 0.0258 0.9527 +vt 0.0258 0.9395 +vt 0.8857 0.6040 +vt 0.8952 0.6040 +vt 0.8952 0.5908 +vt 0.8833 0.5789 +vt 0.8700 0.5789 +vt 0.7634 0.9493 +vt 0.0164 0.9395 +vt 0.8700 0.5883 +vt 0.1464 0.2003 +vt 0.1462 0.1933 +vt 0.1480 0.1756 +vt 0.2197 0.1790 +vt 0.2189 0.1868 +vt 0.1468 0.1831 +vt 0.2933 0.1335 +vt 0.3180 0.1765 +vt 0.2199 0.2055 +vt 0.2924 0.1930 +vt 0.3186 0.1973 +vt 0.2189 0.1982 +vt 0.2910 0.7452 +vt 0.2830 0.7377 +vt 0.8147 0.5925 +vt 0.8147 0.6057 +vt 0.8242 0.6057 +vt 0.8411 0.5883 +vt 0.8411 0.5789 +vt 0.8279 0.5789 +vt 0.8178 0.1991 +vt 0.8098 0.1916 +vt 0.7614 0.2311 +vt 0.7519 0.2311 +vt 0.7350 0.2485 +vt 0.7350 0.2579 +vt 0.7482 0.2579 +vt 0.7614 0.2444 +vt 0.8034 0.2137 +vt 0.7955 0.2062 +vt 0.2766 0.7598 +vt 0.2687 0.7523 +vt 0.7619 0.0344 +vt 0.7676 0.0352 +vt 0.7653 0.0403 +vt 0.7606 0.0062 +vt 0.7713 0.0073 +vt 0.7706 0.0130 +vt 0.7600 0.0119 +vt 0.7611 0.0008 +vt 0.7719 0.0019 +vt 0.7699 0.0187 +vt 0.7594 0.0175 +vt 0.7692 0.0242 +vt 0.7588 0.0230 +vt 0.7684 0.0298 +vt 0.7581 0.0284 +vt 0.7612 0.0328 +vt 0.7577 0.0324 +vt 0.7992 0.0784 +vt 0.7989 0.0838 +vt 0.8167 0.0861 +vt 0.8165 0.0952 +vt 0.8166 0.0900 +vt 0.8166 0.1004 +vt 0.8167 0.1056 +vt 0.8170 0.1108 +vt 0.8173 0.1160 +vt 0.8177 0.1212 +vt 0.8182 0.1264 +vt 0.8187 0.1315 +vt 0.8194 0.1367 +vt 0.8202 0.1418 +vt 0.8211 0.1469 +vt 0.8221 0.1520 +vt 0.8233 0.1571 +vt 0.8245 0.1621 +vt 0.8259 0.1671 +vt 0.8275 0.1720 +vt 0.8293 0.1770 +vt 0.8281 0.0136 +vt 0.8260 0.0800 +vt 0.8258 0.0851 +vt 0.8276 0.1305 +vt 0.8308 0.1502 +vt 0.8307 0.0404 +vt 0.8277 0.0600 +vt 0.8440 0.1191 +vt 0.8656 0.0728 +vt 0.8649 0.0997 +vt 0.8651 0.1042 +vt 0.8651 0.1087 +vt 0.8670 0.1354 +vt 0.8690 0.1527 +vt 0.8696 0.1569 +vt 0.8702 0.1612 +vt 0.8709 0.1655 +vt 0.8702 0.0291 +vt 0.8697 0.0334 +vt 0.8691 0.0377 +vt 0.8671 0.0550 +vt 0.8809 0.0985 +vt 0.8812 0.1091 +vt 0.8816 0.1069 +vt 0.8815 0.1156 +vt 0.8773 0.1170 +vt 0.8822 0.1263 +vt 0.8845 0.1500 +vt 0.8853 0.1609 +vt 0.8857 0.1585 +vt 0.8788 0.0518 +vt 0.8819 0.0520 +vt 0.8804 0.0346 +vt 0.8835 0.0347 +vt 0.8787 0.1385 +vt 0.8818 0.1382 +vt 0.8779 0.1255 +vt 0.8773 0.0691 +vt 0.8804 0.0693 +vt 0.8815 0.0866 +vt 0.8795 0.0866 +vt 0.8814 0.1007 +vt 0.8852 0.1521 +vt 0.8710 0.0248 +vt 0.7793 0.0537 +vt 0.7799 0.0483 +vt 0.7793 0.0545 +vt 0.7806 0.0428 +vt 0.7814 0.0372 +vt 0.7667 0.0406 +vt 0.7823 0.0317 +vt 0.7832 0.0262 +vt 0.7840 0.0206 +vt 0.7850 0.0150 +vt 0.7860 0.0094 +vt 0.7860 0.0035 +vt 0.7868 0.0041 +vt 0.7664 0.0423 +vt 0.7988 0.0852 +vt 0.8948 0.1215 +vt 0.8955 0.1264 +vt 0.8963 0.1313 +vt 0.8972 0.1361 +vt 0.8983 0.1409 +vt 0.8994 0.1457 +vt 0.9008 0.1504 +vt 0.9021 0.1551 +vt 0.9037 0.1596 +vt 0.9045 0.0027 +vt 0.8923 0.0867 +vt 0.8924 0.0917 +vt 0.8925 0.0967 +vt 0.8928 0.1017 +vt 0.8931 0.1067 +vt 0.8936 0.1116 +vt 0.8941 0.1166 +vt 0.8976 0.0866 +vt 0.8958 0.0867 +vt 0.8960 0.0916 +vt 0.8961 0.0966 +vt 0.8977 0.1162 +vt 0.9137 0.1051 +vt 0.9361 0.1212 +vt 0.9366 0.1254 +vt 0.9370 0.1296 +vt 0.9375 0.1338 +vt 0.9379 0.1380 +vt 0.9385 0.1421 +vt 0.9390 0.1463 +vt 0.9398 0.1506 +vt 0.9342 0.0863 +vt 0.9169 0.0864 +vt 0.9522 0.1271 +vt 0.9531 0.1375 +vt 0.9534 0.1353 +vt 0.9535 0.1439 +vt 0.9495 0.1450 +vt 0.9528 0.1292 +vt 0.9504 0.0820 +vt 0.9485 0.0819 +vt 0.9506 0.0988 +vt 0.9487 0.0989 +vt 0.9516 0.1155 +vt 0.9497 0.1156 +vt 0.7589 0.6196 +vt 0.7967 0.6196 +vt 0.7967 0.6077 +vt 0.7589 0.6077 +vt 0.6556 0.6243 +vt 0.6556 0.6199 +vt 0.5854 0.9107 +vt 0.5830 0.9108 +vt 0.5862 0.9245 +vt 0.5896 0.9238 +vt 0.6298 0.9133 +vt 0.6255 0.9115 +vt 0.6284 0.9160 +vt 0.6232 0.9117 +vt 0.6201 0.9162 +vt 0.6229 0.9178 +vt 0.8632 0.9506 +vt 0.8586 0.9536 +vt 0.8538 0.9538 +vt 0.8499 0.9523 +vt 0.7624 0.1795 +vt 0.7614 0.1817 +vt 0.7577 0.1856 +vt 0.7598 0.1845 +vt 0.8543 0.2273 +vt 0.8531 0.2293 +vt 0.8594 0.2199 +vt 0.8618 0.2188 +vt 0.7013 0.2660 +vt 0.7051 0.2601 +vt 0.7150 0.2665 +vt 0.7111 0.2724 +vt 0.7351 0.2834 +vt 0.7332 0.2864 +vt 0.6983 0.2705 +vt 0.7638 0.3138 +vt 0.7233 0.2965 +vt 0.7193 0.3039 +vt 0.6865 0.2935 +vt 0.7393 0.3284 +vt 0.7365 0.3337 +vt 0.7472 0.3398 +vt 0.6740 0.3349 +vt 0.6708 0.3578 +vt 0.6716 0.3513 +vt 0.7259 0.3768 +vt 0.7252 0.3827 +vt 0.6703 0.3845 +vt 0.7095 0.3268 +vt 0.7350 0.3163 +vt 0.7315 0.3701 +vt 0.7160 0.3854 +vt 0.7307 0.3917 +vt 0.7471 0.3312 +vt 0.7146 0.3138 +vt 0.7362 0.3615 +vt 0.7169 0.3756 +vt 0.7241 0.3409 +vt 0.6760 0.3261 +vt 0.6717 0.3492 +vt 0.6702 0.3715 +vt 0.2101 0.3015 +vt 0.2133 0.3059 +vt 0.2096 0.3224 +vt 0.2054 0.3252 +vt 0.7216 0.2710 +vt 0.7180 0.2765 +vt 0.7305 0.2776 +vt 0.7272 0.2827 +vt 0.7166 0.6279 +vt 0.7177 0.6255 +vt 0.7174 0.6197 +vt 0.7162 0.6166 +vt 0.6282 0.7957 +vt 0.6226 0.7957 +vt 0.6282 0.8442 +vt 0.6226 0.8442 +vt 0.6282 0.8276 +vt 0.6226 0.8276 +vt 0.7363 0.2812 +vt 0.9477 0.2360 +vt 0.9429 0.2388 +vt 0.1173 0.9532 +vt 0.1240 0.9551 +vt 0.1311 0.9503 +vt 0.1311 0.9431 +vt 0.9482 0.2489 +vt 0.9550 0.2439 +vt 0.2538 0.9993 +vt 0.2255 0.9755 +vt 0.2255 0.9000 +vt 0.7276 0.4536 +vt 0.7253 0.4509 +vt 0.0308 0.4981 +vt 0.0359 0.4828 +vt 0.1104 0.4749 +vt 0.1215 0.4864 +vt 0.2653 0.4681 +vt 0.9440 0.8618 +vt 0.9601 0.8334 +vt 0.9513 0.8640 +vt 0.2069 0.4721 +vt 0.0007 0.8691 +vt 0.0134 0.8927 +vt 0.1911 0.4653 +vt 0.1867 0.9348 +vt 0.1889 0.9390 +vt 0.1887 0.9410 +vt 0.1859 0.9448 +vt 0.2018 0.9359 +vt 0.1976 0.9381 +vt 0.1905 0.9376 +vt 0.5845 0.2268 +vt 0.5816 0.2211 +vt 0.5816 0.2173 +vt 0.5847 0.2117 +vt 0.5790 0.2146 +vt 0.5751 0.2146 +vt 0.5695 0.2115 +vt 0.2011 0.9460 +vt 0.1989 0.9418 +vt 0.1990 0.9398 +vt 0.1901 0.9426 +vt 0.1972 0.9432 +vt 0.5725 0.2172 +vt 0.5724 0.2210 +vt 0.5693 0.2266 +vt 0.5750 0.2237 +vt 0.5789 0.2237 +vt 0.3089 0.9052 +vt 0.3278 0.9527 +vt 0.2961 0.9349 +vt 0.4468 0.0152 +vt 0.4423 0.0197 +vt 0.4326 0.0198 +vt 0.4307 0.0152 +vt 0.4297 0.0292 +vt 0.4326 0.0321 +vt 0.4307 0.0367 +vt 0.4423 0.0321 +vt 0.4469 0.0366 +vt 0.4297 0.0227 +vt 0.1489 0.0915 +vt 0.2195 0.0876 +vt 0.7162 0.0007 +vt 0.7563 0.0408 +vt 0.2636 0.7340 +vt 0.2536 0.7199 +vt 0.2654 0.6805 +vt 0.2566 0.7256 +vt 0.2654 0.7282 +vt 0.2531 0.5363 +vt 0.2445 0.5346 +vt 0.2505 0.5035 +vt 0.2592 0.5052 +vt 0.1077 0.6310 +vt 0.1101 0.6283 +vt 0.1105 0.6337 +vt 0.1060 0.6282 +vt 0.1084 0.6255 +vt 0.3461 0.8564 +vt 0.3461 0.8375 +vt 0.7575 0.6155 +vt 0.7524 0.6155 +vt 0.7524 0.5840 +vt 0.7575 0.5840 +vt 0.2688 0.4159 +vt 0.2591 0.4130 +vt 0.2705 0.4003 +vt 0.2696 0.3627 +vt 0.2794 0.3625 +vt 0.2802 0.4001 +vt 0.6985 0.9336 +vt 0.6853 0.9336 +vt 0.6853 0.9430 +vt 0.7104 0.9587 +vt 0.7010 0.9587 +vt 0.7104 0.9455 +vt 0.7208 0.9364 +vt 0.7146 0.9426 +vt 0.7290 0.9571 +vt 0.7353 0.9508 +vt 0.9626 0.6064 +vt 0.9626 0.5932 +vt 0.9532 0.5932 +vt 0.9375 0.6183 +vt 0.9375 0.6089 +vt 0.9507 0.6183 +vt 0.6443 0.9587 +vt 0.6575 0.9587 +vt 0.6575 0.9493 +vt 0.6324 0.9336 +vt 0.6418 0.9336 +vt 0.6324 0.9468 +vt 0.8635 0.1890 +vt 0.8502 0.1890 +vt 0.8502 0.1985 +vt 0.8754 0.2142 +vt 0.8659 0.2142 +vt 0.8754 0.2010 +vt 0.6707 0.9587 +vt 0.6840 0.9587 +vt 0.6840 0.9493 +vt 0.6588 0.9336 +vt 0.6683 0.9336 +vt 0.6588 0.9468 +vt 0.0471 0.0781 +vt 0.0390 0.0769 +vt 0.0470 0.0707 +vt 0.0478 0.0812 +vt 0.0491 0.0842 +vt 0.0509 0.0868 +vt 0.0533 0.0892 +vt 0.0560 0.0909 +vt 0.0591 0.0921 +vt 0.0622 0.0927 +vt 0.7866 0.5958 +vt 0.7866 0.6052 +vt 0.7998 0.6052 +vt 0.8134 0.5789 +vt 0.8039 0.5789 +vt 0.7627 0.2485 +vt 0.7627 0.2579 +vt 0.7759 0.2579 +vt 0.7895 0.2448 +vt 0.7895 0.2316 +vt 0.7801 0.2316 +vt 0.2939 0.7723 +vt 0.2939 0.7629 +vt 0.2807 0.7629 +vt 0.2671 0.7892 +vt 0.2766 0.7892 +vt 0.2671 0.7760 +vt 0.8134 0.5921 +vt 0.9002 0.6612 +vt 0.8992 0.6544 +vt 0.8882 0.6366 +vt 0.8848 0.6329 +vt 0.8916 0.6403 +vt 0.8951 0.6440 +vt 0.8986 0.6477 +vt 0.8989 0.6528 +vt 0.7253 0.5896 +vt 0.7240 0.5932 +vt 0.8536 0.8162 +vt 0.8458 0.8138 +vt 0.8473 0.8180 +vt 0.8009 0.6934 +vt 0.8166 0.7534 +vt 0.8317 0.6767 +vt 0.8346 0.6805 +vt 0.8058 0.7151 +vt 0.8321 0.7711 +vt 0.8175 0.7564 +vt 0.8286 0.6730 +vt 0.8612 0.7217 +vt 0.8525 0.8119 +vt 0.8362 0.6853 +vt 0.8368 0.8178 +vt 0.8385 0.8175 +vt 0.7219 0.6050 +vt 0.7198 0.6076 +vt 0.8148 0.7542 +vt 0.7962 0.7153 +vt 0.7943 0.7126 +vt 0.8040 0.7210 +vt 0.8012 0.7224 +vt 0.8016 0.7174 +vt 0.8294 0.7919 +vt 0.7087 0.6122 +vt 0.6955 0.5880 +vt 0.6976 0.5854 +vt 0.6911 0.6000 +vt 0.8120 0.7460 +vt 0.8343 0.7091 +vt 0.8472 0.7011 +vt 0.8402 0.8262 +vt 0.7932 0.7071 +vt 0.7943 0.7100 +vt 0.8202 0.7674 +vt 0.8024 0.7252 +vt 0.8817 0.6294 +vt 0.9013 0.6505 +vt 0.9401 0.0176 +vt 0.9411 0.0133 +vt 0.9459 0.0649 +vt 0.9472 0.0479 +vt 0.9536 0.0315 +vt 0.6570 0.6281 +vt 0.6948 0.6281 +vt 0.6948 0.6161 +vt 0.6570 0.6161 +vt 0.5175 0.6536 +vt 0.5175 0.6492 +vt 0.8852 0.2282 +vt 0.8761 0.2254 +vt 0.2848 0.9046 +vt 0.2944 0.9018 +vt 0.6201 0.9009 +vt 0.6298 0.8980 +vt 0.0340 0.4759 +vt 0.0314 0.4770 +vt 0.0305 0.4779 +vt 0.0294 0.4773 +vt 0.0515 0.6835 +vt 0.0636 0.6858 +vt 0.1060 0.6845 +vt 0.1010 0.6809 +vt 0.1124 0.7942 +vt 0.0898 0.8084 +vt 0.0798 0.8147 +vt 0.1062 0.7980 +vt 0.0968 0.8042 +vt 0.0619 0.7773 +vt 0.2595 0.4662 +vt 0.2592 0.3505 +vt 0.2591 0.4490 +vt 0.2604 0.4539 +vt 0.2614 0.4573 +vt 0.2563 0.4343 +vt 0.2593 0.4292 +vt 0.2592 0.4173 +vt 0.2649 0.4172 +vt 0.2643 0.4286 +vt 0.2556 0.4296 +vt 0.2551 0.4175 +vt 0.2599 0.4339 +vt 0.2628 0.4482 +vt 0.2648 0.4336 +vt 0.2677 0.4469 +vt 0.2641 0.4531 +vt 0.2654 0.4561 +vt 0.2692 0.4175 +vt 0.2682 0.4282 +vt 0.2785 0.4188 +vt 0.2774 0.4274 +vt 0.2687 0.4335 +vt 0.2714 0.4455 +vt 0.2696 0.4518 +vt 0.2777 0.4334 +vt 0.2795 0.4418 +vt 0.2736 0.4506 +vt 0.2748 0.4521 +vt 0.2708 0.4542 +vt 0.2590 0.4702 +vt 0.2643 0.4701 +vt 0.2612 0.4712 +vt 0.2627 0.4652 +vt 0.2584 0.4682 +vt 0.2647 0.4662 +vt 0.7123 0.6252 +vt 0.7123 0.6196 +vt 0.7815 0.2257 +vt 0.7815 0.2200 +vt 0.7823 0.5644 +vt 0.7936 0.5644 +vt 0.7936 0.5756 +vt 0.7823 0.5756 +vt 0.2807 0.4477 +vt 0.2819 0.4467 +vt 0.2757 0.4514 +vt 0.9560 0.8086 +vt 0.9560 0.8158 +vt 0.9421 0.8187 +vt 0.1104 0.9431 +vt 0.1104 0.9503 +vt 0.0966 0.9532 +vt 0.9232 0.9510 +vt 0.9232 0.9582 +vt 0.9094 0.9612 +vt 0.9488 0.8207 +vt 0.1033 0.9551 +vt 0.9161 0.9631 +vt 0.3461 0.8338 +vt 0.3500 0.8338 +vt 0.2994 0.4348 +vt 0.3087 0.3473 +vt 0.3097 0.3883 +vt 0.3080 0.4039 +vt 0.3122 0.4350 +vt 0.3111 0.4361 +vt 0.6105 0.7957 +vt 0.5882 0.7964 +vt 0.5883 0.8068 +vt 0.5923 0.8767 +vt 0.6016 0.9063 +vt 0.5850 0.8793 +vt 0.6106 0.8063 +vt 0.7400 0.7151 +vt 0.7401 0.8102 +vt 0.3114 0.3725 +vt 0.3208 0.4211 +vt 0.3171 0.4317 +vt 0.3064 0.4196 +vt 0.9412 0.6549 +vt 0.9383 0.6511 +vt 0.9382 0.6491 +vt 0.9404 0.6448 +vt 0.9259 0.6562 +vt 0.9298 0.6533 +vt 0.9369 0.6527 +vt 0.9365 0.6477 +vt 0.9293 0.6483 +vt 0.9251 0.6461 +vt 0.9280 0.6499 +vt 0.9281 0.6519 +vt 0.9416 0.1802 +vt 0.9266 0.2132 +vt 0.9138 0.1640 +vt 0.8424 0.5860 +vt 0.8424 0.5969 +vt 0.8637 0.5814 +vt 0.8612 0.5789 +vt 0.1484 0.1672 +vt 0.0613 0.1669 +vt 0.1821 0.6642 +vt 0.1783 0.7052 +vt 0.1636 0.7145 +vt 0.1733 0.7093 +vt 0.1642 0.7084 +vt 0.3500 0.8602 +vt 0.3461 0.8602 +vt 0.7350 0.1941 +vt 0.7401 0.1941 +vt 0.7401 0.2257 +vt 0.7350 0.2257 +vt 0.2686 0.3478 +vt 0.4300 0.8904 +vt 0.4300 0.8753 +vt 0.0461 0.1892 +vt 0.0380 0.1830 +vt 0.0462 0.1817 +vt 0.0481 0.1755 +vt 0.6024 0.9372 +vt 0.5930 0.9372 +vt 0.5930 0.9504 +vt 0.6049 0.9623 +vt 0.6181 0.9623 +vt 0.6086 0.9358 +vt 0.6181 0.9358 +vt 0.6181 0.9226 +vt 0.6062 0.9107 +vt 0.5930 0.9107 +vt 0.0288 0.9567 +vt 0.0351 0.9629 +vt 0.0495 0.9485 +vt 0.0433 0.9422 +vt 0.1482 0.9646 +vt 0.1576 0.9646 +vt 0.1576 0.9514 +vt 0.1457 0.9395 +vt 0.1325 0.9395 +vt 0.6181 0.9529 +vt 0.5930 0.9201 +vt 0.1325 0.9489 +vt 0.0468 0.1786 +vt 0.0499 0.1729 +vt 0.0523 0.1705 +vt 0.0550 0.1687 +vt 0.0581 0.1675 +vt 0.7926 0.1890 +vt 0.7831 0.1890 +vt 0.7662 0.2064 +vt 0.7662 0.2159 +vt 0.8458 0.2579 +vt 0.8458 0.2485 +vt 0.8285 0.2316 +vt 0.8190 0.2316 +vt 0.8207 0.2154 +vt 0.8207 0.2060 +vt 0.8034 0.1890 +vt 0.7939 0.1890 +vt 0.7939 0.2023 +vt 0.8075 0.2154 +vt 0.8190 0.2448 +vt 0.8326 0.2579 +vt 0.7794 0.2159 +vt 0.7926 0.2023 +vt 0.2193 0.1714 +vt 0.8256 0.0901 +vt 0.8772 0.1213 +vt 0.8765 0.0865 +vt 0.8814 0.1038 +vt 0.8837 0.1380 +vt 0.8854 0.1553 +vt 0.8854 0.0349 +vt 0.8838 0.0522 +vt 0.8823 0.0695 +vt 0.7729 0.0016 +vt 0.3199 0.4306 +vt 0.9130 0.0865 +vt 0.9457 0.0990 +vt 0.9454 0.0819 +vt 0.9493 0.1488 +vt 0.9467 0.1159 +vt 0.9530 0.1322 +vt 0.9131 0.0818 +vt 0.7975 0.6158 +vt 0.7975 0.6115 +vt 0.2944 0.9169 +vt 0.2848 0.9198 +vt 0.5896 0.9125 +vt 0.5800 0.9154 +vt 0.7208 0.3975 +vt 0.6756 0.3283 +vt 0.7384 0.3693 +vt 0.6718 0.3944 +vt 0.2673 0.3045 +vt 0.2620 0.3072 +vt 0.2711 0.3104 +vt 0.2659 0.3084 +vt 0.6282 0.8124 +vt 0.6226 0.8124 +vt 0.6282 0.8290 +vt 0.6226 0.8290 +vt 0.6282 0.8110 +vt 0.6226 0.8110 +vt 0.7234 0.4280 +vt 0.2759 0.3131 +vt 0.2837 0.3175 +vt 0.2807 0.3168 +vt 0.2819 0.3178 +vt 0.2750 0.3124 +vt 0.9407 0.9596 +vt 0.9474 0.9615 +vt 0.9546 0.9567 +vt 0.9546 0.9495 +vt 0.8937 0.9612 +vt 0.9004 0.9631 +vt 0.9075 0.9582 +vt 0.9075 0.9510 +vt 0.9146 0.6268 +vt 0.9218 0.6275 +vt 0.9271 0.6148 +vt 0.9720 0.7261 +vt 0.9720 0.6505 +vt 0.9843 0.0587 +vt 0.9951 0.0396 +vt 0.9954 0.0585 +vt 0.9695 0.9445 +vt 0.9472 0.9440 +vt 0.9477 0.9335 +vt 0.5534 0.4447 +vt 0.4417 0.5043 +vt 0.4355 0.4861 +vt 0.8424 0.3970 +vt 0.8213 0.3916 +vt 0.8648 0.3127 +vt 0.5946 0.2270 +vt 0.5997 0.2242 +vt 0.6035 0.2243 +vt 0.6085 0.2271 +vt 0.5948 0.2118 +vt 0.5975 0.2169 +vt 0.5975 0.2219 +vt 0.2028 0.9221 +vt 0.2008 0.9178 +vt 0.2023 0.8892 +vt 0.2048 0.8800 +vt 0.1920 0.9324 +vt 0.1970 0.9328 +vt 0.1994 0.9307 +vt 0.1997 0.9269 +vt 0.1951 0.9486 +vt 0.1913 0.9483 +vt 0.1885 0.9507 +vt 0.1882 0.9546 +vt 0.1847 0.9600 +vt 0.6087 0.2121 +vt 0.6036 0.2147 +vt 0.5998 0.2147 +vt 0.1878 0.9209 +vt 0.1902 0.9262 +vt 0.1899 0.9299 +vt 0.3506 0.9170 +vt 0.1976 0.9245 +vt 0.1926 0.9241 +vt 0.4065 0.9170 +vt 0.3916 0.9500 +vt 0.3787 0.9008 +vt 0.6058 0.2220 +vt 0.6059 0.2170 +vt 0.3756 0.8996 +vt 0.3887 0.9507 +vt 0.3864 0.9516 +vt 0.3666 0.9024 +vt 0.3647 0.9052 +vt 0.3837 0.9527 +vt 0.3520 0.9349 +vt 0.3942 0.9879 +vt 0.3865 0.9521 +vt 0.3889 0.9511 +vt 0.4038 0.9851 +vt 0.1906 0.9575 +vt 0.1944 0.9577 +vt 0.1999 0.9612 +vt 0.1973 0.9553 +vt 0.1976 0.9514 +vt 0.9669 0.1534 +vt 0.9768 0.1822 +vt 0.9870 0.2287 +vt 0.0168 0.1037 +vt 0.0342 0.1051 +vt 0.0166 0.1556 +vt 0.0310 0.4588 +vt 0.0411 0.4598 +vt 0.0315 0.4618 +vt 0.0450 0.4777 +vt 0.5364 0.6449 +vt 0.5325 0.6387 +vt 0.5326 0.6356 +vt 0.5364 0.6295 +vt 0.4797 0.6448 +vt 0.4798 0.6294 +vt 0.4911 0.6334 +vt 0.4800 0.6858 +vt 0.4800 0.7050 +vt 0.4375 0.6853 +vt 0.4799 0.7097 +vt 0.4022 0.7087 +vt 0.1064 0.6371 +vt 0.1089 0.6351 +vt 0.1081 0.6348 +vt 0.4911 0.8036 +vt 0.5162 0.8036 +vt 0.4659 0.8036 +vt 0.9750 0.0677 +vt 0.9653 0.0575 +vt 0.9844 0.0675 +vt 0.9751 0.0765 +vt 0.9845 0.0763 +vt 0.9847 0.0851 +vt 0.9752 0.0853 +vt 0.9660 0.1006 +vt 0.9754 0.0941 +vt 0.9848 0.0939 +vt 0.9850 0.1028 +vt 0.9755 0.1029 +vt 0.9757 0.1117 +vt 0.9851 0.1116 +vt 0.9853 0.1204 +vt 0.9758 0.1205 +vt 0.9760 0.1294 +vt 0.9854 0.1292 +vt 0.9856 0.1380 +vt 0.9761 0.1382 +vt 0.9762 0.1470 +vt 0.9857 0.1468 +vt 0.9858 0.1557 +vt 0.9764 0.1558 +vt 0.9765 0.1646 +vt 0.9860 0.1645 +vt 0.9861 0.1733 +vt 0.9767 0.1734 +vt 0.9863 0.1821 +vt 0.9824 0.0398 +vt 0.9788 0.0406 +vt 0.9752 0.0422 +vt 0.9722 0.0443 +vt 0.9695 0.0471 +vt 0.9674 0.0502 +vt 0.9660 0.0538 +vt 0.3947 0.6854 +vt 0.1717 0.4380 +vt 0.1227 0.4436 +vt 0.0733 0.4499 +vt 0.0419 0.4634 +vt 0.1091 0.6482 +vt 0.0337 0.1548 +vt 0.7244 0.5965 +vt 0.8725 0.7502 +vt 0.8088 0.7414 +vt 0.8432 0.7815 +vt 0.8448 0.7858 +vt 0.8380 0.7881 +vt 0.8367 0.7837 +vt 0.8221 0.7313 +vt 0.8351 0.8062 +vt 0.8335 0.8068 +vt 0.8685 0.7408 +vt 0.8857 0.7838 +vt 0.7995 0.7233 +vt 0.7915 0.7080 +vt 0.8009 0.7261 +vt 0.7929 0.7108 +vt 0.8589 0.7172 +vt 0.8901 0.8041 +vt 0.8270 0.6977 +vt 0.8705 0.7455 +vt 0.8558 0.7517 +vt 0.8549 0.7137 +vt 0.7253 0.6034 +vt 0.7236 0.5865 +vt 0.4904 0.6304 +vt 0.4986 0.6335 +vt 0.5081 0.6448 +vt 0.5090 0.6335 +vt 0.4994 0.6304 +vt 0.5083 0.6304 +vt 0.5166 0.6335 +vt 0.5173 0.6304 +vt 0.5232 0.6356 +vt 0.5175 0.6294 +vt 0.4901 0.6294 +vt 0.4996 0.6294 +vt 0.5081 0.6294 +vt 0.5255 0.6333 +vt 0.9130 0.0771 +vt 0.6887 0.6034 +vt 0.6853 0.6050 +vt 0.6721 0.5965 +vt 0.6875 0.5998 +vt 0.6897 0.6000 +vt 0.6871 0.6065 +vt 0.6790 0.6131 +vt 0.6807 0.6097 +vt 0.6821 0.6114 +vt 0.6754 0.6118 +vt 0.6756 0.6141 +vt 0.6790 0.5799 +vt 0.6754 0.5811 +vt 0.6756 0.5789 +vt 0.6807 0.5833 +vt 0.6821 0.5816 +vt 0.6887 0.5896 +vt 0.6853 0.5880 +vt 0.6871 0.5865 +vt 0.6897 0.5930 +vt 0.6875 0.5932 +vt 0.6832 0.6076 +vt 0.6721 0.5808 +vt 0.6832 0.5854 +vt 0.6878 0.5965 +vt 0.0350 0.4797 +vt 0.0334 0.4725 +vt 0.0435 0.4706 +vt 0.0443 0.4741 +vt 0.0321 0.4653 +vt 0.0427 0.4670 +vt 0.0327 0.4689 +vt 0.5303 0.6333 +vt 0.5303 0.6410 +vt 0.5255 0.6410 +vt 0.5232 0.6387 +vt 0.1082 0.6449 +vt 0.1083 0.6426 +vt 0.1094 0.6402 +vt 0.1036 0.6507 +vt 0.1059 0.6456 +vt 0.1090 0.6378 +vt 0.1094 0.6360 +vt 0.1063 0.6415 +vt 0.1070 0.6381 +vt 0.1081 0.6384 +vt 0.1075 0.6416 +vt 0.1053 0.6423 +vt 0.1072 0.6457 +vt 0.1051 0.6447 +vt 0.1071 0.6352 +vt 0.0690 0.6244 +vt 0.0031 0.5035 +vt 0.0403 0.5352 +vt 0.0263 0.6843 +vt 0.0285 0.6242 +vt 0.0332 0.6142 +vt 0.0229 0.6802 +vt 0.0253 0.6202 +vt 0.0007 0.6189 +vt 0.0258 0.6135 +vt 0.0529 0.6763 +vt 0.0263 0.6067 +vt 0.0272 0.5994 +vt 0.0282 0.5925 +vt 0.0293 0.5860 +vt 0.0296 0.5797 +vt 0.0299 0.5730 +vt 0.0305 0.5657 +vt 0.0312 0.5588 +vt 0.0321 0.5522 +vt 0.0392 0.5528 +vt 0.0339 0.6073 +vt 0.0346 0.6003 +vt 0.0354 0.5935 +vt 0.0362 0.5868 +vt 0.0368 0.5802 +vt 0.0373 0.5734 +vt 0.0379 0.5665 +vt 0.0386 0.5596 +vt 0.9665 0.4301 +vt 0.9572 0.4212 +vt 0.9666 0.4213 +vt 0.9475 0.4313 +vt 0.4744 0.3002 +vt 0.4690 0.3178 +vt 0.3574 0.2618 +vt 0.5412 0.8222 +vt 0.5450 0.8194 +vt 0.5521 0.8188 +vt 0.5563 0.8211 +vt 0.5535 0.8172 +vt 0.5534 0.8152 +vt 0.5556 0.8110 +vt 0.9368 0.6393 +vt 0.9365 0.6354 +vt 0.9390 0.6294 +vt 0.9305 0.6425 +vt 0.9344 0.6422 +vt 0.5517 0.8138 +vt 0.5446 0.8144 +vt 0.5404 0.8122 +vt 0.5432 0.8160 +vt 0.5434 0.8180 +vt 0.9237 0.6307 +vt 0.9273 0.6362 +vt 0.9276 0.6401 +vt 0.9336 0.6330 +vt 0.9297 0.6333 +vt 0.4468 0.2443 +vt 0.4422 0.2397 +vt 0.4423 0.2274 +vt 0.4468 0.2229 +vt 0.4296 0.2302 +vt 0.4296 0.2368 +vt 0.4307 0.2228 +vt 0.4325 0.2273 +vt 0.4306 0.2442 +vt 0.4325 0.2397 +vt 0.9692 0.2601 +vt 0.9590 0.3066 +vt 0.9491 0.3354 +vt 0.9582 0.3595 +vt 0.9482 0.3883 +vt 0.0397 0.3014 +vt 0.0494 0.3006 +vt 0.0801 0.3110 +vt 0.0451 0.2786 +vt 0.0537 0.2835 +vt 0.0443 0.2815 +vt 0.5363 0.7790 +vt 0.5255 0.7828 +vt 0.5081 0.7790 +vt 0.4798 0.7790 +vt 0.4987 0.7904 +vt 0.4800 0.7189 +vt 0.4800 0.7381 +vt 0.4023 0.7162 +vt 0.4799 0.7149 +vt 0.4377 0.7390 +vt 0.7285 0.4510 +vt 0.7343 0.5236 +vt 0.7307 0.5239 +vt 0.2947 0.2969 +vt 0.2859 0.2922 +vt 0.2791 0.2767 +vt 0.4169 0.0672 +vt 0.3182 0.0828 +vt 0.3993 0.0512 +vt 0.4316 0.1194 +vt 0.4317 0.0788 +vt 0.4482 0.0789 +vt 0.4481 0.1195 +vt 0.7702 0.4476 +vt 0.7734 0.4869 +vt 0.7666 0.4479 +vt 0.4216 0.0788 +vt 0.4168 0.1923 +vt 0.9573 0.4124 +vt 0.9574 0.4035 +vt 0.9669 0.4037 +vt 0.9667 0.4125 +vt 0.9576 0.3947 +vt 0.9577 0.3859 +vt 0.9672 0.3861 +vt 0.9670 0.3949 +vt 0.9579 0.3771 +vt 0.9580 0.3683 +vt 0.9675 0.3684 +vt 0.9673 0.3773 +vt 0.9583 0.3507 +vt 0.9584 0.3418 +vt 0.9677 0.3508 +vt 0.9676 0.3596 +vt 0.9586 0.3330 +vt 0.9587 0.3242 +vt 0.9680 0.3332 +vt 0.9679 0.3420 +vt 0.9589 0.3154 +vt 0.9683 0.3156 +vt 0.9682 0.3244 +vt 0.9685 0.3067 +vt 0.9646 0.4490 +vt 0.9773 0.4492 +vt 0.9610 0.4482 +vt 0.9574 0.4467 +vt 0.9544 0.4446 +vt 0.9516 0.4417 +vt 0.9496 0.4386 +vt 0.9482 0.4350 +vt 0.3951 0.7395 +vt 0.1275 0.3179 +vt 0.1161 0.2875 +vt 0.1743 0.3243 +vt 0.0503 0.2973 +vt 0.1935 0.2984 +vt 0.8727 0.0688 +vt 0.8725 0.0733 +vt 0.8721 0.0776 +vt 0.8721 0.0820 +vt 0.8809 0.0780 +vt 0.8718 0.0864 +vt 0.8719 0.0909 +vt 0.8717 0.0953 +vt 0.8719 0.0996 +vt 0.8805 0.0952 +vt 0.8718 0.1040 +vt 0.8720 0.1085 +vt 0.8721 0.1129 +vt 0.8725 0.1172 +vt 0.8809 0.1124 +vt 0.8726 0.1216 +vt 0.8731 0.1260 +vt 0.8733 0.1304 +vt 0.8739 0.1347 +vt 0.8821 0.1296 +vt 0.8742 0.1390 +vt 0.8747 0.1434 +vt 0.8750 0.1477 +vt 0.8757 0.1519 +vt 0.8838 0.1467 +vt 0.8759 0.1561 +vt 0.8765 0.1602 +vt 0.8768 0.1639 +vt 0.8768 0.0264 +vt 0.8765 0.0302 +vt 0.8848 0.1643 +vt 0.8760 0.0342 +vt 0.8757 0.0385 +vt 0.8751 0.0427 +vt 0.8748 0.0470 +vt 0.8838 0.0435 +vt 0.8742 0.0513 +vt 0.8739 0.0557 +vt 0.8733 0.0601 +vt 0.8732 0.0645 +vt 0.8822 0.0608 +vt 0.8848 0.0260 +vt 0.4911 0.7904 +vt 0.4798 0.7944 +vt 0.5090 0.7904 +vt 0.5166 0.7903 +vt 0.5232 0.7882 +vt 0.5173 0.7934 +vt 0.5232 0.7851 +vt 0.5175 0.7944 +vt 0.5081 0.7944 +vt 0.4996 0.7944 +vt 0.4994 0.7934 +vt 0.5083 0.7934 +vt 0.4902 0.7944 +vt 0.4904 0.7934 +vt 0.5255 0.7905 +vt 0.5364 0.7943 +vt 0.9776 0.4303 +vt 0.5325 0.7882 +vt 0.5325 0.7851 +vt 0.6545 0.6000 +vt 0.6568 0.5998 +vt 0.6556 0.6034 +vt 0.6590 0.6050 +vt 0.6572 0.6065 +vt 0.6622 0.6114 +vt 0.6636 0.6097 +vt 0.6653 0.6131 +vt 0.6689 0.6118 +vt 0.6686 0.6141 +vt 0.6686 0.5789 +vt 0.6689 0.5811 +vt 0.6653 0.5799 +vt 0.6636 0.5833 +vt 0.6622 0.5816 +vt 0.6572 0.5865 +vt 0.6590 0.5880 +vt 0.6556 0.5896 +vt 0.6568 0.5932 +vt 0.6545 0.5930 +vt 0.6611 0.6076 +vt 0.6721 0.6122 +vt 0.6611 0.5854 +vt 0.6565 0.5965 +vt 0.0434 0.2848 +vt 0.0529 0.2870 +vt 0.0520 0.2904 +vt 0.0425 0.2882 +vt 0.0417 0.2916 +vt 0.0512 0.2939 +vt 0.0409 0.2951 +vt 0.0403 0.2985 +vt 0.5303 0.7905 +vt 0.5303 0.7828 +vt 0.2596 0.3153 +vt 0.2566 0.3296 +vt 0.2609 0.3105 +vt 0.2559 0.3342 +vt 0.2595 0.3347 +vt 0.2601 0.3300 +vt 0.2650 0.3304 +vt 0.2644 0.3353 +vt 0.2632 0.3161 +vt 0.2646 0.3113 +vt 0.2699 0.3127 +vt 0.2680 0.3175 +vt 0.2649 0.3465 +vt 0.2593 0.3463 +vt 0.2682 0.3358 +vt 0.2687 0.3306 +vt 0.2776 0.3308 +vt 0.2772 0.3367 +vt 0.2690 0.3463 +vt 0.2716 0.3188 +vt 0.2738 0.3139 +vt 0.2795 0.3225 +vt 0.2553 0.3460 +vt 0.7445 0.5337 +vt 0.7552 0.5448 +vt 0.7707 0.5207 +vt 0.7725 0.5205 +vt 0.7716 0.5316 +vt 0.7653 0.5211 +vt 0.7662 0.5320 +vt 0.7607 0.5324 +vt 0.7599 0.5215 +vt 0.7545 0.5220 +vt 0.7553 0.5329 +vt 0.7499 0.5333 +vt 0.7491 0.5224 +vt 0.7436 0.5229 +vt 0.1427 0.5481 +vt 0.1374 0.5475 +vt 0.1375 0.5357 +vt 0.0572 0.5548 +vt 0.0499 0.5537 +vt 0.7798 0.5656 +vt 0.7778 0.5410 +vt 0.2782 0.3452 +vt 0.9434 0.2498 +vt 0.9501 0.2517 +vt 0.9572 0.2468 +vt 0.9572 0.2396 +vt 0.7761 0.5207 +vt 0.7750 0.5072 +vt 0.3094 0.0011 +vt 0.3391 0.0010 +vt 0.2998 0.0141 +vt 0.5391 0.6098 +vt 0.5471 0.6238 +vt 0.5532 0.6195 +vt 0.5565 0.6131 +vt 0.5578 0.6125 +vt 0.2167 0.8793 +vt 0.1745 0.9299 +vt 0.5922 0.2229 +vt 0.5922 0.2158 +vt 0.5907 0.2143 +vt 0.5887 0.2142 +vt 0.1788 0.9412 +vt 0.1636 0.9389 +vt 0.2147 0.9331 +vt 0.5886 0.2244 +vt 0.5906 0.2244 +vt 0.5872 0.2157 +vt 0.5871 0.2228 +vt 0.2086 0.9436 +vt 0.1623 0.7780 +vt 0.1217 0.7026 +vt 0.3639 0.0009 +vt 0.3886 0.0008 +vt 0.4284 0.0137 +vt 0.1412 0.7544 +vt 0.1281 0.7289 +vt 0.4381 0.0007 +vt 0.4797 0.6668 +vt 0.4688 0.6760 +vt 0.4687 0.6664 +vt 0.5175 0.6624 +vt 0.5364 0.6668 +vt 0.4797 0.6492 +vt 0.3546 0.6877 +vt 0.3671 0.6774 +vt 0.5364 0.6800 +vt 0.1143 0.7974 +vt 0.4576 0.6758 +vt 0.4463 0.6756 +vt 0.4460 0.6658 +vt 0.4573 0.6660 +vt 0.4349 0.6755 +vt 0.4234 0.6755 +vt 0.4230 0.6656 +vt 0.4345 0.6656 +vt 0.4120 0.6755 +vt 0.4007 0.6757 +vt 0.4001 0.6658 +vt 0.4115 0.6657 +vt 0.3893 0.6761 +vt 0.3782 0.6767 +vt 0.3772 0.6671 +vt 0.3884 0.6664 +vt 0.3564 0.6788 +vt 0.3547 0.6695 +vt 0.3655 0.6681 +vt 0.5555 0.6184 +vt 0.5766 0.6117 +vt 0.5673 0.6068 +vt 0.5832 0.6072 +vt 0.5855 0.6071 +vt 0.5945 0.6077 +vt 0.5823 0.6113 +vt 0.8024 0.7279 +vt 0.8346 0.8089 +vt 0.7087 0.5808 +vt 0.7236 0.6065 +vt 0.6987 0.5816 +vt 0.7002 0.5833 +vt 0.6987 0.6114 +vt 0.8420 0.8294 +vt 0.7240 0.5998 +vt 0.7187 0.5816 +vt 0.6938 0.6065 +vt 0.8160 0.7571 +vt 0.7263 0.5930 +vt 0.7263 0.6000 +vt 0.6911 0.5930 +vt 0.6938 0.5865 +vt 0.8883 0.6862 +vt 0.8850 0.6817 +vt 0.8918 0.6908 +vt 0.8886 0.6932 +vt 0.8853 0.6884 +vt 0.8816 0.6773 +vt 0.8783 0.6730 +vt 0.8750 0.6688 +vt 0.8717 0.6647 +vt 0.8685 0.6606 +vt 0.8652 0.6565 +vt 0.8620 0.6526 +vt 0.8592 0.6489 +vt 0.8943 0.6939 +vt 0.8915 0.6969 +vt 0.8949 0.6885 +vt 0.8820 0.6839 +vt 0.8787 0.6795 +vt 0.8754 0.6752 +vt 0.8722 0.6709 +vt 0.8689 0.6668 +vt 0.8657 0.6627 +vt 0.8625 0.6586 +vt 0.8594 0.6546 +vt 0.8563 0.6505 +vt 0.8583 0.6491 +vt 0.8558 0.6497 +vt 0.8910 0.6991 +vt 0.5676 0.6093 +vt 0.5695 0.6131 +vt 0.5667 0.6095 +vt 0.9427 0.0475 +vt 0.9424 0.0519 +vt 0.9432 0.0433 +vt 0.9435 0.0391 +vt 0.9520 0.0399 +vt 0.9441 0.0349 +vt 0.9444 0.0307 +vt 0.9451 0.0267 +vt 0.9453 0.0227 +vt 0.9498 0.0194 +vt 0.9534 0.0231 +vt 0.9460 0.0189 +vt 0.9411 0.0776 +vt 0.9409 0.0819 +vt 0.9410 0.0733 +vt 0.9497 0.0735 +vt 0.9413 0.0690 +vt 0.9414 0.0647 +vt 0.9418 0.0604 +vt 0.9419 0.0561 +vt 0.9505 0.0567 +vt 0.9536 0.0196 +vt 0.4797 0.6536 +vt 0.5175 0.6580 +vt 0.4797 0.6580 +vt 0.4797 0.6624 +vt 0.1095 0.8032 +vt 0.1004 0.8098 +vt 0.0937 0.8144 +vt 0.0837 0.8208 +vt 0.1267 0.5464 +vt 0.1128 0.5559 +vt 0.1623 0.5156 +vt 0.1598 0.5399 +vt 0.1534 0.5492 +vt 0.1416 0.5589 +vt 0.1481 0.5486 +vt 0.1470 0.5594 +vt 0.1309 0.5578 +vt 0.1320 0.5470 +vt 0.1363 0.5583 +vt 0.1256 0.5572 +vt 0.1164 0.5563 +vt 0.1541 0.5601 +vt 0.1523 0.5599 +vt 0.1577 0.5600 +vt 0.1155 0.7996 +vt 0.1564 0.5734 +vt 0.1544 0.5935 +vt 0.1468 0.6320 +vt 0.1504 0.6323 +vt 0.0412 0.2641 +vt 0.0410 0.2768 +vt 0.0374 0.2641 +vt 0.9543 0.6579 +vt 0.9481 0.6472 +vt 0.9422 0.6691 +vt 0.9137 0.6613 +vt 0.9026 0.6524 +vt 0.9179 0.6498 +vt 0.9299 0.6741 +vt 0.9328 0.7023 +vt 0.9318 0.7115 +vt 0.9272 0.6702 +vt 0.9240 0.2144 +vt 0.9416 0.2474 +vt 0.9389 0.2483 +vt 0.5449 0.8400 +vt 0.5423 0.8361 +vt 0.5466 0.8380 +vt 0.9443 0.7108 +vt 0.9418 0.7018 +vt 0.9402 0.6733 +vt 0.9383 0.6716 +vt 0.5290 0.8271 +vt 0.5181 0.8181 +vt 0.5333 0.8158 +vt 0.5693 0.8239 +vt 0.5631 0.8134 +vt 0.4464 0.3811 +vt 0.4477 0.4254 +vt 0.4605 0.4406 +vt 0.9562 0.7115 +vt 0.9638 0.7869 +vt 0.9488 0.7566 +vt 0.9315 0.7572 +vt 0.9195 0.7882 +vt 0.9203 0.7137 +vt 0.6411 0.2245 +vt 0.6434 0.2229 +vt 0.6501 0.2264 +vt 0.9171 0.6878 +vt 0.9238 0.2139 +vt 0.9106 0.1628 +vt 0.7603 0.3247 +vt 0.7480 0.3495 +vt 0.3390 0.2584 +vt 0.3093 0.2583 +vt 0.0355 0.2978 +vt 0.0244 0.3206 +vt 0.0246 0.3145 +vt 0.0105 0.2995 +vt 0.0165 0.3023 +vt 0.0126 0.3041 +vt 0.7291 0.4389 +vt 0.7289 0.4306 +vt 0.6193 0.4576 +vt 0.6442 0.4640 +vt 0.5594 0.1828 +vt 0.5637 0.1901 +vt 0.5593 0.1483 +vt 0.5636 0.1439 +vt 0.5636 0.1643 +vt 0.5636 0.1459 +vt 0.5391 0.1484 +vt 0.5392 0.1768 +vt 0.5020 0.8945 +vt 0.5167 0.8919 +vt 0.5060 0.8945 +vt 0.4426 0.8945 +vt 0.4334 0.8982 +vt 0.4545 0.8945 +vt 0.4466 0.8945 +vt 0.4407 0.8964 +vt 0.4407 0.8982 +vt 0.0184 0.2801 +vt 0.0129 0.2821 +vt 0.0235 0.2773 +vt 0.0361 0.2941 +vt 0.0284 0.2736 +vt 0.0378 0.2870 +vt 0.0330 0.2692 +vt 0.0398 0.2800 +vt 0.6207 0.5865 +vt 0.6224 0.5880 +vt 0.6190 0.5896 +vt 0.6202 0.5932 +vt 0.6180 0.5930 +vt 0.6180 0.6000 +vt 0.6202 0.5998 +vt 0.6190 0.6034 +vt 0.6224 0.6050 +vt 0.6207 0.6065 +vt 0.6256 0.6114 +vt 0.6270 0.6097 +vt 0.6287 0.6131 +vt 0.6323 0.6118 +vt 0.6321 0.6141 +vt 0.6391 0.6141 +vt 0.6389 0.6118 +vt 0.6424 0.6131 +vt 0.6441 0.6097 +vt 0.6455 0.6114 +vt 0.6505 0.6065 +vt 0.6487 0.6050 +vt 0.6522 0.6034 +vt 0.6509 0.5998 +vt 0.6532 0.6000 +vt 0.6532 0.5930 +vt 0.6509 0.5932 +vt 0.6522 0.5896 +vt 0.6487 0.5880 +vt 0.6505 0.5865 +vt 0.6455 0.5816 +vt 0.6441 0.5833 +vt 0.6424 0.5799 +vt 0.6389 0.5811 +vt 0.6391 0.5789 +vt 0.6321 0.5789 +vt 0.6323 0.5811 +vt 0.6287 0.5799 +vt 0.6270 0.5833 +vt 0.6256 0.5816 +vt 0.6199 0.5965 +vt 0.6356 0.5965 +vt 0.6245 0.6076 +vt 0.6356 0.6122 +vt 0.6467 0.6076 +vt 0.6512 0.5965 +vt 0.6467 0.5854 +vt 0.6356 0.5808 +vt 0.6245 0.5854 +vt 0.0399 0.2601 +vt 0.9422 0.1163 +vt 0.9427 0.1206 +vt 0.9429 0.1248 +vt 0.9436 0.1290 +vt 0.9515 0.1240 +vt 0.9438 0.1331 +vt 0.9444 0.1373 +vt 0.9446 0.1413 +vt 0.9452 0.1452 +vt 0.9529 0.1407 +vt 0.9455 0.1490 +vt 0.9468 0.0153 +vt 0.9504 0.0160 +vt 0.9411 0.0863 +vt 0.9409 0.0906 +vt 0.9412 0.0949 +vt 0.9496 0.0905 +vt 0.9412 0.0992 +vt 0.9415 0.1035 +vt 0.9416 0.1078 +vt 0.9421 0.1120 +vt 0.9502 0.1072 +vt 0.0156 0.3089 +vt 0.0191 0.3065 +vt 0.0217 0.3106 +vt 0.0183 0.3129 +vt 0.0215 0.3170 +vt 0.0387 0.2834 +vt 0.0369 0.2905 +vt 0.5109 0.8982 +vt 0.5060 0.8982 +vt 0.4942 0.8982 +vt 0.5001 0.8964 +vt 0.5001 0.8982 +vt 0.4942 0.8945 +vt 0.4823 0.8982 +vt 0.4882 0.8964 +vt 0.4882 0.8982 +vt 0.4823 0.8945 +vt 0.4704 0.8982 +vt 0.4763 0.8964 +vt 0.4763 0.8982 +vt 0.4704 0.8945 +vt 0.4585 0.8982 +vt 0.4644 0.8964 +vt 0.4644 0.8982 +vt 0.4585 0.8945 +vt 0.4466 0.8982 +vt 0.4526 0.8964 +vt 0.4526 0.8982 +vt 0.4901 0.8945 +vt 0.4782 0.8945 +vt 0.4663 0.8945 +vt 0.6571 0.5442 +vt 0.6489 0.5266 +vt 0.6472 0.4534 +vt 0.6516 0.4635 +vt 0.6439 0.4573 +vt 0.6430 0.3969 +vt 0.6464 0.3929 +vt 0.5679 0.1439 +vt 0.5679 0.1459 +vt 0.5636 0.1520 +vt 0.5679 0.1520 +vt 0.5679 0.1582 +vt 0.5636 0.1582 +vt 0.5679 0.1643 +vt 0.5679 0.1705 +vt 0.5636 0.1705 +vt 0.5636 0.1766 +vt 0.5637 0.1859 +vt 0.5679 0.1766 +vt 0.5679 0.1872 +vt 0.6444 0.4708 +vt 0.6526 0.4775 +vt 0.6451 0.4782 +vt 0.6521 0.4704 +vt 0.6459 0.4852 +vt 0.6539 0.4912 +vt 0.6468 0.4918 +vt 0.6533 0.4844 +vt 0.6470 0.4982 +vt 0.6547 0.5049 +vt 0.6470 0.5051 +vt 0.6543 0.4980 +vt 0.6475 0.5126 +vt 0.6557 0.5190 +vt 0.6481 0.5197 +vt 0.6551 0.5120 +vt 0.6562 0.5260 +vt 0.5636 0.1398 +vt 0.6180 0.5775 +vt 0.6050 0.3967 +vt 0.5466 0.3518 +vt 0.6040 0.3895 +vt 0.5988 0.1993 +vt 0.6257 0.2006 +vt 0.5983 0.2396 +vt 0.5878 0.2044 +vt 0.5892 0.1890 +vt 0.5874 0.2342 +vt 0.0467 0.5879 +vt 0.0736 0.5748 +vt 0.0158 0.4446 +vt 0.0158 0.4382 +vt 0.0312 0.4846 +vt 0.0301 0.4812 +vt 0.0127 0.4419 +vt 0.0007 0.4595 +vt 0.0070 0.4569 +vt 0.0079 0.4801 +vt 0.5306 0.1195 +vt 0.5636 0.1154 +vt 0.5636 0.1196 +vt 0.5306 0.0789 +vt 0.5594 0.0766 +vt 0.5392 0.0825 +vt 0.5636 0.0950 +vt 0.5593 0.1110 +vt 0.5637 0.0734 +vt 0.5636 0.0827 +vt 0.5392 0.1110 +vt 0.0381 0.6747 +vt 0.0370 0.6854 +vt 0.0271 0.4661 +vt 0.0132 0.4832 +vt 0.0286 0.4736 +vt 0.0180 0.4873 +vt 0.0225 0.4921 +vt 0.0268 0.4978 +vt 0.0292 0.5021 +vt 0.8484 0.8221 +vt 0.8918 0.8196 +vt 0.8496 0.8258 +vt 0.0023 0.4777 +vt 0.0030 0.4549 +vt 0.0092 0.4460 +vt 0.0127 0.4485 +vt 0.0098 0.4526 +vt 0.0063 0.4501 +vt 0.0265 0.4623 +vt 0.0278 0.4699 +vt 0.0493 0.5606 +vt 0.5679 0.1134 +vt 0.5679 0.1155 +vt 0.5636 0.1134 +vt 0.5636 0.1073 +vt 0.5636 0.1011 +vt 0.5679 0.1012 +vt 0.5679 0.1073 +vt 0.5636 0.0889 +vt 0.5679 0.0889 +vt 0.5679 0.0950 +vt 0.5679 0.0722 +vt 0.5679 0.0827 +vt 0.2125 0.3750 +vt 0.0447 0.6083 +vt 0.0441 0.6152 +vt 0.0454 0.6015 +vt 0.0461 0.5946 +vt 0.0474 0.5811 +vt 0.0480 0.5743 +vt 0.0487 0.5674 +vt 0.6672 0.5252 +vt 0.6667 0.5182 +vt 0.6747 0.5242 +vt 0.5637 0.0693 +vt 0.3684 0.4393 +vt 0.3757 0.4254 +vt 0.2088 0.2921 +vt 0.2598 0.2946 +vt 0.1270 0.2768 +vt 0.3330 0.4246 +vt 0.3307 0.4245 +vt 0.3217 0.4257 +vt 0.3483 0.4235 +vt 0.3577 0.4286 +vt 0.9363 0.6582 +vt 0.9313 0.6586 +vt 0.9292 0.6611 +vt 0.9295 0.6649 +vt 0.6508 0.2139 +vt 0.6437 0.2172 +vt 0.5444 0.8271 +vt 0.5447 0.8308 +vt 0.5515 0.8242 +vt 0.5465 0.8246 +vt 0.5521 0.8055 +vt 0.5518 0.8017 +vt 0.5544 0.7957 +vt 0.5458 0.8087 +vt 0.5496 0.8084 +vt 0.9320 0.6670 +vt 0.9370 0.6666 +vt 0.5471 0.8329 +vt 0.5521 0.8325 +vt 0.4624 0.9170 +vt 0.4475 0.9500 +vt 0.4346 0.9008 +vt 0.5542 0.8301 +vt 0.5539 0.8263 +vt 0.9293 0.2511 +vt 0.9391 0.6642 +vt 0.9388 0.6603 +vt 0.4206 0.9052 +vt 0.4395 0.9527 +vt 0.4078 0.9349 +vt 0.9403 0.7042 +vt 0.8998 0.1684 +vt 0.8870 0.1981 +vt 0.9016 0.1656 +vt 0.5392 0.7969 +vt 0.5427 0.8024 +vt 0.5430 0.8062 +vt 0.5489 0.7992 +vt 0.5451 0.7995 +vt 0.5175 0.7615 +vt 0.4689 0.7480 +vt 0.4798 0.7615 +vt 0.5175 0.7746 +vt 0.4577 0.7483 +vt 0.7276 0.4443 +vt 0.7285 0.4440 +vt 0.7289 0.4431 +vt 0.7286 0.4413 +vt 0.4689 0.7575 +vt 0.4576 0.7581 +vt 0.4463 0.7583 +vt 0.4465 0.7486 +vt 0.4352 0.7489 +vt 0.4349 0.7587 +vt 0.4236 0.7589 +vt 0.4239 0.7490 +vt 0.4125 0.7492 +vt 0.4121 0.7590 +vt 0.4008 0.7590 +vt 0.4012 0.7492 +vt 0.3899 0.7489 +vt 0.3891 0.7586 +vt 0.3779 0.7582 +vt 0.3787 0.7485 +vt 0.3676 0.7480 +vt 0.3661 0.7573 +vt 0.3554 0.7560 +vt 0.2963 0.7193 +vt 0.2961 0.7072 +vt 0.3363 0.7077 +vt 0.3364 0.7181 +vt 0.6625 0.4627 +vt 0.6581 0.4028 +vt 0.6729 0.4016 +vt 0.3623 0.4353 +vt 0.3590 0.4292 +vt 0.3601 0.4343 +vt 0.3396 0.4286 +vt 0.3340 0.4285 +vt 0.3481 0.4260 +vt 0.7875 0.0548 +vt 0.7883 0.0495 +vt 0.7918 0.0500 +vt 0.7910 0.0554 +vt 0.7867 0.0601 +vt 0.7831 0.0595 +vt 0.7891 0.0441 +vt 0.7926 0.0446 +vt 0.7899 0.0386 +vt 0.7935 0.0392 +vt 0.7908 0.0332 +vt 0.7944 0.0338 +vt 0.7917 0.0277 +vt 0.7953 0.0284 +vt 0.7926 0.0222 +vt 0.7963 0.0229 +vt 0.7936 0.0167 +vt 0.7973 0.0174 +vt 0.7946 0.0110 +vt 0.7985 0.0117 +vt 0.7957 0.0057 +vt 0.7967 0.0055 +vt 0.7996 0.0059 +vt 0.7902 0.0607 +vt 0.7997 0.0048 +vt 0.7894 0.0650 +vt 0.7859 0.0637 +vt 0.3490 0.4261 +vt 0.3464 0.4297 +vt 0.7907 0.0666 +vt 0.4798 0.7746 +vt 0.4798 0.7659 +vt 0.5175 0.7659 +vt 0.5175 0.7702 +vt 0.4798 0.7703 +vt 0.7280 0.4364 +vt 0.7279 0.4341 +vt 0.7277 0.4407 +vt 0.7272 0.4374 +vt 0.7259 0.4375 +vt 0.7265 0.4409 +vt 0.7249 0.4367 +vt 0.7248 0.4342 +vt 0.7270 0.4332 +vt 0.7256 0.4332 +vt 0.7260 0.4419 +vt 0.7266 0.4438 +vt 0.2659 0.2967 +vt 0.2603 0.2985 +vt 0.2650 0.2947 +vt 0.2653 0.2985 +vt 0.2592 0.2965 +vt 0.2633 0.2995 +vt 0.2619 0.2936 +vt 0.6917 0.5041 +vt 0.6646 0.4904 +vt 0.6572 0.3920 +vt 0.6630 0.4696 +vt 0.6636 0.4766 +vt 0.6641 0.4835 +vt 0.6651 0.4973 +vt 0.6656 0.5042 +vt 0.6661 0.5112 +vt 0.9362 0.2601 +vt 0.9151 0.2993 +vt 0.9248 0.2686 +vt 0.9360 0.3546 +vt 0.9358 0.5246 +vt 0.9225 0.5157 +vt 0.9358 0.5158 +vt 0.8219 0.4947 +vt 0.9040 0.3328 +vt 0.8538 0.4007 +vt 0.9152 0.3922 +vt 0.9147 0.5035 +vt 0.9036 0.4921 +vt 0.9150 0.4661 +vt 0.8515 0.5245 +vt 0.8428 0.5034 +vt 0.9152 0.4291 +vt 0.8867 0.3814 +vt 0.8689 0.4057 +vt 0.8889 0.3821 +vt 0.8540 0.4922 +vt 0.8689 0.4773 +vt 0.8888 0.4773 +vt 0.9402 0.9331 +vt 0.8008 0.5450 +vt 0.7819 0.5630 +vt 0.7818 0.5570 +vt 0.3096 0.0516 +vt 0.4380 0.0508 +vt 0.4258 0.0601 +vt 0.4193 0.0602 +vt 0.4284 0.0626 +vt 0.2204 0.0447 +vt 0.1460 0.0506 +vt 0.1006 0.0576 +vt 0.5518 0.6857 +vt 0.5499 0.7045 +vt 0.5558 0.7012 +vt 0.0349 0.4443 +vt 0.5730 0.6807 +vt 0.5866 0.6751 +vt 0.5900 0.6793 +vt 0.1941 0.4100 +vt 0.2035 0.4057 +vt 0.2131 0.3876 +vt 0.2101 0.3977 +vt 0.5537 0.7120 +vt 0.5499 0.7195 +vt 0.4168 0.0628 +vt 0.4380 0.1195 +vt 0.4379 0.1400 +vt 0.4215 0.1400 +vt 0.4216 0.1194 +vt 0.4383 0.0786 +vt 0.4284 0.0670 +vt 0.4259 0.0696 +vt 0.9906 0.0057 +vt 0.9894 0.0100 +vt 0.9819 0.0058 +vt 0.9943 0.0018 +vt 0.9919 0.0050 +vt 0.9954 0.0007 +vt 0.6310 0.6782 +vt 0.6310 0.7458 +vt 0.6298 0.7446 +vt 0.6298 0.6793 +vt 0.9230 0.4009 +vt 0.9230 0.4097 +vt 0.7201 0.7151 +vt 0.7201 0.7867 +vt 0.7051 0.7916 +vt 0.9225 0.5069 +vt 0.9225 0.4980 +vt 0.9226 0.4891 +vt 0.9359 0.4980 +vt 0.9358 0.5069 +vt 0.9227 0.4802 +vt 0.9360 0.4804 +vt 0.9359 0.4892 +vt 0.9228 0.4714 +vt 0.9228 0.4625 +vt 0.9361 0.4626 +vt 0.9360 0.4715 +vt 0.9229 0.4537 +vt 0.9229 0.4449 +vt 0.9361 0.4450 +vt 0.9361 0.4538 +vt 0.9229 0.4361 +vt 0.9230 0.4273 +vt 0.9362 0.4273 +vt 0.9361 0.4361 +vt 0.9230 0.4185 +vt 0.9361 0.4097 +vt 0.9361 0.4185 +vt 0.9361 0.4009 +vt 0.0594 0.0599 +vt 0.9881 0.0264 +vt 0.9898 0.0317 +vt 0.9925 0.0365 +vt 0.9874 0.0208 +vt 0.9787 0.0399 +vt 0.9782 0.0059 +vt 0.9748 0.0399 +vt 0.9743 0.0059 +vt 0.9711 0.0400 +vt 0.9706 0.0060 +vt 0.9672 0.0401 +vt 0.9635 0.0401 +vt 0.9629 0.0061 +vt 0.9666 0.0061 +vt 0.9596 0.0402 +vt 0.9590 0.0062 +vt 0.9553 0.0063 +vt 0.9559 0.0403 +vt 0.0265 0.4313 +vt 0.0545 0.4241 +vt 0.0572 0.4383 +vt 0.0455 0.4405 +vt 0.0428 0.4263 +vt 0.0785 0.4198 +vt 0.0808 0.4342 +vt 0.0689 0.4361 +vt 0.0666 0.4217 +vt 0.1029 0.4164 +vt 0.1048 0.4310 +vt 0.0927 0.4325 +vt 0.0909 0.4179 +vt 0.1168 0.4295 +vt 0.1289 0.4281 +vt 0.1151 0.4148 +vt 0.1272 0.4134 +vt 0.1515 0.4112 +vt 0.1529 0.4257 +vt 0.1410 0.4268 +vt 0.1396 0.4124 +vt 0.1643 0.4108 +vt 0.1647 0.4247 +vt 0.1997 0.1260 +vt 0.2555 0.1258 +vt 0.1998 0.1330 +vt 0.6078 0.7227 +vt 0.6154 0.7369 +vt 0.6099 0.7364 +vt 0.6256 0.7411 +vt 0.6256 0.6828 +vt 0.6044 0.6870 +vt 0.5974 0.6886 +vt 0.5992 0.6854 +vt 0.5818 0.6838 +vt 0.5943 0.6828 +vt 0.5926 0.6860 +vt 0.5839 0.6700 +vt 0.5873 0.6844 +vt 0.6017 0.6921 +vt 0.6099 0.6876 +vt 0.6052 0.6963 +vt 0.6078 0.7012 +vt 0.5542 0.7065 +vt 0.5584 0.6963 +vt 0.5619 0.6921 +vt 0.5662 0.6886 +vt 0.5710 0.6860 +vt 0.5763 0.6844 +vt 0.4194 0.0696 +vt 0.7870 0.6677 +vt 0.7737 0.6766 +vt 0.7027 0.6679 +vt 0.3423 0.5862 +vt 0.3082 0.5860 +vt 0.3649 0.5399 +vt 0.3617 0.5688 +vt 0.6324 0.6865 +vt 0.6331 0.6294 +vt 0.6520 0.6474 +vt 0.6731 0.6977 +vt 0.7663 0.8931 +vt 0.7873 0.8377 +vt 0.7874 0.9322 +vt 0.7665 0.8001 +vt 0.7659 0.6889 +vt 0.7053 0.7003 +vt 0.6941 0.6890 +vt 0.7738 0.7032 +vt 0.6936 0.7954 +vt 0.7553 0.8595 +vt 0.7379 0.8110 +vt 0.4574 0.3703 +vt 0.4576 0.3851 +vt 0.4470 0.3956 +vt 0.4474 0.4103 +vt 0.6726 0.8007 +vt 0.5463 0.9235 +vt 0.5352 0.8797 +vt 0.5712 0.8776 +vt 0.5636 0.9230 +vt 0.9328 0.7940 +vt 0.9380 0.7939 +vt 0.4590 0.4204 +vt 0.9501 0.7934 +vt 0.4587 0.4144 +vt 0.4475 0.4148 +vt 0.5648 0.9600 +vt 0.5590 0.9417 +vt 0.4467 0.3858 +vt 0.5475 0.9606 +vt 0.5521 0.9419 +vt 0.5527 0.9604 +vt 0.4578 0.3909 +vt 0.5786 0.9535 +vt 0.5341 0.9547 +vt 0.5596 0.9602 +vt 0.4469 0.3912 +vt 0.9449 0.7936 +vt 0.4476 0.4208 +vt 0.7760 0.9238 +vt 0.4316 0.1806 +vt 0.4316 0.1399 +vt 0.4380 0.2087 +vt 0.4257 0.1993 +vt 0.4283 0.1968 +vt 0.2198 0.2144 +vt 0.1456 0.2086 +vt 0.0430 0.3154 +vt 0.0531 0.3194 +vt 0.0344 0.3277 +vt 0.5730 0.7433 +vt 0.5518 0.7382 +vt 0.5662 0.7354 +vt 0.5866 0.7489 +vt 0.5839 0.7540 +vt 0.5818 0.7401 +vt 0.5900 0.7446 +vt 0.1948 0.3518 +vt 0.2037 0.3565 +vt 0.2099 0.3647 +vt 0.5558 0.7227 +vt 0.4284 0.1924 +vt 0.4383 0.1808 +vt 0.4259 0.1899 +vt 0.4216 0.1806 +vt 0.4194 0.1898 +vt 0.9728 0.4832 +vt 0.9741 0.4838 +vt 0.9765 0.4870 +vt 0.7870 0.6766 +vt 0.7737 0.6855 +vt 0.7870 0.6854 +vt 0.7870 0.6943 +vt 0.7737 0.6943 +vt 0.7870 0.7030 +vt 0.7871 0.7118 +vt 0.7739 0.7120 +vt 0.7740 0.7208 +vt 0.7872 0.7207 +vt 0.7873 0.7295 +vt 0.7741 0.7296 +vt 0.7741 0.7384 +vt 0.7873 0.7384 +vt 0.7874 0.7472 +vt 0.7742 0.7472 +vt 0.7742 0.7561 +vt 0.7874 0.7560 +vt 0.7874 0.7648 +vt 0.7742 0.7649 +vt 0.7742 0.7737 +vt 0.7874 0.7737 +vt 0.7874 0.7825 +vt 0.7742 0.7825 +vt 0.7742 0.7913 +vt 0.7874 0.7913 +vt 0.1002 0.2016 +vt 0.9641 0.4830 +vt 0.9604 0.4829 +vt 0.9609 0.4489 +vt 0.9696 0.4680 +vt 0.9565 0.4829 +vt 0.9570 0.4489 +vt 0.9528 0.4828 +vt 0.9533 0.4488 +vt 0.9488 0.4828 +vt 0.9494 0.4488 +vt 0.9457 0.4487 +vt 0.9451 0.4827 +vt 0.9412 0.4826 +vt 0.9418 0.4486 +vt 0.9381 0.4486 +vt 0.9375 0.4826 +vt 0.0589 0.1996 +vt 0.9716 0.4789 +vt 0.2926 0.1843 +vt 0.0502 0.3329 +vt 0.0643 0.3218 +vt 0.0614 0.3353 +vt 0.0731 0.3380 +vt 0.0756 0.3241 +vt 0.0870 0.3262 +vt 0.0845 0.3401 +vt 0.0964 0.3421 +vt 0.0984 0.3280 +vt 0.1100 0.3297 +vt 0.1079 0.3437 +vt 0.1215 0.3313 +vt 0.1331 0.3329 +vt 0.1312 0.3470 +vt 0.1197 0.3454 +vt 0.1430 0.3482 +vt 0.1447 0.3344 +vt 0.1560 0.3357 +vt 0.1544 0.3495 +vt 0.1673 0.3369 +vt 0.1665 0.3501 +vt 0.9776 0.4882 +vt 0.9711 0.4733 +vt 0.9702 0.4625 +vt 0.6094 0.7065 +vt 0.6154 0.6870 +vt 0.6094 0.7175 +vt 0.6044 0.7369 +vt 0.6017 0.7319 +vt 0.9746 0.4523 +vt 0.9719 0.4572 +vt 0.5926 0.7380 +vt 0.5943 0.7411 +vt 0.5992 0.7385 +vt 0.5974 0.7354 +vt 0.5763 0.7396 +vt 0.5873 0.7396 +vt 0.6052 0.7276 +vt 0.5542 0.7175 +vt 0.5584 0.7276 +vt 0.5619 0.7319 +vt 0.5710 0.7380 +vt 0.6099 0.7120 +vt 0.6207 0.6854 +vt 0.6207 0.7385 +vt 0.4545 0.7995 +vt 0.4334 0.7957 +vt 0.4426 0.7995 +vt 0.4407 0.7957 +vt 0.4407 0.7976 +vt 0.5060 0.7957 +vt 0.5109 0.7957 +vt 0.5060 0.7995 +vt 0.5020 0.7995 +vt 0.5167 0.8021 +vt 0.5001 0.7957 +vt 0.5001 0.7976 +vt 0.4942 0.7957 +vt 0.4942 0.7995 +vt 0.4901 0.7995 +vt 0.4882 0.7957 +vt 0.4882 0.7976 +vt 0.4823 0.7957 +vt 0.4823 0.7995 +vt 0.4782 0.7995 +vt 0.4763 0.7957 +vt 0.4763 0.7976 +vt 0.4704 0.7957 +vt 0.4704 0.7995 +vt 0.4663 0.7995 +vt 0.4644 0.7957 +vt 0.4644 0.7976 +vt 0.4585 0.7957 +vt 0.4585 0.7995 +vt 0.4526 0.7957 +vt 0.4526 0.7976 +vt 0.4466 0.7957 +vt 0.4466 0.7995 +vt 0.9889 0.0155 +vt 0.1988 0.9196 +vt 0.3107 0.9024 +vt 0.3305 0.9516 +vt 0.4065 0.9842 +vt 0.6127 0.2144 +vt 0.6109 0.2162 +vt 0.6108 0.2230 +vt 0.2008 0.8867 +vt 0.1921 0.9190 +vt 0.3916 0.9887 +vt 0.6414 0.2155 +vt 0.3357 0.9887 +vt 0.1951 0.8863 +vt 0.1923 0.8793 +vt 0.1933 0.8885 +vt 0.1904 0.9170 +vt 0.1807 0.8773 +vt 0.6514 0.2382 +vt 0.6126 0.2248 +vt 0.5478 0.8683 +vt 0.6523 0.2021 +vt 0.9266 0.2519 +vt 0.4424 0.9521 +vt 0.4624 0.9842 +vt 0.4597 0.9851 +vt 0.4448 0.9511 +vt 0.9347 0.7045 +vt 0.9315 0.6721 +vt 0.5534 0.8375 +vt 0.4501 0.9879 +vt 0.4474 0.9887 +vt 0.4996 0.3898 +vt 0.4128 0.5768 +vt 0.3701 0.6194 +vt 0.5705 0.3977 +vt 0.5506 0.3807 +vt 0.3030 0.5714 +vt 0.2961 0.5705 +vt 0.3552 0.5243 +vt 0.5273 0.3881 +vt 0.5433 0.4316 +vt 0.5474 0.4055 +vt 0.2555 0.1333 +vt 0.4637 0.9752 +vt 0.4637 0.8996 +vt 0.0978 0.6031 +vt 0.7196 0.5145 +vt 0.7165 0.4760 +vt 0.0908 0.5733 +vt 0.0873 0.5762 +vt 0.7090 0.5059 +vt 0.1091 0.6282 +vt 0.1016 0.5650 +vt 0.9954 0.6294 +vt 0.9954 0.7050 +vt 0.0665 0.8221 +vt 0.0785 0.8454 +vt 0.1576 0.9148 +vt 0.1456 0.9381 +vt 0.6094 0.1877 +vt 0.5693 0.1476 +vt 0.1796 0.8023 +vt 0.2241 0.8034 +vt 0.7276 0.2432 +vt 0.5786 0.8133 +vt 0.9638 0.6471 +vt 0.5884 0.2496 +vt 0.2241 0.9437 +vt 0.5562 0.3354 +vt 0.3089 0.5788 +vt 0.6096 0.3821 +vt 0.7161 0.8796 +vt 0.6166 0.4062 +vt 0.6166 0.3811 +vt 0.5800 0.8074 +vt 0.9774 0.8386 +vt 0.9774 0.9341 +vt 0.6181 0.8063 +vt 0.6181 0.9015 +vt 0.8554 0.6053 +vt 0.8700 0.6054 +vt 0.8817 0.6107 +vt 0.8671 0.6107 +vt 0.8424 0.6107 +vt 0.8830 0.6107 +vt 0.8947 0.6054 +vt 0.8541 0.6053 +vt 0.7811 0.5059 +vt 0.6096 0.4452 +vt 0.3655 0.5935 +vt 0.3851 0.5757 +vt 0.2968 0.5957 +vt 0.2933 0.1256 +vt 0.7798 0.3025 +vt 0.4380 0.2588 +vt 0.3885 0.2586 +vt 0.3637 0.2585 +vt 0.7273 0.1985 +vn 1.0000 0.0000 0.0000 +vn -0.0000 -1.0000 -0.0000 +vn -0.0000 1.0000 0.0000 +vn -1.0000 0.0000 0.0000 +vn -0.7071 0.7071 0.0000 +vn 0.0000 0.7071 0.7071 +vn 0.6667 -0.3333 -0.6667 +vn -0.6667 -0.3333 -0.6667 +vn 0.8704 0.3482 0.3482 +vn -0.6786 -0.2811 0.6786 +vn -0.3574 0.8629 0.3574 +vn -0.5774 0.5773 0.5773 +vn -0.5774 0.5774 0.5774 +vn 0.5774 0.5774 0.5774 +vn 0.3574 0.8629 0.3574 +vn 0.7071 -0.7071 -0.0000 +vn 0.7071 0.7071 0.0000 +vn -0.7071 -0.7071 -0.0000 +vn -0.8704 0.3482 0.3482 +vn 0.6786 -0.2811 0.6786 +vn 0.5774 0.5773 0.5773 +vn 0.5773 0.5774 0.5774 +vn 0.5774 0.5773 0.5774 +vn 0.5774 0.5774 0.5773 +vn -0.5773 0.5774 0.5774 +vn -0.5774 0.5774 0.5773 +vn -0.5774 0.5773 0.5774 +vn 0.5773 0.5773 0.5774 +vn -0.5773 0.5774 0.5773 +vn 0.5773 0.5774 0.5773 +vn -0.5773 0.5773 0.5774 +vn -0.7071 0.0000 -0.7071 +vn 0.0000 0.7071 -0.7071 +vn -0.0006 0.7088 -0.7054 +vn -0.0106 0.7107 -0.7034 +vn -0.0212 0.7142 -0.6996 +vn -0.0126 0.7114 -0.7027 +vn 0.9600 0.0935 -0.2641 +vn 0.4512 0.7150 -0.5341 +vn 0.2880 0.9576 0.0000 +vn 0.8334 0.5526 0.0000 +vn 0.0000 -0.7071 -0.7071 +vn -0.7071 -0.5000 -0.5000 +vn -0.7071 0.5000 0.5000 +vn 0.7071 0.5000 0.5000 +vn 0.7071 -0.5000 -0.5000 +vn -0.7804 -0.6253 0.0000 +vn -0.7804 0.6253 0.0000 +vn 0.0000 -0.6650 0.7468 +vn 0.7071 -0.4703 0.5281 +vn 0.0000 0.6650 -0.7468 +vn -0.7071 0.4703 -0.5281 +vn 0.0000 0.9951 -0.0985 +vn -0.9248 0.3804 -0.0000 +vn 0.0000 0.3894 0.9211 +vn 0.0000 0.7962 -0.6051 +vn 0.0000 0.9991 0.0421 +vn 0.7068 0.7068 0.0298 +vn 0.7078 -0.7011 0.0863 +vn 0.7044 -0.6886 0.1721 +vn 0.7058 -0.7084 -0.0001 +vn 0.9808 -0.1951 0.0000 +vn 0.9239 -0.3827 -0.0000 +vn 0.9108 -0.4128 -0.0000 +vn 0.8819 -0.4714 -0.0000 +vn 0.8493 -0.5280 -0.0000 +vn 0.8315 -0.5556 -0.0000 +vn 0.6835 -0.7299 -0.0000 +vn 0.6344 -0.7730 -0.0000 +vn 0.5826 -0.8128 0.0000 +vn 0.5556 -0.8315 0.0000 +vn 0.3827 -0.9239 0.0000 +vn 0.1951 -0.9808 0.0000 +vn -0.1951 -0.9808 0.0000 +vn -0.3827 -0.9239 0.0000 +vn -0.5555 -0.8314 -0.0113 +vn -0.5556 -0.8315 0.0000 +vn -0.7068 -0.7068 -0.0279 +vn -0.8315 -0.5556 0.0000 +vn -0.9239 -0.3827 -0.0000 +vn -0.9808 -0.1951 -0.0000 +vn -0.9808 0.1951 0.0000 +vn -0.9239 0.3827 0.0000 +vn -0.8315 0.5556 0.0000 +vn -0.5540 0.8325 0.0036 +vn -0.5539 0.8326 0.0036 +vn -0.3358 0.9419 0.0018 +vn -0.3807 0.9247 0.0036 +vn -0.2272 0.9739 0.0000 +vn 0.1951 0.9808 0.0000 +vn 0.3827 0.9239 0.0000 +vn 0.5556 0.8315 0.0000 +vn 0.8315 0.5556 0.0000 +vn 0.9239 0.3827 0.0000 +vn 0.9808 0.1951 0.0000 +vn -0.0013 -0.0013 -1.0000 +vn -0.0000 0.0000 -1.0000 +vn -0.0007 -0.0017 -1.0000 +vn 0.5555 0.8314 -0.0098 +vn 0.7070 0.7070 -0.0139 +vn 0.7067 0.7075 -0.0063 +vn -0.1951 -0.9807 -0.0098 +vn -0.3826 -0.9238 -0.0139 +vn -0.3822 -0.9241 -0.0063 +vn 0.3822 0.9241 -0.0063 +vn 0.3826 0.9238 -0.0139 +vn 0.1951 -0.9807 -0.0098 +vn 0.3832 -0.9237 -0.0063 +vn 0.3826 -0.9238 -0.0139 +vn -0.0000 -0.0019 -1.0000 +vn 0.0007 -0.0017 -1.0000 +vn -0.3584 -0.8652 -0.3507 +vn -0.5201 -0.7784 -0.3516 +vn 0.8491 -0.5279 0.0164 +vn -0.3827 0.9239 0.0000 +vn -0.4714 0.8819 0.0000 +vn -0.5279 0.8491 0.0164 +vn -0.9737 -0.2271 0.0164 +vn -0.5555 -0.8314 -0.0098 +vn 0.2271 -0.9737 0.0164 +vn -0.8314 -0.5555 -0.0098 +vn -0.9238 -0.3826 -0.0139 +vn -0.9237 -0.3832 -0.0063 +vn 0.0017 0.0007 -1.0000 +vn -0.5556 0.8315 0.0000 +vn 0.9807 0.1951 -0.0098 +vn 0.9999 0.0000 -0.0140 +vn 1.0000 0.0005 -0.0063 +vn 0.9952 0.0980 0.0000 +vn 0.8314 0.5555 -0.0098 +vn -0.2271 -0.9737 0.0164 +vn 0.0007 0.0017 -1.0000 +vn -0.0000 0.0019 -1.0000 +vn -0.2903 0.9569 0.0000 +vn -0.2271 0.9737 0.0164 +vn -0.8491 -0.5279 0.0164 +vn -0.7921 -0.5292 0.3042 +vn -0.8804 -0.3647 0.3032 +vn 0.5292 -0.7921 0.3042 +vn 0.3647 -0.8804 0.3032 +vn 0.9343 0.1858 0.3042 +vn 0.9529 -0.0000 0.3032 +vn -0.9343 0.1858 0.3042 +vn -0.8804 0.3647 0.3032 +vn -0.1826 0.9182 -0.3516 +vn 0.0000 0.9365 -0.3507 +vn -0.7784 0.5201 -0.3516 +vn -0.6622 0.6622 -0.3507 +vn -0.1826 -0.9182 -0.3516 +vn 0.9182 -0.1826 -0.3516 +vn 0.8652 -0.3584 -0.3507 +vn 0.0000 0.0000 1.0000 +vn -0.9343 -0.1858 0.3042 +vn 0.9343 -0.1858 0.3042 +vn 0.3647 0.8804 0.3032 +vn 0.5292 0.7921 0.3042 +vn -0.7921 0.5292 0.3042 +vn -0.9365 -0.0000 -0.3507 +vn -0.9182 0.1826 -0.3516 +vn 0.6622 -0.6622 -0.3507 +vn 0.5201 -0.7784 -0.3516 +vn 0.7784 -0.5201 -0.3516 +vn -0.9952 -0.0980 -0.0000 +vn 0.0980 -0.9952 0.0000 +vn 0.6344 0.7730 0.0000 +vn 0.0000 0.6384 -0.7697 +vn 0.0628 0.6371 -0.7682 +vn -0.0980 -0.9952 -0.0000 +vn 0.9808 0.1952 0.0000 +vn 0.9108 0.4128 -0.0000 +vn 0.8578 0.5140 0.0000 +vn 0.8819 0.4714 0.0000 +vn -0.1951 0.9808 0.0000 +vn 0.9365 -0.0000 -0.3507 +vn -0.9529 -0.0000 0.3032 +vn -0.6738 0.6738 0.3032 +vn -0.5292 0.7921 0.3042 +vn -0.3647 0.8804 0.3032 +vn -0.1858 -0.9343 0.3042 +vn 0.0000 -0.9529 0.3032 +vn -0.3647 -0.8804 0.3032 +vn -0.5292 -0.7921 0.3042 +vn -0.6738 -0.6738 0.3032 +vn -0.7730 -0.6344 -0.0000 +vn 0.9952 -0.0980 0.0000 +vn -0.7730 0.6344 0.0000 +vn -0.9952 0.0980 0.0000 +vn -0.2310 0.9730 0.0000 +vn 0.8702 0.2066 -0.4472 +vn 0.2310 -0.9730 -0.0000 +vn 0.5147 0.5147 -0.6858 +vn 0.5147 0.5147 -0.6857 +vn 0.5074 0.5074 -0.6965 +vn -0.7034 0.7108 0.0017 +vn 0.4982 -0.5018 0.7071 +vn 0.4966 -0.5034 -0.7071 +vn -0.7071 0.0000 0.7071 +vn 0.0001 1.0000 0.0000 +vn 0.7075 0.7067 0.0000 +vn 0.0003 1.0000 0.0000 +vn 0.0004 1.0000 0.0000 +vn 0.7071 0.0000 0.7071 +vn 0.7694 0.6388 0.0000 +vn 0.0001 0.7071 0.7071 +vn 0.0002 0.7071 0.7071 +vn 0.7074 0.7068 0.0000 +vn 0.5441 0.4517 0.7071 +vn 0.5004 0.4996 0.7071 +vn -0.0039 0.6936 0.7203 +vn 0.7071 -0.0297 0.7065 +vn 0.0000 -0.7071 0.7071 +vn 0.0000 1.0000 0.0001 +vn 0.0000 -0.6967 0.7173 +vn -0.5774 -0.8165 -0.0000 +vn -0.5774 0.8165 0.0000 +vn 0.9254 -0.3789 -0.0000 +vn -0.0159 -0.9999 -0.0000 +vn 0.0126 0.7114 -0.7027 +vn 0.0106 0.7107 -0.7034 +vn 0.7071 0.0000 -0.7071 +vn 0.0212 0.7142 -0.6996 +vn 0.0006 0.7088 -0.7054 +vn -0.4512 0.7150 -0.5341 +vn -0.2880 0.9576 0.0000 +vn -0.8165 0.5774 0.0000 +vn -0.7804 0.6253 -0.0013 +vn -0.7808 0.6248 -0.0011 +vn -0.7806 0.6250 0.0014 +vn -0.7797 0.6262 0.0009 +vn 0.7804 0.6253 0.0000 +vn -0.3860 -0.9207 0.0576 +vn -0.3688 -0.9287 -0.0387 +vn -0.2516 -0.9672 -0.0336 +vn -0.7071 -0.4703 0.5281 +vn -0.5829 -0.5661 0.5829 +vn 0.6391 -0.3842 0.6663 +vn -0.7068 0.7068 0.0298 +vn -0.7078 -0.7011 0.0863 +vn -0.7058 -0.7084 -0.0001 +vn -0.7044 -0.6886 0.1721 +vn -0.7784 -0.5201 -0.3516 +vn -0.6622 -0.6622 -0.3507 +vn 0.9182 0.1826 -0.3516 +vn 0.8652 0.3584 -0.3507 +vn -0.5201 0.7784 -0.3516 +vn 0.7921 0.5292 0.3042 +vn 0.6738 0.6738 0.3032 +vn 0.6738 -0.6738 0.3032 +vn -0.6344 0.7730 0.0000 +vn 0.7730 -0.6344 0.0000 +vn -0.0980 0.9952 0.0000 +vn 0.7730 0.6344 0.0000 +vn -0.6344 -0.7730 -0.0000 +vn 0.0980 0.9952 0.0000 +vn -0.4514 -0.4514 -0.7697 +vn -0.4949 -0.4061 -0.7682 +vn -0.0628 0.6371 -0.7682 +vn -0.4061 -0.4949 -0.7682 +vn -0.8652 -0.3584 -0.3507 +vn -0.3584 0.8652 -0.3507 +vn -0.8652 0.3584 -0.3507 +vn 0.8804 0.3647 0.3032 +vn 0.8804 -0.3647 0.3032 +vn -0.2368 0.0471 -0.9704 +vn -0.2231 0.0924 -0.9704 +vn -0.2007 0.1341 -0.9704 +vn -0.1707 0.1707 -0.9704 +vn -0.1341 0.2007 -0.9704 +vn -0.0924 0.2231 -0.9704 +vn -0.0471 0.2368 -0.9704 +vn -0.0000 0.2414 -0.9704 +vn 0.0471 0.2368 -0.9704 +vn 0.0924 0.2231 -0.9704 +vn 0.0704 0.2321 -0.9701 +vn -0.2231 -0.0925 -0.9704 +vn -0.2368 -0.0471 -0.9704 +vn -0.2414 0.0000 -0.9704 +vn 0.1143 0.2139 -0.9701 +vn -0.9108 0.4128 -0.0000 +vn -0.8578 0.5140 0.0000 +vn -0.8819 0.4714 0.0000 +vn 0.4714 0.8819 0.0000 +vn -0.9808 0.1952 0.0000 +vn -0.2141 -0.1144 -0.9701 +vn 0.7921 -0.5292 0.3042 +vn 0.4514 0.4514 -0.7697 +vn 0.4949 0.4061 -0.7682 +vn 0.4061 0.4949 -0.7682 +vn -0.2310 -0.9730 -0.0000 +vn 0.2310 0.9730 0.0000 +vn -0.9730 0.2310 -0.0000 +vn -0.5147 0.5147 -0.6858 +vn -0.5147 0.5147 -0.6857 +vn -0.5074 0.5074 -0.6965 +vn -0.0011 0.0011 1.0000 +vn 0.4986 0.5022 -0.7065 +vn -0.4966 -0.5034 -0.7071 +vn -0.0001 1.0000 0.0000 +vn -0.0002 1.0000 0.0000 +vn -0.7075 0.7067 0.0000 +vn -0.7075 0.7068 0.0000 +vn -0.0003 1.0000 0.0000 +vn -0.7076 0.7066 -0.0000 +vn -0.7074 0.7068 0.0000 +vn -0.7694 0.6388 0.0000 +vn -0.7694 0.6387 0.0000 +vn -0.0003 0.7071 0.7071 +vn -0.5003 0.4997 0.7071 +vn -0.5002 0.4998 0.7071 +vn -0.5441 0.4517 0.7071 +vn -0.0001 0.7071 0.7071 +vn -0.7071 -0.0297 0.7065 +vn 0.0039 0.6936 0.7203 +vn -0.9254 -0.3789 -0.0000 +vn 0.7029 0.0032 0.7113 +vn 0.7043 0.0059 0.7099 +vn 0.5805 -0.0000 0.8143 +vn -0.0012 0.1108 -0.9938 +vn 0.0108 -0.0432 -0.9990 +vn -0.3094 0.0464 -0.9498 +vn -0.3523 0.0484 -0.9346 +vn -0.2499 0.0332 -0.9677 +vn -0.0000 0.9998 -0.0183 +vn -0.0408 0.9983 0.0408 +vn 0.0408 0.9491 0.3123 +vn 0.0000 0.9363 0.3511 +vn 0.0000 0.9153 0.4027 +vn -0.0405 0.9490 0.3126 +vn 0.0405 0.9984 0.0405 +vn -0.0303 0.9995 0.0000 +vn -0.0405 0.9984 0.0405 +vn -0.0408 0.9491 0.3123 +vn 0.0408 0.9983 0.0408 +vn -0.0183 0.9998 0.0000 +vn -0.0127 0.9999 -0.0115 +vn 0.0405 0.9490 0.3126 +vn 0.3915 -0.7150 -0.5793 +vn 0.4512 -0.2194 -0.8651 +vn 0.9325 -0.2805 -0.2273 +vn -0.3915 -0.7150 -0.5793 +vn -0.4512 -0.2194 -0.8651 +vn 0.0183 0.9362 0.3511 +vn 0.0000 0.9465 0.3226 +vn 0.0000 0.9426 0.3339 +vn 1.0000 0.0021 -0.0000 +vn 1.0000 -0.0003 -0.0013 +vn 1.0000 0.0014 -0.0003 +vn 1.0000 0.0012 -0.0007 +vn 0.7807 -0.6249 -0.0004 +vn 0.7806 -0.6250 0.0014 +vn 0.7797 -0.6262 0.0009 +vn 0.7804 -0.6253 -0.0013 +vn -0.3089 -0.0000 0.9511 +vn 0.7071 0.4703 -0.5281 +vn -0.8169 0.4983 0.2904 +vn -0.4998 0.7483 0.4362 +vn -0.3087 0.8217 0.4790 +vn -0.6737 0.6384 0.3721 +vn -0.9915 0.1121 0.0654 +vn -0.0000 0.8944 0.4472 +vn 0.0000 -0.4425 -0.8968 +vn 0.7029 0.0088 0.7113 +vn 0.7071 0.0113 0.7071 +vn 0.0000 0.6789 0.7342 +vn -0.6391 -0.3842 0.6663 +vn 0.5829 -0.5661 0.5829 +vn 0.6229 0.6229 -0.4734 +vn -0.8944 -0.4472 -0.0000 +vn -0.8938 -0.4469 0.0371 +vn -0.8930 -0.4465 0.0556 +vn -0.8938 -0.4469 0.0370 +vn -0.8923 -0.4462 0.0683 +vn 0.5279 0.8491 0.0164 +vn 0.9737 0.2271 0.0164 +vn -0.9182 -0.1826 -0.3516 +vn -0.8491 0.5279 0.0164 +vn -0.0017 0.0007 -1.0000 +vn -0.5555 0.8314 -0.0098 +vn -0.7075 0.7067 -0.0063 +vn -0.7070 0.7070 -0.0139 +vn -0.9737 0.2271 0.0164 +vn 0.1951 0.9807 -0.0098 +vn -0.0000 -0.9999 -0.0140 +vn 0.0005 -1.0000 -0.0063 +vn 0.9737 -0.2271 0.0164 +vn 0.5555 -0.8314 -0.0098 +vn 0.7075 -0.7067 -0.0063 +vn 0.7070 -0.7070 -0.0139 +vn 0.1858 -0.9343 0.3042 +vn 0.1858 0.9343 0.3042 +vn -0.1858 0.9343 0.3042 +vn -0.0000 0.9529 0.3032 +vn 0.4514 -0.4514 -0.7697 +vn 0.4061 -0.4949 -0.7682 +vn 0.2368 0.0471 -0.9704 +vn 0.2414 0.0000 -0.9704 +vn 0.2231 0.0924 -0.9704 +vn 0.2007 0.1341 -0.9704 +vn 0.1707 0.1707 -0.9704 +vn 0.1341 0.2007 -0.9704 +vn 0.2231 -0.0925 -0.9704 +vn 0.2141 -0.1144 -0.9701 +vn 0.2368 -0.0471 -0.9704 +vn 0.2370 0.0467 -0.9704 +vn 0.2007 0.1341 0.9704 +vn 0.2139 0.1143 0.9701 +vn 0.2051 0.1275 0.9704 +vn 0.2417 0.0229 -0.9701 +vn 0.1707 0.1707 0.9704 +vn 0.1341 0.2007 0.9704 +vn 0.0924 0.2231 0.9704 +vn 0.0471 0.2368 0.9704 +vn 0.0000 0.2414 0.9704 +vn -0.0471 0.2368 0.9704 +vn -0.0924 0.2231 0.9704 +vn -0.0704 0.2321 0.9701 +vn -0.1143 0.2139 0.9701 +vn -0.1143 0.2139 -0.9701 +vn -0.0704 0.2321 -0.9701 +vn -0.4514 0.4514 -0.7697 +vn -0.4061 0.4949 -0.7682 +vn -0.4949 0.4061 -0.7682 +vn 0.9730 0.2310 -0.0000 +vn 0.7034 -0.7108 0.0000 +vn -0.4962 0.5030 0.7077 +vn -0.4986 0.5022 -0.7065 +vn 0.7076 0.7067 0.0000 +vn 0.0002 1.0000 0.0000 +vn 0.7075 0.7068 0.0000 +vn 0.0003 0.7071 0.7071 +vn 0.7076 0.7066 -0.0000 +vn 0.7694 0.6387 0.0000 +vn 0.5003 0.4997 0.7071 +vn 0.5002 0.4998 0.7071 +vn -0.0117 -0.0294 0.9995 +vn -0.0176 -0.0230 0.9996 +vn -0.0175 -0.0086 0.9998 +vn -0.0148 -0.0057 0.9999 +vn 0.0000 -0.0421 0.9991 +vn -0.0066 -0.0340 0.9994 +vn -0.0111 0.0013 0.9999 +vn -0.0095 0.0000 1.0000 +vn -0.9600 0.0936 -0.2641 +vn -0.7807 -0.6250 -0.0014 +vn -0.7801 -0.6257 0.0005 +vn -0.7809 -0.6247 -0.0011 +vn -0.7812 -0.6243 0.0005 +vn 0.0006 -1.0000 -0.0002 +vn 0.3089 -0.0000 0.9511 +vn -0.7072 0.7070 0.0000 +vn 0.8169 0.4983 0.2904 +vn 0.3087 0.8217 0.4790 +vn 0.4998 0.7483 0.4362 +vn 0.6737 0.6384 0.3721 +vn -0.9970 0.0774 -0.0000 +vn -0.9902 0.1395 0.0000 +vn 0.9248 0.3804 -0.0000 +vn -0.6229 0.6229 -0.4734 +vn 0.8938 -0.4469 0.0371 +vn 0.8944 -0.4472 -0.0000 +vn 0.8915 -0.4457 0.0810 +vn 0.8938 -0.4469 0.0370 +vn 0.8930 -0.4465 0.0556 +vn -0.0246 -0.9994 0.0262 +vn 0.0154 -0.9999 -0.0000 +vn 0.0000 -0.9994 -0.0342 +vn -0.8128 0.5826 0.0000 +vn 0.2903 0.9569 0.0000 +vn -0.5826 0.8128 0.0000 +vn -0.5825 0.8128 0.0000 +vn -0.9108 -0.4128 -0.0000 +vn -0.8819 -0.4714 -0.0000 +vn -0.8493 -0.5280 -0.0000 +vn -0.6835 -0.7299 -0.0000 +vn -0.5826 -0.8128 -0.0000 +vn 0.5555 -0.8314 -0.0113 +vn 0.7068 -0.7068 -0.0279 +vn 0.5539 0.8326 0.0036 +vn 0.5540 0.8325 0.0036 +vn 0.3807 0.9247 0.0036 +vn 0.3358 0.9419 0.0018 +vn 0.2272 0.9739 0.0000 +vn 0.0000 -0.9365 -0.3507 +vn 0.1826 -0.9182 -0.3516 +vn 0.3584 -0.8652 -0.3507 +vn 0.7784 0.5201 -0.3516 +vn 0.6622 0.6622 -0.3507 +vn 0.5201 0.7784 -0.3516 +vn 0.3584 0.8652 -0.3507 +vn 0.1826 0.9182 -0.3516 +vn -0.0000 -0.6384 -0.7697 +vn -0.0627 -0.6371 -0.7682 +vn -0.6384 0.0000 -0.7697 +vn -0.6371 0.0627 -0.7682 +vn 0.6384 0.0000 -0.7697 +vn 0.6371 -0.0627 -0.7682 +vn -0.6371 -0.0627 -0.7682 +vn 0.0627 -0.6371 -0.7682 +vn 0.4949 -0.4061 -0.7682 +vn 0.6371 0.0627 -0.7682 +vn -0.2370 0.0467 -0.9704 +vn -0.2417 0.0229 -0.9701 +vn -0.8702 0.2066 -0.4472 +vn 0.4962 0.5030 0.7077 +vn 0.0011 -0.0011 -1.0000 +vn -0.4982 -0.5018 0.7071 +vn -0.1952 0.9808 0.0000 +vn -0.1953 0.9807 0.0000 +vn -1.0000 0.0053 -0.0000 +vn -0.9718 0.2357 -0.0001 +vn -0.9803 0.1976 -0.0002 +vn -0.7076 0.7067 0.0000 +vn -0.0004 1.0000 0.0000 +vn -0.5004 0.4996 0.7071 +vn -0.0002 0.7071 0.7071 +vn 0.0149 -0.0057 0.9999 +vn 0.0175 -0.0086 0.9998 +vn 0.0176 -0.0230 0.9996 +vn 0.0117 -0.0294 0.9995 +vn 0.0095 0.0000 1.0000 +vn 0.0111 0.0013 0.9999 +vn -0.5561 0.8311 0.0000 +vn -0.8667 0.4989 0.0000 +vn 0.0066 -0.0340 0.9994 +vn -0.9241 0.3823 0.0000 +vn 0.5774 0.8165 0.0000 +vn 0.5773 0.8165 0.0000 +vn 0.5773 -0.8165 -0.0000 +vn 0.5774 -0.8165 -0.0000 +vn 0.8091 0.0000 0.5876 +vn 0.0159 -0.9999 -0.0000 +vn -0.0000 -0.7468 -0.6650 +vn -0.8334 0.5526 0.0000 +vn -0.9325 -0.2805 -0.2273 +vn 0.5983 -0.0000 0.8013 +vn 0.5982 -0.0000 0.8013 +vn 0.0000 0.9891 0.1469 +vn 0.0000 0.9365 0.3506 +vn -0.0000 -0.9991 0.0414 +vn -0.0000 -0.9985 0.0547 +vn 0.0414 -0.9203 0.3891 +vn -0.0063 -0.9092 0.4163 +vn 0.0130 -0.8977 0.4404 +vn -0.0547 -0.9197 0.3888 +vn -0.0560 -0.7051 0.7069 +vn 0.0294 -0.7011 0.7125 +vn 0.8128 0.5825 0.0000 +vn 0.5825 0.8128 0.0000 +vn 0.5826 0.8128 0.0000 +vn -0.1951 0.9807 -0.0098 +vn -0.0000 0.9999 -0.0140 +vn -0.0005 1.0000 -0.0063 +vn -0.3832 0.9237 -0.0063 +vn -0.3826 0.9238 -0.0139 +vn 0.8314 -0.5555 -0.0098 +vn 0.9241 -0.3822 -0.0063 +vn 0.9238 -0.3826 -0.0139 +vn -0.0013 0.0013 -1.0000 +vn -0.2903 -0.9569 0.0000 +vn 0.8491 0.5279 0.0164 +vn -0.5279 -0.8491 0.0164 +vn 0.9569 0.2903 0.0000 +vn 0.0011 0.0011 1.0000 +vn -0.0011 -0.0011 -1.0000 +vn 0.8312 0.5554 0.0242 +vn 0.8247 0.5513 0.1266 +vn 0.9745 0.1938 0.1132 +vn 0.9807 0.1951 0.0085 +vn 0.9949 0.0001 0.1004 +vn 0.5552 0.8309 0.0362 +vn 0.5504 0.8234 0.1380 +vn 0.1818 0.9216 0.3429 +vn -0.0007 0.9447 0.3278 +vn -0.0004 0.8635 0.5043 +vn 0.1632 0.8356 0.5245 +vn 0.1928 0.9705 0.1445 +vn 0.0001 0.9902 0.1394 +vn 0.5233 0.7827 0.3370 +vn 0.7854 0.5256 0.3269 +vn 0.4742 0.7108 0.5195 +vn 0.7129 0.4802 0.5111 +vn 0.9303 0.1845 0.3170 +vn 0.9442 -0.0009 0.3294 +vn -0.0001 0.7486 0.6631 +vn 0.1376 0.7177 0.6826 +vn 0.1223 0.6477 0.7520 +vn 0.4048 0.6129 0.6786 +vn 0.6102 0.4195 0.6721 +vn 0.8662 0.1323 0.4819 +vn 0.3631 0.5549 0.7485 +vn 0.5705 0.3456 0.7450 +vn 0.7273 0.1183 0.6760 +vn 0.7692 0.0007 0.6390 +vn 0.8786 -0.0046 0.4776 +vn 0.0009 0.9990 0.0438 +vn 0.1953 0.9798 0.0428 +vn 0.6460 0.1816 0.7414 +vn 0.6105 0.2687 0.7451 +vn 0.7004 0.0055 0.7138 +vn -0.5773 0.8165 0.0000 +vn 0.0012 0.1108 -0.9938 +vn -0.8091 0.0000 0.5876 +vn -0.0230 -0.9959 0.0881 +vn -0.5805 -0.0000 0.8143 +vn 0.2499 0.0332 -0.9677 +vn 0.3523 0.0484 -0.9346 +vn 0.3094 0.0464 -0.9498 +vn -0.0108 -0.0432 -0.9990 +vn 0.9600 0.0936 -0.2641 +vn 0.7804 -0.6253 0.0000 +vn 0.0547 -0.9197 0.3888 +vn -0.0130 -0.8977 0.4404 +vn 0.0063 -0.9092 0.4163 +vn -0.0414 -0.9203 0.3891 +vn -0.0294 -0.7011 0.7125 +vn 0.0560 -0.7051 0.7069 +vn -0.2007 0.1341 0.9704 +vn -0.1707 0.1707 0.9704 +vn -0.2051 0.1275 0.9704 +vn -0.1341 0.2007 0.9704 +vn 0.0704 0.2321 0.9701 +vn -0.2139 0.1143 0.9701 +vn 0.1143 0.2139 0.9701 +vn -0.0628 -0.6371 -0.7682 +vn 0.0627 0.6371 -0.7682 +vn -0.0627 0.6371 -0.7682 +vn 0.0628 -0.6371 -0.7682 +vn -0.7034 -0.7108 0.0000 +vn 0.7034 0.7108 0.0017 +vn 0.0301 0.9985 0.0465 +vn 0.0221 0.9988 0.0435 +vn 0.0012 0.9991 0.0421 +vn 0.0347 0.9986 0.0393 +vn 0.0338 0.9978 0.0566 +vn 0.0301 0.9985 0.0450 +vn 0.0430 0.9981 0.0450 +vn 0.0431 0.9981 0.0449 +vn 0.0383 0.9980 0.0510 +vn 0.9487 0.0000 0.3162 +vn 0.9485 -0.0194 0.3162 +vn 0.9482 0.0304 0.3161 +vn 0.0009 -0.9998 -0.0222 +vn -0.0433 -0.9983 -0.0384 +vn -0.9600 0.0935 -0.2641 +vn 0.7110 0.7032 -0.0004 +vn 0.7119 0.7022 -0.0014 +vn 0.7116 0.7025 -0.0019 +vn 0.7096 0.7046 -0.0035 +vn 0.0000 0.9998 0.0210 +vn -0.0000 0.9995 0.0315 +vn 0.8165 0.5774 0.0000 +vn -0.4714 -0.8819 0.0000 +vn -0.0018 -0.0000 -1.0000 +vn -0.7070 -0.7070 -0.0139 +vn -0.7067 -0.7075 -0.0063 +vn 0.9237 0.3832 -0.0063 +vn 0.9238 0.3826 -0.0139 +vn -0.0017 -0.0007 -1.0000 +vn 0.2271 0.9737 0.0164 +vn 0.0017 -0.0007 -1.0000 +vn 0.9807 -0.1951 -0.0098 +vn 0.7079 0.7063 -0.0006 +vn 0.7066 0.7076 -0.0033 +vn 0.7063 0.7079 -0.0050 +vn 0.7070 0.7072 -0.0055 +vn 0.7065 0.7077 -0.0054 +vn 0.7073 0.7069 -0.0054 +vn 0.7101 0.7040 -0.0032 +vn 0.7102 0.7040 0.0000 +vn 0.7100 0.7043 0.0002 +vn 0.7078 0.7064 -0.0032 +vn 0.7115 0.7027 -0.0016 +vn 0.7100 0.7042 -0.0016 +vn 0.7124 0.7018 -0.0016 +vn 0.7092 0.7050 -0.0016 +vn 0.7072 0.7070 0.0000 +vn -0.0012 0.9991 0.0421 +vn -0.0221 0.9988 0.0435 +vn -0.0301 0.9985 0.0465 +vn -0.0347 0.9986 0.0393 +vn 0.0003 1.0000 -0.0003 +vn -0.0301 0.9985 0.0450 +vn -0.0338 0.9978 0.0566 +vn -0.0430 0.9981 0.0450 +vn -0.0383 0.9980 0.0510 +vn -0.0431 0.9981 0.0449 +vn -0.9482 0.0304 0.3161 +vn -0.9485 -0.0194 0.3162 +vn -0.9487 0.0000 0.3162 +vn -0.5983 0.0000 0.8013 +vn -0.5982 0.0000 0.8013 +vn -0.7110 0.7032 -0.0004 +vn -0.7100 0.7042 0.0002 +vn -0.7079 0.7063 -0.0006 +vn 0.0000 0.9995 0.0316 +vn -0.7071 0.0113 0.7071 +vn -0.7029 0.0088 0.7113 +vn -0.7043 0.0059 0.7099 +vn -0.7029 0.0032 0.7113 +vn -0.0000 -0.9991 -0.0427 +vn 0.9700 0.2431 0.0000 +vn 0.5140 0.8578 0.0000 +vn 0.2431 0.9700 0.0000 +vn -0.2431 0.9700 0.0000 +vn -0.5140 0.8578 0.0000 +vn -0.9700 0.2431 0.0000 +vn -0.9700 -0.2431 -0.0000 +vn -0.8578 -0.5140 -0.0000 +vn -0.5140 -0.8578 -0.0000 +vn -0.2431 -0.9700 -0.0000 +vn 0.2431 -0.9700 -0.0000 +vn 0.5140 -0.8578 0.0000 +vn 0.8578 -0.5140 -0.0000 +vn 0.9700 -0.2431 -0.0000 +vn -0.9569 0.2903 0.0000 +vn -0.9569 -0.2903 -0.0000 +vn 0.2903 -0.9569 0.0000 +vn 0.4714 -0.8819 0.0000 +vn 0.9569 -0.2903 -0.0000 +vn -0.7068 0.7074 -0.0034 +vn -0.7070 0.7072 -0.0054 +vn -0.7063 0.7079 -0.0050 +vn -0.7079 0.7063 -0.0030 +vn -0.7065 0.7077 -0.0054 +vn -0.7072 0.7070 -0.0055 +vn -0.7096 0.7045 -0.0034 +vn -0.7116 0.7025 -0.0019 +vn -0.7119 0.7022 -0.0014 +vn -0.7101 0.7040 -0.0032 +vn -0.7102 0.7040 0.0000 +vn -0.7124 0.7018 -0.0016 +vn -0.7116 0.7026 -0.0016 +vn -0.7116 0.7025 -0.0016 +vn -0.7092 0.7050 -0.0016 +vn -0.7100 0.7042 -0.0016 +vn -0.7102 0.7040 -0.0016 +vn -0.8312 0.5554 0.0242 +vn -0.8246 0.5513 0.1266 +vn -0.5504 0.8234 0.1380 +vn -0.5552 0.8309 0.0362 +vn -0.9807 0.1951 0.0085 +vn -0.9745 0.1938 0.1131 +vn -0.1928 0.9705 0.1445 +vn -0.1953 0.9798 0.0428 +vn -0.1818 0.9216 0.3428 +vn -0.5233 0.7827 0.3370 +vn -0.4742 0.7108 0.5195 +vn -0.1632 0.8356 0.5245 +vn -0.7854 0.5256 0.3269 +vn -0.9303 0.1846 0.3170 +vn -0.8662 0.1323 0.4819 +vn -0.7129 0.4802 0.5111 +vn -0.9442 -0.0009 0.3294 +vn 0.0004 0.8635 0.5043 +vn 0.0007 0.9447 0.3278 +vn -0.1376 0.7177 0.6826 +vn -0.4048 0.6129 0.6786 +vn -0.3631 0.5549 0.7485 +vn -0.1223 0.6477 0.7520 +vn 0.0001 0.7486 0.6631 +vn -0.6102 0.4195 0.6721 +vn -0.7273 0.1183 0.6760 +vn -0.6460 0.1816 0.7414 +vn -0.5705 0.3456 0.7450 +vn -0.7004 0.0055 0.7138 +vn -0.8786 -0.0046 0.4776 +vn -0.7692 0.0007 0.6390 +vn -0.0001 0.9902 0.1398 +vn -0.0009 0.9990 0.0438 +vn -0.9949 0.0001 0.1004 +vn -0.6104 0.2687 0.7451 +vn -0.0003 1.0000 -0.0013 +vn 0.8165 0.5773 0.0000 +vn -0.0020 1.0000 -0.0002 +vn 0.9970 0.0774 -0.0000 +vn 0.9902 0.1396 0.0000 +vn 0.9729 0.2310 -0.0000 +vn 0.9915 0.1121 0.0654 +vn 1.0000 0.0053 0.0000 +vn 0.9718 0.2357 -0.0001 +vn 0.0000 0.7072 -0.7070 +vn 0.4040 0.6017 -0.6890 +vn 0.7370 0.3269 -0.5916 +vn 0.3389 0.6153 -0.7117 +vn -0.1111 0.6720 -0.7322 +vn 0.5279 -0.8491 0.0164 +vn 0.2368 0.0471 0.9704 +vn 0.2414 -0.0000 0.9704 +vn 0.1599 -0.1100 0.9810 +vn -0.0763 0.2478 0.9658 +vn 0.9969 0.0314 -0.0723 +vn 0.9988 0.0490 -0.0001 +vn 0.9778 -0.2023 -0.0550 +vn 0.2231 0.0924 0.9704 +vn 0.9995 -0.0328 -0.0000 +vn 0.9867 -0.1628 0.0000 +vn 0.9364 0.1964 -0.2908 +vn 0.7112 0.4994 -0.4948 +vn 0.9943 0.0454 0.0959 +vn 0.8667 0.4989 0.0000 +vn 0.5560 0.8312 0.0000 +vn 0.5561 0.8311 0.0000 +vn 0.9803 0.1976 -0.0002 +vn 0.1953 0.9807 0.0000 +vn 0.9241 0.3823 0.0000 +vn -0.9984 0.0102 -0.0564 +vn -0.9985 -0.0000 -0.0556 +vn 0.9985 0.0000 -0.0556 +vn 0.9983 0.0103 -0.0568 +vn -0.8165 0.5773 0.0000 +vn -0.0009 1.0000 0.0010 +vn -0.5978 -0.0096 0.8016 +vn -0.0002 1.0000 0.0001 +vn -0.8314 0.5555 -0.0098 +vn -0.9807 0.1951 -0.0098 +vn -1.0000 -0.0005 -0.0063 +vn -0.9999 0.0000 -0.0139 +vn -0.9241 0.3822 -0.0063 +vn -0.9238 0.3826 -0.0139 +vn 0.0019 0.0000 -1.0000 +vn -0.9807 -0.1951 -0.0098 +vn -0.0019 -0.0000 -1.0000 +vn 0.0013 -0.0013 -1.0000 +vn -0.0007 0.0017 -1.0000 +vn 0.0013 0.0013 -1.0000 +vn -0.2000 0.3934 -0.8974 +vn -0.3290 0.9440 0.0255 +vn -0.3389 0.6153 -0.7117 +vn -0.9729 0.2310 -0.0000 +vn -0.0953 0.8600 0.5013 +vn 0.0953 0.8600 0.5013 +vn 0.0954 0.8600 0.5013 +vn -0.0954 0.8600 0.5013 +vn -0.0001 1.0000 0.0001 +vn 0.0002 1.0000 0.0001 +vn -0.0003 1.0000 -0.0004 +vn -0.2277 0.8263 -0.5152 +vn 0.0018 0.0000 -1.0000 +vn -0.9999 0.0000 -0.0140 +vn 0.9999 0.0000 -0.0139 +vn -0.2368 0.0471 0.9704 +vn -0.2231 0.0924 0.9704 +vn -0.9995 0.0329 -0.0000 +vn -0.9988 0.0490 -0.0000 +vn -0.2414 -0.0000 0.9704 +vn -0.9995 -0.0328 0.0000 +vn -0.9867 -0.1628 -0.0000 +vn -0.9464 0.2980 -0.1242 +vn 0.1394 0.1482 0.9791 +vn -0.5078 0.1121 0.8541 +vn -0.9943 0.0454 0.0959 +vn -0.5740 -0.4194 -0.7033 +vn -0.9735 0.2071 0.0968 +vn -0.0060 -0.9998 0.0179 +vn -0.0004 -1.0000 0.0005 +vn 0.0000 -0.9998 -0.0207 +vn -0.0920 -0.9956 -0.0189 +vn -0.2606 -0.9418 -0.2122 +vn -0.1673 -0.9612 -0.2194 +vn -0.2058 -0.9629 -0.1747 +vn -0.2824 -0.9427 -0.1777 +vn 0.3356 -0.9418 -0.0186 +vn 0.3723 -0.9274 -0.0353 +vn 0.2436 -0.9685 0.0519 +vn 0.3334 -0.9428 0.0016 +vn 0.2511 -0.9674 0.0321 +vn 0.3860 -0.9207 0.0576 +vn -0.0012 -1.0000 -0.0012 +vn 0.0215 -0.9998 0.0048 +vn 0.0190 -0.9994 0.0284 +vn 0.3718 -0.9276 0.0352 +vn -0.0409 -0.9976 0.0563 +vn 0.0172 -0.9944 -0.1047 +vn 0.0623 -0.9959 0.0664 +vn -0.0000 -0.9978 0.0664 +vn -0.2940 -0.9557 0.0127 +vn -0.3714 -0.9285 -0.0000 +vn -0.1047 -0.9943 0.0204 +vn -0.1045 -0.9901 0.0940 +vn -0.1629 -0.9703 0.1786 +vn -0.0339 -0.9413 0.3358 +vn -0.0664 -0.9409 0.3320 +vn 0.0399 -0.9663 0.2543 +vn 0.0016 -0.9428 0.3334 +vn 0.7807 0.6249 0.0020 +vn 0.7807 0.6250 -0.0013 +vn 0.7795 0.6264 -0.0000 +vn 0.7808 0.6247 -0.0019 +vn 0.0002 -1.0000 0.0006 +vn 0.0000 -0.9999 -0.0164 +vn 0.0000 -0.9998 0.0207 +vn 0.0436 -0.9991 -0.0000 +vn -0.0425 -0.9985 0.0353 +vn 0.0000 -0.9992 -0.0387 +vn 0.0387 -0.9694 0.2424 +vn 0.0000 -0.9701 0.2425 +vn 0.0000 -0.9798 0.2002 +vn -0.0173 -0.9999 0.0000 +vn 0.0000 -0.0489 -0.9988 +vn -0.0420 -0.9985 -0.0352 +vn 0.0475 -0.9976 -0.0508 +vn -0.0576 -0.9967 -0.0576 +vn 0.0000 -0.9988 -0.0490 +vn -0.0000 -0.0326 -0.9995 +vn 0.0000 -0.2903 -0.9569 +vn 0.0000 -0.4714 -0.8819 +vn 0.0000 -0.6344 -0.7730 +vn 0.0000 -0.7730 -0.6344 +vn 0.0000 -0.8819 -0.4714 +vn 0.0000 -0.9569 -0.2903 +vn -0.0000 -0.9979 -0.0653 +vn 0.0427 -0.9478 0.3159 +vn 0.0072 -0.9487 0.3162 +vn 0.0000 -0.9487 0.3162 +vn -0.0164 -0.9486 0.3162 +vn 0.0000 -0.9798 0.2000 +vn -0.0387 -0.9694 0.2424 +vn -0.0207 -0.9699 0.2425 +vn 0.0000 -1.0000 -0.0072 +vn -0.0388 -0.9992 -0.0000 +vn 0.0388 -0.9992 0.0001 +vn -0.0262 -0.9755 0.2185 +vn -0.0000 -0.9600 0.2800 +vn 0.0000 -0.9839 0.1786 +vn -0.0001 -0.9600 0.2800 +vn -0.0205 -0.9699 0.2425 +vn 0.0000 -0.9749 0.2226 +vn 0.0000 -0.9832 0.1827 +vn 0.0000 -0.9981 0.0612 +vn -0.0215 -0.9998 0.0048 +vn 0.3575 0.8018 0.4788 +vn 0.3453 0.8026 0.4865 +vn 0.3714 -0.9285 -0.0000 +vn 0.2940 -0.9557 0.0127 +vn 0.3152 -0.9462 0.0733 +vn 0.0146 -0.9998 -0.0119 +vn 0.0282 -0.9985 0.0476 +vn -0.0016 -0.9428 0.3334 +vn -0.0846 -0.9503 0.2997 +vn -0.0456 -0.9570 0.2864 +vn 0.0339 -0.9413 0.3358 +vn 0.0012 -1.0000 -0.0012 +vn 0.0576 -0.9967 -0.0576 +vn 0.2905 -0.9370 -0.1938 +vn 0.2751 -0.9530 -0.1269 +vn 0.2463 -0.9646 -0.0940 +vn 0.2589 -0.9425 -0.2113 +vn -0.0107 -0.9998 0.0195 +vn 0.0920 -0.9956 -0.0189 +vn -0.0190 -0.9994 0.0284 +vn -0.0517 -0.9944 -0.0927 +vn -0.2798 -0.9557 -0.0913 +vn -0.3588 -0.9322 -0.0476 +vn -0.3376 -0.9411 -0.0181 +vn 0.0664 -0.9978 -0.0000 +vn 0.1629 -0.9703 0.1786 +vn 0.1045 -0.9901 0.0940 +vn 0.1047 -0.9943 0.0204 +vn 0.0847 -0.9964 0.0101 +vn 0.3405 -0.9400 -0.0206 +vn 0.3536 -0.9350 0.0258 +vn 0.3320 -0.9409 0.0664 +vn 0.2685 -0.9631 -0.0180 +vn 0.0000 0.9995 -0.0303 +vn -0.9983 0.0103 -0.0568 +vn 0.9984 0.0102 -0.0564 +vn 0.0303 0.9359 0.3510 +vn 0.0000 0.9426 0.3340 +vn -1.0000 -0.0014 -0.0003 +vn -1.0000 -0.0012 -0.0008 +vn -1.0000 -0.0007 0.0012 +vn -1.0000 0.0003 -0.0013 +vn 0.0164 -0.9999 -0.0000 +vn 0.0000 -0.9749 0.2224 +vn 0.0387 -0.9985 0.0387 +vn -0.3334 -0.9428 0.0016 +vn -0.0436 -0.9991 -0.0000 +vn 0.0000 -0.9537 0.3006 +vn -0.0072 -0.9487 0.3162 +vn -0.0427 -0.9478 0.3159 +vn 0.0207 -0.9998 -0.0000 +vn 0.0262 -0.9755 0.2185 +vn 0.0303 -0.9995 -0.0000 +vn -0.0012 -1.0000 0.0007 +vn -0.3575 0.8018 0.4788 +vn -0.3495 0.8022 0.4841 +vn 0.5908 0.7423 0.3162 +vn 0.5473 0.7769 0.3113 +vn 0.6259 0.7070 0.3293 +vn 0.6022 0.7043 0.3760 +vn -0.6690 0.7433 0.0000 +vn 0.6690 0.7433 0.0000 +vn 0.6715 0.7392 -0.0512 +vn -0.2922 0.8110 0.5069 +vn 0.8817 0.0000 0.4719 +vn 0.8562 0.0278 0.5158 +vn 0.8541 -0.0067 0.5200 +vn 0.0139 0.9999 0.0000 +vn -0.0139 0.9999 0.0000 +vn 0.0556 0.9985 0.0000 +vn -0.0556 0.9985 0.0000 +vn -0.8884 -0.0012 0.4591 +vn -0.8723 -0.0000 0.4889 +vn -0.8567 0.0718 0.5107 +vn -0.8817 0.0000 0.4719 +vn 0.5972 -0.0144 0.8020 +vn -0.6022 0.7043 0.3760 +vn -0.6259 0.7070 0.3293 +vn -0.5765 0.7549 0.3127 +vn -0.5863 0.7504 0.3052 +vn -0.3536 -0.9350 0.0258 +vn -0.3526 -0.9358 -0.0068 +vn -0.3319 -0.9407 -0.0696 +vn -0.2864 -0.9570 -0.0456 +vn -0.0654 -0.9979 -0.0000 +vn -0.6715 0.7392 -0.0512 +vn -0.6795 0.7317 -0.0536 +vn -0.3152 -0.9462 0.0733 +vn 0.6795 0.7317 -0.0536 +vn 0.0246 -0.9994 0.0262 +vn 0.8886 -0.4576 -0.0320 +vn -0.8869 -0.4602 -0.0401 +vn 0.0000 -0.9998 -0.0205 +vn 0.0654 -0.9979 -0.0000 +vn 0.0012 1.0000 0.0007 +vn 0.0011 -1.0000 -0.0007 +vn 0.3602 -0.9290 -0.0847 +vn -0.3602 -0.9290 -0.0847 +s 1 +f 2/1/1 3/2/1 4/3/1 +f 5/4/1 6/5/1 7/6/1 +f 5/4/1 7/6/1 8/7/1 +f 3/2/1 7/6/1 6/5/1 +f 9/8/2 10/9/2 11/10/2 12/11/2 +f 13/12/3 14/13/3 15/14/3 16/15/3 +f 17/16/4 18/17/4 19/18/4 20/19/4 +f 21/20/1 22/21/1 23/22/1 24/23/1 +f 25/24/2 26/25/2 27/26/2 28/27/2 +f 29/28/5 30/29/5 31/30/5 32/31/5 +f 33/32/6 34/33/6 35/34/6 36/35/6 +f 37/36/7 38/37/7 39/38/7 40/39/7 +f 41/40/8 42/41/8 43/42/8 44/43/8 +f 45/44/1 3/2/1 2/1/1 +f 46/45/9 47/46/9 48/47/9 49/48/9 +f 50/49/4 51/50/4 52/51/4 +f 54/52/4 55/53/4 56/54/4 +f 59/55/1 60/56/1 61/57/1 +f 62/58/4 63/59/4 64/60/4 +f 67/61/1 68/62/1 69/63/1 +f 71/64/1 72/65/1 73/66/1 +f 74/67/2 75/68/2 76/69/2 77/70/2 +f 78/71/4 79/72/4 80/73/4 +f 82/74/4 83/75/4 84/76/4 +f 87/77/1 88/78/1 89/79/1 +f 91/80/1 92/81/1 93/82/1 +f 94/83/10 95/84/10 96/85/10 97/86/10 +f 98/87/11 99/88/11 100/89/11 101/90/11 +f 102/91/2 103/92/2 104/93/2 +f 105/94/3 106/95/3 107/96/3 +f 108/97/2 103/92/2 102/91/2 +f 109/98/12 110/99/12 111/100/12 112/101/12 +f 113/102/3 107/96/3 106/95/3 +f 115/103/4 103/104/4 116/105/4 +f 116/105/4 103/104/4 108/106/4 +f 22/21/13 117/107/13 29/28/13 32/31/13 118/108/13 27/26/13 26/25/13 23/22/13 +f 10/9/14 119/109/14 120/110/14 15/14/14 14/13/14 19/18/14 18/17/14 11/10/14 +f 44/111/3 43/42/3 121/112/3 +f 122/113/3 123/114/3 34/33/3 +f 122/113/3 34/33/3 33/115/3 +f 121/112/3 43/42/3 123/114/3 +f 125/116/2 42/41/2 41/117/2 +f 126/118/2 127/119/2 125/116/2 +f 36/120/2 35/34/2 126/118/2 +f 3/121/6 48/47/6 47/46/6 7/122/6 +f 49/48/1 39/38/1 38/37/1 46/45/1 +f 123/114/3 122/113/3 121/112/3 +f 127/119/2 42/41/2 125/116/2 +f 35/34/2 127/119/2 126/118/2 +f 97/123/1 96/85/1 129/124/1 +f 130/125/4 101/126/4 100/89/4 +f 99/88/1 98/127/1 133/128/1 +f 53/129/3 52/51/3 71/64/3 70/130/3 +f 134/131/4 95/84/4 94/132/4 +f 61/57/2 60/56/2 83/75/2 82/74/2 +f 69/63/2 68/62/2 79/72/2 78/71/2 +f 57/133/3 56/54/3 91/80/3 90/134/3 +f 88/135/15 87/77/15 64/60/15 63/136/15 +f 136/137/10 76/69/10 75/68/10 137/138/10 +f 138/139/3 112/101/3 111/100/3 +f 105/140/4 139/141/4 140/142/4 +f 141/143/2 142/144/2 109/98/2 +f 103/104/4 115/103/4 139/141/4 +f 107/145/4 139/141/4 105/140/4 +f 112/101/3 138/139/3 143/146/3 +f 110/99/2 109/98/2 142/144/2 +f 115/103/3 55/147/3 54/148/3 +f 145/149/4 146/150/4 36/151/4 +f 145/149/4 36/151/4 126/152/4 +f 147/153/1 143/154/1 148/155/1 +f 149/156/4 33/157/4 150/158/4 +f 151/159/1 109/160/1 152/161/1 +f 150/158/4 33/157/4 36/151/4 +f 116/105/3 55/147/3 115/103/3 +f 13/162/5 20/163/5 19/18/5 14/13/5 +f 31/164/4 111/100/4 32/31/4 +f 30/165/3 29/28/3 117/107/3 153/166/3 +f 154/167/4 110/99/4 142/144/4 +f 118/108/4 110/99/4 154/167/4 +f 26/25/16 25/168/16 24/169/16 23/22/16 +f 119/109/16 10/9/16 9/170/16 155/171/16 +f 15/14/17 120/110/17 156/172/17 16/173/17 +f 11/10/18 18/17/18 17/174/18 12/175/18 +f 7/176/3 47/46/3 8/177/3 +f 122/178/4 33/157/4 149/156/4 +f 8/177/3 46/45/3 124/179/3 +f 124/179/3 38/37/3 37/180/3 +f 40/181/2 39/38/2 114/182/2 +f 45/183/2 49/48/2 48/47/2 +f 45/183/2 48/47/2 3/184/2 +f 114/182/2 39/38/2 49/48/2 +f 46/45/3 38/37/3 124/179/3 +f 49/48/2 45/183/2 114/182/2 +f 47/46/3 46/45/3 8/177/3 +f 127/119/19 35/34/19 34/33/19 123/114/19 +f 137/185/1 75/68/1 74/67/1 +f 93/186/3 92/187/3 63/188/3 62/189/3 +f 89/190/3 6/5/3 5/4/3 +f 131/191/3 100/89/3 99/88/3 132/192/3 +f 77/70/4 76/69/4 136/193/4 +f 129/124/2 96/85/2 95/84/2 134/131/2 +f 65/194/3 64/60/3 87/77/3 86/195/3 +f 63/188/3 159/196/3 88/197/3 +f 55/147/3 159/196/3 92/187/3 +f 88/197/3 6/5/3 89/190/3 +f 88/197/3 159/196/3 6/5/3 +f 92/187/3 159/196/3 63/188/3 +f 84/198/20 83/75/20 60/56/20 59/199/20 +f 80/200/20 79/72/20 68/62/20 67/201/20 +f 72/202/11 71/64/11 52/51/11 51/203/11 +f 159/196/3 55/147/3 116/105/3 +f 138/139/4 111/100/4 31/164/4 +f 141/204/1 109/160/1 151/159/1 +f 143/154/1 147/153/1 112/205/1 +f 107/96/21 113/102/21 104/93/21 103/92/21 +f 147/153/1 152/161/1 109/160/1 +f 110/99/4 118/108/4 32/31/4 111/100/4 +f 139/141/2 84/206/2 140/142/2 +f 2/1/2 4/3/2 66/207/2 +f 145/149/2 135/208/2 146/150/2 +f 147/153/2 137/209/2 157/210/2 +f 152/161/3 98/211/3 151/159/3 +f 148/155/2 137/209/2 147/153/2 +f 150/158/3 50/212/3 149/156/3 +f 155/213/1 104/93/1 119/109/1 +f 156/214/1 113/102/1 106/95/1 +f 117/107/17 22/21/17 21/215/17 153/216/17 +f 118/108/18 154/217/18 28/218/18 27/26/18 +f 120/110/1 113/102/1 156/214/1 +f 123/114/4 43/42/4 42/41/4 127/119/4 +f 50/212/3 150/158/3 51/219/3 +f 73/220/3 72/221/3 101/222/3 130/223/3 +f 133/224/3 98/211/3 152/161/3 +f 158/225/2 136/226/2 97/227/2 128/228/2 +f 85/229/2 84/206/2 139/141/2 +f 81/230/2 80/231/2 59/232/2 58/233/2 +f 66/207/2 4/3/2 67/234/2 +f 59/232/2 163/235/2 84/206/2 +f 67/234/2 163/235/2 80/231/2 +f 137/209/2 164/236/2 136/226/2 +f 97/227/2 164/236/2 94/237/2 +f 101/222/3 165/238/3 98/211/3 +f 51/219/3 165/238/3 72/221/3 +f 92/239/15 91/80/15 56/54/15 55/240/15 +f 84/206/2 163/235/2 140/142/2 +f 80/231/2 163/235/2 59/232/2 +f 136/226/2 164/236/2 97/227/2 +f 94/237/2 146/150/2 135/208/2 +f 94/237/2 164/236/2 146/150/2 +f 98/211/3 165/238/3 151/159/3 +f 72/221/3 165/238/3 101/222/3 +f 165/238/3 51/219/3 150/158/3 +f 164/236/2 137/209/2 148/155/2 +f 163/235/2 67/234/2 4/3/2 +f 102/91/1 104/93/1 155/213/1 +f 113/102/1 120/110/1 119/109/1 104/93/1 +f 3562/241/22 1/242/23 5/4/14 +f 1/242/23 86/243/22 5/4/14 +f 161/244/24 139/141/21 115/103/22 166/245/22 +f 161/244/24 82/246/22 139/141/21 +f 161/244/24 160/247/22 82/246/22 +f 144/248/25 134/249/26 145/149/25 +f 144/248/25 162/250/25 134/249/26 +f 3561/251/12 3559/252/25 149/156/27 +f 3149/253/13 152/161/13 147/153/12 3148/254/26 +f 3149/253/13 132/255/27 152/161/13 +f 115/103/22 57/256/23 166/245/22 +f 139/141/21 82/246/22 85/229/28 +f 2/1/22 69/257/24 3556/258/22 +f 145/149/25 126/152/25 125/259/25 144/248/25 +f 145/149/25 134/249/26 135/208/12 +f 147/153/12 74/260/25 3148/254/26 +f 152/161/13 132/255/27 133/224/29 +f 5/4/14 8/7/22 124/261/22 3562/241/22 +f 5/4/14 86/243/22 89/190/22 +f 149/156/27 53/262/25 3561/251/12 +f 146/150/25 21/263/25 24/264/12 150/158/26 +f 146/150/25 164/236/27 153/265/25 +f 148/155/25 143/154/26 31/266/29 +f 151/159/25 154/267/25 141/204/25 +f 151/159/25 165/238/25 28/268/25 +f 116/105/22 108/106/22 155/269/22 +f 140/142/22 156/270/30 105/140/24 +f 140/142/22 163/235/23 16/271/22 +f 6/5/24 17/272/21 20/273/23 4/3/22 +f 6/5/24 159/196/22 12/274/24 +f 155/269/22 108/106/22 102/275/23 +f 9/276/22 116/105/22 155/269/22 +f 9/276/22 159/196/22 116/105/22 +f 16/271/22 163/235/23 13/277/22 +f 156/270/30 140/142/22 16/271/22 +f 13/277/22 4/3/22 20/273/23 +f 13/277/22 163/235/23 4/3/22 +f 12/274/24 159/196/22 9/276/22 +f 17/272/21 6/5/24 12/274/24 +f 153/265/25 164/236/27 30/278/25 +f 21/263/25 146/150/25 153/265/25 +f 31/266/29 143/154/26 138/279/26 +f 30/278/25 148/155/25 31/266/29 +f 30/278/25 164/236/27 148/155/25 +f 28/268/25 165/238/25 25/280/26 +f 154/267/25 151/159/25 28/268/25 +f 25/280/26 150/158/26 24/264/12 +f 25/280/26 165/238/25 150/158/26 +f 121/281/25 122/178/25 149/156/27 3559/252/25 +f 114/282/22 45/44/22 2/1/22 3556/258/22 +f 50/212/25 53/262/25 149/156/27 +f 128/228/27 129/283/26 77/284/26 158/225/27 +f 130/223/25 131/285/25 70/286/13 73/220/25 +f 157/210/31 74/260/25 147/153/12 +f 54/148/30 57/256/23 115/103/22 +f 58/233/23 61/287/24 78/288/24 81/230/23 +f 62/189/22 65/289/23 90/290/22 93/186/22 +f 66/207/21 69/257/24 2/1/22 +f 132/255/27 167/291/27 131/285/25 +f 131/285/25 167/291/27 70/286/13 +f 70/286/13 3561/251/12 53/262/25 +f 70/286/13 167/291/27 3561/251/12 +f 74/260/25 162/250/25 3148/254/26 +f 77/284/26 162/250/25 74/260/25 +f 134/249/26 162/250/25 129/283/26 +f 129/283/26 162/250/25 77/284/26 +f 78/288/24 160/247/22 69/257/24 +f 61/287/24 160/247/22 78/288/24 +f 82/246/22 160/247/22 61/287/24 +f 69/257/24 160/247/22 3556/258/22 +f 86/243/22 168/292/23 65/289/23 +f 57/256/23 168/292/23 166/245/22 +f 65/289/23 168/292/23 90/290/22 +f 90/290/22 168/292/23 57/256/23 +f 167/291/27 132/255/27 3149/253/13 +f 168/292/23 86/243/22 1/242/23 +f 142/293/27 141/204/25 154/267/25 +f 106/294/24 105/140/24 156/270/30 +f 174/295/2 175/296/2 170/297/2 +f 176/298/1 177/299/1 178/300/1 179/301/1 +f 180/302/5 181/303/5 182/304/5 183/305/5 +f 184/306/18 185/307/18 186/308/18 187/309/18 +f 188/310/1 189/311/1 190/312/1 191/313/1 +f 192/314/4 193/315/4 194/316/4 195/317/4 +f 3527/318/32 196/319/32 3531/320/32 +f 3529/321/33 197/322/34 198/323/33 199/324/33 +f 3530/325/35 3531/320/36 197/322/37 +f 3530/325/35 197/322/37 3529/321/33 +f 200/326/33 201/327/33 202/328/33 203/329/33 +f 208/330/2 209/331/2 210/332/2 211/333/2 +f 212/334/5 213/335/5 214/336/5 215/337/5 +f 216/338/4 217/339/4 218/340/4 219/341/4 +f 220/342/16 221/343/16 222/344/16 223/345/16 +f 224/346/17 225/347/17 226/348/17 227/349/17 +f 228/350/17 229/351/17 230/352/17 231/353/17 +f 3462/354/38 3464/355/39 3461/356/40 3460/357/41 +f 232/358/4 233/359/4 234/360/4 +f 235/361/4 236/362/4 237/363/4 +f 238/364/1 239/365/1 240/366/1 +f 241/367/1 242/368/1 243/369/1 +f 236/362/4 235/361/4 244/370/4 +f 245/371/1 240/366/1 239/365/1 +f 233/359/4 232/358/4 246/372/4 +f 247/373/1 243/369/1 242/368/1 +f 248/374/4 249/375/4 250/376/4 251/377/4 +f 252/378/42 253/379/42 254/380/42 255/381/42 +f 256/382/43 257/383/43 258/384/43 259/385/43 +f 260/386/44 261/387/44 262/388/44 263/389/44 +f 264/390/45 265/391/45 266/392/45 267/393/45 +f 268/394/46 269/395/46 270/396/46 271/397/46 +f 272/398/45 273/399/45 274/400/45 275/401/45 +f 276/402/1 277/403/1 278/404/1 +f 290/405/47 291/406/47 292/407/47 293/408/47 +f 294/409/1 295/410/1 296/411/1 297/412/1 +f 298/413/48 299/414/48 300/415/48 301/416/48 +f 302/417/1 303/418/1 304/419/1 305/420/1 +f 306/421/49 307/422/49 308/423/49 309/424/49 +f 310/425/50 311/426/50 312/427/50 313/428/50 +f 314/429/4 315/430/4 316/431/4 317/432/4 +f 318/433/51 319/434/51 320/435/51 321/436/51 +f 322/437/52 323/438/52 324/439/52 325/440/52 +f 327/441/4 328/442/4 329/443/4 330/444/4 +f 333/445/33 334/446/33 335/447/33 336/448/33 +f 337/449/1 338/450/1 339/451/1 +f 340/452/1 341/453/1 337/449/1 +f 342/454/2 343/455/2 344/456/2 345/457/2 +f 346/458/53 347/459/53 348/460/53 349/461/53 +f 338/450/1 337/449/1 341/453/1 +f 44/462/4 3559/463/4 3557/464/4 +f 3551/465/4 351/466/4 352/467/4 +f 353/468/1 354/469/1 355/470/1 356/471/1 +f 357/472/4 358/473/4 359/474/4 +f 3569/475/1 2715/476/1 1407/477/1 +f 361/478/54 362/479/54 363/480/54 364/481/54 +f 354/482/55 362/483/55 365/484/55 366/485/55 +f 369/486/4 352/467/4 351/466/4 +f 370/487/56 371/488/56 372/489/56 373/490/56 +f 374/491/2 375/492/2 376/493/2 377/494/2 +f 378/495/1 379/496/1 380/497/1 381/498/1 +f 382/499/2 383/500/2 384/501/2 385/502/2 +f 386/503/1 387/504/1 388/505/1 389/506/1 +f 390/507/2 391/508/2 392/509/2 393/510/2 +f 394/511/1 395/512/1 396/513/1 397/514/1 +f 398/515/2 399/516/2 400/517/2 401/518/2 +f 402/519/1 403/520/1 404/521/1 405/522/1 +f 406/523/2 407/524/2 408/525/2 409/526/2 +f 410/527/1 411/528/1 412/529/1 413/530/1 +f 414/531/16 415/532/16 416/533/16 417/534/16 +f 418/535/16 419/536/16 420/537/16 421/538/16 +f 422/539/42 423/540/42 424/541/42 425/542/42 +f 426/543/57 427/544/57 428/545/57 429/546/57 +f 430/547/57 431/548/57 432/549/57 433/550/57 +f 434/551/1 435/552/1 436/553/1 437/554/1 +f 438/555/57 439/556/57 440/557/57 441/558/57 +f 442/559/57 443/560/57 444/561/57 445/562/57 +f 446/563/57 447/564/57 448/565/57 449/566/57 +f 450/567/1 451/568/1 452/569/1 453/570/1 +f 454/571/1 455/572/1 456/573/1 457/574/1 +f 458/575/1 459/576/1 460/577/1 461/578/1 +f 462/579/1 463/580/1 464/581/1 465/582/1 +f 466/583/58 467/584/58 468/585/58 469/586/58 +f 470/587/59 471/588/60 472/589/60 473/590/59 +f 473/590/59 474/591/61 475/592/61 470/587/59 +f 476/593/1 477/594/1 478/595/1 +f 479/596/1 476/593/1 480/597/1 +f 477/594/1 476/593/1 479/596/1 +f 481/598/1 482/599/1 483/600/62 484/601/62 +f 484/601/62 483/600/62 485/602/63 486/603/64 +f 486/603/64 487/604/65 488/605/66 +f 488/605/66 489/606/67 490/607/68 491/608/68 +f 491/608/68 492/609/69 493/610/70 +f 493/610/70 492/609/69 494/611/71 +f 493/610/70 494/611/71 495/612/72 496/613/72 +f 496/613/72 495/612/72 497/614/73 498/615/73 +f 498/615/73 497/614/73 499/616/2 500/617/2 +f 500/617/2 499/616/2 501/618/74 502/619/74 +f 502/619/74 501/618/74 3441/620/75 503/621/75 +f 503/621/75 3441/620/75 504/622/76 505/623/77 +f 505/623/77 504/622/76 3442/624/78 506/625/18 +f 506/625/18 3442/624/78 507/626/79 508/627/79 +f 508/627/79 507/626/79 509/628/80 510/629/80 +f 510/629/80 509/628/80 511/630/81 512/631/81 +f 512/631/81 511/630/81 513/632/4 514/633/4 +f 514/633/4 513/632/4 3443/634/82 515/635/82 +f 515/635/82 3443/634/82 516/636/83 517/637/83 +f 517/637/83 516/636/83 518/638/84 519/639/84 +f 519/639/84 518/638/84 520/640/5 521/641/5 +f 521/641/5 520/640/5 522/642/85 523/643/86 +f 523/643/86 522/642/85 524/644/87 525/645/88 +f 525/646/88 524/647/87 526/648/89 +f 526/648/89 527/649/89 528/650/3 529/651/3 +f 529/651/3 528/650/3 530/652/90 531/653/90 +f 531/653/90 530/652/90 532/654/91 533/655/91 +f 533/655/91 532/654/91 534/656/92 535/657/92 +f 535/657/92 534/656/92 536/658/17 537/659/17 +f 537/659/17 536/658/17 538/660/93 539/661/93 +f 539/661/93 538/660/93 540/662/94 541/663/94 +f 541/663/94 540/662/94 542/664/95 543/665/95 +f 543/665/95 542/664/95 482/599/1 481/598/1 +f 2454/666/96 616/667/97 548/668/97 549/669/97 +f 641/670/98 2465/671/97 571/672/97 572/673/97 +f 631/674/99 2432/675/99 2433/676/100 2513/677/101 +f 3022/678/102 2422/679/102 2423/680/103 3020/681/104 +f 2432/675/99 631/674/99 2516/682/105 3315/683/106 +f 3324/684/107 3191/685/107 3190/686/108 2421/687/109 +f 554/688/97 556/689/97 619/690/97 618/691/110 +f 577/692/97 578/693/97 2469/694/97 2468/695/111 +f 544/696/97 580/697/97 682/698/97 +f 544/696/97 2440/699/97 575/700/97 +f 588/701/97 607/702/97 544/696/97 +f 701/703/97 545/704/97 699/705/97 +f 565/706/97 2439/707/97 673/708/97 +f 3017/709/112 3019/710/113 629/711/113 2490/712/112 +f 609/713/65 560/714/63 692/715/114 +f 575/716/115 2442/717/116 684/718/117 +f 547/719/80 546/720/81 696/721/118 +f 3322/722/119 3018/723/119 3020/681/104 2423/680/103 +f 556/689/73 554/688/2 604/724/2 708/725/120 +f 633/726/121 2424/727/121 2425/728/122 3013/729/123 +f 2460/730/124 624/731/97 566/732/97 567/733/97 +f 579/734/5 578/693/125 684/718/117 591/735/5 +f 578/693/125 577/692/115 684/718/117 +f 630/736/126 2417/737/126 2416/738/127 3195/739/128 +f 588/740/16 690/741/16 672/742/69 607/743/69 +f 601/744/1 589/745/1 673/746/129 2438/747/129 +f 2434/748/130 2514/749/130 2513/677/101 2433/676/100 +f 554/688/2 553/750/74 694/751/131 604/724/2 +f 552/752/97 553/750/97 617/753/97 638/754/132 +f 660/755/97 2503/756/97 2456/757/97 2487/758/97 +f 662/759/97 2505/760/97 2459/761/97 2463/762/97 +f 574/763/97 576/764/97 627/765/97 626/766/133 +f 544/696/97 575/700/97 595/767/97 +f 544/696/97 613/768/97 570/769/97 +f 594/770/97 588/701/97 544/696/97 +f 545/704/97 698/771/97 668/772/97 +f 2436/773/97 560/774/97 711/775/97 +f 2448/776/97 580/697/97 2446/777/97 +f 555/778/72 557/779/72 708/725/120 +f 615/780/134 575/716/115 687/781/135 +f 547/719/80 545/782/80 695/783/136 +f 615/780/129 687/781/129 686/784/129 +f 616/667/137 2475/785/137 637/786/138 636/787/138 +f 621/788/139 2483/789/139 2482/790/140 620/791/140 +f 624/731/141 2488/792/141 2487/758/142 640/793/142 +f 628/794/143 2496/795/143 643/796/144 642/797/144 +f 2453/798/97 2501/799/97 645/800/97 644/801/97 +f 2459/761/97 2505/760/97 653/802/97 652/803/97 +f 2470/804/97 2510/805/97 664/806/97 2471/807/97 +f 2478/808/145 2522/809/145 2517/810/146 647/811/146 +f 2484/812/147 3010/813/147 2525/814/148 649/815/148 +f 2489/816/149 3023/817/149 3017/709/112 2490/712/112 +f 2495/818/150 3197/819/150 667/820/151 666/821/151 +f 2500/822/152 631/674/152 2513/677/152 2512/823/152 +f 2500/822/152 659/824/152 2516/682/152 631/674/152 +f 2504/825/152 633/726/152 3013/729/152 3012/826/152 +f 2509/827/152 635/828/152 634/829/152 665/830/152 +f 637/786/138 2449/831/153 2452/832/153 636/787/138 +f 2487/758/142 2456/757/154 2458/833/154 640/793/142 +f 2491/834/155 2462/835/156 2465/671/156 641/670/155 +f 643/796/144 2470/804/157 2473/836/157 642/797/144 +f 2481/837/97 2478/808/97 2479/838/97 2482/839/97 +f 649/815/97 2480/840/97 2483/789/97 648/841/97 +f 653/802/97 2486/842/97 2488/792/97 652/803/97 +f 2498/843/97 2495/818/97 2496/795/97 2450/844/97 +f 661/845/158 2502/846/159 2503/756/159 660/755/158 +f 665/830/160 2506/847/161 2508/848/161 664/806/160 +f 667/820/151 2509/827/162 2510/805/162 666/821/151 +f 670/849/163 710/850/163 709/851/163 +f 673/746/164 2439/852/164 2438/747/164 +f 676/853/17 679/854/17 674/855/165 675/856/165 +f 685/857/166 688/858/166 680/859/167 681/860/167 +f 683/861/168 2448/862/168 2447/863/168 +f 527/649/89 526/648/89 524/647/87 +f 527/649/89 524/647/87 712/864/134 +f 485/602/63 487/604/65 486/603/64 +f 713/865/169 714/866/95 715/867/129 +f 716/868/94 717/869/170 714/866/95 +f 718/870/171 719/871/17 720/872/17 721/873/93 +f 718/870/171 717/869/170 716/868/94 +f 721/873/93 722/874/172 718/870/171 +f 719/871/17 723/875/92 724/876/92 720/872/17 +f 723/875/92 725/877/91 726/878/91 724/876/92 +f 725/877/91 727/879/90 728/880/90 726/878/91 +f 727/879/90 729/881/3 730/882/3 728/880/90 +f 729/881/3 731/883/173 732/884/173 730/882/3 +f 731/883/173 733/885/115 734/886/115 732/884/173 +f 733/885/115 735/887/116 736/888/116 734/886/115 +f 717/869/170 718/870/171 722/874/172 +f 487/604/65 489/606/67 488/605/66 +f 490/607/68 492/609/69 491/608/68 +f 737/889/69 492/609/69 490/607/68 +f 738/890/4 739/891/4 740/892/4 +f 741/893/1 742/894/1 743/895/95 744/896/95 +f 745/897/62 746/898/62 742/894/1 741/893/1 +f 747/899/63 748/900/63 746/898/62 745/897/62 +f 749/901/67 750/902/67 748/900/63 747/899/63 +f 751/903/16 752/904/16 750/902/67 749/901/67 +f 753/905/71 754/906/71 752/904/16 751/903/16 +f 755/907/72 756/908/72 754/906/71 753/905/71 +f 757/909/73 758/910/73 756/908/72 755/907/72 +f 759/911/90 760/912/90 761/913/3 762/914/3 +f 763/915/91 764/916/91 760/912/90 759/911/90 +f 765/917/92 766/918/92 764/916/91 763/915/91 +f 767/919/17 768/920/17 766/918/92 765/917/92 +f 769/921/93 770/922/93 768/920/17 767/919/17 +f 771/923/94 772/924/94 770/922/93 769/921/93 +f 744/896/95 743/895/95 772/924/94 771/923/94 +f 773/925/150 774/926/150 775/927/174 851/928/174 +f 773/925/150 776/929/151 2586/930/151 774/926/150 +f 777/931/97 778/932/97 779/933/97 780/934/97 +f 777/931/97 781/935/97 1919/936/97 778/932/97 +f 782/937/97 783/938/97 784/939/97 785/940/97 +f 782/937/97 775/927/97 789/941/97 783/938/97 +f 786/942/143 787/943/143 788/944/175 789/941/175 +f 786/942/143 793/945/144 790/946/144 787/943/143 +f 791/947/157 792/948/157 790/946/144 793/945/144 +f 791/947/157 797/949/176 794/950/176 792/948/157 +f 795/951/177 796/952/177 794/950/176 797/949/176 +f 795/951/177 779/933/178 798/953/178 796/952/177 +f 799/954/179 800/955/179 801/956/180 802/957/180 +f 799/954/179 803/958/181 804/959/181 800/955/179 +f 805/960/182 806/961/182 804/959/181 803/958/181 +f 805/960/182 807/962/183 808/963/183 806/961/182 +f 809/964/137 810/965/137 808/963/183 807/962/183 +f 809/964/137 784/939/138 811/966/138 810/965/137 +f 812/967/165 813/968/165 814/969/165 +f 815/970/184 816/971/184 817/972/184 +f 818/973/185 819/974/185 820/975/185 +f 821/976/186 822/977/186 823/978/186 +f 824/979/69 825/980/69 826/981/69 +f 827/982/152 828/983/152 865/984/152 829/985/152 +f 830/986/152 831/987/152 832/988/152 833/989/152 +f 834/990/152 835/991/152 836/992/152 837/993/152 +f 838/994/152 839/995/152 840/996/152 841/997/152 +f 842/998/152 843/999/152 844/1000/152 845/1001/152 +f 846/1002/152 847/1003/152 867/1004/152 848/1005/152 +f 849/1006/152 850/1007/152 851/928/152 852/1008/152 +f 853/1009/186 822/977/186 821/976/186 +f 854/1010/165 813/968/165 812/967/165 +f 855/1011/184 816/971/184 815/970/184 +f 856/1012/185 819/974/185 818/973/185 +f 857/1013/69 825/980/69 824/979/69 +f 858/1014/4 859/1015/163 860/1016/163 861/1017/4 +f 861/1017/4 862/1018/187 863/1019/187 858/1014/4 +f 776/929/152 864/1020/152 827/982/152 829/985/152 +f 865/984/152 828/983/152 830/986/152 833/989/152 +f 832/988/152 831/987/152 834/990/152 837/993/152 +f 2856/1021/152 866/1022/152 838/994/152 841/997/152 +f 840/996/152 839/995/152 842/998/152 845/1001/152 +f 844/1000/152 843/999/152 846/1002/152 848/1005/152 +f 867/1004/152 847/1003/152 849/1006/152 852/1008/152 +f 868/1023/188 869/1024/188 870/1025/188 871/1026/188 +f 872/1027/189 873/1028/189 874/1029/189 875/1030/189 +f 876/1031/190 877/1032/190 878/1033/190 879/1034/190 +f 880/1035/191 881/1036/191 882/1037/191 883/1038/191 +f 884/1039/17 885/1040/17 886/1041/17 887/1042/17 +f 888/1043/192 889/1044/192 890/1045/192 891/1046/192 +f 892/1047/17 893/1048/17 894/1049/17 895/1050/17 +f 896/1051/192 897/1052/192 898/1053/192 899/1054/192 +f 900/1055/97 901/1056/97 902/1057/97 903/1058/97 +f 904/1059/193 905/1060/193 906/1061/193 907/1062/193 +f 908/1063/193 909/1064/193 910/1065/193 911/1066/193 +f 912/1067/194 913/1068/194 914/1069/194 915/1070/194 +f 916/1071/195 917/1072/195 918/1073/195 919/1074/195 +f 920/1075/196 921/1076/196 922/1077/196 923/1078/196 +f 924/1079/1 925/1080/1 926/1081/1 927/1082/1 +f 928/1083/97 929/1084/97 930/1085/97 931/1086/97 +f 932/1087/4 933/1088/4 934/1089/4 935/1090/4 +f 936/1091/152 937/1092/152 938/1093/152 939/1094/152 +f 940/1095/1 941/1096/1 942/1097/1 943/1098/1 +f 944/1099/97 945/1100/97 946/1101/97 947/1102/97 +f 948/1103/197 949/1104/197 950/1105/197 951/1106/197 +f 952/1107/1 953/1108/1 954/1109/1 955/1110/1 +f 956/1111/197 957/1112/197 958/1113/197 959/1114/197 +f 960/1115/32 961/1116/32 962/1117/32 963/1118/32 +f 964/1119/3 965/1120/3 966/1121/3 967/1122/3 +f 968/1123/198 969/1124/198 970/1125/198 971/1126/198 +f 972/1127/3 973/1128/3 974/1129/3 975/1130/3 +f 976/1131/198 977/1132/198 978/1133/198 979/1134/198 +f 980/1135/1 981/1136/1 982/1137/1 983/1138/1 +f 984/1139/3 985/1140/3 986/1141/3 987/1142/3 +f 988/1143/199 989/1144/199 990/1145/199 991/1146/199 +f 992/1147/200 993/1148/200 994/1149/200 995/1150/200 +f 996/1151/1 997/1152/1 998/1153/1 999/1154/1 +f 1000/1155/200 1001/1156/200 1002/1157/200 1003/1158/200 +f 1004/1159/1 1005/1160/1 1006/1161/1 1007/1162/1 +f 1008/1163/1 1009/1164/1 1010/1165/1 1011/1166/1 +f 1012/1167/1 1013/1168/1 1014/1169/1 1015/1170/1 +f 1016/1171/1 1017/1172/1 1018/1173/1 1019/1174/1 +f 1020/1175/1 1021/1176/1 1022/1177/1 1023/1178/1 +f 360/1179/4 1024/1180/4 3564/1181/4 +f 1025/1182/201 1026/1183/201 1027/1184/201 1028/1185/201 +f 1029/1186/202 1030/1187/202 1031/1188/202 1032/1189/202 +f 1029/1186/203 1033/1190/203 1034/1191/203 1035/1192/203 +f 1036/1193/202 1037/1194/202 1038/1195/202 1033/1190/202 +f 1039/1196/3 1040/1197/3 1041/1198/3 1042/1199/3 +f 1043/1200/198 1044/1201/198 1045/1202/198 1046/1203/198 +f 1047/1204/204 1048/1205/204 1049/1206/204 1050/1207/204 +f 1047/1204/199 1051/1208/199 1052/1209/199 1053/1210/199 +f 1054/1211/205 1055/1212/205 1056/1213/205 1057/1214/205 +f 1054/1211/199 1058/1215/199 1059/1216/199 1060/1217/199 +f 1061/1218/205 1062/1219/205 1063/1220/205 1064/1221/205 +f 1061/1218/206 1065/1222/206 1066/1223/206 1067/1224/206 +f 1065/1222/202 1068/1225/202 1069/1226/202 1070/1227/202 +f 1013/1168/207 1071/1228/207 1072/1229/207 1073/1230/207 +f 1021/1176/207 1010/1165/207 1074/1231/207 1075/1232/207 +f 1076/1233/202 1077/1234/202 1078/1235/202 1079/1236/202 +f 1076/1233/203 1080/1237/203 1081/1238/203 1082/1239/203 +f 1083/1240/202 1051/1208/202 1084/1241/202 1085/1242/202 +f 1070/1227/203 1086/1243/203 1087/1244/203 1088/1245/203 +f 1089/1246/202 1090/1247/202 1080/1237/202 +f 1089/1246/202 1091/1248/202 1090/1247/202 +f 1092/1249/208 1093/1250/208 1009/1164/208 1040/1197/208 +f 1094/1251/202 1095/1252/202 1096/1253/202 1086/1243/202 +f 1097/1254/209 1098/1255/209 1099/1256/209 1100/1257/209 +f 1101/1258/210 1102/1259/210 3552/1260/210 1103/1261/210 +f 1104/1262/211 1105/1263/211 1106/1264/211 1107/1265/211 +f 1108/1266/6 1109/1267/6 1110/1268/6 1111/1269/6 +f 1112/1270/42 1113/1271/42 1114/1272/42 1115/1273/42 +f 1116/1274/33 1117/1275/33 1118/1276/33 1119/1277/33 +f 1120/1278/152 1121/1279/152 1122/1280/152 1123/1281/152 +f 1124/1282/212 1125/1283/212 1126/1284/212 1127/1285/212 +f 1129/1286/4 1130/1287/4 1131/1288/4 +f 1132/1289/1 1133/1290/1 1134/1291/1 +f 1137/1292/4 1138/1293/4 1139/1294/4 +f 1140/1295/1 1141/1296/1 1142/1297/1 +f 1144/1298/213 1145/1299/213 1146/1300/213 1147/1301/213 +f 3570/1302/5 1150/1303/5 1151/1304/5 1152/1305/5 +f 1153/1306/3 1154/1307/3 1155/1308/3 1156/1309/3 +f 1157/1310/5 1158/1311/5 1159/1312/5 1160/1313/5 +f 1161/1314/3 1162/1315/3 1163/1316/3 1164/1317/3 +f 1165/1318/3 1166/1319/3 1167/1320/3 1168/1321/3 +f 1169/1322/4 1170/1323/4 1171/1324/4 1172/1325/4 +f 1173/1326/4 1174/1327/4 1175/1328/4 1176/1329/4 +f 1177/1330/5 1178/1331/5 1179/1332/5 1180/1333/5 +f 1181/1334/5 1182/1335/5 1183/1336/5 1184/1337/5 +f 1185/1338/3 1186/1339/3 1187/1340/3 1188/1341/3 +f 1189/1342/3 1190/1343/3 1191/1344/3 1192/1345/3 +f 1193/1346/3 1194/1347/3 1195/1348/3 1196/1349/3 +f 1197/1350/3 1198/1351/3 1199/1352/3 1200/1353/3 +f 1201/1354/214 1202/1355/214 1203/1356/214 1204/1357/214 +f 1205/1358/25 1206/1359/25 1207/1360/25 1208/1361/25 +f 1209/1362/42 1210/1363/42 1211/1364/42 1212/1365/42 +f 1213/1366/215 1214/1367/215 1215/1368/215 1216/1369/215 +f 1217/1370/216 1218/1371/216 1219/1372/216 1220/1373/216 +f 1224/1374/3 1225/1375/3 1226/1376/3 1227/1377/3 +f 1228/1378/4 1229/1379/4 1230/1380/4 1231/1381/4 +f 1232/1382/16 1233/1383/16 1234/1384/16 1235/1385/16 +f 1240/1386/217 1241/1387/217 1242/1388/217 1243/1389/217 +f 3525/1390/33 1244/1391/218 3522/1392/219 +f 3523/1393/220 1245/1394/220 3524/1395/220 +f 1244/1391/218 3523/1393/221 3522/1392/219 +f 1246/1396/33 1247/1397/33 1244/1391/222 3525/1390/33 +f 1248/1398/33 1249/1399/33 1250/1400/33 1251/1401/33 +f 1256/1402/2 1257/1403/2 1258/1404/2 1259/1405/2 +f 1260/1406/2 1261/1407/2 1262/1408/2 1263/1409/2 +f 1264/1410/1 1265/1411/1 1266/1412/1 1267/1413/1 +f 1268/1414/3 1269/1415/3 1270/1416/3 1271/1417/3 +f 1272/1418/4 1273/1419/4 1274/1420/4 1275/1421/4 +f 1276/1422/17 1277/1423/17 1278/1424/17 1279/1425/17 +f 1280/1426/5 1281/1427/5 1282/1428/5 1283/1429/5 +f 3494/1430/40 3492/1431/39 3497/1432/223 3495/1433/224 +f 1254/1434/33 1255/1435/33 3494/1436/33 3495/1437/33 +f 1284/1438/4 1285/1439/4 1286/1440/4 +f 1287/1441/4 1288/1442/4 1289/1443/4 +f 1290/1444/1 1291/1445/1 1292/1446/1 +f 1293/1447/1 1294/1448/1 1295/1449/1 +f 1288/1442/4 1287/1441/4 1296/1450/4 +f 1297/1451/1 1292/1446/1 1291/1445/1 +f 1285/1439/4 1284/1438/4 1298/1452/4 +f 1299/1453/1 1295/1449/1 1294/1448/1 +f 1300/1454/6 1301/1455/6 1302/1456/6 1303/1457/6 +f 1304/1458/1 1305/1459/1 1306/1460/1 1307/1461/1 +f 1308/1462/45 1309/1463/45 1310/1464/45 1311/1465/45 +f 1312/1466/43 1313/1467/43 1314/1468/43 1315/1469/43 +f 1316/1470/44 1317/1471/44 1318/1472/44 1319/1473/44 +f 1320/1474/46 1321/1475/46 1322/1476/46 1323/1477/46 +f 1324/1478/43 1325/1479/43 1326/1480/43 1327/1481/43 +f 1338/1482/225 1398/1483/225 2129/1484/225 +f 1334/1485/226 1332/1486/227 1329/1487/228 1335/1488/229 +f 2129/1484/225 1398/1483/225 2934/1489/225 +f 1339/1490/2 1340/1491/2 1341/1492/2 1342/1493/2 +f 1343/1494/230 1344/1495/230 1345/1496/230 1346/1497/230 +f 3453/1498/231 3456/1499/232 3450/1500/233 +f 1349/1501/49 1350/1502/49 1351/1503/49 1352/1504/49 +f 1353/1505/1 1354/1506/1 1355/1507/1 1356/1508/1 +f 1357/1509/51 1358/1510/51 1359/1511/51 1360/1512/51 +f 1361/1513/4 1362/1514/4 1363/1515/4 1364/1516/4 +f 1365/1517/50 1366/1518/50 1367/1519/50 1368/1520/50 +f 1369/1521/51 1370/1522/51 1371/1523/51 1372/1524/51 +f 1373/1525/234 1374/1526/234 1375/1527/234 1376/1528/234 +f 2705/1529/4 3557/464/4 2239/1530/4 2704/1531/4 +f 1377/1532/1 1378/1533/1 1379/1534/1 1380/1535/1 +f 1383/1536/33 1384/1537/33 1385/1538/33 1386/1539/33 +f 1387/1540/4 1388/1541/4 1389/1542/4 +f 1390/1543/4 1391/1544/4 1387/1540/4 +f 1388/1541/4 1387/1540/4 1391/1544/4 +f 1392/1545/3 1393/1546/3 1394/1547/3 1395/1548/3 +f 1396/1549/4 1397/1550/4 1398/1483/4 +f 1399/1551/3 1400/1552/3 1401/1553/3 1402/1554/3 +f 1403/1555/3 1404/1556/3 1405/1557/3 1406/1558/3 +f 1407/477/3 1405/1557/3 1408/1559/3 1409/1560/3 +f 1400/1561/235 1410/1562/235 1411/1563/235 1412/1564/235 +f 1413/1565/236 1414/1566/236 1415/1567/236 1401/1568/236 +f 1416/1569/1 1417/1570/1 3545/1571/1 +f 1417/1570/1 1416/1569/1 1420/1572/1 +f 1421/1573/4 1422/1574/4 1423/1575/4 1424/1576/4 +f 1425/1577/2 1426/1578/2 1427/1579/2 1428/1580/2 +f 1429/1581/4 1430/1582/4 1431/1583/4 1432/1584/4 +f 1433/1585/2 1434/1586/2 1435/1587/2 1436/1588/2 +f 1437/1589/4 1438/1590/4 1439/1591/4 1440/1592/4 +f 1441/1593/2 1442/1594/2 1443/1595/2 1444/1596/2 +f 1445/1597/97 1446/1598/97 1447/1599/97 +f 1447/1599/97 1448/1600/97 1449/1601/97 +f 1450/1602/152 1451/1603/152 1452/1604/152 +f 1452/1604/152 1451/1603/152 1453/1605/152 +f 1454/1606/4 1455/1607/4 1456/1608/4 1457/1609/4 +f 1458/1610/2 1459/1611/2 1460/1612/2 1461/1613/2 +f 1462/1614/4 1463/1615/4 1464/1616/4 1465/1617/4 +f 1466/1618/2 1467/1619/2 1468/1620/2 1469/1621/2 +f 1470/1622/18 1471/1623/18 1472/1624/18 1473/1625/18 +f 1453/1605/152 1474/1626/152 1452/1604/152 +f 1446/1598/97 1448/1600/97 1447/1599/97 +f 1475/1627/42 1476/1628/42 1477/1629/42 1478/1630/42 +f 1479/1631/57 1480/1632/57 1481/1633/57 1482/1634/57 +f 1483/1635/57 1484/1636/57 1485/1637/57 1486/1638/57 +f 1487/1639/97 1488/1640/97 1489/1641/97 +f 1490/1642/152 1491/1643/152 1492/1644/152 +f 1493/1645/57 1494/1646/57 1495/1647/57 1496/1648/57 +f 1497/1649/4 1498/1650/4 1499/1651/4 1500/1652/4 +f 1501/1653/57 1502/1654/57 1503/1655/57 1504/1656/57 +f 1505/1657/152 1492/1644/152 1506/1658/152 +f 1507/1659/97 1508/1660/97 1487/1639/97 +f 1509/1661/4 1510/1662/4 1511/1663/4 1512/1664/4 +f 1513/1665/237 1514/1666/237 1515/1667/237 1516/1668/237 +f 1488/1640/97 1487/1639/97 1508/1660/97 +f 1506/1658/152 1492/1644/152 1491/1643/152 +f 1517/1669/4 1518/1670/4 1519/1671/4 1520/1672/4 +f 1521/1673/4 1522/1674/4 1523/1675/4 1524/1676/4 +f 1525/1677/238 1526/1678/239 1527/1679/239 1528/1680/238 +f 1528/1680/238 1529/1681/240 1530/1682/240 1525/1677/238 +f 1531/1683/4 1532/1684/4 1533/1685/4 +f 1534/1686/4 1533/1685/4 1535/1687/4 +f 1535/1687/4 1533/1685/4 1532/1684/4 +f 1536/1688/97 1537/1689/97 1538/1690/97 1539/1691/97 +f 1539/1691/97 1538/1690/97 1540/1692/97 1541/1693/97 +f 1541/1693/97 1540/1692/97 1542/1694/97 1543/1695/97 +f 1543/1695/97 1542/1694/97 1544/1696/97 1545/1697/97 +f 1546/1698/97 1547/1699/97 1548/1700/97 1549/1701/97 +f 1549/1701/97 1548/1700/97 1550/1702/97 1551/1703/97 +f 1551/1703/97 1550/1702/97 1552/1704/97 1553/1705/97 +f 1553/1705/97 1552/1704/97 1554/1706/97 1555/1707/97 +f 1555/1707/97 1554/1706/97 1556/1708/97 1557/1709/97 +f 1557/1709/97 1556/1708/97 1558/1710/97 1559/1711/97 +f 1559/1711/97 1558/1710/97 1560/1712/97 1561/1713/97 +f 1561/1713/97 1560/1712/97 1562/1714/97 1563/1715/97 +f 1563/1715/97 1562/1714/97 1564/1716/97 1565/1717/97 +f 1565/1717/97 1564/1716/97 1566/1718/97 1567/1719/97 +f 1567/1719/97 1566/1718/97 1568/1720/97 1569/1721/97 +f 1569/1721/97 1568/1720/97 1570/1722/97 1571/1723/97 +f 1571/1723/97 1570/1722/97 1572/1724/97 1573/1725/97 +f 1573/1725/97 1572/1724/97 1574/1726/97 1575/1727/97 +f 1575/1727/97 1574/1726/97 1576/1728/97 1577/1729/97 +f 1577/1729/97 1576/1728/97 1578/1730/97 1579/1731/97 +f 1579/1731/97 1578/1730/97 1580/1732/97 1581/1733/97 +f 1581/1734/97 1580/1735/97 1582/1736/97 1583/1737/97 +f 1583/1737/97 1582/1736/97 1584/1738/97 1585/1739/97 +f 1585/1739/97 1584/1738/97 1586/1740/97 1587/1741/97 +f 1587/1741/97 1586/1740/97 1588/1742/97 1589/1743/97 +f 1589/1743/97 1588/1742/97 1590/1744/97 1591/1745/97 +f 1591/1745/97 1590/1744/97 1592/1746/97 1593/1747/97 +f 1593/1747/97 1592/1746/97 1594/1748/97 1595/1749/97 +f 1595/1749/97 1594/1748/97 1596/1750/97 1597/1751/97 +f 1597/1751/97 1596/1750/97 1598/1752/97 1599/1753/97 +f 1599/1753/97 1598/1752/97 1537/1689/97 1536/1688/97 +f 1600/1754/152 1601/1755/152 1602/1756/152 1603/1757/152 +f 1600/1754/152 1765/1758/152 1604/1759/152 1601/1755/152 +f 1605/1760/152 1606/1761/152 1607/1762/152 1608/1763/152 +f 1605/1760/152 1612/1764/152 1609/1765/152 1606/1761/152 +f 1610/1766/152 1611/1767/152 1609/1765/152 1612/1764/152 +f 1610/1766/152 1616/1768/152 1613/1769/152 1611/1767/152 +f 1614/1770/152 1615/1771/152 1613/1769/152 1616/1768/152 +f 1614/1770/152 1769/1772/152 1617/1773/152 1615/1771/152 +f 1618/1774/152 1619/1775/152 1620/1776/152 1621/1777/152 +f 1618/1774/152 1771/1778/152 1622/1779/152 1619/1775/152 +f 1623/1780/152 1624/1781/152 1625/1782/152 1626/1783/152 +f 1623/1780/152 1630/1784/152 1627/1785/152 1624/1781/152 +f 1628/1786/152 1629/1787/152 1627/1785/152 1630/1784/152 +f 1628/1786/152 1631/1788/152 1632/1789/152 1629/1787/152 +f 1633/1790/152 1634/1791/152 1632/1792/152 1631/1793/152 +f 1633/1790/152 1638/1794/152 1635/1795/152 1634/1791/152 +f 1636/1796/152 1637/1797/152 1635/1795/152 1638/1794/152 +f 1636/1796/152 1773/1798/152 1639/1799/152 1637/1797/152 +f 1640/1800/152 1641/1801/152 1642/1802/152 1643/1803/152 +f 1640/1800/152 1775/1804/152 1644/1805/152 1641/1801/152 +f 1645/1806/241 1768/1807/242 1767/1808/242 1646/1809/241 +f 1647/1810/113 1648/1811/112 1608/1763/112 1649/1812/113 +f 1650/1813/162 1779/1814/151 1621/1777/151 1651/1815/162 +f 1652/1816/243 1781/1817/244 1626/1783/244 1653/1818/243 +f 1654/1819/245 1787/1820/148 1643/1803/148 1655/1821/245 +f 1656/1822/159 1657/1823/158 1603/1757/158 1658/1824/159 +f 1659/1825/97 1789/1826/97 1766/1827/97 1660/1828/97 +f 1661/1829/97 1778/1830/97 1777/1831/97 1662/1832/97 +f 1663/1833/97 1664/1834/97 1665/1835/97 1666/1836/97 +f 1667/1837/97 1668/1838/97 1772/1839/97 1669/1840/97 +f 1670/1841/97 1784/1842/97 1783/1843/97 1671/1844/97 +f 1672/1845/97 1673/1846/97 1674/1847/97 1675/1848/97 +f 1676/1849/97 1786/1850/97 1785/1851/97 1677/1852/97 +f 1678/1853/97 1793/1854/97 1774/1855/97 1679/1856/97 +f 1680/1857/97 1795/1858/97 1776/1859/97 1681/1860/97 +f 1682/1861/246 1683/1862/247 1684/1863/247 1685/1864/246 +f 1686/1865/156 1687/1866/155 1688/1867/155 1689/1868/156 +f 1690/1869/177 1691/1870/176 1692/1871/176 1693/1872/177 +f 1694/1873/157 1695/1874/144 1780/1875/144 1696/1876/157 +f 1697/1877/153 1698/1878/138 1782/1879/138 1699/1880/153 +f 1700/1881/139 1701/1882/248 1788/1883/248 1702/1884/139 +f 1703/1885/154 1704/1886/142 1705/1887/142 1706/1888/154 +f 1707/1889/164 1708/1890/164 1709/1891/164 +f 1710/1892/249 1711/1893/249 1712/1894/249 +f 1713/1895/250 1714/1896/250 1715/1897/250 +f 1716/1898/168 1717/1899/168 1718/1900/168 +f 1719/1901/251 1720/1902/251 1721/1903/251 +f 1722/1904/185 1723/1905/185 1724/1906/185 +f 1725/1907/163 1726/1908/163 1727/1909/163 +f 1728/1910/252 1729/1911/252 1730/1912/252 +f 1731/1913/253 1732/1914/253 1733/1915/253 +f 1734/1916/254 1735/1917/254 1736/1918/254 +f 1544/1696/97 1547/1699/97 1546/1698/97 1545/1697/97 +f 1737/1919/253 1732/1914/253 1731/1913/253 +f 1738/1920/163 1726/1908/163 1725/1907/163 +f 1739/1921/255 1740/1922/256 1741/1923/256 1742/1924/255 +f 1743/1925/251 1720/1902/251 1719/1901/251 +f 1744/1926/166 1745/1927/167 1746/1928/167 1747/1929/166 +f 1748/1930/250 1714/1896/250 1713/1895/250 +f 1749/1931/164 1708/1890/164 1707/1889/164 +f 1750/1932/249 1711/1893/249 1710/1892/249 +f 1747/1929/166 1751/1933/257 1752/1934/257 1744/1926/166 +f 1753/1935/5 1754/1936/186 1755/1937/186 1756/1938/5 +f 1756/1938/5 1757/1939/249 1758/1940/249 1753/1935/5 +f 1759/1941/168 1717/1899/168 1716/1898/168 +f 1742/1924/255 1760/1942/258 1761/1943/258 1739/1921/255 +f 1762/1944/185 1723/1905/185 1722/1904/185 +f 1763/1945/252 1729/1911/252 1728/1910/252 +f 1764/1946/254 1735/1917/254 1734/1916/254 +f 1765/1758/259 1766/1827/259 1645/1806/241 1646/1809/241 +f 1767/1808/242 1768/1807/242 1647/1810/113 1649/1812/113 +f 1769/1772/160 1770/1947/160 1650/1813/162 1651/1815/162 +f 1771/1778/174 1772/1839/174 1652/1816/243 1653/1818/243 +f 1773/1798/260 1774/1855/260 1654/1819/245 1655/1821/245 +f 1775/1804/261 1776/1859/261 1656/1822/159 1658/1824/159 +f 1657/1823/97 1705/1887/97 1659/1825/97 1660/1828/97 +f 1648/1811/97 1688/1867/97 1661/1829/97 1662/1832/97 +f 1777/1831/97 1778/1830/97 1663/1833/97 1666/1836/97 +f 1779/1814/97 1780/1875/97 1667/1837/97 1669/1840/97 +f 1781/1817/97 1782/1879/97 1670/1841/97 1671/1844/97 +f 1783/1843/97 1784/1842/97 1672/1845/97 1675/1848/97 +f 1674/1948/97 1673/1949/97 1676/1849/97 1677/1852/97 +f 1785/1851/97 1786/1850/97 1678/1853/97 1679/1856/97 +f 1787/1820/97 1788/1883/97 1680/1857/97 1681/1860/97 +f 1789/1826/262 1790/1950/262 1682/1861/246 1685/1864/246 +f 1684/1863/247 1683/1862/247 1686/1865/156 1689/1868/156 +f 1664/1834/178 1791/1951/178 1690/1869/177 1693/1872/177 +f 1692/1871/176 1691/1870/176 1694/1873/157 1696/1876/157 +f 1668/1838/175 1792/1952/175 1697/1877/153 1699/1880/153 +f 1793/1854/140 1794/1953/140 1700/1881/139 1702/1884/139 +f 1795/1858/263 1796/1954/263 1703/1885/154 1706/1888/154 +f 1797/1955/264 1798/1956/264 1799/1957/265 1800/1958/265 +f 1800/1958/265 1799/1957/265 1801/1959/266 1802/1960/266 +f 1802/1960/266 1801/1959/266 1803/1961/267 1804/1962/267 +f 1804/1962/267 1803/1961/267 1805/1963/268 1806/1964/268 +f 1806/1964/268 1805/1963/268 1807/1965/269 1808/1966/269 +f 1808/1966/269 1807/1965/269 1809/1967/270 1810/1968/270 +f 1810/1968/270 1809/1967/270 1811/1969/271 1812/1970/271 +f 1812/1970/271 1811/1969/271 1813/1971/272 1814/1972/272 +f 1814/1972/272 1813/1971/272 1815/1973/273 1816/1974/273 1817/1975/274 +f 1818/1976/275 1819/1977/275 1820/1978/276 1821/1979/276 +f 1821/1979/276 1820/1978/276 1822/1980/277 1823/1981/277 +f 1823/1981/277 1822/1980/277 1798/1956/264 1797/1955/264 +f 1815/1973/273 1824/1982/278 1816/1974/273 +f 1826/1983/82 1827/1984/279 1828/1985/83 +f 1828/1985/83 1827/1984/279 1829/1986/280 +f 1829/1986/280 3403/1987/281 1830/1988/84 +f 1830/1988/84 1831/1989/5 1832/1990/5 1829/1986/280 +f 1831/1989/5 1833/1991/125 1834/1992/125 1832/1990/5 +f 1833/1991/125 1835/1993/115 1836/1994/115 1834/1992/125 +f 1835/1993/115 1837/1995/173 1838/1996/173 1836/1994/115 +f 1837/1995/173 1839/1997/3 1840/1998/3 1838/1996/173 +f 1839/1997/3 1841/1999/90 1842/2000/90 1840/1998/3 +f 1841/1999/90 1843/2001/91 1844/2002/91 1842/2000/90 +f 1843/2001/91 1845/2003/282 1846/2004/282 1844/2002/91 +f 3403/1987/281 1829/1986/280 1827/1984/279 +f 1847/2005/187 1826/1983/82 1825/2006/283 +f 1848/2007/284 1819/1977/275 1818/1976/275 +f 1849/2008/1 1850/2009/1 1851/2010/1 +f 1852/2011/4 1853/2012/4 1854/2013/81 1855/2014/81 +f 1855/2014/81 1854/2013/81 1856/2015/80 1857/2016/80 +f 1857/2016/80 1856/2015/80 1858/2017/79 1859/2018/79 +f 1859/2018/79 1858/2017/79 1860/2019/18 1861/2020/18 +f 1861/2020/18 1860/2019/18 1862/2021/77 1863/2022/77 +f 1863/2022/77 1862/2021/77 1864/2023/75 1865/2024/75 +f 1865/2024/75 1864/2023/75 1866/2025/74 1867/2026/74 +f 1868/2027/2 1867/2026/74 1866/2025/74 1869/2028/2 +f 1868/2029/2 1869/2030/2 758/910/73 757/909/73 +f 1870/2031/173 1871/2032/173 1872/2033/115 1873/2034/115 +f 1873/2034/115 1872/2033/115 1874/2035/125 1875/2036/125 +f 1875/2036/125 1874/2035/125 1876/2037/5 1877/2038/5 +f 1877/2038/5 1876/2037/5 1878/2039/84 1879/2040/84 +f 1879/2040/84 1878/2039/84 1880/2041/83 1881/2042/83 +f 1881/2042/83 1880/2041/83 1882/2043/82 1883/2044/82 +f 1883/2044/82 1882/2043/82 1853/2012/4 1852/2011/4 +f 761/913/3 1871/2032/173 1870/2031/173 762/914/3 +f 1884/2045/152 1885/2046/152 1886/2047/152 1887/2048/152 +f 1884/2045/152 1891/2049/152 1888/2050/152 1885/2046/152 +f 1889/2051/152 1890/2052/152 1888/2050/152 1891/2049/152 +f 1889/2051/152 1895/2053/152 1892/2054/152 1890/2052/152 +f 1893/2055/152 1894/2056/152 1892/2054/152 1895/2053/152 +f 1893/2055/152 1899/2057/152 1896/2058/152 1894/2056/152 +f 1897/2059/152 1898/2060/152 1896/2058/152 1899/2057/152 +f 1897/2059/152 836/2061/152 835/2062/152 1898/2060/152 +f 1900/2063/152 1901/2064/152 1902/2065/152 1903/2066/152 +f 1900/2063/152 1966/2067/152 1904/2068/152 1901/2064/152 +f 1905/2069/245 2882/2070/148 1903/2066/148 1906/2071/245 +f 1907/2072/159 1908/2073/158 1887/2048/158 1909/2074/159 +f 1910/2075/97 1969/2076/97 1968/2077/97 1911/2078/97 +f 1912/2079/97 1913/2080/97 1914/2081/97 1915/2082/97 +f 1916/2083/97 1971/2084/97 1970/2085/97 1917/2086/97 +f 1918/2087/97 1919/2088/97 781/2089/97 1920/2090/97 +f 1921/2091/139 1922/2092/248 1974/2093/248 1923/2094/139 +f 1924/2095/285 1925/2096/263 1975/2097/263 1926/2098/285 +f 1927/2099/154 1928/2100/142 1929/2101/142 1930/2102/154 +f 1931/2103/164 1932/2104/164 1933/2105/164 +f 1934/2106/163 1935/2107/163 1936/2108/163 +f 1937/2109/252 1938/2110/252 1939/2111/252 +f 1940/2112/253 1941/2113/253 1942/2114/253 +f 1943/2115/254 1944/2116/254 1945/2117/254 +f 1946/2118/253 1941/2113/253 1940/2112/253 +f 1947/2119/163 1935/2107/163 1934/2106/163 +f 1948/2120/286 1949/2121/287 1950/2122/287 1951/2123/286 +f 1952/2124/164 1932/2104/164 1931/2103/164 +f 1951/2123/286 1953/2125/288 1954/2126/288 1948/2120/286 +f 1955/2127/3 1956/2128/251 1957/2129/251 1958/2130/3 +f 1958/2130/3 1959/2131/254 1960/2132/254 1955/2127/3 +f 1961/2133/252 1938/2110/252 1937/2109/252 +f 1962/2134/254 1944/2116/254 1943/2115/254 +f 1963/2135/260 1964/2136/260 1905/2069/245 1906/2071/245 +f 1966/2067/261 1967/2137/261 1907/2072/159 1909/2074/159 +f 1908/2073/97 1929/2101/97 1910/2075/97 1911/2078/97 +f 1968/2077/97 1969/2076/97 1912/2079/97 1915/2082/97 +f 1914/2081/97 1913/2080/97 1916/2083/97 1917/2086/97 +f 1970/2085/97 1971/2084/97 1918/2087/97 1920/2090/97 +f 1972/2138/140 1973/2139/140 1921/2091/139 1923/2094/139 +f 1974/2093/248 1922/2092/248 1924/2095/285 1926/2098/285 +f 1975/2097/263 1925/2096/263 1927/2099/154 1930/2102/154 +f 1976/2140/289 1977/2141/289 1978/2142/289 1979/2143/289 +f 1980/2144/290 1981/2145/290 1982/2146/290 1983/2147/290 +f 1984/2148/291 1985/2149/291 1986/2150/291 1987/2151/291 +f 1988/2152/5 1989/2153/5 1990/2154/5 1991/2155/5 +f 1992/2156/292 1993/2157/292 1994/2158/292 1995/2159/292 +f 1996/2160/293 1997/2161/293 1998/2162/293 1999/2163/293 +f 2000/2164/294 2001/2165/294 2002/2166/294 2003/2167/294 +f 2004/2168/97 2005/2169/97 2006/2170/97 2007/2171/97 +f 2008/2172/237 2009/2173/237 2010/2174/237 2011/2175/237 +f 2012/2176/97 2013/2177/97 2014/2178/97 2015/2179/97 +f 2016/2180/295 2017/2181/295 2018/2182/295 2019/2183/295 +f 2020/2184/296 2021/2185/296 2022/2186/296 2023/2187/296 +f 2024/2188/297 2025/2189/297 2026/2190/297 2027/2191/297 +f 2028/2192/97 2029/2193/97 2030/2194/97 2031/2195/97 +f 2032/2196/1 2033/2197/1 2034/2198/1 2035/2199/1 +f 2036/2200/152 2037/2201/152 2038/2202/152 2039/2203/152 +f 2040/2204/4 2041/2205/4 2042/2206/4 2043/2207/4 +f 2044/2208/97 2045/2209/97 2046/2210/97 2047/2211/97 +f 2048/2212/1 2049/2213/1 2050/2214/1 2051/2215/1 +f 2052/2216/197 2053/2217/197 2054/2218/197 2055/2219/197 +f 2056/2220/152 2057/2221/152 2058/2222/152 2059/2223/152 +f 2060/2224/1 2061/2225/1 2062/2226/1 2063/2227/1 +f 2064/2228/32 2065/2229/32 2066/2230/32 2067/2231/32 +f 2068/2232/3 2069/2233/3 2070/2234/3 2071/2235/3 +f 2072/2236/298 2073/2237/298 2074/2238/298 2075/2239/298 +f 2076/2240/4 2077/2241/4 2078/2242/4 2079/2243/4 +f 2080/2244/4 2081/2245/4 2082/2246/4 2083/2247/4 +f 2084/2248/298 2085/2249/298 2086/2250/298 2087/2251/298 +f 2088/2252/299 2089/2253/299 2090/2254/299 2091/2255/299 +f 2092/2256/300 2093/2257/300 2094/2258/300 2095/2259/300 +f 2096/2260/3 2097/2261/3 2098/2262/3 2099/2263/3 +f 2100/2264/299 2101/2265/299 2102/2266/299 2103/2267/299 +f 2104/2268/4 2105/2269/4 2106/2270/4 2107/2271/4 +f 2108/2272/301 2109/2273/301 2110/2274/301 2111/2275/301 +f 2112/2276/3 2113/2277/3 2114/2278/3 2115/2279/3 +f 2116/2280/302 2117/2281/302 2118/2282/302 2119/2283/302 +f 2120/2284/4 2121/2285/4 2122/2286/4 2123/2287/4 +f 2124/2288/302 2125/2289/302 2126/2290/302 2127/2291/302 +f 2128/2292/4 2129/1484/4 2130/2293/4 2131/2294/4 +f 2132/2295/303 2133/2296/303 2134/2297/303 2135/2298/303 +f 2136/2299/303 2137/2300/303 2138/2301/303 2139/2302/303 +f 2140/2303/304 2141/2304/304 2142/2305/304 2143/2306/304 +f 2144/2307/305 2145/2308/305 2146/2309/305 2147/2310/305 +f 2148/2311/306 2149/2312/306 2150/2313/306 2151/2314/306 +f 2152/2315/4 2153/2316/4 2154/2317/4 2155/2318/4 +f 2156/2319/4 2157/2320/4 2158/2321/4 2159/2322/4 +f 1408/1559/3 1405/1557/3 1404/1556/3 +f 2143/2306/307 2160/2323/307 2161/2324/307 2162/2325/307 +f 2163/2326/197 2164/2327/197 2142/2305/197 2165/2328/197 +f 2166/2329/197 2167/2330/197 2168/2331/197 +f 2169/2332/197 2170/2333/197 2171/2334/197 +f 2090/2254/308 2172/2335/308 2173/2336/308 2174/2337/308 +f 2102/2266/308 2154/2317/308 2175/2338/308 2176/2339/308 +f 2118/2282/309 2158/2321/309 2177/2340/309 2178/2341/309 +f 2179/2342/197 2180/2343/197 2181/2344/197 2182/2345/197 +f 2150/2313/197 2169/2332/197 2171/2334/197 +f 2146/2309/197 2166/2329/197 2168/2331/197 +f 2183/2346/310 2184/2347/310 2185/2348/310 2078/2242/310 +f 2186/2349/311 2187/2350/311 2188/2351/311 2139/2302/311 +f 2189/2352/197 2190/2353/197 2134/2297/197 2147/2310/197 +f 2191/2354/6 2192/2355/6 2193/2356/6 2135/2298/6 +f 2194/2357/310 2195/2358/310 2153/2316/310 2106/2270/310 +f 2196/2359/312 3554/2360/312 2197/2361/312 2198/2362/312 +f 2199/2363/313 2200/2364/313 2201/2365/313 2202/2366/313 +f 2203/2367/2 2204/2368/2 2205/2369/2 2206/2370/2 +f 2207/2371/6 2208/2372/6 2209/2373/6 2210/2374/6 +f 2211/2375/33 2212/2376/33 2213/2377/33 2214/2378/33 +f 2215/2379/1 2216/2380/1 2217/2381/1 +f 2220/2382/4 2221/2383/4 2222/2384/4 +f 2223/2385/1 2224/2386/1 2225/2387/1 +f 2228/2388/4 2229/2389/4 2230/2390/4 +f 2231/2391/1 2232/2392/1 2233/2393/1 +f 2236/2394/4 2237/2395/4 2238/2396/4 +f 2241/2397/3 2242/2398/3 2243/2399/3 2244/2400/3 +f 2245/2401/17 2246/2402/17 2247/2403/17 3565/2404/17 +f 2248/2405/3 2249/2406/3 2250/2407/3 2251/2408/3 +f 2252/2409/17 2253/2410/17 2254/2411/17 2255/2412/17 +f 2256/2413/3 2257/2414/3 2258/2415/3 2259/2416/3 +f 2260/2417/17 2261/2418/17 2262/2419/17 2263/2420/17 +f 2264/2421/3 2265/2422/3 2266/2423/3 2267/2424/3 +f 2268/2425/3 2269/2426/3 2270/2427/3 2271/2428/3 +f 2272/2429/17 2273/2430/17 2274/2431/17 2275/2432/17 +f 2276/2433/17 2277/2434/17 2278/2435/17 2279/2436/17 +f 2280/2437/17 2281/2438/17 2282/2439/17 2283/2440/17 +f 2284/2441/17 2285/2442/17 2286/2443/17 2287/2444/17 +f 2288/2445/17 2289/2446/17 2290/2447/17 2291/2448/17 +f 2292/2449/3 2293/2450/3 2294/2451/3 2295/2452/3 +f 2296/2453/3 2297/2454/3 2298/2455/3 2299/2456/3 +f 2300/2457/22 2301/2458/22 2302/2459/22 2303/2460/22 +f 2304/2461/42 2305/2462/42 2306/2463/42 2307/2464/42 +f 2308/2465/22 2309/2466/22 2310/2467/22 2311/2468/22 +f 2312/2469/42 2313/2470/42 2314/2471/42 2315/2472/42 +f 2316/2473/314 2317/2474/314 2318/2475/314 2319/2476/314 +f 2320/2477/97 490/2478/97 2321/2479/97 +f 2323/2480/202 2324/2481/315 966/2482/316 +f 181/303/4 180/302/4 187/309/4 186/308/4 +f 185/307/2 184/306/2 2326/2483/2 2327/2484/2 +f 2328/2485/17 2329/2486/17 179/301/17 178/300/17 +f 193/315/317 190/312/317 189/311/317 194/316/317 +f 2332/2487/318 2333/2488/97 197/322/319 +f 197/322/320 3531/320/321 196/319/321 2332/2487/322 +f 197/322/319 2333/2488/97 198/323/97 +f 2331/2489/3 244/2490/323 2334/2491/324 +f 2335/2492/97 489/2493/97 487/2494/97 +f 203/329/97 2336/2495/97 2337/2496/97 200/326/97 +f 2334/2497/325 237/2498/326 2338/2499/327 +f 2334/2491/324 244/2490/323 235/2500/3 +f 2339/2501/328 238/2502/326 240/2503/326 +f 2339/2504/329 245/2505/330 246/2506/323 2340/2507/331 +f 2341/2508/332 241/2509/326 243/2510/326 +f 2341/2511/333 247/2512/334 3520/2513/335 +f 2340/2514/336 234/2515/326 2342/2516/327 +f 2340/2507/331 246/2506/323 232/2517/3 +f 2343/2518/327 238/2502/326 2339/2501/328 +f 2344/2519/327 241/2509/326 2341/2508/332 +f 2321/2479/97 489/2493/97 2335/2492/97 +f 2337/2520/97 2320/2477/97 2321/2479/97 +f 2337/2520/97 2336/2521/97 2332/2487/318 2320/2477/97 +f 2333/2488/97 2332/2487/318 2336/2521/97 +f 2345/2522/16 211/333/16 210/332/16 2346/2523/16 +f 229/351/3 228/350/3 214/336/3 213/335/3 +f 221/343/1 220/342/1 224/346/1 227/349/1 +f 2347/2524/2 2348/2525/2 223/345/2 222/344/2 +f 217/339/5 216/338/5 2349/2526/5 2350/2527/5 +f 209/331/18 208/330/18 2351/2528/18 2352/2529/18 +f 3486/2530/337 3463/2531/338 3462/354/38 3487/2532/339 +f 3485/2533/340 3465/2534/341 3463/2531/338 3486/2530/337 +f 243/2535/3 247/2512/334 2341/2511/333 +f 232/2536/326 234/2515/326 2340/2514/336 +f 240/2537/3 245/2505/330 2339/2504/329 +f 235/2538/326 237/2498/326 2334/2497/325 +f 238/2502/326 2343/2518/327 2338/2499/327 237/2498/326 +f 241/2509/326 2344/2519/327 2342/2516/327 234/2515/326 +f 237/363/3 236/362/3 239/365/3 238/364/3 +f 234/360/3 233/359/3 242/368/3 241/367/3 +f 236/362/326 244/370/342 245/371/343 239/365/326 +f 233/359/326 246/372/342 247/373/344 242/368/326 +f 2353/2539/1 2354/2540/1 272/398/1 275/401/1 +f 252/378/43 251/377/43 250/376/43 253/379/43 +f 262/388/4 261/387/4 258/384/4 257/383/4 +f 265/391/6 264/390/6 260/386/6 263/389/6 +f 270/396/1 269/395/1 267/393/1 266/392/1 +f 256/382/42 259/385/42 268/394/42 271/397/42 +f 2355/2541/44 249/375/44 248/374/44 2356/2542/44 +f 281/2543/345 280/2544/346 287/2545/347 288/2546/348 +f 286/2547/349 287/2545/350 280/2544/351 279/2548/352 +f 297/2549/2 296/411/2 291/406/2 290/2550/2 +f 301/2551/3 300/415/3 295/410/3 294/2552/3 +f 293/2553/4 292/407/4 299/414/4 298/2554/4 +f 174/295/353 2358/2555/353 2359/2556/353 175/296/353 +f 323/438/4 322/437/4 2360/2557/4 2361/2558/4 +f 310/425/1 313/428/1 2362/2559/1 2363/2560/1 +f 2364/2561/49 2365/2562/49 312/427/49 311/426/49 +f 320/435/52 315/430/52 314/429/52 321/436/52 +f 303/418/50 302/417/50 309/424/50 308/423/50 +f 304/419/354 2366/2563/354 2367/2564/354 305/420/354 +f 328/442/97 1379/1534/97 1378/1533/97 329/443/97 +f 2745/2565/4 1382/2566/355 1504/2567/4 +f 1381/2568/356 2706/2569/357 3537/2570/357 3536/2571/358 +f 1504/2567/4 3541/2572/359 1501/2573/4 +f 2371/2574/360 340/452/360 337/449/360 +f 349/461/360 340/452/360 2371/2574/360 +f 349/461/360 348/460/360 1389/1542/360 340/452/360 +f 345/457/361 344/456/361 347/459/361 346/458/361 +f 966/2482/316 2372/2575/362 967/2576/363 +f 2373/2577/4 2374/2578/4 1200/1353/4 +f 363/2579/3 362/483/3 354/482/3 353/2580/3 +f 360/1179/364 3564/2581/364 2375/2582/364 2376/2583/364 +f 362/479/365 361/478/365 2377/2584/365 365/484/365 +f 366/485/366 2378/2585/366 355/470/366 354/469/366 +f 2379/2586/1 368/2587/1 2373/2588/1 +f 368/2587/1 2379/2586/1 367/2589/1 +f 2380/2590/367 370/487/367 373/490/367 2381/2591/367 +f 2382/2592/97 415/532/97 2383/2593/97 +f 2383/2593/97 414/531/97 2384/2594/97 +f 2383/2593/97 415/532/97 414/531/97 +f 2385/2595/152 2386/2596/152 417/534/152 +f 2385/2595/152 416/533/152 2387/2597/152 +f 2388/2598/2 418/535/2 421/538/2 2389/2599/2 +f 2390/2600/1 420/537/1 419/536/1 2391/2601/1 +f 397/2602/97 396/513/97 2392/2603/97 +f 2392/2603/97 391/508/97 390/2604/97 +f 2392/2603/97 396/513/97 391/508/97 +f 2393/2605/152 393/2606/152 392/509/152 +f 2393/2605/152 395/512/152 394/2607/152 +f 417/534/152 416/533/152 2385/2595/152 +f 392/509/152 395/512/152 2393/2605/152 +f 375/492/16 380/497/16 379/496/16 376/493/16 +f 383/500/16 388/505/16 387/504/16 384/501/16 +f 399/516/16 404/521/16 403/520/16 400/517/16 +f 407/524/16 412/529/16 411/528/16 408/525/16 +f 425/542/368 424/541/368 2394/2608/369 +f 2395/2609/1 2396/2610/1 2397/2611/1 +f 2398/2612/1 2397/2611/1 2399/2613/1 2400/2614/1 +f 2398/2612/1 423/540/1 422/539/1 +f 2394/2608/369 2401/2615/370 2402/2616/371 2403/2617/372 +f 2394/2608/369 424/541/368 2401/2615/370 +f 2397/2611/1 2396/2610/1 2399/2613/1 +f 2400/2614/1 423/540/1 2398/2612/1 +f 2403/2617/372 2402/2616/371 2404/2618/368 +f 2405/2619/97 464/581/97 463/2620/97 +f 429/2621/97 428/545/97 2405/2619/97 +f 2406/2622/152 427/544/152 426/2623/152 +f 433/2624/97 432/549/97 2407/2625/97 +f 2407/2625/97 460/577/97 459/2626/97 +f 2408/2627/152 431/548/152 430/2628/152 +f 2409/2629/57 467/584/57 466/583/57 2410/2630/57 +f 449/2631/97 448/565/97 2411/2632/97 +f 2411/2632/97 452/569/97 451/2633/97 +f 2412/2634/152 447/564/152 446/2635/152 +f 2413/2636/1 2414/2637/1 469/586/1 468/585/1 +f 452/569/97 2411/2632/97 448/565/97 +f 453/570/152 2412/2634/152 450/2638/152 +f 447/564/152 2412/2634/152 453/570/152 +f 443/560/58 457/574/58 456/573/58 444/561/58 +f 435/552/58 440/557/58 439/556/58 436/553/58 +f 460/577/97 2407/2625/97 432/549/97 +f 461/578/152 2408/2627/152 458/2639/152 +f 431/548/152 2408/2627/152 461/578/152 +f 464/581/97 2405/2619/97 428/545/97 +f 465/582/152 2406/2622/152 462/2640/152 +f 427/544/152 2406/2622/152 465/582/152 +f 481/598/97 2416/738/97 2417/737/97 543/665/97 +f 484/601/97 2418/2641/97 2416/738/97 481/598/97 +f 486/603/97 3326/2642/97 2418/2641/97 484/601/97 +f 488/605/97 2419/2643/97 3326/2642/97 486/603/97 +f 491/608/97 493/610/97 3325/2644/97 2420/2645/97 +f 491/608/97 2420/2645/97 2419/2643/97 488/605/97 +f 496/613/97 2421/687/97 3325/2644/97 493/610/97 +f 498/615/97 3324/684/97 2421/687/97 496/613/97 +f 500/617/97 3323/2646/97 3324/684/97 498/615/97 +f 502/619/97 2422/679/97 3323/2646/97 500/617/97 +f 503/621/97 2423/680/97 2422/679/97 502/619/97 +f 505/623/97 3322/722/97 2423/680/97 503/621/97 +f 506/625/97 3321/2647/97 3322/722/97 505/623/97 +f 508/627/97 2424/727/97 3321/2647/97 506/625/97 +f 510/629/97 2425/728/97 2424/727/97 508/627/97 +f 512/631/97 3320/2648/97 2425/728/97 510/629/97 +f 514/633/97 2426/2649/97 3320/2648/97 512/631/97 +f 515/635/97 3319/2650/97 2426/2649/97 514/633/97 +f 517/637/97 2427/2651/97 3319/2650/97 515/635/97 +f 519/639/97 3318/2652/97 2427/2651/97 517/637/97 +f 521/641/97 2428/2653/97 3318/2652/97 519/639/97 +f 523/643/97 3317/2654/97 2428/2653/97 521/641/97 +f 525/645/97 2429/2655/97 3317/2654/97 523/643/97 +f 526/648/97 3316/2656/97 2429/2657/97 525/646/97 +f 529/651/97 2430/2658/97 3316/2656/97 526/648/97 +f 531/653/97 2431/2659/97 2430/2658/97 529/651/97 +f 533/655/97 3315/683/97 2431/2659/97 531/653/97 +f 535/657/97 2432/675/97 3315/683/97 533/655/97 +f 537/659/97 2433/676/97 2432/675/97 535/657/97 +f 539/661/97 2434/748/97 2433/676/97 537/659/97 +f 541/663/97 3314/2660/97 2434/748/97 539/661/97 +f 543/665/97 2417/737/97 3314/2660/97 541/663/97 +f 682/698/97 597/2661/97 544/696/97 +f 590/2662/97 613/768/97 544/696/97 +f 612/2663/282 570/2664/91 611/2665/373 +f 565/2666/94 567/733/94 2437/2667/374 +f 3012/826/259 3015/2668/375 2486/842/375 653/802/259 +f 582/2669/83 581/2670/84 2443/2671/376 +f 664/806/97 2508/848/97 2466/2672/97 2471/807/97 +f 676/853/286 592/2673/286 600/2674/287 677/2675/287 +f 2466/2672/97 2508/848/97 2507/2676/97 2467/2677/97 +f 666/821/97 2510/805/97 2470/804/97 643/796/97 +f 2524/2678/260 2522/809/145 2478/808/145 2481/837/260 +f 562/2679/97 563/2680/97 2458/833/97 2457/2681/377 +f 3317/2654/378 2526/2682/378 2528/2683/379 2428/2653/380 +f 590/2684/3 685/857/3 681/860/254 613/2685/254 +f 584/2686/4 583/2687/82 683/861/381 599/2688/4 +f 618/691/110 617/753/97 553/750/97 554/688/97 +f 598/2689/4 585/2690/4 668/2691/163 697/2692/163 +f 2468/695/111 627/765/97 576/764/97 577/692/97 +f 2518/2693/382 2431/2659/382 3315/683/106 2516/682/105 +f 592/2673/286 676/853/286 675/856/288 611/2665/288 +f 3191/685/107 3324/684/107 3323/2646/383 3188/2694/384 +f 564/2695/1 563/2680/62 689/2696/385 602/2697/1 +f 563/2680/62 562/2679/63 689/2696/385 +f 3325/2644/386 593/2698/386 634/829/387 2420/2645/388 +f 2529/2699/261 3010/813/147 2484/812/147 651/2700/261 +f 614/2701/187 613/2685/187 681/860/187 +f 617/753/179 2477/2702/179 639/2703/181 638/754/181 +f 619/690/389 2479/838/389 646/2704/180 618/691/180 +f 625/2705/390 2492/2706/390 2491/834/155 641/670/155 +f 627/765/391 2494/2707/391 654/2708/392 626/766/392 +f 2480/840/245 2527/2709/245 2524/2710/260 2481/2711/260 +f 2486/842/375 3015/2668/375 661/845/158 660/755/158 +f 2497/2712/152 657/2713/152 2511/2714/152 630/736/152 +f 2502/846/152 632/2715/152 2530/2716/152 2529/2699/152 +f 2502/846/152 661/845/152 3011/2717/152 632/2715/152 +f 2504/825/152 663/2718/152 3016/2719/152 633/726/152 +f 639/2703/181 2453/798/182 2455/2720/182 638/754/181 +f 2471/807/176 2466/2672/177 2469/694/177 2472/2721/176 +f 647/811/97 2476/2722/97 2477/2702/97 646/2704/97 +f 651/2700/97 2484/812/97 2485/2723/97 650/2724/97 +f 655/2725/97 2489/816/97 2492/2706/97 654/2708/97 +f 657/2713/244 2497/2712/243 2499/2726/243 656/2727/244 +f 668/2691/251 698/2728/251 697/2692/251 +f 669/2729/186 704/2730/186 703/2731/186 +f 690/741/393 693/2732/393 671/2733/394 672/742/394 +f 679/854/17 676/853/17 677/2675/252 678/2734/252 +f 682/2735/165 2445/2736/165 2444/2737/165 +f 542/664/395 2532/2738/395 2533/2739/396 482/599/396 +f 540/662/397 2534/2740/397 2532/2738/395 542/664/395 +f 538/660/398 2535/2741/398 2534/2740/397 540/662/397 +f 536/658/399 2536/2742/399 2535/2741/398 538/660/398 +f 534/656/400 2537/2743/400 2536/2742/399 536/658/399 +f 532/654/273 2538/2744/273 2537/2743/400 534/656/400 +f 530/652/272 2539/2745/272 2538/2744/273 532/654/273 +f 528/650/271 2540/2746/271 2539/2745/272 530/652/272 +f 527/649/270 2541/2747/270 2540/2746/271 528/650/271 +f 485/602/401 2542/2748/401 487/604/402 +f 483/600/403 2543/2749/403 2542/2748/401 485/602/401 +f 482/599/396 2533/2739/396 2543/2749/403 483/600/403 +f 2544/2750/397 716/868/397 713/865/404 2545/2751/404 +f 2546/2752/398 718/870/398 716/868/397 2544/2750/397 +f 2547/2753/405 2548/2754/406 721/873/407 +f 2549/2755/399 719/871/399 718/870/398 2546/2752/398 +f 2550/2756/400 723/875/400 719/871/399 2549/2755/399 +f 2551/2757/273 725/877/273 723/875/400 2550/2756/400 +f 2552/2758/272 727/879/272 725/877/273 2551/2757/273 +f 2553/2759/271 729/881/271 727/879/272 2552/2758/272 +f 2554/2760/270 731/883/270 729/881/271 2553/2759/271 +f 713/865/404 715/867/408 2555/2761/408 2545/2751/404 +f 721/873/407 720/872/409 2556/2762/409 2547/2753/405 +f 721/873/407 2548/2754/406 722/874/406 +f 720/872/409 724/876/410 2557/2763/410 2556/2762/409 +f 724/876/410 726/878/411 2558/2764/411 2557/2763/410 +f 726/878/411 728/880/412 2559/2765/412 2558/2764/411 +f 728/880/412 730/882/413 2560/2766/413 2559/2765/412 +f 730/882/413 732/884/414 2561/2767/414 2560/2766/413 +f 732/884/414 734/886/415 2562/2768/415 2563/2769/416 2561/2767/414 +f 736/888/417 2562/2768/415 734/886/415 +f 2564/2770/269 735/887/418 733/885/269 +f 2565/2771/269 2566/2772/418 2567/2773/269 +f 2568/2774/419 2564/2770/269 733/885/269 731/883/270 2554/2760/270 +f 712/864/419 2565/2771/269 2567/2773/269 2541/2747/270 527/649/270 +f 489/2493/97 2321/2479/97 490/2478/97 +f 737/2775/97 490/2478/97 2320/2477/97 +f 742/894/97 2569/2776/97 2570/2777/97 743/895/97 +f 746/898/97 2571/2778/97 2569/2776/97 742/894/97 +f 748/900/97 2572/2779/97 2571/2778/97 746/898/97 +f 750/902/97 2573/2780/97 2572/2779/97 748/900/97 +f 752/904/97 2574/2781/97 2573/2780/97 750/902/97 +f 754/906/97 2575/2782/97 2574/2781/97 752/904/97 +f 756/908/97 2576/2783/97 2575/2782/97 754/906/97 +f 758/910/97 2577/2784/97 2576/2783/97 756/908/97 +f 760/912/97 2578/2785/97 2579/2786/97 761/913/97 +f 764/916/97 2580/2787/97 2578/2785/97 760/912/97 +f 766/918/97 2581/2788/97 2580/2787/97 764/916/97 +f 768/920/97 2582/2789/97 2581/2788/97 766/918/97 +f 770/922/97 2583/2790/97 2582/2789/97 768/920/97 +f 772/924/97 2584/2791/97 2583/2790/97 770/922/97 +f 743/895/97 2570/2777/97 2584/2791/97 772/924/97 +f 829/985/162 2585/2792/162 2586/930/151 776/929/151 +f 829/985/162 865/984/160 2588/2793/160 2585/2792/162 +f 852/1008/243 782/937/243 785/940/244 867/1004/244 +f 852/1008/243 851/928/174 775/927/174 782/937/243 +f 774/926/97 786/942/97 789/941/97 775/927/97 +f 774/926/97 2586/930/97 793/945/97 786/942/97 +f 2587/2794/97 795/951/97 797/949/97 2588/2793/97 +f 2587/2794/97 780/934/97 779/933/97 795/951/97 +f 2589/2795/97 805/960/97 803/958/97 3029/2796/97 +f 2589/2795/97 2590/2797/97 807/962/97 805/960/97 +f 2591/2798/97 809/964/97 807/962/97 2590/2797/97 +f 2591/2798/97 785/940/97 784/939/97 809/964/97 +f 783/938/153 2592/2799/153 811/966/138 784/939/138 +f 783/938/153 789/941/175 788/944/175 2592/2799/153 +f 2593/2800/168 862/1018/168 2594/2801/168 +f 2595/2802/129 1957/2129/129 1956/2128/129 +f 2596/2803/251 860/1016/251 859/1015/251 +f 2597/2804/152 864/1020/152 776/929/152 773/925/152 +f 2598/2805/251 860/1016/251 2596/2803/251 +f 2599/2806/129 1957/2129/129 2595/2802/129 +f 2600/2807/420 817/972/421 816/971/421 2601/2808/420 +f 2601/2808/420 813/968/422 854/1010/422 2600/2807/420 +f 2602/2809/18 823/978/253 822/977/253 2603/2810/18 +f 2603/2810/18 825/980/184 857/1013/184 2602/2809/18 +f 863/1019/168 862/1018/168 2593/2800/168 +f 851/928/152 850/1007/152 2597/2804/152 773/925/152 +f 2605/2811/423 2606/2812/423 874/1029/423 873/1028/423 +f 869/1024/423 878/1033/423 877/1032/423 870/1025/423 +f 2607/2813/17 901/1056/17 900/1055/17 2608/2814/17 +f 886/1041/97 885/1040/97 906/1061/97 905/1060/97 +f 894/1049/97 893/1048/97 910/1065/97 909/1064/97 +f 882/1037/58 881/1036/58 904/1059/58 907/1062/58 +f 890/1045/58 889/1044/58 908/1063/58 911/1066/58 +f 2609/2815/193 903/1058/193 902/1057/193 2610/2816/193 +f 921/1076/424 920/1075/424 919/1074/424 918/1073/424 +f 2611/2817/425 913/1068/425 912/1067/425 2612/2818/425 +f 914/1069/426 2613/2819/426 2614/2820/426 915/1070/426 +f 928/1083/32 2615/2821/32 2616/2822/32 929/1084/32 +f 2617/2823/152 2618/2824/152 951/1106/152 950/1105/152 +f 944/1099/32 935/1090/32 934/1089/32 945/1100/32 +f 938/1093/197 933/1088/197 932/1087/197 939/1094/197 +f 942/1097/202 937/1092/202 936/1091/202 943/1098/202 +f 946/1101/220 941/1096/220 940/1095/220 947/1102/220 +f 925/1080/220 924/1079/220 931/1086/220 930/1085/220 +f 956/1111/152 959/1114/152 2619/2825/152 2620/2826/152 +f 961/1116/4 960/1115/4 958/1113/4 957/1112/4 +f 2621/2827/97 2622/2828/97 963/1118/97 962/1117/97 +f 1148/2829/1 3563/2830/1 326/2831/1 350/2832/1 +f 975/1130/1 2624/2833/1 2625/2834/1 972/1127/1 +f 983/1138/3 2626/2835/3 2627/2836/3 980/1135/3 +f 979/1134/427 982/1137/427 981/1136/427 976/1131/427 +f 991/1146/428 2628/2837/428 2629/2838/428 988/1143/428 +f 987/1142/1 990/1145/1 989/1144/1 984/1139/1 +f 999/1154/3 2630/2839/3 2631/2840/3 996/1151/3 +f 995/1150/429 998/1153/429 997/1152/429 992/1147/429 +f 1007/1162/3 2632/2841/3 2633/2842/3 1004/1159/3 +f 1003/1158/206 1006/1161/206 1005/1160/206 1000/1155/206 +f 2634/2843/1 1077/1234/1 1076/1233/1 1082/1239/1 +f 1059/1216/1 1058/1215/1 1071/1228/1 2635/2844/1 +f 1066/1223/1 1065/1222/1 1070/1227/1 1088/1245/1 +f 2636/2845/1 1030/1187/1 1029/1186/1 1035/1192/1 +f 1034/1191/1 1033/1190/1 1038/1195/1 2637/2846/1 +f 1087/1244/1 1086/1243/1 1096/1253/1 2638/2847/1 +f 1081/1238/1 1080/1237/1 1090/1247/1 2639/2848/1 +f 1025/1182/430 2640/2849/430 2641/2850/430 1026/1183/430 +f 1033/1190/207 1029/1186/207 1032/1189/207 1036/1193/207 +f 1048/1205/428 1047/1204/428 1053/1210/428 2642/2851/428 +f 1055/1212/428 1054/1211/428 1060/1217/428 2643/2852/428 +f 1062/1219/200 1061/1218/200 1067/1224/200 2644/2853/200 +f 1040/1197/6 1039/1196/6 2645/2854/6 1092/1249/6 +f 1040/1197/431 1009/1164/431 1008/1163/431 1041/1198/431 +f 1086/1243/207 1070/1227/207 1069/1226/207 1094/1251/207 +f 1080/1237/207 1076/1233/207 1079/1236/207 1089/1246/207 +f 1010/1165/202 1009/1164/202 1093/1250/202 1074/1231/202 +f 1010/1165/203 1021/1176/203 1020/1175/203 1011/1166/203 +f 1083/1240/432 1017/1172/432 1016/1171/432 2646/2855/432 +f 2647/2856/433 1078/1235/433 1077/1234/433 1044/1201/433 +f 2648/2857/202 1018/1173/202 1017/1172/202 +f 2648/2857/202 2649/2858/202 1018/1173/202 +f 1050/1207/433 1084/1241/433 1051/1208/433 1047/1204/433 +f 1075/1232/202 1022/1177/202 1021/1176/202 +f 1075/1232/202 2650/2859/202 1022/1177/202 +f 1073/1230/202 2651/2860/202 1014/1169/202 1013/1168/202 +f 1057/1214/433 2652/2861/433 1058/1215/433 1054/1211/433 +f 1064/1221/434 1068/1225/434 1065/1222/434 1061/1218/434 +f 2324/2481/315 2372/2575/362 966/2482/316 +f 2653/2862/435 2654/2863/436 2655/2864/437 2656/2865/438 +f 2653/2862/435 1102/1259/439 1101/1258/440 +f 1097/1254/441 2656/2865/438 2655/2864/437 +f 1097/1254/441 1100/1257/442 2656/2865/438 +f 2654/2863/436 2653/2862/435 1101/1258/440 +f 1117/1275/97 1116/1274/97 1115/1273/97 1114/1272/97 +f 1104/1262/152 1107/1265/152 1111/1269/152 1110/1268/152 +f 1113/1271/2 1112/1270/2 1106/1264/2 1105/1263/2 +f 1109/1267/3 1108/1266/3 1119/1277/3 1118/1276/3 +f 3567/2866/6 3571/2867/6 1125/1283/6 1124/1282/6 +f 1127/1285/6 1126/1284/6 1121/1279/6 1120/1278/6 +f 2657/2868/2 1147/1301/2 1146/1300/2 2658/2869/2 +f 1141/2870/213 1138/2871/213 1137/1292/213 1142/1297/213 +f 1133/2872/213 1130/2873/213 1129/1286/213 1134/1291/213 +f 1156/2874/152 1155/1308/152 1178/1331/152 3568/2875/152 +f 3568/2875/152 1177/1330/152 1150/1303/152 3570/1302/152 +f 1152/1305/97 1151/1304/97 1180/1333/97 2660/2876/97 +f 2661/2877/152 1183/1336/152 1158/1311/152 1157/1310/152 +f 1164/1317/152 1163/1316/152 1184/1337/152 2661/2877/152 +f 1160/1313/97 1159/1312/97 1182/1335/97 2662/2878/97 +f 2663/2879/5 1188/1341/5 1187/1340/5 2664/2880/5 +f 2665/2881/3 1170/1323/3 1169/1322/3 2666/2882/3 +f 2667/2883/5 1192/1345/5 1191/1344/5 2668/2884/5 +f 2669/2885/3 1174/1327/3 1173/1326/3 2670/2886/3 +f 2671/2887/5 1196/1349/5 1195/1348/5 2672/2888/5 +f 1178/1331/152 1177/1330/152 3568/2875/152 +f 2660/2876/97 1179/1332/97 1154/1307/97 1153/2889/97 +f 2660/2876/97 1180/1333/97 1179/1332/97 +f 1184/1337/152 1183/1336/152 2661/2877/152 +f 2662/2878/97 1181/1334/97 1162/1315/97 1161/2890/97 +f 1182/1335/97 1181/1334/97 2662/2878/97 +f 1171/1324/5 1186/1339/5 1185/1338/5 1172/1325/5 +f 1189/1342/5 1176/1329/5 1175/1328/5 1190/1343/5 +f 2673/2891/5 1194/1347/5 1193/1346/5 2674/2892/5 +f 1197/1350/4 1200/1353/4 2374/2578/4 +f 1198/1351/4 2675/2893/4 2676/2894/4 1199/1352/4 +f 1215/1368/25 1214/1367/25 1203/1356/25 1202/1355/25 +f 1201/1354/42 1204/1357/42 1213/1366/42 1216/1369/42 +f 1210/1363/4 1207/1360/4 1206/1359/4 1211/1364/4 +f 3550/2895/3 1217/1370/3 1220/1373/3 3548/2896/3 +f 2680/2897/2 2681/2898/2 1235/1385/2 1234/1384/2 +f 1225/1375/17 1224/1374/17 2682/2899/17 2683/2900/17 +f 1229/1379/5 1228/1378/5 1227/1377/5 1226/1376/5 +f 1243/2901/4 1242/1388/4 1237/2902/4 1236/2903/4 +f 1239/2904/1 1238/2905/1 1241/1387/1 1240/2906/1 +f 1278/1424/3 1277/1423/3 1283/1429/3 1282/1428/3 +f 1281/1427/4 1280/1426/4 2684/2907/4 2685/2908/4 +f 1272/1418/5 1271/1417/5 1270/1416/5 1273/1419/5 +f 1261/1407/18 1260/1406/18 1275/1421/18 1274/1420/18 +f 1262/1408/16 1265/1411/16 1264/1410/16 1263/1409/16 +f 1269/1415/17 1268/1414/17 1267/1413/17 1266/1412/17 +f 2686/2909/16 2687/2910/16 1259/1405/16 1258/1404/16 +f 3500/2911/33 3368/2912/33 1254/1434/33 3496/2913/33 +f 3504/2914/443 3505/2915/223 3506/2916/341 +f 1300/1454/45 1307/1461/45 1306/1460/45 1301/1455/45 +f 2688/2917/4 2689/2918/4 1327/1481/4 1326/1480/4 +f 1325/1479/42 1324/1478/42 2690/2919/42 2691/2920/42 +f 1308/1462/6 1311/1465/6 1319/1473/6 1318/1472/6 +f 1317/1471/4 1316/1470/4 1314/1468/4 1313/1467/4 +f 1312/1466/42 1315/1469/42 1320/1474/42 1323/1477/42 +f 1322/1476/1 1321/1475/1 1310/1464/1 1309/1463/1 +f 1398/1483/225 3140/2921/225 2934/1489/225 +f 1328/2922/444 2692/2923/445 1331/2924/446 1330/2925/447 +f 2692/2923/448 3444/2926/2 2693/2927/2 +f 2693/2927/2 2059/2928/2 2060/2929/2 +f 2694/2930/3 2695/2931/3 1344/1495/3 1343/2932/3 +f 1346/2933/1 1345/1496/1 2696/2934/1 2697/2935/1 +f 1347/2936/449 2698/2937/449 2699/2938/449 1348/2939/449 +f 1361/1513/52 1360/1512/52 1359/1511/52 1362/1514/52 +f 1375/1527/49 1374/1526/49 1367/1519/49 1366/1518/49 +f 1369/1521/354 2700/2940/354 2701/2941/354 1370/1522/354 +f 2702/2942/4 2703/2943/4 1373/1525/4 1376/1528/4 +f 1350/1502/234 1349/1501/234 1364/1516/234 1363/1515/234 +f 1354/1506/50 1353/1505/50 1352/1504/50 1351/1503/50 +f 1358/1510/354 1357/1509/354 1356/1508/354 1355/1507/354 +f 3557/464/450 3560/2944/450 2909/2945/450 2239/1530/450 +f 331/2946/451 2412/2947/1 446/2948/1 +f 2368/2949/452 332/2950/453 3542/2951/454 3540/2952/452 +f 2707/2953/360 1389/1542/360 348/460/360 +f 3379/2954/455 1383/2955/4 3402/2956/456 +f 1387/1540/360 1389/1542/360 2707/2953/360 +f 3563/2830/1 37/2957/1 326/2831/1 +f 2708/2958/213 3544/2959/213 2705/2960/213 +f 1396/1549/213 3545/1571/213 1397/1550/213 +f 1396/1549/213 1416/1569/213 3545/1571/213 +f 1397/1550/213 3545/1571/213 2708/2958/213 +f 2709/2961/4 1418/2962/4 2710/2963/4 +f 2711/2964/1 2296/2453/1 2299/2456/1 +f 2712/2965/457 1402/2966/457 1401/1568/457 1415/1567/457 +f 2713/2967/4 1410/1562/4 1400/1561/4 1399/2968/4 +f 1406/1558/1 1405/1557/1 2714/2969/1 +f 1412/1564/55 1413/1565/55 1401/1553/55 1400/1552/55 +f 1419/2970/4 2710/2963/4 1418/2962/4 +f 3545/2971/2 2709/2972/2 2711/2973/2 3546/2974/2 +f 2716/2975/458 372/489/458 371/488/458 2717/2976/458 +f 2718/2977/4 1472/1624/4 1471/1623/4 2719/2978/4 +f 2720/2979/2 1470/1622/2 1473/1625/2 2721/2980/2 +f 1436/2981/97 1435/1587/97 2722/2982/97 +f 2722/2982/97 1430/1582/97 1429/2983/97 +f 1432/2984/152 1431/1583/152 2723/2985/152 +f 2723/2985/152 1431/1583/152 1434/1586/152 +f 1444/2986/97 1443/1595/97 2724/2987/97 +f 2724/2987/97 1438/1590/97 1437/2988/97 +f 1440/2989/152 1439/1591/152 2725/2990/152 +f 2725/2990/152 1439/1591/152 1442/1594/152 +f 1461/2991/97 1460/1612/97 2726/2992/97 +f 2726/2992/97 1455/1607/97 1454/2993/97 +f 1457/2994/152 1456/1608/152 2727/2995/152 +f 2727/2995/152 1456/1608/152 1459/1611/152 +f 1426/1578/18 1423/1575/18 1422/1574/18 1427/1579/18 +f 1434/1586/152 1433/2996/152 2723/2985/152 +f 1442/1594/152 1441/2997/152 2725/2990/152 +f 1453/1605/18 1451/1603/18 1448/1600/18 1446/1598/18 +f 1459/1611/152 1458/2998/152 2727/2995/152 +f 1467/1619/18 1464/1616/18 1463/1615/18 1468/1620/18 +f 1435/1587/97 1430/1582/97 2722/2982/97 +f 1443/1595/97 1438/1590/97 2724/2987/97 +f 1460/1612/97 1455/1607/97 2726/2992/97 +f 1478/1630/4 1477/1629/4 2728/2999/4 +f 2728/2999/4 1477/1629/4 2731/3000/4 +f 2732/3001/459 1476/1628/460 1475/1627/460 +f 2733/3002/461 2734/3003/462 2735/3004/463 2732/3001/459 +f 1529/1681/464 1534/3005/465 2729/3006/466 +f 2736/3007/4 2737/3008/4 2738/3009/4 +f 2731/3000/4 2739/3010/4 2736/3007/4 2728/2999/4 +f 2735/3004/463 1476/1628/460 2732/3001/459 +f 2739/3010/4 2737/3008/4 2736/3007/4 +f 1489/3011/57 1488/1640/57 1491/1643/57 1490/3012/57 +f 1500/3013/97 1499/1651/97 2740/3014/97 +f 2740/3014/97 1494/1646/97 1493/3015/97 +f 1496/3016/152 1495/1647/152 2741/3017/152 +f 2741/3017/152 1498/1650/152 1497/3018/152 +f 2741/3017/152 1495/1647/152 1498/1650/152 +f 2742/3019/57 1513/1665/57 1516/1668/57 2743/3020/57 +f 2744/3021/97 1502/1654/97 1501/3022/97 +f 1504/3023/152 1503/1655/152 2745/3024/152 +f 1512/3025/152 2745/3024/152 1509/1661/152 +f 1511/3026/97 1510/1662/97 2744/3021/97 +f 1502/1654/97 2744/3021/97 1510/1662/97 +f 1509/1661/152 2745/3024/152 1503/1655/152 +f 1515/1667/4 1514/1666/4 2746/3027/4 2747/3028/4 +f 1499/1651/97 1494/1646/97 2740/3014/97 +f 1506/1658/4 1508/1660/4 1507/3029/4 1505/3030/4 +f 1518/1670/237 1517/1669/237 1485/1637/237 1484/1636/237 +f 1522/1674/237 1521/1673/237 1481/1633/237 1480/1632/237 +f 2748/3031/5 2749/3032/5 2750/3033/467 +f 2751/3034/90 2752/3035/90 2753/3036/3 2754/3037/3 +f 2751/3034/90 2755/3038/468 2756/3039/468 2752/3035/90 +f 2754/3037/3 2753/3036/3 2757/3040/173 2758/3041/173 +f 2758/3041/173 2757/3040/173 2759/3042/115 2760/3043/115 +f 2760/3043/115 2759/3042/115 2761/3044/469 2762/3045/470 +f 2762/3045/470 1849/3046/249 1851/3047/249 +f 1536/1688/4 1823/1981/4 1797/1955/82 1599/1753/82 +f 1539/1691/81 1821/1979/81 1823/1981/4 1536/1688/4 +f 1541/1693/471 1818/1976/80 1821/1979/81 1539/1691/81 +f 1541/1693/471 1848/2007/472 1818/1976/80 +f 1543/1695/473 1848/2007/472 1541/1693/471 +f 1543/1695/473 2763/3048/79 1848/2007/472 +f 1545/1697/474 2764/3049/474 2763/3048/79 1543/1695/473 +f 1545/1697/474 2765/3050/253 2764/3049/474 +f 1546/1698/475 2765/3050/253 1545/1697/474 +f 1549/1701/75 2766/3051/75 2767/3052/77 1546/1698/475 +f 1551/1703/74 2768/3053/74 2766/3051/75 1549/1701/75 +f 1553/1705/2 2769/3054/2 2768/3053/74 1551/1703/74 +f 1555/1707/73 2770/3055/73 2769/3054/2 1553/1705/2 +f 1557/1709/72 2771/3056/72 2770/3055/73 1555/1707/73 +f 1559/1711/71 3457/3057/476 2771/3056/72 1557/1709/72 +f 1561/1713/16 2772/3058/477 3457/3057/476 1559/1711/71 +f 1563/1715/67 2773/3059/67 2772/3058/477 1561/1713/16 +f 1565/1717/63 3459/3060/63 2773/3059/67 1563/1715/67 +f 1567/1719/62 2774/3061/62 3459/3060/63 1565/1717/63 +f 1569/1721/1 3458/3062/1 2774/3061/62 1567/1719/62 +f 1571/1723/95 2775/3063/95 3458/3062/1 1569/1721/1 +f 1573/1725/94 2776/3064/94 2775/3063/95 1571/1723/95 +f 1575/1727/93 2777/3065/93 2776/3064/94 1573/1725/94 +f 1577/1729/17 2778/3066/17 2777/3065/93 1575/1727/93 +f 1579/1731/478 2779/3067/479 2778/3066/17 1577/1729/17 +f 1581/1733/480 2780/3068/481 2779/3067/479 1579/1731/478 +f 1583/1737/482 2780/3069/481 1581/1734/480 +f 1585/1739/3 1812/1970/3 1814/1972/482 1583/1737/482 +f 1587/1741/173 1810/1968/173 1812/1970/3 1585/1739/3 +f 1589/1743/115 1808/1966/115 1810/1968/173 1587/1741/173 +f 1591/1745/125 1806/1964/125 1808/1966/115 1589/1743/115 +f 1593/1747/5 1804/1962/5 1806/1964/125 1591/1745/125 +f 1595/1749/84 1802/1960/84 1804/1962/5 1593/1747/5 +f 1597/1751/83 1800/1958/83 1802/1960/84 1595/1749/84 +f 1599/1753/82 1797/1955/82 1800/1958/83 1597/1751/83 +f 1646/1809/152 2781/3070/152 1604/1759/152 1765/1758/152 +f 1646/1809/152 1767/1808/152 2782/3071/152 2781/3070/152 +f 1651/1815/152 2783/3072/152 1617/1773/152 1769/1772/152 +f 1651/1815/152 1621/1777/152 1620/1776/152 2783/3072/152 +f 1653/1818/152 2784/3073/152 1622/1779/152 1771/1778/152 +f 1653/1818/152 1626/1783/152 1625/1782/152 2784/3073/152 +f 1655/1821/152 2785/3074/152 1639/1799/152 1773/1798/152 +f 1655/1821/152 1643/1803/152 1642/1802/152 2785/3074/152 +f 1658/1824/152 2786/3075/152 1644/1805/152 1775/1804/152 +f 1658/1824/152 1603/1757/152 1602/1756/152 2786/3075/152 +f 1660/1828/375 1766/1827/259 1765/1758/259 1600/1754/375 +f 1662/1832/149 1777/1831/483 1612/1764/483 1605/1760/149 +f 1666/1836/484 1665/1835/485 1616/1768/485 1610/1766/484 +f 1669/1840/150 1772/1839/174 1771/1778/174 1618/1774/150 +f 1671/1844/486 1783/1843/487 1630/1784/487 1623/1780/486 +f 1675/1848/488 1674/1847/489 1631/1788/489 1628/1786/488 +f 1677/1852/490 1785/1851/146 1638/1794/146 1633/1790/490 +f 1679/1856/145 1774/1855/260 1773/1798/260 1636/1796/145 +f 1681/1860/147 1776/1859/261 1775/1804/261 1640/1800/147 +f 1685/1864/97 1684/1863/97 1768/1807/97 1645/1806/97 +f 1693/1872/97 1692/1871/97 1770/1947/97 2787/3076/97 +f 1696/1876/97 1780/1875/97 1779/1814/97 1650/1813/97 +f 1699/1880/97 1782/1879/97 1781/1817/97 1652/1816/97 +f 1702/1884/97 1788/1883/97 1787/1820/97 1654/1819/97 +f 1706/1888/97 1705/1887/97 1657/1823/97 1656/1822/97 +f 2788/3077/141 1790/1950/262 1789/1826/262 1659/1825/141 +f 2789/3078/390 2790/3079/392 1778/1830/392 1661/1829/390 +f 2791/3080/391 1791/1951/178 1664/1834/178 1663/1833/391 +f 2792/3081/143 1792/1952/175 1668/1838/175 1667/1837/143 +f 2793/3082/137 2794/3083/183 1784/1842/183 1670/1841/137 +f 2795/3084/182 2796/3085/181 1673/1846/181 1672/1845/182 +f 2797/3086/179 2798/3087/180 1786/1850/180 1676/1849/179 +f 2799/3088/389 1794/1953/140 1793/1854/140 1678/1853/389 +f 2800/3089/285 1796/1954/263 1795/1858/263 1680/1857/285 +f 2801/3090/187 1746/1928/187 1745/1927/187 +f 2802/3091/129 1751/1933/129 2803/3092/129 +f 2804/3093/184 1757/1939/184 2805/3094/184 +f 2806/3095/165 1755/1937/165 1754/1936/165 +f 2807/3096/69 1741/1923/69 1740/1922/69 +f 2808/3097/186 1760/1942/186 2809/3098/186 +f 2810/3099/393 1730/1912/394 1729/1911/394 2811/3100/393 +f 2812/3101/491 1724/1906/492 1723/1905/492 2813/3102/491 +f 1761/1943/186 1760/1942/186 2808/3097/186 +f 2814/3103/493 1718/1900/494 1717/1899/494 2815/3104/493 +f 2816/3105/165 1755/1937/165 2806/3095/165 +f 1752/1934/129 1751/1933/129 2802/3091/129 +f 2817/3106/495 1736/1918/496 1735/1917/496 2818/3107/495 +f 2819/3108/17 1715/1897/165 1714/1896/165 2820/3109/17 +f 2820/3109/17 1711/1893/252 1750/1932/252 2819/3108/17 +f 2821/3110/187 1746/1928/187 2801/3090/187 +f 1758/1940/184 1757/1939/184 2804/3093/184 +f 2815/3104/493 1720/1902/497 1743/1925/497 2814/3103/493 +f 2822/3111/69 1741/1923/69 2807/3096/69 +f 2813/3102/491 1726/1908/498 1738/1920/498 2812/3101/491 +f 2811/3100/393 1732/1914/499 1737/1919/499 2810/3099/393 +f 2818/3107/495 1708/1890/500 1749/1931/500 2817/3106/495 +f 1603/1757/158 1657/1823/158 1660/1828/375 1600/1754/375 +f 1608/1763/112 1648/1811/112 1662/1832/149 1605/1760/149 +f 1612/1764/483 1777/1831/483 1666/1836/484 1610/1766/484 +f 1621/1777/151 1779/1814/151 1669/1840/150 1618/1774/150 +f 1626/1783/244 1781/1817/244 1671/1844/486 1623/1780/486 +f 1630/1784/487 1783/1843/487 1675/1848/488 1628/1786/488 +f 1631/1793/489 1674/1948/489 1677/1852/490 1633/1790/490 +f 1638/1794/146 1785/1851/146 1679/1856/145 1636/1796/145 +f 1643/1803/148 1787/1820/148 1681/1860/147 1640/1800/147 +f 1766/1827/97 1789/1826/97 1685/1864/97 1645/1806/97 +f 1665/1835/97 1664/1834/97 1693/1872/97 2787/3076/97 +f 1770/1947/97 1692/1871/97 1696/1876/97 1650/1813/97 +f 1772/1839/97 1668/1838/97 1699/1880/97 1652/1816/97 +f 1774/1855/97 1793/1854/97 1702/1884/97 1654/1819/97 +f 1776/1859/97 1795/1858/97 1706/1888/97 1656/1822/97 +f 1705/1887/142 1704/1886/142 2788/3077/141 1659/1825/141 +f 1688/1867/155 1687/1866/155 2789/3078/390 1661/1829/390 +f 1778/1830/392 2790/3079/392 2791/3080/391 1663/1833/391 +f 1780/1875/144 1695/1874/144 2792/3081/143 1667/1837/143 +f 1782/1879/138 1698/1878/138 2793/3082/137 1670/1841/137 +f 1784/1842/183 2794/3083/183 2795/3084/182 1672/1845/182 +f 1673/1949/181 2796/3112/181 2797/3086/179 1676/1849/179 +f 1786/1850/180 2798/3087/180 2799/3088/389 1678/1853/389 +f 1788/1883/248 1701/1882/248 2800/3089/285 1680/1857/285 +f 2823/3113/501 1825/2006/501 1828/1985/265 2824/3114/265 +f 2823/3113/501 2825/3115/502 1847/2005/502 1825/2006/501 +f 2824/3114/265 1828/1985/265 1829/1986/266 2826/3116/266 +f 2826/3116/266 1829/1986/266 1832/1990/267 2827/3117/267 +f 2828/3118/84 2750/3033/467 2749/3032/5 +f 2827/3117/267 1832/1990/267 1834/1992/268 2829/3119/268 +f 2749/3032/5 2748/3031/5 1849/3046/249 +f 2749/3032/5 1849/3046/249 2761/3044/469 +f 2829/3119/268 1834/1992/268 1836/1994/269 2830/3120/269 +f 2761/3044/469 1849/3046/249 2762/3045/470 +f 2830/3120/269 1836/1994/269 1838/1996/270 2831/3121/270 +f 2831/3121/270 1838/1996/270 1840/1998/271 2832/3122/271 +f 2832/3122/271 1840/1998/271 1842/2000/272 2833/3123/272 +f 2833/3123/272 1842/2000/272 1844/2002/273 2834/3124/273 2835/3125/274 +f 1844/2002/273 1846/2004/278 2834/3124/273 +f 1817/1975/468 2780/3069/481 1814/1972/482 +f 2836/3126/281 2750/3033/467 2828/3118/84 +f 2764/3049/474 2765/3050/253 2837/3127/253 +f 2767/3052/77 2765/3050/253 1546/1698/475 +f 2780/3069/481 1583/1737/482 1814/1972/482 +f 1853/2012/97 2838/3128/97 2839/3129/97 1854/2013/97 +f 1854/2013/97 2839/3129/97 2840/3130/97 1856/2015/97 +f 1856/2015/97 2840/3130/97 2841/3131/97 1858/2017/97 +f 1858/2017/97 2841/3131/97 2842/3132/97 1860/2019/97 +f 1860/2019/97 2842/3132/97 2843/3133/97 1862/2021/97 +f 1862/2021/97 2843/3133/97 2844/3134/97 1864/2023/97 +f 1864/2023/97 2844/3134/97 2845/3135/97 1866/2025/97 +f 1869/2028/97 1866/2025/97 2845/3135/97 2846/3136/97 +f 1869/2030/97 2846/3137/97 2577/2784/97 758/910/97 +f 1871/2032/97 2847/3138/97 2848/3139/97 1872/2033/97 +f 1872/2033/97 2848/3139/97 2849/3140/97 1874/2035/97 +f 1874/2035/97 2849/3140/97 2850/3141/97 1876/2037/97 +f 1876/2037/97 2850/3141/97 2851/3142/97 1878/2039/97 +f 1878/2039/97 2851/3142/97 2852/3143/97 1880/2041/97 +f 1880/2041/97 2852/3143/97 2853/3144/97 1882/2043/97 +f 1882/2043/97 2853/3144/97 2838/3128/97 1853/2012/97 +f 2854/3145/152 2855/3146/152 866/1022/152 2856/1021/152 +f 2854/3145/152 1963/2135/152 1965/3147/152 2855/3146/152 +f 1906/2071/152 2857/3148/152 1965/3147/152 1963/2135/152 +f 1906/2071/152 1903/2066/152 1902/2065/152 2857/3148/152 +f 1909/2074/152 2858/3149/152 1904/2068/152 1966/2067/152 +f 1909/2074/152 1887/2048/152 1886/2047/152 2858/3149/152 +f 1911/2078/375 1968/2077/259 1891/2049/259 1884/2045/375 +f 1915/2082/241 1914/2081/242 1895/2053/242 1889/2051/241 +f 1917/2086/113 1970/2085/112 1899/2057/112 1893/2055/113 +f 1920/2090/149 781/2089/483 836/2061/483 1897/2059/149 +f 2859/3150/147 1967/2137/261 1966/2067/261 1900/2063/147 +f 1923/2094/97 1974/2093/97 2882/2070/97 1905/2069/97 +f 1930/2102/97 1929/2101/97 1908/2073/97 1907/2072/97 +f 2860/3151/141 2861/3152/262 1969/2076/262 1910/2075/141 +f 2862/3153/246 2863/3154/247 1913/2080/247 1912/2079/246 +f 2864/3155/156 2865/3156/155 1971/2084/155 1916/2083/156 +f 2866/3157/390 2867/3158/392 1919/2088/392 1918/2087/390 +f 2868/3159/389 1973/2139/140 1972/2138/140 2869/3160/389 +f 2870/3161/249 1950/2122/249 1949/2121/249 +f 2871/3162/250 1953/2125/250 2872/3163/250 +f 2873/3164/187 1959/2131/187 2874/3165/187 +f 2579/2786/97 2847/3138/97 1871/2032/97 761/913/97 +f 1954/2126/250 1953/2125/250 2871/3162/250 +f 2875/3166/249 1950/2122/249 2870/3161/249 +f 1960/2132/187 1959/2131/187 2873/3164/187 +f 2876/3167/2 1936/2108/164 1935/2107/164 2877/3168/2 +f 2877/3168/2 819/974/168 856/1012/168 2876/3167/2 +f 2878/3169/16 1942/2114/250 1941/2113/250 2879/3170/16 +f 2879/3170/16 1938/2110/69 1961/2133/69 2878/3169/16 +f 2880/3171/1 1933/2105/129 1932/2104/129 2881/3172/1 +f 2881/3172/1 1944/2116/185 1962/2134/185 2880/3171/1 +f 1887/2048/158 1908/2073/158 1911/2078/375 1884/2045/375 +f 1891/2049/259 1968/2077/259 1915/2082/241 1889/2051/241 +f 1895/2053/242 1914/2081/242 1917/2086/113 1893/2055/113 +f 1899/2057/112 1970/2085/112 1920/2090/149 1897/2059/149 +f 1903/2066/148 2882/2070/148 2859/3150/147 1900/2063/147 +f 1964/2136/97 1972/2138/97 1923/2094/97 1905/2069/97 +f 1967/2137/97 1975/2097/97 1930/2102/97 1907/2072/97 +f 1929/2101/142 1928/2100/142 2860/3151/141 1910/2075/141 +f 1969/2076/262 2861/3152/262 2862/3153/246 1912/2079/246 +f 1913/2080/247 2863/3154/247 2864/3155/156 1916/2083/156 +f 1971/2084/155 2865/3156/155 2866/3157/390 1918/2087/390 +f 802/957/180 801/956/180 2868/3159/389 2869/3160/389 +f 2883/3173/289 1986/2150/289 1985/2149/289 2884/3174/289 +f 2885/3175/290 1984/2148/290 1987/2151/290 2886/3176/290 +f 1979/3177/503 1978/2142/503 1981/2145/503 1980/3178/503 +f 2887/3179/5 2007/2171/5 2006/2170/5 2888/3180/5 +f 2889/3181/292 2011/2175/292 2010/2174/292 2890/3182/292 +f 2891/3183/17 2012/2176/17 2015/2179/17 2892/3184/17 +f 1999/2163/17 1998/2162/17 2893/3185/17 2891/3183/17 +f 2894/3186/18 2014/2178/18 2013/2177/18 2895/3187/18 +f 2002/2166/97 2001/2165/97 1990/2154/97 1989/2153/97 +f 2000/2164/237 2003/2167/237 1994/2158/237 1993/2157/237 +f 2008/2172/294 2005/2169/294 2004/2168/294 2009/2173/294 +f 2893/3185/17 2012/2176/17 2891/3183/17 +f 2895/3187/18 2013/2177/18 2896/3188/18 +f 2895/3187/18 2896/3188/18 1997/2161/18 1996/2160/18 +f 2016/2180/504 2897/3189/504 2898/3190/504 2017/2181/504 +f 2025/2189/505 2024/2188/505 2022/2186/505 2021/2185/505 +f 2899/3191/506 2900/3192/506 2019/2183/506 2018/2182/506 +f 2901/3193/152 2902/3194/152 2052/2216/152 2055/2219/152 +f 2037/2201/3 2050/2214/3 2041/2205/3 2038/2202/3 +f 2045/2209/3 2042/2206/3 2049/2213/3 2046/2210/3 +f 2049/2213/3 2042/2206/3 2041/2205/3 2050/2214/3 +f 2029/2193/32 2028/2192/32 2903/3195/32 2904/3196/32 +f 2030/2194/220 2033/2197/220 2032/2196/220 2031/2195/220 +f 2058/2222/202 2061/2225/202 2060/2224/202 2059/2223/202 +f 2905/3197/220 2906/3198/220 2063/2227/220 2062/2226/220 +f 2907/3199/197 2057/2221/197 2056/2220/197 2908/3200/197 +f 2910/3201/3 2911/3202/3 2912/3203/507 2913/3204/508 +f 1395/1548/509 2914/3205/510 1392/1545/509 +f 1395/1548/509 2915/3206/511 2914/3205/510 +f 2916/3207/3 2132/2295/3 2135/2298/3 2193/2356/3 +f 2917/3208/4 2166/2329/4 2146/2309/4 2145/2308/4 +f 2075/2239/303 2918/3209/303 2919/3210/303 2072/2236/303 +f 2920/3211/298 2136/2299/298 2139/2302/298 2188/2351/298 +f 2087/2251/512 2082/2246/512 2081/2245/512 2084/2248/512 +f 2083/2247/3 2921/3212/3 2922/3213/3 2080/2244/3 +f 2923/3214/4 2169/2332/4 2150/2313/4 2149/2312/4 +f 2924/3215/97 2101/2265/97 2100/2264/97 +f 2098/2262/97 2152/2315/97 2099/2263/97 +f 2099/2263/97 2152/2315/97 2155/2318/97 2094/2258/97 +f 2095/2259/97 2094/2258/97 2155/2318/97 2101/2265/97 +f 2104/2268/97 2107/2271/97 2098/2262/97 +f 2115/2279/4 2110/2274/4 2109/2273/4 2112/2276/4 +f 2111/2275/302 2925/3216/302 2926/3217/302 2108/2272/302 +f 2127/2291/304 2122/2286/304 2121/2285/304 2124/2288/304 +f 2123/2287/3 2927/3218/3 2928/3219/3 2120/2284/3 +f 2929/3220/513 2140/2303/513 2143/2306/513 2162/2325/513 +f 2089/2253/300 2930/3221/300 2172/2335/300 2090/2254/300 +f 2101/2265/97 2924/3215/97 2095/2259/97 +f 2117/2281/304 2159/2322/304 2158/2321/304 2118/2282/304 +f 2107/2271/97 2152/2315/97 2098/2262/97 +f 2144/2307/4 2147/2310/4 2134/2297/4 2133/2296/4 +f 2931/3222/4 2185/2348/4 2138/2301/4 2137/2300/4 +f 2156/2319/305 2932/3223/305 2179/2342/305 2157/2320/305 +f 2933/3224/305 2131/2294/305 2130/2293/305 2165/2328/305 +f 2130/2293/197 2129/1484/197 2934/1489/197 2935/3225/197 +f 2164/2327/309 2160/2323/309 2143/2306/309 2142/2305/309 +f 2077/2241/197 2936/3226/197 2183/2346/197 +f 2135/2298/514 2134/2297/514 2190/2353/514 2191/2354/514 +f 2139/2302/308 2138/2301/308 2937/3227/308 2186/2349/308 +f 2106/2270/197 2105/2269/197 2938/3228/197 2194/2357/197 +f 2078/2242/197 2077/2241/197 2183/2346/197 +f 2153/2316/197 2195/2358/197 2175/2338/197 2154/2317/197 +f 2157/2320/197 2939/3229/197 2177/2340/197 2158/2321/197 +f 2940/3230/197 2173/2336/197 2172/2335/197 2151/2314/197 +f 2174/2337/311 2941/3231/311 2091/2255/311 2090/2254/311 +f 2168/2331/310 2189/2352/310 2147/2310/310 2146/2309/310 +f 2176/2339/515 2942/3232/515 2103/2267/515 2102/2266/515 +f 2178/2341/515 2943/3233/515 2119/2283/515 2118/2282/515 +f 2944/3234/516 2945/3235/517 2946/3236/518 2947/3237/519 +f 2944/3234/516 2199/2363/520 2202/2366/521 +f 2913/3204/508 2912/3203/507 2948/3238/522 2949/3239/522 +f 2949/3239/522 2948/3238/522 2950/3240/523 2951/3241/523 +f 2945/3235/517 2944/3234/516 2202/2366/521 +f 2198/2362/524 2947/3237/519 2946/3236/518 +f 2198/2362/524 2197/2361/439 2947/3237/519 +f 2212/2376/3 2211/2375/3 2210/2374/3 2209/2373/3 +f 2952/3242/97 2953/3243/97 2214/2378/97 2213/2377/97 +f 2208/2372/152 2207/2371/152 2954/3244/152 2955/3245/152 +f 2234/3246/2 2233/2393/2 2236/2394/2 2235/3247/2 +f 2228/2388/213 2225/2387/213 2224/3248/213 2229/3249/213 +f 2220/2382/213 2217/2381/213 2216/3250/213 2221/3251/213 +f 2950/3240/523 2914/3205/510 2951/3241/523 +f 2957/3252/525 2914/3205/510 2950/3240/523 +f 2914/3205/510 2915/3206/511 2951/3241/523 +f 2958/3253/17 2293/2450/17 2292/2449/17 2959/3254/17 +f 2275/2432/152 2274/2431/152 2289/2446/152 2960/3255/152 +f 2960/3255/152 2288/2445/152 2269/2426/152 2268/3256/152 +f 2271/3257/97 2270/2427/97 2291/2448/97 2961/3258/97 +f 2278/2435/1 2277/2434/1 2243/2399/1 2242/2398/1 +f 2280/2437/1 2283/2440/1 2250/2407/1 2249/2406/1 +f 2284/2441/1 2287/2444/1 2258/2415/1 2257/2414/1 +f 2962/3259/1 2963/3260/1 2266/2423/1 2265/2422/1 +f 2289/2446/152 2288/2445/152 2960/3255/152 +f 2291/2448/97 2290/2447/97 2961/3258/97 +f 2961/3258/97 2290/2447/97 2273/2430/97 2272/2429/97 +f 2247/2403/3 2246/2402/3 2276/2433/3 2279/2436/3 +f 2254/2411/3 2253/2410/3 2282/2439/3 2281/2438/3 +f 2262/2419/3 2261/2418/3 2286/2443/3 2285/2442/3 +f 2296/2453/1 2711/2964/1 2709/3261/1 +f 2297/2454/1 2964/3262/1 2965/3263/1 2298/2455/1 +f 2304/2461/526 2303/2460/526 2302/2459/526 2305/2462/526 +f 2312/2469/527 2311/2468/527 2310/2467/527 2313/2470/527 +f 2314/2471/528 2309/2466/528 2308/2465/528 2315/2472/528 +f 2306/2463/529 2301/2458/529 2300/2457/529 2307/2464/529 +f 3544/2959/213 2708/2958/213 3545/1571/213 +f 3544/2959/213 2319/3264/213 2318/3265/213 2705/2960/213 +f 739/3266/1 2966/3267/1 2967/3268/1 +f 739/3266/1 2967/3268/1 2331/3269/1 +f 2323/2480/1 1117/3270/1 2324/2481/1 +f 2325/3271/530 2358/3272/530 174/295/530 173/3273/530 +f 2329/2486/3 2328/2485/3 183/305/3 182/304/3 +f 176/298/16 2327/2484/16 2326/2483/16 177/299/16 +f 2330/3274/1 1099/1256/1 2323/2480/1 +f 191/3275/531 190/312/531 193/315/531 192/3276/531 +f 2331/3269/1 2968/3277/1 2330/3274/1 +f 2969/3278/97 2345/3279/97 230/3280/97 2970/3281/97 +f 2971/3282/97 208/3283/97 211/3284/97 2969/3278/97 +f 2972/3285/532 306/3286/532 309/3287/532 2973/3288/532 +f 2973/3288/532 302/3289/532 305/3290/532 2321/3291/532 +f 2974/3292/97 212/3293/97 2351/3294/97 2971/3282/97 +f 2970/3281/97 229/3295/97 213/3296/97 2974/3292/97 +f 2321/3291/532 2367/3297/532 324/3298/532 2337/3299/532 +f 2337/3299/532 323/3300/532 2361/3301/532 2972/3285/532 +f 2345/3279/97 2969/3278/97 211/3284/97 +f 208/3283/97 2971/3282/97 2351/3294/97 +f 212/3293/97 2974/3292/97 213/3296/97 +f 229/3295/97 2970/3281/97 230/3280/97 +f 2347/2524/18 219/341/18 218/340/18 2348/2525/18 +f 226/348/3 225/347/3 2350/2527/3 2349/2526/3 +f 2346/2523/97 210/332/97 228/350/97 231/353/97 +f 209/331/97 214/336/97 228/350/97 210/332/97 +f 215/337/97 214/336/97 209/331/97 2352/2529/97 +f 3469/3302/533 3466/3303/443 3484/3304/534 +f 274/400/6 273/399/6 2355/2541/6 2356/2542/6 +f 261/387/33 260/386/33 259/385/33 258/384/33 +f 264/390/33 268/394/33 259/385/33 260/386/33 +f 269/395/33 268/394/33 264/390/33 267/393/33 +f 2354/2540/46 2353/2539/46 255/381/46 254/380/46 +f 276/3305/535 297/3306/535 290/3307/535 282/3308/535 +f 280/2544/535 298/3309/535 301/3310/535 279/3311/535 +f 279/3311/535 301/3310/535 294/3312/536 278/3313/536 +f 282/3308/535 290/3307/535 293/3314/535 281/2543/535 +f 281/2543/535 293/3314/535 298/3309/535 280/2544/535 +f 296/411/535 295/410/535 300/415/535 291/406/535 +f 299/414/535 292/407/535 291/406/535 300/415/535 +f 173/3273/2 174/295/2 170/297/2 +f 302/3289/532 2973/3288/532 309/3287/532 +f 306/3286/532 2972/3285/532 2361/3301/532 +f 323/3300/532 2337/3299/532 324/3298/532 +f 2367/3297/532 2321/3291/532 305/3290/532 +f 316/431/234 2365/2562/234 2364/2561/234 317/432/234 +f 2362/2559/354 319/434/354 318/433/354 2363/2560/354 +f 303/418/532 308/423/532 2366/2563/532 304/419/532 +f 307/422/532 325/440/532 2366/2563/532 308/423/532 +f 322/437/532 325/440/532 307/422/532 2360/2557/532 +f 2975/3315/1 2976/3316/1 471/588/1 470/587/1 +f 329/443/2 1378/1533/2 1377/3317/2 330/3318/2 +f 349/461/1 345/3319/1 346/458/1 +f 334/3320/1 349/461/1 2371/3321/1 +f 333/3322/1 349/461/1 334/3320/1 +f 333/3322/1 345/3319/1 349/461/1 +f 340/452/57 1389/1542/57 1388/1541/537 341/453/537 +f 345/3319/1 333/3322/1 342/3323/1 +f 338/3324/538 1391/3325/538 1390/3326/360 339/3327/360 +f 341/453/537 1388/1541/537 1391/3325/538 338/3324/538 +f 326/3328/213 3550/3329/213 2977/3330/213 +f 326/3328/213 1218/3331/213 1217/3332/213 3550/3329/213 +f 2977/3330/213 3551/465/213 277/403/213 +f 278/3313/536 294/3312/536 297/3306/535 276/3305/535 +f 277/403/213 3551/465/213 278/404/213 +f 3551/465/213 2977/3330/213 3550/3329/213 +f 3551/465/213 352/467/213 278/404/213 +f 1123/1281/213 1122/1280/213 2296/3333/213 1200/3334/213 +f 2373/2588/213 2709/2961/213 2710/2963/213 2379/2586/213 +f 356/3335/2 355/3336/539 361/3337/540 364/3338/2 +f 2978/3339/364 3553/3340/364 359/3341/364 +f 359/3341/364 1406/3342/364 2714/3343/364 357/3344/364 +f 355/3336/541 2378/2585/542 2377/2584/543 361/3337/544 +f 2377/2584/545 2378/2585/546 366/485/213 365/484/213 +f 381/3345/97 380/497/97 2979/3346/97 +f 2979/3346/97 375/492/97 374/3347/97 +f 2979/3346/97 380/497/97 375/492/97 +f 2980/3348/152 377/3349/152 376/493/152 +f 2980/3348/152 379/496/152 378/3350/152 +f 2384/3351/2 414/531/2 417/534/2 2386/3352/2 +f 2387/3353/1 416/533/1 415/532/1 2382/3354/1 +f 389/3355/97 388/505/97 2981/3356/97 +f 2981/3356/97 383/500/97 382/3357/97 +f 2981/3356/97 388/505/97 383/500/97 +f 2982/3358/152 385/3359/152 384/501/152 +f 2982/3358/152 387/504/152 386/3360/152 +f 2391/3361/97 419/536/97 2983/3362/97 +f 2983/3362/97 418/535/97 2388/3363/97 +f 2983/3362/97 419/536/97 418/535/97 +f 2984/3364/152 2389/3365/152 421/538/152 +f 2984/3364/152 420/537/152 2390/3366/152 +f 405/3367/97 404/521/97 2985/3368/97 +f 2985/3368/97 399/516/97 398/3369/97 +f 2985/3368/97 404/521/97 399/516/97 +f 2986/3370/152 401/3371/152 400/517/152 +f 2986/3370/152 403/520/152 402/3372/152 +f 413/3373/97 412/529/97 2987/3374/97 +f 2987/3374/97 407/524/97 406/3375/97 +f 2987/3374/97 412/529/97 407/524/97 +f 2988/3376/152 409/3377/152 408/525/152 +f 2988/3376/152 411/528/152 410/3378/152 +f 376/493/152 379/496/152 2980/3348/152 +f 384/501/152 387/504/152 2982/3358/152 +f 421/538/152 420/537/152 2984/3364/152 +f 400/517/152 403/520/152 2986/3370/152 +f 408/525/152 411/528/152 2988/3376/152 +f 391/508/16 396/513/16 395/512/16 392/509/16 +f 2989/3379/1 2380/3380/1 2381/3381/1 +f 2990/3382/1 2380/3380/1 2989/3379/1 +f 2991/3383/1 2380/3380/1 2990/3382/1 +f 2991/3383/1 475/592/1 2380/3380/1 +f 2992/3384/1 475/592/1 2991/3383/1 +f 2993/3385/1 475/592/1 2992/3384/1 +f 2994/3386/1 475/592/1 2993/3385/1 +f 2995/3387/1 475/592/1 2994/3386/1 +f 2996/3388/1 475/592/1 2995/3387/1 +f 2410/3389/97 466/583/97 2997/3390/97 +f 2997/3390/97 469/586/97 2414/3391/97 +f 2998/3392/152 467/584/152 2409/3393/152 +f 441/3394/97 440/557/97 2999/3395/97 +f 2999/3395/97 435/552/97 434/3396/97 +f 2999/3395/97 440/557/97 435/552/97 +f 437/3397/152 436/553/152 3000/3398/152 +f 3000/3398/152 439/556/152 438/3399/152 +f 445/3400/97 444/561/97 3001/3401/97 +f 3001/3401/97 456/573/97 455/3402/97 +f 3002/3403/152 443/560/152 442/3404/152 +f 448/565/58 447/564/58 453/570/58 452/569/58 +f 456/573/97 3001/3401/97 444/561/97 +f 457/574/152 3002/3403/152 454/3405/152 +f 443/560/152 3002/3403/152 457/574/152 +f 436/553/152 439/556/152 3000/3398/152 +f 469/586/97 2997/3390/97 466/583/97 +f 468/585/152 2998/3392/152 2413/3406/152 +f 467/584/152 2998/3392/152 468/585/152 +f 432/549/58 431/548/58 461/578/58 460/577/58 +f 428/545/58 427/544/58 465/582/58 464/581/58 +f 2968/3277/1 2331/3269/1 2967/3268/1 +f 470/587/1 2996/3388/1 2975/3315/1 +f 475/592/1 2996/3388/1 470/587/1 +f 3003/3407/547 2556/2762/17 3004/3408/17 +f 3005/3409/3 2560/2766/3 2561/2767/173 3006/3410/173 +f 3007/3411/90 2559/2765/90 2560/2766/3 3005/3409/3 +f 3008/3412/91 2558/2764/91 2559/2765/90 3007/3411/90 +f 3009/3413/548 2557/2763/549 2558/2764/91 3008/3412/91 +f 3009/3413/548 740/3414/165 2557/2763/549 +f 544/696/97 565/706/97 673/708/97 +f 544/696/97 555/3415/97 670/3416/97 +f 648/841/248 2483/789/139 621/788/139 622/3417/248 +f 561/3418/67 559/3419/16 693/2732/16 692/715/114 +f 2482/839/140 2479/838/389 619/690/389 620/3420/140 +f 591/735/420 596/3421/420 2444/2737/422 2443/2671/422 +f 2521/3422/550 3316/2656/550 2430/2658/551 2520/3423/552 +f 629/711/113 3019/710/113 663/2718/242 662/759/242 +f 2525/814/148 2527/2709/245 2480/840/245 649/815/148 +f 638/754/132 2455/2720/97 551/3424/97 552/752/97 +f 583/2687/82 582/2669/83 683/861/381 +f 626/766/133 625/2705/97 573/3425/97 574/763/97 +f 596/3421/420 591/735/420 684/718/421 2441/3426/421 +f 593/2698/386 3325/2644/386 2421/687/109 3190/686/108 +f 3316/2656/550 2521/3422/550 2523/3427/553 2429/2657/554 +f 562/2679/63 561/3418/67 692/715/114 +f 2419/2643/555 635/828/555 3193/3428/556 3326/2642/557 +f 559/3419/97 561/3418/97 623/3429/97 622/3417/558 +f 2517/810/146 2519/3430/490 2476/2722/490 647/811/146 +f 594/3431/253 609/713/253 691/3432/253 +f 669/3433/97 586/3434/97 544/696/97 +f 596/3421/5 597/3435/5 682/2735/186 2444/2737/186 +f 595/767/97 590/2662/97 544/696/97 +f 602/2697/495 601/744/495 2438/747/500 2437/2667/500 +f 550/3436/75 707/3437/559 694/751/131 +f 606/3438/255 605/3439/255 703/2731/258 702/3440/258 +f 565/2666/94 610/3441/172 600/2674/560 +f 551/3424/77 549/669/18 606/3438/18 702/3440/561 +f 544/696/97 711/775/97 560/774/97 +f 668/772/97 585/3442/97 544/696/97 +f 674/3443/97 679/3444/97 544/696/97 +f 575/700/97 615/3445/97 595/767/97 +f 545/782/80 547/719/80 696/721/118 +f 2439/852/562 565/2666/94 2437/2667/374 +f 2445/2736/281 580/3446/83 2443/2671/376 +f 2456/757/97 2503/756/97 651/2700/97 650/2724/97 +f 2474/3447/486 2515/3448/486 657/2713/244 656/2727/244 +f 680/859/187 614/2701/187 681/860/187 +f 612/2663/250 611/2665/250 675/856/250 +f 671/2733/252 608/3449/252 672/742/252 +f 2509/827/152 667/820/152 3193/3428/152 635/828/152 +f 604/724/491 603/3450/491 709/851/498 708/725/498 +f 603/3450/491 604/724/491 694/751/492 706/3451/492 +f 595/3452/129 615/780/129 686/784/129 +f 605/3439/255 606/3438/255 695/783/256 700/3453/256 +f 610/3441/249 678/2734/249 677/2675/249 +f 2547/2753/93 3003/3407/547 2548/2754/172 +f 2556/2762/17 3003/3407/547 2547/2753/93 +f 2557/2763/549 740/3414/165 2556/2762/17 +f 2561/2767/173 2563/2769/134 3024/3454/134 3006/3410/173 +f 740/3414/165 3004/3408/17 2556/2762/17 +f 738/3455/165 740/3414/165 3009/3413/548 +f 837/993/484 777/931/484 780/934/485 832/988/485 +f 837/993/484 836/992/483 781/935/483 777/931/484 +f 2585/2792/97 791/947/97 793/945/97 2586/930/97 +f 2585/2792/97 2588/2793/97 797/949/97 791/947/97 +f 778/932/391 3025/3456/391 798/953/178 779/933/178 +f 778/932/391 1919/936/392 2867/3457/392 3025/3456/391 +f 3026/3458/255 826/981/256 825/980/256 2603/2810/255 +f 3027/3459/493 2594/2801/494 862/1018/494 861/1017/493 +f 3028/3460/5 814/969/186 813/968/186 2601/2808/5 +f 2601/2808/5 816/971/249 855/1011/249 3028/3460/5 +f 2603/2810/255 822/977/258 853/1009/258 3026/3458/255 +f 861/1017/493 860/1016/497 2598/2805/497 3027/3459/493 +f 3030/3461/188 2605/2811/188 873/1028/188 872/3462/188 +f 875/3463/190 874/1029/190 2606/2812/190 3031/3464/190 +f 871/3465/189 870/1025/189 877/1032/189 876/3466/189 +f 887/1042/5 886/1041/5 905/1060/5 3032/3467/5 +f 3032/3467/5 905/1060/5 904/1059/5 +f 3032/3467/5 904/1059/5 881/1036/5 880/1035/5 +f 883/1038/16 882/1037/16 907/1062/16 3033/3468/16 +f 3034/3469/5 908/1063/5 889/1044/5 888/1043/5 +f 895/1050/5 894/1049/5 909/1064/5 3034/3469/5 +f 891/1046/16 890/1045/16 911/1066/16 3035/3470/16 +f 3036/3471/5 903/1058/5 2609/2815/5 +f 3036/3471/5 2609/2815/5 897/1052/5 896/1051/5 +f 2608/2814/5 900/1055/5 903/1058/5 3036/3471/5 +f 899/1054/16 898/1053/16 2610/2816/16 3037/3472/16 +f 3033/3473/16 906/3474/16 885/3475/16 884/3476/16 +f 3033/3468/16 907/1062/16 906/1061/16 +f 909/1064/5 908/1063/5 3034/3469/5 +f 3035/3470/16 910/1065/16 893/1048/16 892/1047/16 +f 911/1066/16 910/1065/16 3035/3470/16 +f 3037/3472/16 902/1057/16 901/1056/16 2607/2813/16 +f 2610/2816/16 902/1057/16 3037/3472/16 +f 917/1072/563 916/1071/563 2611/2817/563 2612/2818/563 +f 2614/2820/564 2613/2819/564 923/1078/564 922/1077/564 +f 949/1104/4 948/1103/4 2616/2822/4 2615/2821/4 +f 2617/2823/202 927/1082/202 926/1081/202 2618/2824/202 +f 933/1088/3 942/1097/3 941/1096/3 934/1089/3 +f 937/1092/3 942/1097/3 933/1088/3 938/1093/3 +f 945/1100/3 934/1089/3 941/1096/3 946/1101/3 +f 952/1107/202 2620/2826/202 2619/2825/202 953/1108/202 +f 2622/2828/220 2621/2827/220 955/1110/220 954/1109/220 +f 3038/3477/152 1149/3478/152 2641/2850/152 2640/2849/152 +f 3039/3479/152 1032/1189/152 2623/3480/152 +f 2623/3480/152 1032/1189/152 1148/2829/152 +f 1148/2829/152 1031/1188/152 2641/2850/152 1149/3478/152 +f 965/1120/97 1020/1175/97 1023/1178/97 +f 965/1120/97 1011/1166/97 1020/1175/97 +f 964/1119/97 1011/1166/97 965/1120/97 +f 964/1119/97 3040/3481/97 1011/1166/97 +f 1042/1199/97 3041/3482/97 3042/3483/97 +f 971/1126/431 2625/2834/431 2624/2833/431 968/1123/431 +f 992/1147/152 1057/1214/152 1056/1213/152 993/1148/152 +f 996/1151/152 1072/1229/152 2652/2861/152 997/1152/152 +f 2631/2840/152 1072/1229/152 996/1151/152 +f 2631/2840/152 2651/2860/152 1073/1230/152 +f 997/1152/152 2652/2861/152 1057/1214/152 992/1147/152 +f 2630/2839/97 1087/1244/97 2638/2847/97 +f 2630/2839/97 1088/1245/97 1087/1244/97 +f 999/1154/97 1088/1245/97 2630/2839/97 +f 995/1150/97 994/1149/97 1067/1224/97 +f 2644/2853/97 1067/1224/97 994/1149/97 +f 998/1153/97 1066/1223/97 1088/1245/97 999/1154/97 +f 1000/1155/152 1064/1221/152 1063/1220/152 1001/1156/152 +f 1004/1159/152 1069/1226/152 1068/1225/152 1005/1160/152 +f 2633/2842/152 1069/1226/152 1004/1159/152 +f 2633/2842/152 1095/1252/152 1094/1251/152 +f 1005/1160/152 1068/1225/152 1064/1221/152 1000/1155/152 +f 2632/2841/97 1034/1191/97 2637/2846/97 +f 2632/2841/97 1035/1192/97 1034/1191/97 +f 1007/1162/97 1035/1192/97 2632/2841/97 +f 1003/1158/97 1002/1157/97 1027/1184/97 +f 1028/1185/97 1027/1184/97 1002/1157/97 +f 1006/1161/97 2636/2845/97 1035/1192/97 1007/1162/97 +f 1008/1163/97 3043/3484/97 3044/3485/97 1041/1198/97 +f 1008/1163/97 3040/3481/97 3043/3484/97 +f 1041/1198/97 3041/3482/97 1042/1199/97 +f 1052/1209/1 1051/1208/1 1083/1240/1 2646/2855/1 +f 1067/1224/97 1066/1223/97 998/1153/97 995/1150/97 +f 1027/1184/97 2636/2845/97 1006/1161/97 1003/1158/97 +f 1011/1166/97 3040/3481/97 1008/1163/97 +f 1032/1189/152 3039/3479/152 1036/1193/152 +f 1031/1188/152 1148/2829/152 1032/1189/152 +f 1037/1194/152 1036/1193/152 3039/3479/152 +f 1044/1201/204 1043/1200/204 3045/3486/204 2647/2856/204 +f 1044/1201/431 1077/1234/431 2634/2843/431 1045/1202/431 +f 1017/1172/207 1083/1240/207 1085/1242/207 2648/2857/207 +f 1071/1228/203 1013/1168/203 1012/1167/203 2635/2844/203 +f 1072/1229/152 2631/2840/152 1073/1230/152 +f 1069/1226/152 2633/2842/152 1094/1251/152 +f 2324/2481/1 1105/3487/1 1099/1256/1 +f 3553/3340/364 3555/3488/364 1406/3342/364 359/3341/364 +f 2656/2865/1 2330/3274/1 2968/3277/1 +f 2656/2865/1 1100/1257/1 2330/3274/1 +f 3041/3482/97 1041/1198/97 3044/3485/97 +f 2655/2864/565 3046/3489/566 3047/3490/567 1097/1254/568 +f 1097/1254/568 3047/3490/567 3048/3491/569 1098/1255/1 +f 2654/2863/570 3049/3492/571 3046/3489/566 2655/2864/565 +f 3050/3493/572 3051/3494/573 3052/3495/574 3053/3496/575 +f 3050/3493/572 3054/3497/576 3055/3498/577 3051/3494/573 +f 3056/3499/578 3057/3500/579 3046/3489/566 3049/3492/571 +f 3057/3500/579 3056/3499/578 3058/3501/580 3059/3502/581 +f 3060/3503/582 3061/3504/583 3048/3491/569 3047/3490/567 +f 3053/3496/575 3058/3501/580 3056/3499/578 3050/3493/572 +f 3053/3496/575 3052/3495/574 3062/3505/584 3063/3506/585 +f 3063/3506/585 3062/3505/584 3064/3507/364 3065/3508/586 +f 3066/3509/587 3067/3510/588 3059/3502/581 3058/3501/580 +f 3058/3501/580 3053/3496/575 3063/3506/585 3066/3509/587 +f 3059/3502/581 3068/3511/589 3060/3503/582 3057/3500/579 +f 3067/3510/588 3066/3509/587 3069/3512/590 3070/3513/591 +f 3067/3510/588 3071/3514/592 3068/3511/589 3059/3502/581 +f 3071/3514/592 3072/3515/593 3073/3516/594 3068/3511/589 +f 3068/3511/589 3061/3504/583 3060/3503/582 +f 1103/1261/595 3055/3498/577 3054/3497/576 1101/1258/596 +f 1101/1258/596 3054/3497/576 3049/3492/571 2654/2863/570 +f 1099/1256/1 2330/3274/1 1100/1257/1 +f 1099/1256/1 1110/3517/1 2323/2480/1 +f 1118/3518/1 2323/2480/1 1109/3519/1 +f 1117/3270/1 2323/2480/1 1118/3518/1 +f 1105/3487/1 2324/2481/1 1113/3520/1 +f 1104/3521/1 1099/1256/1 1105/3487/1 +f 1114/3522/1 2324/2481/1 1117/3270/1 +f 1113/3520/1 2324/2481/1 1114/3522/1 +f 1110/3517/1 1099/1256/1 1104/3521/1 +f 1109/3519/1 2323/2480/1 1110/3517/1 +f 1108/1266/1 1106/1264/1 1112/1270/1 1119/1277/1 +f 1107/1265/1 1106/1264/1 1108/1266/1 1111/1269/1 +f 1116/1274/1 1119/1277/1 1112/1270/1 1115/1273/1 +f 1135/3523/2 1134/1291/2 1129/1286/2 1128/3524/2 +f 1143/3525/2 1142/1297/2 1137/1292/2 1136/3526/2 +f 1146/1300/4 1145/3527/4 3074/3528/4 +f 3075/3529/1 1144/3530/1 1147/1301/1 +f 3065/3508/586 3069/3512/590 3066/3509/587 3063/3506/585 +f 3070/3513/591 3076/3531/597 3071/3514/592 3067/3510/588 +f 3061/3504/583 3068/3511/589 3073/3516/594 +f 3049/3492/571 3054/3497/576 3050/3493/572 3056/3499/578 +f 3047/3490/567 3046/3489/566 3057/3500/579 3060/3503/582 +f 3077/3532/598 3076/3531/597 3070/3513/591 +f 3076/3531/597 3078/3533/599 3071/3514/592 +f 3072/3515/593 3071/3514/592 3078/3533/599 +f 3079/3534/152 1172/1325/152 1185/1338/152 +f 3079/3534/152 1185/1338/152 1188/1341/152 2663/2879/152 +f 2666/3535/152 1169/1322/152 1172/1325/152 3079/3534/152 +f 2664/2880/97 1187/1340/97 1186/1339/97 3080/3536/97 +f 3081/3537/152 1189/1342/152 1192/1345/152 2667/2883/152 +f 2670/3538/152 1173/1326/152 1176/1329/152 3081/3537/152 +f 2668/2884/97 1191/1344/97 1190/1343/97 3082/3539/97 +f 3083/3540/152 2674/2892/152 1193/1346/152 +f 3083/3540/152 1193/1346/152 1196/1349/152 2671/2887/152 +f 1168/3541/152 1167/1320/152 2674/2892/152 3083/3540/152 +f 2672/2888/97 1195/1348/97 1194/1347/97 3084/3542/97 +f 1155/1308/4 1154/1307/4 1179/1332/4 1178/1331/4 +f 1163/1316/4 1162/1315/4 1181/1334/4 1184/1337/4 +f 1177/1330/3 1180/1333/3 1151/1304/3 1150/1303/3 +f 1183/1336/3 1182/1335/3 1159/1312/3 1158/1311/3 +f 3080/3536/97 1171/1324/97 1170/1323/97 2665/3543/97 +f 1186/1339/97 1171/1324/97 3080/3536/97 +f 1176/1329/152 1189/1342/152 3081/3537/152 +f 3082/3539/97 1175/1328/97 1174/1327/97 2669/3544/97 +f 3082/3539/97 1190/1343/97 1175/1328/97 +f 3084/3542/97 2673/2891/97 1166/1319/97 1165/3545/97 +f 3084/3542/97 1194/1347/97 2673/2891/97 +f 1200/3334/213 1199/3546/213 2676/3547/213 1123/1281/213 +f 1200/3334/213 2296/3333/213 2709/2961/213 2373/2588/213 +f 1209/1362/214 1208/1361/214 1207/1360/214 1210/1363/214 +f 1211/1364/600 1206/1359/600 1205/1358/600 1212/1365/600 +f 1204/1357/4 1203/1356/4 1214/1367/4 1213/1366/4 +f 3085/3548/97 3086/3549/601 3087/3550/97 3088/3551/97 +f 3085/3548/97 2764/3552/97 2837/3553/97 +f 2678/3554/97 2680/2897/97 1234/1384/97 2677/3555/97 +f 2677/3555/97 1233/1383/97 2682/2899/97 1221/3556/97 +f 1223/3557/602 1348/2939/602 2699/3558/602 2679/3559/602 +f 1222/3560/97 1228/1378/97 1231/1381/97 2678/3554/97 +f 1221/3556/97 1224/1374/97 1227/1377/97 1222/3560/97 +f 2678/3561/2 3450/1500/603 2698/3562/2 +f 1224/1374/97 1221/3556/97 2682/2899/97 +f 1228/1378/97 1222/3560/97 1227/1377/97 +f 2680/2897/97 2678/3554/97 1231/1381/97 +f 1233/1383/97 2677/3555/97 1234/1384/97 +f 1225/1375/97 1235/1385/97 2681/2898/97 1226/1376/97 +f 1229/1379/97 1226/1376/97 2681/2898/97 1230/1380/97 +f 1232/1382/97 1235/1385/97 1225/1375/97 2683/2900/97 +f 1238/2905/604 1237/2902/604 1242/1388/604 1241/1387/604 +f 3086/3549/605 1245/1394/606 3523/1393/606 1244/1391/607 +f 1244/1391/608 3090/3563/97 3086/3549/601 +f 1251/1401/97 3088/3551/97 3087/3550/97 1248/1398/97 +f 3091/3564/97 2763/3565/97 3092/3566/97 +f 1247/1397/97 3090/3563/97 1244/1391/608 +f 3093/3567/97 1264/3568/97 1267/3569/97 3094/3570/97 +f 3095/3571/97 1260/3572/97 1263/3573/97 3093/3567/97 +f 3094/3570/97 1268/3574/97 1271/3575/97 3096/3576/97 +f 3096/3576/97 1272/3577/97 1275/3578/97 3095/3571/97 +f 3087/3550/97 3086/3549/601 3090/3563/97 +f 3092/3566/97 3085/3548/97 3088/3551/97 +f 3092/3566/97 2764/3552/97 3085/3548/97 +f 2687/2910/1 2686/2909/1 1276/1422/1 1279/1425/1 +f 1260/3572/97 3095/3571/97 1275/3578/97 +f 1264/3568/97 3093/3567/97 1263/3573/97 +f 1268/3574/97 3094/3570/97 1267/3569/97 +f 1272/3577/97 3096/3576/97 1271/3575/97 +f 1261/1407/97 1270/1416/97 1269/1415/97 1262/1408/97 +f 1265/1411/97 1262/1408/97 1269/1415/97 1266/1412/97 +f 1273/1419/97 1270/1416/97 1261/1407/97 1274/1420/97 +f 2684/2907/18 1257/1403/18 1256/1402/18 2685/2908/18 +f 3511/3579/339 3507/3580/609 3512/3581/41 +f 1311/1465/33 1320/1474/33 1315/1469/33 1319/1473/33 +f 1316/1470/33 1319/1473/33 1315/1469/33 1314/1468/33 +f 1321/1475/33 1320/1474/33 1311/1465/33 1310/1464/33 +f 1301/1455/33 2690/2919/33 1324/1478/33 1302/1456/33 +f 2689/2918/33 1302/1456/33 1324/1478/33 1327/1481/33 +f 1305/1459/33 2690/2919/33 1301/1455/33 1306/1460/33 +f 1342/3582/4 1341/1492/4 2695/2931/4 2694/3583/4 +f 2697/3584/610 2696/2934/610 1340/1491/610 1339/3585/610 +f 1365/1517/1 1368/1520/1 2701/2941/1 2700/2940/1 +f 2702/2942/52 1372/1524/52 1371/1523/52 2703/2943/52 +f 1350/1502/532 1359/1511/532 1358/1510/532 1351/1503/532 +f 1354/1506/532 1351/1503/532 1358/1510/532 1355/1507/532 +f 1362/1514/532 1359/1511/532 1350/1502/532 1363/1515/532 +f 3097/3586/4 3098/3587/4 1525/1677/4 +f 2707/3588/4 348/460/4 1385/3589/4 +f 348/460/4 344/3590/4 1386/3591/4 +f 1385/3589/4 348/460/4 1386/3591/4 +f 343/3592/4 1386/3591/4 344/3590/4 +f 347/459/4 344/3590/4 348/460/4 +f 1122/1280/213 2964/3593/213 2297/3594/213 2296/3333/213 +f 2712/3595/2 1415/3596/540 1410/3597/539 2713/3598/2 +f 1406/3342/364 3555/3488/364 1403/3599/364 +f 1409/1560/364 3099/3600/364 3569/3601/364 1407/477/364 +f 1415/3596/611 1414/1566/612 1411/1563/613 1410/3597/614 +f 1413/1565/213 1412/1564/213 1411/1563/615 1414/1566/616 +f 2716/3602/4 2717/3603/4 3100/3604/4 +f 2717/3603/4 1526/1678/4 3101/3605/4 +f 1428/3606/97 1427/1579/97 3102/3607/97 +f 3102/3607/97 1422/1574/97 1421/3608/97 +f 1424/3609/152 1423/1575/152 3103/3610/152 +f 3103/3610/152 1423/1575/152 1426/1578/152 +f 2721/3611/97 1473/1625/97 3104/3612/97 +f 3104/3612/97 1472/1624/97 2718/3613/97 +f 2719/3614/152 1471/1623/152 3105/3615/152 +f 3105/3615/152 1471/1623/152 1470/1622/152 +f 1449/3616/4 1448/1600/4 1451/1603/4 1450/3617/4 +f 1474/3618/2 1453/1605/2 1446/1598/2 1445/3619/2 +f 1469/3620/97 1468/1620/97 3106/3621/97 +f 3106/3621/97 1463/1615/97 1462/3622/97 +f 1465/3623/152 1464/1616/152 3107/3624/152 +f 3107/3624/152 1464/1616/152 1467/1619/152 +f 1426/1578/152 1425/3625/152 3103/3610/152 +f 1470/1622/152 2720/3626/152 3105/3615/152 +f 1434/1586/18 1431/1583/18 1430/1582/18 1435/1587/18 +f 1442/1594/18 1439/1591/18 1438/1590/18 1443/1595/18 +f 1459/1611/18 1456/1608/18 1455/1607/18 1460/1612/18 +f 1467/1619/152 1466/3627/152 3107/3624/152 +f 1427/1579/97 1422/1574/97 3102/3607/97 +f 1473/1625/97 1472/1624/97 3104/3612/97 +f 1468/1620/97 1463/1615/97 3106/3621/97 +f 3100/3604/4 2717/3603/4 3108/3628/4 +f 3108/3628/4 2717/3603/4 3101/3605/4 +f 3101/3605/4 1526/1678/4 3109/3629/4 +f 3109/3629/4 1526/1678/4 3110/3630/4 +f 3110/3630/4 1526/1678/4 3111/3631/4 +f 3111/3631/4 1526/1678/4 3112/3632/4 +f 3112/3632/4 1526/1678/4 3098/3587/4 +f 3113/3633/97 1480/1632/97 1479/3634/97 +f 1482/3635/152 1481/1633/152 3114/3636/152 +f 3115/3637/97 1484/1636/97 1483/3638/97 +f 1486/3639/152 1485/1637/152 3116/3640/152 +f 3117/3641/97 1513/1665/97 2742/3642/97 +f 2743/3643/152 1516/1668/152 3118/3644/152 +f 2747/3645/152 3118/3644/152 1515/1667/152 +f 2746/3646/97 1514/1666/97 3117/3641/97 +f 1520/3647/152 3116/3640/152 1517/1669/152 +f 1519/3648/97 1518/1670/97 3115/3637/97 +f 1524/3649/152 3114/3636/152 1521/1673/152 +f 1523/3650/97 1522/1674/97 3113/3633/97 +f 1510/1662/237 1509/1661/237 1503/1655/237 1502/1654/237 +f 1513/1665/97 3117/3641/97 1514/1666/97 +f 1515/1667/152 3118/3644/152 1516/1668/152 +f 1498/1650/237 1495/1647/237 1494/1646/237 1499/1651/237 +f 1508/1660/237 1506/1658/237 1491/1643/237 1488/1640/237 +f 1484/1636/97 3115/3637/97 1518/1670/97 +f 1517/1669/152 3116/3640/152 1485/1637/152 +f 1480/1632/97 3113/3633/97 1522/1674/97 +f 1521/1673/152 3114/3636/152 1481/1633/152 +f 1525/1677/4 3098/3587/4 1526/1678/4 +f 1525/1677/4 1530/1682/4 3119/3651/4 3097/3586/4 +f 1649/1812/152 3120/3652/152 2782/3071/152 1767/1808/152 +f 1649/1812/152 1608/1763/152 1607/1762/152 3120/3652/152 +f 1689/1868/97 1688/1867/97 1648/1811/97 1647/1810/97 +f 3121/3653/420 2805/3094/421 1757/1939/421 1756/1938/420 +f 3122/3654/286 1712/1894/287 1711/1893/287 2820/3109/286 +f 2820/3109/286 1714/1896/288 1748/1930/288 3122/3654/286 +f 3123/3655/3 2803/3092/251 1751/1933/251 1747/1929/3 +f 1747/1929/3 1746/1928/254 2821/3110/254 3123/3655/3 +f 1756/1938/420 1755/1937/422 2816/3105/422 3121/3653/420 +f 3124/3656/4 1721/1903/163 1720/1902/163 2815/3104/4 +f 2815/3104/4 1717/1899/187 1759/1941/187 3124/3656/4 +f 3125/3657/18 2809/3098/253 1760/1942/253 1742/1924/18 +f 1742/1924/18 1741/1923/184 2822/3111/184 3125/3657/18 +f 3126/3658/2 1727/1909/164 1726/1908/164 2813/3102/2 +f 2813/3102/2 1723/1905/168 1762/1944/168 3126/3658/2 +f 3127/3659/16 1733/1915/250 1732/1914/250 2811/3100/16 +f 2811/3100/16 1729/1911/69 1763/1945/69 3127/3659/16 +f 3128/3660/1 1709/1891/129 1708/1890/129 2818/3107/1 +f 2818/3107/1 1735/1917/185 1764/1946/185 3128/3660/1 +f 1768/1807/97 1684/1863/97 1689/1868/97 1647/1810/97 +f 2828/3118/617 2749/3032/618 1831/1989/618 1830/1988/619 +f 2749/3032/618 2761/3044/620 1833/1991/620 1831/1989/618 +f 2761/3044/620 2759/3042/415 1835/1993/415 1833/1991/620 +f 2759/3042/415 2757/3040/414 1837/1995/414 1835/1993/415 +f 2757/3040/414 2753/3036/413 1839/1997/413 1837/1995/414 +f 2753/3036/413 2752/3035/412 1841/1999/412 1839/1997/413 +f 2752/3035/412 2756/3039/621 3129/3661/411 1843/2001/411 1841/1999/412 +f 1830/1988/619 2836/3126/622 2828/3118/617 +f 1843/2001/411 3129/3661/411 1845/2003/623 +f 3403/1987/622 2836/3126/622 1830/1988/619 +f 1848/3662/97 2763/3565/97 3091/3564/97 +f 2764/3552/97 3092/3566/97 2763/3565/97 +f 3130/3663/145 1964/2136/260 1963/2135/260 2854/3145/145 +f 3131/3664/393 1939/2111/394 1938/2110/394 2879/3170/393 +f 3132/3665/491 820/975/624 819/974/624 2877/3168/491 +f 3133/3666/166 2874/3165/625 1959/2131/625 1958/2130/166 +f 3134/3667/495 1945/2117/496 1944/2116/496 2881/3172/495 +f 3135/3668/17 2872/3163/165 1953/2125/165 1951/2123/17 +f 1951/2123/17 1950/2122/252 2875/3166/252 3135/3668/17 +f 1958/2130/166 1957/2129/626 2599/2806/626 3133/3666/166 +f 2877/3168/491 1935/2107/627 1947/2119/627 3132/3665/491 +f 2879/3170/393 1941/2113/499 1946/2118/499 3131/3664/393 +f 2881/3172/495 1932/2104/500 1952/2124/500 3134/3667/495 +f 2856/1021/146 2604/3669/146 3130/3663/145 2854/3145/145 +f 2884/3670/503 1985/2149/503 1984/2148/503 2885/3671/503 +f 1981/2145/291 1978/2142/291 1977/2141/291 1982/2146/291 +f 1995/2159/17 1994/2158/17 2003/2167/17 3136/3672/17 +f 3136/3672/17 2002/2166/17 1989/2153/17 1988/2152/17 +f 1991/2155/18 1990/2154/18 2001/2165/18 3137/3673/18 +f 3138/3674/17 2004/2168/17 2007/2171/17 2887/3179/17 +f 3138/3674/17 2009/2173/17 2004/2168/17 +f 2890/3182/17 2010/2174/17 2009/2173/17 3138/3674/17 +f 2888/3180/18 2006/2170/18 2005/2169/18 3139/3675/18 +f 2892/3184/5 2015/2179/5 2014/2178/5 2894/3186/5 +f 2003/2167/17 2002/2166/17 3136/3672/17 +f 2001/2165/18 2000/2164/18 3137/3673/18 +f 3137/3673/18 2000/2164/18 1993/2157/18 1992/2156/18 +f 3139/3675/18 2005/2169/18 2008/2172/18 +f 3139/3675/18 2008/2172/18 2011/2175/18 2889/3181/18 +f 2896/3188/294 2013/2177/294 2012/2176/294 2893/3185/294 +f 2900/3192/628 2899/3191/628 2027/2191/628 2026/2190/628 +f 2020/2184/629 2023/2187/629 2898/3190/629 2897/3189/629 +f 2054/2218/4 2053/2217/4 2904/3196/4 2903/3195/4 +f 2036/2200/202 2051/2215/202 2050/2214/202 2037/2201/202 +f 2040/2204/197 2039/2203/197 2038/2202/197 2041/2205/197 +f 2044/2208/32 2043/2207/32 2042/2206/32 2045/2209/32 +f 2046/2210/220 2049/2213/220 2048/2212/220 2047/2211/220 +f 2902/3194/202 2901/3193/202 2035/2199/202 2034/2198/202 +f 2061/2225/2 2907/3199/2 2064/2228/2 2062/2226/2 +f 2905/3197/2 2062/2226/2 2064/2228/2 2067/2231/2 +f 2057/2221/2 2907/3199/2 2061/2225/2 2058/2222/2 +f 3140/2921/152 2935/3225/152 2934/1489/152 +f 2240/3676/152 2163/2326/152 3140/2921/152 +f 2909/2945/152 2160/2323/152 2164/2327/152 2239/1530/152 +f 2239/1530/152 2163/2326/152 2240/3676/152 +f 2910/3201/97 2913/3204/97 2916/3207/97 +f 1394/1547/97 2144/2307/97 1395/1548/97 +f 2916/3207/97 2913/3204/97 2132/2295/97 +f 2917/3208/97 2145/2308/97 1394/1547/97 +f 2075/2239/152 2191/2354/152 2190/2353/152 2918/3209/152 +f 2068/2232/152 2189/2352/152 2069/2233/152 +f 2074/2238/152 2192/2355/152 2191/2354/152 2075/2239/152 +f 2918/3209/152 2190/2353/152 2189/2352/152 2068/2232/152 +f 2073/2237/97 2136/2299/97 2920/3211/97 +f 2070/2234/97 2931/3222/97 2071/2235/97 +f 2071/2235/97 2931/3222/97 2137/2300/97 2919/3210/97 +f 2072/2236/97 2919/3210/97 2137/2300/97 2136/2299/97 +f 2076/2240/97 2079/2243/97 2070/2234/97 +f 2087/2251/152 2186/2349/152 2937/3227/152 2082/2246/152 +f 2083/2247/152 2184/2347/152 2921/3212/152 +f 2086/2250/152 2187/2350/152 2186/2349/152 2087/2251/152 +f 2082/2246/152 2937/3227/152 2184/2347/152 2083/2247/152 +f 2099/2263/4 2094/2258/4 2093/2257/4 2096/2260/4 +f 2095/2259/299 2924/3215/299 3141/3677/299 2092/2256/299 +f 2108/2272/152 2176/2339/152 2175/2338/152 2109/2273/152 +f 2112/2276/152 2195/2358/152 2113/2277/152 +f 2926/3217/152 2942/3232/152 2176/2339/152 2108/2272/152 +f 2109/2273/152 2175/2338/152 2195/2358/152 2112/2276/152 +f 2925/3216/97 2117/2281/97 2116/2280/97 +f 2114/2278/97 2156/2319/97 2115/2279/97 +f 2115/2279/97 2156/2319/97 2159/2322/97 2110/2274/97 +f 2111/2275/97 2110/2274/97 2159/2322/97 2117/2281/97 +f 3142/3678/97 2932/3223/97 2114/2278/97 +f 2127/2291/152 2178/2341/152 2177/2340/152 2122/2286/152 +f 2123/2287/152 2939/3229/152 2927/3218/152 +f 2126/2290/152 2943/3233/152 2178/2341/152 2127/2291/152 +f 2122/2286/152 2177/2340/152 2939/3229/152 2123/2287/152 +f 2133/2296/97 2915/3206/97 2144/2307/97 +f 2132/2295/97 2949/3239/97 2951/3241/97 2133/2296/97 +f 2136/2299/97 2073/2237/97 2072/2236/97 +f 2101/2265/300 2155/2318/300 2154/2317/300 2102/2266/300 +f 2117/2281/97 2925/3216/97 2111/2275/97 +f 2932/3223/97 2156/2319/97 2114/2278/97 +f 2079/2243/97 2931/3222/97 2070/2234/97 +f 2145/2308/97 2144/2307/97 1394/1547/97 +f 2144/2307/97 2915/3206/97 1395/1548/97 +f 2148/2311/4 2151/2314/4 2172/2335/4 2930/3221/4 +f 2152/2315/305 2107/2271/305 2106/2270/305 2153/2316/305 +f 2933/3224/4 2165/2328/4 2142/2305/4 2141/2304/4 +f 2161/2324/152 2160/2323/152 2909/2945/152 3143/3679/152 +f 2935/3225/152 3140/2921/152 2163/2326/152 +f 2163/2326/152 2239/1530/152 2164/2327/152 +f 2183/2346/152 2921/3212/152 2184/2347/152 +f 2183/2346/152 2936/3226/152 2921/3212/152 +f 2171/2334/310 2940/3230/310 2151/2314/310 2150/2313/310 +f 2168/2331/152 2069/2233/152 2189/2352/152 +f 2168/2331/152 2167/2330/152 2069/2233/152 +f 2194/2357/152 2113/2277/152 2195/2358/152 +f 2194/2357/152 2938/3228/152 2113/2277/152 +f 2182/2345/152 2927/3218/152 2939/3229/152 +f 2182/2345/152 2181/2344/152 2927/3218/152 +f 3144/3680/630 2201/2365/631 2200/2364/632 +f 3144/3680/630 3145/3681/633 2201/2365/631 +f 3144/3680/630 3146/3682/634 3147/3683/635 +f 2951/3241/97 2915/3206/97 2133/2296/97 +f 2949/3239/97 2132/2295/97 2913/3204/97 +f 2207/2371/4 2210/2374/4 2204/2368/4 2954/3244/4 +f 2953/3243/4 2205/2369/4 2211/2375/4 2214/2378/4 +f 2211/2375/4 2205/2369/4 2204/2368/4 2210/2374/4 +f 2218/3684/2 2217/2381/2 2220/2382/2 2219/3685/2 +f 2226/3686/2 2225/2387/2 2228/2388/2 2227/3687/2 +f 2236/2394/213 2233/2393/213 2232/3688/213 2237/3689/213 +f 2704/1531/4 2239/1530/4 2956/3690/4 +f 3145/3681/633 3144/3680/630 3147/3683/635 +f 3150/3691/636 2914/3692/636 3151/3693/637 +f 3151/3693/637 2914/3692/636 2957/3694/637 +f 3146/3682/634 3144/3680/630 3152/3695/638 +f 3152/3695/638 3144/3680/630 2914/3692/636 3150/3691/636 +f 3565/2404/152 2247/2403/152 2279/2436/152 3566/3696/152 +f 3566/3696/152 2278/2435/152 2242/2398/152 2241/3697/152 +f 3566/3696/152 2279/2436/152 2278/2435/152 +f 2244/3698/97 2243/2399/97 2277/2434/97 3153/3699/97 +f 2255/2412/152 2254/2411/152 2281/2438/152 3154/3700/152 +f 3154/3700/152 2280/2437/152 2249/2406/152 2248/3701/152 +f 3154/3700/152 2281/2438/152 2280/2437/152 +f 2251/3702/97 2250/2407/97 2283/2440/97 3155/3703/97 +f 2263/2420/152 2262/2419/152 2285/2442/152 3156/3704/152 +f 3156/3704/152 2284/2441/152 2257/2414/152 2256/3705/152 +f 2259/2416/97 2258/2415/97 2287/2444/97 3157/3706/97 +f 2277/2434/97 2276/2433/97 3153/3699/97 +f 3153/3699/97 2276/2433/97 2246/2402/97 2245/2401/97 +f 3155/3703/97 2283/2440/97 2282/2439/97 +f 3155/3703/97 2282/2439/97 2253/2410/97 2252/2409/97 +f 2285/2442/152 2284/2441/152 3156/3704/152 +f 3157/3706/97 2287/2444/97 2286/2443/97 +f 3157/3706/97 2286/2443/97 2261/2418/97 2260/2417/97 +f 2294/2451/17 2963/3260/17 2962/3259/17 2295/2452/17 +f 2288/2445/1 2291/2448/1 2270/2427/1 2269/2426/1 +f 2274/2431/3 2273/2430/3 2290/2447/3 2289/2446/3 +f 2313/2470/1 2310/2467/1 2309/2466/1 2314/2471/1 +f 2305/2462/1 2302/2459/1 2301/2458/1 2306/2463/1 +f 3547/3707/3 2316/2473/3 2319/2476/3 3544/3708/3 +f 2320/3709/1 492/3710/1 737/3711/1 +f 169/3712/97 176/298/97 179/301/97 170/297/97 +f 171/3713/97 185/307/97 2327/2484/97 169/3712/97 +f 170/297/97 2329/2486/97 182/304/97 172/3714/97 +f 172/3714/97 181/303/97 186/308/97 171/3713/97 +f 181/303/97 172/3714/97 182/304/97 +f 2329/2486/97 170/297/97 179/301/97 +f 176/298/97 169/3712/97 2327/2484/97 +f 185/307/97 171/3713/97 186/308/97 +f 180/302/97 183/305/97 184/306/97 187/309/97 +f 2328/2485/97 2326/2483/97 184/306/97 183/305/97 +f 177/299/97 2326/2483/97 2328/2485/97 178/300/97 +f 3528/3715/639 3521/3716/640 3158/3717/641 +f 3430/3718/642 3158/3719/643 3159/3720/2 +f 3160/3721/33 248/3722/33 251/3723/33 3161/3724/33 +f 3162/3725/33 274/3726/33 2356/3727/33 3160/3721/33 +f 3163/3728/33 3487/3729/33 3460/3730/33 207/3731/33 +f 2969/3278/33 265/3732/33 263/3733/33 2971/3282/33 +f 2971/3282/33 262/3734/33 257/3735/33 3163/3728/33 +f 2974/3292/532 2364/3736/532 311/3737/532 2970/3281/532 +f 2970/3281/532 310/3738/532 2363/3739/532 2336/3740/532 +f 3164/3741/33 2353/3742/33 275/3743/33 3162/3725/33 +f 3165/3744/33 270/3745/33 266/3746/33 2969/3278/33 +f 3487/3747/339 3462/354/38 3460/357/41 +f 3163/3728/33 256/3748/33 271/3749/33 3165/3744/33 +f 3478/3750/339 3481/3751/609 3482/3752/41 +f 3161/3724/33 252/3753/33 255/3754/33 3164/3741/33 +f 3483/3755/40 3480/3756/39 3473/3757/223 3470/3758/224 +f 3471/3759/533 3472/3760/644 3475/3761/534 +f 3476/3762/340 3474/3763/341 3479/3764/338 3477/3765/337 +f 2336/3740/532 318/3766/532 321/3767/532 2333/3768/532 +f 2333/3768/532 314/3769/532 317/3770/532 2974/3292/532 +f 2345/2522/1 2346/2523/1 231/353/1 230/352/1 +f 212/334/4 215/337/4 2352/2529/4 2351/2528/4 +f 220/342/97 223/345/97 225/347/97 224/346/97 +f 2348/2525/97 2350/2527/97 225/347/97 223/345/97 +f 217/339/97 2350/2527/97 2348/2525/97 218/340/97 +f 248/3722/33 3160/3721/33 2356/3727/33 +f 274/3726/33 3162/3725/33 275/3743/33 +f 2353/3742/33 3164/3741/33 255/3754/33 +f 252/3753/33 3161/3724/33 251/3723/33 +f 262/3734/33 2971/3282/33 263/3733/33 +f 265/3732/33 2969/3278/33 266/3746/33 +f 270/3745/33 3165/3744/33 271/3749/33 +f 256/3748/33 3163/3728/33 257/3735/33 +f 249/375/33 2355/2541/33 253/379/33 250/376/33 +f 273/399/33 254/380/33 253/379/33 2355/2541/33 +f 2354/2540/33 254/380/33 273/399/33 272/398/33 +f 2367/2564/51 2366/2563/51 325/440/51 324/439/51 +f 310/3738/532 2970/3281/532 311/3737/532 +f 2364/3736/532 2974/3292/532 317/3770/532 +f 314/3769/532 2333/3768/532 321/3767/532 +f 318/3766/532 2336/3740/532 2363/3739/532 +f 313/428/532 312/427/532 319/434/532 2362/2559/532 +f 2365/2562/532 320/435/532 319/434/532 312/427/532 +f 315/430/532 320/435/532 2365/2562/532 316/431/532 +f 307/422/234 306/421/234 2361/2558/234 2360/2557/234 +f 3166/3771/1 409/3772/1 3167/3773/1 +f 330/3774/97 2380/2590/97 475/592/97 327/3775/97 +f 330/3774/97 1377/3776/97 371/488/97 370/487/97 +f 3168/3777/58 899/3778/58 3037/3779/58 +f 2966/3267/58 880/3780/58 2967/3268/58 +f 3169/3781/645 917/3782/646 2612/3783/647 524/3784/648 +f 3170/3785/17 3024/3786/17 736/3787/17 +f 3171/3788/649 2371/3789/650 3172/3790/57 +f 3171/3788/649 335/447/3 334/446/3 2371/3789/650 +f 337/3791/57 339/3792/57 2371/3789/650 +f 339/3792/57 3172/3790/57 2371/3789/650 +f 326/3328/3 943/3793/3 350/2832/3 +f 2977/3330/3 944/3794/3 947/3795/3 326/3328/3 +f 359/474/3 358/473/3 3173/3796/3 2978/3797/3 +f 2376/2583/3 3174/3798/3 358/473/3 360/1179/3 +f 2380/2590/97 330/3774/97 370/487/97 +f 374/3799/1 3175/3800/1 2320/3709/1 +f 2979/3801/1 374/3799/1 2320/3709/1 +f 377/3802/1 2980/3803/1 2383/3804/1 2384/3805/1 +f 377/3802/1 3175/3800/1 374/3799/1 +f 2384/3805/1 3176/3806/1 377/3802/1 +f 2386/3807/1 2385/3808/1 2981/3809/1 382/3810/1 +f 2386/3807/1 3176/3806/1 2384/3805/1 +f 382/3810/1 3176/3806/1 2386/3807/1 +f 385/3811/1 2982/3812/1 2983/3813/1 2388/3814/1 +f 385/3811/1 3176/3806/1 382/3810/1 +f 2388/3814/1 3176/3806/1 385/3811/1 +f 2389/3815/1 2984/3816/1 2392/3817/1 390/3818/1 +f 2389/3815/1 3176/3806/1 2388/3814/1 +f 390/3818/1 3166/3771/1 2389/3815/1 +f 393/3819/1 3166/3771/1 390/3818/1 +f 393/3819/1 2393/3820/1 2985/3821/1 398/3822/1 +f 398/3822/1 3166/3771/1 393/3819/1 +f 401/3823/1 3166/3771/1 398/3822/1 +f 401/3823/1 2986/3824/1 2987/3825/1 406/3826/1 +f 406/3826/1 3166/3771/1 401/3823/1 +f 409/3772/1 3166/3771/1 406/3826/1 +f 2988/3827/1 3167/3773/1 409/3772/1 +f 3176/3806/1 2389/3815/1 3166/3771/1 +f 3177/3828/1 2320/3709/1 3178/3829/1 +f 3178/3829/1 2320/3709/1 3179/3830/1 +f 3179/3830/1 2320/3709/1 3180/3831/1 +f 3180/3831/1 2320/3709/1 3181/3832/1 +f 3181/3832/1 2320/3709/1 3182/3833/1 +f 3182/3833/1 2320/3709/1 3183/3834/1 +f 3183/3834/1 2320/3709/1 3175/3800/1 +f 3175/3800/1 377/3802/1 3176/3806/1 +f 3172/3790/57 339/3792/57 3535/3835/57 +f 3184/3836/58 2967/3268/58 3185/3837/58 +f 3185/3837/58 2967/3268/58 3186/3838/58 +f 3186/3838/58 899/3778/58 3168/3777/58 +f 2967/3268/58 3184/3836/58 2968/3277/58 +f 3186/3838/58 896/3839/58 899/3778/58 +f 2968/3277/58 3184/3836/58 2653/2862/58 2656/2865/58 +f 276/402/651 1037/1194/651 3187/3840/651 +f 474/591/97 327/3775/97 475/592/97 +f 474/591/97 1527/1679/97 1380/3841/97 327/3775/97 +f 670/3416/97 587/3842/97 544/696/97 +f 586/3434/97 699/705/97 544/696/97 +f 550/3436/75 552/752/75 702/3440/561 +f 704/2730/652 550/3436/75 702/3440/561 +f 3021/3843/483 3023/817/149 2489/816/149 655/2725/483 +f 581/2670/84 579/734/5 591/735/5 2443/2671/376 +f 582/2669/83 580/3446/83 683/861/381 +f 585/2690/4 598/2689/4 2447/863/187 2446/3844/187 +f 2472/2721/558 2469/694/97 578/693/97 579/734/97 +f 2464/3845/96 2461/3846/97 568/3847/97 569/3848/97 +f 2451/3849/653 628/794/97 583/2687/97 584/2686/97 +f 685/857/3 590/2684/3 595/3452/251 686/784/251 +f 589/745/1 601/744/1 2435/3850/185 711/3851/185 +f 2506/847/152 593/2698/152 3190/686/152 3189/3852/152 +f 635/828/555 2419/2643/555 2420/2645/388 634/829/387 +f 3018/723/119 3322/722/119 3321/2647/654 3016/2719/655 +f 2417/737/126 630/736/126 2511/2714/656 3314/2660/657 +f 3019/710/152 3018/723/152 3016/2719/152 663/2718/152 +f 3015/2668/152 3012/826/152 3013/729/152 3014/3853/152 +f 3019/710/152 3017/709/152 3020/681/152 3018/723/152 +f 547/719/97 548/668/97 616/667/97 636/787/658 +f 2422/679/102 3022/678/102 3188/2694/384 3323/2646/383 +f 549/669/97 551/3424/97 2455/2720/97 2454/666/96 +f 2490/712/97 629/711/97 2462/835/97 2491/834/97 +f 576/764/173 574/763/3 688/858/3 687/781/135 +f 574/763/3 573/3425/90 680/859/659 688/858/3 +f 577/692/115 576/764/173 687/781/135 +f 605/3439/18 586/3854/18 669/2729/253 703/2731/253 +f 577/692/115 575/716/115 684/718/117 +f 642/797/660 2473/836/97 581/2670/97 582/2669/97 +f 603/3450/2 587/3855/2 670/849/164 709/851/164 +f 586/3854/18 605/3439/18 700/3453/184 699/3856/184 +f 690/741/16 588/740/16 594/3431/250 691/3432/250 +f 2506/847/152 665/830/152 634/829/152 593/2698/152 +f 587/3855/2 603/3450/2 706/3451/168 705/3857/168 +f 3196/3858/661 2418/2641/661 3326/2642/557 3193/3428/556 +f 646/2704/180 2477/2702/179 617/753/179 618/691/180 +f 644/801/183 2475/785/137 616/667/137 2454/666/183 +f 3015/2668/152 3014/3853/152 3011/2717/152 661/845/152 +f 3023/817/152 3022/678/152 3020/681/152 3017/709/152 +f 3010/813/152 2529/2699/152 2530/2716/152 2531/3859/152 +f 2418/2641/661 3196/3858/661 3195/739/128 2416/738/127 +f 2467/2677/178 2494/2707/391 627/765/391 2468/695/178 +f 2450/844/175 2496/795/143 628/794/143 2451/3849/175 +f 658/3860/97 2501/799/97 2453/798/97 639/2703/97 +f 3189/3852/485 3192/3861/484 2493/3862/484 2507/2676/485 +f 656/2727/97 2499/2726/97 2449/831/97 637/786/97 +f 2512/823/487 2515/3448/486 2474/3447/486 645/800/487 +f 3194/3863/174 3197/819/150 2495/818/150 2498/843/174 +f 544/696/97 560/774/97 594/770/97 +f 544/696/97 550/3864/97 669/3433/97 +f 608/3865/97 555/3415/97 607/702/97 +f 2449/831/97 2499/2726/97 2498/843/97 2450/844/97 +f 2476/2722/490 2519/3430/490 659/824/489 658/3860/489 +f 2493/3862/484 3192/3861/484 3021/3843/483 655/2725/483 +f 598/2689/493 599/2688/493 683/861/494 2447/863/494 +f 600/2674/249 610/3441/249 677/2675/249 +f 645/800/97 2474/3447/97 2475/785/97 644/801/97 +f 663/2718/242 2504/825/241 2505/760/241 662/759/242 +f 684/718/184 2442/717/184 2441/3426/184 +f 736/3787/17 3024/3786/17 2562/3866/17 +f 735/3867/17 3170/3785/17 736/3787/17 +f 735/3867/17 3198/3868/662 3170/3785/17 +f 3199/3869/17 735/3867/17 2564/3870/17 3200/3871/17 +f 3199/3869/17 3198/3868/662 735/3867/17 +f 2566/3872/663 3198/3868/662 3199/3869/17 +f 2565/3873/664 2614/3874/665 2566/3872/663 +f 712/3875/666 2614/3874/665 2565/3873/664 +f 2562/3866/17 3024/3786/17 2563/3876/17 +f 3200/3871/17 2564/3870/17 2568/3877/17 3201/3878/17 +f 492/3710/1 2320/3709/1 3177/3828/1 +f 524/3784/648 915/3879/667 712/3875/666 +f 833/989/161 2587/2794/161 2588/2793/160 865/984/160 +f 833/989/161 832/988/485 780/934/485 2587/2794/161 +f 845/1001/488 2589/2795/488 3029/2796/489 840/996/489 +f 845/1001/488 844/1000/487 2590/2797/487 2589/2795/488 +f 848/1005/486 2591/2798/486 2590/2797/487 844/1000/487 +f 848/1005/486 867/1004/244 785/940/244 2591/2798/486 +f 3202/3880/97 799/954/97 802/957/97 2604/3669/97 +f 3202/3880/97 3029/2796/97 803/958/97 799/954/97 +f 3203/3881/97 814/3882/97 3204/3883/97 +f 3203/3881/97 863/3884/97 2593/3885/97 +f 812/3886/97 814/3882/97 3203/3881/97 +f 3205/3887/97 855/3888/97 815/3889/97 +f 3205/3887/97 1956/3890/97 3204/3883/97 +f 2595/3891/97 1956/3890/97 3205/3887/97 +f 3206/3892/97 856/3893/97 818/3894/97 +f 3206/3892/97 823/3895/97 3204/3883/97 +f 821/3896/97 823/3895/97 3206/3892/97 +f 3207/3897/97 857/3898/97 824/3899/97 +f 2596/3900/97 859/3901/97 3207/3897/97 +f 3028/3902/97 3204/3883/97 814/3882/97 +f 855/3888/97 3205/3887/97 3204/3883/97 +f 855/3888/97 3204/3883/97 3028/3902/97 +f 856/3893/97 3206/3892/97 3204/3883/97 +f 856/3893/97 3204/3883/97 2876/3903/97 +f 2602/3904/97 3204/3883/97 823/3895/97 +f 857/3898/97 3207/3897/97 3204/3883/97 +f 857/3898/97 3204/3883/97 2602/3904/97 +f 858/3905/97 3204/3883/97 859/3901/97 +f 863/3884/97 3203/3881/97 3204/3883/97 +f 863/3884/97 3204/3883/97 858/3905/97 +f 3032/3906/58 880/3780/58 2966/3267/58 +f 3034/3907/58 888/3908/58 883/3909/58 3033/3473/58 +f 3036/3910/58 896/3839/58 891/3911/58 3035/3912/58 +f 898/1053/58 897/1052/58 2609/2815/58 2610/2816/58 +f 912/3913/668 524/3784/648 2612/3783/647 +f 918/3914/669 3169/3781/645 921/3915/670 +f 917/3782/646 3169/3781/645 918/3914/669 +f 922/3916/671 2566/3872/663 2614/3874/665 +f 922/3916/671 3198/3868/662 2566/3872/663 +f 921/3915/670 3198/3868/662 922/3916/671 +f 915/3879/667 524/3784/648 912/3913/668 +f 2614/3874/665 712/3875/666 915/3879/667 +f 913/1068/672 919/1074/672 920/1075/673 914/1069/673 +f 916/1071/674 919/1074/672 913/1068/672 2611/2817/674 +f 2613/2819/675 914/1069/673 920/1075/673 923/1078/675 +f 3198/3868/662 921/3915/670 3169/3781/645 +f 3187/3840/3 949/3917/3 2615/3918/3 3208/3919/3 +f 3187/3840/3 2659/3920/3 2617/3921/3 +f 3208/3919/3 932/3922/3 935/3923/3 2977/3330/3 +f 931/3924/3 936/3925/3 939/3926/3 928/3927/3 +f 924/3928/3 350/2832/3 931/3924/3 +f 928/3927/3 3208/3919/3 2615/3918/3 +f 928/3927/3 939/3926/3 3208/3919/3 +f 950/3929/3 3187/3840/3 2617/3921/3 +f 949/3917/3 3187/3840/3 950/3929/3 +f 927/3930/3 2659/3920/3 350/2832/3 +f 927/3930/3 350/2832/3 924/3928/3 +f 2617/3921/3 2659/3920/3 927/3930/3 +f 932/3922/3 3208/3919/3 939/3926/3 +f 943/3793/3 326/3328/3 940/3931/3 +f 936/3925/3 350/2832/3 943/3793/3 +f 940/3931/3 326/3328/3 947/3795/3 +f 944/3794/3 2977/3330/3 935/3923/3 +f 925/1080/3 2616/2822/3 948/1103/3 926/1081/3 +f 929/1084/3 2616/2822/3 925/1080/3 930/1085/3 +f 2618/2824/3 926/1081/3 948/1103/3 951/1106/3 +f 959/1114/2 958/1113/2 953/1108/2 2619/2825/2 +f 960/1115/2 954/1109/2 953/1108/2 958/1113/2 +f 2622/2828/2 954/1109/2 960/1115/2 963/1118/2 +f 1148/2829/676 1149/3478/676 3558/3932/676 3563/2830/676 +f 968/1123/152 1092/1249/152 2645/2854/152 969/1124/152 +f 975/1130/152 1074/1231/152 1093/1250/152 2624/2833/152 +f 974/1129/152 1074/1231/152 975/1130/152 +f 974/1129/152 2650/2859/152 1075/1232/152 +f 2624/2833/152 1093/1250/152 1092/1249/152 968/1123/152 +f 973/1128/97 1081/1238/97 2639/2848/97 +f 973/1128/97 1082/1239/97 1081/1238/97 +f 972/1127/97 1082/1239/97 973/1128/97 +f 971/1126/97 970/1125/97 1045/1202/97 +f 1046/1203/97 1045/1202/97 970/1125/97 +f 2625/2834/97 2634/2843/97 1082/1239/97 972/1127/97 +f 976/1131/152 2647/2856/152 3045/3486/152 977/1132/152 +f 980/1135/152 1079/1236/152 1078/1235/152 981/1136/152 +f 2627/2836/152 1079/1236/152 980/1135/152 +f 2627/2836/152 1091/1248/152 1089/1246/152 +f 981/1136/152 1078/1235/152 2647/2856/152 976/1131/152 +f 2626/2835/97 1016/1171/97 1019/1174/97 +f 2626/2835/97 2646/2855/97 1016/1171/97 +f 983/1138/97 2646/2855/97 2626/2835/97 +f 979/1134/97 978/1133/97 1053/1210/97 +f 2642/2851/97 1053/1210/97 978/1133/97 +f 982/1137/97 1052/1209/97 2646/2855/97 983/1138/97 +f 991/1146/152 1050/1207/152 1049/1206/152 2628/2837/152 +f 987/1142/152 1085/1242/152 1084/1241/152 990/1145/152 +f 986/1141/152 1085/1242/152 987/1142/152 +f 986/1141/152 2649/2858/152 2648/2857/152 +f 990/1145/152 1084/1241/152 1050/1207/152 991/1146/152 +f 985/1140/97 1012/1167/97 1015/1170/97 +f 985/1140/97 2635/2844/97 1012/1167/97 +f 984/1139/97 2635/2844/97 985/1140/97 +f 988/1143/97 2629/2838/97 1060/1217/97 +f 2643/2852/97 1060/1217/97 2629/2838/97 +f 989/1144/97 1059/1216/97 2635/2844/97 984/1139/97 +f 1045/1202/97 2634/2843/97 2625/2834/97 971/1126/97 +f 1053/1210/97 1052/1209/97 982/1137/97 979/1134/97 +f 1060/1217/97 1059/1216/97 989/1144/97 988/1143/97 +f 3173/3796/3 358/473/3 3174/3798/3 +f 1026/1183/206 1030/1187/206 2636/2845/206 1027/1184/206 +f 1058/1215/202 2652/2861/202 1072/1229/202 1071/1228/202 +f 1079/1236/152 2627/2836/152 1089/1246/152 +f 1085/1242/152 986/1141/152 2648/2857/152 +f 1074/1231/152 974/1129/152 1075/1232/152 +f 1099/1256/677 1098/1255/678 2324/2481/679 +f 1098/1255/678 3048/3491/680 2324/2481/679 +f 161/3933/4 166/3934/4 1202/1355/4 +f 3567/3935/4 1127/3936/4 3568/3937/4 +f 1127/3936/4 3567/3935/4 1124/3938/4 +f 1120/3939/4 1123/3940/4 1156/3941/4 +f 1120/3939/4 3568/3937/4 1127/3936/4 +f 1149/3478/201 2375/3942/681 3558/3932/212 +f 3187/3840/3 3039/3479/3 2659/3920/3 +f 350/2832/3 936/3925/3 931/3924/3 +f 3061/3504/682 2324/2481/679 3048/3491/680 +f 3061/3504/682 3073/3516/683 2324/2481/679 +f 3078/3533/684 2372/2575/684 2324/2481/679 3072/3515/685 +f 3077/3532/686 2372/2575/684 3076/3531/686 +f 3076/3531/686 2372/2575/684 3078/3533/684 +f 3072/3515/685 2324/2481/679 3073/3516/683 +f 1156/3941/4 3568/3937/4 1120/3939/4 +f 1156/3941/4 1212/1365/4 1153/3943/4 +f 1153/3943/4 1212/1365/4 1164/3944/4 +f 1164/3944/4 1212/1365/4 1161/3945/4 +f 1161/3945/4 1205/1358/4 2666/3946/4 +f 2666/3946/4 1205/1358/4 2665/3947/4 +f 2665/3947/4 1216/1369/4 2670/3948/4 +f 2670/3948/4 1216/1369/4 2669/3949/4 +f 2669/3949/4 1216/1369/4 1168/3950/4 +f 1168/3950/4 1215/1368/4 1165/3951/4 +f 1165/3951/4 166/3934/4 3084/3952/4 +f 1165/3951/4 1215/1368/4 166/3934/4 +f 1167/1320/4 1166/1319/4 2673/2891/4 2674/2892/4 +f 2660/3953/4 1153/3943/4 1164/3944/4 2661/3954/4 +f 2662/3955/4 1161/3945/4 2666/3946/4 3079/3956/4 +f 3080/3957/4 2665/3947/4 2670/3948/4 3081/3958/4 +f 3082/3959/4 2669/3949/4 1168/3950/4 3083/3960/4 +f 1215/1368/4 1168/3950/4 1216/1369/4 +f 1202/1355/4 166/3934/4 1215/1368/4 +f 1216/1369/4 2665/3947/4 1205/1358/4 +f 1205/1358/4 1161/3945/4 1212/1365/4 +f 1205/1358/4 1208/1361/4 1201/1354/4 1216/1369/4 +f 1209/1362/4 1212/1365/4 1123/3940/4 +f 1212/1365/4 1156/3941/4 1123/3940/4 +f 3085/3961/4 1428/3962/4 3102/3963/4 +f 3085/3961/4 3209/3964/4 1428/3962/4 +f 3211/3965/687 3533/3966/688 3532/3967/689 +f 1233/1383/1 1232/1382/1 2683/2900/1 2682/2899/1 +f 1230/1380/18 2681/2898/18 2680/2897/18 1231/1381/18 +f 3212/3968/97 1256/3969/97 1259/3970/97 3213/3971/97 +f 3213/3971/97 2687/3972/97 1279/3973/97 3214/3974/97 +f 3094/3570/532 1353/3975/532 1356/3976/532 3088/3977/532 +f 3096/3576/532 1349/3978/532 1352/3979/532 3094/3570/532 +f 3214/3974/97 1278/3980/97 1282/3981/97 3215/3982/97 +f 3215/3982/97 1281/3983/97 2685/3984/97 3212/3968/97 +f 3092/3985/532 1361/3986/532 1364/3987/532 3096/3576/532 +f 3088/3977/532 1357/3988/532 1360/3989/532 3092/3985/532 +f 1256/3969/97 3212/3968/97 2685/3984/97 +f 2687/3972/97 3213/3971/97 1259/3970/97 +f 1278/3980/97 3214/3974/97 1279/3973/97 +f 1281/3983/97 3215/3982/97 1282/3981/97 +f 1257/1403/97 1283/1429/97 1277/1423/97 1258/1404/97 +f 2686/2909/97 1258/1404/97 1277/1423/97 1276/1422/97 +f 1280/1426/97 1283/1429/97 1257/1403/97 2684/2907/97 +f 2688/2917/44 1303/1457/44 1302/1456/44 2689/2918/44 +f 2690/2919/46 1305/1459/46 1304/1458/46 2691/2920/46 +f 1398/3990/690 1342/3991/690 2694/3992/691 1396/3993/691 +f 1330/2925/690 1346/3994/690 2697/3995/690 1335/1488/690 +f 1331/3996/690 1343/3997/690 1346/3994/690 1330/2925/690 +f 1334/3998/690 1339/3999/690 1342/3991/690 1398/3990/690 +f 1335/1488/690 2697/3995/690 1339/3999/690 1334/3998/690 +f 1340/1491/690 1344/1495/690 2695/2931/690 1341/1492/690 +f 1344/1495/690 1340/1491/690 2696/2934/690 1345/1496/690 +f 1349/3978/532 3096/3576/532 1364/3987/532 +f 1353/3975/532 3094/3570/532 1352/3979/532 +f 1357/3988/532 3088/3977/532 1356/3976/532 +f 1361/3986/532 3092/3985/532 1360/3989/532 +f 1374/1526/532 1371/1523/532 1370/1522/532 1367/1519/532 +f 1368/1520/532 1367/1519/532 1370/1522/532 2701/2941/532 +f 2703/2943/532 1371/1523/532 1374/1526/532 1373/1525/532 +f 3216/4000/4 1466/4001/4 3217/4002/4 +f 3217/4002/4 1441/4003/4 3218/4004/4 +f 1380/3841/97 1526/1678/97 2717/2976/97 1377/3776/97 +f 3219/4005/237 1996/4006/237 3220/4007/237 +f 3221/4008/237 1995/4009/237 3136/4010/237 +f 3222/4011/692 2026/4012/693 3223/4013/694 +f 3224/4014/5 3223/4013/694 1846/4015/5 +f 2707/4016/695 1385/1538/3 1384/1537/3 3225/4017/649 +f 2707/4016/695 1390/4018/57 1387/4019/57 +f 2707/4016/695 3226/4020/57 1390/4018/57 +f 2318/4021/2 2317/4022/2 144/4023/2 2705/1529/2 +f 1392/4024/696 2914/3692/697 1393/4025/698 +f 1393/4025/698 3144/3680/699 1333/4026/197 +f 1393/4025/698 2914/3692/697 3144/3680/699 +f 1396/3993/691 2694/3992/691 1343/3997/690 1331/3996/690 +f 2620/4027/2 2415/4028/700 2357/4029/2 +f 368/4030/2 351/4031/2 3551/4032/2 2373/4033/2 +f 1122/4034/2 2315/4035/2 2964/4036/2 +f 369/4037/2 2415/4028/700 2620/4027/2 +f 2056/4038/2 2693/2927/2 2729/3006/466 +f 371/488/97 1377/3776/97 2717/2976/97 +f 1428/3962/4 3209/3964/4 1425/4039/4 +f 1425/4039/4 3218/4004/4 2721/4040/4 +f 2721/4040/4 3104/4041/4 3103/4042/4 1425/4039/4 +f 2721/4040/4 3218/4004/4 2720/4043/4 +f 2720/4043/4 3218/4004/4 1436/4044/4 +f 1436/4044/4 2722/4045/4 3105/4046/4 2720/4043/4 +f 1436/4044/4 3218/4004/4 1433/4047/4 +f 1433/4047/4 3218/4004/4 1444/4048/4 +f 1444/4048/4 2724/4049/4 2723/4050/4 1433/4047/4 +f 1444/4048/4 3218/4004/4 1441/4003/4 +f 1441/4003/4 3217/4002/4 1445/4051/4 +f 1445/4051/4 3217/4002/4 1474/4052/4 +f 1445/4051/4 1447/4053/4 2725/4054/4 1441/4003/4 +f 1474/4052/4 3217/4002/4 1461/4055/4 +f 1461/4055/4 3217/4002/4 1458/4056/4 +f 1461/4055/4 2726/4057/4 1452/4058/4 1474/4052/4 +f 1458/4056/4 3217/4002/4 1469/4059/4 +f 1469/4059/4 3217/4002/4 1466/4001/4 +f 1469/4059/4 3106/4060/4 2727/4061/4 1458/4056/4 +f 1466/4001/4 3216/4000/4 3107/4062/4 +f 3218/4004/4 1425/4039/4 3209/3964/4 +f 3227/4063/4 3085/3961/4 2765/4064/4 +f 3228/4065/4 3085/3961/4 3227/4063/4 +f 3229/4066/4 3085/3961/4 3228/4065/4 +f 3230/4067/4 3085/3961/4 3229/4066/4 +f 3231/4068/4 3085/3961/4 3230/4067/4 +f 3232/4069/4 3085/3961/4 3231/4068/4 +f 3233/4070/4 3085/3961/4 3232/4069/4 +f 3209/3964/4 3085/3961/4 3233/4070/4 +f 3226/4020/57 2707/4016/695 3225/4017/649 +f 3543/4071/57 1390/4018/57 3226/4020/57 +f 3234/4072/237 3235/4073/237 3236/4074/237 +f 3220/4007/237 3235/4073/237 3234/4072/237 +f 3220/4007/237 1996/4006/237 1999/4075/237 +f 3235/4073/237 1995/4009/237 3221/4008/237 +f 3237/4076/237 3236/4074/237 3235/4073/237 +f 1526/1678/97 1380/3841/97 1527/1679/97 +f 2787/3076/161 1770/1947/160 1769/1772/160 1614/1770/161 +f 3238/4077/1 2817/3106/1 1749/1931/701 3239/4078/95 +f 3239/4078/95 1749/1931/701 3240/4079/94 +f 3240/4079/94 1712/1894/171 3241/4080/93 +f 3240/4079/94 1749/1931/701 3242/4081/94 +f 3241/4080/93 1712/1894/171 3122/3654/17 3243/4082/17 +f 3243/4082/17 3122/3654/17 1748/1930/702 3244/4083/92 +f 3244/4083/92 1748/1930/702 3245/4084/91 +f 3245/4084/91 1745/1927/703 3246/4085/90 +f 3245/4084/91 1748/1930/702 3247/4086/91 +f 3246/4085/90 1745/1927/703 1744/1926/3 3248/4087/3 +f 3248/4087/3 1744/1926/3 1752/1934/704 3249/4088/173 +f 3249/4088/173 1752/1934/704 3250/4089/115 +f 3250/4089/115 2805/3094/705 3251/4090/125 +f 3250/4089/115 1752/1934/704 3252/4091/115 +f 3251/4090/125 2805/3094/705 3121/3653/5 3253/4092/5 +f 3253/4092/5 3121/3653/5 2816/3105/280 3254/4093/84 +f 3254/4093/84 2816/3105/280 3255/4094/83 +f 3255/4094/83 1718/1900/706 3256/4095/82 +f 3255/4094/83 2816/3105/280 3257/4096/83 +f 3256/4095/82 1718/1900/706 2814/3103/4 3258/4097/4 +f 3258/4097/4 2814/3103/4 1743/1925/707 3259/4098/81 +f 3259/4098/81 1743/1925/707 3260/4099/80 +f 3260/4099/80 1740/1922/708 3261/4100/79 +f 3260/4099/80 1743/1925/707 3262/4101/80 +f 3261/4100/79 1740/1922/708 1739/1921/18 3263/4102/18 +f 3263/4102/18 1739/1921/18 1761/1943/709 3264/4103/77 +f 3264/4103/77 1761/1943/709 3265/4104/75 +f 3265/4105/75 1724/1906/710 3266/4106/74 +f 3265/4104/75 1761/1943/709 3267/4107/75 +f 3266/4106/74 1724/1906/710 2812/3101/2 3268/4108/2 +f 3268/4108/2 2812/3101/2 1738/1920/711 3269/4109/73 +f 3269/4109/73 1738/1920/711 3270/4110/72 +f 3270/4110/72 1730/1912/712 3271/4111/71 +f 3270/4110/72 1738/1920/711 3272/4112/72 +f 3271/4111/71 1730/1912/712 2810/3099/16 3273/4113/16 +f 3273/4113/16 2810/3099/16 1737/1919/713 3274/4114/67 +f 3274/4114/67 1737/1919/713 3275/4115/63 +f 3275/4115/63 1736/1918/714 3276/4116/62 +f 3275/4115/63 1737/1919/713 3277/4117/63 +f 3276/4116/62 1736/1918/714 2817/3106/1 3238/4077/1 +f 3242/4081/94 1712/1894/171 3240/4079/94 +f 3242/4081/94 1749/1931/701 1707/1889/562 +f 1710/1892/172 1712/1894/171 3242/4081/94 +f 3247/4086/91 1745/1927/703 3245/4084/91 +f 3247/4086/91 1748/1930/702 1713/1895/282 +f 2801/3090/468 1745/1927/703 3247/4086/91 +f 3252/4091/115 2805/3094/705 3250/4089/115 +f 3252/4091/115 1752/1934/704 2802/3091/134 +f 2804/3093/116 2805/3094/705 3252/4091/115 +f 3257/4096/83 1718/1900/706 3255/4094/83 +f 3257/4096/83 2816/3105/280 2806/3095/281 +f 1716/1898/715 1718/1900/706 3257/4096/83 +f 3262/4101/80 1740/1922/708 3260/4099/80 +f 3262/4101/80 1743/1925/707 1719/1901/716 +f 2807/3096/472 1740/1922/708 3262/4101/80 +f 3267/4118/75 1724/1906/710 3265/4105/75 +f 3267/4107/75 1761/1943/709 2808/3097/652 +f 1722/1904/559 1724/1906/710 3267/4118/75 +f 3272/4112/72 1730/1912/712 3270/4110/72 +f 3272/4112/72 1738/1920/711 1725/1907/717 +f 1728/1910/718 1730/1912/712 3272/4112/72 +f 3277/4117/63 1736/1918/714 3275/4115/63 +f 3277/4117/63 1737/1919/713 1731/1913/65 +f 1734/1916/719 1736/1918/714 3277/4117/63 +f 1616/1768/485 1665/1835/485 2787/3076/161 1614/1770/161 +f 1845/4119/5 3224/4014/5 1846/4015/5 +f 1845/4119/5 2755/4120/5 3224/4014/5 +f 1846/4015/5 3223/4013/694 3278/4121/5 +f 3278/4121/5 3223/4013/694 1824/4122/720 +f 1824/4122/720 2021/4123/721 1816/4124/722 +f 1824/4122/720 3223/4013/694 2025/4125/723 +f 1816/4124/722 2021/4123/721 1817/4126/724 +f 3279/4127/5 2835/4128/5 2834/4129/5 3280/4130/5 +f 2756/4131/5 2755/4120/5 3129/4132/5 +f 1817/4126/724 2020/4133/725 2780/4134/726 +f 3129/4132/5 2755/4120/5 1845/4119/5 +f 3280/4130/5 2834/4129/5 1846/4015/5 3278/4121/5 +f 2837/4135/4 2765/4064/4 3085/3961/4 +f 2780/4134/726 2016/4136/727 2019/4137/728 3222/4011/692 +f 1926/2098/97 1975/2097/97 1967/2137/97 2859/3150/97 +f 1931/4138/97 1933/4139/97 3281/4140/97 +f 3281/4140/97 2875/4141/97 2870/4142/97 +f 2871/4143/97 2872/4144/97 3282/4145/97 +f 3282/4145/97 1960/4146/97 2873/4147/97 +f 1934/4148/97 1936/4149/97 3283/4150/97 +f 3283/4150/97 1961/4151/97 1937/4152/97 +f 1940/4153/97 1942/4154/97 3284/4155/97 +f 3284/4155/97 1962/4156/97 1943/4157/97 +f 3135/4158/97 3204/3883/97 2872/4144/97 +f 2875/4141/97 3204/3883/97 3135/4158/97 +f 1955/4159/97 1960/4146/97 3204/3883/97 +f 1955/4159/97 3204/3883/97 1956/3890/97 +f 2878/4160/97 3204/3883/97 1942/4154/97 +f 1961/4151/97 3204/3883/97 2878/4160/97 +f 2880/4161/97 3204/3883/97 1933/4139/97 +f 1962/4156/97 3284/4155/97 3204/3883/97 +f 1962/4156/97 3204/3883/97 2880/4161/97 +f 3204/3883/97 3207/3897/97 859/3901/97 +f 3204/3883/97 3281/4140/97 1933/4139/97 +f 3204/3883/97 3282/4145/97 2872/4144/97 +f 3204/3883/97 3283/4150/97 1936/4149/97 +f 3204/3883/97 3284/4155/97 1942/4154/97 +f 3204/3883/97 2875/4141/97 3281/4140/97 +f 3204/3883/97 1960/4146/97 3282/4145/97 +f 3204/3883/97 1936/4149/97 2876/3903/97 +f 3204/3883/97 1961/4151/97 3283/4150/97 +f 2882/2070/97 1974/2093/97 1926/2098/97 2859/3150/97 +f 3137/4162/237 1992/4163/237 2890/4164/237 3138/4165/237 +f 3139/4166/237 2889/4167/237 1999/4075/237 2891/4168/237 +f 2895/4169/237 1996/4006/237 3219/4005/237 +f 2896/3188/237 2893/3185/237 1998/2162/237 1997/2161/237 +f 2016/4136/727 2780/4134/726 2897/4170/729 +f 2897/4170/729 2780/4134/726 2020/4133/725 +f 2900/4171/730 3222/4011/692 2019/4137/728 +f 2025/4125/723 3223/4013/694 2026/4012/693 +f 2026/4012/693 3222/4011/692 2900/4171/730 +f 2020/4133/725 1817/4126/724 2021/4123/721 +f 2021/4123/721 1824/4122/720 2025/4125/723 +f 2017/2181/731 2898/3190/732 2899/3191/733 2018/2182/731 +f 2024/2188/734 2027/2191/735 2023/2187/736 2022/2186/734 +f 2023/2187/736 2027/2191/735 2899/3191/733 2898/3190/732 +f 2029/2193/3 2904/3196/3 2033/2197/3 2030/2194/3 +f 2902/3194/3 2034/2198/3 2053/2217/3 2052/2216/3 +f 2053/2217/3 2034/2198/3 2033/2197/3 2904/3196/3 +f 2906/3198/97 2905/3197/97 2067/2231/97 2066/2230/97 +f 2065/2229/4 2064/2228/4 2907/3199/4 2908/3200/4 +f 2071/2235/4 2919/3210/4 2918/3209/4 2068/2232/4 +f 2085/2249/97 2089/2253/97 2088/2252/97 +f 2922/3213/97 2148/2311/97 2080/2244/97 +f 2080/2244/97 2148/2311/97 2930/3221/97 2081/2245/97 +f 2084/2248/97 2081/2245/97 2930/3221/97 2089/2253/97 +f 2923/3214/97 2149/2312/97 2922/3213/97 +f 2092/2256/152 2174/2337/152 2173/2336/152 2093/2257/152 +f 2096/2260/152 2940/3230/152 2097/2261/152 +f 3141/3677/152 2941/3231/152 2174/2337/152 2092/2256/152 +f 2093/2257/152 2173/2336/152 2940/3230/152 2096/2260/152 +f 3142/3678/4 2180/2343/4 2179/2342/4 2932/3223/4 +f 2125/2289/97 2140/2303/97 2929/3220/97 +f 2928/3219/97 2933/3224/97 2120/2284/97 +f 2120/2284/97 2933/3224/97 2141/2304/97 2121/2285/97 +f 2124/2288/97 2121/2285/97 2141/2304/97 2140/2303/97 +f 2128/2292/97 2131/2294/97 2928/3219/97 +f 2089/2253/97 2085/2249/97 2084/2248/97 +f 2140/2303/97 2125/2289/97 2124/2288/97 +f 2131/2294/97 2933/3224/97 2928/3219/97 +f 2149/2312/97 2148/2311/97 2922/3213/97 +f 2931/3222/305 2079/2243/305 2078/2242/305 2185/2348/305 +f 2935/3225/310 2163/2326/310 2165/2328/310 2130/2293/310 +f 2184/2347/197 2937/3227/197 2138/2301/197 2185/2348/197 +f 2171/2334/152 2097/2261/152 2940/3230/152 +f 2171/2334/152 2170/2333/152 2097/2261/152 +f 2182/2345/310 2939/3229/310 2157/2320/310 2179/2342/310 +f 2944/3234/237 2947/3237/237 3236/4074/237 3237/4076/237 +f 2945/3235/737 3285/4172/738 3286/4173/739 2946/3236/740 +f 2202/2366/741 3287/4174/742 3285/4172/738 2945/3235/737 +f 2946/3236/740 3286/4173/739 3288/4175/743 2198/2362/744 +f 3289/4176/745 3290/4177/746 3291/4178/747 3292/4179/748 +f 3290/4177/746 3289/4176/745 3288/4175/743 3286/4173/739 +f 3293/4180/749 3294/4181/750 3295/4182/751 3296/4183/752 +f 3294/4181/750 3293/4180/749 3285/4172/738 3287/4174/742 +f 3294/4181/750 3147/3683/753 3295/4182/751 +f 3292/4179/748 3297/4184/754 3298/4185/755 3289/4176/745 +f 3299/4186/756 3300/4187/757 2948/4188/758 2912/4189/759 +f 3299/4186/756 3301/4190/760 3297/4184/754 3292/4179/748 +f 3300/4187/757 3299/4186/756 3292/4179/748 3291/4178/747 +f 3291/4178/747 3296/4183/752 3302/4191/761 3300/4187/757 +f 3296/4183/752 3291/4178/747 3290/4177/746 3293/4180/749 +f 3296/4183/752 3295/4182/751 3303/4192/762 3302/4191/761 +f 3302/4191/761 3303/4192/762 3151/3693/763 2950/4193/764 +f 3303/4192/762 3150/3691/765 3151/3693/763 +f 3295/4182/751 3146/3682/766 3152/3695/767 3303/4192/762 +f 2198/2362/744 3288/4175/743 3304/4194/768 2196/2359/769 +f 2201/2365/4 3145/3681/770 3287/4174/742 2202/2366/741 +f 2954/3244/211 2204/2368/211 2203/2367/211 2955/3245/211 +f 2953/3243/42 2952/3242/42 2206/2370/42 2205/2369/42 +f 144/4023/2 2237/4195/2 162/4196/2 +f 144/4023/2 2317/4022/2 2237/4195/2 +f 2215/4197/2 2965/4198/2 2216/4199/2 +f 2222/4200/2 2221/4201/2 2224/4202/2 2223/4203/2 +f 2230/4204/2 2229/4205/2 2232/4206/2 2231/4207/2 +f 2237/4195/2 2317/4022/2 2238/4208/2 +f 1138/4209/2 1141/4210/2 160/4211/2 +f 166/3934/3 168/4212/3 2672/4213/3 +f 86/195/1 87/77/1 89/79/1 +f 2221/4201/2 3148/4214/2 2224/4202/2 +f 2216/4199/2 3148/4214/2 2221/4201/2 +f 2216/4199/2 2300/4215/2 3148/4214/2 +f 2912/4189/759 2911/4216/364 3301/4190/760 3299/4186/756 +f 2950/4193/764 2948/4188/758 3300/4187/757 3302/4191/761 +f 2950/4193/764 3151/3693/763 2957/3694/771 +f 3298/4185/755 3304/4194/768 3288/4175/743 3289/4176/745 +f 3286/4173/739 3285/4172/738 3293/4180/749 3290/4177/746 +f 3287/4174/742 3145/3681/770 3147/3683/753 3294/4181/750 +f 3150/3691/765 3303/4192/762 3152/3695/767 +f 3146/3682/766 3295/4182/751 3147/3683/753 +f 2959/3254/152 2292/2449/152 2295/2452/152 3305/4217/152 +f 3305/4217/152 2962/3259/152 2265/2422/152 2264/4218/152 +f 3305/4217/152 2295/2452/152 2962/3259/152 +f 2267/4219/97 2266/2423/97 2963/3260/97 3306/4220/97 +f 2963/3260/97 2294/2451/97 3306/4220/97 +f 3306/4220/97 2294/2451/97 2293/2450/97 2958/3253/97 +f 2965/4198/2 2307/4221/2 2216/4199/2 +f 2965/4198/2 2315/4035/2 2308/4222/2 +f 2964/4036/2 2315/4035/2 2965/4198/2 +f 2307/4221/2 2300/4215/2 2216/4199/2 +f 2308/4222/2 2307/4221/2 2965/4198/2 +f 2323/4223/3 283/4224/3 289/4225/772 +f 2322/4226/33 3004/4227/33 739/891/33 +f 2322/4226/33 3003/4228/33 3004/4227/33 +f 2322/4226/33 722/4229/33 3003/4228/33 +f 2322/4226/33 717/4230/33 722/4229/33 +f 3163/3728/1 207/3731/1 199/4231/1 +f 203/4232/4 3165/3744/4 2969/3278/4 +f 3160/3721/97 2347/4233/97 222/4234/97 3162/3725/97 +f 3162/3725/97 221/4235/97 227/4236/97 2973/3288/97 +f 2970/4237/4 2336/4238/4 203/4232/4 +f 2971/3282/1 3163/3728/1 198/4239/1 +f 2972/3285/97 216/4240/97 219/4241/97 3160/3721/97 +f 2973/3288/97 226/4242/97 2349/4243/97 2972/3285/97 +f 2974/4244/1 2971/3282/1 198/4239/1 +f 221/4235/97 3162/3725/97 222/4234/97 +f 2347/4233/97 3160/3721/97 219/4241/97 +f 216/4240/97 2972/3285/97 2349/4243/97 +f 226/4242/97 2973/3288/97 227/4236/97 +f 276/402/651 3187/3840/651 277/403/651 +f 966/1121/651 1023/1178/773 2323/4245/773 +f 2637/2846/773 1038/1195/651 285/4246/651 +f 284/4247/3 285/4248/3 282/4249/774 +f 283/4250/651 1022/1177/651 2639/2848/773 +f 284/4247/3 282/4249/774 289/4225/772 +f 283/4224/3 284/4247/3 289/4225/772 +f 284/4251/651 283/4250/651 1019/1174/651 +f 284/4251/651 1018/1173/651 1015/1170/651 +f 285/4248/3 276/4252/3 282/4249/774 +f 283/4250/651 2639/2848/773 1090/1247/651 +f 1019/1174/651 283/4250/651 1090/1247/651 +f 1038/1195/651 276/402/651 285/4246/651 +f 3039/3479/3 2623/3480/3 2659/3920/3 +f 3308/4253/775 429/4254/1 2405/4255/1 +f 3308/4253/775 872/4256/423 3307/4257/776 +f 3170/3785/423 3198/3868/777 879/4258/423 +f 3171/3788/1 429/4254/1 3308/4253/775 +f 3534/4259/778 442/4260/1 3535/3835/1 +f 3308/4253/775 336/4261/1 335/447/1 +f 1384/1537/4 1383/2955/4 3379/2954/455 +f 3225/4017/4 1384/1537/4 3379/2954/455 +f 967/1122/779 2372/4262/780 964/1119/779 +f 284/4251/651 1014/1169/651 285/4246/651 +f 277/403/651 3208/3919/773 2977/3330/773 +f 429/4254/1 3171/3788/1 426/4263/1 +f 426/4263/1 3172/3790/1 433/4264/1 +f 433/4264/1 2407/4265/1 2406/4266/1 426/4263/1 +f 433/4264/1 3172/3790/1 430/4267/1 +f 430/4267/1 3172/3790/1 2410/4268/1 +f 2410/4268/1 2997/4269/1 2408/4270/1 430/4267/1 +f 2410/4268/1 3172/3790/1 2409/4271/1 +f 2409/4271/1 3535/3835/1 441/4272/1 +f 441/4272/1 2999/4273/1 2998/4274/1 2409/4271/1 +f 441/4272/1 3535/3835/1 438/4275/1 +f 438/4275/1 3535/3835/1 445/4276/1 +f 445/4276/1 3001/4277/1 3000/4278/1 438/4275/1 +f 445/4276/1 3535/3835/1 442/4260/1 +f 442/4260/1 3534/4259/778 449/4279/1 +f 449/4279/1 2411/4280/1 3002/4281/1 442/4260/1 +f 3172/3790/1 426/4263/1 3171/3788/1 +f 3535/3835/1 2409/4271/1 3172/3790/1 +f 1037/1194/651 3039/3479/773 3187/3840/651 +f 722/4229/33 2548/4282/33 3003/4228/33 +f 3312/4283/781 3309/4284/33 3310/4285/782 +f 3347/4286/783 2335/2492/33 2542/4287/784 +f 3347/4286/783 3310/4285/782 2335/2492/33 +f 3310/4285/782 3311/4288/785 3312/4283/781 +f 3310/4285/782 3309/4284/33 2335/2492/33 +f 688/858/166 685/857/166 686/784/257 687/781/257 +f 694/751/185 707/3437/185 706/3451/185 +f 701/4289/69 699/3856/69 700/3453/69 +f 707/3437/185 705/3857/185 706/3451/185 +f 2439/852/164 2437/2667/164 2438/747/164 +f 689/2696/254 2436/4290/254 2435/3850/254 +f 693/2732/393 690/741/393 691/3432/499 692/715/499 +f 698/2728/251 696/721/251 697/2692/251 +f 704/2730/186 702/3440/186 703/2731/186 +f 2436/4290/254 711/3851/254 2435/3850/254 +f 579/734/97 581/2670/97 2473/836/97 2472/2721/558 +f 544/696/97 699/705/97 545/704/97 +f 3197/819/152 3194/3863/152 3195/739/152 3196/3858/152 +f 2492/2706/97 2489/816/97 2490/712/97 2491/834/97 +f 2499/2726/243 2497/2712/243 3194/3863/174 2498/843/174 +f 3197/819/152 3196/3858/152 3193/3428/152 667/820/152 +f 544/696/97 2446/777/97 580/697/97 +f 2505/760/241 2504/825/241 3012/826/259 653/802/259 +f 673/708/97 589/4291/97 544/696/97 +f 550/3864/97 704/4292/97 669/3433/97 +f 610/4293/97 565/706/97 678/4294/97 +f 580/697/97 2445/4295/97 682/698/97 +f 2510/805/162 2509/827/162 665/830/160 664/806/160 +f 555/4296/72 608/3449/718 671/2733/786 +f 570/2664/91 572/673/91 611/2665/373 +f 546/720/81 584/2686/4 599/2688/4 696/721/118 +f 572/673/97 573/3425/97 625/2705/97 641/670/98 +f 544/696/97 570/769/97 674/3443/97 +f 3192/3861/152 3189/3852/152 3190/686/152 3191/685/152 +f 2488/792/97 2486/842/97 660/755/97 2487/758/97 +f 2496/795/97 2495/818/97 666/821/97 643/796/97 +f 3192/3861/152 3191/685/152 3188/2694/152 3021/3843/152 +f 544/696/97 678/4294/97 565/706/97 +f 2503/756/159 2502/846/159 2529/2699/261 651/2700/261 +f 587/3842/97 705/4297/97 544/696/97 +f 597/2661/97 2440/699/97 544/696/97 +f 560/774/97 609/4298/97 594/770/97 +f 2442/4299/97 575/700/97 2440/699/97 +f 2508/848/161 2506/847/161 3189/3852/485 2507/2676/485 +f 710/850/717 555/778/72 708/725/120 +f 570/2664/91 614/2701/468 680/859/659 +f 580/3446/83 582/2669/83 2443/2671/376 +f 695/783/69 701/4289/69 700/3453/69 +f 2463/762/247 2459/761/246 2461/3846/246 2464/3845/247 +f 710/850/163 708/725/163 709/851/163 +f 2497/2712/152 630/736/152 3195/739/152 3194/3863/152 +f 549/669/18 548/668/79 695/783/136 606/3438/18 +f 548/668/79 547/719/80 695/783/136 +f 584/2686/97 546/720/97 2452/832/97 2451/3849/653 +f 582/2669/97 583/2687/97 628/794/97 642/797/660 +f 544/696/97 607/702/97 555/3415/97 +f 544/696/97 705/4297/97 550/3864/97 +f 623/3429/285 2485/2723/285 648/841/248 622/3417/248 +f 3023/817/152 3021/3843/152 3188/2694/152 3022/678/152 +f 2507/2676/97 2493/3862/97 2494/2707/97 2467/2677/97 +f 2494/2707/97 2493/3862/97 655/2725/97 654/2708/97 +f 2462/835/97 629/711/97 662/759/97 2463/762/97 +f 2501/799/488 2500/822/488 2512/823/487 645/800/487 +f 674/855/250 612/2663/250 675/856/250 +f 601/744/495 602/2697/495 689/2696/496 2435/3850/496 +f 585/3442/97 2446/777/97 544/696/97 +f 668/772/97 544/696/97 545/704/97 +f 599/2688/493 598/2689/493 697/2692/497 696/721/497 +f 597/3435/5 596/3421/5 2441/3426/249 2440/4300/249 +f 589/4291/97 711/775/97 544/696/97 +f 679/3444/97 678/4294/97 544/696/97 +f 555/3415/97 710/4301/97 670/3416/97 +f 707/4302/97 550/3864/97 705/4297/97 +f 614/4303/97 570/769/97 613/768/97 +f 570/769/97 612/4304/97 674/3443/97 +f 545/782/80 701/4289/472 695/783/136 +f 698/2728/716 545/782/80 696/721/118 +f 608/3449/252 607/743/252 672/742/252 +f 609/713/253 692/715/253 691/3432/253 +f 560/714/63 562/2679/63 692/715/114 +f 560/714/63 2436/4290/719 689/2696/385 +f 580/3446/83 2448/862/715 683/861/381 +f 575/716/115 577/692/115 687/781/135 +f 659/824/489 2500/822/488 2501/799/488 658/3860/489 +f 3327/4305/95 3328/4306/94 2544/2750/94 2545/2751/95 +f 3327/4305/787 3313/4307/788 3329/4308/788 3330/4309/787 +f 3328/4306/94 3331/4310/93 2546/2752/93 2544/2750/94 +f 3331/4310/93 3332/4311/17 2549/2755/17 2546/2752/93 +f 3332/4311/17 3333/4312/92 2550/2756/92 2549/2755/17 +f 3333/4312/92 3334/4313/91 2551/2757/91 2550/2756/92 +f 3334/4313/91 3335/4314/90 2552/2758/90 2551/2757/91 +f 3335/4314/90 3336/4315/3 2553/2759/3 2552/2758/90 +f 3336/4315/3 3337/4316/173 2554/2760/173 2553/2759/3 +f 3337/4316/173 3201/4317/134 2568/2774/134 2554/2760/173 +f 3313/4307/788 3311/4318/789 3310/4319/790 3329/4308/788 +f 3313/4307/791 3312/4320/792 3311/4318/793 +f 2555/2761/129 3312/4320/792 3327/4305/95 +f 3330/4309/787 3338/4321/794 3328/4306/794 3327/4305/787 +f 3330/4309/95 3329/4308/1 2533/2739/795 2532/2738/95 +f 2532/2738/95 2534/2740/94 3338/4321/94 3330/4309/95 +f 3338/4321/794 3339/4322/405 3331/4310/405 3328/4306/794 +f 2534/2740/94 2535/2741/93 3339/4322/93 3338/4321/94 +f 3339/4322/405 3340/4323/409 3332/4311/409 3331/4310/405 +f 2535/2741/93 2536/2742/17 3340/4323/17 3339/4322/93 +f 3340/4323/409 3341/4324/410 3333/4312/410 3332/4311/409 +f 2536/2742/17 2537/2743/92 3341/4324/92 3340/4323/17 +f 3341/4324/410 3342/4325/411 3334/4313/411 3333/4312/410 +f 2537/2743/92 2538/2744/91 3342/4325/91 3341/4324/92 +f 3342/4325/411 3343/4326/412 3335/4314/412 3334/4313/411 +f 2538/2744/91 2539/2745/90 3343/4326/90 3342/4325/91 +f 3343/4326/412 3344/4327/413 3336/4315/413 3335/4314/412 +f 2539/2745/90 2540/2746/3 3344/4327/3 3343/4326/90 +f 3344/4327/413 3345/4328/414 3337/4316/414 3336/4315/413 +f 2540/2746/3 2541/2747/173 3345/4328/173 3344/4327/3 +f 3345/4328/414 3346/4329/415 3200/4330/415 3201/4317/416 3337/4316/414 +f 2541/2747/173 2567/2773/115 3346/4329/115 3345/4328/173 +f 2567/2773/115 2566/2772/116 3199/4331/116 3346/4329/115 +f 2543/2749/796 3310/4319/797 3347/4332/798 +f 2543/2749/796 3347/4332/798 2542/2748/799 +f 3329/4308/1 3310/4319/797 2533/2739/795 +f 2533/2739/795 3310/4319/797 2543/2749/796 +f 3199/4331/417 3200/4330/415 3346/4329/415 +f 715/4333/33 3312/4283/781 2555/4334/33 +f 715/4333/33 3309/4284/33 3312/4283/781 +f 717/4230/33 3309/4284/33 715/4333/33 714/4335/33 +f 487/2494/33 2542/4287/784 2335/2492/33 +f 740/892/33 739/891/33 3004/4227/33 +f 3309/4284/33 717/4230/33 2322/4226/33 +f 841/997/490 3202/3880/490 2604/3669/146 2856/1021/146 +f 841/997/490 840/996/489 3029/2796/489 3202/3880/490 +f 3348/4336/4 3027/3459/4 2598/2805/707 3349/4337/81 +f 3350/4338/82 2594/2801/706 3027/3459/4 3348/4336/4 +f 3351/4339/83 854/1010/280 3203/4340/83 +f 3351/4339/83 2594/2801/706 3350/4338/82 +f 3352/4341/84 854/1010/280 3351/4339/83 +f 3353/4342/5 2600/2807/5 854/1010/280 3352/4341/84 +f 3354/4343/125 817/972/705 2600/2807/5 3353/4342/5 +f 3355/4344/115 2599/4345/704 3205/4346/115 +f 3355/4344/115 817/972/705 3354/4343/125 +f 3356/4347/173 2599/4345/704 3355/4344/115 +f 3357/4348/74 820/975/710 3132/3665/2 3358/4349/2 +f 3359/4350/75 853/1009/709 3206/4351/75 +f 3359/4350/75 820/975/710 3357/4348/74 +f 3360/4352/77 853/1009/709 3359/4350/75 +f 3361/4353/18 3026/3458/18 853/1009/709 3360/4352/77 +f 3362/4354/79 826/981/708 3026/3458/18 3361/4353/18 +f 3363/4355/80 2598/2805/707 3207/4356/80 +f 3363/4355/80 826/981/708 3362/4354/79 +f 3349/4337/81 2598/2805/707 3363/4355/80 +f 2593/2800/715 2594/2801/706 3203/4340/83 +f 3203/4340/83 854/1010/280 812/967/281 +f 3203/4340/83 2594/2801/706 3351/4339/83 +f 815/970/116 817/972/705 3205/4346/115 +f 3205/4346/115 2599/4345/704 2595/4357/134 +f 3205/4346/115 817/972/705 3355/4344/115 +f 818/973/559 820/975/710 3206/4351/75 +f 3206/4351/75 853/1009/709 821/976/652 +f 3206/4351/75 820/975/710 3359/4350/75 +f 824/979/472 826/981/708 3207/4356/80 +f 3207/4356/80 2598/2805/707 2596/2803/716 +f 3207/4356/80 826/981/708 3363/4355/80 +f 879/4258/423 3198/3868/777 876/3466/777 +f 868/4358/423 871/3465/423 875/4359/423 3031/4360/423 +f 3030/4361/423 872/4256/423 3308/4253/775 +f 875/4359/423 3307/4257/776 872/4256/423 +f 871/3465/423 3169/3781/423 3307/4257/776 875/4359/423 +f 876/3466/777 3169/3781/423 871/3465/423 +f 876/3466/777 3198/3868/777 3169/3781/423 +f 1038/1195/651 1037/1194/651 276/402/651 +f 3208/3919/773 277/403/651 3187/3840/651 +f 965/1120/651 1023/1178/773 966/1121/651 +f 973/1128/651 2650/2859/651 974/1129/651 +f 1014/1169/651 2638/2847/651 285/4246/651 +f 2639/2848/773 2650/2859/651 973/1128/651 +f 2626/2835/773 1091/1248/651 2627/2836/773 +f 1019/1174/651 1018/1173/651 284/4251/651 +f 1019/1174/651 1091/1248/651 2626/2835/773 +f 985/1140/773 2649/2858/651 986/1141/651 +f 1015/1170/651 1014/1169/651 284/4251/651 +f 1015/1170/651 2649/2858/651 985/1140/773 +f 2630/2839/651 2651/2860/651 2631/2840/651 +f 2638/2847/651 1096/1253/651 285/4246/651 +f 2638/2847/651 2651/2860/651 2630/2839/651 +f 2632/2841/773 1095/1252/651 2633/2842/651 +f 2637/2846/773 285/4246/651 1096/1253/651 +f 283/4250/651 2323/4245/773 1023/1178/773 +f 2637/2846/773 1095/1252/651 2632/2841/773 +f 1030/1187/434 1026/1183/434 2641/2850/434 1031/1188/434 +f 1095/1252/651 2637/2846/773 1096/1253/651 +f 2651/2860/651 2638/2847/651 1014/1169/651 +f 2649/2858/651 1015/1170/651 1018/1173/651 +f 1091/1248/651 1019/1174/651 1090/1247/651 +f 2650/2859/651 2639/2848/773 1022/1177/651 +f 3043/3484/800 3070/4362/800 3069/4363/801 3044/3485/802 +f 3043/3484/800 2372/4262/780 3070/4362/800 +f 3043/3484/800 3040/3481/803 2372/4262/780 +f 3041/3482/804 3065/4364/804 3064/4365/3 3042/3483/3 +f 3044/3485/802 3069/4363/801 3065/4364/804 3041/3482/804 +f 1144/4366/2 3556/4367/2 160/4211/2 +f 161/4368/2 1202/4369/2 1130/4370/2 +f 1139/4371/2 1138/4209/2 1133/4372/2 1132/4373/2 +f 3074/4374/2 1145/4375/2 1141/4210/2 1140/4376/2 +f 3075/4377/2 1219/4378/2 1144/4366/2 +f 2229/4205/2 2224/4202/2 162/4196/2 +f 1144/4366/2 1219/4378/2 3556/4367/2 +f 1144/4366/2 160/4211/2 1145/4375/2 +f 161/4368/2 1138/4209/2 160/4211/2 +f 1138/4209/2 161/4368/2 1133/4372/2 +f 1133/4372/2 161/4368/2 1130/4370/2 +f 1130/4370/2 2675/4379/2 1131/4380/2 +f 1130/4370/2 1202/4369/2 1201/4381/2 +f 1130/4370/2 1201/4381/2 2675/4379/2 +f 3070/4362/800 2372/4262/780 3077/4382/805 +f 2372/4262/780 3040/3481/803 964/1119/779 +f 2675/4379/2 1201/4381/2 1208/4383/2 +f 2675/4379/2 1209/4384/2 2676/4385/2 +f 2676/4385/2 1209/4384/2 1123/4386/2 +f 1208/4383/2 1209/4384/2 2675/4379/2 +f 1850/4387/97 3364/4388/97 2762/4389/97 +f 1251/4390/4 3093/3567/4 3094/4391/4 +f 1251/4390/4 3365/4392/4 3093/3567/4 +f 3091/4393/1 3092/4394/1 3096/4395/1 +f 3511/4396/33 3512/4397/33 1253/4398/33 3378/4399/33 +f 3508/4400/338 3507/3580/609 3511/4401/339 3510/4402/337 +f 3489/4403/33 3369/4404/33 3488/4405/33 +f 1252/4406/33 3515/4407/33 3502/4408/33 3365/4392/33 +f 3502/4408/33 3503/4409/33 3365/4392/33 +f 1248/4410/1 3087/4411/1 3215/4412/1 +f 1247/4413/4 3213/3971/4 3214/4414/4 +f 1247/4413/4 3368/2912/4 3213/3971/4 +f 1246/1396/3 3525/1390/3 3374/4415/324 +f 3370/4416/333 3400/4417/3 1850/2009/3 +f 1250/4418/4 3372/4419/806 3373/4420/807 +f 3371/4421/808 3370/4422/809 3366/4423/1 +f 3095/3571/1 3378/4399/1 3091/4393/1 +f 3482/4424/33 3483/4425/33 205/4426/33 +f 3212/3968/1 3369/4404/1 1248/4410/1 +f 3378/4399/1 3367/4427/1 3091/4393/1 +f 3507/3580/609 3509/4428/39 3513/4429/40 3512/3581/41 +f 1336/4430/225 2166/2329/225 2917/3208/810 +f 1337/4431/225 2169/2332/225 2923/3214/225 +f 1337/4431/225 2105/2269/225 2104/2268/225 +f 1336/4432/3 1333/4433/3 1332/1486/811 +f 3142/3678/225 2105/2269/225 1338/1482/225 +f 1338/1482/225 2180/2343/225 3142/3678/225 +f 3219/4005/97 2894/4434/97 2895/4169/97 +f 3379/4435/97 1987/4436/97 3219/4005/97 +f 3224/4437/97 1977/4438/97 1976/4439/97 +f 1393/1546/225 2917/3208/810 1394/1547/225 +f 2708/2958/810 3380/4440/810 1397/1550/225 +f 1397/1550/225 3381/4441/225 1398/1483/225 +f 1122/4442/1 2241/4443/1 2312/2469/1 +f 1122/4442/1 2312/2469/1 2315/2472/1 +f 3546/2974/213 2712/4444/213 3547/4445/213 +f 2713/4446/213 2711/2973/213 2298/4447/213 +f 2713/4446/213 2227/4448/213 2712/4444/213 +f 2713/4446/213 2298/4447/213 2218/4449/213 +f 1399/4450/213 2711/2973/213 2713/4446/213 +f 1402/4451/213 3546/2974/213 2711/2973/213 1399/4450/213 +f 1402/4451/213 2712/4444/213 3546/2974/213 +f 1403/1555/4 2193/4452/4 1404/1556/4 +f 1403/1555/4 3301/4453/4 2916/4454/4 +f 1409/1560/4 2162/4455/4 3099/4456/4 +f 1409/1560/4 2119/4457/4 2929/4458/4 +f 3099/4456/4 2161/4459/4 3143/4460/4 +f 1398/1483/225 3381/4441/225 3140/2921/225 +f 2751/4461/97 3224/4437/97 2755/4462/97 +f 2751/4461/97 1977/4438/97 3224/4437/97 +f 2751/4461/97 2894/4434/97 1977/4438/97 +f 2754/4463/97 2892/4464/97 2751/4461/97 +f 2758/4465/97 2887/4466/97 2754/4463/97 +f 2760/4467/97 1988/4468/97 2758/4465/97 +f 2762/4389/97 3364/4388/97 2760/4467/97 +f 1707/4469/97 1709/4470/97 3242/4471/97 +f 3242/4471/97 1750/4472/97 1710/4473/97 +f 1713/4474/97 1715/4475/97 3247/4476/97 +f 3247/4476/97 2821/4477/97 2801/4478/97 +f 2802/4479/97 2803/4480/97 3252/4481/97 +f 3252/4481/97 1758/4482/97 2804/4483/97 +f 2806/4484/97 1754/4485/97 3257/4486/97 +f 3257/4486/97 1759/4487/97 1716/4488/97 +f 1719/4489/97 1721/4490/97 3262/4491/97 +f 3262/4491/97 2822/4492/97 2807/4493/97 +f 2808/4494/97 2809/4495/97 3267/4496/97 +f 3267/4496/97 1762/4497/97 1722/4498/97 +f 1725/4499/97 1727/4500/97 3272/4501/97 +f 3272/4501/97 1763/4502/97 1728/4503/97 +f 1731/4504/97 1733/4505/97 3277/4506/97 +f 3277/4506/97 1764/4507/97 1734/4508/97 +f 2819/4509/97 3382/4510/97 1715/4475/97 +f 1750/4472/97 3382/4510/97 2819/4509/97 +f 3123/4511/97 3382/4510/97 2803/4480/97 +f 2821/4477/97 3382/4510/97 3123/4511/97 +f 1753/4512/97 3382/4510/97 1754/4485/97 +f 1758/4482/97 3382/4510/97 1753/4512/97 +f 3124/4513/97 3382/4510/97 1721/4490/97 +f 1759/4487/97 3382/4510/97 3124/4513/97 +f 3125/4514/97 3382/4510/97 2809/4495/97 +f 2822/4492/97 3382/4510/97 3125/4514/97 +f 3126/4515/97 3382/4510/97 1727/4500/97 +f 1762/4497/97 3382/4510/97 3126/4515/97 +f 3127/4516/97 3382/4510/97 1733/4505/97 +f 1763/4502/97 3382/4510/97 3127/4516/97 +f 3128/4517/97 3382/4510/97 1709/4470/97 +f 1764/4507/97 3277/4506/97 3382/4510/97 +f 1764/4507/97 3382/4510/97 3128/4517/97 +f 3382/4510/97 3242/4471/97 1709/4470/97 +f 3382/4510/97 3247/4476/97 1715/4475/97 +f 3382/4510/97 3252/4481/97 2803/4480/97 +f 3382/4510/97 3257/4486/97 1754/4485/97 +f 3382/4510/97 3262/4491/97 1721/4490/97 +f 3382/4510/97 3267/4496/97 2809/4495/97 +f 3382/4510/97 3272/4501/97 1727/4500/97 +f 3382/4510/97 3277/4506/97 1733/4505/97 +f 3382/4510/97 1750/4472/97 3242/4471/97 +f 3382/4510/97 2821/4477/97 3247/4476/97 +f 3382/4510/97 1758/4482/97 3252/4481/97 +f 3382/4510/97 1759/4487/97 3257/4486/97 +f 3382/4510/97 2822/4492/97 3262/4491/97 +f 3382/4510/97 1762/4497/97 3267/4496/97 +f 3382/4510/97 1763/4502/97 3272/4501/97 +f 1851/4518/97 1850/4387/97 2762/4389/97 +f 2869/3160/97 1972/2138/97 1964/2136/97 3130/3663/97 +f 3383/4519/1 3134/3667/1 1952/2124/701 3384/4520/95 +f 3384/4520/95 1952/2124/701 3385/4521/94 +f 3385/4521/94 1949/2121/171 3386/4522/93 +f 3385/4521/94 1952/2124/701 3281/4523/94 +f 3386/4522/93 1949/2121/171 1948/2120/17 3387/4524/17 +f 3387/4524/17 1948/2120/17 1954/2126/702 3388/4525/92 +f 3388/4525/92 1954/2126/702 3389/4526/91 +f 3389/4526/91 2874/3165/703 3390/4527/90 +f 3389/4526/91 1954/2126/702 3282/4528/91 +f 3391/4529/3 3390/4527/90 2874/3165/703 3133/3666/3 +f 3391/4530/3 3133/4531/3 2599/4345/704 3356/4347/173 +f 3392/4532/73 1947/2119/711 3393/4533/72 +f 3393/4533/72 1939/2111/712 3394/4534/71 +f 3393/4533/72 1947/2119/711 3283/4535/72 +f 3394/4534/71 1939/2111/712 3131/3664/16 3395/4536/16 +f 3395/4536/16 3131/3664/16 1946/2118/713 3396/4537/67 +f 3396/4537/67 1946/2118/713 3397/4538/63 +f 3397/4538/63 1945/2117/714 3398/4539/62 +f 3397/4538/63 1946/2118/713 3284/4540/63 +f 3398/4539/62 1945/2117/714 3134/3667/1 3383/4519/1 +f 3281/4523/94 1949/2121/171 3385/4521/94 +f 3281/4523/94 1952/2124/701 1931/2103/562 +f 2870/3161/172 1949/2121/171 3281/4523/94 +f 3282/4528/91 2874/3165/703 3389/4526/91 +f 3282/4528/91 1954/2126/702 2871/3162/282 +f 2873/3164/468 2874/3165/703 3282/4528/91 +f 3283/4535/72 1939/2111/712 3393/4533/72 +f 3283/4535/72 1947/2119/711 1934/2106/717 +f 1937/2109/718 1939/2111/712 3283/4535/72 +f 3284/4540/63 1945/2117/714 3397/4538/63 +f 3284/4540/63 1946/2118/713 1940/2112/65 +f 1943/2115/719 1945/2117/714 3284/4540/63 +f 3132/3665/2 1947/2119/711 3392/4532/73 3358/4349/2 +f 2604/3669/97 802/957/97 2869/3160/97 3130/3663/97 +f 1983/4541/97 1982/4542/97 1986/4543/97 2883/4544/97 +f 2886/4545/97 1987/4436/97 3379/4435/97 +f 1986/4543/97 3219/4005/97 1987/4436/97 +f 1982/4542/97 3219/4005/97 1986/4543/97 +f 1977/4438/97 3219/4005/97 1982/4542/97 +f 3364/4388/97 1850/4387/97 3221/4008/97 +f 1988/4468/97 2760/4467/97 3364/4388/97 +f 3136/4010/97 1988/4468/97 3364/4388/97 3221/4008/97 +f 1991/4546/97 2758/4465/97 1988/4468/97 +f 3138/4165/97 2887/4466/97 1991/4546/97 3137/4162/97 +f 2887/4466/97 2758/4465/97 1991/4546/97 +f 2888/4547/97 2754/4463/97 2887/4466/97 +f 2891/4168/97 2892/4464/97 2888/4547/97 3139/4166/97 +f 2892/4464/97 2754/4463/97 2888/4547/97 +f 2894/4434/97 3219/4005/97 1977/4438/97 +f 2894/4434/97 2751/4461/97 2892/4464/97 +f 3381/4441/225 1397/1550/225 3380/4440/810 +f 2956/3690/3 2240/3676/3 3140/2921/3 +f 2916/4454/4 2911/4548/4 2910/4549/4 +f 2069/2233/225 2167/2330/225 2070/2234/225 +f 2073/4550/4 2192/4551/4 2074/4552/4 +f 2070/2234/225 2167/2330/225 2076/2240/810 +f 2920/4553/4 2192/4551/4 2073/4550/4 +f 2076/2240/810 2166/2329/225 1336/4430/225 +f 2921/3212/810 2936/3226/225 2922/3213/810 +f 2085/4554/4 2187/4555/4 2086/4556/4 +f 2922/3213/810 2936/3226/225 2923/3214/225 +f 2088/4557/4 2187/4555/4 2085/4554/4 +f 1336/4430/225 1337/4431/225 2923/3214/225 +f 2097/2261/225 2170/2333/225 2098/2262/225 +f 2924/4558/4 2941/4559/4 3141/4560/4 +f 2098/2262/225 2170/2333/225 2104/2268/225 +f 2100/4561/4 2941/4559/4 2924/4558/4 +f 2104/2268/225 2169/2332/225 1337/4431/225 +f 2113/2277/225 2938/3228/225 2114/2278/225 +f 2925/4562/4 2942/4563/4 2926/4564/4 +f 2114/2278/225 2938/3228/225 3142/3678/225 +f 2116/4565/4 2942/4563/4 2925/4562/4 +f 2076/2240/810 1336/4430/225 2923/3214/225 2077/2241/225 +f 2927/3218/225 2181/2344/225 2928/3219/810 +f 2125/4566/4 2943/4567/4 2126/4568/4 +f 2928/3219/810 2181/2344/225 2128/2292/810 +f 2929/4458/4 2943/4567/4 2125/4566/4 +f 1404/1556/4 2193/4452/4 2920/4553/4 +f 1404/1556/4 2188/4569/4 2088/4557/4 +f 1404/1556/4 2091/4570/4 1408/1559/4 +f 1408/1559/4 2091/4570/4 2100/4561/4 +f 1408/1559/4 2103/4571/4 2116/4565/4 +f 1408/1559/4 2119/4457/4 1409/1560/4 +f 2161/4459/4 3099/4456/4 2162/4455/4 +f 2162/4455/4 1409/1560/4 2929/4458/4 +f 2166/2329/225 2076/2240/810 2167/2330/225 +f 2192/4551/4 2920/4553/4 2193/4452/4 +f 2193/4452/4 1403/1555/4 2916/4454/4 +f 2187/4555/4 2088/4557/4 2188/4569/4 +f 2188/4569/4 1404/1556/4 2920/4553/4 +f 2077/2241/225 2923/3214/225 2936/3226/225 +f 2941/4559/4 2100/4561/4 2091/4570/4 +f 2091/4570/4 1404/1556/4 2088/4557/4 +f 2169/2332/225 2104/2268/225 2170/2333/225 +f 2942/4563/4 2116/4565/4 2103/4571/4 +f 2103/4571/4 1408/1559/4 2100/4561/4 +f 2105/2269/225 3142/3678/225 2938/3228/225 +f 2943/4567/4 2929/4458/4 2119/4457/4 +f 2119/4457/4 1408/1559/4 2116/4565/4 +f 2180/2343/225 1338/1482/225 2128/2292/810 +f 2180/2343/225 2128/2292/810 2181/2344/225 +f 3555/3488/4 3297/4184/4 1403/3599/4 +f 3554/2360/4 2196/2359/4 3555/3488/4 +f 2196/2359/4 3304/4194/4 3555/3488/4 +f 3149/4572/1 2303/2460/1 2271/4573/1 +f 1126/4574/1 3566/4575/1 1121/4576/1 +f 1121/4576/1 3566/4575/1 2241/4443/1 +f 1125/4577/1 3571/4578/1 1126/4574/1 +f 2218/4449/213 2298/4447/213 2965/4579/213 2215/4580/213 +f 2219/4581/213 2713/4446/213 2218/4449/213 +f 2219/4581/213 2222/4582/213 2223/4583/213 2226/4584/213 +f 2226/4584/213 2713/4446/213 2219/4581/213 +f 2227/4448/213 2713/4446/213 2226/4584/213 +f 2227/4448/213 2230/4585/213 2231/4586/213 2234/4587/213 +f 2234/4587/213 2712/4444/213 2227/4448/213 +f 2235/4588/213 2712/4444/213 2234/4587/213 +f 2235/4588/213 2316/4589/213 2712/4444/213 +f 2238/4590/213 2317/4591/213 2316/4589/213 2235/4588/213 +f 3298/4185/4 3555/3488/4 3304/4194/4 +f 3297/4184/4 3555/3488/4 3298/4185/4 +f 3301/4190/4 1403/3599/4 3297/4184/4 +f 2911/4548/4 2916/4454/4 3301/4453/4 +f 2241/4443/1 1122/4442/1 1121/4576/1 +f 3566/4575/1 1126/4574/1 3571/4578/1 +f 2244/4592/1 2312/2469/1 2241/4443/1 +f 3154/4593/1 2248/4594/1 2244/4592/1 3153/4595/1 +f 2248/4594/1 2312/2469/1 2244/4592/1 +f 2251/4596/1 2312/2469/1 2248/4594/1 +f 3156/4597/1 2256/4598/1 2251/4596/1 3155/4599/1 +f 2256/4598/1 2311/2468/1 2251/4596/1 +f 2259/4600/1 2311/2468/1 2256/4598/1 +f 3305/4601/1 2264/4602/1 2259/4600/1 3157/4603/1 +f 2264/4602/1 2304/2461/1 2259/4600/1 +f 2267/4604/1 2304/2461/1 2264/4602/1 +f 2960/4605/1 2268/4606/1 2267/4604/1 3306/4607/1 +f 2268/4606/1 2304/2461/1 2267/4604/1 +f 2271/4573/1 2303/2460/1 2268/4606/1 +f 2961/4608/1 3149/4572/1 2271/4573/1 +f 2299/4609/213 2298/4447/213 2711/2973/213 +f 2303/2460/1 3149/4572/1 2300/2457/1 +f 2300/2457/1 3149/4572/1 3148/4610/1 +f 2304/2461/1 2268/4606/1 2303/2460/1 +f 2304/2461/1 2307/2464/1 2308/2465/1 2311/2468/1 +f 2311/2468/1 2259/4600/1 2304/2461/1 +f 2312/2469/1 2251/4596/1 2311/2468/1 +f 3547/4445/213 2712/4444/213 2316/4589/213 +f 1332/4611/690 3519/4612/812 1329/4613/690 +f 2335/4614/4 3164/3741/4 3162/3725/4 +f 2335/4614/4 3309/4615/4 3164/3741/4 +f 3160/3721/1 3161/3724/1 200/4616/1 +f 2973/4617/4 2321/4618/4 2335/4614/4 +f 2972/4619/1 3160/3721/1 200/4616/1 +f 3558/3932/212 2663/4620/3 1/4621/3 +f 3168/3777/97 2605/4622/97 3308/4623/97 +f 2966/3267/97 739/3266/97 3399/4624/97 +f 2966/3267/97 3399/4624/97 887/4625/97 3032/3906/97 +f 3308/4623/97 2605/4622/97 3030/4626/97 +f 3170/4627/97 878/4628/97 3006/4629/97 +f 2374/4630/213 1198/4631/213 1197/4632/213 +f 3549/4633/213 364/4634/213 363/4635/213 +f 364/4634/213 1143/4636/213 356/4637/213 +f 364/4634/213 1220/4638/213 2657/4639/213 +f 356/4637/213 2374/4630/213 353/4640/213 +f 353/4640/213 2374/4630/213 3549/4633/213 363/4635/213 +f 3564/4641/813 1024/4642/513 3567/3935/299 +f 2375/3942/681 1149/3478/201 3038/3477/201 +f 3006/4629/97 2608/4643/97 3005/4644/97 +f 3005/4644/97 895/4645/97 3007/4646/97 +f 3007/4646/97 887/4625/97 3008/4647/97 +f 3008/4647/97 3399/4624/97 3009/4648/97 +f 3009/4648/97 739/3266/97 738/4649/97 +f 3009/4648/97 3399/4624/97 739/3266/97 +f 2515/3448/152 2512/823/152 2513/677/152 2514/749/152 +f 2448/862/168 2446/3844/168 2447/863/168 +f 572/673/91 570/2664/91 680/859/659 +f 2452/832/153 2449/831/153 2450/844/175 2451/3849/175 +f 573/3425/90 572/673/91 680/859/659 +f 572/673/91 571/672/92 611/2665/373 +f 622/3417/558 621/788/97 558/4650/97 559/3419/97 +f 2527/2709/152 2525/814/152 2528/2683/152 2526/2682/152 +f 620/3420/111 619/690/97 556/689/97 557/779/97 +f 2527/2709/152 2526/2682/152 2523/4651/152 2524/2710/152 +f 3010/813/152 2531/3859/152 2528/2683/152 2525/814/152 +f 2465/671/156 2462/835/156 2463/762/247 2464/3845/247 +f 568/3847/93 567/733/94 600/2674/560 +f 2469/694/177 2466/2672/177 2467/2677/178 2468/695/178 +f 571/672/92 569/3848/17 592/2673/17 611/2665/373 +f 569/3848/17 568/3847/93 600/2674/560 592/2673/17 +f 2531/3859/814 3318/2652/814 2428/2653/380 2528/2683/379 +f 2522/809/152 2521/3422/152 2520/3423/152 2517/810/152 +f 2526/2682/378 3317/2654/378 2429/2655/554 2523/4651/553 +f 2519/3430/152 2517/810/152 2520/3423/152 2518/2693/152 +f 2522/809/152 2524/2678/152 2523/3427/152 2521/3422/152 +f 2479/838/97 2478/808/97 647/811/97 646/2704/97 +f 566/732/95 564/2695/1 602/2697/1 2437/2667/374 +f 2483/789/97 2480/840/97 2481/2711/97 2482/790/97 +f 567/733/94 566/732/95 2437/2667/374 +f 567/733/94 565/2666/94 600/2674/560 +f 3319/2650/815 632/2715/815 3011/2717/816 2426/2649/817 +f 652/803/262 2488/792/141 624/731/141 2460/730/262 +f 3318/2652/814 2531/3859/814 2530/2716/818 2427/2651/819 +f 654/2708/392 2492/2706/390 625/2705/390 626/766/392 +f 557/779/72 556/689/73 708/725/120 +f 557/4652/72 555/4296/72 671/2733/786 +f 552/752/75 550/3436/75 694/751/131 +f 562/2679/63 560/714/63 689/2696/385 +f 553/750/74 552/752/75 694/751/131 +f 552/752/75 551/3424/77 702/3440/561 +f 567/733/97 568/3847/97 2461/3846/97 2460/730/124 +f 2515/3448/152 2514/749/152 2511/2714/152 657/2713/152 +f 564/2695/97 566/732/97 624/731/97 640/793/820 +f 2519/3430/152 2518/2693/152 2516/682/152 659/824/152 +f 2442/717/184 2440/4300/184 2441/3426/184 +f 2445/2736/165 2443/2671/165 2444/2737/165 +f 636/787/658 2452/832/97 546/720/97 547/719/97 +f 2455/2720/182 2453/798/182 644/801/183 2454/666/183 +f 2457/2681/377 623/3429/97 561/3418/97 562/2679/97 +f 2458/833/154 2456/757/154 650/2724/263 2457/2681/263 +f 640/793/820 2458/833/97 563/2680/97 564/2695/97 +f 2461/3846/246 2459/761/246 652/803/262 2460/730/262 +f 2514/749/130 2434/748/130 3314/2660/657 2511/2714/656 +f 2473/836/157 2470/804/157 2471/807/176 2472/2721/176 +f 632/2715/815 3319/2650/815 2427/2651/819 2530/2716/818 +f 2475/785/97 2474/3447/97 656/2727/97 637/786/97 +f 3014/3853/821 3320/2648/821 2426/2649/817 3011/2717/816 +f 2477/2702/97 2476/2722/97 658/3860/97 639/2703/97 +f 2431/2659/382 2518/2693/382 2520/3423/552 2430/2658/551 +f 650/2724/263 2485/2723/285 623/3429/285 2457/2681/263 +f 3320/2648/821 3014/3853/821 3013/729/123 2425/728/122 +f 559/3419/16 558/4650/71 671/2733/786 693/2732/16 +f 2424/727/121 633/726/121 3016/2719/655 3321/2647/654 +f 558/4650/71 557/4652/72 671/2733/786 +f 557/4652/97 558/4650/97 621/788/97 620/791/111 +f 2485/2723/97 2484/812/97 649/815/97 648/841/97 +f 569/3848/97 571/672/97 2465/671/97 2464/3845/96 +f 3024/4653/97 3170/4627/97 3006/4629/97 +f 787/943/97 3350/4338/97 3348/4336/97 788/944/822 +f 792/948/97 3352/4341/97 3351/4339/97 790/946/377 +f 796/952/97 3354/4343/97 3353/4342/97 794/950/823 +f 3025/3456/97 3356/4347/97 3355/4344/97 798/953/824 +f 800/955/97 3357/4348/97 3358/4349/97 801/956/110 +f 806/961/97 3360/4352/97 3359/4350/97 804/959/132 +f 810/965/97 3362/4354/97 3361/4353/97 808/963/825 +f 2592/2799/97 3349/4337/97 3363/4355/97 811/966/658 +f 3350/4338/97 787/943/97 790/946/377 3351/4339/97 +f 3352/4341/97 792/948/97 794/950/823 3353/4342/97 +f 3354/4343/97 796/952/97 798/953/824 3355/4344/97 +f 3356/4347/97 3025/3456/97 2867/3457/133 3391/4530/97 +f 3357/4348/97 800/955/97 804/959/132 3359/4350/97 +f 3360/4352/97 806/961/97 808/963/825 3361/4353/97 +f 3362/4354/97 810/965/97 811/966/658 3363/4355/97 +f 3349/4337/97 2592/2799/97 788/944/822 3348/4336/97 +f 2571/2778/661 2572/2779/557 864/1020/556 2597/2804/661 +f 2573/2780/555 2574/2781/388 828/983/387 827/982/555 +f 2575/2782/386 2576/2783/109 831/987/108 830/986/386 +f 2577/2784/107 2846/3137/383 835/991/384 834/990/107 +f 2578/2785/382 2580/2787/106 839/995/105 838/994/382 +f 2581/2788/99 2582/2789/100 843/999/101 842/998/99 +f 2583/2790/130 2584/2791/657 847/1003/656 846/1002/130 +f 2570/2777/126 2569/2776/127 850/1007/128 849/1006/126 +f 2597/2804/661 850/1007/128 2569/2776/127 2571/2778/661 +f 827/982/555 864/1020/556 2572/2779/557 2573/2780/555 +f 830/986/386 828/983/387 2574/2781/388 2575/2782/386 +f 834/990/107 831/987/108 2576/2783/109 2577/2784/107 +f 838/994/382 866/1022/552 2579/2786/551 2578/2785/382 +f 842/998/99 839/995/105 2580/2787/106 2581/2788/99 +f 846/1002/130 843/999/101 2582/2789/100 2583/2790/130 +f 849/1006/126 847/1003/656 2584/2791/657 2570/2777/126 +f 879/4654/97 878/4628/97 3170/4627/97 +f 3031/4655/97 2606/4656/97 869/4657/97 868/4658/97 +f 2605/4622/97 3168/3777/97 2606/4656/97 +f 2606/4656/97 3168/3777/97 869/4657/97 +f 869/4657/97 3168/3777/97 878/4628/97 +f 878/4628/97 3168/3777/97 2607/4659/97 +f 878/4628/97 2607/4659/97 3006/4629/97 +f 3399/4624/97 3008/4647/97 887/4625/97 +f 887/4625/97 3007/4646/97 884/3476/97 +f 884/3476/97 3007/4646/97 895/4645/97 +f 895/4645/97 3005/4644/97 892/4660/97 +f 892/4660/97 3005/4644/97 2608/4643/97 +f 2608/4643/97 3006/4629/97 2607/4659/97 +f 3033/3473/97 884/3476/97 895/4645/97 3034/3907/97 +f 3035/3912/97 892/4660/97 2608/4643/97 3036/3910/97 +f 3037/3779/97 2607/4659/97 3168/3777/97 +f 168/4212/3 1/4621/3 2671/4661/3 +f 1131/4662/213 2675/4663/213 1198/4631/213 1128/4664/213 +f 1128/4664/213 356/4637/213 1135/4665/213 +f 1128/4664/213 1198/4631/213 356/4637/213 +f 1135/4665/213 356/4637/213 1136/4666/213 +f 1136/4666/213 356/4637/213 1143/4636/213 +f 1136/4666/213 1139/4667/213 1132/4668/213 1135/4665/213 +f 1143/4636/213 364/4634/213 2658/4669/213 +f 2658/4669/213 364/4634/213 2657/4639/213 +f 2658/4669/213 3074/4670/213 1140/4671/213 1143/4636/213 +f 2657/4639/213 1220/4638/213 1219/4672/213 3075/4673/213 +f 2370/4674/57 3554/2360/57 3555/3488/57 +f 1152/4675/3 3558/3932/212 3570/4676/212 +f 1157/4677/3 3558/3932/212 1152/4675/3 +f 2661/3954/3 1157/4677/3 1152/4675/3 2660/3953/3 +f 1160/4678/3 3558/3932/212 1157/4677/3 +f 2663/4620/3 3558/3932/212 1160/4678/3 +f 3079/3956/3 2663/4620/3 1160/4678/3 2662/3955/3 +f 2664/4679/3 1/4621/3 2663/4620/3 +f 2667/4680/3 1/4621/3 2664/4679/3 +f 3081/3958/3 2667/4680/3 2664/4679/3 3080/3957/3 +f 2668/4681/3 1/4621/3 2667/4680/3 +f 2671/4661/3 1/4621/3 2668/4681/3 +f 3083/3960/3 2671/4661/3 2668/4681/3 3082/3959/3 +f 2272/4682/3 2275/4683/3 167/4684/3 +f 3084/3952/3 166/3934/3 2672/4213/3 +f 1198/4631/213 2374/4630/213 356/4637/213 +f 3548/4685/213 364/4634/213 3549/4633/213 +f 1220/4638/213 364/4634/213 3548/4685/213 +f 1850/2009/33 2748/4686/33 3366/4687/33 +f 1333/4026/4 2200/2364/4 3089/4688/4 +f 1333/4026/4 2208/4689/4 2200/2364/4 +f 3089/4688/4 3237/4076/4 3400/4690/4 +f 3089/4688/4 2199/2363/4 2944/3234/4 +f 3400/4690/4 3235/4073/4 1850/4387/4 +f 3091/3564/33 3401/4691/826 3406/4692/827 +f 3091/3564/33 1819/4693/828 1848/3662/33 +f 3091/3564/33 3367/4694/33 3401/4691/826 +f 3366/4687/33 1827/4695/33 3367/4694/33 +f 3093/3567/33 1300/4696/33 1303/4697/33 3095/3571/33 +f 3095/3571/33 2688/4698/33 1326/4699/33 3378/4399/33 +f 204/4700/33 205/4426/33 3483/4425/33 3470/4701/33 +f 3212/3968/33 1317/4702/33 1313/4703/33 3369/4404/33 +f 3213/3971/33 1308/4704/33 1318/4705/33 3212/3968/33 +f 3214/3974/532 1365/4706/532 2700/4707/532 3090/4708/532 +f 3215/3982/532 1375/4709/532 1366/4710/532 3214/3974/532 +f 3378/4399/33 1325/4711/33 2691/4712/33 3365/4392/33 +f 3369/4404/33 1312/4713/33 1323/4714/33 3368/2912/33 +f 3489/4715/339 3490/4716/609 3493/4717/41 +f 3368/2912/33 1322/4718/33 1309/4719/33 3213/3971/33 +f 3503/4720/340 3506/2916/341 3508/4400/338 3510/4402/337 +f 3365/4392/33 1304/4721/33 1307/4722/33 3093/3567/33 +f 3496/4723/533 3499/4724/644 3500/4725/534 +f 3515/4407/33 1252/4406/33 3514/4726/33 +f 3515/4727/533 3504/2914/443 3502/4728/534 +f 3513/4429/40 3509/4428/39 3505/2915/223 3514/4729/224 +f 3087/4730/532 2702/4731/532 1376/4732/532 3215/3982/532 +f 3090/4708/532 1369/4733/532 1372/4734/532 3087/4730/532 +f 1300/4696/33 3093/3567/33 1307/4722/33 +f 2688/4698/33 3095/3571/33 1303/4697/33 +f 1325/4711/33 3378/4399/33 1326/4699/33 +f 1304/4721/33 3365/4392/33 2691/4712/33 +f 1308/4704/33 3213/3971/33 1309/4719/33 +f 1317/4702/33 3212/3968/33 1318/4705/33 +f 1312/4713/33 3369/4404/33 1313/4703/33 +f 1322/4718/33 3368/2912/33 1323/4714/33 +f 1375/4709/532 3215/3982/532 1376/4732/532 +f 1365/4706/532 3214/3974/532 1366/4710/532 +f 1369/4733/532 3090/4708/532 2700/4707/532 +f 2702/4731/532 3087/4730/532 1372/4734/532 +f 3402/2956/456 2885/4735/291 3379/2954/455 +f 3379/2954/455 1479/4736/4 3225/4017/4 +f 3379/2954/455 2885/4735/291 2886/4737/291 +f 3222/4011/291 3223/4013/829 1979/4738/829 +f 3225/4017/4 1482/4739/4 3226/4020/4 +f 3308/4253/775 3307/4257/776 336/4261/1 +f 2705/2960/3 2044/4740/3 2047/4741/3 2708/2958/3 +f 2708/2958/3 2048/4742/3 2051/4743/3 3380/4440/3 +f 3113/4744/4 1479/4736/4 3379/2954/455 +f 1482/4739/4 3225/4017/4 1479/4736/4 +f 1482/4739/4 3114/4745/4 3115/4746/4 1483/4747/4 +f 1483/4747/4 3226/4020/4 1482/4739/4 +f 1486/4748/4 3116/4749/4 1487/4750/4 1489/4751/4 +f 1486/4748/4 3226/4020/4 1483/4747/4 +f 1489/4751/4 3226/4020/4 1486/4748/4 +f 1490/4752/4 1492/4753/4 2740/4754/4 1493/4755/4 +f 1490/4752/4 3226/4020/4 1489/4751/4 +f 1493/4755/4 3543/4071/4 1490/4752/4 +f 1496/4756/4 2741/4757/4 3117/4758/4 2742/4759/4 +f 1496/4756/4 3543/4071/4 1493/4755/4 +f 2742/4759/4 3543/4071/4 1496/4756/4 +f 2743/4760/4 3118/4761/4 2744/4762/4 1501/2573/4 +f 2743/4760/4 3543/4071/4 2742/4759/4 +f 1501/2573/4 3541/2572/359 2743/4760/4 +f 2370/4763/830 2369/4764/831 3538/4765/832 3539/4766/833 +f 3226/4020/4 1490/4752/4 3543/4071/4 +f 3543/4071/4 2743/4760/4 3541/2572/359 +f 3235/4073/4 3400/4690/4 3237/4076/4 +f 3235/4073/4 3221/4008/4 1850/4387/4 +f 3237/4076/4 3089/4688/4 2944/3234/4 +f 3560/2944/834 3565/4767/212 3569/4768/835 3099/4769/836 2909/2945/813 +f 2748/4686/33 1850/2009/33 1849/2008/33 +f 2748/4686/33 2750/4770/33 3366/4687/33 +f 2750/4770/33 3403/4771/33 3366/4687/33 +f 2750/4770/33 2836/4772/33 3403/4771/33 +f 3366/4687/33 3403/4771/33 1827/4695/33 +f 3404/4773/33 3407/4774/837 3401/4691/826 +f 3404/4773/33 3367/4694/33 1847/4775/33 +f 3401/4691/826 3367/4694/33 3404/4773/33 +f 3238/4077/97 1704/1886/838 1703/1885/97 3276/4116/97 +f 3240/4079/97 1790/1950/658 2788/3077/97 3239/4078/97 +f 3243/4082/97 1683/1862/825 1682/1861/97 3241/4080/97 +f 3245/4084/97 1687/1866/98 1686/1865/97 3244/4083/97 +f 3248/4087/97 2790/3079/133 2789/3078/97 3246/4085/97 +f 3250/4089/97 1791/1951/111 2791/3080/97 3249/4088/97 +f 3253/4092/97 1691/1870/823 1690/1869/97 3251/4090/97 +f 3255/4094/97 1695/1874/377 1694/1873/97 3254/4093/97 +f 3258/4097/97 1792/1952/822 2792/3081/97 3256/4095/97 +f 3260/4099/97 1698/1878/124 1697/1877/97 3259/4098/97 +f 3263/4102/97 2794/3083/825 2793/3082/97 3261/4100/97 +f 3265/4104/97 2796/3085/98 2795/3084/97 3264/4103/97 +f 3268/4108/97 2798/3087/110 2797/3086/97 3266/4106/97 +f 3270/4110/97 1794/1953/824 2799/3088/97 3269/4109/97 +f 3273/4113/97 1701/1882/823 1700/1881/97 3271/4111/97 +f 3275/4115/97 1796/1954/660 2800/3089/97 3274/4114/97 +f 1538/1690/821 1537/1689/839 1602/1756/816 1601/1755/821 +f 1542/1694/121 1540/1692/122 1604/1759/123 2781/3070/121 +f 1547/1699/119 1544/1696/654 2782/3071/655 3120/3652/119 +f 1550/1702/102 1548/1700/103 1607/1762/104 1606/1761/102 +f 1554/1706/107 1552/1704/383 1609/1765/384 1611/1767/107 +f 1558/1710/386 1556/1708/109 1613/1769/108 1615/1771/386 +f 1562/1714/555 1560/1712/388 1617/1773/387 2783/3072/555 +f 1566/1718/661 1564/1716/557 1620/1776/556 1619/1775/661 +f 1570/1722/126 1568/1720/840 1622/1779/128 2784/3073/126 +f 1574/1726/130 1572/1724/657 1625/1782/656 1624/1781/130 +f 1578/1730/99 1576/1728/100 1627/1785/101 1629/1787/99 +f 1582/1736/382 1580/1735/106 1632/1792/105 1634/1791/382 +f 1586/1740/550 1584/1738/551 1635/1795/552 1637/1797/550 +f 1590/1744/378 1588/1742/554 1639/1799/553 2785/3074/378 +f 1594/1748/814 1592/1746/380 1642/1802/379 1641/1801/814 +f 1598/1752/815 1596/1750/819 1644/1805/818 2786/3075/815 +f 1601/1755/821 1604/1759/123 1540/1692/122 1538/1690/821 +f 2781/3070/121 2782/3071/655 1544/1696/654 1542/1694/121 +f 3120/3652/119 1607/1762/104 1548/1700/103 1547/1699/119 +f 1606/1761/102 1609/1765/384 1552/1704/383 1550/1702/102 +f 1611/1767/107 1613/1769/108 1556/1708/109 1554/1706/107 +f 1615/1771/386 1617/1773/387 1560/1712/388 1558/1710/386 +f 2783/3072/555 1620/1776/556 1564/1716/557 1562/1714/555 +f 1619/1775/661 1622/1779/128 1568/1720/840 1566/1718/661 +f 2784/3073/126 1625/1782/656 1572/1724/657 1570/1722/126 +f 1624/1781/130 1627/1785/101 1576/1728/100 1574/1726/130 +f 1629/1787/99 1632/1789/105 1580/1732/106 1578/1730/99 +f 1634/1791/382 1635/1795/552 1584/1738/551 1582/1736/382 +f 1637/1797/550 1639/1799/553 1588/1742/554 1586/1740/550 +f 2785/3074/378 1642/1802/379 1592/1746/380 1590/1744/378 +f 1641/1801/814 1644/1805/818 1596/1750/819 1594/1748/814 +f 2786/3075/815 1602/1756/816 1537/1689/839 1598/1752/815 +f 1704/1886/838 3238/4077/97 3239/4078/97 2788/3077/97 +f 1790/1950/658 3240/4079/97 3241/4080/97 1682/1861/97 +f 1683/1862/825 3243/4082/97 3244/4083/97 1686/1865/97 +f 1687/1866/98 3245/4084/97 3246/4085/97 2789/3078/97 +f 2790/3079/133 3248/4087/97 3249/4088/97 2791/3080/97 +f 1791/1951/111 3250/4089/97 3251/4090/97 1690/1869/97 +f 1691/1870/823 3253/4092/97 3254/4093/97 1694/1873/97 +f 1695/1874/377 3255/4094/97 3256/4095/97 2792/3081/97 +f 1792/1952/822 3258/4097/97 3259/4098/97 1697/1877/97 +f 1698/1878/124 3260/4099/97 3261/4100/97 2793/3082/97 +f 2794/3083/825 3263/4102/97 3264/4103/97 2795/3084/97 +f 2796/3112/98 3265/4105/97 3266/4106/97 2797/3086/97 +f 2798/3087/110 3268/4108/97 3269/4109/97 2799/3088/97 +f 1794/1953/824 3270/4110/97 3271/4111/97 1700/1881/97 +f 1701/1882/823 3273/4113/97 3274/4114/97 2800/3089/97 +f 1796/1954/660 3275/4115/97 3276/4116/97 1703/1885/97 +f 3408/4776/841 3409/4777/842 3410/4778/842 3411/4779/841 +f 3405/4780/843 3404/4781/844 3408/4776/82 +f 3409/4777/842 3412/4782/617 3413/4783/617 3410/4778/842 +f 3412/4782/617 3414/4784/618 3415/4785/618 3413/4783/617 +f 3414/4784/618 3416/4786/620 3417/4787/620 3415/4785/618 +f 3416/4786/620 3418/4788/415 3419/4789/415 3417/4787/620 +f 3418/4788/415 3420/4790/414 3421/4791/414 3419/4789/415 +f 3420/4790/414 3422/4792/413 3423/4793/413 3421/4791/414 +f 3422/4792/413 3424/4794/412 3425/4795/412 3423/4793/413 +f 3424/4794/412 3279/4796/621 3280/4797/411 3426/4798/411 3425/4795/412 +f 2823/3113/82 2824/3114/83 3409/4777/83 3408/4776/82 +f 2824/3114/83 2826/3116/84 3412/4782/84 3409/4777/83 +f 2826/3116/84 2827/3117/5 3414/4784/5 3412/4782/84 +f 2827/3117/5 2829/3119/125 3416/4786/125 3414/4784/5 +f 2829/3119/125 2830/3120/115 3418/4788/115 3416/4786/125 +f 2830/3120/115 2831/3121/173 3420/4790/173 3418/4788/115 +f 2831/3121/173 2832/3122/3 3422/4792/3 3420/4790/173 +f 2832/3122/3 2833/3123/90 3424/4794/90 3422/4792/3 +f 2833/3123/90 2835/3125/468 3279/4796/468 3424/4794/90 +f 3411/4779/82 3410/4778/83 1799/1957/83 1798/1956/82 +f 3411/4779/841 3427/4799/845 3405/4780/845 3408/4776/841 +f 1798/1956/82 1822/1980/846 3427/4799/4 3411/4779/82 +f 3410/4778/83 3413/4783/84 1801/1959/84 1799/1957/83 +f 3413/4783/84 3415/4785/5 1803/1961/5 1801/1959/84 +f 3415/4785/5 3417/4787/125 1805/1963/125 1803/1961/5 +f 3417/4787/125 3419/4789/115 1807/1965/115 1805/1963/125 +f 3419/4789/115 3421/4791/173 1809/1967/173 1807/1965/115 +f 3421/4791/173 3423/4793/3 1811/1969/3 1809/1967/173 +f 3423/4793/3 3425/4795/90 1813/1971/90 1811/1969/3 +f 3425/4795/90 3426/4798/91 1815/1973/91 1813/1971/90 +f 3426/4798/91 3278/4800/282 1824/1982/282 1815/1973/91 +f 3426/4798/411 3280/4797/411 3278/4800/623 +f 1820/1978/847 3401/4801/848 1822/1980/846 +f 3427/4799/845 3401/4801/849 3407/4802/850 3405/4780/845 +f 1822/1980/846 3401/4801/848 3427/4799/4 +f 1826/4803/33 1847/4775/33 3367/4694/33 1827/4695/33 +f 2825/4804/33 3404/4773/33 1847/4775/33 +f 1819/4693/828 3091/3564/33 3406/4692/827 +f 1819/1977/851 3406/4805/852 1820/1978/847 +f 3406/4805/852 3401/4801/848 1820/1978/847 +f 3407/4802/853 3404/4781/844 3405/4780/843 +f 3383/4519/97 1928/2100/820 1927/2099/97 3398/4539/97 +f 3385/4521/97 2861/3152/658 2860/3151/97 3384/4520/97 +f 3387/4524/97 2863/3154/825 2862/3153/97 3386/4522/97 +f 3389/4526/97 2865/3156/132 2864/3155/97 3388/4525/97 +f 3391/4529/97 2867/3158/133 2866/3157/97 3390/4527/97 +f 3393/4533/97 1973/2139/111 2868/3159/97 3392/4532/97 +f 3395/4536/97 1922/2092/823 1921/2091/97 3394/4534/97 +f 3397/4538/97 1925/2096/660 1924/2095/97 3396/4537/97 +f 2839/3129/821 2838/3128/839 1886/2047/816 1885/2046/821 +f 2841/3131/121 2840/3130/122 1888/2050/123 1890/2052/121 +f 2843/3133/119 2842/3132/654 1892/2054/655 1894/2056/119 +f 2845/3135/102 2844/3134/103 1896/2058/104 1898/2060/102 +f 2847/3138/550 2579/2786/551 866/1022/552 2855/3146/550 +f 2849/3140/378 2848/3139/554 1965/3147/553 2857/3148/378 +f 2851/3142/814 2850/3141/380 1902/2065/379 1901/2064/814 +f 2853/3144/815 2852/3143/819 1904/2068/818 2858/3149/815 +f 1885/2046/821 1888/2050/123 2840/3130/122 2839/3129/821 +f 1890/2052/121 1892/2054/655 2842/3132/654 2841/3131/121 +f 1894/2056/119 1896/2058/104 2844/3134/103 2843/3133/119 +f 1898/2060/102 835/2062/384 2846/3136/383 2845/3135/102 +f 2855/3146/550 1965/3147/553 2848/3139/554 2847/3138/550 +f 2857/3148/378 1902/2065/379 2850/3141/380 2849/3140/378 +f 1901/2064/814 1904/2068/818 2852/3143/819 2851/3142/814 +f 2858/3149/815 1886/2047/816 2838/3128/839 2853/3144/815 +f 1928/2100/820 3383/4519/97 3384/4520/97 2860/3151/97 +f 2861/3152/658 3385/4521/97 3386/4522/97 2862/3153/97 +f 2863/3154/825 3387/4524/97 3388/4525/97 2864/3155/97 +f 2865/3156/132 3389/4526/97 3390/4527/97 2866/3157/97 +f 801/956/110 3358/4349/97 3392/4532/97 2868/3159/97 +f 1973/2139/111 3393/4533/97 3394/4534/97 1921/2091/97 +f 1922/2092/823 3395/4536/97 3396/4537/97 1924/2095/97 +f 1925/2096/660 3397/4538/97 3398/4539/97 1927/2099/97 +f 1976/4806/291 3223/4013/829 3224/4014/291 +f 2883/4807/291 2884/4808/291 1980/4809/291 1983/4810/291 +f 2885/4735/291 3402/2956/456 2884/4808/291 +f 2884/4808/291 3402/2956/456 3222/4011/291 1980/4809/291 +f 1980/4809/291 3222/4011/291 1979/4738/829 +f 1979/4738/829 3223/4013/829 1976/4806/291 +f 3380/4440/3 2032/4811/3 2035/4812/3 3381/4441/3 +f 3380/4440/3 2036/4813/3 2031/4814/3 +f 2028/4815/3 2039/4816/3 2704/1531/3 +f 2028/4815/3 2704/1531/3 2903/4817/3 +f 2903/4817/3 2704/1531/3 2054/4818/3 +f 2032/4811/3 3380/4440/3 2031/4814/3 +f 2031/4814/3 2036/4813/3 2039/4816/3 2028/4815/3 +f 2901/4819/3 3381/4441/3 2035/4812/3 +f 2054/4818/3 2956/3690/3 2055/4820/3 +f 2055/4820/3 3381/4441/3 2901/4819/3 +f 2055/4820/3 2956/3690/3 3381/4441/3 +f 2036/4813/3 3380/4440/3 2051/4743/3 +f 2040/4821/3 2704/1531/3 2039/4816/3 +f 2044/4740/3 2705/2960/3 2043/4822/3 +f 2043/4822/3 2705/2960/3 2040/4821/3 +f 2048/4742/3 2708/2958/3 2047/4741/3 +f 3143/3679/513 2909/2945/813 3099/4769/836 +f 3381/4441/3 2956/3690/3 3140/2921/3 +f 3144/3680/4 2213/4823/4 1333/4026/4 +f 2199/2363/4 3089/4688/4 2200/2364/4 +f 2200/2364/4 2203/4824/4 3144/3680/4 +f 2212/4825/4 1333/4026/4 2213/4823/4 +f 2213/4823/4 3144/3680/4 2952/4826/4 +f 2203/4824/4 2200/2364/4 2955/4827/4 +f 2955/4827/4 2200/2364/4 2208/4689/4 +f 2952/4826/4 3144/3680/4 2206/4828/4 +f 2206/4828/4 3144/3680/4 2203/4824/4 +f 2208/4689/4 1333/4026/4 2209/4829/4 +f 2209/4829/4 1333/4026/4 2212/4825/4 +f 3561/4830/3 2263/4831/3 3560/2944/834 +f 167/4684/3 3149/4572/3 2272/4682/3 +f 3571/4578/428 2715/4832/201 3569/4768/835 +f 2704/1531/3 2040/4821/3 2705/2960/3 +f 2704/1531/3 2956/3690/3 2054/4818/3 +f 3565/4767/212 3560/2944/834 2245/4833/3 +f 2245/4833/3 3560/2944/834 2255/4834/3 +f 2255/4834/3 3560/2944/834 2252/4835/3 +f 2252/4835/3 3560/2944/834 2263/4831/3 +f 2263/4831/3 3561/4830/3 2260/4836/3 +f 2260/4836/3 3561/4830/3 2959/4837/3 +f 2959/4837/3 3561/4830/3 2958/4838/3 +f 2958/4838/3 3561/4830/3 2275/4683/3 +f 2224/4202/2 3148/4214/2 162/4196/2 +f 2272/4682/3 3149/4572/3 2961/4608/3 +f 3153/4595/3 2245/4833/3 2255/4834/3 3154/4593/3 +f 3155/4599/3 2252/4835/3 2263/4831/3 3156/4597/3 +f 3157/4603/3 2260/4836/3 2959/4837/3 3305/4601/3 +f 3306/4607/3 2958/4838/3 2275/4683/3 2960/4605/3 +f 3428/4839/2 3429/4840/854 286/4841/855 +f 3428/4839/2 3167/4842/856 3429/4840/854 +f 2320/4843/2 381/4844/2 2979/4845/2 +f 3158/3719/643 3430/3718/642 3431/4846/857 +f 3429/4840/858 3432/4847/859 3433/4848/860 3430/3718/861 +f 3429/4840/862 3434/4849/863 3432/4847/864 +f 3435/4850/865 3436/4851/866 3437/4852/867 +f 3435/4850/868 2332/4853/869 3438/4854/870 +f 3440/4855/871 3437/4852/867 3436/4851/866 +f 3433/4848/872 2358/4856/2 2325/4857/2 +f 3432/4847/873 2358/4856/2 3433/4848/872 +f 3440/4855/871 3436/4851/866 3432/4847/864 +f 3432/4847/873 3436/4851/874 2359/4858/2 +f 3439/4859/875 171/4860/2 169/4861/2 3436/4851/874 +f 171/4862/1 2325/3271/1 173/3273/1 172/3714/1 +f 196/4863/876 3527/4864/877 3572/4865/877 +f 3431/4846/878 2332/4853/879 196/4863/880 +f 3438/4854/881 3439/4859/882 3436/4851/883 3435/4850/884 +f 3438/4854/870 3431/4846/857 3430/3718/642 +f 2332/4853/869 3435/4850/868 381/4844/2 +f 2332/4853/869 3431/4846/857 3438/4854/870 +f 2332/4853/869 381/4844/2 2320/4843/2 +f 281/2543/885 288/2546/886 289/4225/887 282/4249/888 +f 2357/4029/2 3428/4866/2 286/2547/889 +f 2415/4028/700 2395/2609/890 2357/4029/2 +f 2395/2609/890 3428/4866/2 2357/4029/2 +f 278/4867/2 961/4868/2 957/4869/2 +f 278/4867/2 962/4870/2 961/4868/2 +f 2358/4856/2 3432/4847/873 2359/4858/2 +f 3167/4871/891 3428/4866/2 2397/2611/892 +f 3167/4842/856 3434/4849/893 3429/4840/854 +f 3166/4872/894 422/539/2 3176/4873/2 +f 2975/3315/894 425/542/2 2394/2608/2 +f 2975/3315/895 2394/2608/896 2403/2617/897 2976/3316/896 +f 2976/3316/2 2403/2617/898 471/588/2 +f 3307/4874/97 342/4875/97 336/448/97 +f 3307/4874/97 763/4876/97 342/4875/97 +f 3308/4623/57 463/4877/57 3168/3777/57 +f 3169/4878/97 522/4879/97 520/4880/97 +f 331/4881/57 1102/1259/57 3184/3836/57 +f 332/4882/57 3552/1260/57 331/4881/57 +f 2369/4883/57 3552/1260/57 2368/4884/57 +f 2368/4884/57 3552/1260/57 332/4882/57 +f 336/448/97 342/4875/97 333/445/97 +f 342/4875/97 762/4885/97 343/4886/97 +f 956/4887/2 2357/4029/2 957/4869/2 +f 2379/4888/2 2710/4889/2 1419/4890/2 367/4891/2 +f 352/4892/2 2621/4893/2 962/4870/2 278/4867/2 +f 369/4037/2 955/4894/2 352/4892/2 +f 2381/4895/97 3441/4896/97 2989/4897/899 +f 373/4898/97 504/4899/97 2381/4895/97 +f 373/4898/97 3442/4900/78 504/4899/76 +f 373/4901/97 372/4902/97 2772/4903/97 3442/4904/97 +f 3434/4849/893 3167/4842/856 410/4905/2 +f 3434/4849/893 413/4906/2 3440/4855/900 +f 2677/4907/2 2679/4908/2 3454/4909/901 +f 381/4844/2 3435/4850/868 378/4910/2 +f 378/4910/2 3435/4850/868 2382/4911/2 +f 2382/4911/2 3435/4850/868 2387/4912/2 +f 2382/4911/2 2383/4913/2 2980/4914/2 378/4910/2 +f 2387/4912/2 3437/4852/902 389/4915/2 +f 389/4915/2 2981/4916/2 2385/4917/2 2387/4912/2 +f 389/4915/2 3437/4852/902 386/4918/2 +f 386/4918/2 3437/4852/902 2391/4919/2 +f 2391/4919/2 2983/4920/2 2982/4921/2 386/4918/2 +f 2391/4919/2 3437/4852/902 2390/4922/2 +f 2390/4922/2 3437/4852/902 3440/4855/900 397/4923/2 +f 397/4923/2 2392/4924/2 2984/4925/2 2390/4922/2 +f 397/4923/2 3440/4855/900 394/4926/2 +f 394/4926/2 3440/4855/900 405/4927/2 +f 405/4927/2 2985/4928/2 2393/4929/2 394/4926/2 +f 405/4927/2 3440/4855/900 402/4930/2 +f 402/4930/2 3440/4855/900 413/4906/2 +f 413/4906/2 3434/4849/893 410/4905/2 +f 413/4906/2 2987/4931/2 2986/4932/2 402/4930/2 +f 410/4905/2 3167/4842/856 2988/4933/2 +f 171/4860/2 3439/4859/875 3433/4848/872 +f 3437/4852/902 2387/4912/2 3435/4850/868 +f 3176/4873/2 422/539/2 3175/4934/903 +f 3177/3828/904 497/4935/97 495/4936/97 +f 3177/3828/904 494/4937/97 492/3710/97 +f 3177/3828/904 495/4936/97 494/4937/97 +f 3177/3828/904 499/4938/97 497/4935/97 +f 3178/4939/905 2990/4940/905 2989/4897/899 3177/3828/904 +f 3179/4941/906 2991/4942/906 2990/4940/905 3178/4939/905 +f 3180/4943/907 2992/4944/907 2991/4942/906 3179/4941/906 +f 3181/4945/908 3182/4946/909 2994/4947/909 2993/4948/908 +f 3181/4945/908 2993/4948/908 2992/4944/907 3180/4943/907 +f 3183/4949/910 2995/4950/910 2994/4947/909 3182/4946/909 +f 3175/4934/903 425/542/2 2996/3388/911 +f 2989/4897/899 499/4938/97 3177/3828/904 +f 2996/4951/911 2995/4950/910 3183/4949/910 3175/4952/903 +f 2996/3388/911 425/542/2 2975/3315/894 +f 425/542/2 3175/4934/903 422/539/2 +f 2415/4028/912 2404/2618/913 2396/2610/914 2395/2609/915 +f 2398/2612/2 422/539/2 3166/4872/894 +f 2397/2611/892 3428/4866/2 2395/2609/890 +f 2397/2611/916 2398/2612/896 3166/4872/917 3167/4871/918 +f 2400/2614/896 2399/2613/896 2402/2616/896 2401/2615/896 +f 2401/2615/2 424/541/2 423/540/2 2400/2614/2 +f 2399/2613/2 2396/2610/2 2404/2618/919 2402/2616/2 +f 2405/4953/57 463/4877/57 3308/4623/57 +f 2407/4954/57 459/4955/57 462/4956/57 2406/4957/57 +f 2997/4958/57 2414/4959/57 458/4960/57 2408/4961/57 +f 2999/4962/57 434/4963/57 2413/4964/57 2998/4965/57 +f 437/4966/57 455/4967/57 3185/3837/57 +f 437/4966/57 3185/3837/57 434/4963/57 +f 3000/4968/57 3001/4969/57 455/4967/57 437/4966/57 +f 2411/4970/57 451/4971/57 454/4972/57 3002/4973/57 +f 2412/4974/57 331/4881/57 450/4975/57 +f 450/4975/57 331/4881/57 3184/3836/57 +f 450/4975/57 3184/3836/57 451/4971/57 +f 454/4972/57 451/4971/57 3184/3836/57 +f 454/4972/57 3185/3837/57 455/4967/57 +f 2413/4964/57 434/4963/57 3185/3837/57 +f 2413/4964/57 3186/3838/57 2414/4959/57 +f 458/4960/57 2414/4959/57 3186/3838/57 +f 458/4960/57 3186/3838/57 459/4955/57 +f 462/4956/57 459/4955/57 3186/3838/57 +f 462/4956/57 3186/3838/57 3168/3777/57 +f 3184/3836/57 1102/1259/57 2653/2862/57 +f 3185/3837/57 454/4972/57 3184/3836/57 +f 3186/3838/57 2413/4964/57 3185/3837/57 +f 473/590/920 1528/1680/921 1527/1679/2 474/591/2 +f 472/589/922 478/4976/896 473/590/923 +f 472/589/922 476/4977/924 478/4976/896 +f 478/4976/896 1531/4978/896 1528/1680/925 473/590/923 +f 480/597/926 1534/1686/927 1535/1687/928 479/596/928 +f 479/596/928 1535/1687/928 1532/1684/929 477/594/929 +f 477/594/929 1532/1684/929 1531/1683/2 478/595/2 +f 3441/4896/97 2381/4895/97 504/4899/97 +f 1865/4979/97 2774/4980/97 3458/4981/97 +f 2772/4903/97 2773/4982/97 507/4983/97 3442/4904/97 +f 3443/4984/97 749/4985/97 516/4986/97 +f 520/4880/97 741/4987/97 3169/4878/97 +f 518/4988/97 747/4989/97 520/4880/97 +f 516/4986/97 747/4989/97 518/4988/97 +f 524/4990/97 522/4879/97 3169/4878/97 +f 741/4987/97 520/4880/97 745/4991/97 +f 745/4991/97 520/4880/97 747/4989/97 +f 747/4989/97 516/4986/97 749/4985/97 +f 749/4985/97 3443/4984/97 751/4992/97 +f 751/4992/97 513/4993/97 753/4994/97 +f 751/4992/97 3443/4984/97 513/4993/97 +f 753/4994/97 513/4993/97 755/4995/97 +f 759/4996/97 342/4875/97 763/4876/97 +f 763/4876/97 3307/4874/97 765/4997/97 +f 765/4997/97 3307/4874/97 767/4998/97 +f 767/4998/97 3307/4874/97 769/4999/97 +f 769/4999/97 3307/4874/97 3169/4878/97 +f 769/4999/97 3169/4878/97 771/5000/97 +f 771/5000/97 3169/4878/97 744/5001/97 +f 744/5001/97 3169/4878/97 741/4987/97 +f 2620/4027/2 2357/4029/2 956/4887/2 +f 2373/4033/2 3551/4032/2 3549/4633/2 2374/4630/2 +f 2357/4029/2 278/4867/2 957/4869/2 +f 955/4894/2 369/4037/2 952/5002/2 +f 2621/4893/2 352/4892/2 955/4894/2 +f 1102/1259/57 331/4881/57 3552/1260/57 +f 3085/5003/2 1421/5004/2 3086/5005/930 +f 1252/4406/4 1250/4418/4 3373/4420/807 +f 188/5006/931 289/5007/931 3517/5008/932 195/5009/931 +f 3532/5010/933 3524/5011/933 1245/5012/934 3447/5013/935 +f 3429/4840/854 3430/3718/642 3159/3720/2 +f 3446/5014/936 3216/5015/891 3444/5016/2 +f 3446/5014/936 3448/5017/937 3216/5015/891 +f 3449/5018/938 3450/1500/939 3451/5019/940 3452/5020/941 +f 3449/5018/942 2719/5021/2 3453/1498/943 +f 3445/5022/944 3454/4909/945 3455/5023/946 3446/5014/947 +f 3445/5022/948 3447/5013/949 3452/5020/950 +f 3454/4909/901 2699/5024/2 3455/5023/951 +f 3455/5023/952 3448/5017/953 3446/5014/954 +f 3451/5019/955 2677/4907/2 3454/4909/901 +f 3450/1500/603 2678/3561/2 2677/4907/2 3451/5019/955 +f 2679/4908/2 2699/5024/2 3454/4909/901 +f 2359/4858/2 3436/4851/874 169/4861/2 +f 3525/1390/3 3526/5025/3 3374/4415/324 +f 3526/5025/3 1298/5026/323 3374/4415/324 +f 1249/1399/3 3376/5027/329 3372/5028/331 1250/1400/3 +f 1245/5012/956 3086/5005/957 3447/5013/958 +f 3447/5013/949 3445/5022/948 3211/5029/959 +f 3445/5022/960 3452/5020/961 3451/5019/962 3454/4909/963 +f 3452/5020/950 3447/5013/949 3086/5005/930 +f 3452/5020/950 3086/5005/930 3449/5018/942 +f 1255/1435/1 3377/5030/808 1249/5031/1 +f 1254/1434/4 1246/5032/4 3375/5033/807 +f 3366/4687/3 3370/4416/333 1850/2009/3 +f 3370/5034/332 1290/1444/326 1292/5035/326 +f 3370/4416/333 1297/5036/334 3400/4417/3 +f 3372/5037/336 1289/1443/326 3373/4420/327 +f 3372/5028/331 1296/5038/964 1287/5039/3 +f 3374/5040/325 1286/5041/326 3375/5033/327 +f 3374/4415/324 1298/5026/323 1284/5042/3 +f 3376/5043/328 1293/5044/326 1295/5045/326 +f 3376/5027/329 1299/5046/334 1296/5038/964 3372/5028/331 +f 3371/4421/327 1290/1444/326 3370/5034/332 +f 3377/5030/327 1293/5044/326 3376/5043/328 +f 1246/5032/4 3374/5047/965 3375/5033/807 +f 3377/5030/808 3376/5048/966 1249/5031/1 +f 1253/4398/1 3371/4421/808 3366/4423/1 +f 1284/5049/326 1286/5041/326 3374/5040/325 +f 1295/5050/3 1299/5046/334 3376/5027/329 +f 1287/5051/326 1289/1443/326 3372/5037/336 +f 1292/5052/3 1297/5036/334 3370/4416/333 +f 1289/1443/3 1288/1442/3 1291/1445/3 1290/1444/3 +f 1286/1440/3 1285/1439/3 1294/1448/3 1293/1447/3 +f 1290/1444/326 3371/4421/327 3373/4420/327 1289/1443/326 +f 1293/5044/326 3377/5030/327 3375/5033/327 1286/5041/326 +f 1288/1442/326 1296/1450/967 1297/1451/968 1291/1445/326 +f 1285/1439/326 1298/1452/342 1299/1453/968 1294/1448/326 +f 2692/5053/2 3446/5014/936 3444/5016/2 +f 1329/1487/969 1328/2922/970 1330/2925/971 1335/1488/972 +f 367/4891/213 369/4037/213 351/4031/213 368/4030/213 +f 2693/2927/2 2738/3009/973 2729/3006/466 +f 1417/5054/2 1418/5055/2 2709/2972/2 3545/2971/2 +f 2693/2927/2 3444/2926/2 2738/3009/973 +f 1396/5056/2 2693/2927/2 2060/2929/2 +f 2063/5057/2 1396/5056/2 2060/2929/2 +f 2906/5058/2 1396/5056/2 2063/5057/2 +f 2698/3562/2 3455/5023/951 2699/5024/2 +f 3216/5059/974 3217/5060/895 2728/2999/896 2736/3007/916 +f 3217/5060/894 1478/1630/2 2728/2999/2 +f 3097/3586/894 1475/1627/2 3098/3587/911 +f 3119/3651/896 2733/3002/897 2732/3001/896 3097/3586/917 +f 3219/4005/57 1523/5061/57 3379/4435/57 +f 3219/4005/57 3220/4007/57 1524/5062/57 +f 3379/4435/57 1523/5061/57 3113/5063/57 +f 3222/5064/97 3402/5065/97 1879/5066/97 +f 3222/5064/97 2779/5067/97 2780/5068/97 +f 3222/5064/97 1852/5069/97 2778/5070/97 +f 1382/5071/57 3554/2360/57 1381/5072/57 +f 1381/5072/57 3554/2360/57 2706/5073/57 +f 2706/5073/57 3554/2360/57 2370/4674/57 +f 1383/1536/97 343/4886/97 3402/5065/97 +f 1386/1539/97 343/4886/97 1383/1536/97 +f 343/4886/97 1873/5074/97 3402/5065/97 +f 1396/5056/2 2906/5058/2 2066/5075/2 1416/5076/2 +f 1416/5076/2 2065/5077/2 1420/5078/2 +f 2908/5079/2 2056/4038/2 1420/5078/2 +f 2716/5080/97 3457/5081/97 372/5082/97 +f 1421/5004/2 3449/5018/942 3086/5005/930 +f 3102/5083/2 1421/5004/2 3085/5003/2 +f 1424/5084/2 3449/5018/942 1421/5004/2 +f 1424/5084/2 3103/5085/2 3104/5086/2 2718/5087/2 +f 2718/5087/2 3449/5018/942 1424/5084/2 +f 2719/5021/2 3449/5018/942 2718/5087/2 +f 2719/5021/2 3105/5088/2 2722/5089/2 1429/5090/2 +f 1429/5090/2 3453/1498/943 2719/5021/2 +f 1432/5091/2 2723/5092/2 2724/5093/2 1437/5094/2 +f 1432/5091/2 3453/1498/943 1429/5090/2 +f 1437/5094/2 3453/1498/943 1432/5091/2 +f 1440/5095/2 2725/5096/2 1447/5097/2 1449/5098/2 +f 1440/5095/2 3453/1498/943 1437/5094/2 +f 1449/5098/2 3456/1499/975 3453/1498/943 1440/5095/2 +f 1450/5099/2 1452/5100/2 2726/5101/2 1454/5102/2 +f 1450/5099/2 3456/1499/975 1449/5098/2 +f 1454/5102/2 3456/1499/975 1450/5099/2 +f 1457/5103/2 2727/5104/2 3106/5105/2 1462/5106/2 +f 1457/5103/2 3456/1499/975 1454/5102/2 +f 1462/5106/2 3456/1499/975 1457/5103/2 +f 1465/5107/2 3216/5015/891 3448/5017/937 +f 1465/5107/2 3448/5017/937 1462/5106/2 +f 3107/5108/2 3216/5015/891 1465/5107/2 +f 3453/1498/231 3450/1500/233 3449/5018/976 +f 3456/1499/975 1462/5106/2 3448/5017/937 +f 3218/5109/2 1478/1630/2 3217/5060/894 +f 3227/4063/904 3100/5110/899 3108/5111/905 3228/5112/905 +f 3227/4063/904 2769/5113/97 3100/5110/899 +f 3228/5112/905 3108/5111/905 3101/5114/906 3229/5115/906 +f 3229/5115/906 3101/5114/906 3109/5116/907 3230/5117/907 +f 3230/5117/907 3109/5116/907 3110/5118/908 3231/5119/908 +f 3232/5120/909 3111/5121/909 3112/5122/910 3233/5123/910 +f 3209/5124/903 3233/5123/910 3112/5122/910 3098/5125/911 +f 3209/5126/903 1478/1630/2 3218/5109/2 +f 3100/5110/899 2771/5127/97 2716/5080/97 +f 3110/5118/908 3111/5121/909 3232/5120/909 3231/5119/908 +f 3098/3587/911 1475/1627/2 3209/5126/903 +f 1478/1630/2 3209/5126/903 1475/1627/2 +f 2738/3009/973 3444/2926/2 2736/3007/977 +f 2738/3009/978 2737/3008/914 2730/5128/979 2729/3006/980 +f 2732/3001/2 1475/1627/2 3097/3586/894 +f 2736/3007/977 3444/2926/2 3216/5059/981 +f 2731/3000/2 1477/1629/2 1476/1628/2 2735/3004/2 +f 2735/3004/896 2734/3003/896 2739/3010/896 2731/3000/896 +f 2734/3003/2 2730/5128/919 2737/3008/2 2739/3010/2 +f 1523/5061/57 3219/4005/57 1524/5062/57 +f 3114/5129/57 1524/5062/57 1519/5130/57 3115/5131/57 +f 3116/5132/57 1520/5133/57 1507/5134/57 1487/5135/57 +f 1492/5136/57 1505/5137/57 1500/5138/57 2740/5139/57 +f 1500/5138/57 3234/4072/57 1497/5140/57 +f 1497/5140/57 2746/5141/57 3117/5142/57 2741/5143/57 +f 3118/5144/57 2747/5145/57 1511/5146/57 2744/5147/57 +f 1512/5148/57 1382/5071/57 2745/5149/57 +f 1511/5146/57 3236/4074/57 1512/5148/57 +f 2746/5141/57 3234/4072/57 2747/5145/57 +f 1507/5134/57 3220/4007/57 1505/5137/57 +f 1519/5130/57 3220/4007/57 1520/5133/57 +f 3236/4074/57 1382/5071/57 1512/5148/57 +f 3236/4074/57 1511/5146/57 2747/5145/57 +f 3236/4074/57 2747/5145/57 3234/4072/57 +f 3236/4074/57 2197/2361/57 1382/5071/57 +f 3234/4072/57 1500/5138/57 1505/5137/57 +f 3234/4072/57 2746/5141/57 1497/5140/57 +f 3234/4072/57 1505/5137/57 3220/4007/57 +f 3220/4007/57 1507/5134/57 1520/5133/57 +f 3220/4007/57 1519/5130/57 1524/5062/57 +f 1528/1680/925 1531/4978/896 1529/1681/982 +f 1530/1682/2 2733/3002/983 3119/3651/2 +f 3457/5081/97 2716/5080/97 2771/5127/97 +f 3457/5081/476 2772/5150/477 372/5082/97 +f 2771/5127/97 3100/5110/899 2769/5113/97 2770/5151/97 +f 2768/5152/97 2769/5113/97 3227/4063/904 +f 757/5153/97 755/4995/97 511/5154/97 +f 2774/4980/97 1865/4979/97 1867/5155/97 +f 3458/4981/97 2775/5156/97 1861/5157/97 +f 2765/4064/97 2767/5158/97 3227/4063/904 +f 2767/5158/97 2766/5159/97 3227/4063/904 +f 2766/5159/97 2768/5152/97 3227/4063/904 +f 2778/5070/97 2779/5067/97 3222/5064/97 +f 2778/5070/97 1857/5160/97 2777/5161/97 +f 2777/5161/97 1857/5160/97 2776/5162/97 +f 2776/5162/97 1859/5163/97 2775/5156/97 +f 1852/5069/97 3222/5064/97 1883/5164/97 +f 1855/5165/97 2778/5070/97 1852/5069/97 +f 1857/5160/97 2778/5070/97 1855/5165/97 +f 1859/5163/97 2776/5162/97 1857/5160/97 +f 1861/5157/97 2775/5156/97 1859/5163/97 +f 1863/5166/97 3458/4981/97 1861/5157/97 +f 1865/4979/97 3458/4981/97 1863/5166/97 +f 762/4885/97 342/4875/97 759/4996/97 +f 1870/5167/97 343/4886/97 762/4885/97 +f 1873/5074/97 343/4886/97 1870/5167/97 +f 1875/5168/97 3402/5065/97 1873/5074/97 +f 1877/5169/97 3402/5065/97 1875/5168/97 +f 1879/5066/97 3402/5065/97 1877/5169/97 +f 1881/5170/97 3222/5064/97 1879/5066/97 +f 1883/5164/97 3222/5064/97 1881/5170/97 +f 278/4867/2 2357/4029/2 279/2548/984 +f 2908/5079/2 1420/5078/2 2065/5077/2 +f 2059/2928/2 2693/2927/2 2056/4038/2 +f 2065/5077/2 1416/5076/2 2066/5075/2 +f 2947/3237/57 2197/2361/57 3236/4074/57 +f 3554/2360/57 1382/5071/57 2197/2361/57 +f 1868/5171/97 757/5153/97 509/5172/97 +f 511/5154/97 755/4995/97 513/4993/97 +f 3459/5173/97 1867/5155/97 1868/5171/97 +f 2773/4982/97 1868/5171/97 507/4983/97 +f 2978/3339/1 3052/3495/1 3553/3340/1 +f 2376/2583/1 1062/5174/1 3174/3798/1 +f 2375/5175/1 1025/5176/1 2376/2583/1 +f 3038/5177/1 2640/5178/1 2375/5175/1 +f 3042/5179/1 3064/5180/1 1042/5181/1 +f 1042/5181/1 2978/3797/1 1039/5182/1 +f 1042/5181/1 3062/5183/1 2978/3797/1 +f 969/5184/1 2645/5185/1 970/5186/1 +f 970/5186/1 2645/5185/1 1046/5187/1 +f 1046/5187/1 3173/3796/1 1043/5188/1 +f 1046/5187/1 1039/5182/1 3173/3796/1 +f 977/5189/1 3045/5190/1 978/5191/1 +f 978/5191/1 3045/5190/1 2642/5192/1 +f 2642/5192/1 3173/3796/1 1048/5193/1 +f 2642/5192/1 1043/5188/1 3173/3796/1 +f 2628/5194/1 1049/5195/1 2629/5196/1 +f 2629/5196/1 1049/5195/1 2643/5197/1 +f 2643/5197/1 3174/3798/1 1055/5198/1 +f 2643/5197/1 1048/5193/1 3174/3798/1 +f 993/5199/1 1056/5200/1 994/5201/1 +f 994/5201/1 1056/5200/1 2644/5202/1 +f 2644/5202/1 3174/3798/1 1062/5174/1 +f 2644/5202/1 1055/5198/1 3174/3798/1 +f 1001/5203/1 1063/5204/1 1002/5205/1 +f 1002/5205/1 1063/5204/1 1028/5206/1 +f 1028/5206/1 2376/2583/1 1025/5176/1 +f 1028/5206/1 1062/5174/1 2376/2583/1 +f 3173/3796/1 1039/5182/1 2978/3797/1 +f 3174/3798/1 1048/5193/1 3173/3796/1 +f 1025/5176/1 2375/5175/1 2640/5178/1 +f 1039/5182/1 1046/5187/1 2645/5185/1 +f 1043/5188/1 2642/5192/1 3045/5190/1 +f 1048/5193/1 2643/5197/1 1049/5195/1 +f 1055/5198/1 2644/5202/1 1056/5200/1 +f 1062/5174/1 1028/5206/1 1063/5204/1 +f 3553/3340/1 1103/1261/1 3552/1260/1 +f 3553/3340/1 3055/3498/1 1103/1261/1 +f 3051/3494/1 3553/3340/1 3052/3495/1 +f 3052/3495/1 2978/3339/1 3062/3505/1 +f 3062/5183/1 1042/5181/1 3064/5180/1 +f 3055/3498/1 3553/3340/1 3051/3494/1 +f 2545/2751/95 2555/2761/129 3327/4305/95 +f 463/4877/57 462/4956/57 3168/3777/57 +f 2989/4897/899 3441/4896/97 501/5207/97 499/4938/97 +f 3312/4320/792 3313/4307/791 3327/4305/95 +f 713/865/169 716/868/94 714/866/95 +f 1825/2006/283 1826/1983/82 1828/1985/83 +f 2823/3113/82 3408/4776/82 2825/3115/187 +f 3404/4781/844 2825/3115/187 3408/4776/82 +f 3163/3728/33 3486/5208/33 3487/3729/33 +f 3466/3303/443 3469/3302/533 3468/5209/224 3467/5210/223 +f 3466/3303/443 3467/5210/223 3465/2534/341 +f 3465/2534/341 3467/5210/223 3464/355/39 3463/2531/338 +f 3477/3765/337 3479/3764/338 3481/3751/609 3478/5211/339 +f 3475/5212/33 3476/5213/33 3164/3741/33 +f 3161/3724/33 3164/3741/33 3476/5213/33 3477/5214/33 +f 3460/3730/33 3461/5215/33 207/3731/33 +f 3485/5216/33 3486/5208/33 3163/3728/33 3165/3744/33 +f 3463/2531/338 3464/355/39 3462/354/38 +f 3472/3760/644 3471/3759/533 3470/3758/224 3473/3757/223 +f 3474/3763/341 3473/3757/223 3480/3756/39 3479/3764/338 +f 3475/5217/534 3472/3760/644 3474/3763/341 3476/3762/340 +f 3472/3760/644 3473/3757/223 3474/3763/341 +f 3479/3764/338 3480/3756/39 3481/3751/609 +f 3481/3751/609 3480/3756/39 3483/3755/40 3482/3752/41 +f 3471/5218/33 204/4700/33 3470/4701/33 +f 3466/3303/443 3465/2534/341 3485/2533/340 3484/5219/534 +f 3461/356/40 3464/355/39 3467/5210/223 3468/5209/224 +f 207/3731/33 3461/5215/33 3468/5220/33 206/5221/33 +f 206/5221/33 3469/5222/33 3484/5223/33 3165/3744/33 +f 3469/5222/33 206/5221/33 3468/5220/33 +f 3165/3744/4 203/4232/4 202/5224/4 +f 3484/5223/33 3485/5216/33 3165/3744/33 +f 3161/3724/1 205/4426/1 201/5225/1 +f 3477/5214/33 3478/5226/33 3161/3724/33 +f 3368/2912/4 1247/4413/4 1246/5032/4 +f 3369/4404/1 1255/1435/1 1249/5031/1 +f 3378/4399/1 1253/4398/1 3366/4423/1 +f 1255/1435/33 3369/4404/33 3489/4403/33 3493/5227/33 +f 3504/2914/443 3515/4727/533 3514/4729/224 3505/2915/223 +f 3164/3741/4 3309/4615/4 2322/5228/4 +f 3504/2914/443 3506/2916/341 3503/4720/340 3502/5229/534 +f 3497/1432/223 3498/5230/341 3499/4724/644 +f 3495/1437/33 3496/2913/33 1254/1434/33 +f 3490/4716/609 3489/5231/339 3488/5232/337 3491/5233/338 +f 3492/1431/39 3491/5233/338 3498/5230/341 3497/1432/223 +f 3475/5212/33 3164/3741/33 204/4700/33 3471/5218/33 +f 205/4426/33 3161/3724/33 3478/5226/33 3482/4424/33 +f 3513/5234/33 3514/4726/33 1252/4406/33 1253/4398/33 +f 3365/4392/4 1251/4390/4 1250/4418/4 +f 3378/4399/33 3365/4392/33 3503/4409/33 3510/5235/33 +f 3505/2915/223 3509/4428/39 3508/4400/338 3506/2916/341 +f 3493/5227/33 3494/1436/33 1255/1435/33 +f 3500/2911/33 3501/5236/33 3368/2912/33 +f 3493/4717/41 3490/4716/609 3492/1431/39 3494/1430/40 +f 3497/1432/223 3499/4724/644 3496/4723/533 3495/1433/224 +f 3512/4397/33 3513/5234/33 1253/4398/33 +f 3510/5235/33 3511/4396/33 3378/4399/33 +f 3499/4724/644 3498/5230/341 3501/5237/340 3500/5238/534 +f 3492/1431/39 3490/4716/609 3491/5233/338 +f 3501/5237/340 3498/5230/341 3491/5233/338 3488/5232/337 +f 3508/4400/338 3509/4428/39 3507/3580/609 +f 3369/4404/33 3368/2912/33 3501/5236/33 3488/4405/33 +f 1298/5026/323 3526/5025/3 3518/5239/3 +f 3516/5240/3 2331/2489/3 2330/5241/3 +f 1236/5242/985 1239/5243/985 3519/4612/986 1332/4611/985 +f 3517/5008/987 3521/3716/988 3520/2513/989 3516/5240/990 +f 3532/3967/991 3523/1393/991 3524/1395/991 +f 3530/325/992 3529/321/992 3520/2513/993 +f 287/5244/535 286/5245/535 3159/5246/535 +f 1240/5247/985 3518/5239/994 3519/4612/986 +f 3089/5248/985 3518/5239/994 1240/5247/985 +f 3089/5248/985 1243/5249/985 1236/5242/985 +f 3159/5246/995 3158/3717/996 3521/3716/997 3517/5008/995 +f 3537/2570/57 1390/4018/57 3536/2571/57 +f 1390/4018/57 3541/2572/57 3536/2571/57 +f 339/3792/57 1390/4018/57 3539/4766/57 3538/4765/57 +f 1390/4018/57 3537/2570/57 3539/4766/57 +f 3535/3835/57 339/3792/57 3534/4259/57 +f 3542/2951/57 339/3792/57 3540/2952/57 +f 3534/4259/57 339/3792/57 3542/2951/57 +f 1390/4018/57 3543/4071/57 3541/2572/57 +f 3540/2952/57 339/3792/57 3538/4765/57 +f 1529/1681/982 1531/4978/896 1533/5250/924 +f 3549/5251/216 3551/5252/216 3550/2895/216 +f 2956/3690/4 2239/1530/4 2240/3676/4 +f 1382/2566/355 3541/2572/359 1504/2567/4 +f 332/2950/453 331/2946/451 3534/4259/778 3542/2951/454 +f 2706/2569/357 2370/4763/830 3539/4766/833 3537/2570/357 +f 3534/4259/778 331/2946/451 446/2948/1 +f 1382/2566/355 1381/2568/356 3536/2571/358 3541/2572/359 +f 449/4279/1 3534/4259/778 446/2948/1 +f 3538/4765/832 2369/4764/831 2368/2949/452 3540/2952/452 +f 3552/1260/57 2369/4883/57 3553/3340/57 +f 1024/1180/513 357/472/212 3567/2866/299 +f 2369/4883/57 2370/4674/57 3555/3488/57 3553/3340/57 +f 2714/2969/212 2715/476/201 3571/2867/428 +f 357/472/212 2714/2969/212 3571/2867/428 3567/2866/299 +f 37/2957/1 40/5253/1 326/2831/1 +f 144/4023/4 125/5254/4 41/5255/4 +f 124/5256/1 37/2957/1 3562/5257/1 +f 2705/1529/4 44/462/4 3557/464/4 +f 2705/1529/4 144/4023/4 41/5255/4 +f 3559/463/5 3561/4830/5 3560/2944/450 3557/464/450 +f 44/462/4 121/5258/4 3559/463/4 +f 44/462/4 2705/1529/4 41/5255/4 +f 1219/4378/2 1218/5259/2 326/2831/2 3556/4367/2 +f 114/5260/1 3556/4367/1 40/5253/1 +f 326/2831/1 40/5253/1 3556/4367/1 +f 3544/3708/314 3545/5261/314 3546/5262/314 +f 3562/5257/17 3563/2830/676 3558/3932/676 1/4621/17 +f 194/316/998 189/311/998 188/5263/998 195/5264/998 +f 1237/2902/999 1238/2905/999 1239/5265/999 1236/5266/999 +f 327/5267/3 1380/5268/3 1379/1534/3 328/442/3 +f 2659/3920/1 1148/2829/1 350/2832/1 +f 3570/4676/212 3564/4641/813 3568/3937/212 +f 2375/3942/681 3564/4641/813 3570/4676/212 +f 3565/4767/212 3566/4575/212 3569/4768/835 +f 3558/3932/212 2375/3942/681 3570/4676/212 +f 3564/4641/813 3567/3935/299 3568/3937/212 +f 3566/4575/212 3571/4578/428 3569/4768/835 +f 200/4616/1 3161/3724/1 201/5225/1 +f 198/4239/1 3163/3728/1 199/4231/1 +f 206/5221/4 3165/3744/4 202/5224/4 +f 204/4700/4 3164/3741/4 2322/5228/4 +f 202/5224/4 2340/5269/806 2342/2516/807 +f 205/4426/3 204/4700/3 2338/2499/1000 2343/2518/1001 +f 2344/2519/808 2341/5270/809 199/4231/1 +f 2343/2518/808 2339/5271/966 201/5225/1 +f 2341/2511/333 3520/2513/335 3529/321/3 +f 202/328/3 201/327/3 2339/2504/329 2340/2507/331 +f 2338/2499/807 204/4700/4 2322/5228/4 +f 207/3731/3 206/5221/3 2342/2516/1000 2344/2519/1001 +f 2967/3268/58 880/3780/58 3186/3838/58 +f 3186/3838/58 891/3911/58 896/3839/58 +f 3186/3838/58 888/3908/58 891/3911/58 +f 883/3909/58 888/3908/58 3186/3838/58 +f 880/3780/58 883/3909/58 3186/3838/58 +f 3235/4073/237 3220/4007/237 1995/4009/237 +f 3220/4007/237 1999/4075/237 2889/4167/237 +f 3220/4007/237 2889/4167/237 2890/4164/237 +f 3220/4007/237 2890/4164/237 1992/4163/237 +f 1995/4009/237 3220/4007/237 1992/4163/237 +f 3377/5030/1001 1255/1435/3 1254/1434/3 3375/5033/1000 +f 3371/4421/1001 1253/4398/3 1252/4406/3 3373/4420/1000 +f 1254/1434/4 3368/2912/4 1246/5032/4 +f 3367/4427/1 3378/4399/1 3366/4423/1 +f 1248/4410/1 3369/4404/1 1249/5031/1 +f 1252/4406/4 3365/4392/4 1250/4418/4 +f 3090/5272/4 1247/4413/4 3214/4414/4 +f 3088/5273/4 1251/4390/4 3094/4391/4 +f 3212/3968/1 1248/4410/1 3215/4412/1 +f 3095/3571/1 3091/4393/1 3096/4395/1 +f 2337/5274/1 2972/4619/1 200/4616/1 +f 2333/5275/1 2974/4244/1 198/4239/1 +f 2969/3278/4 2970/4237/4 203/4232/4 +f 3162/3725/4 2973/4617/4 2335/4614/4 +f 3159/3720/2 286/4841/855 3429/4840/854 +f 3519/4612/1002 3533/3966/1003 3211/3965/1004 3210/5276/1005 +f 288/5277/535 287/5244/535 3159/5246/535 3517/5008/1006 +f 3519/4612/812 3210/5276/690 1328/5278/690 1329/4613/690 +f 2692/5053/2 3210/5279/2 3446/5014/936 +f 1332/4611/985 1333/5280/985 1236/5242/985 +f 3518/5239/1007 3526/5025/1008 3533/3966/1009 3519/4612/1010 +f 3210/5276/690 2692/5281/690 1328/5278/690 +f 3210/5279/2 3211/5029/959 3445/5022/948 +f 289/5007/535 288/5277/535 3517/5008/1006 +f 2679/3559/4 2677/5282/4 1221/3556/4 1223/3557/4 +f 3450/1500/233 3456/1499/232 3455/5023/952 +f 173/3273/2 170/297/2 172/3714/2 +f 3456/1499/232 3448/5017/953 3455/5023/952 +f 1221/3556/2 1222/3560/2 1223/3557/2 +f 175/296/4 2359/5283/4 169/5284/4 170/297/4 +f 3450/1500/603 3455/5023/951 2698/3562/2 +f 1222/3560/1 2678/5285/1 2698/5286/1 1347/2936/1 +f 1222/3560/2 1347/2936/2 1348/2939/2 +f 3434/4849/863 3440/4855/871 3432/4847/864 +f 1223/3557/2 1222/3560/2 1348/2939/2 +f 3438/4854/1011 3430/3718/1012 3433/4848/1013 3439/4859/1014 +f 2325/4857/2 171/4860/2 3433/4848/872 +f 1529/1681/464 1533/5250/1015 1534/3005/465 +f 1024/1180/4 358/473/4 357/472/4 +f 1405/1557/1 2715/476/1 2714/2969/1 +f 1407/477/1 2715/476/1 1405/1557/1 +f 360/1179/4 358/473/4 1024/1180/4 +f 2623/3480/1 1148/2829/1 2659/3920/1 +f 3562/5257/1 37/2957/1 3563/2830/1 +f 1145/4375/2 160/4211/2 1141/4210/2 +f 2232/4206/2 2229/4205/2 162/4196/2 +f 2237/4195/2 2232/4206/2 162/4196/2 +f 2672/4213/3 168/4212/3 2671/4661/3 +f 2275/4683/3 3561/4830/3 167/4684/3 +f 90/134/1 91/80/1 93/82/1 +f 65/194/4 62/58/4 64/60/4 +f 57/133/4 54/52/4 56/54/4 +f 131/191/4 130/125/4 100/89/4 +f 53/129/4 50/49/4 52/51/4 +f 132/192/1 99/88/1 133/128/1 +f 70/130/1 71/64/1 73/66/1 +f 135/5287/4 134/131/4 94/132/4 +f 158/5288/4 77/70/4 136/193/4 +f 157/5289/1 137/185/1 74/67/1 +f 128/5290/1 97/123/1 129/124/1 +f 85/5291/4 82/74/4 84/76/4 +f 81/5292/4 78/71/4 80/73/4 +f 66/5293/1 67/61/1 69/63/1 +f 58/5294/1 59/55/1 61/57/1 +f 2235/3247/4 2236/2394/4 2238/2396/4 +f 2227/3687/4 2228/2388/4 2230/2390/4 +f 2219/3685/4 2220/2382/4 2222/2384/4 +f 1128/3524/4 1129/1286/4 1131/1288/4 +f 2218/3684/1 2215/2379/1 2217/2381/1 +f 2226/3686/1 2223/2385/1 2225/2387/1 +f 2234/3246/1 2231/2391/1 2233/2393/1 +f 2657/2868/1 3075/3529/1 1147/1301/1 +f 1143/3525/1 1140/1295/1 1142/1297/1 +f 1135/3523/1 1132/1289/1 1134/1291/1 +f 2658/2869/4 1146/1300/4 3074/3528/4 +f 1136/3526/4 1137/1292/4 1139/1294/4 +f 112/205/1 147/153/1 109/160/1 +f 107/145/4 103/104/4 139/141/4 +f 4/3/1 3/2/1 6/5/1 +f 146/150/4 150/158/4 36/151/4 +f 3171/3788/1 3308/4253/775 335/447/1 +f 3532/3967/991 3522/1392/991 3523/1393/991 +f 3526/5025/1016 3525/1390/991 3522/1392/991 +f 3533/3966/1017 3526/5025/1016 3522/1392/991 +f 3431/4846/1018 196/4863/876 3528/5295/877 +f 3572/5296/992 3530/325/992 3528/3715/992 +f 3527/318/992 3531/320/992 3530/325/992 3572/5296/992 +f 3528/5295/877 196/4863/876 3572/4865/877 +f 3530/325/992 3520/2513/993 3521/3716/1019 +f 3532/3967/991 3533/3966/1017 3522/1392/991 +f 3528/3715/992 3530/325/992 3521/3716/1019 +f 247/2512/334 3516/5240/3 3520/2513/335 +f 246/2506/323 3516/5240/3 247/2512/334 +f 244/2490/323 2331/2489/3 3516/5240/3 +f 246/2506/323 245/2505/330 3516/5240/3 +f 245/2505/330 244/2490/323 3516/5240/3 +f 3089/5248/3 3400/4417/3 3518/5239/3 +f 3400/4417/3 1297/5036/334 3518/5239/3 +f 1297/5036/334 1296/5038/964 3518/5239/3 +f 1296/5038/964 1299/5046/334 3518/5239/3 +f 1299/5046/334 1298/5026/323 3518/5239/3 +f 2330/5241/931 191/5297/931 192/5298/931 +f 3517/5008/932 3516/5240/931 192/5298/931 +f 2330/5241/931 2323/5299/931 188/5006/931 +f 2323/5299/931 289/5007/931 188/5006/931 +f 195/5009/931 3517/5008/932 192/5298/931 +f 191/5297/931 2330/5241/931 188/5006/931 +f 3516/5240/931 2330/5241/931 192/5298/931 +f 1239/5243/985 1240/5247/985 3519/4612/986 +f 3446/5014/936 3210/5279/2 3445/5022/948 +f 1333/5280/985 3089/5248/985 1236/5242/985 +f 1243/5249/985 3089/5248/985 1240/5247/985 +f 507/4983/97 1868/5171/97 509/5172/97 +f 2773/4982/97 3459/5173/97 1868/5171/97 +f 3459/5173/97 2774/4980/97 1867/5155/97 +f 509/5172/97 757/5153/97 511/5154/97 +f 2415/4028/700 472/589/1020 471/588/2 +f 2733/3002/461 2729/3006/1021 2730/5128/460 +f 2734/3003/462 2733/3002/461 2730/5128/460 +f 2415/4028/1022 2403/2617/372 2404/2618/368 +f 2733/3002/983 1530/1682/2 2729/3006/466 +f 1530/1682/2 1529/1681/464 2729/3006/466 +f 480/5300/1023 476/4977/1024 472/589/1020 +f 2403/2617/898 2415/4028/700 471/588/2 +f 480/5300/1023 472/589/1020 2415/4028/700 +f 1420/5078/213 1419/4890/213 1418/5055/213 1417/5054/213 +f 2620/4027/2 952/5002/2 369/4037/2 +f 279/2548/984 2357/4029/2 286/2547/889 +f 1022/1177/651 283/4250/651 1023/1178/773 +f 1333/5301/810 1336/4430/225 2917/3208/810 +f 2105/2269/225 1337/4431/225 1338/1482/225 +f 1393/1546/225 1333/5301/810 2917/3208/810 +f 2128/2292/810 1338/1482/225 2129/1484/225 +f 1398/5302/3 1338/5303/3 1334/1485/1025 +f 1338/5303/3 1337/5304/3 1334/1485/1025 +f 1337/5304/3 1336/4432/3 1332/1486/811 +f 1334/1485/1025 1337/5304/3 1332/1486/811 +f 1396/5056/2 1331/2924/1026 2693/2927/2 +f 1331/2924/1026 2692/2923/448 2693/2927/2 +f 1420/5078/2 2056/4038/2 2729/3006/466 +f 1419/4890/2 1420/5078/2 2729/3006/466 +f 1419/4890/2 2729/3006/466 1534/3005/465 +f 369/4037/2 367/4891/2 2415/4028/700 +f 2415/4028/700 367/4891/2 480/5300/1023 +f 367/4891/2 1419/4890/2 1534/3005/465 480/5300/1023 +f 3548/2896/216 3549/5251/216 3550/2895/216 +f 3547/3707/314 3544/3708/314 3546/5262/314 +f 3211/5029/1027 3532/5010/933 3447/5013/935 +f 3158/3719/1028 3431/4846/1018 3528/5295/877 +f 2334/2491/324 2322/4226/3 739/891/3 +f 2331/2489/3 2334/2491/324 739/891/3 +f 199/324/3 2341/2511/333 3529/321/3 +f 207/3731/1 2344/2519/808 199/4231/1 +f 205/4426/1 2343/2518/808 201/5225/1 +f 2334/5305/965 2338/2499/807 2322/5228/4 +f 206/5221/4 202/5224/4 2342/2516/807 diff --git a/games/default/files/Cars/spaceship/textures/none.png b/games/default/files/Cars/spaceship/textures/none.png new file mode 100644 index 000000000..07f7b0e2b Binary files /dev/null and b/games/default/files/Cars/spaceship/textures/none.png differ diff --git a/games/default/files/Cars/surfboard/README.md b/games/default/files/Cars/surfboard/README.md new file mode 100644 index 000000000..089a5a5ee --- /dev/null +++ b/games/default/files/Cars/surfboard/README.md @@ -0,0 +1,2 @@ +# minetest-surfboard +Surfboard mod for Minetest. https://minetest.net/ diff --git a/games/default/files/Cars/surfboard/README.txt b/games/default/files/Cars/surfboard/README.txt new file mode 100644 index 000000000..fc2178251 --- /dev/null +++ b/games/default/files/Cars/surfboard/README.txt @@ -0,0 +1,15 @@ +Surfboards, forked from boats by archfan +======================== +See license.txt for license information. + +Authors of source code +---------------------- +Originally by PilzAdam (MIT) +Various Minetest developers and contributors (MIT) + +Authors of media (textures and model) +------------------------------------- +Textures: Zeg9 (CC BY-SA 3.0) +Model: thetoon and Zeg9 (CC BY-SA 3.0), + modified by PavelS(SokolovPavel) (CC BY-SA 3.0), + modified by sofar (CC BY-SA 3.0) diff --git a/games/default/files/experience/depends.txt b/games/default/files/Cars/surfboard/depends.txt similarity index 100% rename from games/default/files/experience/depends.txt rename to games/default/files/Cars/surfboard/depends.txt diff --git a/games/default/files/Cars/surfboard/init.lua b/games/default/files/Cars/surfboard/init.lua new file mode 100644 index 000000000..4b1cd0ea5 --- /dev/null +++ b/games/default/files/Cars/surfboard/init.lua @@ -0,0 +1,264 @@ +local source_list = { + {"black", "Darkened", "292421", 40, 36, 33}, + {"blue", "Blue", "0000FF", 0, 0, 255}, + {"green", "Green", "00FF00", 0, 255, 0}, + {"white", "White", "F5F5F5", 245, 245, 245}, + {"orange", "Orange", "FF6103", 255, 97, 3}, + {"red", "Red", "FF0000", 255, 0, 0}, + {"yellow", "Yellow", "FFFF00", 255, 255, 0}, + {"pink", "pink", "FF69B4", 255, 105, 180} +} + +for i in ipairs(source_list) do + local color = source_list[i][1] + local description = source_list[i][2] + local colour = source_list[i][3] + local red = source_list[i][4] + local green = source_list[i][5] + local blue = source_list[i][6] + + +-- +-- Helper functions +-- + +local function is_water(pos) + local nn = minetest.get_node(pos).name + return minetest.get_item_group(nn, "water") ~= 0 +end + + +local function get_sign(i) + if i == 0 then + return 0 + else + return i / math.abs(i) + end +end + + +local function get_velocity(v, yaw, y) + local x = -math.sin(yaw) * v + local z = math.cos(yaw) * v + return {x = x, y = y, z = z} +end + + +local function get_v(v) + return math.sqrt(v.x ^ 2 + v.z ^ 2) +end + +-- +-- Boat entity +-- + +local surfboard = { + physical = true, + -- Warning: Do not change the position of the collisionbox top surface, + -- lowering it causes the surfboard to fall through the world if underwater + collisionbox = {-0.5, -0.35, -0.5, 0.5, 0.3, 0.5}, + visual = "mesh", + mesh = "surfboard.x", + textures = {"color_white.png^[colorize:#"..colour..":70"}, + driver = nil, + v = 0, + last_v = 0, + removed = false +} + + +function surfboard.on_rightclick(self, clicker) + if not clicker or not clicker:is_player() then + return + end + local name = clicker:get_player_name() + if self.driver and clicker == self.driver then + self.driver = nil + clicker:set_detach() + default.player_attached[name] = false + default.player_set_animation(clicker, "stand" , 30) + local pos = clicker:getpos() + pos = {x = pos.x, y = pos.y + 0.2, z = pos.z} + minetest.after(0.1, function() + clicker:setpos(pos) + end) + elseif not self.driver then + local attach = clicker:get_attach() + if attach and attach:get_luaentity() then + local luaentity = attach:get_luaentity() + if luaentity.driver then + luaentity.driver = nil + end + clicker:set_detach() + end + self.driver = clicker + clicker:set_attach(self.object, "", + {x = 0, y = 10, z = 0}, {x = 0, y = 0, z = 0}) + default.player_attached[name] = true + minetest.after(0.2, function() + default.player_set_animation(clicker, "stand" , 0) + end) + clicker:set_look_horizontal(self.object:getyaw()) + end +end + + +function surfboard.on_activate(self, staticdata, dtime_s) + self.object:set_armor_groups({immortal = 1}) + if staticdata then + self.v = tonumber(staticdata) + end + self.last_v = self.v +end + + +function surfboard.get_staticdata(self) + return tostring(self.v) +end + + +function surfboard.on_punch(self, puncher) + if not puncher or not puncher:is_player() or self.removed then + return + end + if self.driver and puncher == self.driver then + self.driver = nil + puncher:set_detach() + default.player_attached[puncher:get_player_name()] = false + end + if not self.driver then + self.removed = true + local inv = puncher:get_inventory() + -- delay remove to ensure player is detached + minetest.after(0.1, function() + self.object:remove() + end) + end +end + +function surfboard.on_step(self, dtime) + self.v = get_v(self.object:getvelocity()) * get_sign(self.v) + if self.driver then + local ctrl = self.driver:get_player_control() + local yaw = self.object:getyaw() + if ctrl.up then + self.v = self.v + 0.1 + elseif ctrl.down then + self.v = self.v - 0.1 + end + if ctrl.left then + if self.v < 0 then + self.object:setyaw(yaw - (1 + dtime) * 0.03) + else + self.object:setyaw(yaw + (1 + dtime) * 0.03) + end + elseif ctrl.right then + if self.v < 0 then + self.object:setyaw(yaw + (1 + dtime) * 0.03) + else + self.object:setyaw(yaw - (1 + dtime) * 0.03) + end + end + end + local velo = self.object:getvelocity() + if self.v == 0 and velo.x == 0 and velo.y == 0 and velo.z == 0 then + self.object:setpos(self.object:getpos()) + return + end + local s = get_sign(self.v) + self.v = self.v - 0.02 * s + if s ~= get_sign(self.v) then + self.object:setvelocity({x = 0, y = 0, z = 0}) + self.v = 0 + return + end + if math.abs(self.v) > 5 then + self.v = 5 * get_sign(self.v) + end + + local p = self.object:getpos() + p.y = p.y - 0.5 + local new_velo + local new_acce = {x = 0, y = 0, z = 0} + if not is_water(p) then + local nodedef = minetest.registered_nodes[minetest.get_node(p).name] + if (not nodedef) or nodedef.walkable then + self.v = 0 + new_acce = {x = 0, y = 1, z = 0} + else + new_acce = {x = 0, y = -9.8, z = 0} + end + new_velo = get_velocity(self.v, self.object:getyaw(), + self.object:getvelocity().y) + self.object:setpos(self.object:getpos()) + else + p.y = p.y + 1 + if is_water(p) then + local y = self.object:getvelocity().y + if y >= 5 then + y = 5 + elseif y < 0 then + new_acce = {x = 0, y = 20, z = 0} + else + new_acce = {x = 0, y = 5, z = 0} + end + new_velo = get_velocity(self.v, self.object:getyaw(), y) + self.object:setpos(self.object:getpos()) + else + new_acce = {x = 0, y = 0, z = 0} + if math.abs(self.object:getvelocity().y) < 1 then + local pos = self.object:getpos() + pos.y = math.floor(pos.y) + 0.5 + self.object:setpos(pos) + new_velo = get_velocity(self.v, self.object:getyaw(), 0) + else + new_velo = get_velocity(self.v, self.object:getyaw(), + self.object:getvelocity().y) + self.object:setpos(self.object:getpos()) + end + end + end + self.object:setvelocity(new_velo) + self.object:setacceleration(new_acce) +end + +minetest.register_entity("surfboard:board" .. color, surfboard) + +minetest.register_craftitem("surfboard:board" .. color, { + description = "Surfboard" .. color, + inventory_image = "surfboard.png^[colorize:#"..colour..":70", + wield_image = "none.png^[colorize:#"..colour..":70", + wield_scale = {x = 2, y = 2, z = 1}, + liquids_pointable = true, + groups = {flammable = 2}, + + on_place = function(itemstack, placer, pointed_thing) + local under = pointed_thing.under + local node = minetest.get_node(under) + local udef = minetest.registered_nodes[node.name] + if udef and udef.on_rightclick and + not (placer and placer:get_player_control().sneak) then + return udef.on_rightclick(under, node, placer, itemstack, + pointed_thing) or itemstack + end + + if pointed_thing.type ~= "node" then + return itemstack + end + if not is_water(pointed_thing.under) then + return itemstack + end + pointed_thing.under.y = pointed_thing.under.y + 0.5 + boat = minetest.add_entity(pointed_thing.under, "surfboard:board" .. color) + if boat then + boat:setyaw(placer:get_look_horizontal()) + if not (creative and creative.is_enabled_for + and creative.is_enabled_for(placer:get_player_name())) then + itemstack:take_item() + end + end + return itemstack + end, +}) + +end diff --git a/games/default/files/Cars/surfboard/license.txt b/games/default/files/Cars/surfboard/license.txt new file mode 100644 index 000000000..d4afe75f1 --- /dev/null +++ b/games/default/files/Cars/surfboard/license.txt @@ -0,0 +1,63 @@ +License of source code +---------------------- + +The MIT License (MIT) +Copyright (C) 2012-2016 PilzAdam +Copyright (C) 2012-2016 Various Minetest developers and contributors + +Permission is hereby granted, free of charge, to any person obtaining a copy of this +software and associated documentation files (the "Software"), to deal in the Software +without restriction, including without limitation the rights to use, copy, modify, merge, +publish, distribute, sublicense, and/or sell copies of the Software, and to permit +persons to whom the Software is furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all copies or +substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, +INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR +PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE +FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR +OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER +DEALINGS IN THE SOFTWARE. + +For more details: +https://opensource.org/licenses/MIT + + +Licenses of media (textures and model) +-------------------------------------- + +Attribution-ShareAlike 3.0 Unported (CC BY-SA 3.0) +Copyright (C) 2012-2016 Zeg9 +Copyright (C) 2012-2016 thetoon +Copyright (C) 2012-2016 PavelS(SokolovPavel) +Copyright (C) 2016 sofar (sofar@foo-projects.org) + +You are free to: +Share — copy and redistribute the material in any medium or format. +Adapt — remix, transform, and build upon the material for any purpose, even commercially. +The licensor cannot revoke these freedoms as long as you follow the license terms. + +Under the following terms: + +Attribution — You must give appropriate credit, provide a link to the license, and +indicate if changes were made. You may do so in any reasonable manner, but not in any way +that suggests the licensor endorses you or your use. + +ShareAlike — If you remix, transform, or build upon the material, you must distribute +your contributions under the same license as the original. + +No additional restrictions — You may not apply legal terms or technological measures that +legally restrict others from doing anything the license permits. + +Notices: + +You do not have to comply with the license for elements of the material in the public +domain or where your use is permitted by an applicable exception or limitation. +No warranties are given. The license may not give you all of the permissions necessary +for your intended use. For example, other rights such as publicity, privacy, or moral +rights may limit how you use the material. + +For more details: +http://creativecommons.org/licenses/by-sa/3.0/ diff --git a/games/default/files/Cars/surfboard/models/surfboard.x b/games/default/files/Cars/surfboard/models/surfboard.x new file mode 100644 index 000000000..775423e8f --- /dev/null +++ b/games/default/files/Cars/surfboard/models/surfboard.x @@ -0,0 +1,2392 @@ +xof 0303txt 0032 + +Frame Root { + FrameTransformMatrix { + 1.000000, 0.000000, 0.000000, 0.000000, + 0.000000,-0.000000, 1.000000, 0.000000, + 0.000000, 1.000000, 0.000000, 0.000000, + 0.000000, 0.000000, 0.000000, 1.000000;; + } + Frame Cube { + FrameTransformMatrix { + -0.000000,10.394503, 0.000000, 0.000000, + -3.929046,-0.000000, 0.000000, 0.000000, + 0.000000, 0.000000, 0.392905, 0.000000, + 0.000000, 0.000000, 0.000000, 1.000000;; + } + Mesh { // Cube mesh + 784; + -0.996151;-0.299703;-1.000000;, + -0.996151;-0.499505;-1.000000;, + -1.149405;-0.168470;-1.000000;, + -1.149405;-0.101082;-1.000000;, + -0.996151;-0.299703; 1.000000;, + -1.149405;-0.101082; 1.000000;, + -1.149405;-0.168470; 1.000000;, + -0.996151;-0.499505; 1.000000;, + 1.149405;-0.101082;-1.000000;, + 1.149404;-0.101082; 1.000000;, + 1.149404;-0.168470; 1.000000;, + 1.149405;-0.168470;-1.000000;, + -0.996151;-0.499505;-1.000000;, + -0.996151;-0.499505; 1.000000;, + -1.149405;-0.168470; 1.000000;, + -1.149405;-0.168470;-1.000000;, + -1.149404; 0.101082;-1.000000;, + -1.149405; 0.101082; 1.000000;, + -1.149405; 0.168470; 1.000000;, + -1.149404; 0.168470;-1.000000;, + -0.996151; 0.499505; 1.000000;, + -0.996150; 0.499505;-1.000000;, + -1.149404; 0.168470;-1.000000;, + -1.149405; 0.168470; 1.000000;, + 1.149405; 0.168470; 1.000000;, + 1.149405; 0.168470;-1.000000;, + 0.996151; 0.499505;-1.000000;, + 0.996151; 0.499505; 1.000000;, + 0.996151; 0.499505; 1.000000;, + 0.996151; 0.499505;-1.000000;, + 0.842897; 0.693839;-1.000000;, + 0.842897; 0.693839; 1.000000;, + 0.842897; 0.693839; 1.000000;, + 0.842897; 0.693839;-1.000000;, + 0.689643; 0.804442;-1.000000;, + 0.689643; 0.804442; 1.000000;, + 0.689643; 0.804442; 1.000000;, + 0.689643; 0.804442;-1.000000;, + 0.536389; 0.910389;-1.000000;, + 0.536389; 0.910388; 1.000000;, + 0.536389; 0.910388; 1.000000;, + 0.536389; 0.910389;-1.000000;, + 0.383135; 0.983469;-1.000000;, + 0.383135; 0.983469; 1.000000;, + 0.383135; 0.983469; 1.000000;, + 0.383135; 0.983469;-1.000000;, + 0.229881; 1.000000;-1.000000;, + 0.229881; 1.000000; 1.000000;, + 0.229881; 1.000000; 1.000000;, + 0.229881; 1.000000;-1.000000;, + 0.076627; 1.010235;-1.000000;, + 0.076627; 1.010234; 1.000000;, + 0.076627; 1.010234; 1.000000;, + 0.076627; 1.010235;-1.000000;, + -0.076627; 1.010235;-1.000000;, + -0.076627; 1.010234; 1.000000;, + -0.076627; 1.010234; 1.000000;, + -0.076627; 1.010235;-1.000000;, + -0.229881; 1.000000;-1.000000;, + -0.229881; 1.000000; 1.000000;, + -0.229881; 1.000000; 1.000000;, + -0.229881; 1.000000;-1.000000;, + -0.383135; 0.983469;-1.000000;, + -0.383135; 0.983469; 1.000000;, + -0.383135; 0.983469; 1.000000;, + -0.383135; 0.983469;-1.000000;, + -0.536389; 0.910389;-1.000000;, + -0.536389; 0.910389; 1.000000;, + -0.536389; 0.910389; 1.000000;, + -0.536389; 0.910389;-1.000000;, + -0.689643; 0.804442;-1.000000;, + -0.689643; 0.804442; 1.000000;, + -0.689643; 0.804442; 1.000000;, + -0.689643; 0.804442;-1.000000;, + -0.842897; 0.693839;-1.000000;, + -0.842897; 0.693839; 1.000000;, + -0.842897; 0.693839; 1.000000;, + -0.842897; 0.693839;-1.000000;, + -0.996150; 0.499505;-1.000000;, + -0.996151; 0.499505; 1.000000;, + 1.149405;-0.168470;-1.000000;, + 1.149404;-0.168470; 1.000000;, + 0.996150;-0.499506; 1.000000;, + 0.996151;-0.499505;-1.000000;, + 0.996151;-0.499505;-1.000000;, + 0.996150;-0.499506; 1.000000;, + 0.842896;-0.693839; 1.000000;, + 0.842897;-0.693839;-1.000000;, + 0.842897;-0.693839;-1.000000;, + 0.842896;-0.693839; 1.000000;, + 0.689642;-0.804442; 1.000000;, + 0.689643;-0.804442;-1.000000;, + 0.689643;-0.804442;-1.000000;, + 0.689642;-0.804442; 1.000000;, + 0.536388;-0.910389; 1.000000;, + 0.536389;-0.910389;-1.000000;, + 0.536389;-0.910389;-1.000000;, + 0.536388;-0.910389; 1.000000;, + 0.383134;-0.983469; 1.000000;, + 0.383135;-0.983469;-1.000000;, + 0.383135;-0.983469;-1.000000;, + 0.383134;-0.983469; 1.000000;, + 0.229880;-1.000000; 1.000000;, + 0.229881;-1.000000;-1.000000;, + 0.229881;-1.000000;-1.000000;, + 0.229880;-1.000000; 1.000000;, + 0.076626;-1.010235; 1.000000;, + 0.076627;-1.010235;-1.000000;, + 0.076627;-1.010235;-1.000000;, + 0.076626;-1.010235; 1.000000;, + -0.076628;-1.010235; 1.000000;, + -0.076627;-1.010235;-1.000000;, + -0.076627;-1.010235;-1.000000;, + -0.076628;-1.010235; 1.000000;, + -0.229882;-1.000000; 1.000000;, + -0.229881;-1.000000;-1.000000;, + -0.229881;-1.000000;-1.000000;, + -0.229882;-1.000000; 1.000000;, + -0.383136;-0.983469; 1.000000;, + -0.383135;-0.983469;-1.000000;, + -0.383135;-0.983469;-1.000000;, + -0.383136;-0.983469; 1.000000;, + -0.536390;-0.910388; 1.000000;, + -0.536389;-0.910389;-1.000000;, + -0.536389;-0.910389;-1.000000;, + -0.536390;-0.910388; 1.000000;, + -0.689644;-0.804441; 1.000000;, + -0.689643;-0.804442;-1.000000;, + -0.689643;-0.804442;-1.000000;, + -0.689644;-0.804441; 1.000000;, + -0.842897;-0.693838; 1.000000;, + -0.842897;-0.693839;-1.000000;, + -0.842897;-0.693839;-1.000000;, + -0.842897;-0.693838; 1.000000;, + -0.996151;-0.499505; 1.000000;, + -0.996151;-0.499505;-1.000000;, + 1.149404;-0.101082; 1.000000;, + 0.996150;-0.299704; 1.000000;, + 0.996150;-0.499506; 1.000000;, + 1.149404;-0.168470; 1.000000;, + 0.996150;-0.299704; 1.000000;, + 0.842896;-0.416304; 1.000000;, + 0.842896;-0.693839; 1.000000;, + 0.996150;-0.499506; 1.000000;, + 0.842896;-0.416304; 1.000000;, + 0.689642;-0.482665; 1.000000;, + 0.689642;-0.804442; 1.000000;, + 0.842896;-0.693839; 1.000000;, + 0.689642;-0.482665; 1.000000;, + 0.536388;-0.546233; 1.000000;, + 0.536388;-0.910389; 1.000000;, + 0.689642;-0.804442; 1.000000;, + 0.536388;-0.546233; 1.000000;, + 0.383134;-0.590082; 1.000000;, + 0.383134;-0.983469; 1.000000;, + 0.536388;-0.910389; 1.000000;, + 0.383134;-0.590082; 1.000000;, + 0.229881;-0.600000; 1.000000;, + 0.229880;-1.000000; 1.000000;, + 0.383134;-0.983469; 1.000000;, + 0.229881;-0.600000; 1.000000;, + 0.076627;-0.606141; 1.000000;, + 0.076626;-1.010235; 1.000000;, + 0.229880;-1.000000; 1.000000;, + 0.076627;-0.606141; 1.000000;, + -0.076627;-0.606141; 1.000000;, + -0.076628;-1.010235; 1.000000;, + 0.076626;-1.010235; 1.000000;, + -0.076627;-0.606141; 1.000000;, + -0.229881;-0.600000; 1.000000;, + -0.229882;-1.000000; 1.000000;, + -0.076628;-1.010235; 1.000000;, + -0.229881;-0.600000; 1.000000;, + -0.383135;-0.590081; 1.000000;, + -0.383136;-0.983469; 1.000000;, + -0.229882;-1.000000; 1.000000;, + -0.383135;-0.590081; 1.000000;, + -0.536389;-0.546233; 1.000000;, + -0.536390;-0.910388; 1.000000;, + -0.383136;-0.983469; 1.000000;, + -0.536389;-0.546233; 1.000000;, + -0.689643;-0.482665; 1.000000;, + -0.689644;-0.804441; 1.000000;, + -0.536390;-0.910388; 1.000000;, + -0.689643;-0.482665; 1.000000;, + -0.842897;-0.416303; 1.000000;, + -0.842897;-0.693838; 1.000000;, + -0.689644;-0.804441; 1.000000;, + -0.842897;-0.416303; 1.000000;, + -0.996151;-0.299703; 1.000000;, + -0.996151;-0.499505; 1.000000;, + -0.842897;-0.693838; 1.000000;, + 1.149405;-0.101082;-1.000000;, + 1.149405;-0.168470;-1.000000;, + 0.996151;-0.499505;-1.000000;, + 0.996151;-0.299703;-1.000000;, + 0.996151;-0.299703;-1.000000;, + 0.996151;-0.499505;-1.000000;, + 0.842897;-0.693839;-1.000000;, + 0.842897;-0.416303;-1.000000;, + 0.842897;-0.416303;-1.000000;, + 0.842897;-0.693839;-1.000000;, + 0.689643;-0.804442;-1.000000;, + 0.689643;-0.482665;-1.000000;, + 0.689643;-0.482665;-1.000000;, + 0.689643;-0.804442;-1.000000;, + 0.536389;-0.910389;-1.000000;, + 0.536389;-0.546233;-1.000000;, + 0.536389;-0.546233;-1.000000;, + 0.536389;-0.910389;-1.000000;, + 0.383135;-0.983469;-1.000000;, + 0.383135;-0.590081;-1.000000;, + 0.383135;-0.590081;-1.000000;, + 0.383135;-0.983469;-1.000000;, + 0.229881;-1.000000;-1.000000;, + 0.229881;-0.600000;-1.000000;, + 0.229881;-0.600000;-1.000000;, + 0.229881;-1.000000;-1.000000;, + 0.076627;-1.010235;-1.000000;, + 0.076627;-0.606141;-1.000000;, + 0.076627;-0.606141;-1.000000;, + 0.076627;-1.010235;-1.000000;, + -0.076627;-1.010235;-1.000000;, + -0.076627;-0.606141;-1.000000;, + -0.076627;-0.606141;-1.000000;, + -0.076627;-1.010235;-1.000000;, + -0.229881;-1.000000;-1.000000;, + -0.229881;-0.600000;-1.000000;, + -0.229881;-0.600000;-1.000000;, + -0.229881;-1.000000;-1.000000;, + -0.383135;-0.983469;-1.000000;, + -0.383135;-0.590081;-1.000000;, + -0.383135;-0.590081;-1.000000;, + -0.383135;-0.983469;-1.000000;, + -0.536389;-0.910389;-1.000000;, + -0.536389;-0.546233;-1.000000;, + -0.536389;-0.546233;-1.000000;, + -0.536389;-0.910389;-1.000000;, + -0.689643;-0.804442;-1.000000;, + -0.689643;-0.482665;-1.000000;, + -0.689643;-0.482665;-1.000000;, + -0.689643;-0.804442;-1.000000;, + -0.842897;-0.693839;-1.000000;, + -0.842897;-0.416303;-1.000000;, + -0.842897;-0.416303;-1.000000;, + -0.842897;-0.693839;-1.000000;, + -0.996151;-0.499505;-1.000000;, + -0.996151;-0.299703;-1.000000;, + -0.842897; 0.693839;-1.000000;, + -0.842897; 0.416303;-1.000000;, + -0.996151; 0.299703;-1.000000;, + -0.996150; 0.499505;-1.000000;, + -0.842897; 0.416303;-1.000000;, + -0.842897; 0.138768;-1.000000;, + -0.996151; 0.099901;-1.000000;, + -0.996151; 0.299703;-1.000000;, + -0.842897; 0.138768;-1.000000;, + -0.842897;-0.138768;-1.000000;, + -0.842897;-0.138768;-3.687105;, + -0.842897; 0.138768;-3.687105;, + -0.842897;-0.138768;-1.000000;, + -0.842897;-0.416303;-1.000000;, + -0.996151;-0.299703;-1.000000;, + -0.996151;-0.099901;-1.000000;, + -0.689643; 0.804442;-1.000000;, + -0.689643; 0.482665;-1.000000;, + -0.842897; 0.416303;-1.000000;, + -0.842897; 0.693839;-1.000000;, + -0.689643; 0.482665;-1.000000;, + -0.689643; 0.160888;-1.000000;, + -0.842897; 0.138768;-1.000000;, + -0.842897; 0.416303;-1.000000;, + -0.689643; 0.160888;-1.000000;, + -0.689643;-0.160888;-1.000000;, + -0.842897;-0.138768;-1.000000;, + -0.842897; 0.138768;-1.000000;, + -0.689643;-0.160888;-1.000000;, + -0.689643;-0.482665;-1.000000;, + -0.842897;-0.416303;-1.000000;, + -0.842897;-0.138768;-1.000000;, + -0.536389; 0.910389;-1.000000;, + -0.536389; 0.546233;-1.000000;, + -0.689643; 0.482665;-1.000000;, + -0.689643; 0.804442;-1.000000;, + -0.536389; 0.546233;-1.000000;, + -0.536389; 0.182078;-1.000000;, + -0.689643; 0.160888;-1.000000;, + -0.689643; 0.482665;-1.000000;, + -0.536389; 0.182078;-1.000000;, + -0.536389;-0.182078;-1.000000;, + -0.689643;-0.160888;-1.000000;, + -0.689643; 0.160888;-1.000000;, + -0.536389;-0.182078;-1.000000;, + -0.536389;-0.546233;-1.000000;, + -0.689643;-0.482665;-1.000000;, + -0.689643;-0.160888;-1.000000;, + -0.383135; 0.983469;-1.000000;, + -0.383135; 0.590081;-1.000000;, + -0.536389; 0.546233;-1.000000;, + -0.536389; 0.910389;-1.000000;, + -0.383135; 0.590081;-1.000000;, + -0.383135; 0.196694;-1.000000;, + -0.536389; 0.182078;-1.000000;, + -0.536389; 0.546233;-1.000000;, + -0.383135; 0.196694;-1.000000;, + -0.383135;-0.196694;-1.000000;, + -0.536389;-0.182078;-1.000000;, + -0.536389; 0.182078;-1.000000;, + -0.383135;-0.196694;-1.000000;, + -0.383135;-0.590081;-1.000000;, + -0.536389;-0.546233;-1.000000;, + -0.536389;-0.182078;-1.000000;, + -0.229881; 1.000000;-1.000000;, + -0.229881; 0.600000;-1.000000;, + -0.383135; 0.590081;-1.000000;, + -0.383135; 0.983469;-1.000000;, + -0.229881; 0.600000;-1.000000;, + -0.229881; 0.200000;-1.000000;, + -0.383135; 0.196694;-1.000000;, + -0.383135; 0.590081;-1.000000;, + -0.229881; 0.200000;-1.000000;, + -0.229881;-0.200000;-1.000000;, + -0.383135;-0.196694;-1.000000;, + -0.383135; 0.196694;-1.000000;, + -0.229881;-0.200000;-1.000000;, + -0.229881;-0.600000;-1.000000;, + -0.383135;-0.590081;-1.000000;, + -0.383135;-0.196694;-1.000000;, + -0.076627; 1.010235;-1.000000;, + -0.076627; 0.606141;-1.000000;, + -0.229881; 0.600000;-1.000000;, + -0.229881; 1.000000;-1.000000;, + -0.076627; 0.606141;-1.000000;, + -0.076627; 0.202047;-1.000000;, + -0.229881; 0.200000;-1.000000;, + -0.229881; 0.600000;-1.000000;, + -0.076627; 0.202047;-1.000000;, + -0.076627;-0.202047;-1.000000;, + -0.229881;-0.200000;-1.000000;, + -0.229881; 0.200000;-1.000000;, + -0.076627;-0.202047;-1.000000;, + -0.076627;-0.606141;-1.000000;, + -0.229881;-0.600000;-1.000000;, + -0.229881;-0.200000;-1.000000;, + 0.076627; 1.010235;-1.000000;, + 0.076627; 0.606141;-1.000000;, + -0.076627; 0.606141;-1.000000;, + -0.076627; 1.010235;-1.000000;, + 0.076627; 0.606141;-1.000000;, + 0.076627; 0.202047;-1.000000;, + -0.076627; 0.202047;-1.000000;, + -0.076627; 0.606141;-1.000000;, + 0.076627; 0.202047;-1.000000;, + 0.076627;-0.202047;-1.000000;, + -0.076627;-0.202047;-1.000000;, + -0.076627; 0.202047;-1.000000;, + 0.076627;-0.202047;-1.000000;, + 0.076627;-0.606141;-1.000000;, + -0.076627;-0.606141;-1.000000;, + -0.076627;-0.202047;-1.000000;, + 0.229881; 1.000000;-1.000000;, + 0.229881; 0.600000;-1.000000;, + 0.076627; 0.606141;-1.000000;, + 0.076627; 1.010235;-1.000000;, + 0.229881; 0.600000;-1.000000;, + 0.229881; 0.200000;-1.000000;, + 0.076627; 0.202047;-1.000000;, + 0.076627; 0.606141;-1.000000;, + 0.229881; 0.200000;-1.000000;, + 0.229881;-0.200000;-1.000000;, + 0.076627;-0.202047;-1.000000;, + 0.076627; 0.202047;-1.000000;, + 0.229881;-0.200000;-1.000000;, + 0.229881;-0.600000;-1.000000;, + 0.076627;-0.606141;-1.000000;, + 0.076627;-0.202047;-1.000000;, + 0.383135; 0.983469;-1.000000;, + 0.383135; 0.590081;-1.000000;, + 0.229881; 0.600000;-1.000000;, + 0.229881; 1.000000;-1.000000;, + 0.383135; 0.590081;-1.000000;, + 0.383135; 0.196694;-1.000000;, + 0.229881; 0.200000;-1.000000;, + 0.229881; 0.600000;-1.000000;, + 0.383135; 0.196694;-1.000000;, + 0.383135;-0.196694;-1.000000;, + 0.229881;-0.200000;-1.000000;, + 0.229881; 0.200000;-1.000000;, + 0.383135;-0.196694;-1.000000;, + 0.383135;-0.590081;-1.000000;, + 0.229881;-0.600000;-1.000000;, + 0.229881;-0.200000;-1.000000;, + 0.536389; 0.910389;-1.000000;, + 0.536389; 0.546233;-1.000000;, + 0.383135; 0.590081;-1.000000;, + 0.383135; 0.983469;-1.000000;, + 0.536389; 0.546233;-1.000000;, + 0.536389; 0.182078;-1.000000;, + 0.383135; 0.196694;-1.000000;, + 0.383135; 0.590081;-1.000000;, + 0.536389; 0.182078;-1.000000;, + 0.536389;-0.182078;-1.000000;, + 0.383135;-0.196694;-1.000000;, + 0.383135; 0.196694;-1.000000;, + 0.536389;-0.182078;-1.000000;, + 0.536389;-0.546233;-1.000000;, + 0.383135;-0.590081;-1.000000;, + 0.383135;-0.196694;-1.000000;, + 0.689643; 0.804442;-1.000000;, + 0.689643; 0.482665;-1.000000;, + 0.536389; 0.546233;-1.000000;, + 0.536389; 0.910389;-1.000000;, + 0.689643; 0.482665;-1.000000;, + 0.689643; 0.160888;-1.000000;, + 0.536389; 0.182078;-1.000000;, + 0.536389; 0.546233;-1.000000;, + 0.689643; 0.160888;-1.000000;, + 0.689643;-0.160888;-1.000000;, + 0.536389;-0.182078;-1.000000;, + 0.536389; 0.182078;-1.000000;, + 0.689643;-0.160888;-1.000000;, + 0.689643;-0.482665;-1.000000;, + 0.536389;-0.546233;-1.000000;, + 0.536389;-0.182078;-1.000000;, + 0.842897; 0.693839;-1.000000;, + 0.842897; 0.416303;-1.000000;, + 0.689643; 0.482665;-1.000000;, + 0.689643; 0.804442;-1.000000;, + 0.842897; 0.416303;-1.000000;, + 0.842897; 0.138768;-1.000000;, + 0.689643; 0.160888;-1.000000;, + 0.689643; 0.482665;-1.000000;, + 0.842897; 0.138768;-1.000000;, + 0.842897;-0.138768;-1.000000;, + 0.689643;-0.160888;-1.000000;, + 0.689643; 0.160888;-1.000000;, + 0.842897;-0.138768;-1.000000;, + 0.842897;-0.416303;-1.000000;, + 0.689643;-0.482665;-1.000000;, + 0.689643;-0.160888;-1.000000;, + 0.996151; 0.499505;-1.000000;, + 0.996151; 0.299703;-1.000000;, + 0.842897; 0.416303;-1.000000;, + 0.842897; 0.693839;-1.000000;, + 0.996151; 0.299703;-1.000000;, + 0.996151; 0.099901;-1.000000;, + 0.842897; 0.138768;-1.000000;, + 0.842897; 0.416303;-1.000000;, + 0.996151; 0.099901;-1.000000;, + 0.996151;-0.099901;-1.000000;, + 0.842897;-0.138768;-1.000000;, + 0.842897; 0.138768;-1.000000;, + 0.996151;-0.099901;-1.000000;, + 0.996151;-0.299703;-1.000000;, + 0.842897;-0.416303;-1.000000;, + 0.842897;-0.138768;-1.000000;, + 1.149405; 0.168470;-1.000000;, + 1.149405; 0.101082;-1.000000;, + 0.996151; 0.299703;-1.000000;, + 0.996151; 0.499505;-1.000000;, + 1.149405; 0.101082;-1.000000;, + 1.149405; 0.033694;-1.000000;, + 0.996151; 0.099901;-1.000000;, + 0.996151; 0.299703;-1.000000;, + 1.149405; 0.033694;-1.000000;, + 1.149405;-0.033694;-1.000000;, + 0.996151;-0.099901;-1.000000;, + 0.996151; 0.099901;-1.000000;, + 1.149405;-0.033694;-1.000000;, + 1.149405;-0.101082;-1.000000;, + 0.996151;-0.299703;-1.000000;, + 0.996151;-0.099901;-1.000000;, + -0.842897; 0.693839; 1.000000;, + -0.996151; 0.499505; 1.000000;, + -0.996151; 0.299703; 1.000000;, + -0.842897; 0.416303; 1.000000;, + -0.842897; 0.416303; 1.000000;, + -0.996151; 0.299703; 1.000000;, + -0.996151; 0.099901; 1.000000;, + -0.842897; 0.138768; 1.000000;, + -0.842897; 0.138768; 1.000000;, + -0.996151; 0.099901; 1.000000;, + -0.996151;-0.099901; 1.000000;, + -0.842897;-0.138768; 1.000000;, + -0.842897;-0.138768; 1.000000;, + -0.996151;-0.099901; 1.000000;, + -0.996151;-0.299703; 1.000000;, + -0.842897;-0.416303; 1.000000;, + -0.689643; 0.804442; 1.000000;, + -0.842897; 0.693839; 1.000000;, + -0.842897; 0.416303; 1.000000;, + -0.689643; 0.482665; 1.000000;, + -0.689643; 0.482665; 1.000000;, + -0.842897; 0.416303; 1.000000;, + -0.842897; 0.138768; 1.000000;, + -0.689643; 0.160888; 1.000000;, + -0.689643; 0.160888; 1.000000;, + -0.842897; 0.138768; 1.000000;, + -0.842897;-0.138768; 1.000000;, + -0.689643;-0.160888; 1.000000;, + -0.689643;-0.160888; 1.000000;, + -0.842897;-0.138768; 1.000000;, + -0.842897;-0.416303; 1.000000;, + -0.689643;-0.482665; 1.000000;, + -0.536389; 0.910389; 1.000000;, + -0.689643; 0.804442; 1.000000;, + -0.689643; 0.482665; 1.000000;, + -0.536389; 0.546233; 1.000000;, + -0.536389; 0.546233; 1.000000;, + -0.689643; 0.482665; 1.000000;, + -0.689643; 0.160888; 1.000000;, + -0.536389; 0.182078; 1.000000;, + -0.536389; 0.182078; 1.000000;, + -0.689643; 0.160888; 1.000000;, + -0.689643;-0.160888; 1.000000;, + -0.536389;-0.182078; 1.000000;, + -0.536389;-0.182078; 1.000000;, + -0.689643;-0.160888; 1.000000;, + -0.689643;-0.482665; 1.000000;, + -0.536389;-0.546233; 1.000000;, + -0.383135; 0.983469; 1.000000;, + -0.536389; 0.910389; 1.000000;, + -0.536389; 0.546233; 1.000000;, + -0.383135; 0.590081; 1.000000;, + -0.383135; 0.590081; 1.000000;, + -0.536389; 0.546233; 1.000000;, + -0.536389; 0.182078; 1.000000;, + -0.383135; 0.196694; 1.000000;, + -0.383135; 0.196694; 1.000000;, + -0.536389; 0.182078; 1.000000;, + -0.536389;-0.182078; 1.000000;, + -0.383135;-0.196694; 1.000000;, + -0.383135;-0.196694; 1.000000;, + -0.536389;-0.182078; 1.000000;, + -0.536389;-0.546233; 1.000000;, + -0.383135;-0.590081; 1.000000;, + -0.229881; 1.000000; 1.000000;, + -0.383135; 0.983469; 1.000000;, + -0.383135; 0.590081; 1.000000;, + -0.229881; 0.600000; 1.000000;, + -0.229881; 0.600000; 1.000000;, + -0.383135; 0.590081; 1.000000;, + -0.383135; 0.196694; 1.000000;, + -0.229881; 0.200000; 1.000000;, + -0.229881; 0.200000; 1.000000;, + -0.383135; 0.196694; 1.000000;, + -0.383135;-0.196694; 1.000000;, + -0.229881;-0.200000; 1.000000;, + -0.229881;-0.200000; 1.000000;, + -0.383135;-0.196694; 1.000000;, + -0.383135;-0.590081; 1.000000;, + -0.229881;-0.600000; 1.000000;, + -0.076627; 1.010234; 1.000000;, + -0.229881; 1.000000; 1.000000;, + -0.229881; 0.600000; 1.000000;, + -0.076627; 0.606141; 1.000000;, + -0.076627; 0.606141; 1.000000;, + -0.229881; 0.600000; 1.000000;, + -0.229881; 0.200000; 1.000000;, + -0.076627; 0.202047; 1.000000;, + -0.076627; 0.202047; 1.000000;, + -0.229881; 0.200000; 1.000000;, + -0.229881;-0.200000; 1.000000;, + -0.076627;-0.202047; 1.000000;, + -0.076627;-0.202047; 1.000000;, + -0.229881;-0.200000; 1.000000;, + -0.229881;-0.600000; 1.000000;, + -0.076627;-0.606141; 1.000000;, + 0.076627; 1.010234; 1.000000;, + -0.076627; 1.010234; 1.000000;, + -0.076627; 0.606141; 1.000000;, + 0.076627; 0.606141; 1.000000;, + 0.076627; 0.606141; 1.000000;, + -0.076627; 0.606141; 1.000000;, + -0.076627; 0.202047; 1.000000;, + 0.076627; 0.202047; 1.000000;, + 0.076627; 0.202047; 1.000000;, + -0.076627; 0.202047; 1.000000;, + -0.076627;-0.202047; 1.000000;, + 0.076627;-0.202047; 1.000000;, + 0.076627;-0.202047; 1.000000;, + -0.076627;-0.202047; 1.000000;, + -0.076627;-0.606141; 1.000000;, + 0.076627;-0.606141; 1.000000;, + 0.229881; 1.000000; 1.000000;, + 0.076627; 1.010234; 1.000000;, + 0.076627; 0.606141; 1.000000;, + 0.229881; 0.600000; 1.000000;, + 0.229881; 0.600000; 1.000000;, + 0.076627; 0.606141; 1.000000;, + 0.076627; 0.202047; 1.000000;, + 0.229881; 0.200000; 1.000000;, + 0.229881; 0.200000; 1.000000;, + 0.076627; 0.202047; 1.000000;, + 0.076627;-0.202047; 1.000000;, + 0.229881;-0.200000; 1.000000;, + 0.229881;-0.200000; 1.000000;, + 0.076627;-0.202047; 1.000000;, + 0.076627;-0.606141; 1.000000;, + 0.229881;-0.600000; 1.000000;, + 0.383135; 0.983469; 1.000000;, + 0.229881; 1.000000; 1.000000;, + 0.229881; 0.600000; 1.000000;, + 0.383135; 0.590081; 1.000000;, + 0.383135; 0.590081; 1.000000;, + 0.229881; 0.600000; 1.000000;, + 0.229881; 0.200000; 1.000000;, + 0.383135; 0.196694; 1.000000;, + 0.383135; 0.196694; 1.000000;, + 0.229881; 0.200000; 1.000000;, + 0.229881;-0.200000; 1.000000;, + 0.383135;-0.196694; 1.000000;, + 0.383135;-0.196694; 1.000000;, + 0.229881;-0.200000; 1.000000;, + 0.229881;-0.600000; 1.000000;, + 0.383134;-0.590082; 1.000000;, + 0.536389; 0.910388; 1.000000;, + 0.383135; 0.983469; 1.000000;, + 0.383135; 0.590081; 1.000000;, + 0.536389; 0.546233; 1.000000;, + 0.536389; 0.546233; 1.000000;, + 0.383135; 0.590081; 1.000000;, + 0.383135; 0.196694; 1.000000;, + 0.536389; 0.182078; 1.000000;, + 0.536389; 0.182078; 1.000000;, + 0.383135; 0.196694; 1.000000;, + 0.383135;-0.196694; 1.000000;, + 0.536389;-0.182078; 1.000000;, + 0.536389;-0.182078; 1.000000;, + 0.383135;-0.196694; 1.000000;, + 0.383134;-0.590082; 1.000000;, + 0.536388;-0.546233; 1.000000;, + 0.689643; 0.804442; 1.000000;, + 0.536389; 0.910388; 1.000000;, + 0.536389; 0.546233; 1.000000;, + 0.689643; 0.482665; 1.000000;, + 0.689643; 0.482665; 1.000000;, + 0.536389; 0.546233; 1.000000;, + 0.536389; 0.182078; 1.000000;, + 0.689643; 0.160888; 1.000000;, + 0.689643; 0.160888; 1.000000;, + 0.536389; 0.182078; 1.000000;, + 0.536389;-0.182078; 1.000000;, + 0.689643;-0.160889; 1.000000;, + 0.689643;-0.160889; 1.000000;, + 0.536389;-0.182078; 1.000000;, + 0.536388;-0.546233; 1.000000;, + 0.689642;-0.482665; 1.000000;, + 0.842897; 0.693839; 1.000000;, + 0.689643; 0.804442; 1.000000;, + 0.689643; 0.482665; 1.000000;, + 0.842897; 0.416303; 1.000000;, + 0.842897; 0.416303; 1.000000;, + 0.689643; 0.482665; 1.000000;, + 0.689643; 0.160888; 1.000000;, + 0.842897; 0.138767; 1.000000;, + 0.842897; 0.138767; 1.000000;, + 0.689643; 0.160888; 1.000000;, + 0.689643;-0.160889; 1.000000;, + 0.842897;-0.138768; 1.000000;, + 0.842897;-0.138768; 1.000000;, + 0.689643;-0.160889; 1.000000;, + 0.689642;-0.482665; 1.000000;, + 0.842896;-0.416304; 1.000000;, + 0.996151; 0.499505; 1.000000;, + 0.842897; 0.693839; 1.000000;, + 0.842897; 0.416303; 1.000000;, + 0.996151; 0.299703; 1.000000;, + 0.996151; 0.299703; 1.000000;, + 0.842897; 0.416303; 1.000000;, + 0.842897; 0.138767; 1.000000;, + 0.996151; 0.099901; 1.000000;, + 0.996151; 0.099901; 1.000000;, + 0.842897; 0.138767; 1.000000;, + 0.842897;-0.138768; 1.000000;, + 0.996151;-0.099901; 1.000000;, + 0.996151;-0.099901; 1.000000;, + 0.842897;-0.138768; 1.000000;, + 0.842896;-0.416304; 1.000000;, + 0.996150;-0.299704; 1.000000;, + 1.149405; 0.168470; 1.000000;, + 0.996151; 0.499505; 1.000000;, + 0.996151; 0.299703; 1.000000;, + 1.149405; 0.101082; 1.000000;, + 1.149405; 0.101082; 1.000000;, + 0.996151; 0.299703; 1.000000;, + 0.996151; 0.099901; 1.000000;, + 1.149405; 0.033694; 1.000000;, + 1.149405; 0.033694; 1.000000;, + 0.996151; 0.099901; 1.000000;, + 0.996151;-0.099901; 1.000000;, + 1.149404;-0.033694; 1.000000;, + 1.149404;-0.033694; 1.000000;, + 0.996151;-0.099901; 1.000000;, + 0.996150;-0.299704; 1.000000;, + 1.149404;-0.101082; 1.000000;, + -1.149405;-0.168470;-1.000000;, + -1.149405;-0.168470; 1.000000;, + -1.149405;-0.101082; 1.000000;, + -1.149405;-0.101082;-1.000000;, + -1.149405;-0.101082;-1.000000;, + -1.149405;-0.101082; 1.000000;, + -1.149405;-0.033694; 1.000000;, + -1.149405;-0.033694;-1.000000;, + -1.149405;-0.033694;-1.000000;, + -1.149405;-0.033694; 1.000000;, + -1.149405; 0.033694; 1.000000;, + -1.149404; 0.033694;-1.000000;, + -1.149404; 0.033694;-1.000000;, + -1.149405; 0.033694; 1.000000;, + -1.149405; 0.101082; 1.000000;, + -1.149404; 0.101082;-1.000000;, + 1.149405; 0.168470;-1.000000;, + 1.149405; 0.168470; 1.000000;, + 1.149405; 0.101082; 1.000000;, + 1.149405; 0.101082;-1.000000;, + 1.149405; 0.101082;-1.000000;, + 1.149405; 0.101082; 1.000000;, + 1.149405; 0.033694; 1.000000;, + 1.149405; 0.033694;-1.000000;, + 1.149405; 0.033694;-1.000000;, + 1.149405; 0.033694; 1.000000;, + 1.149404;-0.033694; 1.000000;, + 1.149405;-0.033694;-1.000000;, + 1.149405;-0.033694;-1.000000;, + 1.149404;-0.033694; 1.000000;, + 1.149404;-0.101082; 1.000000;, + 1.149405;-0.101082;-1.000000;, + -0.996151; 0.499505; 1.000000;, + -1.149405; 0.168470; 1.000000;, + -1.149405; 0.101082; 1.000000;, + -0.996151; 0.299703; 1.000000;, + -0.996151; 0.299703; 1.000000;, + -1.149405; 0.101082; 1.000000;, + -1.149405; 0.033694; 1.000000;, + -0.996151; 0.099901; 1.000000;, + -0.996151; 0.099901; 1.000000;, + -1.149405; 0.033694; 1.000000;, + -1.149405;-0.033694; 1.000000;, + -0.996151;-0.099901; 1.000000;, + -0.996151;-0.099901; 1.000000;, + -1.149405;-0.033694; 1.000000;, + -1.149405;-0.101082; 1.000000;, + -0.996151;-0.299703; 1.000000;, + -0.996150; 0.499505;-1.000000;, + -0.996151; 0.299703;-1.000000;, + -1.149404; 0.101082;-1.000000;, + -1.149404; 0.168470;-1.000000;, + -0.996151; 0.299703;-1.000000;, + -0.996151; 0.099901;-1.000000;, + -1.149404; 0.033694;-1.000000;, + -1.149404; 0.101082;-1.000000;, + -0.996151;-0.099901;-1.000000;, + -1.149405;-0.033694;-1.000000;, + -1.149405;-0.033694;-3.687105;, + -0.996151;-0.099901;-3.687105;, + -0.996151;-0.099901;-1.000000;, + -0.996151;-0.299703;-1.000000;, + -1.149405;-0.101082;-1.000000;, + -1.149405;-0.033694;-1.000000;, + -0.842897; 0.138768;-3.687105;, + -0.842897;-0.138768;-3.687105;, + -0.996151;-0.099901;-3.687105;, + -0.996151; 0.099901;-3.687105;, + -0.996151; 0.099901;-3.687105;, + -0.996151;-0.099901;-3.687105;, + -1.149405;-0.033694;-3.687105;, + -1.149404; 0.033694;-3.687105;, + -0.996151; 0.099901;-1.000000;, + -0.842897; 0.138768;-1.000000;, + -0.842897; 0.138768;-3.687105;, + -0.996151; 0.099901;-3.687105;, + -1.149405;-0.033694;-1.000000;, + -1.149404; 0.033694;-1.000000;, + -1.149404; 0.033694;-3.687105;, + -1.149405;-0.033694;-3.687105;, + -1.149404; 0.033694;-1.000000;, + -0.996151; 0.099901;-1.000000;, + -0.996151; 0.099901;-3.687105;, + -1.149404; 0.033694;-3.687105;, + -0.842897;-0.138768;-1.000000;, + -0.996151;-0.099901;-1.000000;, + -0.996151;-0.099901;-3.687105;, + -0.842897;-0.138768;-3.687105;; + 196; + 4;3,2,1,0;, + 4;7,6,5,4;, + 4;11,10,9,8;, + 4;15,14,13,12;, + 4;19,18,17,16;, + 4;23,22,21,20;, + 4;27,26,25,24;, + 4;31,30,29,28;, + 4;35,34,33,32;, + 4;39,38,37,36;, + 4;43,42,41,40;, + 4;47,46,45,44;, + 4;51,50,49,48;, + 4;55,54,53,52;, + 4;59,58,57,56;, + 4;63,62,61,60;, + 4;67,66,65,64;, + 4;71,70,69,68;, + 4;75,74,73,72;, + 4;79,78,77,76;, + 4;83,82,81,80;, + 4;87,86,85,84;, + 4;91,90,89,88;, + 4;95,94,93,92;, + 4;99,98,97,96;, + 4;103,102,101,100;, + 4;107,106,105,104;, + 4;111,110,109,108;, + 4;115,114,113,112;, + 4;119,118,117,116;, + 4;123,122,121,120;, + 4;127,126,125,124;, + 4;131,130,129,128;, + 4;135,134,133,132;, + 4;139,138,137,136;, + 4;143,142,141,140;, + 4;147,146,145,144;, + 4;151,150,149,148;, + 4;155,154,153,152;, + 4;159,158,157,156;, + 4;163,162,161,160;, + 4;167,166,165,164;, + 4;171,170,169,168;, + 4;175,174,173,172;, + 4;179,178,177,176;, + 4;183,182,181,180;, + 4;187,186,185,184;, + 4;191,190,189,188;, + 4;195,194,193,192;, + 4;199,198,197,196;, + 4;203,202,201,200;, + 4;207,206,205,204;, + 4;211,210,209,208;, + 4;215,214,213,212;, + 4;219,218,217,216;, + 4;223,222,221,220;, + 4;227,226,225,224;, + 4;231,230,229,228;, + 4;235,234,233,232;, + 4;239,238,237,236;, + 4;243,242,241,240;, + 4;247,246,245,244;, + 4;251,250,249,248;, + 4;255,254,253,252;, + 4;259,258,257,256;, + 4;263,262,261,260;, + 4;267,266,265,264;, + 4;271,270,269,268;, + 4;275,274,273,272;, + 4;279,278,277,276;, + 4;283,282,281,280;, + 4;287,286,285,284;, + 4;291,290,289,288;, + 4;295,294,293,292;, + 4;299,298,297,296;, + 4;303,302,301,300;, + 4;307,306,305,304;, + 4;311,310,309,308;, + 4;315,314,313,312;, + 4;319,318,317,316;, + 4;323,322,321,320;, + 4;327,326,325,324;, + 4;331,330,329,328;, + 4;335,334,333,332;, + 4;339,338,337,336;, + 4;343,342,341,340;, + 4;347,346,345,344;, + 4;351,350,349,348;, + 4;355,354,353,352;, + 4;359,358,357,356;, + 4;363,362,361,360;, + 4;367,366,365,364;, + 4;371,370,369,368;, + 4;375,374,373,372;, + 4;379,378,377,376;, + 4;383,382,381,380;, + 4;387,386,385,384;, + 4;391,390,389,388;, + 4;395,394,393,392;, + 4;399,398,397,396;, + 4;403,402,401,400;, + 4;407,406,405,404;, + 4;411,410,409,408;, + 4;415,414,413,412;, + 4;419,418,417,416;, + 4;423,422,421,420;, + 4;427,426,425,424;, + 4;431,430,429,428;, + 4;435,434,433,432;, + 4;439,438,437,436;, + 4;443,442,441,440;, + 4;447,446,445,444;, + 4;451,450,449,448;, + 4;455,454,453,452;, + 4;459,458,457,456;, + 4;463,462,461,460;, + 4;467,466,465,464;, + 4;471,470,469,468;, + 4;475,474,473,472;, + 4;479,478,477,476;, + 4;483,482,481,480;, + 4;487,486,485,484;, + 4;491,490,489,488;, + 4;495,494,493,492;, + 4;499,498,497,496;, + 4;503,502,501,500;, + 4;507,506,505,504;, + 4;511,510,509,508;, + 4;515,514,513,512;, + 4;519,518,517,516;, + 4;523,522,521,520;, + 4;527,526,525,524;, + 4;531,530,529,528;, + 4;535,534,533,532;, + 4;539,538,537,536;, + 4;543,542,541,540;, + 4;547,546,545,544;, + 4;551,550,549,548;, + 4;555,554,553,552;, + 4;559,558,557,556;, + 4;563,562,561,560;, + 4;567,566,565,564;, + 4;571,570,569,568;, + 4;575,574,573,572;, + 4;579,578,577,576;, + 4;583,582,581,580;, + 4;587,586,585,584;, + 4;591,590,589,588;, + 4;595,594,593,592;, + 4;599,598,597,596;, + 4;603,602,601,600;, + 4;607,606,605,604;, + 4;611,610,609,608;, + 4;615,614,613,612;, + 4;619,618,617,616;, + 4;623,622,621,620;, + 4;627,626,625,624;, + 4;631,630,629,628;, + 4;635,634,633,632;, + 4;639,638,637,636;, + 4;643,642,641,640;, + 4;647,646,645,644;, + 4;651,650,649,648;, + 4;655,654,653,652;, + 4;659,658,657,656;, + 4;663,662,661,660;, + 4;667,666,665,664;, + 4;671,670,669,668;, + 4;675,674,673,672;, + 4;679,678,677,676;, + 4;683,682,681,680;, + 4;687,686,685,684;, + 4;691,690,689,688;, + 4;695,694,693,692;, + 4;699,698,697,696;, + 4;703,702,701,700;, + 4;707,706,705,704;, + 4;711,710,709,708;, + 4;715,714,713,712;, + 4;719,718,717,716;, + 4;723,722,721,720;, + 4;727,726,725,724;, + 4;731,730,729,728;, + 4;735,734,733,732;, + 4;739,738,737,736;, + 4;743,742,741,740;, + 4;747,746,745,744;, + 4;751,750,749,748;, + 4;755,754,753,752;, + 4;759,758,757,756;, + 4;763,762,761,760;, + 4;767,766,765,764;, + 4;771,770,769,768;, + 4;775,774,773,772;, + 4;779,778,777,776;, + 4;783,782,781,780;; + MeshNormals { // Cube normals + 196; + -0.000000; 0.000000;-1.000000;, + -0.000000; 0.000000; 1.000000;, + 1.000000;-0.000002; 0.000000;, + -0.907470;-0.420116;-0.000000;, + -1.000000; 0.000001;-0.000000;, + -0.907470; 0.420116;-0.000000;, + 0.907470; 0.420116;-0.000000;, + 0.785211; 0.619228;-0.000000;, + 0.585211; 0.810881;-0.000000;, + 0.568658; 0.822574;-0.000000;, + 0.430425; 0.902626; 0.000000;, + 0.107244; 0.994233; 0.000000;, + 0.066634; 0.997777; 0.000000;, + 0.000000; 1.000000; 0.000000;, + -0.066634; 0.997777; 0.000000;, + -0.107244; 0.994233; 0.000000;, + -0.430425; 0.902626; 0.000000;, + -0.568658; 0.822574; 0.000000;, + -0.585211; 0.810881;-0.000000;, + -0.785211; 0.619228;-0.000000;, + 0.907470;-0.420116; 0.000000;, + 0.785211;-0.619228; 0.000000;, + 0.585211;-0.810881; 0.000000;, + 0.568658;-0.822574; 0.000000;, + 0.430426;-0.902626; 0.000000;, + 0.107244;-0.994233;-0.000000;, + 0.066634;-0.997777;-0.000000;, + -0.000000;-1.000000;-0.000000;, + -0.066634;-0.997777;-0.000000;, + -0.107244;-0.994233; 0.000000;, + -0.430426;-0.902626;-0.000000;, + -0.568658;-0.822574;-0.000000;, + -0.585211;-0.810881;-0.000000;, + -0.785211;-0.619228;-0.000000;, + 0.000000;-0.000000; 1.000000;, + 0.000000;-0.000000; 1.000000;, + 0.000000;-0.000000; 1.000000;, + 0.000000;-0.000000; 1.000000;, + 0.000000;-0.000000; 1.000000;, + 0.000000;-0.000000; 1.000000;, + -0.000000; 0.000000; 1.000000;, + 0.000000;-0.000000; 1.000000;, + 0.000000;-0.000000; 1.000000;, + 0.000000;-0.000000; 1.000000;, + 0.000000;-0.000000; 1.000000;, + 0.000000;-0.000000; 1.000000;, + -0.000000; 0.000000; 1.000000;, + 0.000000;-0.000000; 1.000000;, + 0.000000; 0.000000;-1.000000;, + 0.000000; 0.000000;-1.000000;, + 0.000000; 0.000000;-1.000000;, + 0.000000; 0.000000;-1.000000;, + 0.000000; 0.000000;-1.000000;, + 0.000000; 0.000000;-1.000000;, + -0.000000; 0.000000;-1.000000;, + 0.000000; 0.000000;-1.000000;, + 0.000000;-0.000000;-1.000000;, + 0.000000; 0.000000;-1.000000;, + 0.000000; 0.000000;-1.000000;, + 0.000000; 0.000000;-1.000000;, + -0.000000; 0.000000;-1.000000;, + 0.000000; 0.000000;-1.000000;, + 0.000000; 0.000000;-1.000000;, + 0.000000; 0.000000;-1.000000;, + 1.000000;-0.000000; 0.000000;, + 0.000000; 0.000000;-1.000000;, + -0.000000; 0.000000;-1.000000;, + -0.000000; 0.000000;-1.000000;, + -0.000000; 0.000000;-1.000000;, + -0.000000; 0.000000;-1.000000;, + 0.000000; 0.000000;-1.000000;, + 0.000000; 0.000000;-1.000000;, + 0.000000; 0.000000;-1.000000;, + 0.000000; 0.000000;-1.000000;, + 0.000000; 0.000000;-1.000000;, + 0.000000; 0.000000;-1.000000;, + 0.000000; 0.000000;-1.000000;, + 0.000000; 0.000000;-1.000000;, + 0.000000; 0.000000;-1.000000;, + 0.000000; 0.000000;-1.000000;, + 0.000000; 0.000000;-1.000000;, + 0.000000; 0.000000;-1.000000;, + 0.000000;-0.000000;-1.000000;, + 0.000000;-0.000000;-1.000000;, + 0.000000;-0.000000;-1.000000;, + 0.000000;-0.000000;-1.000000;, + 0.000000; 0.000000;-1.000000;, + 0.000000; 0.000000;-1.000000;, + 0.000000; 0.000000;-1.000000;, + 0.000000; 0.000000;-1.000000;, + -0.000000; 0.000000;-1.000000;, + -0.000000; 0.000000;-1.000000;, + -0.000000; 0.000000;-1.000000;, + -0.000000; 0.000000;-1.000000;, + 0.000000; 0.000000;-1.000000;, + 0.000000; 0.000000;-1.000000;, + 0.000000; 0.000000;-1.000000;, + 0.000000; 0.000000;-1.000000;, + 0.000000; 0.000000;-1.000000;, + 0.000000; 0.000000;-1.000000;, + 0.000000; 0.000000;-1.000000;, + 0.000000; 0.000000;-1.000000;, + 0.000000; 0.000000;-1.000000;, + 0.000000; 0.000000;-1.000000;, + 0.000000; 0.000000;-1.000000;, + 0.000000; 0.000000;-1.000000;, + 0.000000; 0.000000;-1.000000;, + 0.000000; 0.000000;-1.000000;, + 0.000000; 0.000000;-1.000000;, + 0.000000; 0.000000;-1.000000;, + 0.000000; 0.000000;-1.000000;, + 0.000000; 0.000000;-1.000000;, + 0.000000; 0.000000;-1.000000;, + 0.000000; 0.000000;-1.000000;, + 0.000000; 0.000000;-1.000000;, + 0.000000; 0.000000;-1.000000;, + 0.000000; 0.000000;-1.000000;, + 0.000000; 0.000000;-1.000000;, + 0.000000;-0.000000; 1.000000;, + 0.000000;-0.000000; 1.000000;, + 0.000000;-0.000000; 1.000000;, + 0.000000;-0.000000; 1.000000;, + -0.000000; 0.000000; 1.000000;, + -0.000000; 0.000000; 1.000000;, + -0.000000; 0.000000; 1.000000;, + -0.000000; 0.000000; 1.000000;, + 0.000000;-0.000000; 1.000000;, + 0.000000;-0.000000; 1.000000;, + 0.000000;-0.000000; 1.000000;, + 0.000000;-0.000000; 1.000000;, + 0.000000;-0.000000; 1.000000;, + 0.000000;-0.000000; 1.000000;, + 0.000000;-0.000000; 1.000000;, + 0.000000;-0.000000; 1.000000;, + 0.000000;-0.000000; 1.000000;, + 0.000000;-0.000000; 1.000000;, + 0.000000;-0.000000; 1.000000;, + 0.000000;-0.000000; 1.000000;, + 0.000000;-0.000000; 1.000000;, + 0.000000;-0.000000; 1.000000;, + 0.000000;-0.000000; 1.000000;, + 0.000000;-0.000000; 1.000000;, + 0.000000;-0.000000; 1.000000;, + 0.000000;-0.000000; 1.000000;, + 0.000000;-0.000000; 1.000000;, + 0.000000;-0.000000; 1.000000;, + -0.000000; 0.000000; 1.000000;, + -0.000000; 0.000000; 1.000000;, + -0.000000; 0.000000; 1.000000;, + -0.000000; 0.000000; 1.000000;, + 0.000000;-0.000000; 1.000000;, + 0.000000;-0.000000; 1.000000;, + 0.000000;-0.000000; 1.000000;, + 0.000000;-0.000000; 1.000000;, + 0.000000;-0.000000; 1.000000;, + 0.000000;-0.000000; 1.000000;, + 0.000000;-0.000000; 1.000000;, + 0.000000;-0.000000; 1.000000;, + 0.000000;-0.000000; 1.000000;, + 0.000000;-0.000000; 1.000000;, + 0.000000;-0.000000; 1.000000;, + 0.000000;-0.000000; 1.000000;, + 0.000000;-0.000000; 1.000000;, + 0.000000;-0.000000; 1.000000;, + 0.000000;-0.000000; 1.000000;, + 0.000000;-0.000000; 1.000000;, + 0.000000;-0.000000; 1.000000;, + 0.000000;-0.000000; 1.000000;, + 0.000000;-0.000000; 1.000000;, + 0.000000;-0.000000; 1.000000;, + 0.000000;-0.000000; 1.000000;, + 0.000000;-0.000000; 1.000000;, + 0.000000;-0.000000; 1.000000;, + 0.000000;-0.000000; 1.000000;, + -1.000000; 0.000002;-0.000000;, + -1.000000; 0.000002;-0.000000;, + -1.000000; 0.000001;-0.000000;, + -1.000000; 0.000001;-0.000000;, + 1.000000;-0.000002;-0.000000;, + 1.000000;-0.000002;-0.000000;, + 1.000000;-0.000002; 0.000000;, + 1.000000;-0.000001; 0.000000;, + -0.000000; 0.000000; 1.000000;, + -0.000000; 0.000000; 1.000000;, + -0.000000; 0.000000; 1.000000;, + -0.000000; 0.000000; 1.000000;, + -0.000000; 0.000000;-1.000000;, + -0.000000; 0.000000;-1.000000;, + -0.396584;-0.917998; 0.000000;, + -0.000000; 0.000000;-1.000000;, + 0.000000; 0.000000;-1.000000;, + 0.000000; 0.000000;-1.000000;, + -0.245827; 0.969314; 0.000000;, + -1.000000; 0.000002; 0.000000;, + -0.396584; 0.917998; 0.000000;, + -0.245828;-0.969314; 0.000000;; + 196; + 4;0,0,0,0;, + 4;1,1,1,1;, + 4;2,2,2,2;, + 4;3,3,3,3;, + 4;4,4,4,4;, + 4;5,5,5,5;, + 4;6,6,6,6;, + 4;7,7,7,7;, + 4;8,8,8,8;, + 4;9,9,9,9;, + 4;10,10,10,10;, + 4;11,11,11,11;, + 4;12,12,12,12;, + 4;13,13,13,13;, + 4;14,14,14,14;, + 4;15,15,15,15;, + 4;16,16,16,16;, + 4;17,17,17,17;, + 4;18,18,18,18;, + 4;19,19,19,19;, + 4;20,20,20,20;, + 4;21,21,21,21;, + 4;22,22,22,22;, + 4;23,23,23,23;, + 4;24,24,24,24;, + 4;25,25,25,25;, + 4;26,26,26,26;, + 4;27,27,27,27;, + 4;28,28,28,28;, + 4;29,29,29,29;, + 4;30,30,30,30;, + 4;31,31,31,31;, + 4;32,32,32,32;, + 4;33,33,33,33;, + 4;34,34,34,34;, + 4;35,35,35,35;, + 4;36,36,36,36;, + 4;37,37,37,37;, + 4;38,38,38,38;, + 4;39,39,39,39;, + 4;40,40,40,40;, + 4;41,41,41,41;, + 4;42,42,42,42;, + 4;43,43,43,43;, + 4;44,44,44,44;, + 4;45,45,45,45;, + 4;46,46,46,46;, + 4;47,47,47,47;, + 4;48,48,48,48;, + 4;49,49,49,49;, + 4;50,50,50,50;, + 4;51,51,51,51;, + 4;52,52,52,52;, + 4;53,53,53,53;, + 4;54,54,54,54;, + 4;55,55,55,55;, + 4;56,56,56,56;, + 4;57,57,57,57;, + 4;58,58,58,58;, + 4;59,59,59,59;, + 4;60,60,60,60;, + 4;61,61,61,61;, + 4;62,62,62,62;, + 4;63,63,63,63;, + 4;64,64,64,64;, + 4;65,65,65,65;, + 4;66,66,66,66;, + 4;67,67,67,67;, + 4;68,68,68,68;, + 4;69,69,69,69;, + 4;70,70,70,70;, + 4;71,71,71,71;, + 4;72,72,72,72;, + 4;73,73,73,73;, + 4;74,74,74,74;, + 4;75,75,75,75;, + 4;76,76,76,76;, + 4;77,77,77,77;, + 4;78,78,78,78;, + 4;79,79,79,79;, + 4;80,80,80,80;, + 4;81,81,81,81;, + 4;82,82,82,82;, + 4;83,83,83,83;, + 4;84,84,84,84;, + 4;85,85,85,85;, + 4;86,86,86,86;, + 4;87,87,87,87;, + 4;88,88,88,88;, + 4;89,89,89,89;, + 4;90,90,90,90;, + 4;91,91,91,91;, + 4;92,92,92,92;, + 4;93,93,93,93;, + 4;94,94,94,94;, + 4;95,95,95,95;, + 4;96,96,96,96;, + 4;97,97,97,97;, + 4;98,98,98,98;, + 4;99,99,99,99;, + 4;100,100,100,100;, + 4;101,101,101,101;, + 4;102,102,102,102;, + 4;103,103,103,103;, + 4;104,104,104,104;, + 4;105,105,105,105;, + 4;106,106,106,106;, + 4;107,107,107,107;, + 4;108,108,108,108;, + 4;109,109,109,109;, + 4;110,110,110,110;, + 4;111,111,111,111;, + 4;112,112,112,112;, + 4;113,113,113,113;, + 4;114,114,114,114;, + 4;115,115,115,115;, + 4;116,116,116,116;, + 4;117,117,117,117;, + 4;118,118,118,118;, + 4;119,119,119,119;, + 4;120,120,120,120;, + 4;121,121,121,121;, + 4;122,122,122,122;, + 4;123,123,123,123;, + 4;124,124,124,124;, + 4;125,125,125,125;, + 4;126,126,126,126;, + 4;127,127,127,127;, + 4;128,128,128,128;, + 4;129,129,129,129;, + 4;130,130,130,130;, + 4;131,131,131,131;, + 4;132,132,132,132;, + 4;133,133,133,133;, + 4;134,134,134,134;, + 4;135,135,135,135;, + 4;136,136,136,136;, + 4;137,137,137,137;, + 4;138,138,138,138;, + 4;139,139,139,139;, + 4;140,140,140,140;, + 4;141,141,141,141;, + 4;142,142,142,142;, + 4;143,143,143,143;, + 4;144,144,144,144;, + 4;145,145,145,145;, + 4;146,146,146,146;, + 4;147,147,147,147;, + 4;148,148,148,148;, + 4;149,149,149,149;, + 4;150,150,150,150;, + 4;151,151,151,151;, + 4;152,152,152,152;, + 4;153,153,153,153;, + 4;154,154,154,154;, + 4;155,155,155,155;, + 4;156,156,156,156;, + 4;157,157,157,157;, + 4;158,158,158,158;, + 4;159,159,159,159;, + 4;160,160,160,160;, + 4;161,161,161,161;, + 4;162,162,162,162;, + 4;163,163,163,163;, + 4;164,164,164,164;, + 4;165,165,165,165;, + 4;166,166,166,166;, + 4;167,167,167,167;, + 4;168,168,168,168;, + 4;169,169,169,169;, + 4;170,170,170,170;, + 4;171,171,171,171;, + 4;172,172,172,172;, + 4;173,173,173,173;, + 4;174,174,174,174;, + 4;175,175,175,175;, + 4;176,176,176,176;, + 4;177,177,177,177;, + 4;178,178,178,178;, + 4;179,179,179,179;, + 4;180,180,180,180;, + 4;181,181,181,181;, + 4;182,182,182,182;, + 4;183,183,183,183;, + 4;184,184,184,184;, + 4;185,185,185,185;, + 4;186,186,186,186;, + 4;187,187,187,187;, + 4;188,188,188,188;, + 4;189,189,189,189;, + 4;190,190,190,190;, + 4;191,191,191,191;, + 4;192,192,192,192;, + 4;193,193,193,193;, + 4;194,194,194,194;, + 4;195,195,195,195;; + } // End of Cube normals + MeshTextureCoords { // Cube UV coordinates + 784; + 0.001925; 0.649852;, + 0.001925; 0.749753;, + -0.074702; 0.584235;, + -0.074702; 0.550541;, + 0.001924; 0.649851;, + -0.074702; 0.550541;, + -0.074703; 0.584235;, + 0.001924; 0.749752;, + 0.252489; 1.000000;, + 0.252489; 0.643683;, + 0.087481; 0.643683;, + 0.087482; 1.000000;, + -0.723098; 1.000000;, + -0.723097; 0.643683;, + 0.087482; 0.643683;, + 0.087482; 1.000000;, + 0.747511; 1.000000;, + 0.747511; 0.643683;, + 0.912519; 0.643683;, + 0.912519; 1.000000;, + 1.723099; 0.643683;, + 1.723098; 1.000000;, + 0.912519; 1.000000;, + 0.912519; 0.643683;, + 0.912518; 0.643683;, + 0.912519; 1.000000;, + 1.723098; 1.000000;, + 1.723098; 0.643683;, + 1.723098; 0.643683;, + 1.723098; 1.000000;, + 2.198947; 1.000000;, + 2.198946; 0.643683;, + 2.563935; 0.643683;, + 2.563934; 1.000000;, + 2.188673; 1.000000;, + 2.188674; 0.643683;, + 2.188674; 1.000000;, + 2.188673; 1.356317;, + 1.813412; 1.356317;, + 1.813413; 1.000000;, + 1.813413; 1.000000;, + 1.813412; 1.356317;, + 1.438152; 1.356317;, + 1.438153; 1.000000;, + 1.438153; 1.000000;, + 1.438152; 1.356317;, + 1.062891; 1.356317;, + 1.062892; 1.000000;, + 1.062892; 1.000000;, + 1.062891; 1.356317;, + 0.687631; 1.356317;, + 0.687631; 1.000000;, + 0.687631; 0.643683;, + 0.687631; 1.000000;, + 0.312370; 1.000000;, + 0.312371; 0.643683;, + 0.312371; 0.643683;, + 0.312370; 1.000000;, + -0.062890; 1.000000;, + -0.062890; 0.643683;, + -0.062890; 1.000000;, + -0.062890; 1.356317;, + -0.438151; 1.356317;, + -0.438151; 1.000000;, + -0.438151; 1.000000;, + -0.438151; 1.356317;, + -0.813411; 1.356317;, + -0.813411; 1.000000;, + -0.813411; 1.000000;, + -0.813411; 1.356317;, + -1.188672; 1.356317;, + -1.188672; 1.000000;, + -1.188672; 1.000000;, + -1.188672; 1.356317;, + -1.563932; 1.356317;, + -1.563933; 1.000000;, + 2.198947; 0.643683;, + 2.198947; 1.000000;, + 1.723098; 1.000000;, + 1.723099; 0.643683;, + 0.087482; 1.000000;, + 0.087481; 0.643683;, + -0.723099; 0.643683;, + -0.723098; 1.000000;, + -0.723098; 1.000000;, + -0.723099; 0.643683;, + -1.198948; 0.643683;, + -1.198947; 1.000000;, + 2.563934; 1.000000;, + 2.563932; 0.643683;, + 2.188671; 0.643683;, + 2.188673; 1.000000;, + 2.188673; 1.000000;, + 2.188671; 0.643683;, + 1.813410; 0.643683;, + 1.813412; 1.000000;, + 1.813412; 1.000000;, + 1.813410; 0.643683;, + 1.438150; 0.643683;, + 1.438152; 1.000000;, + 1.438152; 1.000000;, + 1.438150; 0.643683;, + 1.062889; 0.643683;, + 1.062891; 1.000000;, + 1.062891; 1.000000;, + 1.062889; 0.643683;, + 0.687629; 0.643683;, + 0.687630; 1.000000;, + 0.687630; 1.000000;, + 0.687629; 0.643683;, + 0.312368; 0.643683;, + 0.312370; 1.000000;, + 0.312370; 1.000000;, + 0.312368; 0.643683;, + -0.062892; 0.643683;, + -0.062891; 1.000000;, + -0.062891; 1.000000;, + -0.062892; 0.643683;, + -0.438153; 0.643683;, + -0.438152; 1.000000;, + -0.438152; 1.000000;, + -0.438153; 0.643683;, + -0.813414; 0.643683;, + -0.813412; 1.000000;, + -0.813412; 1.000000;, + -0.813414; 0.643683;, + -1.188674; 0.643683;, + -1.188673; 1.000000;, + -1.188673; 1.000000;, + -1.188674; 0.643683;, + -1.563935; 0.643683;, + -1.563933; 1.000000;, + -1.198946; 1.000000;, + -1.198946; 0.643683;, + -0.723097; 0.643683;, + -0.723098; 1.000000;, + 0.074702; 0.550541;, + -0.001925; 0.649852;, + -0.001925; 0.749753;, + 0.074702; 0.584235;, + 0.998075; 0.649852;, + 0.921448; 0.708152;, + 0.921448; 0.846920;, + 0.998075; 0.749753;, + 0.921448; 0.708152;, + 0.844821; 0.741333;, + 0.844821; 0.902221;, + 0.921448; 0.846920;, + 0.844821; 0.741333;, + 0.768194; 0.773117;, + 0.768194; 0.955194;, + 0.844821; 0.902221;, + 0.768194; 0.773117;, + 0.691567; 0.795041;, + 0.691567; 0.991735;, + 0.768194; 0.955194;, + 0.691567; 0.795041;, + 0.614940; 0.800000;, + 0.614940; 1.000000;, + 0.691567; 0.991735;, + 0.614940; 0.800000;, + 0.538313; 0.803070;, + 0.538313; 1.005117;, + 0.614940; 1.000000;, + 0.538313; 0.803070;, + 0.461686; 0.803070;, + 0.461686; 1.005117;, + 0.538313; 1.005117;, + 0.461686; 0.803070;, + 0.385059; 0.800000;, + 0.385059; 1.000000;, + 0.461686; 1.005117;, + 0.385059; 0.800000;, + 0.308432; 0.795041;, + 0.308432; 0.991734;, + 0.385059; 1.000000;, + 0.308432; 0.795041;, + 0.231805; 0.773116;, + 0.231805; 0.955194;, + 0.308432; 0.991734;, + 0.231805; 0.773116;, + 0.155178; 0.741332;, + 0.155178; 0.902221;, + 0.231805; 0.955194;, + 0.155178; 0.741332;, + 0.078551; 0.708152;, + 0.078551; 0.846919;, + 0.155178; 0.902221;, + 0.078551; 0.708152;, + 0.001924; 0.649851;, + 0.001924; 0.749752;, + 0.078551; 0.846919;, + 0.074702; 0.550541;, + 0.074702; 0.584235;, + -0.001925; 0.749753;, + -0.001925; 0.649852;, + 0.998075; 0.649852;, + 0.998075; 0.749753;, + 0.921448; 0.846919;, + 0.921448; 0.708152;, + 0.921448; 0.708152;, + 0.921448; 0.846919;, + 0.844821; 0.902221;, + 0.844821; 0.741333;, + 0.844821; 0.741333;, + 0.844821; 0.902221;, + 0.768194; 0.955194;, + 0.768194; 0.773117;, + 0.768194; 0.773117;, + 0.768194; 0.955194;, + 0.691567; 0.991735;, + 0.691567; 0.795041;, + 0.691567; 0.795041;, + 0.691567; 0.991735;, + 0.614940; 1.000000;, + 0.614940; 0.800000;, + 0.614940; 0.800000;, + 0.614940; 1.000000;, + 0.538313; 1.005117;, + 0.538314; 0.803070;, + 0.538314; 0.803070;, + 0.538313; 1.005117;, + 0.461686; 1.005117;, + 0.461686; 0.803070;, + 0.461686; 0.803070;, + 0.461686; 1.005117;, + 0.385059; 1.000000;, + 0.385060; 0.800000;, + 0.385060; 0.800000;, + 0.385059; 1.000000;, + 0.308432; 0.991735;, + 0.308432; 0.795041;, + 0.308432; 0.795041;, + 0.308432; 0.991735;, + 0.231805; 0.955194;, + 0.231806; 0.773117;, + 0.231806; 0.773117;, + 0.231805; 0.955194;, + 0.155178; 0.902221;, + 0.155179; 0.741333;, + 0.155179; 0.741333;, + 0.155178; 0.902221;, + 0.078552; 0.846919;, + 0.078552; 0.708152;, + 0.078552; 0.708152;, + 0.078552; 0.846919;, + 0.001925; 0.749753;, + 0.001925; 0.649852;, + 0.078552; 0.153081;, + 0.078552; 0.291848;, + 0.001925; 0.350148;, + 0.001925; 0.250247;, + 0.078552; 0.291848;, + 0.078552; 0.430616;, + 0.001925; 0.450049;, + 0.001925; 0.350148;, + 0.654094; 0.441631;, + 0.365143; 0.441631;, + 0.365143; 0.828379;, + 0.654094; 0.828379;, + 0.078552; 0.569384;, + 0.078552; 0.708152;, + 0.001925; 0.649852;, + 0.001925; 0.549951;, + 0.155179; 0.097779;, + 0.155179; 0.258667;, + 0.078552; 0.291848;, + 0.078552; 0.153081;, + 0.155179; 0.258667;, + 0.155179; 0.419556;, + 0.078552; 0.430616;, + 0.078552; 0.291848;, + 0.155179; 0.419556;, + 0.155179; 0.580444;, + 0.078552; 0.569384;, + 0.078552; 0.430616;, + 0.155179; 0.580444;, + 0.155179; 0.741333;, + 0.078552; 0.708152;, + 0.078552; 0.569384;, + 0.231806; 0.044806;, + 0.231806; 0.226883;, + 0.155179; 0.258667;, + 0.155179; 0.097779;, + 0.231806; 0.226883;, + 0.231806; 0.408961;, + 0.155179; 0.419556;, + 0.155179; 0.258667;, + 0.231806; 0.408961;, + 0.231806; 0.591039;, + 0.155179; 0.580444;, + 0.155179; 0.419556;, + 0.231806; 0.591039;, + 0.231806; 0.773117;, + 0.155179; 0.741333;, + 0.155179; 0.580444;, + 0.308433; 0.008265;, + 0.308433; 0.204959;, + 0.231806; 0.226883;, + 0.231806; 0.044806;, + 0.308433; 0.204959;, + 0.308433; 0.401653;, + 0.231806; 0.408961;, + 0.231806; 0.226883;, + 0.308433; 0.401653;, + 0.308433; 0.598347;, + 0.231806; 0.591039;, + 0.231806; 0.408961;, + 0.308433; 0.598347;, + 0.308432; 0.795041;, + 0.231806; 0.773117;, + 0.231806; 0.591039;, + 0.385060; 1.000000;, + 0.385060; 1.200000;, + 0.308433; 1.204959;, + 0.308433; 1.008265;, + 0.385060; 0.200000;, + 0.385060; 0.400000;, + 0.308433; 0.401653;, + 0.308433; 0.204959;, + 0.385060; 0.400000;, + 0.385060; 0.600000;, + 0.308433; 0.598347;, + 0.308433; 0.401653;, + 0.385060; 0.600000;, + 0.385060; 0.800000;, + 0.308432; 0.795041;, + 0.308433; 0.598347;, + 0.461687; 0.994883;, + 0.461687; 1.196930;, + 0.385060; 1.200000;, + 0.385060; 1.000000;, + 0.461687; 0.196930;, + 0.461687; 0.398977;, + 0.385060; 0.400000;, + 0.385060; 0.200000;, + 0.461687; 0.398977;, + 0.461687; 0.601023;, + 0.385060; 0.600000;, + 0.385060; 0.400000;, + 0.461687; 0.601023;, + 0.461686; 0.803070;, + 0.385060; 0.800000;, + 0.385060; 0.600000;, + 0.538314; 0.994883;, + 0.538314; 1.196930;, + 0.461687; 1.196930;, + 0.461687; 0.994883;, + 0.538314; 0.196930;, + 0.538314; 0.398977;, + 0.461687; 0.398977;, + 0.461687; 0.196930;, + 0.538314; 0.398977;, + 0.538314; 0.601023;, + 0.461687; 0.601023;, + 0.461687; 0.398977;, + 0.538314; 0.601023;, + 0.538314; 0.803070;, + 0.461686; 0.803070;, + 0.461687; 0.601023;, + 0.614941; 1.000000;, + 0.614941; 1.200000;, + 0.538314; 1.196930;, + 0.538314; 0.994883;, + 0.614941; 0.200000;, + 0.614941; 0.400000;, + 0.538314; 0.398977;, + 0.538314; 0.196930;, + 0.614941; 0.400000;, + 0.614941; 0.600000;, + 0.538314; 0.601023;, + 0.538314; 0.398977;, + 0.614941; 0.600000;, + 0.614940; 0.800000;, + 0.538314; 0.803070;, + 0.538314; 0.601023;, + 0.691568; 0.008265;, + 0.691568; 0.204959;, + 0.614941; 0.200000;, + 0.614941; 0.000000;, + 0.691568; 0.204959;, + 0.691567; 0.401653;, + 0.614941; 0.400000;, + 0.614941; 0.200000;, + 0.691567; 0.401653;, + 0.691567; 0.598347;, + 0.614941; 0.600000;, + 0.614941; 0.400000;, + 0.691567; 0.598347;, + 0.691567; 0.795041;, + 0.614940; 0.800000;, + 0.614941; 0.600000;, + 0.768194; 0.044806;, + 0.768194; 0.226883;, + 0.691568; 0.204959;, + 0.691568; 0.008265;, + 0.768194; 0.226883;, + 0.768194; 0.408961;, + 0.691567; 0.401653;, + 0.691568; 0.204959;, + 0.768194; 0.408961;, + 0.768194; 0.591039;, + 0.691567; 0.598347;, + 0.691567; 0.401653;, + 0.768194; 0.591039;, + 0.768194; 0.773117;, + 0.691567; 0.795041;, + 0.691567; 0.598347;, + 0.844821; 0.097779;, + 0.844821; 0.258667;, + 0.768194; 0.226883;, + 0.768194; 0.044806;, + 0.844821; 0.258667;, + 0.844821; 0.419556;, + 0.768194; 0.408961;, + 0.768194; 0.226883;, + 0.844821; 0.419556;, + 0.844821; 0.580444;, + 0.768194; 0.591039;, + 0.768194; 0.408961;, + 0.844821; 0.580444;, + 0.844821; 0.741333;, + 0.768194; 0.773117;, + 0.768194; 0.591039;, + 0.921448; 0.153081;, + 0.921448; 0.291848;, + 0.844821; 0.258667;, + 0.844821; 0.097779;, + 0.921448; 0.291848;, + 0.921448; 0.430616;, + 0.844821; 0.419556;, + 0.844821; 0.258667;, + 0.921448; 0.430616;, + 0.921448; 0.569384;, + 0.844821; 0.580444;, + 0.844821; 0.419556;, + 0.921448; 0.569384;, + 0.921448; 0.708152;, + 0.844821; 0.741333;, + 0.844821; 0.580444;, + 0.998075; 0.250247;, + 0.998075; 0.350148;, + 0.921448; 0.291848;, + 0.921448; 0.153081;, + 0.998075; 0.350148;, + 0.998075; 0.450049;, + 0.921448; 0.430616;, + 0.921448; 0.291848;, + 0.998075; 0.450049;, + 0.998075; 0.549951;, + 0.921448; 0.569384;, + 0.921448; 0.430616;, + 0.998075; 0.549951;, + 0.998075; 0.649852;, + 0.921448; 0.708152;, + 0.921448; 0.569384;, + 0.074702; 0.415765;, + 0.074702; 0.449459;, + -0.001925; 0.350148;, + -0.001925; 0.250247;, + 0.074702; 0.449459;, + 0.074702; 0.483153;, + -0.001925; 0.450049;, + -0.001925; 0.350148;, + 0.074702; 0.483153;, + 0.074702; 0.516847;, + -0.001925; 0.549951;, + -0.001925; 0.450049;, + 0.074702; 0.516847;, + 0.074702; 0.550541;, + -0.001925; 0.649852;, + -0.001925; 0.549951;, + 0.078552; 0.153081;, + 0.001925; 0.250247;, + 0.001925; 0.350148;, + 0.078552; 0.291848;, + 0.078552; 0.291848;, + 0.001925; 0.350148;, + 0.001925; 0.450049;, + 0.078552; 0.430616;, + 0.078552; 0.430616;, + 0.001925; 0.450049;, + 0.001924; 0.549950;, + 0.078551; 0.569384;, + 0.078551; 0.569384;, + 0.001924; 0.549950;, + 0.001924; 0.649851;, + 0.078551; 0.708152;, + 0.155179; 0.097779;, + 0.078552; 0.153081;, + 0.078552; 0.291848;, + 0.155179; 0.258667;, + 0.155179; 0.258667;, + 0.078552; 0.291848;, + 0.078552; 0.430616;, + 0.155178; 0.419556;, + 0.155178; 0.419556;, + 0.078552; 0.430616;, + 0.078551; 0.569384;, + 0.155178; 0.580444;, + 0.155178; 0.580444;, + 0.078551; 0.569384;, + 0.078551; 0.708152;, + 0.155178; 0.741332;, + 0.231806; 0.044806;, + 0.155179; 0.097779;, + 0.155179; 0.258667;, + 0.231806; 0.226883;, + 0.231806; 0.226883;, + 0.155179; 0.258667;, + 0.155178; 0.419556;, + 0.231805; 0.408961;, + 0.231805; 0.408961;, + 0.155178; 0.419556;, + 0.155178; 0.580444;, + 0.231805; 0.591039;, + 0.231805; 0.591039;, + 0.155178; 0.580444;, + 0.155178; 0.741332;, + 0.231805; 0.773116;, + 0.308433; 0.008265;, + 0.231806; 0.044806;, + 0.231806; 0.226883;, + 0.308433; 0.204959;, + 0.308433; 0.204959;, + 0.231806; 0.226883;, + 0.231805; 0.408961;, + 0.308432; 0.401653;, + 0.308432; 0.401653;, + 0.231805; 0.408961;, + 0.231805; 0.591039;, + 0.308432; 0.598347;, + 0.308432; 0.598347;, + 0.231805; 0.591039;, + 0.231805; 0.773116;, + 0.308432; 0.795041;, + 0.385060; 0.000000;, + 0.308433; 0.008265;, + 0.308433; 0.204959;, + 0.385060; 0.200000;, + 0.385060; 0.200000;, + 0.308433; 0.204959;, + 0.308432; 0.401653;, + 0.385059; 0.400000;, + 0.385059; 0.400000;, + 0.308432; 0.401653;, + 0.308432; 0.598347;, + 0.385059; 0.600000;, + 0.385059; 0.600000;, + 0.308432; 0.598347;, + 0.308432; 0.795041;, + 0.385059; 0.800000;, + 0.461687; 0.994883;, + 0.385060; 1.000000;, + 0.385060; 1.200000;, + 0.461687; 1.196930;, + 0.461687; 0.196930;, + 0.385060; 0.200000;, + 0.385059; 0.400000;, + 0.461686; 0.398977;, + 0.461686; 0.398977;, + 0.385059; 0.400000;, + 0.385059; 0.600000;, + 0.461686; 0.601024;, + 0.461686; 0.601024;, + 0.385059; 0.600000;, + 0.385059; 0.800000;, + 0.461686; 0.803070;, + 0.538314; 0.994883;, + 0.461687; 0.994883;, + 0.461687; 1.196930;, + 0.538314; 1.196930;, + 0.538314; 0.196930;, + 0.461687; 0.196930;, + 0.461686; 0.398977;, + 0.538313; 0.398977;, + 0.538313; 0.398977;, + 0.461686; 0.398977;, + 0.461686; 0.601024;, + 0.538313; 0.601024;, + 0.538313; 0.601024;, + 0.461686; 0.601024;, + 0.461686; 0.803070;, + 0.538313; 0.803070;, + 0.614941; 0.000000;, + 0.538314;-0.005117;, + 0.538314; 0.196930;, + 0.614941; 0.200000;, + 0.614941; 0.200000;, + 0.538314; 0.196930;, + 0.538313; 0.398977;, + 0.614940; 0.400000;, + 0.614940; 0.400000;, + 0.538313; 0.398977;, + 0.538313; 0.601024;, + 0.614940; 0.600000;, + 0.614940; 0.600000;, + 0.538313; 0.601024;, + 0.538313; 0.803070;, + 0.614940; 0.800000;, + 0.691568; 0.008266;, + 0.614941; 0.000000;, + 0.614941; 0.200000;, + 0.691568; 0.204959;, + 0.691568; 0.204959;, + 0.614941; 0.200000;, + 0.614940; 0.400000;, + 0.691567; 0.401653;, + 0.691567; 0.401653;, + 0.614940; 0.400000;, + 0.614940; 0.600000;, + 0.691567; 0.598347;, + 0.691567; 0.598347;, + 0.614940; 0.600000;, + 0.614940; 0.800000;, + 0.691567; 0.795041;, + 0.768195; 0.044806;, + 0.691568; 0.008266;, + 0.691568; 0.204959;, + 0.768195; 0.226884;, + 0.768195; 0.226884;, + 0.691568; 0.204959;, + 0.691567; 0.401653;, + 0.768194; 0.408961;, + 0.768194; 0.408961;, + 0.691567; 0.401653;, + 0.691567; 0.598347;, + 0.768194; 0.591039;, + 0.768194; 0.591039;, + 0.691567; 0.598347;, + 0.691567; 0.795041;, + 0.768194; 0.773117;, + 0.844822; 0.097779;, + 0.768195; 0.044806;, + 0.768195; 0.226884;, + 0.844822; 0.258668;, + 0.844822; 0.258668;, + 0.768195; 0.226884;, + 0.768194; 0.408961;, + 0.844821; 0.419556;, + 0.844821; 0.419556;, + 0.768194; 0.408961;, + 0.768194; 0.591039;, + 0.844821; 0.580444;, + 0.844821; 0.580444;, + 0.768194; 0.591039;, + 0.768194; 0.773117;, + 0.844821; 0.741333;, + 0.921449; 0.153081;, + 0.844822; 0.097779;, + 0.844822; 0.258668;, + 0.921449; 0.291848;, + 0.921449; 0.291848;, + 0.844822; 0.258668;, + 0.844821; 0.419556;, + 0.921448; 0.430616;, + 0.921448; 0.430616;, + 0.844821; 0.419556;, + 0.844821; 0.580444;, + 0.921448; 0.569384;, + 0.921448; 0.569384;, + 0.844821; 0.580444;, + 0.844821; 0.741333;, + 0.921448; 0.708152;, + 0.998076; 0.250247;, + 0.921449; 0.153081;, + 0.921449; 0.291848;, + 0.998076; 0.350149;, + 0.998076; 0.350149;, + 0.921449; 0.291848;, + 0.921448; 0.430616;, + 0.998075; 0.450050;, + 0.998075; 0.450050;, + 0.921448; 0.430616;, + 0.921448; 0.569384;, + 0.998075; 0.549951;, + 0.998075; 0.549951;, + 0.921448; 0.569384;, + 0.921448; 0.708152;, + 0.998075; 0.649852;, + 0.074703; 0.415765;, + -0.001924; 0.250247;, + -0.001924; 0.350149;, + 0.074703; 0.449459;, + 0.074703; 0.449459;, + -0.001924; 0.350149;, + -0.001925; 0.450050;, + 0.074702; 0.483153;, + 0.074702; 0.483153;, + -0.001925; 0.450050;, + -0.001925; 0.549951;, + 0.074702; 0.516847;, + 0.074702; 0.516847;, + -0.001925; 0.549951;, + -0.001925; 0.649852;, + 0.074702; 0.550541;, + 0.087482; 1.000000;, + 0.087482; 0.643683;, + 0.252489; 0.643683;, + 0.252489; 1.000000;, + 0.252489; 1.000000;, + 0.252489; 0.643683;, + 0.417496; 0.643683;, + 0.417496; 1.000000;, + 0.417496; 1.000000;, + 0.417496; 0.643683;, + 0.582504; 0.643683;, + 0.582504; 1.000000;, + 0.582504; 1.000000;, + 0.582504; 0.643683;, + 0.747511; 0.643683;, + 0.747511; 1.000000;, + 0.912519; 1.000000;, + 0.912518; 0.643683;, + 0.747511; 0.643683;, + 0.747511; 1.000000;, + 0.747511; 1.000000;, + 0.747511; 0.643683;, + 0.582503; 0.643683;, + 0.582504; 1.000000;, + 0.582504; 1.000000;, + 0.582503; 0.643683;, + 0.417496; 0.643683;, + 0.417496; 1.000000;, + 0.417496; 1.000000;, + 0.417496; 0.643683;, + 0.252489; 0.643683;, + 0.252489; 1.000000;, + 0.001925; 0.250247;, + -0.074702; 0.415765;, + -0.074702; 0.449459;, + 0.001925; 0.350148;, + 0.001925; 0.350148;, + -0.074702; 0.449459;, + -0.074702; 0.483153;, + 0.001925; 0.450049;, + 0.001925; 0.450049;, + -0.074702; 0.483153;, + -0.074702; 0.516847;, + 0.001924; 0.549950;, + 0.001924; 0.549950;, + -0.074702; 0.516847;, + -0.074702; 0.550541;, + 0.001924; 0.649851;, + 0.001925; 0.250247;, + 0.001925; 0.350148;, + -0.074702; 0.449459;, + -0.074702; 0.415765;, + 0.001925; 0.350148;, + 0.001925; 0.450049;, + -0.074702; 0.483153;, + -0.074702; 0.449459;, + -0.527506; 0.441631;, + -0.687063; 0.441631;, + -0.687063; 0.828379;, + -0.527506; 0.828379;, + 0.001925; 0.549951;, + 0.001925; 0.649852;, + -0.074702; 0.550541;, + -0.074702; 0.516847;, + 0.078552; 0.430616;, + 0.078552; 0.569384;, + 0.001925; 0.549951;, + 0.001925; 0.450049;, + 0.001925; 0.450049;, + 0.001925; 0.549951;, + -0.074702; 0.516847;, + -0.074702; 0.483153;, + -0.527506; 0.441631;, + -0.367948; 0.441631;, + -0.367948; 0.828379;, + -0.527506; 0.828379;, + 0.474539; 0.441631;, + 0.544698; 0.441631;, + 0.544698; 0.828379;, + 0.474539; 0.828379;, + 1.395201; 0.441631;, + 1.554758; 0.441631;, + 1.554758; 0.828379;, + 1.395201; 0.828379;, + -0.367948; 0.441631;, + -0.527506; 0.441631;, + -0.527506; 0.828379;, + -0.367948; 0.828379;; + } // End of Cube UV coordinates + MeshMaterialList { // Cube material list + 1; + 196; + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0; + Material Material { + 0.640000; 0.640000; 0.640000; 1.000000;; + 96.078431; + 0.500000; 0.500000; 0.500000;; + 0.000000; 0.000000; 0.000000;; + TextureFilename {"default_wood.png";} + } + } // End of Cube material list + } // End of Cube mesh + } // End of Cube +} // End of Root diff --git a/games/default/files/Decorations/abritorch/LICENSE.txt b/games/default/files/Decorations/abritorch/LICENSE.txt new file mode 100644 index 000000000..abfe82db8 --- /dev/null +++ b/games/default/files/Decorations/abritorch/LICENSE.txt @@ -0,0 +1,38 @@ + +Textures: +Original torch textures from minetest_game/default +Recoloured textures and edits by Shara RedCat + +Torch model: +License: CC-BY 3.0 +Attribution: BlockMen, from https://github.com/BlockMen/torches + +Code: +License: MIT (https://opensource.org/licenses/MIT) +By Shara RedCat + + + +--- + +The MIT License (MIT) + +Copyright (c) 2017 Shara RedCat + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in +all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +THE SOFTWARE. \ No newline at end of file diff --git a/games/default/files/Decorations/abritorch/depends.txt b/games/default/files/Decorations/abritorch/depends.txt new file mode 100644 index 000000000..22ed7be9e --- /dev/null +++ b/games/default/files/Decorations/abritorch/depends.txt @@ -0,0 +1,2 @@ +default +color \ No newline at end of file diff --git a/games/default/files/Decorations/abritorch/init.lua b/games/default/files/Decorations/abritorch/init.lua new file mode 100644 index 000000000..eabc3717b --- /dev/null +++ b/games/default/files/Decorations/abritorch/init.lua @@ -0,0 +1,3 @@ +local modpath = minetest.get_modpath("abritorch").. DIR_DELIM + +dofile(modpath.."torches.lua") \ No newline at end of file diff --git a/games/default/files/Decorations/abritorch/models/torch_floor.obj b/games/default/files/Decorations/abritorch/models/torch_floor.obj new file mode 100644 index 000000000..bb82af51f --- /dev/null +++ b/games/default/files/Decorations/abritorch/models/torch_floor.obj @@ -0,0 +1,48 @@ +# Blender v2.73 (sub 0) OBJ File: 'mt_torch_full_vertices3.blend' +# www.blender.org +mtllib mt_torch_full_vertices3.mtl +o Cube_Cube.001 +v 0.061653 -0.496733 0.061674 +v 0.061653 -0.496733 -0.062460 +v -0.059258 -0.496733 0.061674 +v -0.059258 -0.496733 -0.062460 +v -0.059994 -0.497234 0.497315 +v -0.059994 -0.497234 -0.498102 +v -0.059994 0.507706 -0.498102 +v -0.059994 0.507706 0.497315 +v -0.494900 0.507706 0.061709 +v -0.494900 -0.497234 0.061709 +v 0.497295 0.507706 0.061709 +v 0.497295 -0.497234 0.061709 +v 0.062686 0.507706 -0.498102 +v 0.062686 -0.497234 -0.498102 +v 0.062686 0.507706 0.497315 +v 0.062686 -0.497234 0.497315 +v -0.494900 0.507706 -0.063149 +v -0.494900 -0.497234 -0.063149 +v 0.497295 0.507706 -0.063149 +v 0.497295 -0.497234 -0.063149 +v -0.058217 0.134520 0.060216 +v -0.058217 0.135872 -0.061813 +v 0.061944 0.135872 -0.061813 +v 0.061944 0.134520 0.060216 +vt 0.000000 1.000000 +vt 1.000000 1.000000 +vt 1.000000 0.000000 +vt 0.000000 0.000000 +vt 0.437500 0.500000 +vt 0.562500 0.500000 +vt 0.562500 0.625000 +vt 0.437541 0.625000 +vt 0.437541 0.000000 +vt 0.562500 0.000000 +vt 0.562500 0.125000 +vt 0.437500 0.125000 +usemtl None +s off +f 11/1 9/2 10/3 12/4 +f 22/5 21/6 24/7 23/8 +f 17/2 19/1 20/4 18/3 +f 13/2 15/1 16/4 14/3 +f 3/9 4/10 2/11 1/12 +f 8/1 7/2 6/3 5/4 diff --git a/games/default/files/Decorations/abritorch/models/torch_wall.obj b/games/default/files/Decorations/abritorch/models/torch_wall.obj new file mode 100644 index 000000000..23855639e --- /dev/null +++ b/games/default/files/Decorations/abritorch/models/torch_wall.obj @@ -0,0 +1,48 @@ +# Blender v2.73 (sub 0) OBJ File: 'mt_torch_full_vertices3.blend' +# www.blender.org +mtllib torch_wall4.mtl +o Cube_Cube.001 +v 0.061653 -0.554493 -0.328908 +v 0.061653 -0.442208 -0.381835 +v -0.059258 -0.554493 -0.328908 +v -0.059258 -0.442208 -0.381835 +v -0.059994 -0.948766 -0.143618 +v -0.059994 -0.048361 -0.568031 +v -0.059994 0.380112 0.340988 +v -0.059994 -0.520293 0.765401 +v -0.494900 -0.126265 0.579672 +v -0.494900 -0.554738 -0.329346 +v 0.497295 -0.126265 0.579672 +v 0.497295 -0.554738 -0.329346 +v 0.062686 0.380112 0.340988 +v 0.062686 -0.048361 -0.568031 +v 0.062686 -0.520293 0.765401 +v 0.062686 -0.948766 -0.143618 +v -0.494900 -0.013324 0.526437 +v -0.494900 -0.441797 -0.382582 +v 0.497295 -0.013324 0.526437 +v 0.497295 -0.441797 -0.382582 +v -0.058217 -0.284029 0.241470 +v -0.058217 -0.173071 0.190665 +v 0.061944 -0.173071 0.190665 +v 0.061944 -0.284029 0.241470 +vt 0.000000 1.000000 +vt 1.000000 1.000000 +vt 1.000000 0.000000 +vt 0.000000 0.000000 +vt 0.437500 0.500000 +vt 0.562500 0.500000 +vt 0.562500 0.625000 +vt 0.437541 0.625000 +vt 0.437541 0.000000 +vt 0.562500 0.000000 +vt 0.562500 0.125000 +vt 0.437500 0.125000 +usemtl None +s off +f 11/1 9/2 10/3 12/4 +f 22/5 21/6 24/7 23/8 +f 17/2 19/1 20/4 18/3 +f 13/2 15/1 16/4 14/3 +f 3/9 4/10 2/11 1/12 +f 8/1 7/2 6/3 5/4 diff --git a/games/default/files/Decorations/abritorch/textures/abritorch_torch_on_floor_animated_white.png b/games/default/files/Decorations/abritorch/textures/abritorch_torch_on_floor_animated_white.png new file mode 100644 index 000000000..3e1d42abe Binary files /dev/null and b/games/default/files/Decorations/abritorch/textures/abritorch_torch_on_floor_animated_white.png differ diff --git a/games/default/files/Decorations/abritorch/textures/abritorch_torch_on_floor_white.png b/games/default/files/Decorations/abritorch/textures/abritorch_torch_on_floor_white.png new file mode 100644 index 000000000..308f2a532 Binary files /dev/null and b/games/default/files/Decorations/abritorch/textures/abritorch_torch_on_floor_white.png differ diff --git a/games/default/files/Decorations/abritorch/textures/none.png b/games/default/files/Decorations/abritorch/textures/none.png new file mode 100644 index 000000000..07f7b0e2b Binary files /dev/null and b/games/default/files/Decorations/abritorch/textures/none.png differ diff --git a/games/default/files/Decorations/abritorch/torches.lua b/games/default/files/Decorations/abritorch/torches.lua new file mode 100644 index 000000000..5d1aeaef1 --- /dev/null +++ b/games/default/files/Decorations/abritorch/torches.lua @@ -0,0 +1,134 @@ + +color1 = minetest.setting_get("color1") or "292421" +color2 = minetest.setting_get("color2") or "0000FF" +color3 = minetest.setting_get("color3") or "00FF00" +color4 = minetest.setting_get("color4") or "F5F5F5" +color5 = minetest.setting_get("color5") or "FF6103" +color6 = minetest.setting_get("color6") or "FF0000" +color7 = minetest.setting_get("color7") or "FFFF00" +color8 = minetest.setting_get("color8") or "FF69B4" + +local source_list = { + {"black", "Color1", color1, 40, 36, 33}, + {"blue", "Color2", color2, 0, 0, 255}, + {"green", "Color3", color3, 0, 255, 0}, + {"white", "Color4", color4, 245, 245, 245}, + {"orange", "Color5", color5, 255, 97, 3}, + {"red", "Color6", color6, 255, 0, 0}, + {"yellow", "Color7", color7, 255, 255, 0}, + {"pink", "Color8", color8, 255, 105, 180} +} + +for i in ipairs(source_list) do + local name = source_list[i][1] + local desc = source_list[i][2] + local colour = source_list[i][3] + local red = source_list[i][4] + local green = source_list[i][5] + local blue = source_list[i][6] + +local enable_ceiling = true + + minetest.register_craftitem("abritorch:torch_" .. name, { + description = desc.." Torch", + inventory_image = "torch.png^[colorize:#"..colour..":70", + wield_image = "color_handwhite.png^(color_handwhite2.png^[colorize:#"..colour..":70)", + wield_scale = {x=1,y=1,z=0.5}, + liquids_pointable = false, + on_place = function(itemstack, placer, pointed_thing) + local above = pointed_thing.above + local under = pointed_thing.under + local wdir = minetest.dir_to_wallmounted({x = under.x - above.x, y = under.y - above.y, z = under.z - above.z}) + if wdir < 1 and not enable_ceiling then + return itemstack + end + local fakestack = itemstack + local retval = false + if wdir <= 1 then + retval = fakestack:set_name("abritorch:floor_"..name) + else + retval = fakestack:set_name("abritorch:wall_"..name) + end + if not retval then + return itemstack + end + itemstack, retval = minetest.item_place(fakestack, placer, pointed_thing, param2) + itemstack:set_name("abritorch:torch_"..name) + + return itemstack + end + }) + + minetest.register_node("abritorch:floor_"..name, { + description = desc.." Torch", + inventory_image = "torch.png^[colorize:#"..colour..":70", + wield_image = "color_handwhite.png^(color_handwhite2.png^[colorize:#"..colour..":70)", + wield_scale = {x=1,y=1,z=0.5}, + drawtype = "mesh", + mesh = "torch_floor.obj", + tiles = { + { + name = "abritorch_torch_on_floor_animated_white.png^[colorize:#"..colour..":70", + animation = {type = "vertical_frames", aspect_w = 16, aspect_h = 16, length = 3.3} + } + }, + paramtype = "light", + paramtype2 = "wallmounted", + sunlight_propagates = true, + walkable = false, + light_source = 13, + groups = {choppy=2, dig_immediate=3, flammable=1, not_in_creative_inventory=1, attached_node=1, torch=1}, + selection_box = { + type = "wallmounted", + wall_top = {-1/16, -2/16, -1/16, 1/16, 0.5, 1/16}, + wall_bottom = {-1/16, -0.5, -1/16, 1/16, 2/16, 1/16}, + }, + }) + + minetest.register_node("abritorch:wall_"..name, { + inventory_image = "torch.png^[colorize:#"..colour..":70", + wield_image = "color_handwhite.png^(color_handwhite2.png^[colorize:#"..colour..":70)", + wield_scale = {x=1,y=1,z=0.5}, + drawtype = "mesh", + mesh = "torch_wall.obj", + tiles = { + { + name = "abritorch_torch_on_floor_animated_white.png^[colorize:#"..colour..":70", + animation = {type = "vertical_frames", aspect_w = 16, aspect_h = 16, length = 3.3} + } + }, + paramtype = "light", + paramtype2 = "wallmounted", + sunlight_propagates = true, + walkable = false, + light_source = 13, + groups = {choppy=2, dig_immediate=3, flammable=1, not_in_creative_inventory=1, attached_node=1, torch=1}, + selection_box = { + type = "wallmounted", + wall_top = {-0.1, -0.1, -0.1, 0.1, 0.5, 0.1}, + wall_bottom = {-0.1, -0.5, -0.1, 0.1, 0.1, 0.1}, + wall_side = {-0.5, -0.3, -0.1, -0.2, 0.3, 0.1}, + }, + }) + + minetest.register_abm({ + nodenames = {"abritorch:torch_"..name}, + interval = 1, + chance = 1, + action = function(pos) + local n = minetest.get_node(pos) + local def = minetest.registered_nodes[n.name] + if n and def then + local wdir = n.param2 + local node_name = "abritorch:wall_"..name + if wdir < 1 and not enable_ceiling then + minetest.remove_node(pos) + return + elseif wdir <= 1 then + node_name = "abritorch:floor_"..name + end + minetest.set_node(pos, {name = node_name, param2 = wdir}) + end + end + }) +end diff --git a/games/default/files/Decorations/beacon/README.md b/games/default/files/Decorations/beacon/README.md new file mode 100644 index 000000000..8a73c1c3f --- /dev/null +++ b/games/default/files/Decorations/beacon/README.md @@ -0,0 +1,9 @@ +Beacon in Block (LGPLv2.1) (Mrchiantos) + +This mod is made with Beacon'Mod and Block in Block + +Beacon (WTFPL) : https://forum.minetest.net/viewtopic.php?t=12041 (AgentNagel42) + +Block in Block (LGPLv2.1) : https://github.com/TumeniNodes/block_in_block (TuemiNodes) + +Calinou (CC BY-SA 3.0): default_glass_detail.png diff --git a/games/default/files/Decorations/beacon/beamgen.lua b/games/default/files/Decorations/beacon/beamgen.lua new file mode 100644 index 000000000..851c598d9 --- /dev/null +++ b/games/default/files/Decorations/beacon/beamgen.lua @@ -0,0 +1,40 @@ +color1 = minetest.setting_get("color1") or "292421" +color2 = minetest.setting_get("color2") or "0000FF" +color3 = minetest.setting_get("color3") or "00FF00" +color4 = minetest.setting_get("color4") or "F5F5F5" +color5 = minetest.setting_get("color5") or "FF6103" +color6 = minetest.setting_get("color6") or "FF0000" +color7 = minetest.setting_get("color7") or "FFFF00" +color8 = minetest.setting_get("color8") or "FF69B4" + +local source_list = { + {"black", "Color1", color1}, + {"blue", "Color2", color2}, + {"green", "Color3", color3}, + {"white", "Color4", color4}, + {"orange", "Color5", color5}, + {"red", "Color6", color6}, + {"yellow", "Color7", color7}, + {"pink", "Color8", color8} +} + +for i in ipairs(source_list) do + local color = source_list[i][1] + local desc = source_list[i][2] + local colour = source_list[i][3] + + +minetest.register_abm({ + nodenames = {"beacon:" .. color}, + interval = 5, + chance = 1, + action = function(pos) + pos.y = pos.y + 1 + minetest.add_node(pos, {name="beacon:"..color.."base"}) + for i=1,179 do + minetest.add_node({x=pos.x, y=pos.y+i, z=pos.z}, {name="beacon:"..color.."beam"}) + end + end, +}) + +end diff --git a/games/default/files/Decorations/beacon/beaminit.lua b/games/default/files/Decorations/beacon/beaminit.lua new file mode 100644 index 000000000..2295e95d8 --- /dev/null +++ b/games/default/files/Decorations/beacon/beaminit.lua @@ -0,0 +1,73 @@ +color1 = minetest.setting_get("color1") or "292421" +color2 = minetest.setting_get("color2") or "0000FF" +color3 = minetest.setting_get("color3") or "00FF00" +color4 = minetest.setting_get("color4") or "F5F5F5" +color5 = minetest.setting_get("color5") or "FF6103" +color6 = minetest.setting_get("color6") or "FF0000" +color7 = minetest.setting_get("color7") or "FFFF00" +color8 = minetest.setting_get("color8") or "FF69B4" + +local source_list = { + {"black", "Color1", color1}, + {"blue", "Color2", color2}, + {"green", "Color3", color3}, + {"white", "Color4", color4}, + {"orange", "Color5", color5}, + {"red", "Color6", color6}, + {"yellow", "Color7", color7}, + {"pink", "Color8", color8} +} + +for i in ipairs(source_list) do + local color = source_list[i][1] + local desc = source_list[i][2] + local colour = source_list[i][3] + +--Blue Beam +minetest.register_node("beacon:"..color.."base", { + visual_scale = 1.0, + drawtype = "plantlike", + tiles = {"beam.png^[colorize:#"..colour..":70" }, + paramtype = "light", + walkable = false, + diggable = false, + light_source = 13, + groups = {not_in_creative_inventory=1} +}) + +minetest.register_node("beacon:"..color.."beam", { + visual_scale = 1.0, + drawtype = "plantlike", + tiles = {"beam.png^[colorize:#"..colour..":70"}, + paramtype = "light", + walkable = false, + diggable = false, + light_source = 50, + groups = {not_in_creative_inventory=1} +}) + +minetest.register_abm({ + nodenames = {"beacon:"..color.."base"}, --makes small particles emanate from the beginning of a beam + interval = 1, + chance = 2, + action = function(pos, node) + minetest.add_particlespawner( + 32, --amount + 4, --time + {x=pos.x-0.25, y=pos.y-0.25, z=pos.z-0.25}, --minpos + {x=pos.x+0.25, y=pos.y+0.25, z=pos.z+0.25}, --maxpos + {x=-0.8, y=-0.8, z=-0.8}, --minvel + {x=0.8, y=0.8, z=0.8}, --maxvel + {x=0,y=0,z=0}, --minacc + {x=0,y=0,z=0}, --maxacc + 0.5, --minexptime + 1, --maxexptime + 1, --minsize + 2, --maxsize + false, --collisiondetection + "particle.png^[colorize:#"..colour..":70" --texture + ) + end, +}) + +end diff --git a/games/default/files/fire/depends.txt b/games/default/files/Decorations/beacon/depends.txt similarity index 100% rename from games/default/files/fire/depends.txt rename to games/default/files/Decorations/beacon/depends.txt diff --git a/games/default/files/Decorations/beacon/description.txt b/games/default/files/Decorations/beacon/description.txt new file mode 100644 index 000000000..973923e25 --- /dev/null +++ b/games/default/files/Decorations/beacon/description.txt @@ -0,0 +1 @@ +Mix of 2 mods : Beacon and Block in block diff --git a/games/default/files/Decorations/beacon/init.lua b/games/default/files/Decorations/beacon/init.lua new file mode 100644 index 000000000..edd107aff --- /dev/null +++ b/games/default/files/Decorations/beacon/init.lua @@ -0,0 +1,97 @@ +--Beacons v1.1 for minetest // block_in_block | October 2018 TumeniNodes + +--load other scripts +dofile(minetest.get_modpath("beacon").."/beaminit.lua") +dofile(minetest.get_modpath("beacon").."/beamgen.lua") + +color1 = minetest.setting_get("color1") or "292421" +color2 = minetest.setting_get("color2") or "0000FF" +color3 = minetest.setting_get("color3") or "00FF00" +color4 = minetest.setting_get("color4") or "F5F5F5" +color5 = minetest.setting_get("color5") or "FF6103" +color6 = minetest.setting_get("color6") or "FF0000" +color7 = minetest.setting_get("color7") or "FFFF00" +color8 = minetest.setting_get("color8") or "FF69B4" + +local source_list = { + {"black", "Color1", color1}, + {"blue", "Color2", color2}, + {"green", "Color3", color3}, + {"white", "Color4", color4}, + {"orange", "Color5", color5}, + {"red", "Color6", color6}, + {"yellow", "Color7", color7}, + {"pink", "Color8", color8} +} + +for i in ipairs(source_list) do + local color = source_list[i][1] + local desc = source_list[i][2] + local colour = source_list[i][3] + +--code for "unactivated beacon" +minetest.register_node("beacon:empty", { + description = "Unactivated Beacon", + wield_image = "color_handwhite.png^(color_handwhite2.png^[colorize:#"..colour..":70)", + wield_scale = {x=1,y=1,z=0.5}, + inventory_image = 'beaconoff.png^[colorize:#'..colour..':70', + tiles = {"color_white.png", "default_glass.png"}, + light_source = 3, + groups = {cracky=3,oddly_breakable_by_hand=3}, +}) + +minetest.register_node("beacon:off" .. color , { + description = "Beacon" .. color, + drawtype = "mesh", + light_source = 13, + mesh = "block_in_block.obj", + wield_image = "color_handwhite.png^(color_handwhite2.png^[colorize:#"..colour..":70)", + wield_scale = {x=1,y=1,z=0.5}, + inventory_image = 'beaconoff.png^[colorize:#'..colour..':70', + tiles = {"color_white.png^[colorize:#"..colour..":70","default_glass.png"}, + paramtype = "light", + is_ground_content = false, + groups = {cracky = 3}, + sounds = default.node_sound_stone_defaults(), + selection_box = { + type = "fixed", + fixed = { + {-0.5, -0.5, -0.5, 0.5, 0.5, 0.5}, + } + }, +on_destruct = function(pos) + for i=1,180 do + minetest.remove_node({x=pos.x, y=pos.y+i, z=pos.z}) + end + end +}) + +minetest.register_node("beacon:" .. color , { + description = "Beacon" .. color, + drawtype = "mesh", + light_source = 13, + mesh = "block_in_block.obj", + wield_image = "color_handwhite.png^(color_handwhite2.png^[colorize:#"..colour..":70)", + wield_scale = {x=1,y=1,z=0.5}, + inventory_image = 'beaconon.png^[colorize:#'..colour..':70', + tiles = {"color_white.png^[colorize:#"..colour..":70", "default_glass.png"}, + paramtype = "light", + is_ground_content = false, + groups = {cracky = 3}, + sounds = default.node_sound_stone_defaults(), + selection_box = { + type = "fixed", + fixed = { + {-0.5, -0.5, -0.5, 0.5, 0.5, 0.5}, + } + }, +on_destruct = function(pos) + for i=1,180 do + minetest.remove_node({x=pos.x, y=pos.y+i, z=pos.z}) + end + end +}) + +end + +print("[OK] Beacons") diff --git a/games/default/files/Decorations/beacon/mod.conf b/games/default/files/Decorations/beacon/mod.conf new file mode 100644 index 000000000..c82a5f454 --- /dev/null +++ b/games/default/files/Decorations/beacon/mod.conf @@ -0,0 +1 @@ +name = beacon diff --git a/games/default/files/Decorations/beacon/models/block_in_block.blend b/games/default/files/Decorations/beacon/models/block_in_block.blend new file mode 100644 index 000000000..91b9802f5 Binary files /dev/null and b/games/default/files/Decorations/beacon/models/block_in_block.blend differ diff --git a/games/default/files/Decorations/beacon/models/block_in_block.mtl b/games/default/files/Decorations/beacon/models/block_in_block.mtl new file mode 100644 index 000000000..7c46f1d0a --- /dev/null +++ b/games/default/files/Decorations/beacon/models/block_in_block.mtl @@ -0,0 +1,24 @@ +# Blender MTL File: 'block_in_block.blend' +# Material Count: 2 + +newmtl Material.001 +Ns 96.078431 +Ka 1.000000 1.000000 1.000000 +Kd 0.042654 0.137327 0.640000 +Ks 0.500000 0.500000 0.500000 +Ke 0.000000 0.000000 0.000000 +Ni 1.000000 +d 1.000000 +illum 2 +map_Kd /home/paul/Homer/minetest/games/minetest_game/mods/default/textures/default_obsidian_glass.png + +newmtl Material.002 +Ns 96.078431 +Ka 1.000000 1.000000 1.000000 +Kd 0.283146 0.640000 0.030032 +Ks 0.500000 0.500000 0.500000 +Ke 0.000000 0.000000 0.000000 +Ni 1.000000 +d 1.000000 +illum 2 +map_Kd /home/paul/Homer/minetest/games/minetest_game/mods/default/textures/default_gold_block.png diff --git a/games/default/files/Decorations/beacon/models/block_in_block.obj b/games/default/files/Decorations/beacon/models/block_in_block.obj new file mode 100644 index 000000000..d681be08e --- /dev/null +++ b/games/default/files/Decorations/beacon/models/block_in_block.obj @@ -0,0 +1,59 @@ +# Blender v2.76 (sub 0) OBJ File: 'block_in_block.blend' +# www.blender.org +mtllib block_in_block.mtl +o Cube.001_Cube.002 +v 0.312146 -0.312146 -0.312146 +v 0.312146 0.312146 -0.312146 +v 0.312146 -0.312146 0.312146 +v 0.312146 0.312146 0.312146 +v -0.312146 -0.312146 -0.312146 +v -0.312146 0.312146 -0.312146 +v -0.312146 -0.312146 0.312146 +v -0.312146 0.312146 0.312146 +vt 1.000000 1.000000 +vt 0.000000 1.000000 +vt -0.000000 0.000000 +vt 1.000000 0.000000 +vn 1.000000 0.000000 -0.000000 +vn 0.000000 0.000000 1.000000 +vn -1.000000 0.000000 0.000000 +vn -0.000000 0.000000 -1.000000 +vn 0.000000 -1.000000 -0.000000 +vn 0.000000 1.000000 0.000000 +g Cube.001_Cube.002_Material.002 +usemtl Material.002 +s off +f 2/1/1 4/2/1 3/3/1 1/4/1 +f 4/1/2 8/2/2 7/3/2 3/4/2 +f 8/1/3 6/2/3 5/3/3 7/4/3 +f 6/1/4 2/2/4 1/3/4 5/4/4 +f 1/2/5 3/3/5 7/4/5 5/1/5 +f 6/4/6 8/1/6 4/2/6 2/3/6 +o Cube_Cube.001 +v -0.498844 -0.498844 0.498844 +v -0.498844 0.498844 0.498844 +v -0.498844 -0.498844 -0.498844 +v -0.498844 0.498844 -0.498844 +v 0.498844 -0.498844 0.498844 +v 0.498844 0.498844 0.498844 +v 0.498844 -0.498844 -0.498844 +v 0.498844 0.498844 -0.498844 +vt 1.000000 1.000000 +vt 0.000000 1.000000 +vt 0.000000 -0.000000 +vt 1.000000 -0.000000 +vn -1.000000 0.000000 0.000000 +vn 0.000000 0.000000 -1.000000 +vn 1.000000 0.000000 0.000000 +vn 0.000000 0.000000 1.000000 +vn 0.000000 -1.000000 0.000000 +vn 0.000000 1.000000 0.000000 +g Cube_Cube.001_Material.001 +usemtl Material.001 +s off +f 10/5/7 12/6/7 11/7/7 9/8/7 +f 12/5/8 16/6/8 15/7/8 11/8/8 +f 16/5/9 14/6/9 13/7/9 15/8/9 +f 14/5/10 10/6/10 9/7/10 13/8/10 +f 9/6/11 11/7/11 15/8/11 13/5/11 +f 14/8/12 16/5/12 12/6/12 10/7/12 diff --git a/games/default/files/Decorations/beacon/textures/beam.png b/games/default/files/Decorations/beacon/textures/beam.png new file mode 100644 index 000000000..c7e035729 Binary files /dev/null and b/games/default/files/Decorations/beacon/textures/beam.png differ diff --git a/games/default/files/Decorations/beacon/textures/default_glass.png b/games/default/files/Decorations/beacon/textures/default_glass.png new file mode 100644 index 000000000..da2540287 Binary files /dev/null and b/games/default/files/Decorations/beacon/textures/default_glass.png differ diff --git a/games/default/files/Decorations/beacon/textures/particle.png b/games/default/files/Decorations/beacon/textures/particle.png new file mode 100644 index 000000000..520c165ef Binary files /dev/null and b/games/default/files/Decorations/beacon/textures/particle.png differ diff --git a/games/default/files/Decorations/beds/README.txt b/games/default/files/Decorations/beds/README.txt new file mode 100644 index 000000000..da42da3f8 --- /dev/null +++ b/games/default/files/Decorations/beds/README.txt @@ -0,0 +1,47 @@ +===BEDS MOD for MINETEST-C55=== +by PilzAdam & thefamilygrog66 + +Introduction: +This mods brings beds to Minetest. You can use them to sleep at night +to prevent attacks by evil mobs. + +How to install: +Unzip the archive an place it in minetest-base-directory/mods/minetest/ +if you have a windows client or a linux run-in-place client. If you have +a linux system-wide instalation place it in ~/.minetest/mods/minetest/. +If you want to install this mod only in one world create the folder +worldmods/ in your worlddirectory. +For further information or help see: +http://wiki.minetest.com/wiki/Installing_Mods + +How to use the mod: +Craft a bed like this: +white wool white wool white wool +stick stick +After placing it anywhere you can go to sleep with a leftklick with your +hand on the bed. If it is night a chatmessage wishs you "Good night" and +you sleep until the next morning. To go outside the bed it is recommended +to hit the bed again with a leftklick (it also works if you just go away +but its not so safe). +After dying the player will respawn at the last bed he has slept. + +License: +Sourcecode: WTFPL (see below) +Graphics: WTFPL (see below) + +See also: +http://minetest.net/ + + DO WHAT THE FUCK YOU WANT TO PUBLIC LICENSE + Version 2, December 2004 + + Copyright (C) 2004 Sam Hocevar + + Everyone is permitted to copy and distribute verbatim or modified + copies of this license document, and changing it is allowed as long + as the name is changed. + + DO WHAT THE FUCK YOU WANT TO PUBLIC LICENSE + TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION + + 0. You just DO WHAT THE FUCK YOU WANT TO. diff --git a/games/default/files/Decorations/beds/depends.txt b/games/default/files/Decorations/beds/depends.txt new file mode 100644 index 000000000..22ed7be9e --- /dev/null +++ b/games/default/files/Decorations/beds/depends.txt @@ -0,0 +1,2 @@ +default +color \ No newline at end of file diff --git a/games/default/files/Decorations/beds/init.lua b/games/default/files/Decorations/beds/init.lua new file mode 100644 index 000000000..f0a10edd4 --- /dev/null +++ b/games/default/files/Decorations/beds/init.lua @@ -0,0 +1,175 @@ +local player_in_bed = 0 + +local beds_list = { + {"black", "Darkened", color1, 40, 36, 33}, + {"blue", "Blue", color2, 0, 0, 255}, + {"green", "Green", color3, 0, 255, 0}, + {"white", "White", color4, 245, 245, 245}, + {"orange", "Orange", color5, 255, 97, 3}, + {"red", "Red", color6, 255, 0, 0}, + {"yellow", "Yellow", color7, 255, 255, 0}, + {"pink", "Pink", color8, 255, 105, 180} +} + +for i in ipairs(beds_list) do + local colour = beds_list[i][1] + local beddesc= beds_list[i][2] +local colour2 = beds_list[i][3] + + minetest.register_node("beds:bed_bottom_"..colour, { + description = beddesc, + drawtype = "nodebox", + tiles = {"color_white.png^[colorize:#"..colour2..":70", "color_white.png^[colorize:#"..color5..":70", "color_white.png^[colorize:#"..color5..":70", "color_white.png^[colorize:#"..color5..":70", "color_white.png^[colorize:#"..color5..":70", "color_white.png^[colorize:#"..color5..":70"}, + wield_image = "color_handwhite.png^(color_handwhite2.png^[colorize:#"..colour2..":70)", + wield_scale = {x=1,y=1,z=0.5}, + inventory_image = "beds.png^[colorize:#".. colour2 .. ":70", + paramtype = "light", + paramtype2 = "facedir", + stack_max = 1, + groups = {snappy=1,choppy=2,oddly_breakable_by_hand=2,flammable=3}, + sounds = default.node_sound_wood_defaults(), + node_box = { + type = "fixed", + fixed = { + -- bed + {-0.5, -0.25, -0.5, 0.5, 0, 0.5}, + {-0.4375, 0, 0.1, -0.4375, 0, 0.1}, + -- legs + {-0.5, -0.5, -0.5, -0.4, -0.25, -0.4}, + {0.4, -0.25, -0.4, 0.5, -0.5, -0.5}, + } + }, + selection_box = { + type = "fixed", + fixed = { + {-0.5, -0.5, -0.5, 0.5, 0.3125, 1.5}, + } + }, + + after_place_node = function(pos, placer, itemstack) + local node = minetest.env:get_node(pos) + local p = {x=pos.x, y=pos.y, z=pos.z} + local param2 = node.param2 + node.name = "beds:bed_top_"..colour + if param2 == 0 then + pos.z = pos.z+1 + elseif param2 == 1 then + pos.x = pos.x+1 + elseif param2 == 2 then + pos.z = pos.z-1 + elseif param2 == 3 then + pos.x = pos.x-1 + end + if minetest.registered_nodes[minetest.env:get_node(pos).name].buildable_to then + minetest.env:set_node(pos, node) + else + minetest.env:remove_node(p) + return true + end + end, + + on_destruct = function(pos) + local node = minetest.env:get_node(pos) + local param2 = node.param2 + if param2 == 0 then + pos.z = pos.z+1 + elseif param2 == 1 then + pos.x = pos.x+1 + elseif param2 == 2 then + pos.z = pos.z-1 + elseif param2 == 3 then + pos.x = pos.x-1 + end + if( minetest.env:get_node({x=pos.x, y=pos.y, z=pos.z}).name == "beds:bed_top_"..colour ) then + if( minetest.env:get_node({x=pos.x, y=pos.y, z=pos.z}).param2 == param2 ) then + minetest.env:remove_node(pos) + end + end + end, + + + }) + + minetest.register_node("beds:bed_top_"..colour, { + drawtype = "nodebox", + tiles = {"beds_bed_top_top.png^[colorize:#"..colour2..":70", "color_white.png^[colorize:#"..color5..":70", "color_white.png^[colorize:#"..color5..":70", "color_white.png^[colorize:#"..color5..":70", "color_white.png^[colorize:#"..color5..":70", "color_white.png^[colorize:#"..color5..":70"}, + paramtype = "light", + paramtype2 = "facedir", + wield_image = "color_handwhite.png^(color_handwhite2.png^[colorize:#"..colour2..":70)", + wield_scale = {x=1,y=1,z=0.5}, + groups = {snappy=1,choppy=2,oddly_breakable_by_hand=2,flammable=3}, + sounds = default.node_sound_wood_defaults(), + node_box = { + type = "fixed", + fixed = { + -- bed + {-0.5, -0.25, -0.5, 0.5, 0, 0.5}, + {-0.4375, 0, 0.05, 0.4375, 0.10, 0.45}, + + -- legs + {-0.4, -0.5, 0.4, -0.5, -0.25, 0.5}, + {0.5, -0.25, 0.5, 0.4, -0.5, 0.4}, + } + }, + selection_box = { + type = "fixed", + fixed = { + {0, 0, 0, 0, 0, 0}, + } + }, + }) + + minetest.register_alias("beds:bed_"..colour, "beds:bed_bottom_"..colour) + +end + +beds_player_spawns = {} +local file = io.open(minetest.get_worldpath().."/beds_player_spawns", "r") +if file then + beds_player_spawns = minetest.deserialize(file:read("*all")) + file:close() +end + +local timer = 0 +local wait = false +minetest.register_globalstep(function(dtime) + if timer<2 then + timer = timer+dtime + return + end + timer = 0 + + local players = #minetest.get_connected_players() + if players == player_in_bed and players ~= 0 then + if minetest.env:get_timeofday() < 0.2 or minetest.env:get_timeofday() > 0.805 then + if not wait then + minetest.chat_send_all("Good night!!!") + minetest.after(2, function() + minetest.env:set_timeofday(0.23) + wait = false + end) + wait = true + for _,player in ipairs(minetest.get_connected_players()) do + beds_player_spawns[player:get_player_name()] = player:getpos() + end + local file = io.open(minetest.get_worldpath().."/beds_player_spawns", "w") + if file then + file:write(minetest.serialize(beds_player_spawns)) + file:close() + end + end + end + end +end) + +minetest.register_on_respawnplayer(function(player) + local name = player:get_player_name() + if beds_player_spawns[name] then + player:setpos(beds_player_spawns[name]) + return true + end +end) + +if minetest.setting_get("log_mods") then + minetest.log("action", "beds loaded") +end diff --git a/games/default/files/Decorations/beds/textures/beds_bed.png b/games/default/files/Decorations/beds/textures/beds_bed.png new file mode 100644 index 000000000..c9a685152 Binary files /dev/null and b/games/default/files/Decorations/beds/textures/beds_bed.png differ diff --git a/games/default/files/Decorations/beds/textures/beds_bed1.png b/games/default/files/Decorations/beds/textures/beds_bed1.png new file mode 100644 index 000000000..1b8e8e6dd Binary files /dev/null and b/games/default/files/Decorations/beds/textures/beds_bed1.png differ diff --git a/games/default/files/Decorations/beds/textures/beds_bed_side.png b/games/default/files/Decorations/beds/textures/beds_bed_side.png new file mode 100644 index 000000000..a6a4283fe Binary files /dev/null and b/games/default/files/Decorations/beds/textures/beds_bed_side.png differ diff --git a/games/default/files/Decorations/beds/textures/beds_bed_side_top_l.png b/games/default/files/Decorations/beds/textures/beds_bed_side_top_l.png new file mode 100644 index 000000000..6ea0202db Binary files /dev/null and b/games/default/files/Decorations/beds/textures/beds_bed_side_top_l.png differ diff --git a/games/default/files/Decorations/beds/textures/beds_bed_side_top_r.png b/games/default/files/Decorations/beds/textures/beds_bed_side_top_r.png new file mode 100644 index 000000000..140c10bde Binary files /dev/null and b/games/default/files/Decorations/beds/textures/beds_bed_side_top_r.png differ diff --git a/games/default/files/Decorations/beds/textures/beds_bed_top_front.png b/games/default/files/Decorations/beds/textures/beds_bed_top_front.png new file mode 100644 index 000000000..530f54331 Binary files /dev/null and b/games/default/files/Decorations/beds/textures/beds_bed_top_front.png differ diff --git a/games/default/files/Decorations/beds/textures/beds_bed_top_top.png b/games/default/files/Decorations/beds/textures/beds_bed_top_top.png new file mode 100644 index 000000000..d327a5d58 Binary files /dev/null and b/games/default/files/Decorations/beds/textures/beds_bed_top_top.png differ diff --git a/games/default/files/Decorations/castle_gates/.gitattributes b/games/default/files/Decorations/castle_gates/.gitattributes new file mode 100644 index 000000000..bdb0cabc8 --- /dev/null +++ b/games/default/files/Decorations/castle_gates/.gitattributes @@ -0,0 +1,17 @@ +# Auto detect text files and perform LF normalization +* text=auto + +# Custom for Visual Studio +*.cs diff=csharp + +# Standard to msysgit +*.doc diff=astextplain +*.DOC diff=astextplain +*.docx diff=astextplain +*.DOCX diff=astextplain +*.dot diff=astextplain +*.DOT diff=astextplain +*.pdf diff=astextplain +*.PDF diff=astextplain +*.rtf diff=astextplain +*.RTF diff=astextplain diff --git a/games/default/files/Decorations/castle_gates/LICENSE b/games/default/files/Decorations/castle_gates/LICENSE new file mode 100644 index 000000000..5c3c583ce --- /dev/null +++ b/games/default/files/Decorations/castle_gates/LICENSE @@ -0,0 +1,21 @@ +The MIT License (MIT) + +Copyright (c) 2017 Minetest Mods Team + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. diff --git a/games/default/files/Decorations/castle_gates/README.txt b/games/default/files/Decorations/castle_gates/README.txt new file mode 100644 index 000000000..113bd8993 --- /dev/null +++ b/games/default/files/Decorations/castle_gates/README.txt @@ -0,0 +1,11 @@ +Castle Gates + +Licence: MIT + +see: LICENSE + +=-=-=-=-=-=-=-=-=-= + +This is a mod all about creating castle gates and dungeons. It contains dungeon doors and bars, and also a set of nodes for constructing larger swinging and sliding gates. + +This allows the construction of portcullises and drawbridges as well as conventional swinging doors. Use the screwdriver to reorient gate pieces as needed for these purposes. diff --git a/games/default/files/Decorations/castle_gates/api.txt b/games/default/files/Decorations/castle_gates/api.txt new file mode 100644 index 000000000..8d8b4d63c --- /dev/null +++ b/games/default/files/Decorations/castle_gates/api.txt @@ -0,0 +1,76 @@ +This document is intended primarily for modders interested in adding their own gate nodes and gate types. + +This mod allows for additional gate nodes to be defined in other dependent mods that will work seamlessly with existing gate nodes. The following is a minimalist example that shows a node using all of the features offered by this mod's gate API: + +minetest.register_node("castle_gates:example_gate_piece", { + description = "Example gate", + groups = {castle_gate = 1}, + tiles = {"default_wood.png"}, + paramtype2 = "facedir", + on_rightclick = castle_gates.trigger_gate, + _gate_edges = {"right"=true}, + _gate_hinge = {axis="top", offset={"front","left"}}, +}) + +The key features are: + +* paramtype2 = "facedir" (mandatory) +* "castle_gate" group membership (mandatory) +* on_rightclick = castle_gates.trigger_gate (optional, but recommended) +* _gate_edges = (optional) +* _gate_hinge = (optional) + + +Paramtype2 +========== + +All gate pieces must be orientable via facedir. + +Castle_gate group +================= + +When a gate is triggered by right-clicking on a gate node, the gate code does a "flood fill" operation to find all connected gate nodes. This flood fill operation looks for adjacent nodes that belong to the same castle_gate group, so all gate nodes need to belong to this group. + +Gates defined in this mod all belong to castle_gate=1. + +on_rightclick +============= + +The castle_gates.trigger_gate method is a right-click handler that will trigger the movement of the gate. If you want your gate pieces to respond to a player's right click by opening, use this call to make the gate magic happen. + +Note that if you wish you can embed the call to The castle_gates.trigger_gate inside your own on_rightclick function, so that for example you could make a "locked" gate that will only respond to specific players (you may wish to use a different castle_gate group ID for such a gate). Or you can omit this function, in which case the gate piece will still move with the rest of the gate but right-clicking on it will not trigger the gate's movement. + +_gate_edges +=========== + +This is an optional property you can put on a gate node's definition to prevent flood-fill from extending beyond this node in a particular direction. This is useful if, for example, you want players to be able to build double doors that would otherwise connect together when both doors are closed. + +It consists of a table with directions defined as edges set to true. You can use this template: + +_gate_edges = {right=false, left=false, top=false, bottom=false} + +("front" and "back" are also possible but are unlikely to be of any real use) + +Note that the flood-fill search for gate nodes will flow *around* an edge piece if a path exists, the mere fact that there's an edge piece does not guarantee that the door node beyond the edge will not be considered part of the same door as it. + +_gate_hinge +=========== + +The hinge definition for a node def is of the following form: + +_gate_hinge = {axis=, offset=} + + is one of "top", "bottom", "left", "right", "front" or "back". +Top/bottom, left/right and front/back are interchangeable pairings as far as this code is concerned. +These directions are relative to the orientation of the block. Existing gates use "top", so for +maximum compatibility it's advised that new gate hinges are defined with the same axis. + + is optional. If it is not defined, the gate hinge will try to rotate around the center of the node. + + can be a single direction ("top", "bottom", "left", "right", "front", "back"). If a single direction is +given the hinge will try to rotate around the center of the node that lies in that direction relative to the hinge node. + + can also be a pair of directions given in a table. This is how the *edge* of a node can be made into the +center of rotation. For example, existing gate hinges in this mod have the offset {"front","left"}. This means that the +gate will try to rotate around the center of the edge of the node where the front and left faces intersect. +You should only use direction pairs that form a 90 degree angle. \ No newline at end of file diff --git a/games/default/files/Decorations/castle_gates/class_pointset.lua b/games/default/files/Decorations/castle_gates/class_pointset.lua new file mode 100644 index 000000000..3cbbd8953 --- /dev/null +++ b/games/default/files/Decorations/castle_gates/class_pointset.lua @@ -0,0 +1,101 @@ +-- A simple special-purpose class, this is used for building up sets of three-dimensional points for fast reference + +Pointset = {} +Pointset.__index = Pointset + +function Pointset.create() + local set = {} + setmetatable(set,Pointset) + set.points = {} + return set +end + +function Pointset:set(x, y, z, value) + -- sets a value in the 3D array "points". + if self.points[x] == nil then + self.points[x] = {} + end + if self.points[x][y] == nil then + self.points[x][y] = {} + end + self.points[x][y][z] = value +end + +function Pointset:set_if_not_in(excluded, x, y, z, value) + -- If a value is not already set for this point in the 3D array "excluded", set it in "points" + if excluded:get(x, y, z) ~= nil then + return + end + self:set(x, y, z, value) +end + +function Pointset:get(x, y, z) + -- return a value from the 3D array "points" + if self.points[x] == nil or self.points[x][y] == nil then + return nil + end + return self.points[x][y][z] +end + +function Pointset:set_pos(pos, value) + self:set(pos.x, pos.y, pos.z, value) +end + +function Pointset:set_pos_if_not_in(excluded, pos, value) + self:set_if_not_in(excluded, pos.x, pos.y, pos.z, value) +end + +function Pointset:get_pos(pos) + return self:get(pos.x, pos.y, pos.z) +end + +function Pointset:pop() + -- returns a point that's in the 3D array, and then removes it. + local pos = {} + local ytable + local ztable + local val + + local count = 0 + for _ in pairs(self.points) do count = count + 1 end + if count == 0 then + return nil + end + + pos.x, ytable = next(self.points) + pos.y, ztable = next(ytable) + pos.z, val = next(ztable) + + self.points[pos.x][pos.y][pos.z] = nil + + count = 0 + for _ in pairs(self.points[pos.x][pos.y]) do count = count + 1 end + if count == 0 then + self.points[pos.x][pos.y] = nil + end + + count = 0 + for _ in pairs(self.points[pos.x]) do count = count + 1 end + if count == 0 then + self.points[pos.x] = nil + end + + return pos, val +end + +function Pointset:get_pos_list(value) + -- Returns a list of all points with the given value in standard Minetest vector format. If no value is provided, returns all points + local outlist = {} + for x, ytable in ipairs(self.points) do + for y, ztable in ipairs(ytable) do + for z, val in ipairs(ztable) do + if (value == nil and val ~= nil ) or val == value then + table.insert(outlist, {x=x, y=y, z=z}) + end + end + end + end + return outlist +end + + \ No newline at end of file diff --git a/games/default/files/Decorations/castle_gates/depends.txt b/games/default/files/Decorations/castle_gates/depends.txt new file mode 100644 index 000000000..acb8d9ed6 --- /dev/null +++ b/games/default/files/Decorations/castle_gates/depends.txt @@ -0,0 +1,6 @@ +default +castle_masonry? +doors? +xpanes? +intllib? +doc? \ No newline at end of file diff --git a/games/default/files/Decorations/castle_gates/description.txt b/games/default/files/Decorations/castle_gates/description.txt new file mode 100644 index 000000000..239922648 --- /dev/null +++ b/games/default/files/Decorations/castle_gates/description.txt @@ -0,0 +1 @@ +This is a mod all about creating castles and castle dungeons. Many of the nodes are used for the outer-walls or dungeons. diff --git a/games/default/files/Decorations/castle_gates/gate_functions.lua b/games/default/files/Decorations/castle_gates/gate_functions.lua new file mode 100644 index 000000000..5d1e6b79b --- /dev/null +++ b/games/default/files/Decorations/castle_gates/gate_functions.lua @@ -0,0 +1,390 @@ +local MP = minetest.get_modpath(minetest.get_current_modname()) +dofile(MP.."/class_pointset.lua") + +-- Given a facedir, returns a set of all the corresponding directions +local get_dirs = function(facedir) + local dirs = {} + local top = {[0]={x=0, y=1, z=0}, + {x=0, y=0, z=1}, + {x=0, y=0, z=-1}, + {x=1, y=0, z=0}, + {x=-1, y=0, z=0}, + {x=0, y=-1, z=0}} + dirs.back = minetest.facedir_to_dir(facedir) + dirs.top = top[math.floor(facedir/4)] + dirs.right = { + x=dirs.top.y*dirs.back.z - dirs.back.y*dirs.top.z, + y=dirs.top.z*dirs.back.x - dirs.back.z*dirs.top.x, + z=dirs.top.x*dirs.back.y - dirs.back.x*dirs.top.y + } + dirs.front = vector.multiply(dirs.back, -1) + dirs.bottom = vector.multiply(dirs.top, -1) + dirs.left = vector.multiply(dirs.right, -1) + return dirs +end + +-- Returns the axis that dir points along +local dir_to_axis = function(dir) + if dir.x ~= 0 then + return "x" + elseif dir.y ~= 0 then + return "y" + else + return "z" + end +end + +-- Given a hinge definition, turns it into an axis and placement that can be used by the door rotation. +local interpret_hinge = function(hinge_def, pos, node_dirs) + local axis = dir_to_axis(node_dirs[hinge_def.axis]) + + local placement + if type(hinge_def.offset) == "string" then + placement = vector.add(pos, node_dirs[hinge_def.offset]) + elseif type(hinge_def.offset) == "table" then + placement = vector.new(0,0,0) + local divisor = 0 + for _, val in pairs(hinge_def.offset) do + placement = vector.add(placement, node_dirs[val]) + divisor = divisor + 1 + end + placement = vector.add(pos, vector.divide(placement, divisor)) + else + placement = pos + end + + return axis, placement +end + + +-------------------------------------------------------------------------- +-- Rotation (slightly more complex than sliding) + +local facedir_rotate = { + ['x'] = { + [-1] = {[0]=4, 5, 6, 7, 22, 23, 20, 21, 0, 1, 2, 3, 13, 14, 15, 12, 19, 16, 17, 18, 10, 11, 8, 9}, -- 270 degrees + [1] = {[0]=8, 9, 10, 11, 0, 1, 2, 3, 22, 23, 20, 21, 15, 12, 13, 14, 17, 18, 19, 16, 6, 7, 4, 5}, -- 90 degrees + }, + ['y'] = { + [-1] = {[0]=3, 0, 1, 2, 19, 16, 17, 18, 15, 12, 13, 14, 7, 4, 5, 6, 11, 8, 9, 10, 21, 22, 23, 20}, -- 270 degrees + [1] = {[0]=1, 2, 3, 0, 13, 14, 15, 12, 17, 18, 19, 16, 9, 10, 11, 8, 5, 6, 7, 4, 23, 20, 21, 22}, -- 90 degrees + }, + ['z'] = { + [-1] = {[0]=16, 17, 18, 19, 5, 6, 7, 4, 11, 8, 9, 10, 0, 1, 2, 3, 20, 21, 22, 23, 12, 13, 14, 15}, -- 270 degrees + [1] = {[0]=12, 13, 14, 15, 7, 4, 5, 6, 9, 10, 11, 8, 20, 21, 22, 23, 0, 1, 2, 3, 16, 17, 18, 19}, -- 90 degrees + } +} + --90 degrees CW about x-axis: (x, y, z) -> (x, -z, y) + --90 degrees CCW about x-axis: (x, y, z) -> (x, z, -y) + --90 degrees CW about y-axis: (x, y, z) -> (-z, y, x) + --90 degrees CCW about y-axis: (x, y, z) -> (z, y, -x) + --90 degrees CW about z-axis: (x, y, z) -> (y, -x, z) + --90 degrees CCW about z-axis: (x, y, z) -> (-y, x, z) +local rotate_pos = function(axis, direction, pos) + if axis == "x" then + if direction < 0 then + return {x= pos.x, y= -pos.z, z= pos.y} + else + return {x= pos.x, y= pos.z, z= -pos.y} + end + elseif axis == "y" then + if direction < 0 then + return {x= -pos.z, y= pos.y, z= pos.x} + else + return {x= pos.z, y= pos.y, z= -pos.x} + end + else + if direction < 0 then + return {x= -pos.y, y= pos.x, z= pos.z} + else + return {x= pos.y, y= -pos.x, z= pos.z} + end + end +end + +local rotate_pos_displaced = function(pos, origin, axis, direction) + -- position in space relative to origin + local newpos = vector.subtract(pos, origin) + newpos = rotate_pos(axis, direction, newpos) + -- Move back to original reference frame + return vector.add(newpos, origin) +end + +local get_buildable_to = function(pos) + return minetest.registered_nodes[minetest.get_node(pos).name].buildable_to +end + + +local get_door_layout = function(pos, facedir, player) + -- This method does a flood-fill looking for all nodes that meet the following criteria: + -- belongs to a "castle_gate" group + -- has the same "back" direction as the initial node + -- is accessible via up, down, left or right directions unless one of those directions goes through an edge that one of the two nodes has marked as a gate edge + local door = {} + + door.all = {} + door.contains_protected_node = false + door.directions = get_dirs(facedir) + door.previous_move = minetest.get_meta(pos):get_string("previous_move") + + -- temporary pointsets used while searching + local to_test = Pointset.create() + local tested = Pointset.create() + local can_slide_to = Pointset.create() + + local castle_gate_group_value -- this will be populated from the first gate node we encounter, which will be the one that was clicked on + + to_test:set_pos(pos, true) + + local test_pos, _ = to_test:pop() + while test_pos ~= nil do + tested:set_pos(test_pos, true) -- track nodes we've looked at + local test_node = minetest.get_node(test_pos) + + if test_node.name == "ignore" then + --array is next to unloaded nodes, too dangerous to do anything. Abort. + return nil + end + + if minetest.is_protected(test_pos, player:get_player_name()) and not minetest.check_player_privs(player, "protection_bypass") then + door.contains_protected_node = true + end + + local test_node_def = minetest.registered_nodes[test_node.name] + can_slide_to:set_pos(test_pos, test_node_def.buildable_to == true) + + if test_node_def.paramtype2 == "facedir" then -- prospective door nodes need to be of type facedir + local test_node_dirs = get_dirs(test_node.param2) + local coplanar = vector.equals(test_node_dirs.back, door.directions.back) -- the "back" vector needs to point in the same direction as the rest of the door + + if castle_gate_group_value == nil and test_node_def.groups.castle_gate ~= nil then + castle_gate_group_value = test_node_def.groups.castle_gate -- read the group value from the first gate node encountered + end + + if coplanar and test_node_def.groups.castle_gate == castle_gate_group_value then + local entry = {["pos"] = test_pos, ["node"] = test_node} + table.insert(door.all, entry) -- it's definitely a gate node of some sort. + if test_node_def._gate_hinge ~= nil then -- it's a hinge type of node, need to do extra work + local axis, placement = interpret_hinge(test_node_def._gate_hinge, test_pos, test_node_dirs) + if door.hinge == nil then -- this is the first hinge we've encountered. + door.hinge = {axis=axis, placement=placement} + door.directions = test_node_dirs -- force the door as a whole to use the same reference frame as the first hinge + elseif door.hinge.axis ~= axis then -- there was a previous hinge. Do they rotate on the same axis? + return nil -- Misaligned hinge axes, door cannot rotate. + else + local axis_dir = {x=0, y=0, z=0} + axis_dir[axis] = 1 + local displacement = vector.normalize(vector.subtract(placement, door.hinge.placement)) -- check if this new hinge is displaced relative to the first hinge on any axis other than the rotation axis + if not (vector.equals(displacement, axis_dir) or vector.equals(displacement, vector.multiply(axis_dir, -1))) then + return nil -- Misaligned hinge offset, door cannot rotate. + end + end + end + + can_slide_to:set_pos(test_pos, true) -- since this is part of the door, other parts of the door can slide into it + + local test_directions = {"top", "bottom", "left", "right"} + for _, dir in pairs(test_directions) do + local adjacent_pos = vector.add(test_pos, door.directions[dir]) + local adjacent_node = minetest.get_node(adjacent_pos) + local adjacent_def = minetest.registered_nodes[adjacent_node.name] + can_slide_to:set_pos(adjacent_pos, adjacent_def.buildable_to == true or adjacent_def.groups.castle_gate) + + if test_node_def._gate_edges == nil or not test_node_def._gate_edges[dir] then -- if we ourselves are an edge node, don't look in the direction we're an edge in + if tested:get_pos(adjacent_pos) == nil then -- don't look at nodes that have already been looked at + if adjacent_def.paramtype2 == "facedir" then -- all doors are facedir nodes so we can pre-screen some targets + + local edge_points_back_at_test_pos = false + -- Look at the adjacent node's definition. If it's got gate edges, check if they point back at us. + if adjacent_def._gate_edges ~= nil then + local adjacent_directions = get_dirs(adjacent_node.param2) + for dir, val in pairs(adjacent_def._gate_edges) do + if vector.equals(vector.add(adjacent_pos, adjacent_directions[dir]), test_pos) then + edge_points_back_at_test_pos = true + break + end + end + end + + if not edge_points_back_at_test_pos then + to_test:set_pos(adjacent_pos, true) + end + end + end + end + end + end + end + + test_pos, _ = to_test:pop() + end + + if door.hinge == nil then + --sliding door, evaluate which directions it can go + door.can_slide = {top=true, bottom=true, left=true, right=true} + for _,door_node in pairs(door.all) do + door.can_slide.top = door.can_slide.top and can_slide_to:get_pos(vector.add(door_node.pos, door.directions.top)) + door.can_slide.bottom = door.can_slide.bottom and can_slide_to:get_pos(vector.add(door_node.pos, door.directions.bottom)) + door.can_slide.left = door.can_slide.left and can_slide_to:get_pos(vector.add(door_node.pos, door.directions.left)) + door.can_slide.right = door.can_slide.right and can_slide_to:get_pos(vector.add(door_node.pos, door.directions.right)) + end + else + --rotating door, evaluate which direction it can go. Slightly more complicated. + local origin = door.hinge.placement + local axis = door.hinge.axis + local backfront = dir_to_axis(door.directions.back) + local leftright = dir_to_axis(door.directions.right) + + door.swings = {} + + for _, direction in pairs({-1, 1}) do + door.swings[direction] = true + for _, door_node in pairs(door.all) do + origin[axis] = door_node.pos[axis] + if not vector.equals(door_node.pos, origin) then -- There's no obstruction if the node is literally located along the rotation axis + local newpos = rotate_pos_displaced(door_node.pos, origin, axis, direction) + local newnode = minetest.get_node(newpos) + local newdef = minetest.registered_nodes[newnode.name] + if not newdef.buildable_to then -- check if the destination node is free. + door.swings[direction] = false + break + end + + local swing_corner = {} -- the corner of the square "arc" that a Minetest gate swings through + local scan_dir + swing_corner[axis] = door_node.pos[axis] + swing_corner[backfront] = newpos[backfront] + swing_corner[leftright] = door_node.pos[leftright] + if not (vector.equals(newpos, swing_corner) or vector.equals(door_node.pos, swing_corner)) then -- we're right next to the hinge, no need for further testing + scan_dir = vector.direction(newpos, swing_corner) -- get the direction from the new door position toward the swing corner + repeat + newpos = vector.add(newpos, scan_dir) -- we start with newpos on the destination node, which has already been tested. + if not get_buildable_to(newpos) then + door.swings[direction] = false + end + until vector.equals(newpos, swing_corner) or door.swings[direction] == false + + if not (vector.equals(newpos, door_node.pos) or door.swings[direction] == false) then + scan_dir = vector.direction(newpos, door_node.pos) + newpos = vector.add(newpos, scan_dir) -- the first step here is a freebie since we've already checked swing_corner + while not (vector.equals(newpos, door_node.pos) or door.swings[direction] == false) do + if not get_buildable_to(newpos) then + door.swings[direction] = false + end + newpos = vector.add(newpos, scan_dir) + end + end + end + end + + if door.swings[direction] == false then + break + end + + end + end + end + return door +end + + +local slide_gate = function(door, direction) + for _, door_node in pairs(door.all) do + door_node.pos = vector.add(door_node.pos, door.directions[direction]) + end + door.previous_move = direction +end + +local rotate_door = function (door, direction) + if not door.swings[direction] then + return false + end + + local origin = door.hinge.placement + local axis = door.hinge.axis + + for _, door_node in pairs(door.all) do + door_node.pos = rotate_pos_displaced(door_node.pos, origin, axis, direction) + door_node.node.param2 = facedir_rotate[axis][direction][door_node.node.param2] + end + return true +end + + +---------------------------------------------------------------------------------------------------- +-- When creating new gate pieces use this as the "on_rightclick" method of their node definitions +-- if you want the player to be able to trigger the gate by clicking on that particular node. +-- If you just want the node to move with the gate and not trigger it this isn't necessary, +-- only the "castle_gate" group is needed for that. + +castle_gates.trigger_gate = function(pos, node, player) + local door = get_door_layout(pos, node.param2, player) + + if door ~= nil then + for _, door_node in pairs(door.all) do + minetest.set_node(door_node.pos, {name="air"}) + end + + local door_moved = false + if door.can_slide ~= nil then -- this is a sliding door + if door.previous_move == "top" and door.can_slide.top then + slide_gate(door, "top") + door_moved = true + elseif door.previous_move == "bottom" and door.can_slide.bottom then + slide_gate(door, "bottom") + door_moved = true + elseif door.previous_move == "left" and door.can_slide.left then + slide_gate(door, "left") + door_moved = true + elseif door.previous_move == "right" and door.can_slide.right then + slide_gate(door, "right") + door_moved = true + end + + if not door_moved then -- reverse door's direction for next time + if door.previous_move == "top" and door.can_slide.bottom then + door.previous_move = "bottom" + elseif door.previous_move == "bottom" and door.can_slide.top then + door.previous_move = "top" + elseif door.previous_move == "left" and door.can_slide.right then + door.previous_move = "right" + elseif door.previous_move == "right" and door.can_slide.left then + door.previous_move = "left" + else + -- find any open direction + for slide_dir, enabled in pairs(door.can_slide) do + if enabled then + door.previous_move = slide_dir + break + end + end + end + end + elseif door.hinge ~= nil then -- this is a hinged door + if door.previous_move == "deosil" then + door_moved = rotate_door(door, 1) + elseif door.previous_move == "widdershins" then + door_moved = rotate_door(door, -1) + end + + if not door_moved then + if door.previous_move == "deosil" then + door.previous_move = "widdershins" + else + door.previous_move = "deosil" + end + end + end + + for _, door_node in pairs(door.all) do + minetest.set_node(door_node.pos, door_node.node) + minetest.get_meta(door_node.pos):set_string("previous_move", door.previous_move) + end + + if door_moved then + minetest.after(1, function() + castle_gates.trigger_gate(door.all[1].pos, door.all[1].node, player) + end) + end + end +end \ No newline at end of file diff --git a/games/default/files/Decorations/castle_gates/gates.lua b/games/default/files/Decorations/castle_gates/gates.lua new file mode 100644 index 000000000..5890d2174 --- /dev/null +++ b/games/default/files/Decorations/castle_gates/gates.lua @@ -0,0 +1,112 @@ +-- internationalization boilerplate +local MP = minetest.get_modpath(minetest.get_current_modname()) +local S, NS = dofile(MP.."/intllib.lua") + +color1 = minetest.setting_get("color1") or "292421" +color2 = minetest.setting_get("color2") or "0000FF" +color3 = minetest.setting_get("color3") or "00FF00" +color4 = minetest.setting_get("color4") or "F5F5F5" +color5 = minetest.setting_get("color5") or "FF6103" +color6 = minetest.setting_get("color6") or "FF0000" +color7 = minetest.setting_get("color7") or "FFFF00" +color8 = minetest.setting_get("color8") or "FF69B4" + +local source_list = { + {"black", "Color1", color1, 40, 36, 33}, + {"blue", "Color2", color2, 0, 0, 255}, + {"green", "Color3", color3, 0, 255, 0}, + {"white", "Color4", color4, 245, 245, 245}, + {"orange", "Color5", color5, 255, 97, 3}, + {"red", "Color6", color6, 255, 0, 0}, + {"yellow", "Color7", color7, 255, 255, 0}, + {"pink", "Color8", color8, 255, 105, 180} +} + +for i in ipairs(source_list) do + local color = source_list[i][1] + local desc = source_list[i][2] + local colour = source_list[i][3] + local red = source_list[i][4] + local green = source_list[i][5] + local blue = source_list[i][6] + +-- Herse + +minetest.register_node("castle_gates:herse" .. color, { + drawtype = "nodebox", + description = S("Portcullis Bars"), + groups = {castle_gate = 1, choppy = 1, flow_through = 1}, + wield_image = "color_handwhite.png^(color_handwhite2.png^[colorize:#"..colour..":70)", + wield_scale = {x=1,y=1,z=0.5}, + inventory_image = "cgherse.png^[colorize:#"..colour..":70", + tiles = {"color_white.png^[colorize:#"..colour..":70"}, + sounds = default.node_sound_wood_defaults(), + paramtype = "light", + paramtype2 = "facedir", + node_box = { + type = "fixed", + fixed = { + {-0.125, -0.5, -0.5, 0.125, 0.5, -0.25}, -- middle bar + {-0.5, -0.5, -0.5, -0.375, 0.5, -0.25}, -- side bar + {0.375, -0.5, -0.5, 0.5, 0.5, -0.25}, -- side bar + {-0.375, 0.1875, -0.4375, 0.375, 0.3125, -0.3125}, -- crosspiece + {-0.375, -0.3125, -0.4375, 0.375, -0.1875, -0.3125}, -- crosspiece + } + }, + on_rightclick = castle_gates.trigger_gate, +}) + +-- Door + +minetest.register_node("castle_gates:door" ..color ,{ + drawtype = "nodebox", + description = S("Gate Door Edge"), + groups = {choppy = 1, castle_gate = 1}, + wield_image = "color_handwhite.png^(color_handwhite2.png^[colorize:#"..colour..":70)", + wield_scale = {x=1,y=1,z=0.5}, + inventory_image = "cgdoor.png^[colorize:#"..colour..":70", + tiles = {"color_white.png^[colorize:#"..colour..":70"}, + sounds = default.node_sound_wood_defaults(), + paramtype = "light", + paramtype2 = "facedir", + node_box = { + type = "fixed", + fixed = { + {-0.5, -0.5, -0.5, 0.5, 0.5, -0.25}, + } + }, + _gate_edges = {right=true}, + on_rightclick = castle_gates.trigger_gate, +}) + + +-- Border Door + +minetest.register_node("castle_gates:border" ..color , { + drawtype = "nodebox", + description = S("Gate Door With Hinge"), + wield_image = "color_handwhite.png^(color_handwhite2.png^[colorize:#"..colour..":70)", + wield_scale = {x=1,y=1,z=0.5}, + inventory_image = "cgborder.png^[colorize:#"..colour..":70", + tiles = {"color_white.png^[colorize:#"..colour..":70"}, + sounds = default.node_sound_wood_defaults(), + paramtype = "light", + paramtype2 = "facedir", + groups = {choppy = 1, castle_gate = 1}, + node_box = { + type = "fixed", + fixed = { + {-0.5, -0.5, -0.5, 0.5, 0.5, -0.25}, + {-10/16, -4/16, -10/16, -6/16, 4/16, -6/16}, + } + }, + collision_box = { + type = "fixed", + fixed = {-0.5, -0.5, -0.5, 0.5, 0.5, -0.25}, + }, + + _gate_hinge = {axis="top", offset={"front","left"}}, + on_rightclick = castle_gates.trigger_gate, +}) + +end diff --git a/games/default/files/Decorations/castle_gates/init.lua b/games/default/files/Decorations/castle_gates/init.lua new file mode 100644 index 000000000..6ca881cff --- /dev/null +++ b/games/default/files/Decorations/castle_gates/init.lua @@ -0,0 +1,6 @@ +castle_gates = {} + +local modpath = minetest.get_modpath(minetest.get_current_modname()) +dofile(modpath.."/gate_functions.lua") +dofile(modpath.."/gates.lua") + diff --git a/games/default/files/Decorations/castle_gates/intllib.lua b/games/default/files/Decorations/castle_gates/intllib.lua new file mode 100644 index 000000000..6669d7202 --- /dev/null +++ b/games/default/files/Decorations/castle_gates/intllib.lua @@ -0,0 +1,45 @@ + +-- Fallback functions for when `intllib` is not installed. +-- Code released under Unlicense . + +-- Get the latest version of this file at: +-- https://raw.githubusercontent.com/minetest-mods/intllib/master/lib/intllib.lua + +local function format(str, ...) + local args = { ... } + local function repl(escape, open, num, close) + if escape == "" then + local replacement = tostring(args[tonumber(num)]) + if open == "" then + replacement = replacement..close + end + return replacement + else + return "@"..open..num..close + end + end + return (str:gsub("(@?)@(%(?)(%d+)(%)?)", repl)) +end + +local gettext, ngettext +if minetest.get_modpath("intllib") then + if intllib.make_gettext_pair then + -- New method using gettext. + gettext, ngettext = intllib.make_gettext_pair() + else + -- Old method using text files. + gettext = intllib.Getter() + end +end + +-- Fill in missing functions. + +gettext = gettext or function(msgid, ...) + return format(msgid, ...) +end + +ngettext = ngettext or function(msgid, msgid_plural, n, ...) + return format(n==1 and msgid or msgid_plural, ...) +end + +return gettext, ngettext diff --git a/games/default/files/Decorations/castle_gates/locale/es.po b/games/default/files/Decorations/castle_gates/locale/es.po new file mode 100644 index 000000000..c10216148 --- /dev/null +++ b/games/default/files/Decorations/castle_gates/locale/es.po @@ -0,0 +1,261 @@ +#, fuzzy +msgid "" +msgstr "" +"Project-Id-Version: PACKAGE VERSION\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2017-03-01 23:41-0700\n" +"PO-Revision-Date: 2017-04-28 11:56-0400\n" +"Last-Translator: Carlos Barraza\n" +"Language-Team: LANGUAGE \n" +"Language: Español\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=CHARSET\n" +"Content-Transfer-Encoding: 8bit\n" + +#: doc.lua:11 +msgid "Heavy wooden bars designed to prevent entry even to siege equipment." +msgstr "" +"Barras de madera pesadas diseñadas para evitar la entrada incluso a equipo de " +"asedio" + +#: doc.lua:12 +msgid "" +"Place these bars in a structure together and they will slide as a unified " +"gate when clicked on." +msgstr "" +"Coloque estas barras en una estructura juntas y se deslizarán como si " +"estuvieran unidas cuando se le hace clic" + +#: doc.lua:14 +msgid "" +"The bottom edge of a portcullis gate, with knobs to lock securely into the " +"floor." +msgstr "" +"Es el borde inferior de una puerta rastrillo, con perillas para bloquearla con " +"seguridad en el piso" + +#: doc.lua:15 +msgid "" +"This block can be used to define the edge of a portcullius that meets up " +"with another gate, should you have an arrangement like that. Otherwise it's " +"just decorative." +msgstr "" +"Este bloque puede ser usado para definir el borde de una puerta rastrillo " +"que esta cerca de otra puerta, si tiene varias puertas independientes, " +"de lo contrario es simplemente decorativo" + +#: doc.lua:17 +msgid "A basic gate panel." +msgstr "Un panel básico de puerta" + +#: doc.lua:18 +msgid "" +"This gate segment will move in unison with adjoining gate segments when " +"right-clicked." +msgstr "" +"Este segmento de puerta se moverá junto con los demas segmentos de puerta " +"adyacente cuando se haga clic con el botón derecho del ratón" + +#: doc.lua:20 +msgid "A gate panel with a defined edge." +msgstr "Un panel de puerta con un borde." + +#: doc.lua:21 +msgid "" +"The darkened edge of this panel marks the edge of the gate it's a part of. " +"You can use these when building double doors to ensure the two parts swing " +"separately, for example. Note that edges aren't strictly necessary for gates " +"that stand alone." +msgstr "" +"El borde oscurecido de este panel marca el limite de la puerta." +"Usted puede utilizar estos bloques para construir puertas dobles para asegurar " +"que las dos puertas funcionen por separado, por ejemplo. Tenga en cuenta que " +"los bordes no son estrictamente necesarios para las puertas individuales" + +#: doc.lua:23 +msgid "A gate edge with a handle." +msgstr "Un panel de puerta con pestillo" + +#: doc.lua:24 +msgid "" +"The handle is basically decorative, a door this size can be swung by " +"clicking anywhere on it. But the darkened edge of this panel is useful for " +"defining the edge of a gate when it abuts a partner to the side." +msgstr "" +"El pestillo es básicamente decorativo, una puerta de este tamaño se puede " +"abrir haciendo clic en cualquier parte de ella. Pero el borde oscuro de este " +"panel es útil para definir el borde de la puerta cuando hay otra puerta al " +"lado." + +#: doc.lua:26 +msgid "A hinged gate segment that allows a gate to swing." +msgstr "Un segmento de puerta con bisagra permite que la puerta se abra." + +#: doc.lua:27 +msgid "" +"If you have more than one hinge in your gate, make sure the hinges line up " +"correctly otherwise the gate will not be able to swing. The hinge is the " +"protruding block along the edge of the gate panel." +msgstr "" +"Si tiene más de una bisagra en su puerta, asegúrese de que las bisagras se " +"alineen correctamente, de lo contrario la puerta no será capaz de abrirse. " +"la bisagra es el bloque sobresaliente a lo largo del borde del panel de la " +"puerta." + +#: doc.lua:29 +msgid "A block with a slot to allow an adjacent sliding gate through." +msgstr "" +"Un bloque con una ranura en el medio para que una puerta deslizante pueda " +"pasar a través de ella." + +#: doc.lua:30 +msgid "" +"This block is designed to extend into a neighboring node that a sliding gate " +"passes through, to provide a tight seal for the gate to move through without " +"allowing anything else to squeeze in." +msgstr "" +"Este bloque está diseñado para un nodo pueda deslizarse a travéz de este, para " +"proporcionar un cierre hermético que solo deja pasar la puerta sin permitir " +"entrar nada mas." + +#: doc.lua:32 +msgid "" +"A block that extends into an adjacent node to provide a tight seal for a " +"large gate." +msgstr "" +"Un bloque con una ranura en el lado para que una puerta deslizante pueda " +"pasar a través de ella." + +#: doc.lua:33 +msgid "" +"Two nodes cannot occupy the same space, but this block extends into a " +"neighboring node's space to allow for gates to form a tight seal. It can be " +"used with sliding gates or swinging gates." +msgstr "" +"Dos nodos no pueden utilizar el mismo espacio, pero este nodo se extiende al " +"espacio de un nodo vecino para permitir que las puertas formen un cierre " +"hermético. Puede utilizarse con puertas deslizantes y con las puertas que se " +"abren rotando." + +#: doc.lua:37 +msgid "Gates" +msgstr "Puertas" + +#: doc.lua:38 +msgid "" +"Gates are large multi-node constructions that swing on hinges or slide out " +"of the way when triggered." +msgstr "" +"Las puertas grandes son construcciones multi nodo que se abren usando bisagras " +"o se deslizan hacia arriba cuando se activan" + +#: doc.lua:43 +msgid "Gate construction" +msgstr "Construcción de Puertas" + +#: doc.lua:45 +msgid "" +"Gates are multi-node constructions, usually (though not always) consisting " +"of multiple node types that fit together into a unified whole. The " +"orientation of gate nodes is significant, so a screwdriver will be a helpful " +"tool when constructing gates.\n" +"\n" +"A gate's extent is determined by a \"flood fill\" operation. When you " +"trigger a gate block, all compatible neighboring blocks will be considered " +"part of the same structure and will move in unison. Only gate blocks that " +"are aligned with each other will be considered part of the same gate. If you " +"wish to build adjoining gates (for example, a large pair of double doors " +"that meet in the center) you'll need to make use of gate edge blocks to " +"prevent it all from being considered one big door. Note that if your gate " +"does not abut any other gates you don't actually need to define its edges " +"this way - you don't have to use edge blocks in this case.\n" +"\n" +"If a gate has no hinge nodes it will be considered a sliding gate. When " +"triggered, the gate code will search for a direction that the gate can slide " +"in and will move it in that direction at a rate of one block-length per " +"second. Once it reaches an obstruction it will stop, and when triggered " +"again it will try sliding in the opposite direction.\n" +"\n" +"If a gate has hinge nodes then triggering it will cause the gate to try " +"swinging around the hinge. If the gate has multiple hinges and they don't " +"line up properly the gate will be unable to move. Note that the gate can " +"only exist in 90-degree increments of orientation, but the gate still looks " +"for obstructions in the region it is swinging through and will not swing if " +"there's something in the way." +msgstr "" +"Las puertas son generalmente construcciones multi nodo (aunque no siempre), " +"que consisten de múltiples tipos de nodos que se acomodan en un todo " +"unificado. La orientación de los nodos de la puerta es importante, por lo que " +"un destornillador será útil para construir las puertas.\n" +"\n" +"La extención de una puerta se determina mediante una operación de \"Llenado de " +"Inundación\". Al activar un bloque de la puerta, todos los bloques vecinos " +"compatibles se considerán parte de la misma estructura y se moveran al unísono. " +"Sólo los bloques de compuerta que estén alineados entre sí se considerarán " +"parte de la misma puerta. Si desea construir puertas adyacentes (por ejemplo, " +"un gran par de puertas dobles que se abran en el centro) tendrá que hacer uso " +"de bloques de borde de puerta para evitar que todo sea considerado solo una " +"gran puerta. Tenga en cuenta que si su puerta no se apoya en ninguna otra " +"puerta, no necesita usar los bordes de puerta en este caso.\n" +"\n" +"Si una puerta no tiene nodos de bisagra se considerará una puerta deslizante. " +"Cuando se ejecuta el codigo de la puerta buscará una dirección en la que la " +"puerta pueda deslizarse y se moverá en esa dirección a una velocidad de un " +"bloque por segundo. Una vez que llega a una obstrucción se detendrá, y cuando " +"se ejecute de nuevo tratará de deslizarse en la dirección opuesta.\n" +"\n" +"Si una puerta tiene nodos de bisagra, entonces al activar la puerta tratara de " +"girar al rededor de la bisagra. Si la puerta tiene bisagras múltiples y no " +"estan bien alineadas, la puerta no podrá moverse. Tenga en cuenta que la " +"puerta sólo puede existir en incrementos de 90 grados de orientación, pero la " +"puerta todavía busca obstrucciones en la región que está moviéndose y no " +"girara si hay algo en el camino." + + +#: doors.lua:8 +msgid "Oak Door" +msgstr "Puerta de Roble" + +#: doors.lua:22 +msgid "Jail Door" +msgstr "Puerta de Cárcel" + +#: doors.lua:43 +msgid "Jail Bars" +msgstr "" + +#: gate_slots.lua:36 +msgid "Stonebrick" +msgstr "Ladrillo de Piedra" + +#: gate_slots.lua:45 +msgid "@1 Gate Slot" +msgstr "Espacio para Puerta de @1" + +#: gate_slots.lua:70 +msgid "@1 Gate Slot Reverse" +msgstr "Espacio para Puerta Invertido de @1" + +#: gates.lua:7 +msgid "Portcullis Bars" +msgstr "Barras de la Puerta Rastrillo" + +#: gates.lua:37 +msgid "Portcullis Bottom" +msgstr "Terminación de la Puerta Rastrillo" + +#: gates.lua:104 +msgid "Gate Door" +msgstr "Porción de la Puerta" + +#: gates.lua:136 +msgid "Gate Door Edge" +msgstr "Borde de la Puerta" + +#: gates.lua:175 +msgid "Gate Door With Handle" +msgstr "Pestillo de la Puerta" + +#: gates.lua:218 +msgid "Gate Door With Hinge" +msgstr "Bisagra de la Puerta" diff --git a/games/default/files/Decorations/castle_gates/locale/it.po b/games/default/files/Decorations/castle_gates/locale/it.po new file mode 100644 index 000000000..8b5a1696c --- /dev/null +++ b/games/default/files/Decorations/castle_gates/locale/it.po @@ -0,0 +1,274 @@ +# ITALIAN LOCALE FILE FOR THE CASTLE GATES MODULE +# Copyright (C) 2017 Philipbenr And DanDuncombe +# This file is distributed under the same license as the CASTLE GATES package. +# Hamlet , 2017. +# +msgid "" +msgstr "" +"Project-Id-Version: Castle Gates\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2017-03-01 23:41-0700\n" +"PO-Revision-Date: 2017-09-26 23:51+0100\n" +"Last-Translator: Hamlet \n" +"Language-Team: \n" +"Language: it\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" +"X-Generator: Poedit 1.6.10\n" + +#: doc.lua:11 +msgid "Heavy wooden bars designed to prevent entry even to siege equipment." +msgstr "" +"Pesanti sbarre di legno progettate per impedire l'accesso perfino " +"all'equipaggiamento da assedio." + +#: doc.lua:12 +msgid "" +"Place these bars in a structure together and they will slide as a unified " +"gate when clicked on." +msgstr "" +"Componete una struttura mettendo insieme queste sbarre ed esse scorreranno " +"come un'unica saracinesca quando ci si cliccherà sopra." + +#: doc.lua:14 +msgid "" +"The bottom edge of a portcullis gate, with knobs to lock securely into the " +"floor." +msgstr "" +"La parte inferiore di una saracinesca, con puntali per bloccarsi saldamente " +"nel pavimento." + +#: doc.lua:15 +msgid "" +"This block can be used to define the edge of a portcullius that meets up " +"with another gate, should you have an arrangement like that. Otherwise it's " +"just decorative." +msgstr "" +"Questo blocco può essere usato per definire l'estremità di una saracinesca " +"che si incontra con un'altra, se doveste avere una tale disposizione. " +"Altrimenti è solo decorativo." + +#: doc.lua:17 +msgid "A basic gate panel." +msgstr "Un pannello di base per cancelli, porte e portoni." + +#: doc.lua:18 +msgid "" +"This gate segment will move in unison with adjoining gate segments when " +"right-clicked." +msgstr "" +"Questo segmento si muoverà all'unisono con altri segmenti adiacenti quando " +"cliccato col tasto destro." + +#: doc.lua:20 +msgid "A gate panel with a defined edge." +msgstr "" +"Un pannello per cancelli, porte e portoni avente un'estremità definita." + +#: doc.lua:21 +msgid "" +"The darkened edge of this panel marks the edge of the gate it's a part of. " +"You can use these when building double doors to ensure the two parts swing " +"separately, for example. Note that edges aren't strictly necessary for gates " +"that stand alone." +msgstr "" +"L'estremità annerita di questo pannello contrassegna il bordo del cancello, " +"porta o portone di cui fa parte. Per esempio potete usarla quando costruite " +"doppi battenti per assicurarvi che le due parti ruotino separatamente. Si " +"noti che queste estremità non sono strettamente necessarie per cancelli, " +"porte e portoni a battente singolo." + +#: doc.lua:23 +msgid "A gate edge with a handle." +msgstr "Una estremità di cancello, porta o portone con una maniglia." + +#: doc.lua:24 +msgid "" +"The handle is basically decorative, a door this size can be swung by " +"clicking anywhere on it. But the darkened edge of this panel is useful for " +"defining the edge of a gate when it abuts a partner to the side." +msgstr "" +"Fondamentalmente la maniglia è decorativa, un cancello o porta di queste " +"dimensioni possono essere aperti cliccando un punto qualunque su di essi. Ma " +"il bordo annerito di questo pannello è utile per stabilire la fine di un " +"battente quando confina con un altro." + +#: doc.lua:26 +msgid "A hinged gate segment that allows a gate to swing." +msgstr "" +"Un segmento di cancello, porta o portone provvisto di un cardine che ne " +"consente la rotazione." + +#: doc.lua:27 +msgid "" +"If you have more than one hinge in your gate, make sure the hinges line up " +"correctly otherwise the gate will not be able to swing. The hinge is the " +"protruding block along the edge of the gate panel." +msgstr "" +"Se avete più di un cardine nel vostro cancello, porta o portone, accertatevi " +"che siano allineati correttamente altrimenti non potrà ruotare. Il cardine è " +"la protuberanza lungo il bordo del pannello." + +#: doc.lua:29 +msgid "A block with a slot to allow an adjacent sliding gate through." +msgstr "" +"Un blocco provvisto di una fessura per consentire a una porta scorrevole di " +"scivolarci attraverso." + +#: doc.lua:30 +msgid "" +"This block is designed to extend into a neighboring node that a sliding gate " +"passes through, to provide a tight seal for the gate to move through without " +"allowing anything else to squeeze in." +msgstr "" +"Questo blocco è progettato per estendersi in un nodo vicino attraverso cui " +"scivoli una porta scorrevole, per fornire una chiusura ermetica alla porta o " +"saracinesca che gli passa attraverso senza permettere a niente altro di " +"intrufolarvisi." + +#: doc.lua:32 +msgid "" +"A block that extends into an adjacent node to provide a tight seal for a " +"large gate." +msgstr "" +"Un blocco che si estende in un nodo adiacente per fornire una chiusura " +"ermetica per un portone." + +#: doc.lua:33 +msgid "" +"Two nodes cannot occupy the same space, but this block extends into a " +"neighboring node's space to allow for gates to form a tight seal. It can be " +"used with sliding gates or swinging gates." +msgstr "" +"Due nodi non possono occupare lo stesso spazio, ma questo blocco si estende " +"nello spazio di un nodo vicino per consentire a cancelli, porte, portoni e " +"saracinesche di formare una chiusura ermetica. Può essere usato con porte " +"scorrevoli o a rotazione." + +#: doc.lua:37 +msgid "Gates" +msgstr "Cancelli, porte, portoni e saracinesche" + +#: doc.lua:38 +msgid "" +"Gates are large multi-node constructions that swing on hinges or slide out " +"of the way when triggered." +msgstr "" +"Cancelli, porte, portoni e saracinesche sono costruzioni multi-nodo che " +"quando vengono attivate ruotano su dei cardini o scivolano via." + +#: doc.lua:43 +msgid "Gate construction" +msgstr "Costruzione di cancelli, porte, portoni e saracinesche" + +#: doc.lua:45 +msgid "" +"Gates are multi-node constructions, usually (though not always) consisting " +"of multiple node types that fit together into a unified whole. The " +"orientation of gate nodes is significant, so a screwdriver will be a helpful " +"tool when constructing gates.\n" +"\n" +"A gate's extent is determined by a \"flood fill\" operation. When you " +"trigger a gate block, all compatible neighboring blocks will be considered " +"part of the same structure and will move in unison. Only gate blocks that " +"are aligned with each other will be considered part of the same gate. If you " +"wish to build adjoining gates (for example, a large pair of double doors " +"that meet in the center) you'll need to make use of gate edge blocks to " +"prevent it all from being considered one big door. Note that if your gate " +"does not abut any other gates you don't actually need to define its edges " +"this way - you don't have to use edge blocks in this case.\n" +"\n" +"If a gate has no hinge nodes it will be considered a sliding gate. When " +"triggered, the gate code will search for a direction that the gate can slide " +"in and will move it in that direction at a rate of one block-length per " +"second. Once it reaches an obstruction it will stop, and when triggered " +"again it will try sliding in the opposite direction.\n" +"\n" +"If a gate has hinge nodes then triggering it will cause the gate to try " +"swinging around the hinge. If the gate has multiple hinges and they don't " +"line up properly the gate will be unable to move. Note that the gate can " +"only exist in 90-degree increments of orientation, but the gate still looks " +"for obstructions in the region it is swinging through and will not swing if " +"there's something in the way." +msgstr "" +"Cancelli, porte, portoni e saracinesche sono costruzioni multi-nodo, di " +"solito (anche se non sempre) costituite da molteplici tipi di nodi che si " +"uniscono in un tutt'uno. L'orientamento è importante, perciò un cacciavite " +"sarà uno strumento utile quando si costruiscono cancelli, porte, ecc.\n" +"\n" +"L'estensione di cancelli e simili è stabilita da un'operazione \"flood fill" +"\" (allagamento riempitivo). Quando attivate un blocco di cancello, tutte le " +"parti limitrofe compatibili verranno considerate parte della stessa " +"struttura e si muoveranno all'unisono. Solamente i blocchi che sono " +"allineati l'un l'altro saranno considerati come parte dello stesso cancello. " +"Se desiderate costruire cancelli confinanti (per esempio, un paio di grossi " +"battenti che si incontrano nel mezzo) dovrete fare uso dei blocchi-estremità " +"per impedire che il tutto sia considerato come un'unica grossa porta. Si " +"noti che se il vostro cancello non confina con nessun altro non avete la " +"necessità di definirne le estremità in questo modo - in questo caso non è " +"necessario che usiate blocchi-estremità.\n" +"\n" +"Se un cancello, ecc. non ha nodi coi cardini sarà considerato come " +"scorrevole. Quando attivato, il programma del cancello cercherà una " +"direzione in cui possa scivolare e lo muoverà in quella direzione al passo " +"della distanza di un nodo al secondo. Quando raggiungerà un ostacolo si " +"fermerà, e quando attivato ancora tenterà di scorrere nella direzione " +"opposta.\n" +"\n" +"Se un cancello, ecc. ha dei nodi coi cardini, attivandolo lo si farà ruotare " +"attorno al cardine. Se il cancello ha più cardini e questi non sono " +"allineati correttamente non riuscirà a muoversi. Si noti che il cancello può " +"svilupparsi solo in incrementi di 90° di orientamento, e controllerà la " +"presenza di ostacoli nella zona in cui ruota e non ruoterà se c'è qualcosa " +"di mezzo." + +#: doors.lua:8 +msgid "Oak Door" +msgstr "Porta di quercia" + +#: doors.lua:22 +msgid "Jail Door" +msgstr "Porta della prigione" + +#: doors.lua:43 +msgid "Jail Bars" +msgstr "Sbarre della prigione" + +#: gate_slots.lua:36 +msgid "Stonebrick" +msgstr "Mattoni di pietra" + +#: gate_slots.lua:45 +msgid "@1 Gate Slot" +msgstr "Alloggio di @1 per cancelli, porte, portoni e saracinesche" + +#: gate_slots.lua:70 +msgid "@1 Gate Slot Reverse" +msgstr "" +"Rovescio dell'alloggio di @1 per cancelli, porte, portoni e saracinesche." + +#: gates.lua:7 +msgid "Portcullis Bars" +msgstr "Sbarre della saracinesca" + +#: gates.lua:37 +msgid "Portcullis Bottom" +msgstr "Estremità inferiore della saracinesca" + +#: gates.lua:104 +msgid "Gate Door" +msgstr "Segmento di cancello, porta o portone" + +#: gates.lua:136 +msgid "Gate Door Edge" +msgstr "Estremità di cancello, porta o portone" + +#: gates.lua:175 +msgid "Gate Door With Handle" +msgstr "Cancello, porta o portone con maniglia" + +#: gates.lua:218 +msgid "Gate Door With Hinge" +msgstr "Cancello, porta o portone con cardine" diff --git a/games/default/files/Decorations/castle_gates/locale/template.pot b/games/default/files/Decorations/castle_gates/locale/template.pot new file mode 100644 index 000000000..2122c17de --- /dev/null +++ b/games/default/files/Decorations/castle_gates/locale/template.pot @@ -0,0 +1,202 @@ +# SOME DESCRIPTIVE TITLE. +# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER +# This file is distributed under the same license as the PACKAGE package. +# FIRST AUTHOR , YEAR. +# +#, fuzzy +msgid "" +msgstr "" +"Project-Id-Version: PACKAGE VERSION\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2017-03-01 23:41-0700\n" +"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" +"Last-Translator: FULL NAME \n" +"Language-Team: LANGUAGE \n" +"Language: \n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=CHARSET\n" +"Content-Transfer-Encoding: 8bit\n" + +#: doc.lua:11 +msgid "Heavy wooden bars designed to prevent entry even to siege equipment." +msgstr "" + +#: doc.lua:12 +msgid "" +"Place these bars in a structure together and they will slide as a unified " +"gate when clicked on." +msgstr "" + +#: doc.lua:14 +msgid "" +"The bottom edge of a portcullis gate, with knobs to lock securely into the " +"floor." +msgstr "" + +#: doc.lua:15 +msgid "" +"This block can be used to define the edge of a portcullius that meets up " +"with another gate, should you have an arrangement like that. Otherwise it's " +"just decorative." +msgstr "" + +#: doc.lua:17 +msgid "A basic gate panel." +msgstr "" + +#: doc.lua:18 +msgid "" +"This gate segment will move in unison with adjoining gate segments when " +"right-clicked." +msgstr "" + +#: doc.lua:20 +msgid "A gate panel with a defined edge." +msgstr "" + +#: doc.lua:21 +msgid "" +"The darkened edge of this panel marks the edge of the gate it's a part of. " +"You can use these when building double doors to ensure the two parts swing " +"separately, for example. Note that edges aren't strictly necessary for gates " +"that stand alone." +msgstr "" + +#: doc.lua:23 +msgid "A gate edge with a handle." +msgstr "" + +#: doc.lua:24 +msgid "" +"The handle is basically decorative, a door this size can be swung by " +"clicking anywhere on it. But the darkened edge of this panel is useful for " +"defining the edge of a gate when it abuts a partner to the side." +msgstr "" + +#: doc.lua:26 +msgid "A hinged gate segment that allows a gate to swing." +msgstr "" + +#: doc.lua:27 +msgid "" +"If you have more than one hinge in your gate, make sure the hinges line up " +"correctly otherwise the gate will not be able to swing. The hinge is the " +"protruding block along the edge of the gate panel." +msgstr "" + +#: doc.lua:29 +msgid "A block with a slot to allow an adjacent sliding gate through." +msgstr "" + +#: doc.lua:30 +msgid "" +"This block is designed to extend into a neighboring node that a sliding gate " +"passes through, to provide a tight seal for the gate to move through without " +"allowing anything else to squeeze in." +msgstr "" + +#: doc.lua:32 +msgid "" +"A block that extends into an adjacent node to provide a tight seal for a " +"large gate." +msgstr "" + +#: doc.lua:33 +msgid "" +"Two nodes cannot occupy the same space, but this block extends into a " +"neighboring node's space to allow for gates to form a tight seal. It can be " +"used with sliding gates or swinging gates." +msgstr "" + +#: doc.lua:37 +msgid "Gates" +msgstr "" + +#: doc.lua:38 +msgid "" +"Gates are large multi-node constructions that swing on hinges or slide out " +"of the way when triggered." +msgstr "" + +#: doc.lua:43 +msgid "Gate construction" +msgstr "" + +#: doc.lua:45 +msgid "" +"Gates are multi-node constructions, usually (though not always) consisting " +"of multiple node types that fit together into a unified whole. The " +"orientation of gate nodes is significant, so a screwdriver will be a helpful " +"tool when constructing gates.\n" +"\n" +"A gate's extent is determined by a \"flood fill\" operation. When you " +"trigger a gate block, all compatible neighboring blocks will be considered " +"part of the same structure and will move in unison. Only gate blocks that " +"are aligned with each other will be considered part of the same gate. If you " +"wish to build adjoining gates (for example, a large pair of double doors " +"that meet in the center) you'll need to make use of gate edge blocks to " +"prevent it all from being considered one big door. Note that if your gate " +"does not abut any other gates you don't actually need to define its edges " +"this way - you don't have to use edge blocks in this case.\n" +"\n" +"If a gate has no hinge nodes it will be considered a sliding gate. When " +"triggered, the gate code will search for a direction that the gate can slide " +"in and will move it in that direction at a rate of one block-length per " +"second. Once it reaches an obstruction it will stop, and when triggered " +"again it will try sliding in the opposite direction.\n" +"\n" +"If a gate has hinge nodes then triggering it will cause the gate to try " +"swinging around the hinge. If the gate has multiple hinges and they don't " +"line up properly the gate will be unable to move. Note that the gate can " +"only exist in 90-degree increments of orientation, but the gate still looks " +"for obstructions in the region it is swinging through and will not swing if " +"there's something in the way." +msgstr "" + +#: doors.lua:8 +msgid "Oak Door" +msgstr "" + +#: doors.lua:22 +msgid "Jail Door" +msgstr "" + +#: doors.lua:43 +msgid "Jail Bars" +msgstr "" + +#: gate_slots.lua:36 +msgid "Stonebrick" +msgstr "" + +#: gate_slots.lua:45 +msgid "@1 Gate Slot" +msgstr "" + +#: gate_slots.lua:70 +msgid "@1 Gate Slot Reverse" +msgstr "" + +#: gates.lua:7 +msgid "Portcullis Bars" +msgstr "" + +#: gates.lua:37 +msgid "Portcullis Bottom" +msgstr "" + +#: gates.lua:104 +msgid "Gate Door" +msgstr "" + +#: gates.lua:136 +msgid "Gate Door Edge" +msgstr "" + +#: gates.lua:175 +msgid "Gate Door With Handle" +msgstr "" + +#: gates.lua:218 +msgid "Gate Door With Hinge" +msgstr "" diff --git a/games/default/files/Decorations/castle_gates/mod.conf b/games/default/files/Decorations/castle_gates/mod.conf new file mode 100644 index 000000000..1ad7f80e4 --- /dev/null +++ b/games/default/files/Decorations/castle_gates/mod.conf @@ -0,0 +1 @@ +name = castle_gates diff --git a/games/default/files/Decorations/castle_gates/textures/LICENSE.txt b/games/default/files/Decorations/castle_gates/textures/LICENSE.txt new file mode 100644 index 000000000..38224f3d2 --- /dev/null +++ b/games/default/files/Decorations/castle_gates/textures/LICENSE.txt @@ -0,0 +1,11 @@ +16 px textures based on Castle mod +original textures by Philipner + +License Textures: Napiophelios - CC-BY-SA 3.0 + +-castle_door_jail.png +-castle_door_oak.png +-castle_jail_door_inv.png +-castle_jailbars.png +-castle_oak_door_inv.png +-castle_steel.png diff --git a/games/default/files/Decorations/castle_gates/textures/castle_door_edge_mask.png b/games/default/files/Decorations/castle_gates/textures/castle_door_edge_mask.png new file mode 100644 index 000000000..59ae96b9f Binary files /dev/null and b/games/default/files/Decorations/castle_gates/textures/castle_door_edge_mask.png differ diff --git a/games/default/files/Decorations/castle_gates/textures/castle_door_handle_mask.png b/games/default/files/Decorations/castle_gates/textures/castle_door_handle_mask.png new file mode 100644 index 000000000..6417aaf6f Binary files /dev/null and b/games/default/files/Decorations/castle_gates/textures/castle_door_handle_mask.png differ diff --git a/games/default/files/Decorations/castle_gates/textures/castle_door_jail.png b/games/default/files/Decorations/castle_gates/textures/castle_door_jail.png new file mode 100644 index 000000000..0d4f7bfd2 Binary files /dev/null and b/games/default/files/Decorations/castle_gates/textures/castle_door_jail.png differ diff --git a/games/default/files/Decorations/castle_gates/textures/castle_door_oak.png b/games/default/files/Decorations/castle_gates/textures/castle_door_oak.png new file mode 100644 index 000000000..2282fb221 Binary files /dev/null and b/games/default/files/Decorations/castle_gates/textures/castle_door_oak.png differ diff --git a/games/default/files/Decorations/castle_gates/textures/castle_door_side_mask.png b/games/default/files/Decorations/castle_gates/textures/castle_door_side_mask.png new file mode 100644 index 000000000..039803c01 Binary files /dev/null and b/games/default/files/Decorations/castle_gates/textures/castle_door_side_mask.png differ diff --git a/games/default/files/Decorations/castle_gates/textures/castle_jail_door_inv.png b/games/default/files/Decorations/castle_gates/textures/castle_jail_door_inv.png new file mode 100644 index 000000000..5121fb825 Binary files /dev/null and b/games/default/files/Decorations/castle_gates/textures/castle_jail_door_inv.png differ diff --git a/games/default/files/Decorations/castle_gates/textures/castle_jailbars.png b/games/default/files/Decorations/castle_gates/textures/castle_jailbars.png new file mode 100644 index 000000000..e2cc9119f Binary files /dev/null and b/games/default/files/Decorations/castle_gates/textures/castle_jailbars.png differ diff --git a/games/default/files/Decorations/castle_gates/textures/castle_oak_door_inv.png b/games/default/files/Decorations/castle_gates/textures/castle_oak_door_inv.png new file mode 100644 index 000000000..1122d51f8 Binary files /dev/null and b/games/default/files/Decorations/castle_gates/textures/castle_oak_door_inv.png differ diff --git a/games/default/files/Decorations/castle_gates/textures/castle_portcullis_mask.png b/games/default/files/Decorations/castle_gates/textures/castle_portcullis_mask.png new file mode 100644 index 000000000..ac5d8e240 Binary files /dev/null and b/games/default/files/Decorations/castle_gates/textures/castle_portcullis_mask.png differ diff --git a/games/default/files/Decorations/castle_gates/textures/castle_steel.png b/games/default/files/Decorations/castle_gates/textures/castle_steel.png new file mode 100644 index 000000000..28ecd602f Binary files /dev/null and b/games/default/files/Decorations/castle_gates/textures/castle_steel.png differ diff --git a/games/default/files/Decorations/castle_shields/LICENSE b/games/default/files/Decorations/castle_shields/LICENSE new file mode 100644 index 000000000..456d091e7 --- /dev/null +++ b/games/default/files/Decorations/castle_shields/LICENSE @@ -0,0 +1,21 @@ +The MIT License (MIT) + +Copyright (c) 2016 Minetest Mods Team + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. diff --git a/games/default/files/Decorations/castle_shields/README.txt b/games/default/files/Decorations/castle_shields/README.txt new file mode 100644 index 000000000..e2b85ce54 --- /dev/null +++ b/games/default/files/Decorations/castle_shields/README.txt @@ -0,0 +1,25 @@ +=-=-=-=-=-=-=-=-=-= + +Castles Mod +by: Philipbenr And DanDuncombe + +=-=-=-=-=-=-=-=-=-= + +Licence: MIT + +see: LICENSE + +=-=-=-=-=-=-=-=-=-= + +This mod adds decorative wall-mounted shields. It comes with three default shields, but it's very easy to mix and match the colours and patterns to generate additional shields for your server; see default_shields.lua for a good place to insert your own, or make use of the castle_shields.register_shield method in your own mods. + +The three default shields were defined thusly: + +castle_shields.register_shield("shield_1", "Mounted Shield", "red", "blue", "slash") +castle_shields.register_shield("shield_2", "Mounted Shield", "cyan", "yellow", "chevron") +castle_shields.register_shield("shield_3", "Mounted Shield", "grey", "green", "cross") + +The following colors are permitted: + "black", "blue", "brown", "cyan", "dark_green", "dark_grey", "green", "grey", "magenta", "orange", "pink", "red", "violet", "white", "yellow" +The following patterns are permitted: + "slash", "chevron", "cross" \ No newline at end of file diff --git a/games/default/files/Decorations/castle_shields/depends.txt b/games/default/files/Decorations/castle_shields/depends.txt new file mode 100644 index 000000000..6b3b8727a --- /dev/null +++ b/games/default/files/Decorations/castle_shields/depends.txt @@ -0,0 +1,3 @@ +default +color +intllib? diff --git a/games/default/files/Decorations/castle_shields/description.txt b/games/default/files/Decorations/castle_shields/description.txt new file mode 100644 index 000000000..8cd863086 --- /dev/null +++ b/games/default/files/Decorations/castle_shields/description.txt @@ -0,0 +1 @@ +Adds decorative wall shields diff --git a/games/default/files/Decorations/castle_shields/init.lua b/games/default/files/Decorations/castle_shields/init.lua new file mode 100644 index 000000000..67bb074a0 --- /dev/null +++ b/games/default/files/Decorations/castle_shields/init.lua @@ -0,0 +1,78 @@ +castle_shields = {} + +color1 = minetest.setting_get("color1") or "292421" +color2 = minetest.setting_get("color2") or "0000FF" +color3 = minetest.setting_get("color3") or "00FF00" +color4 = minetest.setting_get("color4") or "F5F5F5" +color5 = minetest.setting_get("color5") or "FF6103" +color6 = minetest.setting_get("color6") or "FF0000" +color7 = minetest.setting_get("color7") or "FFFF00" +color8 = minetest.setting_get("color8") or "FF69B4" + +local source_list = { + {"black", "Color1", color1, 40, 36, 33}, + {"blue", "Color2", color2, 0, 0, 255}, + {"green", "Color3", color3, 0, 255, 0}, + {"white", "Color4", color4, 245, 245, 245}, + {"orange", "Color5", color5, 255, 97, 3}, + {"red", "Color6", color6, 255, 0, 0}, + {"yellow", "Color7", color7, 255, 255, 0}, + {"pink", "Color8", color8, 255, 105, 180} +} + +for i in ipairs(source_list) do + local color = source_list[i][1] + local desc = source_list[i][2] + local colour = source_list[i][3] + local red = source_list[i][4] + local green = source_list[i][5] + local blue = source_list[i][6] + +-- internationalization boilerplate +local MP = minetest.get_modpath(minetest.get_current_modname()) +local S, NS = dofile(MP.."/intllib.lua") + +castle_shields.register_shield = function(name, desc, background_color, foreground_color, mask) + + local tile_side = "color_white.png^[colorize:#"..colour..":70" + local tile_front = "color_white.png^[colorize:#"..colour..":70^(color_black.png^[mask:castle_shield_mask_"..mask..".png)" + + + minetest.register_node(minetest.get_current_modname()..":"..name, { + description = desc, + tiles = {tile_side, tile_side, tile_side, tile_side, "color_black.png", tile_front}, + wield_image = "color_handwhite.png^(color_handwhite2.png^[colorize:#"..colour..":70)", + wield_scale = {x=1,y=1,z=0.5}, + inventory_image = "inv"..mask..".png^[colorize:#"..colour..":70", + drawtype="nodebox", + paramtype2 = "facedir", + paramtype = "light", + groups={cracky=3}, + sounds = default.node_sound_metal_defaults(), + node_box = { + type = "fixed", + fixed = { + {-0.500000,-0.125000,0.375000,0.500000,0.500000,0.500000}, + {-0.437500,-0.312500,0.375000,0.425000,0.500000,0.500000}, + {-0.312500,-0.437500,0.375000,0.312500,0.500000,0.500000}, + {-0.187500,-0.500000,0.375000,0.187500,0.500000,0.500000}, + }, + }, + selection_box = { + type = "fixed", + fixed = { + {-0.500000,-0.500000,0.375000,0.500000,0.500000,0.500000}, + }, + }, + }) + +-- method parameters are name, desc, background_color, foreground_color, pattern + +end + +castle_shields.register_shield("shield_slash" .. color, S("Mounted Shield"), color, "white", "slash") +castle_shields.register_shield("shield_chevron" .. color, S("Mounted Shield"), color, "white", "chevron") +castle_shields.register_shield("shield_cross" .. color, S("Mounted Shield"), color, "white", "cross") + + +end diff --git a/games/default/files/Decorations/castle_shields/intllib.lua b/games/default/files/Decorations/castle_shields/intllib.lua new file mode 100644 index 000000000..6669d7202 --- /dev/null +++ b/games/default/files/Decorations/castle_shields/intllib.lua @@ -0,0 +1,45 @@ + +-- Fallback functions for when `intllib` is not installed. +-- Code released under Unlicense . + +-- Get the latest version of this file at: +-- https://raw.githubusercontent.com/minetest-mods/intllib/master/lib/intllib.lua + +local function format(str, ...) + local args = { ... } + local function repl(escape, open, num, close) + if escape == "" then + local replacement = tostring(args[tonumber(num)]) + if open == "" then + replacement = replacement..close + end + return replacement + else + return "@"..open..num..close + end + end + return (str:gsub("(@?)@(%(?)(%d+)(%)?)", repl)) +end + +local gettext, ngettext +if minetest.get_modpath("intllib") then + if intllib.make_gettext_pair then + -- New method using gettext. + gettext, ngettext = intllib.make_gettext_pair() + else + -- Old method using text files. + gettext = intllib.Getter() + end +end + +-- Fill in missing functions. + +gettext = gettext or function(msgid, ...) + return format(msgid, ...) +end + +ngettext = ngettext or function(msgid, msgid_plural, n, ...) + return format(n==1 and msgid or msgid_plural, ...) +end + +return gettext, ngettext diff --git a/games/default/files/Decorations/castle_shields/locale/it.po b/games/default/files/Decorations/castle_shields/locale/it.po new file mode 100644 index 000000000..be3470916 --- /dev/null +++ b/games/default/files/Decorations/castle_shields/locale/it.po @@ -0,0 +1,23 @@ +# ITALIAN LOCALE FILE FOR THE CASTLE SHIELDS MODULE +# Copyright (C) 2017 Philipbenr And DanDuncombe +# This file is distributed under the same license as the CASTLE SHIELDS package. +# Hamlet , 2017. +# +msgid "" +msgstr "" +"Project-Id-Version: Castle Shields\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2017-02-25 14:47-0700\n" +"PO-Revision-Date: 2017-09-10 22:38+0100\n" +"Last-Translator: H4mlet \n" +"Language-Team: \n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" +"Language: it\n" +"X-Generator: Poedit 1.6.10\n" + +#: init.lua:6 init.lua:41 init.lua:75 +msgid "Mounted Shield" +msgstr "Scudo appeso" diff --git a/games/default/files/Decorations/castle_shields/locale/template.pot b/games/default/files/Decorations/castle_shields/locale/template.pot new file mode 100644 index 000000000..bfb347c7b --- /dev/null +++ b/games/default/files/Decorations/castle_shields/locale/template.pot @@ -0,0 +1,21 @@ +# SOME DESCRIPTIVE TITLE. +# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER +# This file is distributed under the same license as the PACKAGE package. +# FIRST AUTHOR , YEAR. +# +#, fuzzy +msgid "" +msgstr "" +"Project-Id-Version: PACKAGE VERSION\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2017-02-25 14:47-0700\n" +"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" +"Last-Translator: FULL NAME \n" +"Language-Team: LANGUAGE \n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=CHARSET\n" +"Content-Transfer-Encoding: 8bit\n" + +#: init.lua:6 init.lua:41 init.lua:75 +msgid "Mounted Shield" +msgstr "" diff --git a/games/default/files/Decorations/castle_shields/mod.conf b/games/default/files/Decorations/castle_shields/mod.conf new file mode 100644 index 000000000..5df74cc75 --- /dev/null +++ b/games/default/files/Decorations/castle_shields/mod.conf @@ -0,0 +1 @@ +name = castle_shields diff --git a/games/default/files/Decorations/castle_shields/textures/castle_shield_mask_chevron.png b/games/default/files/Decorations/castle_shields/textures/castle_shield_mask_chevron.png new file mode 100644 index 000000000..59ffa37ff Binary files /dev/null and b/games/default/files/Decorations/castle_shields/textures/castle_shield_mask_chevron.png differ diff --git a/games/default/files/Decorations/castle_shields/textures/castle_shield_mask_cross.png b/games/default/files/Decorations/castle_shields/textures/castle_shield_mask_cross.png new file mode 100644 index 000000000..a032ef479 Binary files /dev/null and b/games/default/files/Decorations/castle_shields/textures/castle_shield_mask_cross.png differ diff --git a/games/default/files/Decorations/castle_shields/textures/castle_shield_mask_slash.png b/games/default/files/Decorations/castle_shields/textures/castle_shield_mask_slash.png new file mode 100644 index 000000000..1bd11748a Binary files /dev/null and b/games/default/files/Decorations/castle_shields/textures/castle_shield_mask_slash.png differ diff --git a/games/default/files/Decorations/castle_shields/textures/none.png b/games/default/files/Decorations/castle_shields/textures/none.png new file mode 100644 index 000000000..07f7b0e2b Binary files /dev/null and b/games/default/files/Decorations/castle_shields/textures/none.png differ diff --git a/games/default/files/Decorations/castle_shields/textures/shieldchevron.png b/games/default/files/Decorations/castle_shields/textures/shieldchevron.png new file mode 100644 index 000000000..d969a8af5 Binary files /dev/null and b/games/default/files/Decorations/castle_shields/textures/shieldchevron.png differ diff --git a/games/default/files/Decorations/castle_shields/textures/shieldcross.png b/games/default/files/Decorations/castle_shields/textures/shieldcross.png new file mode 100644 index 000000000..67cd40b9e Binary files /dev/null and b/games/default/files/Decorations/castle_shields/textures/shieldcross.png differ diff --git a/games/default/files/Decorations/castle_shields/textures/shieldslash.png b/games/default/files/Decorations/castle_shields/textures/shieldslash.png new file mode 100644 index 000000000..9b5a88417 Binary files /dev/null and b/games/default/files/Decorations/castle_shields/textures/shieldslash.png differ diff --git a/games/default/files/Decorations/comboblock/depends.txt b/games/default/files/Decorations/comboblock/depends.txt new file mode 100644 index 000000000..37e8e61b3 --- /dev/null +++ b/games/default/files/Decorations/comboblock/depends.txt @@ -0,0 +1 @@ +stairs diff --git a/games/default/files/Decorations/comboblock/init.lua b/games/default/files/Decorations/comboblock/init.lua new file mode 100644 index 000000000..a48dfb554 --- /dev/null +++ b/games/default/files/Decorations/comboblock/init.lua @@ -0,0 +1,96 @@ +comboblock = {index = { + ["color:blue"] = "stairs:slab_blue", + ["color:black"] = "stairs:slab_black", + ["color:green"] = "stairs:slab_green", + ["color:red"] = "stairs:slab_red", + ["color:yellow"] = "stairs:slab_yellow", + ["color:orange"] = "stairs:slab_orange", + ["color:pink"] = "stairs:slab_pink", + ["color:white"] = "stairs:slab_white", + + }} +local creative = minetest.setting_getbool("creative_mode") +for k,v1 in pairs(comboblock.index) do + local v1_def = minetest.registered_nodes[v1] + local v1_groups = table.copy(v1_def.groups) + v1_groups.not_in_creative_inventory = 1 + local v1_tiles = table.copy(v1_def.tiles) + if not v1_tiles[2] then + v1_tiles[2] = v1_tiles[1] + end + if not v1_tiles[3] then + v1_tiles[3] = v1_tiles[2] + end + if not v1_tiles[4] then + v1_tiles[4] = v1_tiles[3] + end + if not v1_tiles[5] then + v1_tiles[5] = v1_tiles[4] + end + if not v1_tiles[6] then + v1_tiles[6] = v1_tiles[5] + end + for _,v2 in pairs(comboblock.index) do + if v1 ~= v2 then + local v2_def = minetest.registered_nodes[v2] + local v2_tiles = table.copy(v2_def.tiles) + if not v2_tiles[2] then + v2_tiles[2] = v2_tiles[1] + end + if not v2_tiles[3] then + v2_tiles[3] = v2_tiles[2] + end + if not v2_tiles[4] then + v2_tiles[4] = v2_tiles[3] + end + if not v2_tiles[5] then + v2_tiles[5] = v2_tiles[4] + end + if not v2_tiles[6] then + v2_tiles[6] = v2_tiles[5] + end + minetest.register_node("comboblock:"..v1:split(":")[2].."_onc_"..v2:split(":")[2], { + description = v1_def.description.." on "..v2_def.description, + tiles = {v1_tiles[1], v2_tiles[2]}, + paramtype = "light", + paramtype2 = "facedir", + drawtype = "mesh", + mesh = "test.obj", + sounds = v1_def.sounds, + groups = v1_groups, + drop = v1, + after_destruct = function(pos, oldnode) + minetest.set_node(pos, {name = v2, param2 = oldnode.param2}) + end + }) + end + end + minetest.override_item(v1, { + on_place = function(itemstack, placer, pointed_thing) + local pos = pointed_thing.under + if pointed_thing.type ~= "node" or minetest.is_protected(pos, placer:get_player_name()) then + return + end + local node = minetest.get_node(pos) + if node.name == v1 then + minetest.swap_node(pos, {name = k, param2 = 0}) + if not creative then + itemstack:take_item() + return itemstack + end + else + for _,v in pairs(comboblock.index) do + if node.name == v then + minetest.swap_node(pos, {name = "comboblock:"..v1:split(":")[2].."_onc_"..v:split(":")[2], param2 = node.param2}) + if not creative then + itemstack:take_item() + return itemstack + end + return + end + end + return minetest.item_place(itemstack, placer, pointed_thing, param2) + end + end, + }) +end diff --git a/games/default/files/Decorations/comboblock/models/test.obj b/games/default/files/Decorations/comboblock/models/test.obj new file mode 100644 index 000000000..018308622 --- /dev/null +++ b/games/default/files/Decorations/comboblock/models/test.obj @@ -0,0 +1,66 @@ +# Blender v2.79 (sub 6) OBJ File: '' +# www.blender.org +o Cube +v 0.500000 -0.500000 -0.500000 +v 0.500000 -0.500000 0.500000 +v -0.500000 -0.500000 0.500000 +v -0.500000 -0.500000 -0.500000 +v 0.500000 0.500000 -0.500000 +v 0.500000 0.500000 0.500000 +v -0.500000 0.500000 0.500000 +v -0.500000 0.500000 -0.500000 +v 0.500000 0.000000 -0.500000 +v 0.500000 0.000000 0.500000 +v -0.500000 0.000000 0.500000 +v -0.500000 0.000000 -0.500000 +vt 0.000100 0.000100 +vt 0.999900 0.000100 +vt 0.999900 0.999899 +vt 0.000101 0.999900 +vt 0.999999 0.500000 +vt 1.000000 1.000000 +vt -0.000000 1.000000 +vt -0.000000 0.500000 +vt 1.000000 0.500000 +vt 1.000000 1.000000 +vt 0.000000 1.000000 +vt 0.000000 0.500000 +vt 1.000000 0.500000 +vt 1.000000 1.000000 +vt 0.000001 1.000000 +vt 0.000000 0.500000 +vt 0.000000 1.000000 +vt 0.000000 0.500000 +vt 1.000000 0.500000 +vt 1.000000 1.000000 +vt 0.000100 0.999900 +vt 0.000100 0.000100 +vt 0.999900 0.000100 +vt 0.999900 0.999900 +vt 0.000000 0.000000 +vt 1.000000 0.000000 +vt 1.000000 0.000000 +vt 0.000000 0.000000 +vt 1.000000 0.000000 +vt 0.000000 0.000000 +vt 1.000000 0.000000 +vt 0.000000 0.000000 +vn 0.0000 1.0000 0.0000 +vn 1.0000 -0.0000 0.0000 +vn -0.0000 -0.0000 1.0000 +vn -1.0000 -0.0000 -0.0000 +vn 0.0000 0.0000 -1.0000 +vn 0.0000 -1.0000 0.0000 +g Cube_Cube_Top +s off +f 5/1/1 8/2/1 7/3/1 6/4/1 +f 9/5/2 5/6/2 6/7/2 10/8/2 +f 10/9/3 6/10/3 7/11/3 11/12/3 +f 11/13/4 7/14/4 8/15/4 12/16/4 +f 5/17/5 9/18/5 12/19/5 8/20/5 +g Cube_Cube_Bottom +f 1/21/6 2/22/6 3/23/6 4/24/6 +f 9/18/5 1/25/5 4/26/5 12/19/5 +f 3/27/4 11/13/4 12/16/4 4/28/4 +f 2/29/3 10/9/3 11/12/3 3/30/3 +f 1/31/2 9/5/2 10/8/2 2/32/2 diff --git a/games/default/files/Decorations/comboblock/readme.txt b/games/default/files/Decorations/comboblock/readme.txt new file mode 100644 index 000000000..a7a5df885 --- /dev/null +++ b/games/default/files/Decorations/comboblock/readme.txt @@ -0,0 +1,31 @@ +Comboblock Fork for Blockcolor (Mrchiantos) +Comboblock Original (pithydon) + +License (Model) : CcO with Help MinetestVideo, Thank man. + +License (source code) : +======================================================================= +This is free and unencumbered software released into the public domain. + +Anyone is free to copy, modify, publish, use, compile, sell, or +distribute this software, either in source code form or as a compiled +binary, for any purpose, commercial or non-commercial, and by any +means. + +In jurisdictions that recognize copyright laws, the author or authors +of this software dedicate any and all copyright interest in the +software to the public domain. We make this dedication for the benefit +of the public at large and to the detriment of our heirs and +successors. We intend this dedication to be an overt act of +relinquishment in perpetuity of all present and future rights to this +software under copyright law. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, +EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF +MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. +IN NO EVENT SHALL THE AUTHORS BE LIABLE FOR ANY CLAIM, DAMAGES OR +OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, +ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR +OTHER DEALINGS IN THE SOFTWARE. + +For more information, please refer to diff --git a/games/default/files/Decorations/combostair/depends.txt b/games/default/files/Decorations/combostair/depends.txt new file mode 100644 index 000000000..37e8e61b3 --- /dev/null +++ b/games/default/files/Decorations/combostair/depends.txt @@ -0,0 +1 @@ +stairs diff --git a/games/default/files/Decorations/combostair/init.lua b/games/default/files/Decorations/combostair/init.lua new file mode 100644 index 000000000..06e5f69dc --- /dev/null +++ b/games/default/files/Decorations/combostair/init.lua @@ -0,0 +1,113 @@ +combostair = {index = { + ["color:blue"] = "stairs:stair_blue", + ["color:black"] = "stairs:stair_black", + ["color:green"] = "stairs:stair_green", + ["color:red"] = "stairs:stair_red", + ["color:yellow"] = "stairs:stair_yellow", + ["color:orange"] = "stairs:stair_orange", + ["color:pink"] = "stairs:stair_pink", + ["color:white"] = "stairs:stair_white", + + }} +local creative = minetest.setting_getbool("creative_mode") +for k,v1 in pairs(combostair.index) do + local v1_def = minetest.registered_nodes[v1] + local v1_groups = table.copy(v1_def.groups) + v1_groups.not_in_creative_inventory = 1 + local v1_tiles = table.copy(v1_def.tiles) + if not v1_tiles[2] then + v1_tiles[2] = v1_tiles[1] + end + if not v1_tiles[3] then + v1_tiles[3] = v1_tiles[2] + end + if not v1_tiles[4] then + v1_tiles[4] = v1_tiles[3] + end + if not v1_tiles[5] then + v1_tiles[5] = v1_tiles[4] + end + if not v1_tiles[6] then + v1_tiles[6] = v1_tiles[5] + end + for _,v2 in pairs(combostair.index) do + if v1 ~= v2 then + local v2_def = minetest.registered_nodes[v2] + local v2_tiles = table.copy(v2_def.tiles) + if not v2_tiles[2] then + v2_tiles[2] = v2_tiles[1] + end + if not v2_tiles[3] then + v2_tiles[3] = v2_tiles[2] + end + if not v2_tiles[4] then + v2_tiles[4] = v2_tiles[3] + end + if not v2_tiles[5] then + v2_tiles[5] = v2_tiles[4] + end + if not v2_tiles[6] then + v2_tiles[6] = v2_tiles[5] + end + minetest.register_node("combostair:"..v1:split(":")[2].."_onc_"..v2:split(":")[2], { + description = v1_def.description.." on "..v2_def.description, + tiles = {v1_tiles[1], v2_tiles[2]}, + paramtype = "light", + paramtype2 = "facedir", + drawtype = "mesh", + mesh = "stair.obj", + + selection_box = { + type = "fixed", + fixed = { + {-0.5, -0.5, -0.5, 0.5, 0, 0.5}, + {-0.5, 0, 0, 0.5, 0.5, 0.5}, + }, + }, + + collision_box = { + type = "fixed", + fixed = { + {-0.5, -0.5, -0.5, 0.5, 0, 0.5}, + {-0.5, 0, 0, 0.5, 0.5, 0.5}, + }, + }, + + sounds = v1_def.sounds, + groups = v1_groups, + drop = v1, + after_destruct = function(pos, oldnode) + minetest.set_node(pos, {name = v2, param2 = oldnode.param2}) + end + }) + end + end + minetest.override_item(v1, { + on_place = function(itemstack, placer, pointed_thing) + local pos = pointed_thing.under + if pointed_thing.type ~= "node" or minetest.is_protected(pos, placer:get_player_name()) then + return + end + local node = minetest.get_node(pos) + if node.name == v1 then + minetest.swap_node(pos, {name = k, param2 = 0}) + if not creative then + itemstack:take_item() + return itemstack + end + else + for _,v in pairs(combostair.index) do + if node.name == v then + minetest.swap_node(pos, {name = "combostair:"..v1:split(":")[2].."_onc_"..v:split(":")[2], param2 = node.param2}) + if not creative then + itemstack:take_item() + return itemstack + end + return + end + end + return minetest.item_place(itemstack, placer, pointed_thing, param2) + end + end, + }) +end diff --git a/games/default/files/Decorations/combostair/models/stair.obj b/games/default/files/Decorations/combostair/models/stair.obj new file mode 100644 index 000000000..58acfa871 --- /dev/null +++ b/games/default/files/Decorations/combostair/models/stair.obj @@ -0,0 +1,77 @@ +# Blender v2.79 (sub 6) OBJ File: '' +# www.blender.org +o Cube_Cube.001 +v -0.500000 -0.500000 0.500000 +v -0.500000 0.500000 0.500000 +v -0.500000 -0.500000 -0.500000 +v 0.500000 -0.500000 0.500000 +v 0.500000 0.500000 0.500000 +v 0.500000 -0.500000 -0.500000 +v -0.500000 0.000000 0.500000 +v -0.500000 0.000000 -0.500000 +v 0.500000 0.000000 -0.500000 +v 0.500000 0.000000 0.500000 +v -0.500000 -0.500000 0.000000 +v -0.500000 0.500000 0.000000 +v 0.500000 -0.500000 0.000000 +v 0.500000 0.500000 0.000000 +v 0.500000 0.000000 0.000000 +v -0.500000 0.000000 0.000000 +vt 0.500000 0.500000 +vt 0.500000 1.000000 +vt 0.000000 1.000000 +vt 0.000000 0.500000 +vt 1.000000 0.500000 +vt 1.000000 1.000000 +vt 0.000000 1.000000 +vt 0.000000 0.500000 +vt 1.000000 0.500000 +vt 0.000000 0.500000 +vt 0.000000 0.000000 +vt 1.000000 0.000000 +vt 1.000000 0.500000 +vt 0.000000 0.500000 +vt 0.000000 1.000000 +vt 1.000000 1.000000 +vt 0.500000 1.000000 +vt 0.500000 0.500000 +vt 0.000000 1.000000 +vt 1.000000 1.000000 +vt 0.000000 0.500000 +vt 1.000000 0.500000 +vt 1.000000 0.000000 +vt 0.000000 0.000000 +vt 0.500000 0.000000 +vt 0.000000 0.000000 +vt 0.000000 0.000000 +vt 0.000000 0.500000 +vt 1.000000 0.500000 +vt 1.000000 0.000000 +vt 0.500000 0.000000 +vt 1.000000 0.500000 +vt 1.000000 0.000000 +vt 0.000000 1.000000 +vt 1.000000 1.000000 +vn 1.0000 0.0000 0.0000 +vn 0.0000 0.0000 1.0000 +vn 0.0000 1.0000 0.0000 +vn 0.0000 0.0000 -1.0000 +vn -1.0000 0.0000 0.0000 +vn 0.0000 -1.0000 0.0000 +g Cube_Cube.001_Top +s off +f 15/1/1 14/2/1 5/3/1 10/4/1 +f 10/5/2 5/6/2 2/7/2 7/8/2 +f 14/9/3 12/10/3 2/11/3 5/12/3 +f 15/13/4 16/14/4 12/15/4 14/16/4 +f 7/8/5 2/7/5 12/17/5 16/18/5 +g Cube_Cube.001_Bottom +f 8/19/3 16/14/3 15/13/3 9/20/3 +f 11/21/6 13/22/6 4/23/6 1/24/6 +f 4/23/2 10/5/2 7/8/2 1/24/2 +f 13/25/1 15/1/1 10/4/1 4/26/1 +f 3/27/4 8/28/4 9/29/4 6/30/4 +f 11/31/5 16/18/5 8/32/5 3/33/5 +f 1/24/5 7/8/5 16/18/5 11/31/5 +f 6/30/1 9/29/1 15/1/1 13/25/1 +f 3/34/6 6/35/6 13/22/6 11/21/6 diff --git a/games/default/files/Decorations/combostair/readme.txt b/games/default/files/Decorations/combostair/readme.txt new file mode 100644 index 000000000..a7a5df885 --- /dev/null +++ b/games/default/files/Decorations/combostair/readme.txt @@ -0,0 +1,31 @@ +Comboblock Fork for Blockcolor (Mrchiantos) +Comboblock Original (pithydon) + +License (Model) : CcO with Help MinetestVideo, Thank man. + +License (source code) : +======================================================================= +This is free and unencumbered software released into the public domain. + +Anyone is free to copy, modify, publish, use, compile, sell, or +distribute this software, either in source code form or as a compiled +binary, for any purpose, commercial or non-commercial, and by any +means. + +In jurisdictions that recognize copyright laws, the author or authors +of this software dedicate any and all copyright interest in the +software to the public domain. We make this dedication for the benefit +of the public at large and to the detriment of our heirs and +successors. We intend this dedication to be an overt act of +relinquishment in perpetuity of all present and future rights to this +software under copyright law. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, +EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF +MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. +IN NO EVENT SHALL THE AUTHORS BE LIABLE FOR ANY CLAIM, DAMAGES OR +OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, +ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR +OTHER DEALINGS IN THE SOFTWARE. + +For more information, please refer to diff --git a/games/default/files/Decorations/factory_bridges/LICENSE b/games/default/files/Decorations/factory_bridges/LICENSE new file mode 100644 index 000000000..19e307187 --- /dev/null +++ b/games/default/files/Decorations/factory_bridges/LICENSE @@ -0,0 +1,504 @@ + GNU LESSER GENERAL PUBLIC LICENSE + Version 2.1, February 1999 + + Copyright (C) 1991, 1999 Free Software Foundation, Inc. + 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA + Everyone is permitted to copy and distribute verbatim copies + of this license document, but changing it is not allowed. + +(This is the first released version of the Lesser GPL. It also counts + as the successor of the GNU Library Public License, version 2, hence + the version number 2.1.) + + Preamble + + The licenses for most software are designed to take away your +freedom to share and change it. By contrast, the GNU General Public +Licenses are intended to guarantee your freedom to share and change +free software--to make sure the software is free for all its users. + + This license, the Lesser General Public License, applies to some +specially designated software packages--typically libraries--of the +Free Software Foundation and other authors who decide to use it. You +can use it too, but we suggest you first think carefully about whether +this license or the ordinary General Public License is the better +strategy to use in any particular case, based on the explanations below. + + When we speak of free software, we are referring to freedom of use, +not price. Our General Public Licenses are designed to make sure that +you have the freedom to distribute copies of free software (and charge +for this service if you wish); that you receive source code or can get +it if you want it; that you can change the software and use pieces of +it in new free programs; and that you are informed that you can do +these things. + + To protect your rights, we need to make restrictions that forbid +distributors to deny you these rights or to ask you to surrender these +rights. These restrictions translate to certain responsibilities for +you if you distribute copies of the library or if you modify it. + + For example, if you distribute copies of the library, whether gratis +or for a fee, you must give the recipients all the rights that we gave +you. You must make sure that they, too, receive or can get the source +code. If you link other code with the library, you must provide +complete object files to the recipients, so that they can relink them +with the library after making changes to the library and recompiling +it. And you must show them these terms so they know their rights. + + We protect your rights with a two-step method: (1) we copyright the +library, and (2) we offer you this license, which gives you legal +permission to copy, distribute and/or modify the library. + + To protect each distributor, we want to make it very clear that +there is no warranty for the free library. Also, if the library is +modified by someone else and passed on, the recipients should know +that what they have is not the original version, so that the original +author's reputation will not be affected by problems that might be +introduced by others. + + Finally, software patents pose a constant threat to the existence of +any free program. We wish to make sure that a company cannot +effectively restrict the users of a free program by obtaining a +restrictive license from a patent holder. Therefore, we insist that +any patent license obtained for a version of the library must be +consistent with the full freedom of use specified in this license. + + Most GNU software, including some libraries, is covered by the +ordinary GNU General Public License. This license, the GNU Lesser +General Public License, applies to certain designated libraries, and +is quite different from the ordinary General Public License. We use +this license for certain libraries in order to permit linking those +libraries into non-free programs. + + When a program is linked with a library, whether statically or using +a shared library, the combination of the two is legally speaking a +combined work, a derivative of the original library. The ordinary +General Public License therefore permits such linking only if the +entire combination fits its criteria of freedom. The Lesser General +Public License permits more lax criteria for linking other code with +the library. + + We call this license the "Lesser" General Public License because it +does Less to protect the user's freedom than the ordinary General +Public License. It also provides other free software developers Less +of an advantage over competing non-free programs. These disadvantages +are the reason we use the ordinary General Public License for many +libraries. However, the Lesser license provides advantages in certain +special circumstances. + + For example, on rare occasions, there may be a special need to +encourage the widest possible use of a certain library, so that it becomes +a de-facto standard. To achieve this, non-free programs must be +allowed to use the library. A more frequent case is that a free +library does the same job as widely used non-free libraries. In this +case, there is little to gain by limiting the free library to free +software only, so we use the Lesser General Public License. + + In other cases, permission to use a particular library in non-free +programs enables a greater number of people to use a large body of +free software. For example, permission to use the GNU C Library in +non-free programs enables many more people to use the whole GNU +operating system, as well as its variant, the GNU/Linux operating +system. + + Although the Lesser General Public License is Less protective of the +users' freedom, it does ensure that the user of a program that is +linked with the Library has the freedom and the wherewithal to run +that program using a modified version of the Library. + + The precise terms and conditions for copying, distribution and +modification follow. Pay close attention to the difference between a +"work based on the library" and a "work that uses the library". The +former contains code derived from the library, whereas the latter must +be combined with the library in order to run. + + GNU LESSER GENERAL PUBLIC LICENSE + TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION + + 0. This License Agreement applies to any software library or other +program which contains a notice placed by the copyright holder or +other authorized party saying it may be distributed under the terms of +this Lesser General Public License (also called "this License"). +Each licensee is addressed as "you". + + A "library" means a collection of software functions and/or data +prepared so as to be conveniently linked with application programs +(which use some of those functions and data) to form executables. + + The "Library", below, refers to any such software library or work +which has been distributed under these terms. A "work based on the +Library" means either the Library or any derivative work under +copyright law: that is to say, a work containing the Library or a +portion of it, either verbatim or with modifications and/or translated +straightforwardly into another language. (Hereinafter, translation is +included without limitation in the term "modification".) + + "Source code" for a work means the preferred form of the work for +making modifications to it. For a library, complete source code means +all the source code for all modules it contains, plus any associated +interface definition files, plus the scripts used to control compilation +and installation of the library. + + Activities other than copying, distribution and modification are not +covered by this License; they are outside its scope. The act of +running a program using the Library is not restricted, and output from +such a program is covered only if its contents constitute a work based +on the Library (independent of the use of the Library in a tool for +writing it). Whether that is true depends on what the Library does +and what the program that uses the Library does. + + 1. You may copy and distribute verbatim copies of the Library's +complete source code as you receive it, in any medium, provided that +you conspicuously and appropriately publish on each copy an +appropriate copyright notice and disclaimer of warranty; keep intact +all the notices that refer to this License and to the absence of any +warranty; and distribute a copy of this License along with the +Library. + + You may charge a fee for the physical act of transferring a copy, +and you may at your option offer warranty protection in exchange for a +fee. + + 2. You may modify your copy or copies of the Library or any portion +of it, thus forming a work based on the Library, and copy and +distribute such modifications or work under the terms of Section 1 +above, provided that you also meet all of these conditions: + + a) The modified work must itself be a software library. + + b) You must cause the files modified to carry prominent notices + stating that you changed the files and the date of any change. + + c) You must cause the whole of the work to be licensed at no + charge to all third parties under the terms of this License. + + d) If a facility in the modified Library refers to a function or a + table of data to be supplied by an application program that uses + the facility, other than as an argument passed when the facility + is invoked, then you must make a good faith effort to ensure that, + in the event an application does not supply such function or + table, the facility still operates, and performs whatever part of + its purpose remains meaningful. + + (For example, a function in a library to compute square roots has + a purpose that is entirely well-defined independent of the + application. Therefore, Subsection 2d requires that any + application-supplied function or table used by this function must + be optional: if the application does not supply it, the square + root function must still compute square roots.) + +These requirements apply to the modified work as a whole. If +identifiable sections of that work are not derived from the Library, +and can be reasonably considered independent and separate works in +themselves, then this License, and its terms, do not apply to those +sections when you distribute them as separate works. But when you +distribute the same sections as part of a whole which is a work based +on the Library, the distribution of the whole must be on the terms of +this License, whose permissions for other licensees extend to the +entire whole, and thus to each and every part regardless of who wrote +it. + +Thus, it is not the intent of this section to claim rights or contest +your rights to work written entirely by you; rather, the intent is to +exercise the right to control the distribution of derivative or +collective works based on the Library. + +In addition, mere aggregation of another work not based on the Library +with the Library (or with a work based on the Library) on a volume of +a storage or distribution medium does not bring the other work under +the scope of this License. + + 3. You may opt to apply the terms of the ordinary GNU General Public +License instead of this License to a given copy of the Library. To do +this, you must alter all the notices that refer to this License, so +that they refer to the ordinary GNU General Public License, version 2, +instead of to this License. (If a newer version than version 2 of the +ordinary GNU General Public License has appeared, then you can specify +that version instead if you wish.) Do not make any other change in +these notices. + + Once this change is made in a given copy, it is irreversible for +that copy, so the ordinary GNU General Public License applies to all +subsequent copies and derivative works made from that copy. + + This option is useful when you wish to copy part of the code of +the Library into a program that is not a library. + + 4. You may copy and distribute the Library (or a portion or +derivative of it, under Section 2) in object code or executable form +under the terms of Sections 1 and 2 above provided that you accompany +it with the complete corresponding machine-readable source code, which +must be distributed under the terms of Sections 1 and 2 above on a +medium customarily used for software interchange. + + If distribution of object code is made by offering access to copy +from a designated place, then offering equivalent access to copy the +source code from the same place satisfies the requirement to +distribute the source code, even though third parties are not +compelled to copy the source along with the object code. + + 5. A program that contains no derivative of any portion of the +Library, but is designed to work with the Library by being compiled or +linked with it, is called a "work that uses the Library". Such a +work, in isolation, is not a derivative work of the Library, and +therefore falls outside the scope of this License. + + However, linking a "work that uses the Library" with the Library +creates an executable that is a derivative of the Library (because it +contains portions of the Library), rather than a "work that uses the +library". The executable is therefore covered by this License. +Section 6 states terms for distribution of such executables. + + When a "work that uses the Library" uses material from a header file +that is part of the Library, the object code for the work may be a +derivative work of the Library even though the source code is not. +Whether this is true is especially significant if the work can be +linked without the Library, or if the work is itself a library. The +threshold for this to be true is not precisely defined by law. + + If such an object file uses only numerical parameters, data +structure layouts and accessors, and small macros and small inline +functions (ten lines or less in length), then the use of the object +file is unrestricted, regardless of whether it is legally a derivative +work. (Executables containing this object code plus portions of the +Library will still fall under Section 6.) + + Otherwise, if the work is a derivative of the Library, you may +distribute the object code for the work under the terms of Section 6. +Any executables containing that work also fall under Section 6, +whether or not they are linked directly with the Library itself. + + 6. As an exception to the Sections above, you may also combine or +link a "work that uses the Library" with the Library to produce a +work containing portions of the Library, and distribute that work +under terms of your choice, provided that the terms permit +modification of the work for the customer's own use and reverse +engineering for debugging such modifications. + + You must give prominent notice with each copy of the work that the +Library is used in it and that the Library and its use are covered by +this License. You must supply a copy of this License. If the work +during execution displays copyright notices, you must include the +copyright notice for the Library among them, as well as a reference +directing the user to the copy of this License. Also, you must do one +of these things: + + a) Accompany the work with the complete corresponding + machine-readable source code for the Library including whatever + changes were used in the work (which must be distributed under + Sections 1 and 2 above); and, if the work is an executable linked + with the Library, with the complete machine-readable "work that + uses the Library", as object code and/or source code, so that the + user can modify the Library and then relink to produce a modified + executable containing the modified Library. (It is understood + that the user who changes the contents of definitions files in the + Library will not necessarily be able to recompile the application + to use the modified definitions.) + + b) Use a suitable shared library mechanism for linking with the + Library. A suitable mechanism is one that (1) uses at run time a + copy of the library already present on the user's computer system, + rather than copying library functions into the executable, and (2) + will operate properly with a modified version of the library, if + the user installs one, as long as the modified version is + interface-compatible with the version that the work was made with. + + c) Accompany the work with a written offer, valid for at + least three years, to give the same user the materials + specified in Subsection 6a, above, for a charge no more + than the cost of performing this distribution. + + d) If distribution of the work is made by offering access to copy + from a designated place, offer equivalent access to copy the above + specified materials from the same place. + + e) Verify that the user has already received a copy of these + materials or that you have already sent this user a copy. + + For an executable, the required form of the "work that uses the +Library" must include any data and utility programs needed for +reproducing the executable from it. However, as a special exception, +the materials to be distributed need not include anything that is +normally distributed (in either source or binary form) with the major +components (compiler, kernel, and so on) of the operating system on +which the executable runs, unless that component itself accompanies +the executable. + + It may happen that this requirement contradicts the license +restrictions of other proprietary libraries that do not normally +accompany the operating system. Such a contradiction means you cannot +use both them and the Library together in an executable that you +distribute. + + 7. You may place library facilities that are a work based on the +Library side-by-side in a single library together with other library +facilities not covered by this License, and distribute such a combined +library, provided that the separate distribution of the work based on +the Library and of the other library facilities is otherwise +permitted, and provided that you do these two things: + + a) Accompany the combined library with a copy of the same work + based on the Library, uncombined with any other library + facilities. This must be distributed under the terms of the + Sections above. + + b) Give prominent notice with the combined library of the fact + that part of it is a work based on the Library, and explaining + where to find the accompanying uncombined form of the same work. + + 8. You may not copy, modify, sublicense, link with, or distribute +the Library except as expressly provided under this License. Any +attempt otherwise to copy, modify, sublicense, link with, or +distribute the Library is void, and will automatically terminate your +rights under this License. However, parties who have received copies, +or rights, from you under this License will not have their licenses +terminated so long as such parties remain in full compliance. + + 9. You are not required to accept this License, since you have not +signed it. However, nothing else grants you permission to modify or +distribute the Library or its derivative works. These actions are +prohibited by law if you do not accept this License. Therefore, by +modifying or distributing the Library (or any work based on the +Library), you indicate your acceptance of this License to do so, and +all its terms and conditions for copying, distributing or modifying +the Library or works based on it. + + 10. Each time you redistribute the Library (or any work based on the +Library), the recipient automatically receives a license from the +original licensor to copy, distribute, link with or modify the Library +subject to these terms and conditions. You may not impose any further +restrictions on the recipients' exercise of the rights granted herein. +You are not responsible for enforcing compliance by third parties with +this License. + + 11. If, as a consequence of a court judgment or allegation of patent +infringement or for any other reason (not limited to patent issues), +conditions are imposed on you (whether by court order, agreement or +otherwise) that contradict the conditions of this License, they do not +excuse you from the conditions of this License. If you cannot +distribute so as to satisfy simultaneously your obligations under this +License and any other pertinent obligations, then as a consequence you +may not distribute the Library at all. For example, if a patent +license would not permit royalty-free redistribution of the Library by +all those who receive copies directly or indirectly through you, then +the only way you could satisfy both it and this License would be to +refrain entirely from distribution of the Library. + +If any portion of this section is held invalid or unenforceable under any +particular circumstance, the balance of the section is intended to apply, +and the section as a whole is intended to apply in other circumstances. + +It is not the purpose of this section to induce you to infringe any +patents or other property right claims or to contest validity of any +such claims; this section has the sole purpose of protecting the +integrity of the free software distribution system which is +implemented by public license practices. Many people have made +generous contributions to the wide range of software distributed +through that system in reliance on consistent application of that +system; it is up to the author/donor to decide if he or she is willing +to distribute software through any other system and a licensee cannot +impose that choice. + +This section is intended to make thoroughly clear what is believed to +be a consequence of the rest of this License. + + 12. If the distribution and/or use of the Library is restricted in +certain countries either by patents or by copyrighted interfaces, the +original copyright holder who places the Library under this License may add +an explicit geographical distribution limitation excluding those countries, +so that distribution is permitted only in or among countries not thus +excluded. In such case, this License incorporates the limitation as if +written in the body of this License. + + 13. The Free Software Foundation may publish revised and/or new +versions of the Lesser General Public License from time to time. +Such new versions will be similar in spirit to the present version, +but may differ in detail to address new problems or concerns. + +Each version is given a distinguishing version number. If the Library +specifies a version number of this License which applies to it and +"any later version", you have the option of following the terms and +conditions either of that version or of any later version published by +the Free Software Foundation. If the Library does not specify a +license version number, you may choose any version ever published by +the Free Software Foundation. + + 14. If you wish to incorporate parts of the Library into other free +programs whose distribution conditions are incompatible with these, +write to the author to ask for permission. For software which is +copyrighted by the Free Software Foundation, write to the Free +Software Foundation; we sometimes make exceptions for this. Our +decision will be guided by the two goals of preserving the free status +of all derivatives of our free software and of promoting the sharing +and reuse of software generally. + + NO WARRANTY + + 15. BECAUSE THE LIBRARY IS LICENSED FREE OF CHARGE, THERE IS NO +WARRANTY FOR THE LIBRARY, TO THE EXTENT PERMITTED BY APPLICABLE LAW. +EXCEPT WHEN OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR +OTHER PARTIES PROVIDE THE LIBRARY "AS IS" WITHOUT WARRANTY OF ANY +KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE +IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR +PURPOSE. THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE +LIBRARY IS WITH YOU. SHOULD THE LIBRARY PROVE DEFECTIVE, YOU ASSUME +THE COST OF ALL NECESSARY SERVICING, REPAIR OR CORRECTION. + + 16. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN +WRITING WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY +AND/OR REDISTRIBUTE THE LIBRARY AS PERMITTED ABOVE, BE LIABLE TO YOU +FOR DAMAGES, INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR +CONSEQUENTIAL DAMAGES ARISING OUT OF THE USE OR INABILITY TO USE THE +LIBRARY (INCLUDING BUT NOT LIMITED TO LOSS OF DATA OR DATA BEING +RENDERED INACCURATE OR LOSSES SUSTAINED BY YOU OR THIRD PARTIES OR A +FAILURE OF THE LIBRARY TO OPERATE WITH ANY OTHER SOFTWARE), EVEN IF +SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH +DAMAGES. + + END OF TERMS AND CONDITIONS + + How to Apply These Terms to Your New Libraries + + If you develop a new library, and you want it to be of the greatest +possible use to the public, we recommend making it free software that +everyone can redistribute and change. You can do so by permitting +redistribution under these terms (or, alternatively, under the terms of the +ordinary General Public License). + + To apply these terms, attach the following notices to the library. It is +safest to attach them to the start of each source file to most effectively +convey the exclusion of warranty; and each file should have at least the +"copyright" line and a pointer to where the full notice is found. + + {description} + Copyright (C) {year} {fullname} + + This library 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 2.1 of the License, or (at your option) any later version. + + This library 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 library; if not, write to the Free Software + Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 + USA + +Also add information on how to contact you by electronic and paper mail. + +You should also get your employer (if you work as a programmer) or your +school, if any, to sign a "copyright disclaimer" for the library, if +necessary. Here is a sample; alter the names: + + Yoyodyne, Inc., hereby disclaims all copyright interest in the + library `Frob' (a library for tweaking knobs) written by James Random + Hacker. + + {signature of Ty Coon}, 1 April 1990 + Ty Coon, President of Vice + +That's all there is to it! diff --git a/games/default/files/Decorations/factory_bridges/crafts.lua b/games/default/files/Decorations/factory_bridges/crafts.lua new file mode 100644 index 000000000..ea964a900 --- /dev/null +++ b/games/default/files/Decorations/factory_bridges/crafts.lua @@ -0,0 +1,371 @@ +minetest.register_craft({output = FB.NAME..":i00 200", + recipe ={ + { "", "", "default:steel_ingot", }, + { "", "default:steel_ingot", "", }, + { "default:steel_ingot", "", "", }, + }, +}) +minetest.register_craft({output = FB.NAME..":i01 350", + recipe ={ + { "default:steel_ingot", "default:steel_ingot", "", }, + }, +}) +minetest.register_craft({output = FB.NAME..":i02", + recipe ={ + { FB.NAME..":i01", FB.NAME..":i01", FB.NAME..":i01", }, + }, +}) +minetest.register_craft({output = FB.NAME..":b00 10", + recipe ={ + { "default:steel_ingot", "default:steel_ingot", "default:steel_ingot", }, + }, +}) + +minetest.register_craft({output = FB.NAME..":a01", + recipe ={ + { "", FB.NAME..":i01", "", }, + { "", FB.NAME..":i00", "", }, + { "", "", "", }, + }, +}) +minetest.register_craft({output = FB.NAME..":a05", + recipe ={ + { "", FB.NAME..":i02", "", }, + { FB.NAME..":i00", "", FB.NAME..":i00", }, + { "", "", "", }, + }, +}) +minetest.register_craft({output = FB.NAME..":a13", + recipe ={ + { "", FB.NAME..":i02", FB.NAME..":i00", }, + { "", FB.NAME..":i00", "", }, + { "", "", "", }, + }, +}) +minetest.register_craft({output = FB.NAME..":a14", + recipe ={ + { FB.NAME..":i00", FB.NAME..":i02", "", }, + { "", FB.NAME..":i00", "", }, + { "", "", "", }, + }, +}) + +minetest.register_craft({output = FB.NAME..":a02", + recipe ={ + { FB.NAME..":a01", "", FB.NAME..":a01", }, + { "", "", "", }, + { "", "", "", }, + }, +}) +minetest.register_craft({output = FB.NAME..":a03", + recipe ={ + { FB.NAME..":a01", "", FB.NAME..":a01", }, + { "", "", "", }, + { "", "", FB.NAME..":a01", }, + }, +}) +minetest.register_craft({output = FB.NAME..":a04", + recipe ={ + { FB.NAME..":a01", "", FB.NAME..":a01", }, + { "", "", "", }, + { FB.NAME..":a01", "", FB.NAME..":a01", }, + }, +}) +minetest.register_craft({output = FB.NAME..":a06", + recipe ={ + { "", FB.NAME..":a05", "", }, + { "", "", "", }, + { "", "", FB.NAME..":a01", }, + }, +}) +minetest.register_craft({output = FB.NAME..":a07", + recipe ={ + { "", FB.NAME..":a05", "", }, + { "", "", "", }, + { FB.NAME..":a01", "", "", }, + }, +}) +minetest.register_craft({output = FB.NAME..":a08", + recipe ={ + { "", FB.NAME..":a05", "", }, + { "", "", "", }, + { FB.NAME..":a01", "", FB.NAME..":a01", }, + }, +}) +minetest.register_craft({output = FB.NAME..":a09", + recipe ={ + { "", FB.NAME..":a05", "", }, + { FB.NAME..":a05", "", "", }, + { "", "", "", }, + }, +}) +minetest.register_craft({output = FB.NAME..":a10", + recipe ={ + { "", FB.NAME..":a05", "", }, + { FB.NAME..":a05", "", "", }, + { "", "", FB.NAME..":a01", }, + }, +}) +minetest.register_craft({output = FB.NAME..":a11", + recipe ={ + { "", "", "", }, + { FB.NAME..":a05", "", FB.NAME..":a05", }, + { "", "", "", }, + }, +}) +minetest.register_craft({output = FB.NAME..":a12", + recipe ={ + { "", FB.NAME..":a05", "", }, + { FB.NAME..":a05", "", FB.NAME..":a05", }, + { "", "", "", }, + }, +}) +minetest.register_craft({output = FB.NAME..":a15", + recipe ={ + { "", "", "", }, + { FB.NAME..":a13", "", FB.NAME..":a14", }, + { "", "", "", }, + }, +}) + +minetest.register_craft({output = FB.NAME..":b01", + recipe ={ + { FB.NAME..":a01", "", "", }, + { "", FB.NAME..":b00", "", }, + { "", "", "", }, + }, +}) +minetest.register_craft({output = FB.NAME..":b02", + recipe ={ + { FB.NAME..":a01", "", FB.NAME..":a01", }, + { "", FB.NAME..":b00", "", }, + { "", "", "", }, + }, +}) +minetest.register_craft({output = FB.NAME..":b03", + recipe ={ + { FB.NAME..":a01", "", FB.NAME..":a01", }, + { "", FB.NAME..":b00", "", }, + { "", "", FB.NAME..":a01", }, + }, +}) +minetest.register_craft({output = FB.NAME..":b04", + recipe ={ + { FB.NAME..":a01", "", FB.NAME..":a01", }, + { "", FB.NAME..":b00", "", }, + { FB.NAME..":a01", "", FB.NAME..":a01", }, + }, +}) +minetest.register_craft({output = FB.NAME..":b05", + recipe ={ + { "", FB.NAME..":a05", "", }, + { "", FB.NAME..":b00", "", }, + { "", "", "", }, + }, +}) +minetest.register_craft({output = FB.NAME..":b06", + recipe ={ + { "", FB.NAME..":a05", "", }, + { "", FB.NAME..":b00", "", }, + { "", "", FB.NAME..":a01", }, + }, +}) +minetest.register_craft({output = FB.NAME..":b07", + recipe ={ + { "", FB.NAME..":a05", "", }, + { "", FB.NAME..":b00", "", }, + { FB.NAME..":a01", "", "", }, + }, +}) +minetest.register_craft({output = FB.NAME..":b08", + recipe ={ + { "", FB.NAME..":a05", "", }, + { "", FB.NAME..":b00", "", }, + { FB.NAME..":a01", "", FB.NAME..":a01", }, + }, +}) +minetest.register_craft({output = FB.NAME..":b09", + recipe ={ + { "", FB.NAME..":a05", "", }, + { FB.NAME..":a05", FB.NAME..":b00", "", }, + { "", "", "", }, + }, +}) +minetest.register_craft({output = FB.NAME..":b10", + recipe ={ + { "", FB.NAME..":a05", "", }, + { FB.NAME..":a05", FB.NAME..":b00", "", }, + { "", "", FB.NAME..":a01", }, + }, +}) +minetest.register_craft({output = FB.NAME..":b11", + recipe ={ + { "", "", "", }, + { FB.NAME..":a05", FB.NAME..":b00", FB.NAME..":a05", }, + { "", "", "", }, + }, +}) +minetest.register_craft({output = FB.NAME..":b12", + recipe ={ + { "", FB.NAME..":a05", "", }, + { FB.NAME..":a05", FB.NAME..":b00", FB.NAME..":a05", }, + { "", "", "", }, + }, +}) +minetest.register_craft({output = FB.NAME..":b02", + recipe ={ + { "", FB.NAME..":a02", "", }, + { "", FB.NAME..":b00", "", }, + { "", "", "", }, + }, +}) +minetest.register_craft({output = FB.NAME..":b03", + recipe ={ + { "", FB.NAME..":a03", "", }, + { "", FB.NAME..":b00", "", }, + { "", "", "", }, + }, +}) +minetest.register_craft({output = FB.NAME..":b04", + recipe ={ + { "", FB.NAME..":a04", "", }, + { "", FB.NAME..":b00", "", }, + { "", "", "", }, + }, +}) +minetest.register_craft({output = FB.NAME..":b06", + recipe ={ + { "", FB.NAME..":a06", "", }, + { "", FB.NAME..":b00", "", }, + { "", "", "", }, + }, +}) +minetest.register_craft({output = FB.NAME..":b07", + recipe ={ + { "", FB.NAME..":a07", "", }, + { "", FB.NAME..":b00", "", }, + { "", "", "", }, + }, +}) +minetest.register_craft({output = FB.NAME..":b08", + recipe ={ + { "", FB.NAME..":a08", "", }, + { "", FB.NAME..":b00", "", }, + { "", "", "", }, + }, +}) +minetest.register_craft({output = FB.NAME..":b09", + recipe ={ + { "", FB.NAME..":a09", "", }, + { "", FB.NAME..":b00", "", }, + { "", "", "", }, + }, +}) +minetest.register_craft({output = FB.NAME..":b10", + recipe ={ + { "", FB.NAME..":a10", "", }, + { "", FB.NAME..":b00", "", }, + { "", "", "", }, + }, +}) +minetest.register_craft({output = FB.NAME..":b11", + recipe ={ + { "", FB.NAME..":a11", "", }, + { "", FB.NAME..":b00", "", }, + { "", "", "", }, + }, +}) +minetest.register_craft({output = FB.NAME..":b12", + recipe ={ + { "", FB.NAME..":a12", "", }, + { "", FB.NAME..":b00", "", }, + { "", "", "", }, + }, +}) + +minetest.register_craft({output = FB.NAME..":c00 2", + recipe ={ + { FB.NAME..":i02", FB.NAME..":b00", "", }, + { FB.NAME..":b00", FB.NAME..":i02", "", }, + { "", "", "", }, + }, +}) +minetest.register_craft({output = FB.NAME..":c01", + recipe ={ + { "", "", "", }, + { FB.NAME..":a13", FB.NAME..":c00", "", }, + { "", "", "", }, + }, +}) +minetest.register_craft({output = FB.NAME..":c02", + recipe ={ + { "", "", "", }, + { "", FB.NAME..":c00", FB.NAME..":a14", }, + { "", "", "", }, + }, +}) +minetest.register_craft({output = FB.NAME..":c03", + recipe ={ + { "", "", "", }, + { FB.NAME..":a13", FB.NAME..":c00", FB.NAME..":a14", }, + { "", "", "", }, + }, +}) +minetest.register_craft({output = FB.NAME..":c03", + recipe ={ + { "", FB.NAME..":a15", "", }, + { "", FB.NAME..":c00", "", }, + { "", "", "", }, + }, +}) + +minetest.register_craft({output = FB.NAME..":d00", + recipe ={ + { "", FB.NAME..":i02", "", }, + { FB.NAME..":i02", FB.NAME..":b00", FB.NAME..":i02", }, + { "", FB.NAME..":i02", "", }, + }, +}) + +minetest.register_craft({output = FB.NAME..":s00", + recipe ={ + { "", FB.NAME..":i00", "", }, + { FB.NAME..":i02", "", FB.NAME..":i02", }, + { "", FB.NAME..":i00", "", }, + }, +}) +minetest.register_craft({output = FB.NAME..":s01", + recipe ={ + { FB.NAME..":i02", FB.NAME..":i02", FB.NAME..":i02", }, + { FB.NAME..":i02", FB.NAME..":s00", FB.NAME..":i02", }, + { FB.NAME..":i02", FB.NAME..":i02", FB.NAME..":i02", }, + }, +}) +minetest.register_craft({output = FB.NAME..":s02", + recipe ={ + { FB.NAME..":i02", FB.NAME..":i02", FB.NAME..":i02", }, + { FB.NAME..":i02", "", FB.NAME..":i02", }, + { FB.NAME..":i02", FB.NAME..":i02", FB.NAME..":i02", }, + }, +}) +minetest.register_craft({output = FB.NAME..":s03", + recipe ={ + { FB.NAME..":i02", "", "", }, + { FB.NAME..":i02", FB.NAME..":s00", "", }, + { FB.NAME..":i02", FB.NAME..":i02", "", }, + }, +}) +minetest.register_craft({output = FB.NAME..":s04", + recipe ={ + { "", "", FB.NAME..":i02", }, + { "", FB.NAME..":s00", FB.NAME..":i02", }, + { "", FB.NAME..":i02", FB.NAME..":i02", }, + }, +}) +minetest.register_craft({output = FB.NAME..":s05", + recipe ={ + { "", "", "", }, + { "", FB.NAME..":s00", "", }, + { FB.NAME..":i02", "", FB.NAME..":i02", }, + }, +}) diff --git a/games/default/files/Decorations/factory_bridges/depends.txt b/games/default/files/Decorations/factory_bridges/depends.txt new file mode 100644 index 000000000..a5356594b --- /dev/null +++ b/games/default/files/Decorations/factory_bridges/depends.txt @@ -0,0 +1,3 @@ +default +intllib? +color \ No newline at end of file diff --git a/games/default/files/Decorations/factory_bridges/description.txt b/games/default/files/Decorations/factory_bridges/description.txt new file mode 100644 index 000000000..45541e3b2 --- /dev/null +++ b/games/default/files/Decorations/factory_bridges/description.txt @@ -0,0 +1 @@ +This a fork'mod Factory Bridges for Blockcolor with add Colors to ladders, stair and trap. I not use all nodes and models. diff --git a/games/default/files/Decorations/factory_bridges/init.lua b/games/default/files/Decorations/factory_bridges/init.lua new file mode 100644 index 000000000..542657b53 --- /dev/null +++ b/games/default/files/Decorations/factory_bridges/init.lua @@ -0,0 +1,13 @@ +FB = {} +FB.NAME = "factory_bridges" + +if (minetest.get_modpath("intllib")) then + FB.LOCAL = intllib.Getter() +else + FB.LOCAL = function(s) return s end +end + +dofile(minetest.get_modpath(FB.NAME).."/models.lua") +dofile(minetest.get_modpath(FB.NAME).."/nodes.lua") +dofile(minetest.get_modpath(FB.NAME).."/items.lua") +dofile(minetest.get_modpath(FB.NAME).."/crafts.lua") \ No newline at end of file diff --git a/games/default/files/Decorations/factory_bridges/items.lua b/games/default/files/Decorations/factory_bridges/items.lua new file mode 100644 index 000000000..5d99f76f0 --- /dev/null +++ b/games/default/files/Decorations/factory_bridges/items.lua @@ -0,0 +1,14 @@ +minetest.register_craftitem(FB.NAME..":i00", { + description = FB.LOCAL("i00"), + inventory_image = FB.NAME.."_i00.png", +}) + +minetest.register_craftitem(FB.NAME..":i01", { + description = FB.LOCAL("i01"), + inventory_image = FB.NAME.."_i01.png", +}) + +minetest.register_craftitem(FB.NAME..":i02", { + description = FB.LOCAL("i02"), + inventory_image = FB.NAME.."_i02.png", +}) diff --git a/games/default/files/Decorations/factory_bridges/locale/en.txt b/games/default/files/Decorations/factory_bridges/locale/en.txt new file mode 100644 index 000000000..1209102eb --- /dev/null +++ b/games/default/files/Decorations/factory_bridges/locale/en.txt @@ -0,0 +1,45 @@ +### nodes.lua ### +a01 = Railing & pole (set 1) +a02 = Railing & pole (set 2) +a03 = Railing & pole (set 3) +a04 = Railing & pole (set 4) +a05 = Railing & pole (set 5) +a06 = Railing & pole (set 6) +a07 = Railing & pole (set 7) +a08 = Railing & pole (set 8) +a09 = Railing & pole (set 9) +a10 = Railing & pole (set 10) +a11 = Railing & pole (set 11) +a12 = Railing & pole (set 12) +a13 = Railing & pole (set 13) +a14 = Railing & pole (set 14) +a15 = Railing & pole (set 15) +b00 = Steel slab +b01 = Steel slab with railing (version 1) +b02 = Steel slab with railing (version 2) +b03 = Steel slab with railing (version 3) +b04 = Steel slab with railing (version 4) +b05 = Steel slab with railing (version 5) +b06 = Steel slab with railing (version 6) +b07 = Steel slab with railing (version 7) +b08 = Steel slab with railing (version 8) +b09 = Steel slab with railing (version 9) +b10 = Steel slab with railing (version 10) +b11 = Steel slab with railing (version 11) +b12 = Steel slab with railing (version 12) +c00 = Steel stair +c01 = Steel stair with left railing +c02 = Steel stair with right railing +c03 = Steel stair with double railing +d00 = Steel trapdoor +d01 = Steel trapdoor (open) +s00 = Steel ladder +s01 = Steel ladder with railing +s02 = Steel ladder with railing (exit) +s03 = Steel ladder with railing (right-exit) +s04 = Steel ladder with railing (left-exit) +s05 = Steel ladder with railing (double-exit) +### items.lua ### +i00 = Rebar +i01 = Handrail +i02 = Long handrail diff --git a/games/default/files/Decorations/factory_bridges/locale/ru.txt b/games/default/files/Decorations/factory_bridges/locale/ru.txt new file mode 100644 index 000000000..4af2a9460 --- /dev/null +++ b/games/default/files/Decorations/factory_bridges/locale/ru.txt @@ -0,0 +1,45 @@ +### nodes.lua ### +a01 = Перила и стойки (комплект 1) +a02 = Перила и стойки (комплект 2) +a03 = Перила и стойки (комплект 3) +a04 = Перила и стойки (комплект 4) +a05 = Перила и стойки (комплект 5) +a06 = Перила и стойки (комплект 6) +a07 = Перила и стойки (комплект 7) +a08 = Перила и стойки (комплект 8) +a09 = Перила и стойки (комплект 9) +a10 = Перила и стойки (комплект 10) +a11 = Перила и стойки (комплект 11) +a12 = Перила и стойки (комплект 12) +a13 = Перила и стойки (комплект 13) +a14 = Перила и стойки (комплект 14) +a15 = Перила и стойки (комплект 15) +b00 = Стальная площадка +b01 = Площадка с перилами (вариант 1) +b02 = Площадка с перилами (вариант 2) +b03 = Площадка с перилами (вариант 3) +b04 = Площадка с перилами (вариант 4) +b05 = Площадка с перилами (вариант 5) +b06 = Площадка с перилами (вариант 6) +b07 = Площадка с перилами (вариант 7) +b08 = Площадка с перилами (вариант 8) +b09 = Площадка с перилами (вариант 9) +b10 = Площадка с перилами (вариант 10) +b11 = Площадка с перилами (вариант 11) +b12 = Площадка с перилами (вариант 12) +c00 = Стальные ступеньки +c01 = Стальные ступеньки с левым поручнем +c02 = Стальные ступеньки с правым поручнем +c03 = Стальные ступеньки с двойным поручнем +d00 = Стальной люк +d01 = Стальной люк (открытый) +s00 = Вертикальная лестница +s01 = Закрытая вертикальная лестница +s02 = Выход с лестницы +s03 = Закрытая лестница с выходом направо +s04 = Закрытая лестница с выходом налево +s05 = Закрытая лестница с двусторонним выходом +### items.lua ### +i00 = Арматура +i01 = Поручень +i02 = Длинный поручень diff --git a/games/default/files/Decorations/factory_bridges/models.lua b/games/default/files/Decorations/factory_bridges/models.lua new file mode 100644 index 000000000..8fb70dbc0 --- /dev/null +++ b/games/default/files/Decorations/factory_bridges/models.lua @@ -0,0 +1,384 @@ +local s = {l = -0.5, m = 0, h = 0.5, s = 0.01} -- размеры +local e = {} -- элементы +-- x_min y_min z_min x_max y_max z2_max +-- { s.l+000*s.s, s.l+000*s.s, s.l+000*s.s, s.h-000*s.s, s.h-000*s.s, s.h-000*s.s, }, --e.[0] +e.a = { -- 1 x 1 x 0.03 + { s.l+000*s.s, s.l+000*s.s, s.l+000*s.s, s.h-000*s.s, s.l+003*s.s, s.h-000*s.s, }, --e.a[01] нижняя плита + } +e.b = { -- 1 x 0.5 x 0.03 + { s.l+000*s.s, s.l+000*s.s, s.l+000*s.s, s.h-000*s.s, s.l+003*s.s, s.m+000*s.s, }, --e.b[01] нижняя ступенька + { s.l+000*s.s, s.m+000*s.s, s.m+000*s.s, s.h-000*s.s, s.m+003*s.s, s.h-000*s.s, }, --e.b[02] верхняя ступенька + } +e.c = { -- 0.44 x 0.44 x 0.03 + { s.l+006*s.s, s.l+000*s.s, s.l+006*s.s, s.h-006*s.s, s.l+003*s.s, s.h-006*s.s, }, --e.c[01] крышка люка (закрытая) + { s.l+006*s.s, s.l+006*s.s, s.h-006*s.s, s.h-006*s.s, s.h-006*s.s, s.h-003*s.s, }, --e.c[02] крышка люка (открытая) + } +e.d = { -- 1 x 0.06 x 0.03 + { s.l+000*s.s, s.l+000*s.s, s.h-006*s.s, s.h-000*s.s, s.l+003*s.s, s.h-000*s.s, }, --e.d[01] борт люка дальний + { s.h-006*s.s, s.l+000*s.s, s.l+000*s.s, s.h-000*s.s, s.l+003*s.s, s.h-000*s.s, }, --e.d[02] борт люка правый + { s.l+000*s.s, s.l+000*s.s, s.l+000*s.s, s.h-000*s.s, s.l+003*s.s, s.l+006*s.s, }, --e.d[03] борт люка ближний + { s.l+000*s.s, s.l+000*s.s, s.l+000*s.s, s.l+006*s.s, s.l+003*s.s, s.h-000*s.s, }, --e.d[04] борт люка левый + { s.l+000*s.s, s.h-003*s.s, s.h-006*s.s, s.h-000*s.s, s.h-000*s.s, s.h-000*s.s, }, --e.d[05] поручень дальний + { s.h-006*s.s, s.h-003*s.s, s.l+000*s.s, s.h-000*s.s, s.h-000*s.s, s.h-000*s.s, }, --e.d[06] поручень правый + { s.l+000*s.s, s.h-003*s.s, s.l+000*s.s, s.h-000*s.s, s.h-000*s.s, s.l+006*s.s, }, --e.d[07] поручень ближний + { s.l+000*s.s, s.h-003*s.s, s.l+000*s.s, s.l+006*s.s, s.h-000*s.s, s.h-000*s.s, }, --e.d[08] поручень левый + { s.l+000*s.s, s.l+000*s.s, s.h-006*s.s, s.l+003*s.s, s.h-000*s.s, s.h-000*s.s }, --e.d[09] левая дальняя стойка (для вертикальных лестниц) + { s.h-003*s.s, s.l+000*s.s, s.h-006*s.s, s.h+000*s.s, s.h-000*s.s, s.h-000*s.s }, --e.d[10] правая дальняя стойка (для вертикальных лестниц) + { s.l+000*s.s, s.l+000*s.s, s.m+000*s.s, s.l+003*s.s, s.h-000*s.s, s.m-006*s.s }, --e.d[11] левая ближняя стойка (для вертикальных лестниц) + { s.h-003*s.s, s.l+000*s.s, s.m+000*s.s, s.h+000*s.s, s.h-000*s.s, s.m-006*s.s }, --e.d[12] правая ближняя стойка (для вертикальных лестниц) + { s.m-003*s.s, s.l+000*s.s, s.l+000*s.s, s.m+003*s.s, s.h-000*s.s, s.l+003*s.s }, --e.d[13] центральная ближняя стойка (для вертикальных лестниц) + { s.l+003*s.s, s.l+022*s.s, s.l+003*s.s, s.l+006*s.s, s.l+028*s.s, s.h-000*s.s }, --e.d[14] (для вертикальных лестниц) + { s.l+003*s.s, s.h-028*s.s, s.l+003*s.s, s.l+006*s.s, s.h-022*s.s, s.h-000*s.s }, --e.d[15] (для вертикальных лестниц) + { s.h-006*s.s, s.l+022*s.s, s.l+003*s.s, s.h-003*s.s, s.l+028*s.s, s.h-000*s.s }, --e.d[16] (для вертикальных лестниц) + { s.h-006*s.s, s.h-028*s.s, s.l+003*s.s, s.h-003*s.s, s.h-022*s.s, s.h-000*s.s }, --e.d[17] (для вертикальных лестниц) + { s.l+003*s.s, s.l+022*s.s, s.l+003*s.s, s.h-003*s.s, s.l+028*s.s, s.l+006*s.s }, --e.d[18] (для вертикальных лестниц) + { s.l+003*s.s, s.h-028*s.s, s.l+003*s.s, s.h-003*s.s, s.h-022*s.s, s.l+006*s.s }, --e.d[19] (для вертикальных лестниц) + } +e.e = { -- 1 x 0.04 x 0.04 + { s.l+001*s.s, s.l+000*s.s, s.h-005*s.s, s.l+005*s.s, s.h-000*s.s, s.h-001*s.s, }, --e.e[01] стойка угловая левая дальняя + { s.h-005*s.s, s.l+000*s.s, s.h-005*s.s, s.h-001*s.s, s.h-000*s.s, s.h-001*s.s, }, --e.e[02] стойка угловая правая дальняя + { s.h-005*s.s, s.l+000*s.s, s.l+001*s.s, s.h-001*s.s, s.h-000*s.s, s.l+005*s.s, }, --e.e[03] стойка угловая правая ближняя + { s.l+001*s.s, s.l+000*s.s, s.l+001*s.s, s.l+005*s.s, s.h-000*s.s, s.l+005*s.s, }, --e.e[04] стойка угловая левая ближняя + { s.l+023*s.s, s.l+000*s.s, s.h-005*s.s, s.l+027*s.s, s.h-000*s.s, s.h-001*s.s, }, --e.e[05] стойка дальняя левая + { s.h-027*s.s, s.l+000*s.s, s.h-005*s.s, s.h-023*s.s, s.h-000*s.s, s.h-001*s.s, }, --e.e[06] стойка дальняя правая + { s.h-005*s.s, s.l+000*s.s, s.l+023*s.s, s.h-001*s.s, s.h-000*s.s, s.l+027*s.s, }, --e.e[07] стойка правая дальняя + { s.h-005*s.s, s.l+000*s.s, s.h-027*s.s, s.h-001*s.s, s.h-000*s.s, s.h-023*s.s, }, --e.e[08] стойка правая ближняя + { s.h-027*s.s, s.l+000*s.s, s.l+001*s.s, s.h-023*s.s, s.h-000*s.s, s.l+005*s.s, }, --e.e[09] стойка ближняя правая + { s.l+023*s.s, s.l+000*s.s, s.l+001*s.s, s.l+027*s.s, s.h-000*s.s, s.l+005*s.s, }, --e.e[10] стойка ближняя левая + { s.l+001*s.s, s.l+000*s.s, s.l+023*s.s, s.l+005*s.s, s.h-000*s.s, s.l+027*s.s, }, --e.e[11] стойка левая ближняя + { s.l+001*s.s, s.l+000*s.s, s.h-027*s.s, s.l+005*s.s, s.h-000*s.s, s.h-023*s.s, }, --e.e[12] стойка левая дальняя + { s.l+000*s.s, s.l+023*s.s, s.h-005*s.s, s.h-000*s.s, s.l+027*s.s, s.h-001*s.s }, --e.e[13] перекладина нижняя (для вертикальных лестниц) + { s.l+000*s.s, s.h-027*s.s, s.h-005*s.s, s.h-000*s.s, s.h-023*s.s, s.h-001*s.s }, --e.e[14] перекладина верхняя (для вертикальных лестниц) + } +e.f = { -- 0.06 x 0.06 x 0.03 + { s.l+000*s.s, s.h-003*s.s, s.h-006*s.s, s.l+006*s.s, s.h-000*s.s, s.h-000*s.s, }, --e.f[01] уголок поручней левый дальний + { s.h-006*s.s, s.h-003*s.s, s.h-006*s.s, s.h-000*s.s, s.h-000*s.s, s.h-000*s.s, }, --e.f[02] уголок поручней правый дальний + { s.h-006*s.s, s.h-003*s.s, s.l+000*s.s, s.h-000*s.s, s.h-000*s.s, s.l+006*s.s, }, --e.f[03] уголок поручней правый ближний + { s.l+000*s.s, s.h-003*s.s, s.l+000*s.s, s.l+006*s.s, s.h-000*s.s, s.l+006*s.s, }, --e.f[04] уголок поручней левый ближний + } +e.g = { -- 0.06 x 0.03 x 0.03 + { s.l+024*s.s, s.l+003*s.s, s.h-006*s.s, s.l+030*s.s, s.l+006*s.s, s.h-003*s.s, }, --e.g[01] петля люка левая + { s.h-030*s.s, s.l+003*s.s, s.h-006*s.s, s.h-024*s.s, s.l+006*s.s, s.h-003*s.s, }, --e.g[02] петля люка правая + } +e.h = { -- 1.24 x 0.04 x 0.04 + { s.l+001*s.s, s.l+000*s.s, s.l+023*s.s, s.l+005*s.s, s.h+024*s.s, s.l+027*s.s }, --e.h[1] стойка левая ближняя (для ступеньки) + { s.l+001*s.s, s.m+000*s.s, s.h-027*s.s, s.l+005*s.s, s.h+075*s.s, s.h-023*s.s }, --e.h[2] стойка левая дальняя (для ступеньки) + { s.h-001*s.s, s.l+000*s.s, s.l+023*s.s, s.h-005*s.s, s.h+024*s.s, s.l+027*s.s }, --e.h[3] стойка правая ближняя (для ступеньки) + { s.h-001*s.s, s.m+000*s.s, s.h-027*s.s, s.h-005*s.s, s.h+075*s.s, s.h-023*s.s }, --e.h[4] стойка правая дальняя (для ступеньки) + } +e.i = { + { s.l+000*s.s, s.h+000*s.s, s.l+000*s.s, s.l+006*s.s, s.h+003*s.s, s.l+003*s.s }, --e.i[01] левый поручень... + { s.l+000*s.s, s.h+003*s.s, s.l+003*s.s, s.l+006*s.s, s.h+006*s.s, s.l+006*s.s }, + { s.l+000*s.s, s.h+006*s.s, s.l+006*s.s, s.l+006*s.s, s.h+009*s.s, s.l+009*s.s }, + { s.l+000*s.s, s.h+009*s.s, s.l+009*s.s, s.l+006*s.s, s.h+012*s.s, s.l+012*s.s }, + { s.l+000*s.s, s.h+012*s.s, s.l+012*s.s, s.l+006*s.s, s.h+015*s.s, s.l+015*s.s }, + { s.l+000*s.s, s.h+015*s.s, s.l+015*s.s, s.l+006*s.s, s.h+018*s.s, s.l+018*s.s }, + { s.l+000*s.s, s.h+018*s.s, s.l+018*s.s, s.l+006*s.s, s.h+021*s.s, s.l+021*s.s }, + { s.l+000*s.s, s.h+021*s.s, s.l+021*s.s, s.l+006*s.s, s.h+024*s.s, s.l+024*s.s }, + { s.l+000*s.s, s.h+024*s.s, s.l+024*s.s, s.l+006*s.s, s.h+027*s.s, s.l+027*s.s }, + { s.l+000*s.s, s.h+027*s.s, s.l+027*s.s, s.l+006*s.s, s.h+030*s.s, s.l+030*s.s }, + { s.l+000*s.s, s.h+030*s.s, s.l+030*s.s, s.l+006*s.s, s.h+033*s.s, s.l+033*s.s }, + { s.l+000*s.s, s.h+033*s.s, s.l+033*s.s, s.l+006*s.s, s.h+036*s.s, s.l+036*s.s }, + { s.l+000*s.s, s.h+036*s.s, s.l+036*s.s, s.l+006*s.s, s.h+039*s.s, s.l+039*s.s }, + { s.l+000*s.s, s.h+039*s.s, s.l+039*s.s, s.l+006*s.s, s.h+042*s.s, s.l+042*s.s }, + { s.l+000*s.s, s.h+042*s.s, s.l+042*s.s, s.l+006*s.s, s.h+045*s.s, s.l+045*s.s }, + { s.l+000*s.s, s.h+045*s.s, s.l+045*s.s, s.l+006*s.s, s.h+048*s.s, s.l+048*s.s }, + { s.l+000*s.s, s.h+048*s.s, s.l+048*s.s, s.l+006*s.s, s.h+051*s.s, s.l+051*s.s }, + { s.l+000*s.s, s.h+051*s.s, s.l+051*s.s, s.l+006*s.s, s.h+054*s.s, s.l+054*s.s }, + { s.l+000*s.s, s.h+054*s.s, s.l+054*s.s, s.l+006*s.s, s.h+057*s.s, s.l+057*s.s }, + { s.l+000*s.s, s.h+057*s.s, s.l+057*s.s, s.l+006*s.s, s.h+060*s.s, s.l+060*s.s }, + { s.l+000*s.s, s.h+060*s.s, s.l+060*s.s, s.l+006*s.s, s.h+063*s.s, s.l+063*s.s }, + { s.l+000*s.s, s.h+063*s.s, s.l+063*s.s, s.l+006*s.s, s.h+066*s.s, s.l+066*s.s }, + { s.l+000*s.s, s.h+066*s.s, s.l+066*s.s, s.l+006*s.s, s.h+069*s.s, s.l+069*s.s }, + { s.l+000*s.s, s.h+069*s.s, s.l+069*s.s, s.l+006*s.s, s.h+072*s.s, s.l+072*s.s }, + { s.l+000*s.s, s.h+072*s.s, s.l+072*s.s, s.l+006*s.s, s.h+075*s.s, s.l+075*s.s }, + { s.l+000*s.s, s.h+075*s.s, s.l+075*s.s, s.l+006*s.s, s.h+078*s.s, s.l+078*s.s }, + { s.l+000*s.s, s.h+078*s.s, s.l+078*s.s, s.l+006*s.s, s.h+081*s.s, s.l+081*s.s }, + { s.l+000*s.s, s.h+081*s.s, s.l+081*s.s, s.l+006*s.s, s.h+084*s.s, s.l+084*s.s }, + { s.l+000*s.s, s.h+084*s.s, s.l+084*s.s, s.l+006*s.s, s.h+087*s.s, s.l+087*s.s }, + { s.l+000*s.s, s.h+087*s.s, s.l+087*s.s, s.l+006*s.s, s.h+090*s.s, s.l+090*s.s }, + { s.l+000*s.s, s.h+090*s.s, s.l+090*s.s, s.l+006*s.s, s.h+093*s.s, s.l+093*s.s }, + { s.l+000*s.s, s.h+093*s.s, s.l+093*s.s, s.l+006*s.s, s.h+096*s.s, s.l+096*s.s }, + { s.l+000*s.s, s.h+096*s.s, s.l+096*s.s, s.l+006*s.s, s.h+100*s.s, s.l+100*s.s }, --e.i[33] + { s.h-000*s.s, s.h+000*s.s, s.l+000*s.s, s.h-006*s.s, s.h+003*s.s, s.l+003*s.s }, --e.i[34] правый поручень... + { s.h-000*s.s, s.h+003*s.s, s.l+003*s.s, s.h-006*s.s, s.h+006*s.s, s.l+006*s.s }, + { s.h-000*s.s, s.h+006*s.s, s.l+006*s.s, s.h-006*s.s, s.h+009*s.s, s.l+009*s.s }, + { s.h-000*s.s, s.h+009*s.s, s.l+009*s.s, s.h-006*s.s, s.h+012*s.s, s.l+012*s.s }, + { s.h-000*s.s, s.h+012*s.s, s.l+012*s.s, s.h-006*s.s, s.h+015*s.s, s.l+015*s.s }, + { s.h-000*s.s, s.h+015*s.s, s.l+015*s.s, s.h-006*s.s, s.h+018*s.s, s.l+018*s.s }, + { s.h-000*s.s, s.h+018*s.s, s.l+018*s.s, s.h-006*s.s, s.h+021*s.s, s.l+021*s.s }, + { s.h-000*s.s, s.h+021*s.s, s.l+021*s.s, s.h-006*s.s, s.h+024*s.s, s.l+024*s.s }, + { s.h-000*s.s, s.h+024*s.s, s.l+024*s.s, s.h-006*s.s, s.h+027*s.s, s.l+027*s.s }, + { s.h-000*s.s, s.h+027*s.s, s.l+027*s.s, s.h-006*s.s, s.h+030*s.s, s.l+030*s.s }, + { s.h-000*s.s, s.h+030*s.s, s.l+030*s.s, s.h-006*s.s, s.h+033*s.s, s.l+033*s.s }, + { s.h-000*s.s, s.h+033*s.s, s.l+033*s.s, s.h-006*s.s, s.h+036*s.s, s.l+036*s.s }, + { s.h-000*s.s, s.h+036*s.s, s.l+036*s.s, s.h-006*s.s, s.h+039*s.s, s.l+039*s.s }, + { s.h-000*s.s, s.h+039*s.s, s.l+039*s.s, s.h-006*s.s, s.h+042*s.s, s.l+042*s.s }, + { s.h-000*s.s, s.h+042*s.s, s.l+042*s.s, s.h-006*s.s, s.h+045*s.s, s.l+045*s.s }, + { s.h-000*s.s, s.h+045*s.s, s.l+045*s.s, s.h-006*s.s, s.h+048*s.s, s.l+048*s.s }, + { s.h-000*s.s, s.h+048*s.s, s.l+048*s.s, s.h-006*s.s, s.h+051*s.s, s.l+051*s.s }, + { s.h-000*s.s, s.h+051*s.s, s.l+051*s.s, s.h-006*s.s, s.h+054*s.s, s.l+054*s.s }, + { s.h-000*s.s, s.h+054*s.s, s.l+054*s.s, s.h-006*s.s, s.h+057*s.s, s.l+057*s.s }, + { s.h-000*s.s, s.h+057*s.s, s.l+057*s.s, s.h-006*s.s, s.h+060*s.s, s.l+060*s.s }, + { s.h-000*s.s, s.h+060*s.s, s.l+060*s.s, s.h-006*s.s, s.h+063*s.s, s.l+063*s.s }, + { s.h-000*s.s, s.h+063*s.s, s.l+063*s.s, s.h-006*s.s, s.h+066*s.s, s.l+066*s.s }, + { s.h-000*s.s, s.h+066*s.s, s.l+066*s.s, s.h-006*s.s, s.h+069*s.s, s.l+069*s.s }, + { s.h-000*s.s, s.h+069*s.s, s.l+069*s.s, s.h-006*s.s, s.h+072*s.s, s.l+072*s.s }, + { s.h-000*s.s, s.h+072*s.s, s.l+072*s.s, s.h-006*s.s, s.h+075*s.s, s.l+075*s.s }, + { s.h-000*s.s, s.h+075*s.s, s.l+075*s.s, s.h-006*s.s, s.h+078*s.s, s.l+078*s.s }, + { s.h-000*s.s, s.h+078*s.s, s.l+078*s.s, s.h-006*s.s, s.h+081*s.s, s.l+081*s.s }, + { s.h-000*s.s, s.h+081*s.s, s.l+081*s.s, s.h-006*s.s, s.h+084*s.s, s.l+084*s.s }, + { s.h-000*s.s, s.h+084*s.s, s.l+084*s.s, s.h-006*s.s, s.h+087*s.s, s.l+087*s.s }, + { s.h-000*s.s, s.h+087*s.s, s.l+087*s.s, s.h-006*s.s, s.h+090*s.s, s.l+090*s.s }, + { s.h-000*s.s, s.h+090*s.s, s.l+090*s.s, s.h-006*s.s, s.h+093*s.s, s.l+093*s.s }, + { s.h-000*s.s, s.h+093*s.s, s.l+093*s.s, s.h-006*s.s, s.h+096*s.s, s.l+096*s.s }, + { s.h-000*s.s, s.h+096*s.s, s.l+096*s.s, s.h-006*s.s, s.h+100*s.s, s.l+100*s.s }, --e.i[66] + } +e.j = { + { s.l+000*s.s, s.l+000*s.s, s.l+012*s.s, s.l+001*s.s, s.l+003*s.s, s.l+033*s.s }, --e.j[01] левое крепление... + { s.l+000*s.s, s.l+003*s.s, s.l+015*s.s, s.l+001*s.s, s.l+006*s.s, s.l+035*s.s }, + { s.l+000*s.s, s.l+006*s.s, s.l+018*s.s, s.l+001*s.s, s.l+009*s.s, s.l+038*s.s }, + { s.l+000*s.s, s.l+009*s.s, s.l+021*s.s, s.l+001*s.s, s.l+012*s.s, s.l+041*s.s }, + { s.l+000*s.s, s.l+012*s.s, s.l+024*s.s, s.l+001*s.s, s.l+015*s.s, s.l+044*s.s }, + { s.l+000*s.s, s.l+015*s.s, s.l+027*s.s, s.l+001*s.s, s.l+018*s.s, s.l+047*s.s }, + { s.l+000*s.s, s.l+018*s.s, s.l+030*s.s, s.l+001*s.s, s.l+021*s.s, s.l+050*s.s }, + { s.l+000*s.s, s.l+021*s.s, s.l+033*s.s, s.l+001*s.s, s.l+024*s.s, s.l+053*s.s }, + { s.l+000*s.s, s.l+024*s.s, s.l+036*s.s, s.l+001*s.s, s.l+027*s.s, s.l+056*s.s }, + { s.l+000*s.s, s.l+027*s.s, s.l+039*s.s, s.l+001*s.s, s.l+030*s.s, s.l+059*s.s }, + { s.l+000*s.s, s.l+030*s.s, s.l+041*s.s, s.l+001*s.s, s.l+033*s.s, s.l+062*s.s }, + { s.l+000*s.s, s.l+033*s.s, s.l+044*s.s, s.l+001*s.s, s.l+036*s.s, s.l+065*s.s }, + { s.l+000*s.s, s.l+036*s.s, s.l+047*s.s, s.l+001*s.s, s.l+039*s.s, s.l+068*s.s }, + { s.l+000*s.s, s.l+039*s.s, s.l+050*s.s, s.l+001*s.s, s.l+042*s.s, s.l+071*s.s }, + { s.l+000*s.s, s.l+042*s.s, s.l+053*s.s, s.l+001*s.s, s.l+045*s.s, s.l+074*s.s }, + { s.l+000*s.s, s.l+045*s.s, s.l+056*s.s, s.l+001*s.s, s.l+048*s.s, s.l+077*s.s }, + { s.l+000*s.s, s.l+048*s.s, s.l+059*s.s, s.l+001*s.s, s.l+051*s.s, s.l+080*s.s }, + { s.l+000*s.s, s.l+051*s.s, s.l+062*s.s, s.l+001*s.s, s.l+054*s.s, s.l+083*s.s }, + { s.l+000*s.s, s.l+054*s.s, s.l+065*s.s, s.l+001*s.s, s.l+057*s.s, s.l+086*s.s }, + { s.l+000*s.s, s.l+057*s.s, s.l+068*s.s, s.l+001*s.s, s.l+060*s.s, s.l+089*s.s }, + { s.l+000*s.s, s.l+060*s.s, s.l+071*s.s, s.l+001*s.s, s.l+063*s.s, s.l+092*s.s }, + { s.l+000*s.s, s.l+063*s.s, s.l+074*s.s, s.l+001*s.s, s.l+066*s.s, s.l+095*s.s }, + { s.l+000*s.s, s.l+066*s.s, s.l+077*s.s, s.l+001*s.s, s.l+069*s.s, s.l+098*s.s }, + { s.l+000*s.s, s.l+069*s.s, s.l+080*s.s, s.l+001*s.s, s.l+072*s.s, s.l+101*s.s }, + { s.l+000*s.s, s.l+072*s.s, s.l+083*s.s, s.l+001*s.s, s.l+075*s.s, s.l+104*s.s }, + { s.l+000*s.s, s.l+075*s.s, s.l+086*s.s, s.l+001*s.s, s.l+078*s.s, s.l+107*s.s }, + { s.l+000*s.s, s.l+078*s.s, s.l+089*s.s, s.l+001*s.s, s.l+081*s.s, s.l+110*s.s }, + { s.l+000*s.s, s.l+081*s.s, s.l+092*s.s, s.l+001*s.s, s.l+084*s.s, s.l+113*s.s }, + { s.l+000*s.s, s.l+084*s.s, s.l+095*s.s, s.l+001*s.s, s.l+087*s.s, s.l+116*s.s }, + { s.l+000*s.s, s.l+087*s.s, s.l+098*s.s, s.l+001*s.s, s.l+090*s.s, s.l+119*s.s }, + { s.l+000*s.s, s.l+090*s.s, s.l+101*s.s, s.l+001*s.s, s.l+093*s.s, s.l+121*s.s }, + { s.l+000*s.s, s.l+093*s.s, s.l+104*s.s, s.l+001*s.s, s.l+096*s.s, s.l+124*s.s }, + { s.l+000*s.s, s.l+096*s.s, s.l+107*s.s, s.l+001*s.s, s.l+099*s.s, s.l+127*s.s }, + { s.l+000*s.s, s.l+099*s.s, s.l+110*s.s, s.l+001*s.s, s.l+102*s.s, s.l+130*s.s }, --e.j[34] + { s.h-000*s.s, s.l+000*s.s, s.l+012*s.s, s.h-001*s.s, s.l+003*s.s, s.l+033*s.s }, --e.j[35] правое крепление + { s.h-000*s.s, s.l+003*s.s, s.l+015*s.s, s.h-001*s.s, s.l+006*s.s, s.l+035*s.s }, + { s.h-000*s.s, s.l+006*s.s, s.l+018*s.s, s.h-001*s.s, s.l+009*s.s, s.l+038*s.s }, + { s.h-000*s.s, s.l+009*s.s, s.l+021*s.s, s.h-001*s.s, s.l+012*s.s, s.l+041*s.s }, + { s.h-000*s.s, s.l+012*s.s, s.l+024*s.s, s.h-001*s.s, s.l+015*s.s, s.l+044*s.s }, + { s.h-000*s.s, s.l+015*s.s, s.l+027*s.s, s.h-001*s.s, s.l+018*s.s, s.l+047*s.s }, + { s.h-000*s.s, s.l+018*s.s, s.l+030*s.s, s.h-001*s.s, s.l+021*s.s, s.l+050*s.s }, + { s.h-000*s.s, s.l+021*s.s, s.l+033*s.s, s.h-001*s.s, s.l+024*s.s, s.l+053*s.s }, + { s.h-000*s.s, s.l+024*s.s, s.l+036*s.s, s.h-001*s.s, s.l+027*s.s, s.l+056*s.s }, + { s.h-000*s.s, s.l+027*s.s, s.l+039*s.s, s.h-001*s.s, s.l+030*s.s, s.l+059*s.s }, + { s.h-000*s.s, s.l+030*s.s, s.l+041*s.s, s.h-001*s.s, s.l+033*s.s, s.l+062*s.s }, + { s.h-000*s.s, s.l+033*s.s, s.l+044*s.s, s.h-001*s.s, s.l+036*s.s, s.l+065*s.s }, + { s.h-000*s.s, s.l+036*s.s, s.l+047*s.s, s.h-001*s.s, s.l+039*s.s, s.l+068*s.s }, + { s.h-000*s.s, s.l+039*s.s, s.l+050*s.s, s.h-001*s.s, s.l+042*s.s, s.l+071*s.s }, + { s.h-000*s.s, s.l+042*s.s, s.l+053*s.s, s.h-001*s.s, s.l+045*s.s, s.l+074*s.s }, + { s.h-000*s.s, s.l+045*s.s, s.l+056*s.s, s.h-001*s.s, s.l+048*s.s, s.l+077*s.s }, + { s.h-000*s.s, s.l+048*s.s, s.l+059*s.s, s.h-001*s.s, s.l+051*s.s, s.l+080*s.s }, + { s.h-000*s.s, s.l+051*s.s, s.l+062*s.s, s.h-001*s.s, s.l+054*s.s, s.l+083*s.s }, + { s.h-000*s.s, s.l+054*s.s, s.l+065*s.s, s.h-001*s.s, s.l+057*s.s, s.l+086*s.s }, + { s.h-000*s.s, s.l+057*s.s, s.l+068*s.s, s.h-001*s.s, s.l+060*s.s, s.l+089*s.s }, + { s.h-000*s.s, s.l+060*s.s, s.l+071*s.s, s.h-001*s.s, s.l+063*s.s, s.l+092*s.s }, + { s.h-000*s.s, s.l+063*s.s, s.l+074*s.s, s.h-001*s.s, s.l+066*s.s, s.l+095*s.s }, + { s.h-000*s.s, s.l+066*s.s, s.l+077*s.s, s.h-001*s.s, s.l+069*s.s, s.l+098*s.s }, + { s.h-000*s.s, s.l+069*s.s, s.l+080*s.s, s.h-001*s.s, s.l+072*s.s, s.l+101*s.s }, + { s.h-000*s.s, s.l+072*s.s, s.l+083*s.s, s.h-001*s.s, s.l+075*s.s, s.l+104*s.s }, + { s.h-000*s.s, s.l+075*s.s, s.l+086*s.s, s.h-001*s.s, s.l+078*s.s, s.l+107*s.s }, + { s.h-000*s.s, s.l+078*s.s, s.l+089*s.s, s.h-001*s.s, s.l+081*s.s, s.l+110*s.s }, + { s.h-000*s.s, s.l+081*s.s, s.l+092*s.s, s.h-001*s.s, s.l+084*s.s, s.l+113*s.s }, + { s.h-000*s.s, s.l+084*s.s, s.l+095*s.s, s.h-001*s.s, s.l+087*s.s, s.l+116*s.s }, + { s.h-000*s.s, s.l+087*s.s, s.l+098*s.s, s.h-001*s.s, s.l+090*s.s, s.l+119*s.s }, + { s.h-000*s.s, s.l+090*s.s, s.l+101*s.s, s.h-001*s.s, s.l+093*s.s, s.l+121*s.s }, + { s.h-000*s.s, s.l+093*s.s, s.l+104*s.s, s.h-001*s.s, s.l+096*s.s, s.l+124*s.s }, + { s.h-000*s.s, s.l+096*s.s, s.l+107*s.s, s.h-001*s.s, s.l+099*s.s, s.l+127*s.s }, + { s.h-000*s.s, s.l+099*s.s, s.l+110*s.s, s.h-001*s.s, s.l+102*s.s, s.l+130*s.s }, --e.j[68] + } + +e.k = { -- 1.24 x 0.04 x 0.04 + { s.l+001*s.s, s.l-100*s.s, s.l+023*s.s, s.l+005*s.s, s.l+024*s.s, s.l+027*s.s }, --e.h[1] стойка левая ближняя (для ступеньки) + { s.l+001*s.s, s.l-050*s.s, s.h-027*s.s, s.l+005*s.s, s.l+075*s.s, s.h-023*s.s }, --e.h[2] стойка левая дальняя (для ступеньки) + { s.h-001*s.s, s.l-100*s.s, s.l+023*s.s, s.h-005*s.s, s.l+024*s.s, s.l+027*s.s }, --e.h[3] стойка правая ближняя (для ступеньки) + { s.h-001*s.s, s.l-050*s.s, s.h-027*s.s, s.h-005*s.s, s.l+075*s.s, s.h-023*s.s }, --e.h[4] стойка правая дальняя (для ступеньки) + } +e.l = { + { s.l+000*s.s, s.l+000*s.s, s.l+000*s.s, s.l+006*s.s, s.l+003*s.s, s.l+003*s.s }, --e.i[01] левый поручень... + { s.l+000*s.s, s.l+003*s.s, s.l+003*s.s, s.l+006*s.s, s.l+006*s.s, s.l+006*s.s }, + { s.l+000*s.s, s.l+006*s.s, s.l+006*s.s, s.l+006*s.s, s.l+009*s.s, s.l+009*s.s }, + { s.l+000*s.s, s.l+009*s.s, s.l+009*s.s, s.l+006*s.s, s.l+012*s.s, s.l+012*s.s }, + { s.l+000*s.s, s.l+012*s.s, s.l+012*s.s, s.l+006*s.s, s.l+015*s.s, s.l+015*s.s }, + { s.l+000*s.s, s.l+015*s.s, s.l+015*s.s, s.l+006*s.s, s.l+018*s.s, s.l+018*s.s }, + { s.l+000*s.s, s.l+018*s.s, s.l+018*s.s, s.l+006*s.s, s.l+021*s.s, s.l+021*s.s }, + { s.l+000*s.s, s.l+021*s.s, s.l+021*s.s, s.l+006*s.s, s.l+024*s.s, s.l+024*s.s }, + { s.l+000*s.s, s.l+024*s.s, s.l+024*s.s, s.l+006*s.s, s.l+027*s.s, s.l+027*s.s }, + { s.l+000*s.s, s.l+027*s.s, s.l+027*s.s, s.l+006*s.s, s.l+030*s.s, s.l+030*s.s }, + { s.l+000*s.s, s.l+030*s.s, s.l+030*s.s, s.l+006*s.s, s.l+033*s.s, s.l+033*s.s }, + { s.l+000*s.s, s.l+033*s.s, s.l+033*s.s, s.l+006*s.s, s.l+036*s.s, s.l+036*s.s }, + { s.l+000*s.s, s.l+036*s.s, s.l+036*s.s, s.l+006*s.s, s.l+039*s.s, s.l+039*s.s }, + { s.l+000*s.s, s.l+039*s.s, s.l+039*s.s, s.l+006*s.s, s.l+042*s.s, s.l+042*s.s }, + { s.l+000*s.s, s.l+042*s.s, s.l+042*s.s, s.l+006*s.s, s.l+045*s.s, s.l+045*s.s }, + { s.l+000*s.s, s.l+045*s.s, s.l+045*s.s, s.l+006*s.s, s.l+048*s.s, s.l+048*s.s }, + { s.l+000*s.s, s.l+048*s.s, s.l+048*s.s, s.l+006*s.s, s.l+051*s.s, s.l+051*s.s }, + { s.l+000*s.s, s.l+051*s.s, s.l+051*s.s, s.l+006*s.s, s.l+054*s.s, s.l+054*s.s }, + { s.l+000*s.s, s.l+054*s.s, s.l+054*s.s, s.l+006*s.s, s.l+057*s.s, s.l+057*s.s }, + { s.l+000*s.s, s.l+057*s.s, s.l+057*s.s, s.l+006*s.s, s.l+060*s.s, s.l+060*s.s }, + { s.l+000*s.s, s.l+060*s.s, s.l+060*s.s, s.l+006*s.s, s.l+063*s.s, s.l+063*s.s }, + { s.l+000*s.s, s.l+063*s.s, s.l+063*s.s, s.l+006*s.s, s.l+066*s.s, s.l+066*s.s }, + { s.l+000*s.s, s.l+066*s.s, s.l+066*s.s, s.l+006*s.s, s.l+069*s.s, s.l+069*s.s }, + { s.l+000*s.s, s.l+069*s.s, s.l+069*s.s, s.l+006*s.s, s.l+072*s.s, s.l+072*s.s }, + { s.l+000*s.s, s.l+072*s.s, s.l+072*s.s, s.l+006*s.s, s.l+075*s.s, s.l+075*s.s }, + { s.l+000*s.s, s.l+075*s.s, s.l+075*s.s, s.l+006*s.s, s.l+078*s.s, s.l+078*s.s }, + { s.l+000*s.s, s.l+078*s.s, s.l+078*s.s, s.l+006*s.s, s.l+081*s.s, s.l+081*s.s }, + { s.l+000*s.s, s.l+081*s.s, s.l+081*s.s, s.l+006*s.s, s.l+084*s.s, s.l+084*s.s }, + { s.l+000*s.s, s.l+084*s.s, s.l+084*s.s, s.l+006*s.s, s.l+087*s.s, s.l+087*s.s }, + { s.l+000*s.s, s.l+087*s.s, s.l+087*s.s, s.l+006*s.s, s.l+090*s.s, s.l+090*s.s }, + { s.l+000*s.s, s.l+090*s.s, s.l+090*s.s, s.l+006*s.s, s.l+093*s.s, s.l+093*s.s }, + { s.l+000*s.s, s.l+093*s.s, s.l+093*s.s, s.l+006*s.s, s.l+096*s.s, s.l+096*s.s }, + { s.l+000*s.s, s.l+096*s.s, s.l+096*s.s, s.l+006*s.s, s.l+100*s.s, s.l+100*s.s }, --e.i[33] + { s.h-000*s.s, s.l+000*s.s, s.l+000*s.s, s.h-006*s.s, s.l+003*s.s, s.l+003*s.s }, --e.i[34] правый поручень... + { s.h-000*s.s, s.l+003*s.s, s.l+003*s.s, s.h-006*s.s, s.l+006*s.s, s.l+006*s.s }, + { s.h-000*s.s, s.l+006*s.s, s.l+006*s.s, s.h-006*s.s, s.l+009*s.s, s.l+009*s.s }, + { s.h-000*s.s, s.l+009*s.s, s.l+009*s.s, s.h-006*s.s, s.l+012*s.s, s.l+012*s.s }, + { s.h-000*s.s, s.l+012*s.s, s.l+012*s.s, s.h-006*s.s, s.l+015*s.s, s.l+015*s.s }, + { s.h-000*s.s, s.l+015*s.s, s.l+015*s.s, s.h-006*s.s, s.l+018*s.s, s.l+018*s.s }, + { s.h-000*s.s, s.l+018*s.s, s.l+018*s.s, s.h-006*s.s, s.l+021*s.s, s.l+021*s.s }, + { s.h-000*s.s, s.l+021*s.s, s.l+021*s.s, s.h-006*s.s, s.l+024*s.s, s.l+024*s.s }, + { s.h-000*s.s, s.l+024*s.s, s.l+024*s.s, s.h-006*s.s, s.l+027*s.s, s.l+027*s.s }, + { s.h-000*s.s, s.l+027*s.s, s.l+027*s.s, s.h-006*s.s, s.l+030*s.s, s.l+030*s.s }, + { s.h-000*s.s, s.l+030*s.s, s.l+030*s.s, s.h-006*s.s, s.l+033*s.s, s.l+033*s.s }, + { s.h-000*s.s, s.l+033*s.s, s.l+033*s.s, s.h-006*s.s, s.l+036*s.s, s.l+036*s.s }, + { s.h-000*s.s, s.l+036*s.s, s.l+036*s.s, s.h-006*s.s, s.l+039*s.s, s.l+039*s.s }, + { s.h-000*s.s, s.l+039*s.s, s.l+039*s.s, s.h-006*s.s, s.l+042*s.s, s.l+042*s.s }, + { s.h-000*s.s, s.l+042*s.s, s.l+042*s.s, s.h-006*s.s, s.l+045*s.s, s.l+045*s.s }, + { s.h-000*s.s, s.l+045*s.s, s.l+045*s.s, s.h-006*s.s, s.l+048*s.s, s.l+048*s.s }, + { s.h-000*s.s, s.l+048*s.s, s.l+048*s.s, s.h-006*s.s, s.l+051*s.s, s.l+051*s.s }, + { s.h-000*s.s, s.l+051*s.s, s.l+051*s.s, s.h-006*s.s, s.l+054*s.s, s.l+054*s.s }, + { s.h-000*s.s, s.l+054*s.s, s.l+054*s.s, s.h-006*s.s, s.l+057*s.s, s.l+057*s.s }, + { s.h-000*s.s, s.l+057*s.s, s.l+057*s.s, s.h-006*s.s, s.l+060*s.s, s.l+060*s.s }, + { s.h-000*s.s, s.l+060*s.s, s.l+060*s.s, s.h-006*s.s, s.l+063*s.s, s.l+063*s.s }, + { s.h-000*s.s, s.l+063*s.s, s.l+063*s.s, s.h-006*s.s, s.l+066*s.s, s.l+066*s.s }, + { s.h-000*s.s, s.l+066*s.s, s.l+066*s.s, s.h-006*s.s, s.l+069*s.s, s.l+069*s.s }, + { s.h-000*s.s, s.l+069*s.s, s.l+069*s.s, s.h-006*s.s, s.l+072*s.s, s.l+072*s.s }, + { s.h-000*s.s, s.l+072*s.s, s.l+072*s.s, s.h-006*s.s, s.l+075*s.s, s.l+075*s.s }, + { s.h-000*s.s, s.l+075*s.s, s.l+075*s.s, s.h-006*s.s, s.l+078*s.s, s.l+078*s.s }, + { s.h-000*s.s, s.l+078*s.s, s.l+078*s.s, s.h-006*s.s, s.l+081*s.s, s.l+081*s.s }, + { s.h-000*s.s, s.l+081*s.s, s.l+081*s.s, s.h-006*s.s, s.l+084*s.s, s.l+084*s.s }, + { s.h-000*s.s, s.l+084*s.s, s.l+084*s.s, s.h-006*s.s, s.l+087*s.s, s.l+087*s.s }, + { s.h-000*s.s, s.l+087*s.s, s.l+087*s.s, s.h-006*s.s, s.l+090*s.s, s.l+090*s.s }, + { s.h-000*s.s, s.l+090*s.s, s.l+090*s.s, s.h-006*s.s, s.l+093*s.s, s.l+093*s.s }, + { s.h-000*s.s, s.l+093*s.s, s.l+093*s.s, s.h-006*s.s, s.l+096*s.s, s.l+096*s.s }, + { s.h-000*s.s, s.l+096*s.s, s.l+096*s.s, s.h-006*s.s, s.l+100*s.s, s.l+100*s.s }, --e.i[66] + } + +FB.MODELS = {} + +FB.MODELS.A01 = {e.e[01], e.f[01]} -- одна угловая стойка +FB.MODELS.A02 = {e.e[01], e.f[01], e.e[02], e.f[02]} -- две угловых стойки +FB.MODELS.A03 = {e.e[01], e.f[01], e.e[02], e.f[02], e.e[03], e.f[03]} -- три угловых стойки +FB.MODELS.A04 = {e.e[01], e.f[01], e.e[02], e.f[02], e.e[03], e.f[03], e.e[04], e.f[04]} -- четыре угловых стойки +FB.MODELS.A05 = {e.e[05], e.e[06], e.d[05]} -- дальние перила +FB.MODELS.A06 = {e.e[05], e.e[06], e.d[05], e.e[03], e.f[03]} -- дальние перила и угловая правая ближняя стойка +FB.MODELS.A07 = {e.e[05], e.e[06], e.d[05], e.e[04], e.f[04]} -- дальние перила и угловая левая ближняя стойка +FB.MODELS.A08 = {e.e[05], e.e[06], e.d[05], e.e[03], e.f[03], e.e[04], e.f[04]} -- дальние перила и угловые ближние стойки +FB.MODELS.A09 = {e.e[05], e.e[06], e.d[05], e.e[11], e.e[12], e.d[08]} -- дальние и левые перила +FB.MODELS.A10 = {e.e[05], e.e[06], e.d[05], e.e[11], e.e[12], e.d[08], e.e[03], e.f[03]} -- дальние и левые перила и угловая правая ближняя стойка +FB.MODELS.A11 = {e.e[07], e.e[08], e.d[06], e.e[11], e.e[12], e.d[08]} -- правые и левые перила +FB.MODELS.A12 = {e.e[07], e.e[08], e.d[06], e.e[11], e.e[12], e.d[08], e.e[05], e.e[06], e.d[05]} -- правые, левые и дальние перила +FB.MODELS.A13 = {e.k[01], e.k[02], -- наклонный левый поручень + e.l[01], e.l[02], e.l[03], e.l[04], e.l[05], e.l[06], e.l[07], e.l[08], e.l[09], e.l[10], e.l[11], + e.l[12], e.l[13], e.l[14], e.l[15], e.l[16], e.l[17], e.l[18], e.l[19], e.l[20], e.l[21], e.l[22], + e.l[23], e.l[24], e.l[25], e.l[26], e.l[27], e.l[28], e.l[29], e.l[30], e.l[31], e.l[32], e.l[33], + } +FB.MODELS.A14 = {e.k[03], e.k[04], -- наклонный правый поручень + e.l[34], e.l[35], e.l[36], e.l[37], e.l[38], e.l[39], e.l[40], e.l[41], e.l[42], e.l[43], e.l[44], + e.l[45], e.l[46], e.l[47], e.l[48], e.l[49], e.l[50], e.l[51], e.l[52], e.l[53], e.l[54], e.l[55], + e.l[56], e.l[57], e.l[58], e.l[59], e.l[60], e.l[61], e.l[62], e.l[63], e.l[64], e.l[65], e.l[66], + } +FB.MODELS.A15 = {e.k[01], e.k[02], e.k[03], e.k[04], -- наклонный двойной поручень + e.l[01], e.l[02], e.l[03], e.l[04], e.l[05], e.l[06], e.l[07], e.l[08], e.l[09], e.l[10], e.l[11], + e.l[12], e.l[13], e.l[14], e.l[15], e.l[16], e.l[17], e.l[18], e.l[19], e.l[20], e.l[21], e.l[22], + e.l[23], e.l[24], e.l[25], e.l[26], e.l[27], e.l[28], e.l[29], e.l[30], e.l[31], e.l[32], e.l[33], + e.l[34], e.l[35], e.l[36], e.l[37], e.l[38], e.l[39], e.l[40], e.l[41], e.l[42], e.l[43], e.l[44], + e.l[45], e.l[46], e.l[47], e.l[48], e.l[49], e.l[50], e.l[51], e.l[52], e.l[53], e.l[54], e.l[55], + e.l[56], e.l[57], e.l[58], e.l[59], e.l[60], e.l[61], e.l[62], e.l[63], e.l[64], e.l[65], e.l[66], + } + + +FB.MODELS.B00 = {e.a[01]} -- нижняя плита +FB.MODELS.B01 = {e.a[01], e.e[01], e.f[01]} -- одна угловая стойка +FB.MODELS.B02 = {e.a[01], e.e[01], e.f[01], e.e[02], e.f[02]} -- две угловых стойки +FB.MODELS.B03 = {e.a[01], e.e[01], e.f[01], e.e[02], e.f[02], e.e[03], e.f[03]} -- три угловых стойки +FB.MODELS.B04 = {e.a[01], e.e[01], e.f[01], e.e[02], e.f[02], e.e[03], e.f[03], e.e[04], e.f[04]} -- четыре угловых стойки +FB.MODELS.B05 = {e.a[01], e.e[05], e.e[06], e.d[05]} -- дальние перила +FB.MODELS.B06 = {e.a[01], e.e[05], e.e[06], e.d[05], e.e[03], e.f[03]} -- дальние перила и угловая правая ближняя стойка +FB.MODELS.B07 = {e.a[01], e.e[05], e.e[06], e.d[05], e.e[04], e.f[04]} -- дальние перила и угловая левая ближняя стойка +FB.MODELS.B08 = {e.a[01], e.e[05], e.e[06], e.d[05], e.e[03], e.f[03], e.e[04], e.f[04]} -- дальние перила и угловые ближние стойки +FB.MODELS.B09 = {e.a[01], e.e[05], e.e[06], e.d[05], e.e[11], e.e[12], e.d[08]} -- дальние и левые перила +FB.MODELS.B10 = {e.a[01], e.e[05], e.e[06], e.d[05], e.e[11], e.e[12], e.d[08], e.e[03], e.f[03]} -- дальние и левые перила и угловая правая ближняя стойка +FB.MODELS.B11 = {e.a[01], e.e[07], e.e[08], e.d[06], e.e[11], e.e[12], e.d[08]} -- правые и левые перила +FB.MODELS.B12 = {e.a[01], e.e[07], e.e[08], e.d[06], e.e[11], e.e[12], e.d[08], e.e[05], e.e[06], e.d[05]} -- правые, левые и дальние перила + +FB.MODELS.C00 = {e.b[01], e.b[02], -- ступеньки + e.j[01], e.j[02], e.j[03], e.j[04], e.j[05], e.j[06], e.j[07], e.j[08], e.j[09], e.j[10], e.j[11], + e.j[12], e.j[13], e.j[14], e.j[15], e.j[16], e.j[17], e.j[18], e.j[19], e.j[20], e.j[21], e.j[22], + e.j[23], e.j[24], e.j[25], e.j[26], e.j[27], e.j[28], e.j[29], e.j[30], e.j[31], e.j[32], e.j[33], e.j[34], + e.j[35], e.j[36], e.j[37], e.j[38], e.j[39], e.j[40], e.j[41], e.j[42], e.j[43], e.j[44], e.j[45], + e.j[46], e.j[47], e.j[48], e.j[49], e.j[50], e.j[51], e.j[52], e.j[53], e.j[54], e.j[55], e.j[56], + e.j[57], e.j[58], e.j[59], e.j[60], e.j[61], e.j[62], e.j[63], e.j[64], e.j[65], e.j[66], e.j[67], e.j[68], + } +FB.MODELS.C01 = {e.b[01], e.b[02], e.h[01], e.h[02], -- ступеньки с левым поручнем + e.j[01], e.j[02], e.j[03], e.j[04], e.j[05], e.j[06], e.j[07], e.j[08], e.j[09], e.j[10], e.j[11], + e.j[12], e.j[13], e.j[14], e.j[15], e.j[16], e.j[17], e.j[18], e.j[19], e.j[20], e.j[21], e.j[22], + e.j[23], e.j[24], e.j[25], e.j[26], e.j[27], e.j[28], e.j[29], e.j[30], e.j[31], e.j[32], e.j[33], e.j[34], + e.j[35], e.j[36], e.j[37], e.j[38], e.j[39], e.j[40], e.j[41], e.j[42], e.j[43], e.j[44], e.j[45], + e.j[46], e.j[47], e.j[48], e.j[49], e.j[50], e.j[51], e.j[52], e.j[53], e.j[54], e.j[55], e.j[56], + e.j[57], e.j[58], e.j[59], e.j[60], e.j[61], e.j[62], e.j[63], e.j[64], e.j[65], e.j[66], e.j[67], e.j[68], + e.i[01], e.i[02], e.i[03], e.i[04], e.i[05], e.i[06], e.i[07], e.i[08], e.i[09], e.i[10], e.i[11], + e.i[12], e.i[13], e.i[14], e.i[15], e.i[16], e.i[17], e.i[18], e.i[19], e.i[20], e.i[21], e.i[22], + e.i[23], e.i[24], e.i[25], e.i[26], e.i[27], e.i[28], e.i[29], e.i[30], e.i[31], e.i[32], e.i[33], + } +FB.MODELS.C02 = {e.b[01], e.b[02], e.h[03], e.h[04], -- ступеньки с правым поручнем + e.j[01], e.j[02], e.j[03], e.j[04], e.j[05], e.j[06], e.j[07], e.j[08], e.j[09], e.j[10], e.j[11], + e.j[12], e.j[13], e.j[14], e.j[15], e.j[16], e.j[17], e.j[18], e.j[19], e.j[20], e.j[21], e.j[22], + e.j[23], e.j[24], e.j[25], e.j[26], e.j[27], e.j[28], e.j[29], e.j[30], e.j[31], e.j[32], e.j[33], e.j[34], + e.j[35], e.j[36], e.j[37], e.j[38], e.j[39], e.j[40], e.j[41], e.j[42], e.j[43], e.j[44], e.j[45], + e.j[46], e.j[47], e.j[48], e.j[49], e.j[50], e.j[51], e.j[52], e.j[53], e.j[54], e.j[55], e.j[56], + e.j[57], e.j[58], e.j[59], e.j[60], e.j[61], e.j[62], e.j[63], e.j[64], e.j[65], e.j[66], e.j[67], e.j[68], + e.i[34], e.i[35], e.i[36], e.i[37], e.i[38], e.i[39], e.i[40], e.i[41], e.i[42], e.i[43], e.i[44], + e.i[45], e.i[46], e.i[47], e.i[48], e.i[49], e.i[50], e.i[51], e.i[52], e.i[53], e.i[54], e.i[55], + e.i[56], e.i[57], e.i[58], e.i[59], e.i[60], e.i[61], e.i[62], e.i[63], e.i[64], e.i[65], e.i[66], + } +FB.MODELS.C03 = {e.b[01], e.b[02], e.h[01], e.h[02], e.h[03], e.h[04], -- ступеньки с обоими поручнями + e.j[01], e.j[02], e.j[03], e.j[04], e.j[05], e.j[06], e.j[07], e.j[08], e.j[09], e.j[10], e.j[11], + e.j[12], e.j[13], e.j[14], e.j[15], e.j[16], e.j[17], e.j[18], e.j[19], e.j[20], e.j[21], e.j[22], + e.j[23], e.j[24], e.j[25], e.j[26], e.j[27], e.j[28], e.j[29], e.j[30], e.j[31], e.j[32], e.j[33], e.j[34], + e.j[35], e.j[36], e.j[37], e.j[38], e.j[39], e.j[40], e.j[41], e.j[42], e.j[43], e.j[44], e.j[45], + e.j[46], e.j[47], e.j[48], e.j[49], e.j[50], e.j[51], e.j[52], e.j[53], e.j[54], e.j[55], e.j[56], + e.j[57], e.j[58], e.j[59], e.j[60], e.j[61], e.j[62], e.j[63], e.j[64], e.j[65], e.j[66], e.j[67], e.j[68], + e.i[01], e.i[02], e.i[03], e.i[04], e.i[05], e.i[06], e.i[07], e.i[08], e.i[09], e.i[10], e.i[11], + e.i[12], e.i[13], e.i[14], e.i[15], e.i[16], e.i[17], e.i[18], e.i[19], e.i[20], e.i[21], e.i[22], + e.i[23], e.i[24], e.i[25], e.i[26], e.i[27], e.i[28], e.i[29], e.i[30], e.i[31], e.i[32], e.i[33], + e.i[34], e.i[35], e.i[36], e.i[37], e.i[38], e.i[39], e.i[40], e.i[41], e.i[42], e.i[43], e.i[44], + e.i[45], e.i[46], e.i[47], e.i[48], e.i[49], e.i[50], e.i[51], e.i[52], e.i[53], e.i[54], e.i[55], + e.i[56], e.i[57], e.i[58], e.i[59], e.i[60], e.i[61], e.i[62], e.i[63], e.i[64], e.i[65], e.i[66], + } + +FB.MODELS.D00 = {e.c[01], e.g[01], e.g[02], e.d[01], e.d[02], e.d[03], e.d[04]} -- люк закрытый +FB.MODELS.D01 = {e.c[02], e.g[01], e.g[02], e.d[01], e.d[02], e.d[03], e.d[04]} -- люк открытый + +FB.MODELS.S00 = {e.d[09], e.d[10], e.e[13], e.e[14]} -- открытая вертикальная лестница +FB.MODELS.S01 = {e.d[09], e.d[10], e.e[13], e.e[14], e.d[11], e.d[12], e.d[13], e.d[14], e.d[15], e.d[16], e.d[17], e.d[18], e.d[19]} -- закрытая вертикальная лестница +FB.MODELS.S02 = {e.d[09], e.d[10], e.d[11], e.d[12], e.d[13], e.d[06], e.d[07], e.d[08]} -- верх вертикальной лестницы +FB.MODELS.S03 = {e.d[09], e.d[10], e.e[13], e.e[14], e.d[11], e.d[13], e.d[08], e.d[07]} -- закрытая вертикальная лестница с выходом направо +FB.MODELS.S04 = {e.d[09], e.d[10], e.e[13], e.e[14], e.d[12], e.d[13], e.d[06], e.d[07]} -- закрытая вертикальная лестница с выходом налево +FB.MODELS.S05 = {e.d[09], e.d[10], e.e[13], e.e[14], e.d[13], e.d[07]} -- закрытая вертикальная лестница с выходами направо и налево diff --git a/games/default/files/Decorations/factory_bridges/nodes.lua b/games/default/files/Decorations/factory_bridges/nodes.lua new file mode 100644 index 000000000..0bd5582a4 --- /dev/null +++ b/games/default/files/Decorations/factory_bridges/nodes.lua @@ -0,0 +1,93 @@ + +color1 = minetest.setting_get("color1") or "292421" +color2 = minetest.setting_get("color2") or "0000FF" +color3 = minetest.setting_get("color3") or "00FF00" +color4 = minetest.setting_get("color4") or "F5F5F5" +color5 = minetest.setting_get("color5") or "FF6103" +color6 = minetest.setting_get("color6") or "FF0000" +color7 = minetest.setting_get("color7") or "FFFF00" +color8 = minetest.setting_get("color8") or "FF69B4" + +local source_list = { + {"black", "Color1", color1, 40, 36, 33}, + {"blue", "Color2", color2, 0, 0, 255}, + {"green", "Color3", color3, 0, 255, 0}, + {"white", "Color4", color4, 245, 245, 245}, + {"orange", "Color5", color5, 255, 97, 3}, + {"red", "Color6", color6, 255, 0, 0}, + {"yellow", "Color7", color7, 255, 255, 0}, + {"pink", "Color8", color8, 255, 105, 180} +} + +for i in ipairs(source_list) do + local color = source_list[i][1] + local desc = source_list[i][2] + local colour = source_list[i][3] + local red = source_list[i][4] + local green = source_list[i][5] + local blue = source_list[i][6] + +minetest.register_node(FB.NAME..":stair" .. color, { + description = FB.LOCAL("c00"), + drawtype = "nodebox", + paramtype = "light", + paramtype2 = "facedir", + groups = {cracky = 2}, + wield_image = "color_handwhite.png^(color_handwhite2.png^[colorize:#"..colour..":70)", + wield_scale = {x=1,y=1,z=0.5}, + inventory_image = "fbstair.png^[colorize:#"..colour..":70", + tiles = {"color_white.png^[colorize:#"..colour..":70"}, + node_box = {type = "fixed", fixed = FB.MODELS.C00}, +}) + +minetest.register_node(FB.NAME..":trap1" .. color, { + description = FB.LOCAL("d00"), + drawtype = "nodebox", + paramtype = "light", + paramtype2 = "facedir", + groups = {cracky = 2}, + wield_image = "color_handwhite.png^(color_handwhite2.png^[colorize:#"..colour..":70)", + wield_scale = {x=1,y=1,z=0.5}, + inventory_image = "fbtrap.png^[colorize:#"..colour..":70", + tiles = {"color_white.png^[colorize:#"..colour..":70"}, + node_box = {type = "fixed", fixed = FB.MODELS.D00}, + on_rightclick = function(pos, node, player, itemstack, pointed_thing) + minetest.set_node(pos, {name=FB.NAME..":trap2" ..color, param2=node.param2}) + end, +}) + +minetest.register_node(FB.NAME..":trap2" .. color, { + description = FB.LOCAL("d01"), + drawtype = "nodebox", + paramtype = "light", + paramtype2 = "facedir", + groups = {cracky=2, not_in_creative_inventory = 1}, + wield_image = "color_handwhite.png^(color_handwhite2.png^[colorize:#"..colour..":70)", + wield_scale = {x=1,y=1,z=0.5}, + inventory_image = "fbtrap.png^[colorize:#"..colour..":70", + tiles = {"color_white.png^[colorize:#"..colour..":70"}, + node_box = {type = "fixed", fixed = FB.MODELS.D01}, + on_rightclick = function(pos, node, player, itemstack, pointed_thing) + minetest.set_node(pos, {name=FB.NAME..":trap1" ..color, param2=node.param2}) + end, + drop = FB.NAME..":d00", +}) + +minetest.register_node(FB.NAME..":ladder" .. color, { + description = FB.LOCAL("s00"), + drawtype = "nodebox", + paramtype = "light", + paramtype2 = "facedir", + climbable = true, + groups = {cracky = 2}, + wield_image = "color_handwhite.png^(color_handwhite2.png^[colorize:#"..colour..":70)", + wield_scale = {x=1,y=1,z=0.5}, + inventory_image = "fbladder.png^[colorize:#"..colour..":70", + tiles = {"color_white.png^[colorize:#"..colour..":70"}, + node_box = {type = "fixed", fixed = FB.MODELS.S00}, +}) + +-- minetest.register_alias(FB.NAME..":a00", FB.NAME..":a01") +-- minetest.register_alias(FB.NAME..":s06", FB.NAME..":c03") + +end diff --git a/games/default/files/Decorations/flags/depends.txt b/games/default/files/Decorations/flags/depends.txt new file mode 100644 index 000000000..22ed7be9e --- /dev/null +++ b/games/default/files/Decorations/flags/depends.txt @@ -0,0 +1,2 @@ +default +color \ No newline at end of file diff --git a/games/default/files/Decorations/flags/description.txt b/games/default/files/Decorations/flags/description.txt new file mode 100644 index 000000000..8b2a801a7 --- /dev/null +++ b/games/default/files/Decorations/flags/description.txt @@ -0,0 +1 @@ +A mod for add Flags \ No newline at end of file diff --git a/games/default/files/Decorations/flags/init.lua b/games/default/files/Decorations/flags/init.lua new file mode 100644 index 000000000..508d7fee2 --- /dev/null +++ b/games/default/files/Decorations/flags/init.lua @@ -0,0 +1,51 @@ +color1 = minetest.setting_get("color1") or "292421" +color2 = minetest.setting_get("color2") or "0000FF" +color3 = minetest.setting_get("color3") or "00FF00" +color4 = minetest.setting_get("color4") or "F5F5F5" +color5 = minetest.setting_get("color5") or "FF6103" +color6 = minetest.setting_get("color6") or "FF0000" +color7 = minetest.setting_get("color7") or "FFFF00" +color8 = minetest.setting_get("color8") or "FF69B4" + +local source_list = { + {"black", "Color1", color1, 40, 36, 33}, + {"blue", "Color2", color2, 0, 0, 255}, + {"green", "Color3", color3, 0, 255, 0}, + {"white", "Color4", color4, 245, 245, 245}, + {"orange", "Color5", color5, 255, 97, 3}, + {"red", "Color6", color6, 255, 0, 0}, + {"yellow", "Color7", color7, 255, 255, 0}, + {"pink", "Color8", color8, 255, 105, 180} +} + +for i in ipairs(source_list) do + local name = source_list[i][1] + local desc = source_list[i][2] + local colour = source_list[i][3] + local red = source_list[i][4] + local green = source_list[i][5] + local blue = source_list[i][6] + +minetest.register_node("flags:" ..name, { + description = ("Flag"), + drawtype = "torchlike", + visual_scale = 3.0, + wield_image = "color_handwhite.png^(color_handwhite2.png^[colorize:#"..colour..":70)", + wield_scale = {x=1,y=1,z=0.5}, + inventory_image = "flag.png^[colorize:#"..colour..":70", + tiles = {"flags.png^[colorize:#"..colour..":70"}, + use_texture_alpha = true, + paramtype = "light", + paramtype2 = "wallmounted", + sunlight_propagates = true, + walkable = false, + light_source = 5, + is_ground_content = true, + selection_box = { + type = "fixed", + fixed = {-0.5, -0.5, -0.5, 0.5, -0.4, 0.5} + }, + groups = {cracky=3,dig_immediate=3}, +}) + +end diff --git a/games/default/files/Decorations/flags/intllib.lua b/games/default/files/Decorations/flags/intllib.lua new file mode 100644 index 000000000..6669d7202 --- /dev/null +++ b/games/default/files/Decorations/flags/intllib.lua @@ -0,0 +1,45 @@ + +-- Fallback functions for when `intllib` is not installed. +-- Code released under Unlicense . + +-- Get the latest version of this file at: +-- https://raw.githubusercontent.com/minetest-mods/intllib/master/lib/intllib.lua + +local function format(str, ...) + local args = { ... } + local function repl(escape, open, num, close) + if escape == "" then + local replacement = tostring(args[tonumber(num)]) + if open == "" then + replacement = replacement..close + end + return replacement + else + return "@"..open..num..close + end + end + return (str:gsub("(@?)@(%(?)(%d+)(%)?)", repl)) +end + +local gettext, ngettext +if minetest.get_modpath("intllib") then + if intllib.make_gettext_pair then + -- New method using gettext. + gettext, ngettext = intllib.make_gettext_pair() + else + -- Old method using text files. + gettext = intllib.Getter() + end +end + +-- Fill in missing functions. + +gettext = gettext or function(msgid, ...) + return format(msgid, ...) +end + +ngettext = ngettext or function(msgid, msgid_plural, n, ...) + return format(n==1 and msgid or msgid_plural, ...) +end + +return gettext, ngettext diff --git a/games/default/files/Decorations/flags/license.txt b/games/default/files/Decorations/flags/license.txt new file mode 100644 index 000000000..d2a1a3a6f --- /dev/null +++ b/games/default/files/Decorations/flags/license.txt @@ -0,0 +1,61 @@ + + +License for Code +---------------- + +Copyright (C) 2016-2017 D00Med + +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 2.1 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. + +Updates and help: +Wuzzy(aka Wuzzy2) +Thomas--S +zaoqi + +License for Textures, Models +--------------------------------------- + +CC BY-SA 3.0 UNPORTED. Created by D00Med + +policecar.b3d- CC BY-SA 3.0 UNPORTED. Created by Kdog14 and D00Med + +geep.b3d, vehicles_geep.png - CC BY-SA 3.0 UNPORTED. Created by Kdog14 + +License for sounds: +CC BY-NC 3.0 oniwe https://freesound.org/people/oniwe/sounds/32316/ + +shot.ogg - CC BY-NC 3.0 by Kibblesbob http://soundbible.com/1804-M4A1-Single.html + +ambulance.ogg - CC BY-SA 4.0 by Demircimehmed https://commons.wikimedia.org/wiki/File:AmbulanceSound1.wav + +--License of lib_mount: +-- Minetest mod: lib_mount +-- ======================= +-- by blert2112 + +-- Based on the Boats mod by PilzAdam. + + +-- ----------------------------------------------------------- +-- ----------------------------------------------------------- + + +-- Minetest Game mod: boats +-- ======================== +-- by PilzAdam + +-- License of source code: +-- ----------------------- +-- WTFPL \ No newline at end of file diff --git a/games/default/files/Decorations/flags/locale/fr.txt b/games/default/files/Decorations/flags/locale/fr.txt new file mode 100644 index 000000000..2d61af947 --- /dev/null +++ b/games/default/files/Decorations/flags/locale/fr.txt @@ -0,0 +1,65 @@ +# Translation by Papou30 +Ambulance = Ambulance +Armor plating = Blindage +Aston Maaton (white) = Aston Maaton (blanc) +Building glass = Verre de construction +Bullet = Cartouche +Car Body = Corps de voiture +Car sign = Affiche de voiture +Checkered sign = Signe à damier +Checkered surface = Surface à carreaux +Concrete = Béton +Engine = Moteur +Fewawi (blue) = Fewawi (bleu) +Fewawi (red) = Fewawi (rouge) +Fire truck = Camion de pompiers +Flag = Drapeau +Geep = Geep +Gun turret = Tourelle d'arme à feu +Hazard stipes = Stipes de danger +Jet = Jet +Jet Engine = Moteur à réaction +Lambogoni (grey) = Lambogoni (gris) +Lambogoni (yellow) = Lambogoni (jaune) +Masda (orange) = Masda (orange) +Masda (pink) = Masda (rose) +Missile = Missile +Musting (purple) = Musting (violet) +Musting (white) = Musting (blanc) +Nizzan (brown) = Nizzan (marron) +Nizzan (green) = Nizzan (vert) +Nyancat sign = Affiche de Nyancat +Parachute = Parachute +Plane = Avion +Police Car (US) = Voiture de police (US) +Pooshe (red) = Pooshe (rouge) +Pooshe (yellow) = Pooshe (jaune) +Propeller = Hélice +Rc (use with missiles) = Rc (utiliser pour les missiles) +Road Surface Slab = Dalle de la surface de la route +Road Surface Stair = Escalier de surface de route +Road surface = Surface de la route +Road surface (double stripe) = Surface de la route (double bande) +Road surface (stripe) = Surface de la route (bande) +Road surface (white stripes) = Surface de la route (rayures blanches) +Road surface (yellow stripes) = Surface de la route (bandes jaunes) +Speedboat = Speedboat +Tank = Tank +Tunnel Lights = Lumières de tunnel +Turning Arrows(left) = Flèches pour tourné a gauche +Turning Arrows(right) = Flèches pour tourné a droite +Ute (clean) = Ute (propre) +Ute (dirty) = Ute (sale) +Vehicle Gun = Arme pour véhicule +Wheel = Roue +Wings = Ailes +arrows(left) = Flèches(gauche) +arrows(right) = Flèche(droite) +mt sign = Panneau mt +neon arrows (left) = flèches au néon (à gauche) +neon arrows (right) = flèches au néon (à droite) +pacman sign = Panneau pacman +scifi_nodes sign = Panneau scifi_nodes +tyre stack = pile de pneu +whee sign = signe de plaisir + diff --git a/games/default/files/Decorations/flags/locale/ms.txt b/games/default/files/Decorations/flags/locale/ms.txt new file mode 100644 index 000000000..736939a16 --- /dev/null +++ b/games/default/files/Decorations/flags/locale/ms.txt @@ -0,0 +1,64 @@ +# Malay translation by muhdnurhidayat +Ambulance = Ambulans +Armor plating = Plat perisai +Aston Maaton (white) = Aston Maaton (putih) +Building glass = Kaca bangunan +Bullet = Peluru +Car Body = Badan Kereta +Car sign = Tanda kereta +Checkered sign = Tanda corak dam +Checkered surface = Permukaan corak dam +Concrete = Konkrit +Engine = Enjin +Fewawi (blue) = Fewawi (biru) +Fewawi (red) = Fewawi (merah) +Fire truck = Jentera bomba +Flag = Bendera pelepas +Geep = Jip +Gun turret = Turet penembak +Hazard stipes = Jalur bahaya +Jet = Jet +Jet Engine = Enjin Jet +Lambogoni (grey) = Lambogoni (kelabu) +Lambogoni (yellow) = Lambogoni (kuning) +Masda (orange) = Masda (jingga) +Masda (pink) = Masda (merah jambu) +Missile = Misil +Musting (purple) = Musting (ungu) +Musting (white) = Musting (putih) +Nizzan (brown) = Nizzan (perang) +Nizzan (green) = Nizzan (hijau) +Nyancat sign = Tanda nyancat +Parachute = Payung Terjun +Plane = Kapal terbang +Police Car (US) = Kereta Polis (AS) +Pooshe (red) = Pooshe (merah) +Pooshe (yellow) = Pooshe (kuning) +Propeller = Kipas +Rc (use with missiles) = Alat kawalan jauh (guna dengan misil) +Road Surface Slab = Papak Permukaan Jalan +Road Surface Stair = Tangga Permukaan Jalan +Road surface = Permukaan Jalan +Road surface (double stripe) = Permukaan Jalan (garisan berkembar) +Road surface (stripe) = Permukaan Jalan (garisan pembahagi) +Road surface (white stripes) = Permukaan Jalan (garisan berjalur putih) +Road surface (yellow stripes) = Permukaan Jalan (garisan berjalur kuning) +Speedboat = Bot Laju +Tank = Kereta Kebal +Tunnel Lights = Lampu Terowong +Turning Arrows(left) = Anak Panah Belok (kiri) +Turning Arrows(right) = Anak Panah Belok (Kanan) +Ute (clean) = Ute (bersih) +Ute (dirty) = Ute (kotor) +Vehicle Gun = Meriam Kenderaan +Wheel = Tayar +Wings = Sayap +arrows(left) = Anak Panah (kiri) +arrows(right) = Anak Panah (kanan) +mt sign = Tanda mt +neon arrows (left) = Anak panah neon (kiri) +neon arrows (right) = Anak panah neon (kanan) +pacman sign = Tanda pacman +scifi_nodes sign = Tanda scifi_nodes +tyre stack = Tindanan tayar +whee sign = Tanda whee diff --git a/games/default/files/Decorations/flags/locale/template.txt b/games/default/files/Decorations/flags/locale/template.txt new file mode 100644 index 000000000..d9250d663 --- /dev/null +++ b/games/default/files/Decorations/flags/locale/template.txt @@ -0,0 +1,64 @@ +# Template +Ambulance = +Armor plating = +Aston Maaton (white) = +Building glass = +Bullet = +Car Body = +Car sign = +Checkered sign = +Checkered surface = +Concrete = +Engine = +Fewawi (blue) = +Fewawi (red) = +Fire truck = +Flag = +Geep = +Gun turret = +Hazard stipes = +Jet = +Jet Engine = +Lambogoni (grey) = +Lambogoni (yellow) = +Masda (orange) = +Masda (pink) = +Missile = +Musting (purple) = +Musting (white) = +Nizzan (brown) = +Nizzan (green) = +Nyancat sign = +Parachute = +Plane = +Police Car (US) = +Pooshe (red) = +Pooshe (yellow) = +Propeller = +Rc (use with missiles) = +Road Surface Slab = +Road Surface Stair = +Road surface = +Road surface (double stripe) = +Road surface (stripe) = +Road surface (white stripes) = +Road surface (yellow stripes) = +Speedboat = +Tank = +Tunnel Lights = +Turning Arrows(left) = +Turning Arrows(right) = +Ute (clean) = +Ute (dirty) = +Vehicle Gun = +Wheel = +Wings = +arrows(left) = +arrows(right) = +mt sign = +neon arrows (left) = +neon arrows (right) = +pacman sign = +scifi_nodes sign = +tyre stack = +whee sign diff --git a/games/default/files/Decorations/flags/locale/zh_CN.txt b/games/default/files/Decorations/flags/locale/zh_CN.txt new file mode 100644 index 000000000..02f1147fc --- /dev/null +++ b/games/default/files/Decorations/flags/locale/zh_CN.txt @@ -0,0 +1,64 @@ +# Translation by Zaoqi +Ambulance = 救护车 +Armor plating = 装甲 +Aston Maaton (white) = 阿斯顿Maaton(白色) +Building glass = 建筑玻璃 +Bullet = 子弹 +Car Body = 车身 +Car sign = 汽车标志 +Checkered sign = 网格 +Checkered surface = 网格方块 +Concrete = 混凝土 +Engine = 引擎 +Fewawi (blue) = 法哇力(蓝色) +Fewawi (red) = 法哇力(红色) +Fire truck = 消防车 +Flag = 国旗 +Geep = G普 +Gun turret = 炮塔 +Hazard stipes = 红白块 +Jet = 飞机 +Jet Engine = 喷气发动机 +Lambogoni (grey) = 兰不基尼(灰色) +Lambogoni (yellow) = 兰不基尼(黄色) +Masda (orange) = 马四达(橘色) +Masda (pink) = 马四达(粉红色) +Missile = 导弹 +Musting (purple) = 野咪(紫色) +Musting (white) = 野咪(白色) +Nizzan (brown) = Nizzan(棕色) +Nizzan (green) = Nizzan(绿色) +Nyancat sign = Nyancat标志 +Parachute = 降落伞 +Plane = 飞机 +Police Car (US) = 警车(美国) +Pooshe (red) = 破时捷(红色) +Pooshe (yellow) = 破时捷(黄色) +Propeller = 螺旋桨 +Rc (use with missiles) = 遥控器(使用导弹) +Road Surface Slab = 路面半砖 +Road Surface Stair = 路面楼梯 +Road surface = 路面 +Road surface (double stripe) = 路面(双条纹) +Road surface (stripe) = 路面(条纹) +Road surface (white stripes) = 路面(白色条纹) +Road surface (yellow stripes) = 路面(黄色条纹) +Speedboat = 快艇 +Tank = 坦克 +Tunnel Lights = 隧道灯 +Turning Arrows(left) = 转向箭头(左) +Turning Arrows(right) = 转向箭头(右) +Ute (clean) = 轻型货车(干净的) +Ute (dirty) = 轻型货车(脏的) +Vehicle Gun = 车辆的枪 +Wheel = 轮胎 +Wings = 翅膀 +arrows(left) = 箭头(左) +arrows(right) = 箭头(右) +mt sign = Minetest标志 +neon arrows (left) = 霓虹灯箭头(左) +neon arrows (right) = 霓虹灯箭头(右) +pacman sign = 吃豆子标志 +scifi_nodes sign = scifi_nodes标志 +tyre stack = 轮胎堆 +whee sign = wheee标志 diff --git a/games/default/files/Decorations/flags/readme.txt b/games/default/files/Decorations/flags/readme.txt new file mode 100644 index 000000000..cd3f935b3 --- /dev/null +++ b/games/default/files/Decorations/flags/readme.txt @@ -0,0 +1,104 @@ +How to drive/pilot/etc.: + +Basic controls: +All vehicles are steered by looking around. +You can use the forward button(same as you would use for walking), to move the vehicles, but only some will be able to reverse. For example, cars can reverse but planes cannot. + +Boosts: +Some vehicles can have a small boost when the 'use/aux1' key is held. It will only last for a limited time and it will not recharge whilst the key is still held down. + +Weapons: +Vehicles can also use weapons, for example the jet and tank, which will fire a missile when 'sneak' is pressed. They require a missile to be in the drivers inventory to do this. It is possible to have a second weapon, fired with 'use/aux1', but currently only the assault suit does this. It can use both bullets and missiles. The gun turret uses bullets. + +Flight/Jumping/Hovering: +Some vehicles can fly, for example the jet. The jet will move upward when the driver looks up, or when the driver presses 'jump'. Using the jump key does not work very well at the moment. The plane is a bit differrent; It will hold it's height when 'jump' is pressed. +It is also possible for vehicles to jump or hover for a small amount of time. Currently only the Assault suit does this. + +Boats and watercraft: +The speed boat can be used on water, but if it is driven onto land it will stop completely. If you are lucky you can move back into water, but be careful because this does not always work. + +The Lightcycles: +The Lightcycles can place light barriers when 'sneak' is pressed. If the barrier from one type hits the other type, the vehicle will explode + +Other things: +Vehicles will explode if they touch lava, so be careful. +Don't drive cars or planes etc. into water! they will sink. +If you do get a vehicle in a tricky spot, you can punch it whilst driving and it will be dropped. + +The API: +vehicles.object_drive is the function used for the movement of vehicles. +It should be used in this format: +vehicles.object_drive(entity, dtime, { +}) + +In the above case, entity is used in place of an entity or object. If the function was to be used inside on_step for an entity, 'entity' would be replaced with 'self.object' +The table should contain the relevant variables listed below. The function is written so that these are all somewhat optional. + +speed: This defines the speed of the vehicle, if unset it will be '10' + +fixed: Setting this to 'true' will disable movement from the vehicle + +decell: This defines the decelleration of the vehicle. The default is 0 + +shoots: If true then the vehicle can shoot with 'sneak'(arrow must be defined, default is false) + +arrow: This should be the entity name for the weapon fired (default is nil) (requires an item with the name arrow_name.."_item" to be in the drivers inventory) + +reload_time: how long it takes before the weapon can be fired again (default is 1) + +shoot_y: y offset of the weapon, default is 1.5 + +shoot_angle: This will make the weapon shoot at a differrent vertical angle (default is 0) + +infinite_arrow: if this is set then the vehicle won't need an arrow item to be in the inventory + +arrow2/reload_time2/shoots2/shoot_y2/infinite_arrow2: same as above but fired with 'use/aux1' + +jump: can be either 'hover' or 'jump' (default is nil). Hover lasts longer than jump. + +fly: if true then the vehicle will fly (default is false) + +fly_mode: can be either 'hold' or 'rise' (default is 'hold'). hold will keep the vehicle in place when 'jump' is pressed, and 'rise' will cause the vehicle to rise when the same key is pressed. + +rise_speed: dependant on fly_mode being set to 'rise'. Defines the speed at which the vehicle will rise. (default is 0.1) + +gravity: the gravity acting on the vehicle. This should be positive. (default is 1) + +boost: if set to 'true' then the vehicle can boost with 'use/aux1' (default is false) + +boost_duration: dependant on 'boost'. Determines how long a boost will last (default is 5). + +boost_charge: dependant on 'boost'. Determines how long it takes before boost can be used again (default is 4) + +boost_effect: particle texture that will fly out from behind the vehicle whilst boosting (default is nil) + +hover_speed: the speed at which the vehicle will hover if 'jump' is set to 'hover' (default is 1.5) + +jump_speed: the speed at which the vehicle will jump if 'jump' is set to 'jump' (default is 5) + +simple_vehicle: removes all functionality except basic movement, use to reduce lag. (not implemented yet), default is false + +is_watercraft: if set to true then the vehicle won't be stopped by water. +it will act like a boat unless swims is true. (default is false) + +swims: will allow the vehicle to move underwater (not yet implemented) (default is false) + +driving_sound: name of the sound file that will play when the vehicle is driving (default is nil) + +sound_duration: !VERY IMPORTANT! if there is a driving sound then this should match it's duration. If this is not set then the sound could overlap and increase in volume (default is 5) + +extra_yaw: use this if the model has incorrect rotation. It will rotate the model so it faces the right way whilst being driven (default is 0) + +moving_anim/stand_anim/jump_anim/shoot_anim/shoot_anim2: animations for actions. Can be set individually. (default is nil) + +place_node: name of the node that is placed by the vehicle (default is nil) + +place_chance: nodes are placed when a random number between place_chance and 1 is equal to 1 (default is 1) + +place_trigger: if true the vehicle will place the node defined by place_node when 'sneak' is pressed. (default is false) + +death_node: name of the node that will make the vehicle explode, default is nil + +destroy_node: name of the node that is destroyed if it toughes the vehicle, default is nil + + diff --git a/games/default/files/Decorations/flags/textures/flags.png b/games/default/files/Decorations/flags/textures/flags.png new file mode 100644 index 000000000..5a48a8b7c Binary files /dev/null and b/games/default/files/Decorations/flags/textures/flags.png differ diff --git a/games/default/files/Decorations/flowers/CREDITS b/games/default/files/Decorations/flowers/CREDITS new file mode 100644 index 000000000..8be7ff73b --- /dev/null +++ b/games/default/files/Decorations/flowers/CREDITS @@ -0,0 +1 @@ +Flower textures by erlehmann diff --git a/games/default/files/Decorations/flowers/depends.txt b/games/default/files/Decorations/flowers/depends.txt new file mode 100644 index 000000000..22ed7be9e --- /dev/null +++ b/games/default/files/Decorations/flowers/depends.txt @@ -0,0 +1,2 @@ +default +color \ No newline at end of file diff --git a/games/default/files/Decorations/flowers/init.lua b/games/default/files/Decorations/flowers/init.lua new file mode 100644 index 000000000..124d193dd --- /dev/null +++ b/games/default/files/Decorations/flowers/init.lua @@ -0,0 +1,44 @@ +--[[ +-- Flowers mod by ironzorg +--]] + +local source_list = { + {"black", "Darkened", color1, 40, 36, 33}, + {"blue", "Blue", color2, 0, 0, 255}, + {"green", "Green", color3, 0, 255, 0}, + {"white", "White", color4, 245, 245, 245}, + {"orange", "Orange", color5, 255, 97, 3}, + {"red", "Red", color6, 255, 0, 0}, + {"yellow", "Yellow", color7, 255, 255, 0}, + {"pink", "pink", color8, 255, 105, 180} +} + +for i in ipairs(source_list) do + local name = source_list[i][1] + local desc = source_list[i][2] + local colour = source_list[i][3] + local red = source_list[i][4] + local green = source_list[i][5] + local blue = source_list[i][6] + + minetest.register_node('flowers:' .. name , { + drawtype = 'plantlike', + tiles = { 'flower_white.png^[colorize:#'..colour..':70' }, + inventory_image = 'flowers2.png^[colorize:#'..colour..':70', +-- inventory_image = "flowers.png^(flowers2.png^[colorize:#"..colour..":70)", + sunlight_propagates = true, + paramtype = 'light', + description = desc .. " Flower color", + wield_image = "color_handwhite.png^(color_handwhite2.png^[colorize:#"..colour..":70)", + wield_scale = {x=1,y=1,z=0.5}, + groups = {snappy = 2, choppy = 2, wool = 2}, + oddly_breakable_by_hand = 1, + dig_immediate = 3, + waving = 1, + walkable = false, + buildable_to = true, + sounds = default.node_sound_leaves_defaults(), + + }) + +end diff --git a/games/default/files/Decorations/flowers/textures/flower_white.png b/games/default/files/Decorations/flowers/textures/flower_white.png new file mode 100644 index 000000000..b22d6d464 Binary files /dev/null and b/games/default/files/Decorations/flowers/textures/flower_white.png differ diff --git a/games/default/files/Decorations/hdb/README.txt b/games/default/files/Decorations/hdb/README.txt new file mode 100644 index 000000000..b8a95c166 --- /dev/null +++ b/games/default/files/Decorations/hdb/README.txt @@ -0,0 +1,11 @@ +This is a modify modpack Homedecor for Blockcolor (HDB). + +Add Colors for Computers +Add Colors for Desk + +Depend Color Mod BlockColor for Textures. + +-- + +Homedecor Desk : Vanessa Ezekowitz // Licenses: * For the lua code, LGPL. +Decorative Computers : Diego Martínez License : WTFPL diff --git a/games/default/files/Decorations/hdb/depends.txt b/games/default/files/Decorations/hdb/depends.txt new file mode 100644 index 000000000..9bc856fd9 --- /dev/null +++ b/games/default/files/Decorations/hdb/depends.txt @@ -0,0 +1,2 @@ +default +color diff --git a/games/default/files/Decorations/hdb/init.lua b/games/default/files/Decorations/hdb/init.lua new file mode 100644 index 000000000..e8e4d11d0 --- /dev/null +++ b/games/default/files/Decorations/hdb/init.lua @@ -0,0 +1,119 @@ +local desk_cbox = { type = "fixed", fixed = { -0.5, -0.5, -0.5, 1.5, 0.5, 0.5 }} + +local armoire_cbox = {type = "fixed",fixed = { -0.5, -0.5, -0.5, 0.5, 1.5, 0.5 }} + +local bench_cbox = { + type = "fixed", + fixed = { + {-0.5, -0.5, -0.25, 1.5, 0, 0.5 }, + {-0.5, -0.5, 0.45, 1.5, 0.5, 0.5 }, + } +} + +-- HomeDecor Blockcolor + +local source_list = { + {"black", "white", color1, 40, 36, 33}, + {"blue", "white", color2, 0, 0, 255}, + {"green", "white", color3, 0, 255, 0}, + {"white", "black", color4, 245, 245, 245}, + {"orange", "black", color5, 255, 97, 3}, + {"red", "white", color6, 255, 0, 0}, + {"yellow", "black", color7, 255, 255, 0}, + {"pink", "white", color8, 255, 105, 180} +} + +for i in ipairs(source_list) do + local color = source_list[i][1] + local color2 = source_list[i][2] + local colour = source_list[i][3] + local red = source_list[i][4] + local green = source_list[i][5] + local blue = source_list[i][6] + +minetest.register_node("hdb:frigo" .. color, { + description = "frigo" .. color, + drawtype = "mesh", + mesh = "hdb_frigo.obj", + tiles = {"color_white.png^[colorize:#"..colour..":70","color_" ..color2.. ".png", "color_" ..color2.. ".png", "color_white.png^[colorize:#"..colour..":70"}, + inventory_image = 'frigo.png^[colorize:#'..colour..':70', + wield_image = "color_handwhite.png^(color_handwhite2.png^[colorize:#"..colour..":70)", + wield_scale = {x=1,y=1,z=0.5}, + paramtype = "light", + paramtype2 = "facedir", + collision_box = armoire_cbox, + selection_box = armoire_cbox, + groups = {cracky=3, oddly_breakable_by_hand=2}, + sounds = default.node_sound_wood_defaults(), + on_place = minetest.rotate_node, +}) + +minetest.register_node("hdb:bench" .. color, { + description = "bench" .. color, + drawtype = "mesh", + mesh = "hdb_bench.obj", + tiles = {"color_white.png^[colorize:#"..colour..":70","color_" ..color2.. ".png", "color_" ..color2.. ".png", "color_white.png^[colorize:#"..colour..":70"}, + inventory_image = 'bench.png^[colorize:#'..colour..':70', + wield_image = "color_handwhite.png^(color_handwhite2.png^[colorize:#"..colour..":70)", + wield_scale = {x=1,y=1,z=0.5}, + paramtype = "light", + paramtype2 = "facedir", + collision_box = bench_cbox, + selection_box = bench_cbox, + groups = {cracky=3, oddly_breakable_by_hand=2}, + sounds = default.node_sound_wood_defaults(), + on_place = minetest.rotate_node, +}) + +minetest.register_node("hdb:armoire" .. color, { + description = "armoire" .. color, + drawtype = "mesh", + mesh = "hdb_armoire.obj", + tiles = {"color_white.png^[colorize:#"..colour..":70","color_" ..color2.. ".png", "color_" ..color2.. ".png", "color_white.png^[colorize:#"..colour..":70"}, + inventory_image = 'armoire.png^[colorize:#'..colour..':70', + wield_image = "color_handwhite.png^(color_handwhite2.png^[colorize:#"..colour..":70)", + wield_scale = {x=1,y=1,z=0.5}, + paramtype = "light", + paramtype2 = "facedir", + collision_box = armoire_cbox, + selection_box = armoire_cbox, + groups = {cracky=3, oddly_breakable_by_hand=2}, + sounds = default.node_sound_wood_defaults(), + on_place = minetest.rotate_node, +}) + +-- on_rotate = screwdriver.rotate_simple + +minetest.register_node("hdb:desk" .. color, { + description = "Desk" .. color, + drawtype = "mesh", + mesh = "hdb_desk.obj", + tiles = {"color_white.png^[colorize:#"..colour..":70","color_" ..color2.. ".png", "color_" ..color2.. ".png", "color_white.png^[colorize:#"..colour..":70"}, + inventory_image = 'desk.png^[colorize:#'..colour..':70', + wield_image = "color_handwhite.png^(color_handwhite2.png^[colorize:#"..colour..":70)", + wield_scale = {x=1,y=1,z=0.5}, + paramtype = "light", + paramtype2 = "facedir", + collision_box = desk_cbox, + selection_box = desk_cbox, + groups = {cracky=3, oddly_breakable_by_hand=2}, + sounds = default.node_sound_stone_defaults(), + on_place = minetest.rotate_node, +}) + +minetest.register_node("hdb:computer" .. color , { + description = "Computer" .. color, + inventory_image = 'computer.png^[colorize:#'..colour..':70', + wield_image = "color_handwhite.png^(color_handwhite2.png^[colorize:#"..colour..":70)", + wield_scale = {x=1,y=1,z=0.5}, + drawtype = "mesh", + mesh = "hdb_pc.obj", + tiles = {"color_white.png^[colorize:#"..colour..":70","color_" ..color2.. ".png", "color_" ..color2.. ".png", "color_white.png^[colorize:#"..colour..":70"}, + paramtype = "light", + paramtype2 = "facedir", + groups = {cracky=3, oddly_breakable_by_hand=2}, + sounds = default.node_sound_stone_defaults(), + on_place = minetest.rotate_node, +}) + +end diff --git a/games/default/files/Decorations/hdb/models/hdb_armoire.obj b/games/default/files/Decorations/hdb/models/hdb_armoire.obj new file mode 100644 index 000000000..833158eb5 --- /dev/null +++ b/games/default/files/Decorations/hdb/models/hdb_armoire.obj @@ -0,0 +1,168 @@ +# Blender v2.73 (sub 0) OBJ File: 'bedroom-wardrobe.blend' +# www.blender.org +o Cylinder +v -0.500000 -0.500000 0.500000 +v -0.500000 -0.500000 -0.437500 +v 0.500000 -0.500000 -0.437500 +v 0.500000 -0.500000 0.500000 +v -0.500000 1.500000 0.500000 +v -0.500000 1.500000 -0.437500 +v 0.500000 1.500000 -0.437500 +v 0.500000 1.500000 0.500000 +v -0.437500 0.250000 -0.437500 +v -0.437500 0.250000 -0.500000 +v 0.437500 0.250000 -0.500000 +v 0.437500 0.250000 -0.437500 +v -0.437500 0.500000 -0.437500 +v -0.437500 0.500000 -0.500000 +v 0.437500 0.500000 -0.500000 +v 0.437500 0.500000 -0.437500 +v -0.437500 -0.062500 -0.437500 +v -0.437500 -0.062500 -0.500000 +v 0.437500 -0.062500 -0.500000 +v 0.437500 -0.062500 -0.437500 +v -0.437500 0.187500 -0.437500 +v -0.437500 0.187500 -0.500000 +v 0.437500 0.187500 -0.500000 +v 0.437500 0.187500 -0.437500 +v -0.437500 -0.375000 -0.437500 +v -0.437500 -0.375000 -0.500000 +v 0.437500 -0.375000 -0.500000 +v 0.437500 -0.375000 -0.437500 +v -0.437500 -0.125000 -0.437500 +v -0.437500 -0.125000 -0.500000 +v 0.437500 -0.125000 -0.500000 +v 0.437500 -0.125000 -0.437500 +v 0.062500 0.562500 -0.437500 +v 0.062500 0.562500 -0.500000 +v 0.437500 0.562500 -0.500000 +v 0.437500 0.562500 -0.437500 +v 0.062500 1.437500 -0.437500 +v 0.062500 1.437500 -0.500000 +v 0.437500 1.437500 -0.500000 +v 0.437500 1.437500 -0.437500 +v -0.437500 0.562500 -0.437500 +v -0.437500 0.562500 -0.500000 +v -0.062500 0.562500 -0.500000 +v -0.062500 0.562500 -0.437500 +v -0.437500 1.437500 -0.437500 +v -0.437500 1.437500 -0.500000 +v -0.062500 1.437500 -0.500000 +v -0.062500 1.437500 -0.437500 +v -0.500000 1.437500 -0.437500 +v 0.500000 1.437500 -0.437500 +v -0.500000 -0.375000 -0.437500 +v 0.500000 -0.375000 -0.437500 +v -0.500000 0.500000 0.500000 +v -0.500000 0.500000 -0.437500 +v 0.500000 0.500000 -0.437500 +v 0.500000 0.500000 0.500000 +vt 1.000000 0.000000 +vt 1.000000 0.937500 +vt 0.000000 0.937500 +vt 0.000000 0.000000 +vt 0.000000 1.000000 +vt 0.062500 0.000000 +vt 0.062500 1.000000 +vt 1.000000 1.000000 +vt 0.875000 1.000000 +vt 0.875000 0.000000 +vt 0.562500 0.937500 +vt 0.562500 0.062500 +vt 0.625000 0.062500 +vt 0.625000 0.937500 +vt 0.250000 0.937500 +vt 0.250000 0.062500 +vt 0.312500 0.062500 +vt 0.312500 0.937500 +vt 0.937500 0.437500 +vt 0.937500 0.562500 +vt 0.062500 0.562500 +vt 0.062500 0.437500 +vt 0.875000 0.937500 +vt 0.875000 0.062500 +vt -0.000000 0.062500 +vt 0.062500 0.062500 +vt 1.000000 0.062500 +vt 0.062500 0.937500 +vt 0.937500 0.062500 +vt 0.937500 0.937500 +vt 0.937500 1.000000 +vt 0.937500 0.750000 +vt 1.000000 0.750000 +vt 0.062500 0.750000 +vt -0.000000 0.750000 +vt 0.062500 0.125000 +vt 0.937500 0.125000 +vt 0.937500 0.500000 +vt 1.000000 0.500000 +vt 0.062500 0.500000 +vt 0.000000 0.500000 +vt 0.937500 0.000000 +vt 0.937500 0.250000 +vt 1.000000 0.250000 +vt 0.062500 0.250000 +vt -0.000000 0.250000 +vt 0.062500 0.187500 +vt 0.937500 0.187500 +vt 0.500000 0.937500 +vt 0.437500 0.937500 +vt 0.437500 0.062500 +vt 0.500000 0.062500 +vt 0.437500 0.000000 +vt 0.437500 1.000000 +vt 0.562500 0.000000 +vt 0.562500 1.000000 +vn -1.000000 0.000000 0.000000 +vn 0.000000 0.000000 -1.000000 +vn 1.000000 0.000000 0.000000 +vn 0.000000 0.000000 1.000000 +vn 0.000000 -1.000000 0.000000 +vn 0.000000 1.000000 0.000000 +g Cylinder_Cylinder_wood +s off +f 53/1/1 54/2/1 2/3/1 1/4/1 +f 6/5/2 7/4/2 50/6/2 49/7/2 +f 55/3/3 56/4/3 4/1/3 3/2/3 +f 56/5/4 53/4/4 1/1/4 4/8/4 +f 1/1/5 2/2/5 3/3/5 4/4/5 +f 8/1/6 7/2/6 6/3/6 5/4/6 +f 3/1/2 2/8/2 51/9/2 52/10/2 +f 5/1/1 6/2/1 54/3/1 53/4/1 +f 7/3/3 8/4/3 56/1/3 55/2/3 +f 17/11/2 20/12/2 32/13/2 29/14/2 +f 9/15/2 12/16/2 24/17/2 21/18/2 +f 8/5/4 5/4/4 53/1/4 56/8/4 +f 33/19/2 44/20/2 48/21/2 37/22/2 +f 51/9/2 54/5/2 13/3/2 25/23/2 +f 52/10/2 28/24/2 16/25/2 55/4/2 +f 40/26/2 50/6/2 55/1/2 16/27/2 +f 45/28/2 13/2/2 54/8/2 49/7/2 +f 36/29/2 16/27/2 13/2/2 41/30/2 +g Cylinder_Cylinder_drawers +f 13/8/1 14/31/1 10/32/1 9/33/1 +f 14/31/2 15/7/2 11/34/2 10/32/2 +f 15/7/3 16/5/3 12/35/3 11/34/3 +f 9/36/5 10/26/5 11/29/5 12/37/5 +f 16/29/6 15/37/6 14/36/6 13/26/6 +f 21/33/1 22/32/1 18/38/1 17/39/1 +f 22/32/2 23/34/2 19/40/2 18/38/2 +f 23/34/3 24/35/3 20/41/3 19/40/3 +f 17/26/5 18/6/5 19/42/5 20/29/5 +f 24/42/6 23/29/6 22/26/6 21/6/6 +f 29/39/1 30/38/1 26/43/1 25/44/1 +f 30/38/2 31/40/2 27/45/2 26/43/2 +f 31/40/3 32/41/3 28/46/3 27/45/3 +f 25/47/5 26/36/5 27/37/5 28/48/5 +f 32/37/6 31/48/6 30/47/6 29/36/6 +g Cylinder_Cylinder_doors +f 37/49/1 38/50/1 34/51/1 33/52/1 +f 38/50/2 39/28/2 35/26/2 34/51/2 +f 39/28/3 40/3/3 36/25/3 35/26/3 +f 33/53/5 34/51/5 35/26/5 36/6/5 +f 40/7/6 39/28/6 38/50/6 37/54/6 +f 45/2/1 46/30/1 42/29/1 41/27/1 +f 46/30/2 47/11/2 43/12/2 42/29/2 +f 47/11/3 48/49/3 44/52/3 43/12/3 +f 41/42/5 42/29/5 43/12/5 44/55/5 +f 48/56/6 47/11/6 46/30/6 45/31/6 diff --git a/games/default/files/Decorations/hdb/models/hdb_bench.obj b/games/default/files/Decorations/hdb/models/hdb_bench.obj new file mode 100644 index 000000000..505f16731 --- /dev/null +++ b/games/default/files/Decorations/hdb/models/hdb_bench.obj @@ -0,0 +1,646 @@ +# Blender v2.73 (sub 0) OBJ File: 'garden-bench2.blend' +# www.blender.org +o Cylinder +v 0.372863 -0.500000 0.359375 +v 0.372863 -0.500000 0.500000 +v -1.375000 0.476813 0.459024 +v -1.500000 0.476813 0.459024 +v -1.500000 0.499994 0.336183 +v -1.375000 0.499994 0.336183 +v 0.375000 -0.247623 -0.105628 +v -1.375000 -0.247623 -0.105628 +v -1.375000 -0.242196 -0.136403 +v 0.375000 -0.242196 -0.136403 +v 0.375000 -0.124522 -0.083922 +v -1.375000 -0.124522 -0.083922 +v -1.375000 -0.124488 -0.115648 +v 0.375000 -0.124488 -0.115648 +v -1.502137 -0.500000 0.359375 +v -1.502137 -0.500000 0.500000 +v 0.500000 0.476813 0.459024 +v 0.375000 0.476813 0.459024 +v 0.375000 0.499994 0.336183 +v 0.500000 0.499994 0.336183 +v -1.373516 -0.499999 -0.113281 +v -1.502137 -0.499999 -0.113281 +v -1.502137 -0.499999 -0.238281 +v -1.373516 -0.499999 -0.238281 +v -1.373516 0.049124 -0.002615 +v -1.502137 0.049124 -0.002615 +v -1.502137 0.060009 -0.125500 +v -1.373516 0.060009 -0.125500 +v 0.501484 -0.499999 -0.113281 +v 0.372863 -0.499999 -0.113281 +v 0.372863 -0.499999 -0.238281 +v 0.501484 -0.499999 -0.238281 +v 0.501484 0.049124 -0.002615 +v 0.372863 0.049124 -0.002615 +v 0.372863 0.060009 -0.125500 +v 0.501484 0.060009 -0.125500 +v 0.406250 -0.406250 0.156250 +v -1.406250 -0.406250 0.156250 +v -1.406250 -0.406250 0.093750 +v 0.406250 -0.406250 0.093750 +v 0.406250 -0.343750 0.156250 +v -1.406250 -0.343750 0.156250 +v -1.406250 -0.343750 0.093750 +v 0.406250 -0.343750 0.093750 +v 0.468750 -0.437500 0.320602 +v 0.406250 -0.437500 0.320602 +v 0.406250 -0.437500 -0.100955 +v 0.468750 -0.437500 -0.100955 +v 0.468750 -0.312500 0.242477 +v 0.406250 -0.312500 0.242477 +v 0.406250 -0.312500 -0.075637 +v 0.468750 -0.312500 -0.075637 +v -1.406250 -0.437500 0.320602 +v -1.468750 -0.437500 0.320602 +v -1.468750 -0.437500 -0.100955 +v -1.406250 -0.437500 -0.100955 +v -1.406250 -0.312500 0.242477 +v -1.468750 -0.312500 0.242477 +v -1.468750 -0.312500 -0.075637 +v -1.406250 -0.312500 -0.075637 +v 0.500000 -0.126003 0.225803 +v 0.375000 -0.126003 0.225803 +v -1.375000 -0.126003 0.225803 +v -1.500000 -0.126003 0.225803 +v 0.515625 0.026734 0.252770 +v 0.359375 0.026734 0.252770 +v 0.359375 0.068142 -0.220522 +v 0.515625 0.068142 -0.220522 +v 0.515625 0.088519 0.263675 +v 0.359375 0.088519 0.263675 +v 0.359375 0.130404 -0.215075 +v 0.515625 0.130404 -0.215075 +v -1.359375 0.026734 0.252770 +v -1.515625 0.026734 0.252769 +v -1.515625 0.068142 -0.220522 +v -1.359375 0.068142 -0.220522 +v -1.359375 0.088519 0.263675 +v -1.515625 0.088519 0.263675 +v -1.515625 0.130404 -0.215075 +v -1.359375 0.130404 -0.215075 +v 0.375000 0.304466 0.428635 +v -1.375000 0.304466 0.428634 +v -1.375000 0.315319 0.367084 +v 0.375000 0.315319 0.367084 +v 0.375000 0.427567 0.450341 +v -1.375000 0.427567 0.450340 +v -1.375000 0.438420 0.388790 +v 0.375000 0.438420 0.388790 +v 0.375000 -0.064837 0.363516 +v -1.375000 -0.064837 0.363516 +v -1.375000 -0.053984 0.301966 +v 0.375000 -0.053984 0.301966 +v 0.375000 0.058264 0.385222 +v -1.375000 0.058264 0.385222 +v -1.375000 0.069117 0.323672 +v 0.375000 0.069117 0.323672 +v 0.312500 0.058264 0.385222 +v 0.250000 0.058264 0.385222 +v 0.250000 0.069117 0.323672 +v 0.312500 0.069117 0.323672 +v 0.312500 0.304466 0.428635 +v 0.250000 0.304466 0.428635 +v 0.250000 0.315319 0.367084 +v 0.312500 0.315319 0.367084 +v 0.187500 0.058264 0.385222 +v 0.125000 0.058264 0.385222 +v 0.125000 0.069117 0.323672 +v 0.187500 0.069117 0.323672 +v 0.187500 0.304466 0.428635 +v 0.125000 0.304466 0.428635 +v 0.125000 0.315319 0.367084 +v 0.187500 0.315319 0.367084 +v 0.062500 0.058264 0.385222 +v 0.000000 0.058264 0.385222 +v 0.000000 0.069117 0.323672 +v 0.062500 0.069117 0.323672 +v 0.062500 0.304466 0.428635 +v 0.000000 0.304466 0.428635 +v 0.000000 0.315319 0.367084 +v 0.062500 0.315319 0.367084 +v -0.062500 0.058264 0.385222 +v -0.125000 0.058264 0.385222 +v -0.125000 0.069117 0.323672 +v -0.062500 0.069117 0.323672 +v -0.062500 0.304466 0.428634 +v -0.125000 0.304466 0.428634 +v -0.125000 0.315319 0.367084 +v -0.062500 0.315319 0.367084 +v -0.187500 0.058264 0.385222 +v -0.250000 0.058264 0.385222 +v -0.250000 0.069117 0.323672 +v -0.187500 0.069117 0.323672 +v -0.187500 0.304466 0.428634 +v -0.250000 0.304466 0.428634 +v -0.250000 0.315319 0.367084 +v -0.187500 0.315319 0.367084 +v -0.312500 0.058264 0.385222 +v -0.375000 0.058264 0.385222 +v -0.375000 0.069117 0.323672 +v -0.312500 0.069117 0.323672 +v -0.312500 0.304466 0.428634 +v -0.375000 0.304466 0.428634 +v -0.375000 0.315319 0.367084 +v -0.312500 0.315319 0.367084 +v -0.437500 0.058264 0.385222 +v -0.500000 0.058264 0.385222 +v -0.500000 0.069117 0.323672 +v -0.437500 0.069117 0.323672 +v -0.437500 0.304466 0.428634 +v -0.500000 0.304466 0.428634 +v -0.500000 0.315319 0.367084 +v -0.437500 0.315319 0.367084 +v -0.625000 0.058264 0.385222 +v -0.687500 0.058264 0.385222 +v -0.687500 0.069117 0.323672 +v -0.625000 0.069117 0.323672 +v -0.625000 0.304466 0.428634 +v -0.687500 0.304466 0.428634 +v -0.687500 0.315319 0.367084 +v -0.625000 0.315319 0.367084 +v -0.750000 0.058264 0.385222 +v -0.812500 0.058264 0.385222 +v -0.812500 0.069117 0.323672 +v -0.750000 0.069117 0.323672 +v -0.750000 0.304466 0.428634 +v -0.812500 0.304466 0.428634 +v -0.812500 0.315319 0.367084 +v -0.750000 0.315319 0.367084 +v -0.875000 0.058264 0.385222 +v -0.937500 0.058264 0.385222 +v -0.937500 0.069117 0.323672 +v -0.875000 0.069117 0.323672 +v -0.875000 0.304466 0.428634 +v -0.937500 0.304466 0.428634 +v -0.937500 0.315319 0.367084 +v -0.875000 0.315319 0.367084 +v -1.000000 0.058264 0.385222 +v -1.062500 0.058264 0.385222 +v -1.062500 0.069117 0.323672 +v -1.000000 0.069117 0.323672 +v -1.000000 0.304466 0.428634 +v -1.062500 0.304466 0.428634 +v -1.062500 0.315319 0.367084 +v -1.000000 0.315319 0.367084 +v -1.125000 0.058264 0.385222 +v -1.187500 0.058264 0.385222 +v -1.187500 0.069117 0.323672 +v -1.125000 0.069117 0.323672 +v -1.125000 0.304466 0.428634 +v -1.187500 0.304466 0.428634 +v -1.187500 0.315319 0.367084 +v -1.125000 0.315319 0.367084 +v -1.250000 0.058264 0.385222 +v -1.312500 0.058264 0.385222 +v -1.312500 0.069117 0.323672 +v -1.250000 0.069117 0.323672 +v -1.250000 0.304466 0.428634 +v -1.312500 0.304466 0.428634 +v -1.312500 0.315319 0.367084 +v -1.250000 0.315319 0.367084 +v -0.562500 0.058264 0.385222 +v -0.562500 0.069117 0.323672 +v -0.562500 0.304466 0.428634 +v -0.562500 0.315319 0.367084 +v -0.500000 -0.124522 -0.083922 +v -0.500000 -0.247623 -0.105628 +v -0.500000 -0.124488 -0.115648 +v -0.500000 -0.242196 -0.136403 +v -0.500000 -0.343750 0.156250 +v -0.500000 -0.406250 0.156250 +v -0.500000 -0.343750 0.093750 +v -0.500000 -0.406250 0.093750 +v -0.500000 0.427567 0.450340 +v -0.500000 0.438420 0.388790 +v -0.500000 -0.064837 0.363516 +v -0.500000 -0.053984 0.301966 +v -1.375000 -0.234413 0.333615 +v -1.500000 -0.234413 0.333615 +v 0.500000 -0.234413 0.333616 +v 0.375000 -0.234413 0.333616 +v -1.502137 -0.124459 0.265625 +v -1.502137 -0.124459 0.125000 +v 0.372863 -0.124459 0.265625 +v 0.372863 -0.124459 0.125000 +v -1.373516 -0.500000 0.500000 +v -1.373516 -0.500000 0.359375 +v 0.501484 -0.500000 0.500000 +v 0.501484 -0.500000 0.359375 +v -1.373516 -0.124459 0.265625 +v -1.373516 -0.124459 0.125000 +v 0.501484 -0.124459 0.265625 +v 0.501484 -0.124459 0.125000 +v 0.375000 -0.125000 0.343750 +v -1.375000 -0.125000 0.343750 +v -1.375000 -0.125000 -0.156250 +v 0.375000 -0.125000 -0.156250 +v 0.375000 -0.093750 0.343750 +v -1.375000 -0.093750 0.343750 +v -1.375000 -0.093750 -0.156250 +v 0.375000 -0.093750 -0.156250 +v 0.497940 -0.125000 0.232376 +v 0.375000 -0.125000 0.232376 +v 0.375000 -0.125000 -0.037745 +v 0.497940 -0.125000 -0.037745 +v 0.497940 -0.093750 0.232376 +v 0.375000 -0.093750 0.232376 +v 0.375000 -0.093750 -0.031473 +v 0.497940 -0.093750 -0.031473 +v -1.375000 -0.125000 0.232375 +v -1.497999 -0.125000 0.232375 +v -1.497999 -0.125000 -0.037746 +v -1.375000 -0.125000 -0.037746 +v -1.375000 -0.093750 0.232375 +v -1.497999 -0.093750 0.232375 +v -1.497999 -0.093750 -0.031473 +v -1.375000 -0.093750 -0.031473 +v -0.500000 -0.093750 0.343750 +v -0.500000 -0.125000 0.343750 +v -0.500000 -0.093750 -0.156250 +v -0.500000 -0.125000 -0.156250 +vt 0.586012 0.152312 +vt 0.501641 0.287500 +vt 0.000000 0.287500 +vt 0.084371 0.152311 +vt 0.000000 0.812500 +vt 0.125000 0.812500 +vt 0.125000 0.937500 +vt 0.000000 0.937500 +vt 0.000000 0.500000 +vt 0.750000 0.500000 +vt 0.750000 0.625000 +vt 0.000000 0.625000 +vt 0.375000 0.562500 +vt 0.375000 0.375000 +vt 0.437500 0.375000 +vt 0.437500 0.562500 +vt 1.000000 0.812500 +vt 0.250000 0.812500 +vt 0.250000 0.687500 +vt 1.000000 0.687500 +vt 1.000000 0.625000 +vt 0.437500 0.625000 +vt 1.000000 0.562500 +vt 0.750000 0.687500 +vt 0.000000 0.687500 +vt 0.915628 0.152311 +vt 1.000000 0.287500 +vt 0.498359 0.287500 +vt 0.413988 0.152311 +vt 0.875000 0.812500 +vt 1.000000 0.937500 +vt 0.875000 0.937500 +vt 0.000000 0.187500 +vt 0.000000 0.062500 +vt 0.625000 0.062500 +vt 0.625000 0.187500 +vt 1.000000 0.461054 +vt 0.984581 0.600000 +vt 0.337237 0.599913 +vt 0.365221 0.461054 +vt 0.687500 0.187500 +vt 0.687500 0.312500 +vt 0.000000 0.312500 +vt 0.647343 0.461053 +vt 0.662744 0.600000 +vt 0.027966 0.599914 +vt 0.000000 0.461052 +vt 0.750000 0.062500 +vt 0.750000 0.187500 +vt 0.812500 0.187500 +vt 0.812500 0.312500 +vt 0.000000 0.375000 +vt 0.625000 0.375000 +vt 0.625000 0.500000 +vt 0.687500 0.500000 +vt 0.687500 0.625000 +vt 0.750000 0.375000 +vt 0.812500 0.500000 +vt 0.812500 0.625000 +vt 0.000000 0.250000 +vt 0.750000 0.250000 +vt 0.750000 0.312500 +vt 1.000000 0.187500 +vt 0.250000 0.187500 +vt 0.250000 0.125000 +vt 1.000000 0.125000 +vt 0.750000 0.125000 +vt 0.000000 0.125000 +vt 0.610823 0.770850 +vt 0.971310 0.770850 +vt 1.000000 0.912500 +vt 0.522292 0.912500 +vt 0.449018 0.912500 +vt 0.088531 0.912500 +vt 0.000000 0.770850 +vt 0.477709 0.770850 +vt 0.000000 0.437500 +vt 0.500000 0.437500 +vt 0.500000 0.500000 +vt 0.375000 0.812500 +vt 0.375000 0.875000 +vt 0.000000 0.875000 +vt 0.562500 0.375000 +vt 0.562500 0.312500 +vt 0.562500 0.125000 +vt 0.000000 0.562500 +vt 0.500000 0.562500 +vt 0.500000 0.625000 +vt 0.375000 0.687500 +vt 0.375000 0.750000 +vt 0.000000 0.750000 +vt 0.562500 0.562500 +vt 0.562500 0.625000 +vt 0.625000 0.562500 +vt 0.437500 0.312500 +vt 0.437500 0.125000 +vt 1.000000 0.312500 +vt 1.000000 0.375000 +vt 0.625000 0.625000 +vt 1.000000 0.875000 +vt 0.250000 0.875000 +vt 0.375000 0.312500 +vt 0.375000 0.062500 +vt 0.437500 0.062500 +vt 0.812500 0.062500 +vt 0.250000 0.562500 +vt 0.250000 0.625000 +vt 0.125000 0.625000 +vt 0.062500 0.625000 +vt 0.062500 0.375000 +vt 0.125000 0.375000 +vt 0.500000 0.937500 +vt 0.437500 0.937500 +vt 0.437500 0.687500 +vt 0.500000 0.687500 +vt 0.312500 0.625000 +vt 0.250000 0.375000 +vt 0.312500 0.375000 +vt 0.875000 0.625000 +vt 0.812500 0.375000 +vt 0.875000 0.375000 +vt 0.812500 0.937500 +vt 0.812500 0.687500 +vt 0.875000 0.687500 +vt 0.062500 0.312500 +vt 0.062500 0.062500 +vt 0.375000 0.625000 +vt 0.062500 0.937500 +vt 0.062500 0.687500 +vt 0.125000 0.687500 +vt 0.187500 0.625000 +vt 0.187500 0.375000 +vt 0.937500 0.312500 +vt 0.875000 0.312500 +vt 0.875000 0.062500 +vt 0.937500 0.062500 +vt 0.500000 0.375000 +vt 0.250000 0.937500 +vt 0.187500 0.937500 +vt 0.187500 0.687500 +vt 0.500000 0.312500 +vt 0.500000 0.062500 +vt 0.562500 0.062500 +vt 0.375000 0.937500 +vt 0.312500 0.937500 +vt 0.312500 0.687500 +vt 0.187500 0.312500 +vt 0.125000 0.312500 +vt 0.125000 0.062500 +vt 0.187500 0.062500 +vt 0.625000 0.937500 +vt 0.562500 0.937500 +vt 0.562500 0.687500 +vt 0.625000 0.687500 +vt 0.687500 0.375000 +vt 0.312500 0.312500 +vt 0.250000 0.312500 +vt 0.250000 0.062500 +vt 0.312500 0.062500 +vt 0.750000 0.562500 +vt 0.750000 0.937500 +vt 0.687500 0.937500 +vt 0.687500 0.687500 +vt 0.625000 0.312500 +vt 0.687500 0.062500 +vt 0.937500 0.625000 +vt 0.937500 0.375000 +vt 0.750000 0.812500 +vt 0.750000 0.875000 +vt 1.000000 0.250000 +vt 0.250000 0.250000 +vt 1.000000 0.062500 +vt 0.250000 0.500000 +vt 1.000000 0.500000 +vt 0.812500 0.812500 +vt 0.500000 0.187500 +vt 0.625000 0.812500 +vt 0.500000 0.812500 +vt 0.250000 0.437500 +vt 1.000000 0.437500 +vt 1.000000 0.750000 +vt 0.250000 0.750000 +vt 0.750000 0.750000 +vt 0.750000 0.437500 +vt 0.832553 0.770850 +vt 0.832553 0.912500 +vt 0.000000 0.912500 +vt 0.099769 0.770849 +vt 1.000000 0.770850 +vt 0.267215 0.912500 +vt 0.167447 0.770850 +vt 0.750000 1.000000 +vt 0.000000 1.000000 +vt 0.562500 0.804267 +vt 0.562500 0.499834 +vt 0.625000 0.499834 +vt 0.625000 0.804267 +vt 0.750000 0.499834 +vt 0.750000 0.804267 +vt 0.125000 0.515219 +vt 0.250000 0.515219 +vt 0.437500 0.499834 +vt 0.437500 0.804267 +vt 0.375000 0.804267 +vt 0.375000 0.499834 +vt 0.250000 0.499834 +vt 0.250000 0.804267 +vt 0.750000 0.515219 +vt 0.875000 0.515219 +vt 1.000000 1.000000 +vt 0.250000 1.000000 +vt 0.687500 0.812500 +vn 1.000000 -0.000000 0.000000 +vn 0.000000 0.982700 0.185400 +vn -0.000000 -0.173600 0.984800 +vn -0.000000 0.087200 -0.996200 +vn 0.000000 0.173600 -0.984800 +vn -1.000000 -0.000000 0.000000 +vn 0.000000 -0.984800 -0.173600 +vn 0.000000 -0.197600 0.980300 +vn 0.000000 0.197400 -0.980300 +vn 0.000000 -1.000000 -0.000000 +vn 0.000000 0.996100 0.088200 +vn -0.000000 0.000000 1.000000 +vn 0.000000 0.000000 -1.000000 +vn 0.000000 1.000000 0.000000 +vn 0.000000 -0.996200 -0.087200 +vn -0.000000 0.996200 0.087200 +vn 0.000000 0.984800 0.173600 +vn 0.000000 -0.529400 -0.848300 +vn -0.000000 0.529400 0.848300 +g Cylinder_Cylinder_None +s off +f 230/1/1 229/2/1 225/3/1 226/4/1 +f 6/5/2 5/6/2 4/7/2 3/8/2 +f 205/9/3 12/10/3 8/11/3 206/12/3 +f 71/13/4 72/14/4 68/15/4 67/16/4 +f 207/17/5 14/18/5 10/19/5 208/20/5 +f 70/21/6 71/22/6 67/16/6 66/23/6 +f 206/12/7 8/11/7 9/24/7 208/25/7 +f 223/26/6 224/27/6 1/28/6 2/29/6 +f 221/26/6 222/27/6 15/28/6 16/29/6 +f 20/30/2 19/17/2 18/31/2 17/32/2 +f 25/33/8 26/34/8 22/35/8 21/36/8 +f 26/37/6 27/38/6 23/39/6 22/40/6 +f 27/41/9 28/42/9 24/43/9 23/33/9 +f 28/44/1 25/45/1 21/46/1 24/47/1 +f 21/36/10 22/35/10 23/48/10 24/49/10 +f 28/42/11 27/41/11 26/50/11 25/51/11 +f 33/9/8 34/52/8 30/53/8 29/54/8 +f 34/37/6 35/38/6 31/39/6 30/40/6 +f 35/55/9 36/56/9 32/12/9 31/9/9 +f 36/44/1 33/45/1 29/46/1 32/47/1 +f 29/54/10 30/53/10 31/57/10 32/10/10 +f 36/56/11 35/55/11 34/58/11 33/59/11 +f 209/60/12 42/61/12 38/62/12 210/43/12 +f 211/63/13 44/64/13 40/65/13 212/66/13 +f 210/34/10 38/48/10 39/67/10 212/68/10 +f 50/69/6 51/70/6 47/71/6 46/72/6 +f 52/73/1 49/74/1 45/75/1 48/76/1 +f 45/9/10 46/77/10 47/78/10 48/79/10 +f 211/33/14 43/49/14 42/61/14 209/60/14 +f 52/80/14 51/81/14 50/82/14 49/5/14 +f 80/83/1 77/52/1 73/43/1 76/84/1 +f 58/69/6 59/70/6 55/71/6 54/72/6 +f 73/43/15 74/68/15 75/85/15 76/84/15 +f 60/73/1 57/74/1 53/75/1 56/76/1 +f 53/12/10 54/86/10 55/87/10 56/88/10 +f 60/89/14 59/90/14 58/91/14 57/25/14 +f 80/83/16 79/92/16 78/86/16 77/52/16 +f 78/86/6 79/92/6 75/93/6 74/12/6 +f 79/92/4 80/83/4 76/53/4 75/94/4 +f 72/95/16 71/96/16 70/66/16 69/97/16 +f 65/98/15 66/23/15 67/16/15 68/15/15 +f 72/95/1 69/97/1 65/98/1 68/15/1 +f 117/99/3 118/93/3 114/83/3 113/53/3 +f 214/18/17 87/17/17 86/100/17 213/101/17 +f 120/95/1 117/102/1 113/103/1 116/104/1 +f 112/51/1 109/62/1 105/48/1 108/105/1 +f 215/106/7 90/23/7 91/21/7 216/107/7 +f 109/108/3 110/109/3 106/110/3 105/111/3 +f 103/112/5 104/113/5 100/114/5 99/115/5 +f 102/116/6 103/107/6 99/117/6 98/118/6 +f 101/119/3 102/59/3 98/120/3 97/121/3 +f 110/109/6 111/12/6 107/52/6 106/110/6 +f 111/32/5 112/122/5 108/123/5 107/124/5 +f 104/125/1 101/43/1 97/34/1 100/126/1 +f 118/22/6 119/127/6 115/14/6 114/15/6 +f 119/7/5 120/128/5 116/129/5 115/130/5 +f 125/107/3 126/131/3 122/132/3 121/117/3 +f 128/133/1 125/134/1 121/135/1 124/136/1 +f 126/93/6 127/88/6 123/137/6 122/83/6 +f 127/138/5 128/139/5 124/140/5 123/19/5 +f 133/127/3 134/116/3 130/118/3 129/14/3 +f 136/84/1 133/141/1 129/142/1 132/143/1 +f 134/131/6 135/108/6 131/111/6 130/132/6 +f 135/144/5 136/145/5 132/146/5 131/89/5 +f 141/88/3 142/22/3 138/15/3 137/137/3 +f 144/147/1 141/148/1 137/149/1 140/150/1 +f 142/109/6 143/12/6 139/52/6 138/110/6 +f 143/151/5 144/152/5 140/153/5 139/154/5 +f 149/11/3 150/56/3 146/155/3 145/57/3 +f 152/156/1 149/157/1 145/158/1 148/159/1 +f 89/86/7 215/160/7 216/11/7 92/12/7 +f 151/161/5 152/162/5 148/163/5 147/24/5 +f 157/11/3 158/56/3 154/155/3 153/57/3 +f 160/42/1 157/164/1 153/35/1 156/165/1 +f 158/116/6 159/107/6 155/117/6 154/118/6 +f 159/161/5 160/162/5 156/163/5 155/24/5 +f 165/119/3 166/59/3 162/120/3 161/121/3 +f 168/84/1 165/141/1 161/142/1 164/143/1 +f 166/56/6 167/99/6 163/53/6 162/155/6 +f 167/112/5 168/113/5 164/114/5 163/115/5 +f 173/99/3 174/93/3 170/83/3 169/53/3 +f 176/95/1 173/102/1 169/103/1 172/104/1 +f 174/93/6 175/88/6 171/137/6 170/83/6 +f 175/32/5 176/122/5 172/123/5 171/124/5 +f 181/127/3 182/116/3 178/118/3 177/14/3 +f 184/156/1 181/157/1 177/158/1 180/159/1 +f 182/131/6 183/108/6 179/111/6 178/132/6 +f 183/138/5 184/139/5 180/140/5 179/19/5 +f 189/108/3 190/109/3 186/110/3 185/111/3 +f 192/125/1 189/43/1 185/34/1 188/126/1 +f 190/166/6 191/119/6 187/121/6 186/167/6 +f 191/151/5 192/152/5 188/153/5 187/154/5 +f 197/107/3 198/131/3 194/132/3 193/117/3 +f 200/147/1 197/148/1 193/149/1 196/150/1 +f 198/59/6 199/11/6 195/57/6 194/120/6 +f 199/144/5 200/145/5 196/146/5 195/89/5 +f 203/22/6 204/127/6 202/14/6 201/15/6 +f 88/5/17 214/168/17 213/169/17 85/82/17 +f 44/64/14 211/63/14 209/170/14 41/171/14 +f 37/158/10 210/172/10 212/66/10 40/65/10 +f 43/49/13 211/33/13 212/68/13 39/67/13 +f 41/171/12 209/170/12 210/97/12 37/157/12 +f 7/107/7 206/21/7 208/20/7 10/19/7 +f 13/168/5 207/5/5 208/25/5 9/24/5 +f 11/173/3 205/174/3 206/21/3 7/107/3 +f 17/123/3 18/175/3 220/5/3 219/25/3 +f 3/175/3 4/122/3 218/8/3 217/5/3 +f 232/1/1 231/2/1 227/3/1 228/4/1 +f 224/33/18 232/34/18 228/142/18 1/176/18 +f 231/176/19 223/141/19 2/43/19 227/33/19 +f 225/154/10 16/177/10 15/178/10 226/115/10 +f 147/31/5 96/8/5 92/5/5 216/17/5 +f 222/5/18 230/25/18 226/115/18 15/178/18 +f 229/178/19 221/112/19 16/8/19 225/5/19 +f 214/17/5 88/5/5 84/25/5 151/20/5 +f 213/25/3 86/20/3 82/17/3 150/5/3 +f 150/179/7 82/180/7 83/174/7 151/173/7 +f 146/5/3 94/17/3 90/31/3 215/8/3 +f 147/19/17 95/20/17 94/181/17 146/182/17 +f 150/88/3 203/22/3 201/15/3 146/137/3 +f 96/25/17 147/24/17 146/183/17 93/91/17 +f 204/7/5 151/128/5 147/129/5 202/130/5 +f 93/5/3 146/17/3 215/31/3 89/8/3 +f 81/77/7 150/184/7 151/10/7 84/9/7 +f 85/25/3 213/20/3 150/17/3 81/5/3 +f 87/17/5 214/5/5 151/25/5 83/20/5 +f 95/31/5 147/8/5 216/5/5 91/17/5 +f 20/185/1 17/186/1 219/187/1 61/188/1 +f 19/168/5 20/161/5 61/8/5 62/5/5 +f 18/189/6 19/71/6 62/190/6 220/191/6 +f 6/185/1 3/186/1 217/187/1 63/188/1 +f 5/24/5 6/168/5 63/5/5 64/25/5 +f 4/189/6 5/71/6 64/190/6 218/191/6 +f 227/35/10 2/36/10 1/176/10 228/142/10 +f 257/8/12 238/161/12 234/192/12 258/193/12 +f 259/98/13 240/117/13 236/157/13 260/97/13 +f 258/52/10 234/57/10 235/161/10 260/8/10 +f 259/52/14 239/57/14 238/161/14 257/8/14 +f 248/194/1 245/195/1 241/196/1 244/197/1 +f 241/196/10 242/198/10 243/199/10 244/197/10 +f 248/200/14 247/201/14 246/18/14 245/6/14 +f 254/202/6 255/203/6 251/204/6 250/205/6 +f 249/206/10 250/205/10 251/204/10 252/207/10 +f 256/208/14 255/209/14 254/30/14 253/168/14 +f 240/117/14 259/98/14 257/31/14 237/138/14 +f 233/117/10 258/98/10 260/31/10 236/138/10 +f 239/57/13 259/52/13 260/43/13 235/62/13 +f 237/138/12 257/31/12 258/210/12 233/211/12 +f 222/162/14 221/112/14 229/178/14 230/212/14 +f 224/42/14 223/141/14 231/176/14 232/41/14 diff --git a/games/default/files/Decorations/hdb/models/hdb_desk.obj b/games/default/files/Decorations/hdb/models/hdb_desk.obj new file mode 100644 index 000000000..19d74e044 --- /dev/null +++ b/games/default/files/Decorations/hdb/models/hdb_desk.obj @@ -0,0 +1,245 @@ +# Blender v2.73 (sub 0) OBJ File: 'desk.blend' +# www.blender.org +o main-parts-wood_Cube.001 +v -0.312500 0.000000 -0.437500 +v -0.312500 0.000000 -0.500000 +v 0.437500 0.000000 -0.500000 +v 0.437500 0.000000 -0.437500 +v -0.312500 0.375000 -0.437500 +v -0.312500 0.375000 -0.500000 +v 0.437500 0.375000 -0.500000 +v 0.437500 0.375000 -0.437500 +v -0.312500 -0.437500 -0.437500 +v -0.312500 -0.437500 -0.500000 +v 0.437500 -0.437500 -0.500000 +v 0.437500 -0.437500 -0.437500 +v -0.312500 -0.062500 -0.437500 +v -0.312500 -0.062500 -0.500000 +v 0.437500 -0.062500 -0.500000 +v 0.437500 -0.062500 -0.437500 +v -0.500000 0.437500 0.000000 +v -0.500000 0.437500 -0.437500 +v -0.531250 0.437500 -0.437500 +v -0.531250 0.437500 0.000000 +v -0.500000 0.312500 0.000000 +v -0.500000 0.312500 -0.437500 +v -0.531250 0.312500 -0.437500 +v -0.531250 0.312500 0.000000 +v -1.406250 0.312500 0.000000 +v -1.406250 0.312500 -0.437500 +v -1.375000 0.312500 -0.437500 +v -1.375000 0.312500 0.000000 +v -1.406250 0.437500 0.000000 +v -1.406250 0.437500 -0.437500 +v -1.375000 0.437500 -0.437500 +v -1.375000 0.437500 0.000000 +v -0.375000 -0.500000 0.500000 +v -0.375000 -0.500000 -0.437500 +v 0.500000 -0.500000 -0.437500 +v 0.500000 -0.500000 0.500000 +v -0.375000 0.437500 0.500000 +v -0.375000 0.437500 -0.437500 +v 0.500000 0.437500 -0.437500 +v 0.500000 0.437500 0.500000 +v -0.312500 0.000000 -0.437500 +v -0.500000 0.437500 0.500000 +v -0.500000 0.437500 -0.437500 +v 0.437500 0.000000 -0.437500 +v -0.312500 0.375000 -0.437500 +v -0.500000 0.500000 0.500000 +v -0.500000 0.500000 -0.437500 +v 0.437500 0.375000 -0.437500 +v -0.312500 -0.437500 -0.437500 +v -0.500000 -0.375000 0.500000 +v -0.500000 0.250000 0.500000 +v 0.437500 -0.437500 -0.437500 +v -0.312500 -0.062500 -0.437500 +v -0.500000 -0.375000 0.437500 +v -0.500000 0.250000 0.437500 +v 0.437500 -0.062500 -0.437500 +v -1.500000 0.437500 0.500000 +v -1.500000 0.437500 -0.437500 +v -1.500000 0.500000 0.500000 +v -1.500000 0.500000 -0.437500 +v 0.500000 0.500000 -0.437500 +v 0.500000 0.500000 0.500000 +v -1.500000 -0.500000 0.500000 +v -1.500000 -0.500000 -0.437500 +v -1.437500 -0.500000 -0.437500 +v -1.437500 -0.500000 0.500000 +v -1.437500 0.437500 -0.437500 +v -1.437500 0.437500 0.500000 +v -1.437500 -0.375000 0.500000 +v -1.437500 -0.375000 0.437500 +v -0.375000 -0.375000 0.437500 +v -0.375000 -0.375000 0.500000 +v -1.437500 0.250000 0.500000 +v -1.437500 0.250000 0.437500 +v -0.375000 0.250000 0.437500 +v -0.375000 0.250000 0.500000 +v -1.375000 0.328125 -0.062500 +v -1.375000 0.328125 -0.375000 +v -0.531250 0.328125 -0.375000 +v -0.531250 0.328125 -0.062500 +v -1.375000 0.359375 -0.062500 +v -1.375000 0.359375 -0.375000 +v -0.531250 0.359375 -0.375000 +v -0.531250 0.359375 -0.062500 +v -0.375000 0.000000 -0.437500 +v -0.375000 0.375000 -0.437500 +v -0.375000 -0.437500 -0.437500 +v -0.375000 -0.062500 -0.437500 +v 0.500000 0.000000 -0.437500 +v 0.500000 0.375000 -0.437500 +v 0.500000 -0.437500 -0.437500 +v 0.500000 -0.062500 -0.437500 +vt 1.000000 1.000000 +vt 0.062500 1.000000 +vt 0.062500 0.062500 +vt 1.000000 0.062500 +vt 1.000000 0.937500 +vt 0.062500 0.937500 +vt 0.062500 0.000000 +vt 1.000000 0.000000 +vt 0.125000 0.937500 +vt 0.125000 0.000000 +vt 0.125000 1.000000 +vt 0.000000 1.000000 +vt 0.000000 0.000000 +vt 0.000000 0.937500 +vt 0.937500 0.750000 +vt 0.000000 0.750000 +vt 0.000000 0.125000 +vt 0.937500 0.125000 +vt 0.125000 0.750000 +vt 0.125000 0.125000 +vt 0.937500 1.000000 +vt 0.937500 0.937500 +vt 0.937500 0.000000 +vt 1.000000 0.750000 +vt 0.875000 0.750000 +vt 0.875000 0.125000 +vt 1.000000 0.125000 +vt 0.062500 0.750000 +vt 0.062500 0.125000 +vt 0.875000 0.859375 +vt 0.031250 0.859375 +vt 0.031250 0.828125 +vt 0.875000 0.828125 +vt 0.968750 0.859375 +vt 0.125000 0.859375 +vt 0.125000 0.828125 +vt 0.968750 0.828125 +vt 0.000000 0.984375 +vt 0.000000 0.773396 +vt 0.569642 0.773396 +vt 0.569642 0.984375 +vt 0.569642 0.523397 +vt 0.569642 0.734375 +vt 0.000000 0.734375 +vt 0.000000 0.523397 +vt 0.000000 0.062500 +vt 0.875000 0.000000 +vt 0.875000 0.062500 +vt 0.000000 0.437500 +vt 0.875000 0.437500 +vt 0.875000 0.500000 +vt 0.000000 0.500000 +vt 0.062500 0.875000 +vt 0.000000 0.875000 +vt 0.062500 0.500000 +vt 0.062500 0.437500 +vt 0.812500 0.437500 +vt 0.812500 0.062500 +vt 0.875000 0.875000 +vt 0.812500 0.875000 +vt 0.812500 0.500000 +vt 0.875000 0.937500 +vt 0.812500 1.000000 +vt 0.812500 0.937500 +vt 0.812500 0.000000 +vt 0.750000 0.937500 +vt 0.750000 0.875000 +vt 1.000000 0.875000 +vt 0.750000 0.750000 +vt 0.000000 0.562500 +vt 0.750000 0.562500 +vt 0.750000 0.312500 +vt 0.000000 0.312500 +vt 0.750000 0.125000 +vt 0.750000 0.625000 +vt 1.000000 0.562500 +vt 1.000000 0.625000 +vt 0.750000 0.000000 +vt 0.750000 0.062500 +vt 0.750000 0.500000 +vt 1.000000 0.500000 +vt 0.750000 1.000000 +vn -1.000000 0.000000 0.000000 +vn 1.000000 0.000000 0.000000 +vn 0.000000 0.000000 1.000000 +vn 0.000000 -1.000000 0.000000 +vn 0.000000 1.000000 0.000000 +vn 0.000000 0.000000 -1.000000 +g main-parts-wood_Cube.001_wood +s off +f 37/1/1 38/2/1 34/3/1 33/4/1 +f 39/5/2 40/6/2 36/7/2 35/8/2 +f 40/5/3 37/9/3 33/10/3 36/8/3 +f 33/11/4 34/10/4 35/8/4 36/1/4 +f 62/8/5 61/1/5 47/12/5 46/13/5 +f 60/1/6 47/12/6 43/14/6 58/5/6 +f 62/1/3 46/12/3 42/14/3 40/5/3 +f 57/12/4 58/13/4 43/8/4 42/1/4 +f 74/15/6 55/16/6 54/17/6 70/18/6 +f 76/19/3 51/16/3 50/17/3 72/20/3 +f 59/21/1 60/12/1 58/14/1 57/22/1 +f 69/2/4 70/6/4 54/5/4 50/1/4 +f 76/9/5 75/11/5 55/12/5 51/14/5 +f 46/8/5 47/1/5 60/12/5 59/13/5 +f 67/22/2 68/14/2 66/13/2 65/23/2 +f 63/12/4 64/13/4 65/7/4 66/2/4 +f 55/24/6 75/25/6 71/26/6 54/27/6 +f 51/24/3 73/28/3 69/29/3 50/27/3 +f 50/12/4 54/14/4 71/9/4 72/11/4 +f 51/5/5 55/1/5 74/2/5 73/6/5 +f 82/30/6 83/31/6 79/32/6 78/33/6 +f 84/34/3 81/35/3 77/36/3 80/37/3 +f 77/38/4 78/39/4 79/40/4 80/41/4 +f 84/42/5 83/43/5 82/44/5 81/45/5 +f 91/46/6 35/13/6 34/47/6 87/48/6 +f 92/49/6 88/50/6 85/51/6 89/52/6 +f 48/53/6 90/54/6 89/52/6 44/55/6 +f 56/56/6 92/49/6 91/46/6 52/3/6 +f 88/50/6 53/57/6 49/58/6 87/48/6 +f 86/59/6 45/60/6 41/61/6 85/51/6 +f 47/1/6 61/12/6 39/14/6 43/5/6 +f 61/1/2 62/2/2 40/6/2 39/5/2 +f 46/1/3 59/12/3 57/14/3 42/5/3 +f 42/12/4 43/13/4 39/8/4 40/1/4 +f 57/22/1 58/14/1 64/13/1 63/23/1 +f 58/5/6 67/22/6 65/23/6 64/8/6 +f 68/6/3 57/14/3 63/13/3 66/7/3 +f 90/54/6 86/59/6 38/62/6 39/14/6 +g main-parts-wood_Cube.001_drawers +f 5/59/1 6/60/1 2/61/1 1/51/1 +f 6/60/6 7/53/6 3/55/6 2/61/6 +f 7/53/2 8/54/2 4/52/2 3/55/2 +f 1/6/4 2/2/4 3/63/4 4/64/4 +f 8/60/5 7/64/5 6/6/5 5/53/5 +f 13/50/1 14/57/1 10/58/1 9/48/1 +f 14/57/6 15/56/6 11/3/6 10/58/6 +f 15/56/2 16/49/2 12/46/2 11/3/2 +f 9/7/4 10/3/4 11/58/4 12/65/4 +f 16/57/5 15/61/5 14/55/5 13/56/5 +g main-parts-wood_Cube.001_metal +f 32/66/3 29/67/3 25/68/3 28/5/3 +f 31/69/2 32/16/2 28/70/2 27/71/2 +f 29/72/1 30/73/1 26/17/1 25/74/1 +f 30/75/6 31/71/6 27/76/6 26/77/6 +f 24/13/4 23/78/4 22/79/4 21/46/4 +f 19/71/6 18/80/6 22/81/6 23/76/6 +f 20/71/1 19/70/1 23/73/1 24/72/1 +f 18/82/2 17/12/2 21/16/2 22/69/2 +f 17/82/3 20/66/3 24/5/3 21/1/3 +f 25/74/4 26/17/4 27/46/4 28/79/4 diff --git a/games/default/files/Decorations/hdb/models/hdb_frigo.obj b/games/default/files/Decorations/hdb/models/hdb_frigo.obj new file mode 100644 index 000000000..1cfb8ec96 --- /dev/null +++ b/games/default/files/Decorations/hdb/models/hdb_frigo.obj @@ -0,0 +1,464 @@ +# Blender v2.73 (sub 0) OBJ File: 'refrigerator.blend' +# www.blender.org +o nodebox-1.001 +v -0.500000 -0.500000 0.421875 +v -0.500000 -0.500000 -0.500000 +v 0.500000 -0.500000 -0.500000 +v 0.500000 -0.500000 0.421875 +v -0.500000 1.500000 0.421875 +v 0.484375 -0.421875 0.437500 +v 0.500000 1.500000 -0.500000 +v 0.500000 1.500000 0.421875 +v -0.500000 -0.437500 -0.500000 +v -0.500000 -0.437500 -0.515625 +v 0.023438 -0.437500 -0.515625 +v 0.023438 -0.437500 -0.500000 +v -0.500000 1.500000 -0.500000 +v -0.500000 1.500000 -0.515625 +v 0.023438 1.500000 -0.515625 +v 0.023438 1.500000 -0.500000 +v 0.035156 -0.437500 -0.500000 +v 0.035156 -0.437500 -0.515625 +v 0.500000 -0.437500 -0.515625 +v 0.500000 -0.437500 -0.500000 +v 0.035156 1.500000 -0.500000 +v 0.035156 1.500000 -0.515625 +v 0.500000 1.500000 -0.515625 +v -0.484375 -0.421875 0.437500 +v 0.140625 1.000000 -0.589563 +v 0.140625 0.312500 -0.589563 +v -0.046875 0.312500 -0.589563 +v -0.046875 1.000000 -0.589563 +v -0.031250 0.312500 -0.562500 +v -0.031250 1.000000 -0.562500 +v -0.046875 0.312500 -0.535437 +v -0.046875 1.000000 -0.535437 +v -0.078125 0.312500 -0.535437 +v -0.078125 1.000000 -0.535437 +v -0.093750 0.312500 -0.562500 +v -0.093750 1.000000 -0.562500 +v -0.078125 0.312500 -0.589563 +v -0.078125 1.000000 -0.589563 +v 0.156250 0.312500 -0.562500 +v 0.156250 1.000000 -0.562500 +v 0.140625 0.312500 -0.535437 +v 0.140625 1.000000 -0.535437 +v 0.109375 0.312500 -0.535437 +v 0.109375 1.000000 -0.535437 +v 0.093750 0.312500 -0.562500 +v 0.093750 1.000000 -0.562500 +v 0.109375 0.312500 -0.589563 +v 0.109375 1.000000 -0.589563 +v 0.078125 1.000000 -0.515484 +v 0.078125 1.000000 -0.562359 +v 0.171875 1.000000 -0.562359 +v 0.171875 1.000000 -0.515484 +v 0.078125 1.046875 -0.515484 +v 0.078125 1.046875 -0.562359 +v 0.171875 1.046875 -0.562359 +v 0.171875 1.046875 -0.515484 +v -0.095646 1.046875 -0.595504 +v -0.095646 1.000000 -0.595504 +v 0.125000 1.000000 -0.609234 +v 0.125000 1.046875 -0.609234 +v 0.142938 1.000000 -0.605666 +v 0.142938 1.046875 -0.605666 +v 0.158146 1.000000 -0.595504 +v 0.158146 1.046875 -0.595504 +v 0.168307 1.000000 -0.580297 +v 0.168307 1.046875 -0.580297 +v -0.015625 1.000000 -0.515484 +v -0.015625 1.000000 -0.562359 +v -0.105807 1.046875 -0.580297 +v -0.105807 1.000000 -0.580297 +v -0.019193 1.046875 -0.580297 +v -0.019193 1.000000 -0.580297 +v -0.029354 1.046875 -0.595504 +v -0.029354 1.000000 -0.595504 +v -0.044562 1.046875 -0.605666 +v -0.044562 1.000000 -0.605666 +v -0.062500 1.046875 -0.609234 +v -0.062500 1.000000 -0.609234 +v -0.015625 1.046875 -0.515484 +v -0.015625 1.046875 -0.562359 +v -0.109375 1.046875 -0.562359 +v -0.109375 1.046875 -0.515484 +v -0.109375 1.000000 -0.562359 +v -0.109375 1.000000 -0.515484 +v 0.081693 1.000000 -0.580297 +v 0.081693 1.046875 -0.580297 +v 0.091854 1.000000 -0.595504 +v 0.091854 1.046875 -0.595504 +v 0.107062 1.000000 -0.605666 +v 0.107062 1.046875 -0.605666 +v -0.080438 1.000000 -0.605666 +v -0.080438 1.046875 -0.605666 +v -0.095646 0.312500 -0.595504 +v -0.095646 0.265625 -0.595504 +v -0.015625 0.265625 -0.515484 +v -0.015625 0.265625 -0.562359 +v -0.105807 0.312500 -0.580297 +v -0.105807 0.265625 -0.580297 +v -0.019193 0.312500 -0.580297 +v -0.019193 0.265625 -0.580297 +v -0.029354 0.312500 -0.595504 +v -0.029354 0.265625 -0.595504 +v -0.044562 0.312500 -0.605666 +v -0.044562 0.265625 -0.605666 +v -0.062500 0.312500 -0.609234 +v -0.062500 0.265625 -0.609234 +v -0.015625 0.312500 -0.515484 +v -0.015625 0.312500 -0.562359 +v -0.109375 0.312500 -0.562359 +v -0.109375 0.312500 -0.515484 +v -0.109375 0.265625 -0.562359 +v -0.109375 0.265625 -0.515484 +v -0.080438 0.265625 -0.605666 +v -0.080438 0.312500 -0.605666 +v 0.091854 0.312500 -0.595504 +v 0.091854 0.265625 -0.595504 +v 0.171875 0.265625 -0.515484 +v 0.171875 0.265625 -0.562359 +v 0.081693 0.312500 -0.580297 +v 0.081693 0.265625 -0.580297 +v 0.168307 0.312500 -0.580297 +v 0.168307 0.265625 -0.580297 +v 0.158146 0.312500 -0.595504 +v 0.158146 0.265625 -0.595504 +v 0.142938 0.312500 -0.605666 +v 0.142938 0.265625 -0.605666 +v 0.125000 0.312500 -0.609234 +v 0.125000 0.265625 -0.609234 +v 0.171875 0.312500 -0.515484 +v 0.171875 0.312500 -0.562359 +v 0.078125 0.312500 -0.562359 +v 0.078125 0.312500 -0.515484 +v 0.078125 0.265625 -0.562359 +v 0.078125 0.265625 -0.515484 +v 0.107062 0.265625 -0.605666 +v 0.107062 0.312500 -0.605666 +v 0.035156 0.531250 -0.515625 +v 0.500000 0.531250 -0.515625 +v 0.437500 0.828125 -0.515625 +v 0.437500 0.531250 -0.515625 +v 0.035156 0.828125 -0.515625 +v 0.500000 0.828125 -0.515625 +v 0.125000 0.531250 -0.515625 +v 0.125000 0.828125 -0.515625 +v 0.437500 0.828125 -0.375000 +v 0.437500 0.531250 -0.375000 +v 0.125000 0.531250 -0.375000 +v 0.125000 0.828125 -0.375000 +v 0.312500 0.640625 -0.437500 +v 0.312500 0.640625 -0.449219 +v 0.375000 0.640625 -0.449219 +v 0.375000 0.640625 -0.437500 +v 0.312500 0.828125 -0.437500 +v 0.312500 0.828125 -0.449219 +v 0.375000 0.828125 -0.449219 +v 0.375000 0.828125 -0.437500 +v 0.187500 0.640625 -0.437500 +v 0.187500 0.640625 -0.449219 +v 0.250000 0.640625 -0.449219 +v 0.250000 0.640625 -0.437500 +v 0.187500 0.828125 -0.437500 +v 0.187500 0.828125 -0.449219 +v 0.250000 0.828125 -0.449219 +v 0.250000 0.828125 -0.437500 +v -0.484375 1.484375 0.437500 +v 0.484375 1.484375 0.437500 +v 0.484375 -0.421875 0.421875 +v -0.484375 -0.421875 0.421875 +v -0.484375 1.484375 0.421875 +v 0.484375 1.484375 0.421875 +v -0.500000 -0.421875 0.421875 +v 0.500000 1.484375 0.421875 +v -0.500000 1.484375 0.421875 +v 0.500000 -0.421875 0.421875 +vt 0.671875 0.500000 +vt 0.687500 0.500000 +vt 0.687500 0.968750 +vt 0.671875 0.968750 +vt 0.515625 0.984375 +vt 0.500000 0.984375 +vt 0.500000 0.500000 +vt 0.515625 0.500000 +vt 0.031250 0.984375 +vt 0.265625 0.984375 +vt 0.265625 0.484375 +vt 0.031250 0.484375 +vt 0.296875 0.250000 +vt 0.296875 0.046875 +vt 0.546875 0.046875 +vt 0.546875 0.250000 +vt 0.984375 0.968750 +vt 0.968750 0.968750 +vt 0.968750 0.500000 +vt 0.984375 0.500000 +vt 0.015625 0.984375 +vt 0.015625 0.484375 +vt 0.640625 0.984375 +vt 0.640625 0.500000 +vt 0.359375 0.984375 +vt 0.343750 0.984375 +vt 0.343750 0.500000 +vt 0.359375 0.500000 +vt 0.312500 0.984375 +vt 0.296875 0.984375 +vt 0.296875 0.812500 +vt 0.296875 0.734375 +vt 0.296875 0.500000 +vt 0.312500 0.500000 +vt 0.296875 0.031250 +vt 0.406250 0.031250 +vt 0.406250 0.046875 +vt 0.140625 0.046875 +vt 0.140625 0.031250 +vt 0.265625 0.031250 +vt 0.265625 0.046875 +vt 0.390625 0.796875 +vt 0.390625 0.718750 +vt 0.406250 0.718750 +vt 0.406250 0.796875 +vt 0.421875 0.046875 +vt 0.421875 0.031250 +vt 0.546875 0.031250 +vt 0.937500 0.968750 +vt 0.718750 0.968750 +vt 0.718750 0.500000 +vt 0.937500 0.500000 +vt 0.390625 0.500000 +vt 0.390625 0.484375 +vt 0.640625 0.484375 +vt 0.575846 0.437297 +vt 0.575846 0.450788 +vt 0.548864 0.450788 +vt 0.548864 0.437297 +vt 0.549891 0.432135 +vt 0.552815 0.427758 +vt 0.557192 0.424833 +vt 0.562355 0.423807 +vt 0.567518 0.424833 +vt 0.571894 0.427758 +vt 0.574819 0.432135 +vt 0.548842 0.450788 +vt 0.548842 0.437287 +vt 0.552797 0.427739 +vt 0.562344 0.423785 +vt 0.571891 0.427739 +vt 0.500000 0.718750 +vt 0.390625 0.984375 +vt 0.500000 0.796875 +vt 0.484375 0.796875 +vt 0.484375 0.718750 +vt 0.093750 0.328125 +vt 0.140625 0.328125 +vt 0.140625 0.359375 +vt 0.093750 0.359375 +vt 0.218750 0.328125 +vt 0.265625 0.328125 +vt 0.265625 0.359375 +vt 0.218750 0.359375 +vt 0.015625 0.359375 +vt 0.015625 0.328125 +vt 0.109375 0.406250 +vt 0.109375 0.390625 +vt 0.156250 0.390625 +vt 0.156250 0.406250 +vt 0.031250 0.453125 +vt 0.015625 0.453125 +vt 0.015625 0.406250 +vt 0.031250 0.406250 +vt 0.218750 0.390625 +vt 0.218750 0.406250 +vt 0.171875 0.406250 +vt 0.171875 0.390625 +vt 0.015625 0.046875 +vt 0.015625 0.031250 +vt 0.125000 0.031250 +vt 0.125000 0.046875 +vt 0.015625 0.250000 +vt 0.265625 0.250000 +vt 0.109375 0.453125 +vt 0.109375 0.437500 +vt 0.156250 0.437500 +vt 0.156250 0.453125 +vt 0.078125 0.453125 +vt 0.062500 0.453125 +vt 0.062500 0.406250 +vt 0.078125 0.406250 +vt 0.218750 0.437500 +vt 0.218750 0.453125 +vt 0.171875 0.453125 +vt 0.171875 0.437500 +vt 0.015625 0.734375 +vt 0.015625 0.796875 +vt 0.031250 0.296875 +vt 0.031250 0.281250 +vt 0.250000 0.281250 +vt 0.250000 0.296875 +vt 0.312500 0.296875 +vt 0.312500 0.281250 +vt 0.531250 0.281250 +vt 0.531250 0.296875 +vt 0.953125 0.484375 +vt 0.953125 0.500000 +vt 0.703125 0.500000 +vt 0.703125 0.484375 +vt 0.953125 0.968750 +vt 0.953125 0.984375 +vt 0.703125 0.984375 +vt 0.703125 0.968750 +vt 0.609375 0.437500 +vt 0.640625 0.437500 +vt 0.640625 0.453125 +vt 0.609375 0.453125 +vt 0.515625 0.437500 +vt 0.312500 0.437500 +vt 0.312500 0.421875 +vt 0.515625 0.421875 +vt 0.515625 0.390625 +vt 0.312500 0.390625 +vt 0.312500 0.375000 +vt 0.515625 0.375000 +vt 0.515625 0.453125 +vt 0.312500 0.453125 +vt 0.312500 0.359375 +vt 0.515625 0.359375 +vt 0.312500 0.406250 +vt 0.515625 0.406250 +vt 0.656250 0.437500 +vt 0.656250 0.453125 +vt 0.734375 0.437500 +vt 0.765625 0.437500 +vt 0.765625 0.453125 +vt 0.734375 0.453125 +vt 0.718750 0.453125 +vt 0.718750 0.437500 +vt 0.671875 0.437500 +vt 0.671875 0.453125 +vt 0.687500 0.453125 +vt 0.687500 0.437500 +vt 0.703125 0.437500 +vt 0.703125 0.453125 +vn 1.000000 0.000000 0.000000 +vn 0.000000 0.000000 -1.000000 +vn 0.000000 -1.000000 -0.000000 +vn -1.000000 0.000000 0.000000 +vn 0.000000 1.000000 0.000000 +vn 0.000000 -0.000000 1.000000 +vn -0.995200 0.000000 -0.098000 +vn -0.500000 -0.000000 0.866000 +vn 0.500000 0.000000 -0.866000 +vn 0.500000 -0.000000 0.866000 +vn -0.500000 0.000000 -0.866000 +vn -0.923900 0.000000 -0.382700 +vn 0.995200 0.000000 -0.098000 +vn 0.923900 0.000000 -0.382700 +vn -0.707100 0.000000 -0.707100 +vn 0.382700 0.000000 -0.923900 +vn -0.382700 0.000000 -0.923900 +vn 0.707100 0.000000 -0.707100 +s off +f 6/1/1 167/2/1 170/3/1 166/4/1 +f 16/5/2 21/6/2 17/7/2 12/8/2 +f 7/9/1 8/10/1 4/11/1 3/12/1 +f 1/13/3 2/14/3 3/15/3 4/16/3 +f 165/17/4 169/18/4 168/19/4 24/20/4 +f 13/9/4 14/21/4 10/22/4 9/12/4 +f 14/23/2 15/5/2 11/8/2 10/24/2 +f 15/25/1 16/26/1 12/27/1 11/28/1 +f 21/29/4 22/30/4 141/31/4 137/32/4 18/33/4 17/34/4 +f 9/14/3 10/35/3 11/36/3 12/37/3 +f 16/38/5 15/39/5 14/40/5 13/41/5 +f 142/42/2 138/43/2 140/44/2 139/45/2 +f 17/46/3 18/47/3 19/48/3 20/15/3 +f 166/49/6 165/50/6 24/51/6 6/52/6 +f 20/53/2 3/54/2 2/55/2 9/24/2 +f 131/56/5 132/57/5 129/58/5 130/59/5 121/60/5 123/61/5 125/62/5 127/63/5 136/64/5 115/65/5 119/66/5 +f 49/67/3 50/68/3 85/60/3 87/69/3 89/62/3 59/70/3 61/64/3 63/71/3 65/66/3 51/56/3 52/57/3 +f 112/67/3 111/68/3 98/60/3 94/69/3 113/62/3 106/70/3 104/64/3 102/71/3 100/66/3 96/56/3 95/57/3 +f 54/56/5 53/57/5 56/58/5 55/59/5 66/60/5 64/61/5 62/62/5 60/63/5 90/64/5 88/65/5 86/66/5 +f 81/56/5 82/57/5 79/58/5 80/59/5 71/60/5 73/61/5 75/62/5 77/63/5 92/64/5 57/65/5 69/66/5 +f 134/67/3 133/68/3 120/60/3 116/69/3 135/62/3 128/70/3 126/64/3 124/71/3 122/66/3 118/56/3 117/57/3 +f 109/56/5 110/57/5 107/58/5 108/59/5 99/60/5 101/61/5 103/62/5 105/63/5 114/64/5 93/65/5 97/66/5 +f 84/67/3 83/68/3 70/60/3 58/69/3 91/62/3 78/70/3 76/64/3 74/71/3 72/66/3 68/56/3 67/57/3 +f 137/72/2 138/43/2 19/53/2 18/7/2 +f 22/6/2 23/73/2 142/42/2 141/74/2 +f 137/72/2 141/74/2 144/75/2 143/76/2 +f 143/77/1 144/78/1 148/79/1 147/80/1 +f 139/81/4 140/82/4 146/83/4 145/84/4 +f 147/80/5 146/85/5 140/86/5 143/77/5 +f 144/78/3 139/81/3 145/84/3 148/79/3 +f 146/44/2 147/76/2 148/75/2 145/45/2 +f 153/87/4 154/88/4 150/89/4 149/90/4 +f 154/91/2 155/92/2 151/93/2 150/94/2 +f 155/95/1 156/96/1 152/97/1 151/98/1 +f 7/99/5 23/100/5 22/101/5 21/102/5 +f 149/90/3 150/89/3 151/98/3 152/97/3 +f 8/103/5 7/99/5 13/41/5 5/104/5 +f 161/105/4 162/106/4 158/107/4 157/108/4 +f 162/109/2 163/110/2 159/111/2 158/112/2 +f 163/113/1 164/114/1 160/115/1 159/116/1 +f 23/21/1 7/9/1 20/12/1 19/22/1 138/117/1 142/118/1 +f 157/108/3 158/107/3 159/116/3 160/115/3 +f 5/10/4 13/9/4 2/12/4 1/11/4 +f 166/119/5 170/120/5 169/121/5 165/122/5 +f 24/123/3 168/124/3 167/125/3 6/126/3 +f 4/127/6 174/128/6 171/129/6 1/130/6 +f 172/131/6 8/132/6 5/133/6 173/134/6 +f 172/131/6 170/49/6 167/52/6 174/128/6 +f 169/50/6 173/134/6 171/129/6 168/51/6 +s 1 +f 53/135/4 54/136/7 50/137/7 49/138/4 +f 43/139/8 44/140/8 46/141/4 45/142/4 +f 27/143/9 28/144/9 30/145/1 29/146/1 +f 41/147/10 42/148/10 44/140/8 43/139/8 +f 29/146/1 30/145/1 32/149/10 31/150/10 +f 45/142/4 46/141/4 48/151/11 47/152/11 +f 39/146/1 40/145/1 42/149/10 41/150/10 +f 31/147/10 32/148/10 34/140/8 33/139/8 +f 47/152/11 48/151/11 25/144/9 26/143/9 +f 26/143/9 25/144/9 40/145/1 39/146/1 +f 33/139/8 34/140/8 36/141/4 35/142/4 +f 37/152/11 38/151/11 28/144/9 27/143/9 +f 35/142/4 36/141/4 38/151/11 37/152/11 +f 83/137/7 81/136/7 69/153/12 70/154/12 +f 55/155/13 56/156/1 52/157/1 51/158/13 +f 122/159/14 121/160/14 130/155/13 118/158/13 +f 98/154/12 97/153/12 93/161/15 94/162/15 +f 59/163/2 60/164/2 62/165/16 61/166/16 +f 113/162/17 114/161/17 105/164/2 106/163/2 +f 61/166/16 62/165/16 64/160/18 63/159/18 +f 133/137/7 131/136/7 119/153/12 120/154/12 +f 94/162/15 93/161/15 114/161/17 113/162/17 +f 63/159/18 64/160/18 66/160/14 65/159/14 +f 124/166/18 123/165/18 121/160/14 122/159/14 +f 110/135/4 109/136/7 111/137/7 112/138/4 +f 126/166/16 125/165/16 123/165/18 124/166/18 +f 108/155/13 107/156/1 95/157/1 96/158/13 +f 74/159/18 73/160/18 71/155/14 72/158/14 +f 128/163/2 127/164/2 125/165/16 126/166/16 +f 76/166/16 75/165/16 73/160/18 74/159/18 +f 106/163/2 105/164/2 103/165/16 104/166/16 +f 78/163/2 77/164/2 75/165/16 76/166/16 +f 130/155/13 129/156/1 117/157/1 118/158/13 +f 104/166/16 103/165/16 101/160/18 102/159/18 +f 132/135/4 131/136/7 133/137/7 134/138/4 +f 102/159/18 101/160/18 99/160/14 100/159/14 +f 80/155/13 79/156/1 67/157/1 68/158/13 +f 116/154/15 115/153/15 136/161/17 135/162/17 +f 111/137/7 109/136/7 97/153/12 98/154/12 +f 82/135/4 81/136/7 83/137/7 84/138/4 +f 135/162/17 136/161/17 127/164/2 128/163/2 +f 58/162/15 57/161/15 92/164/17 91/163/17 +f 50/137/7 54/136/7 86/153/12 85/154/12 +f 120/154/12 119/153/12 115/153/15 116/154/15 +f 91/163/17 92/164/17 77/164/2 78/163/2 +f 65/159/14 66/160/14 55/155/13 51/158/13 +f 70/154/12 69/153/12 57/161/15 58/162/15 +f 100/159/14 99/160/14 108/155/13 96/158/13 +f 85/154/12 86/153/12 88/161/15 87/162/15 +f 72/158/14 71/155/14 80/155/13 68/158/13 +f 89/162/17 90/161/17 60/164/2 59/163/2 +f 87/162/15 88/161/15 90/161/17 89/162/17 diff --git a/games/default/files/Decorations/hdb/models/hdb_pc.obj b/games/default/files/Decorations/hdb/models/hdb_pc.obj new file mode 100644 index 000000000..55a7763e8 --- /dev/null +++ b/games/default/files/Decorations/hdb/models/hdb_pc.obj @@ -0,0 +1,1618 @@ +# Blender v2.72 (sub 0) OBJ File: '' +# www.blender.org +mtllib computer_monitor.mtl +o display +v 0.428237 0.168254 0.091392 +v -0.393909 0.168254 0.091392 +v 0.428237 -0.358283 0.045326 +v -0.393909 -0.358283 0.045326 +vt 0.999920 0.999996 +vt 0.000080 0.999996 +vt 0.000080 0.000080 +vt 0.999920 0.000080 +g display_display_None +usemtl None +s off +f 1/1 2/2 4/3 3/4 +o screen +v 0.084081 -0.280866 0.084563 +v -0.047689 -0.280866 0.084563 +v -0.047689 -0.470723 0.111650 +v 0.084081 -0.470723 0.111650 +v -0.047689 -0.363032 0.046992 +v -0.047689 -0.470723 0.046992 +v 0.084081 -0.363032 0.046992 +v 0.084081 -0.470723 0.046992 +v 0.455244 0.186934 0.077083 +v 0.455244 0.183841 0.112433 +v -0.420916 0.183841 0.112433 +v -0.420916 0.186934 0.077083 +v 0.455244 -0.374195 0.027990 +v 0.455244 -0.377287 0.063341 +v -0.420916 -0.377287 0.063341 +v -0.420916 -0.374195 0.027990 +v 0.173247 -0.489973 -0.038210 +v 0.173247 -0.489973 0.196851 +v 0.173247 -0.499995 0.196851 +v 0.173247 -0.499995 -0.038210 +v -0.136855 -0.489973 -0.038210 +v -0.136855 -0.499995 -0.038210 +v -0.136855 -0.489973 0.196851 +v -0.136855 -0.499995 0.196851 +v 0.398369 0.145375 0.132580 +v -0.364041 0.145375 0.132580 +v 0.398369 -0.342904 0.089861 +v -0.364041 -0.342904 0.089861 +v 0.428237 0.169638 0.075570 +v -0.393909 0.169638 0.075570 +v 0.428237 -0.356899 0.029504 +v -0.393909 -0.356899 0.029504 +v 0.428237 0.168254 0.091392 +v -0.393909 0.168254 0.091392 +v 0.428237 -0.358283 0.045326 +v -0.393909 -0.358283 0.045326 +vt 0.252552 0.007665 +vt 0.499880 0.007665 +vt 0.499880 0.254993 +vt 0.252552 0.254993 +vt 0.747208 0.007665 +vt 0.747208 0.254993 +vt 0.994536 0.007665 +vt 0.994536 0.254993 +vt 0.005224 0.007665 +vt 0.005224 0.254993 +vt 0.000000 0.000000 +vt 1.000000 0.000000 +vt 1.000000 1.000000 +vt 0.000000 1.000000 +vt 0.005224 0.502321 +vt 0.252552 0.502321 +vt 0.252552 0.749649 +vt 0.005224 0.749649 +vt 0.747208 0.502321 +vt 0.994536 0.502321 +vt 0.994536 0.749649 +vt 0.747208 0.749649 +vt 0.499880 0.502321 +vt 0.499880 0.749649 +vt 0.499880 0.996977 +vt 0.252552 0.996977 +g screen_screen_None +usemtl None +s off +f 5/5 6/6 7/7 8/8 +f 6/6 9/9 10/10 7/7 +f 9/9 11/11 12/12 10/10 +f 11/13 5/5 8/8 12/14 +f 15/15 14/16 29/17 30/18 +f 16/15 15/16 19/17 20/18 +f 13/15 14/16 15/17 16/18 +f 17/15 13/16 33/17 35/18 +f 20/15 19/16 18/17 17/18 +f 14/15 13/16 17/17 18/18 +f 21/19 22/20 23/21 24/22 +f 25/23 21/24 24/25 26/26 +f 27/27 25/23 26/26 28/28 +f 22/20 27/27 28/28 23/21 +f 12/14 8/8 22/20 21/19 +f 10/10 12/12 21/24 25/23 +f 7/7 10/10 25/23 27/27 +f 8/8 7/7 27/27 22/20 +f 28/28 26/29 24/30 23/21 +f 30/15 29/16 31/17 32/18 +f 18/15 19/16 32/17 31/18 +f 14/15 18/16 31/17 29/18 +f 19/15 15/16 30/17 32/18 +f 35/15 33/16 37/17 39/18 +f 16/15 20/16 36/17 34/18 +f 20/15 17/16 35/17 36/18 +f 13/15 16/16 34/17 33/18 +f 34/15 36/16 40/17 38/18 +f 36/15 35/16 39/17 40/18 +f 33/15 34/16 38/17 37/18 +o keys +v -0.390747 -0.479858 -0.268432 +v -0.414573 -0.479858 -0.270517 +v -0.414573 -0.484356 -0.270517 +v -0.390747 -0.484356 -0.268432 +v -0.410352 -0.479858 -0.318762 +v -0.410352 -0.484356 -0.318762 +v -0.386526 -0.479858 -0.316677 +v -0.386526 -0.484356 -0.316677 +v -0.363510 -0.479858 -0.266049 +v -0.387336 -0.479858 -0.268134 +v -0.387336 -0.484356 -0.268134 +v -0.363510 -0.484356 -0.266049 +v -0.383115 -0.479858 -0.316379 +v -0.383115 -0.484356 -0.316379 +v -0.359289 -0.479858 -0.314294 +v -0.359289 -0.484356 -0.314294 +v -0.262382 -0.472028 -0.345724 +v -0.286300 -0.472028 -0.345724 +v -0.286300 -0.495945 -0.345724 +v -0.262382 -0.495945 -0.345724 +v -0.286300 -0.472028 -0.399370 +v -0.286300 -0.495945 -0.399370 +v -0.262382 -0.472028 -0.399370 +v -0.262382 -0.495945 -0.399370 +v -0.262382 -0.472028 -0.289166 +v -0.286300 -0.472028 -0.289166 +v -0.286300 -0.495945 -0.289166 +v -0.262382 -0.495945 -0.289166 +v -0.286300 -0.472028 -0.342813 +v -0.286300 -0.495945 -0.342813 +v -0.262382 -0.472028 -0.342813 +v -0.262382 -0.495945 -0.342813 +v -0.262382 -0.472028 -0.261470 +v -0.286300 -0.472028 -0.261470 +v -0.286300 -0.495945 -0.261470 +v -0.262382 -0.495945 -0.261470 +v -0.286300 -0.472028 -0.285387 +v -0.286300 -0.495945 -0.285387 +v -0.262382 -0.472028 -0.285387 +v -0.262382 -0.495945 -0.285387 +v -0.233840 -0.472028 -0.375175 +v -0.257757 -0.472028 -0.375175 +v -0.257757 -0.495945 -0.375175 +v -0.233840 -0.495945 -0.375175 +v -0.257757 -0.472028 -0.399092 +v -0.257757 -0.495945 -0.399092 +v -0.233840 -0.472028 -0.399092 +v -0.233840 -0.495945 -0.399092 +v -0.176566 -0.472028 -0.375175 +v -0.229456 -0.472028 -0.375175 +v -0.229456 -0.495945 -0.375175 +v -0.176566 -0.495945 -0.375175 +v -0.229456 -0.472028 -0.399092 +v -0.229456 -0.495945 -0.399092 +v -0.176566 -0.472028 -0.399092 +v -0.176566 -0.495945 -0.399092 +v -0.175988 -0.472028 -0.345994 +v -0.199906 -0.472028 -0.345994 +v -0.199906 -0.495945 -0.345994 +v -0.175988 -0.495945 -0.345994 +v -0.199906 -0.472028 -0.369911 +v -0.199906 -0.495945 -0.369911 +v -0.175988 -0.472028 -0.369911 +v -0.175988 -0.495945 -0.369911 +v -0.205539 -0.472028 -0.345994 +v -0.229456 -0.472028 -0.345994 +v -0.229456 -0.495945 -0.345994 +v -0.205539 -0.495945 -0.345994 +v -0.229456 -0.472028 -0.369911 +v -0.229456 -0.495945 -0.369911 +v -0.205539 -0.472028 -0.369911 +v -0.205539 -0.495945 -0.369911 +v -0.233840 -0.472028 -0.345994 +v -0.257757 -0.472028 -0.345994 +v -0.257757 -0.495945 -0.345994 +v -0.233840 -0.495945 -0.345994 +v -0.257757 -0.472028 -0.369911 +v -0.257757 -0.495945 -0.369911 +v -0.233840 -0.472028 -0.369911 +v -0.233840 -0.495945 -0.369911 +v -0.233840 -0.472028 -0.318631 +v -0.257757 -0.472028 -0.318631 +v -0.257757 -0.495945 -0.318631 +v -0.233840 -0.495945 -0.318631 +v -0.257757 -0.472028 -0.342548 +v -0.257757 -0.495945 -0.342548 +v -0.233840 -0.472028 -0.342548 +v -0.233840 -0.495945 -0.342548 +v -0.205539 -0.472028 -0.318631 +v -0.229456 -0.472028 -0.318631 +v -0.229456 -0.495945 -0.318631 +v -0.205539 -0.495945 -0.318631 +v -0.229456 -0.472028 -0.342548 +v -0.229456 -0.495945 -0.342548 +v -0.205539 -0.472028 -0.342548 +v -0.205539 -0.495945 -0.342548 +v -0.175988 -0.472028 -0.318631 +v -0.199906 -0.472028 -0.318631 +v -0.199906 -0.495945 -0.318631 +v -0.175988 -0.495945 -0.318631 +v -0.199906 -0.472028 -0.342548 +v -0.199906 -0.495945 -0.342548 +v -0.175988 -0.472028 -0.342548 +v -0.175988 -0.495945 -0.342548 +v -0.175988 -0.472028 -0.261470 +v -0.199906 -0.472028 -0.261470 +v -0.199906 -0.495945 -0.261470 +v -0.175988 -0.495945 -0.261470 +v -0.199906 -0.472028 -0.285387 +v -0.199906 -0.495945 -0.285387 +v -0.175988 -0.472028 -0.285387 +v -0.175988 -0.495945 -0.285387 +v -0.205539 -0.472028 -0.261470 +v -0.229456 -0.472028 -0.261470 +v -0.229456 -0.495945 -0.261470 +v -0.205539 -0.495945 -0.261470 +v -0.229456 -0.472028 -0.285387 +v -0.229456 -0.495945 -0.285387 +v -0.205539 -0.472028 -0.285387 +v -0.205539 -0.495945 -0.285387 +v -0.233840 -0.472028 -0.261470 +v -0.257757 -0.472028 -0.261470 +v -0.257757 -0.495945 -0.261470 +v -0.233840 -0.495945 -0.261470 +v -0.257757 -0.472028 -0.285387 +v -0.257757 -0.495945 -0.285387 +v -0.233840 -0.472028 -0.285387 +v -0.233840 -0.495945 -0.285387 +v -0.233840 -0.472028 -0.288834 +v -0.257757 -0.472028 -0.288834 +v -0.257757 -0.495945 -0.288834 +v -0.233840 -0.495945 -0.288834 +v -0.257757 -0.472028 -0.312751 +v -0.257757 -0.495945 -0.312751 +v -0.233840 -0.472028 -0.312751 +v -0.233840 -0.495945 -0.312751 +v -0.205539 -0.472028 -0.288834 +v -0.229456 -0.472028 -0.288834 +v -0.229456 -0.495945 -0.288834 +v -0.205539 -0.495945 -0.288834 +v -0.229456 -0.472028 -0.312751 +v -0.229456 -0.495945 -0.312751 +v -0.205539 -0.472028 -0.312751 +v -0.205539 -0.495945 -0.312751 +v -0.175988 -0.472028 -0.288834 +v -0.199906 -0.472028 -0.288834 +v -0.199906 -0.495945 -0.288834 +v -0.175988 -0.495945 -0.288834 +v -0.199906 -0.472028 -0.312751 +v -0.199906 -0.495945 -0.312751 +v -0.175988 -0.472028 -0.312751 +v -0.175988 -0.495945 -0.312751 +v -0.099654 -0.472028 -0.347769 +v -0.123570 -0.472028 -0.347769 +v -0.123570 -0.495945 -0.347769 +v -0.099654 -0.495945 -0.347769 +v -0.123570 -0.472028 -0.371686 +v -0.123570 -0.495945 -0.371686 +v -0.099654 -0.472028 -0.371686 +v -0.099654 -0.495945 -0.371686 +v -0.127954 -0.472028 -0.375133 +v -0.151871 -0.472028 -0.375133 +v -0.151871 -0.495945 -0.375133 +v -0.127954 -0.495945 -0.375133 +v -0.151871 -0.472028 -0.399050 +v -0.151871 -0.495945 -0.399050 +v -0.127954 -0.472028 -0.399050 +v -0.127954 -0.495945 -0.399050 +v -0.099654 -0.472028 -0.375133 +v -0.123570 -0.472028 -0.375133 +v -0.123570 -0.495945 -0.375133 +v -0.099654 -0.495945 -0.375133 +v -0.123570 -0.472028 -0.399050 +v -0.123570 -0.495945 -0.399050 +v -0.099654 -0.472028 -0.399050 +v -0.099654 -0.495945 -0.399050 +v -0.070103 -0.472028 -0.375133 +v -0.094019 -0.472028 -0.375133 +v -0.094019 -0.495945 -0.375133 +v -0.070103 -0.495945 -0.375133 +v -0.094019 -0.472028 -0.399050 +v -0.094019 -0.495945 -0.399050 +v -0.070103 -0.472028 -0.399050 +v -0.070103 -0.495945 -0.399050 +v -0.070103 -0.472028 -0.288834 +v -0.094019 -0.472028 -0.288834 +v -0.094019 -0.495945 -0.288834 +v -0.070103 -0.495945 -0.288834 +v -0.094019 -0.472028 -0.312751 +v -0.094019 -0.495945 -0.312751 +v -0.070103 -0.472028 -0.312751 +v -0.070103 -0.495945 -0.312751 +v -0.099654 -0.472028 -0.288834 +v -0.123570 -0.472028 -0.288834 +v -0.123570 -0.495945 -0.288834 +v -0.099654 -0.495945 -0.288834 +v -0.123570 -0.472028 -0.312751 +v -0.123570 -0.495945 -0.312751 +v -0.099654 -0.472028 -0.312751 +v -0.099654 -0.495945 -0.312751 +v -0.127954 -0.472028 -0.288834 +v -0.151871 -0.472028 -0.288834 +v -0.151871 -0.495945 -0.288834 +v -0.127954 -0.495945 -0.288834 +v -0.151871 -0.472028 -0.312751 +v -0.151871 -0.495945 -0.312751 +v -0.127954 -0.472028 -0.312751 +v -0.127954 -0.495945 -0.312751 +v -0.127954 -0.472028 -0.261470 +v -0.151871 -0.472028 -0.261470 +v -0.151871 -0.495945 -0.261470 +v -0.127954 -0.495945 -0.261470 +v -0.151871 -0.472028 -0.285387 +v -0.151871 -0.495945 -0.285387 +v -0.127954 -0.472028 -0.285387 +v -0.127954 -0.495945 -0.285387 +v -0.099654 -0.472028 -0.261470 +v -0.123570 -0.472028 -0.261470 +v -0.123570 -0.495945 -0.261470 +v -0.099654 -0.495945 -0.261470 +v -0.123570 -0.472028 -0.285387 +v -0.123570 -0.495945 -0.285387 +v -0.099654 -0.472028 -0.285387 +v -0.099654 -0.495945 -0.285387 +v -0.070103 -0.472028 -0.261470 +v -0.094019 -0.472028 -0.261470 +v -0.094019 -0.495945 -0.261470 +v -0.070103 -0.495945 -0.261470 +v -0.094019 -0.472028 -0.285387 +v -0.094019 -0.495945 -0.285387 +v -0.070103 -0.472028 -0.285387 +v -0.070103 -0.495945 -0.285387 +v -0.070103 -0.472028 -0.222573 +v -0.094019 -0.472028 -0.222573 +v -0.094019 -0.495945 -0.222573 +v -0.070103 -0.495945 -0.222573 +v -0.094019 -0.472028 -0.246491 +v -0.094019 -0.495945 -0.246491 +v -0.070103 -0.472028 -0.246491 +v -0.070103 -0.495945 -0.246491 +v -0.099654 -0.472028 -0.222573 +v -0.123570 -0.472028 -0.222573 +v -0.123570 -0.495945 -0.222573 +v -0.099654 -0.495945 -0.222573 +v -0.123570 -0.472028 -0.246491 +v -0.123570 -0.495945 -0.246491 +v -0.099654 -0.472028 -0.246491 +v -0.099654 -0.495945 -0.246491 +v -0.127954 -0.472028 -0.222573 +v -0.151871 -0.472028 -0.222573 +v -0.151871 -0.495945 -0.222573 +v -0.127954 -0.495945 -0.222573 +v -0.151871 -0.472028 -0.246491 +v -0.151871 -0.495945 -0.246491 +v -0.127954 -0.472028 -0.246491 +v -0.127954 -0.495945 -0.246491 +v 0.064702 -0.471565 -0.222862 +v 0.040785 -0.471565 -0.222862 +v 0.040785 -0.495482 -0.222862 +v 0.064702 -0.495482 -0.222862 +v 0.040785 -0.471565 -0.246779 +v 0.040785 -0.495482 -0.246779 +v 0.064702 -0.471565 -0.246779 +v 0.064702 -0.495482 -0.246779 +v -0.021316 -0.472028 -0.222573 +v -0.045233 -0.472028 -0.222573 +v -0.045233 -0.495945 -0.222573 +v -0.021316 -0.495945 -0.222573 +v -0.045233 -0.472028 -0.246491 +v -0.045233 -0.495945 -0.246491 +v -0.021316 -0.472028 -0.246491 +v -0.021316 -0.495945 -0.246491 +v 0.006985 -0.472028 -0.222573 +v -0.016932 -0.472028 -0.222573 +v -0.016932 -0.495945 -0.222573 +v 0.006985 -0.495945 -0.222573 +v -0.016932 -0.472028 -0.246491 +v -0.016932 -0.495945 -0.246491 +v 0.006985 -0.472028 -0.246491 +v 0.006985 -0.495945 -0.246491 +v 0.036536 -0.472028 -0.222573 +v 0.012619 -0.472028 -0.222573 +v 0.012619 -0.495945 -0.222573 +v 0.036536 -0.495945 -0.222573 +v 0.012619 -0.472028 -0.246491 +v 0.012619 -0.495945 -0.246491 +v 0.036536 -0.472028 -0.246491 +v 0.036536 -0.495945 -0.246491 +v 0.171678 -0.472028 -0.222573 +v 0.147761 -0.472028 -0.222573 +v 0.147761 -0.495945 -0.222573 +v 0.171678 -0.495945 -0.222573 +v 0.147761 -0.472028 -0.246491 +v 0.147761 -0.495945 -0.246491 +v 0.171678 -0.472028 -0.246491 +v 0.171678 -0.495945 -0.246491 +v 0.142127 -0.472028 -0.222573 +v 0.118210 -0.472028 -0.222573 +v 0.118210 -0.495945 -0.222573 +v 0.142127 -0.495945 -0.222573 +v 0.118210 -0.472028 -0.246491 +v 0.118210 -0.495945 -0.246491 +v 0.142127 -0.472028 -0.246491 +v 0.142127 -0.495945 -0.246491 +v 0.113827 -0.472028 -0.222573 +v 0.089910 -0.472028 -0.222573 +v 0.089910 -0.495945 -0.222573 +v 0.113827 -0.495945 -0.222573 +v 0.089910 -0.472028 -0.246491 +v 0.089910 -0.495945 -0.246491 +v 0.113827 -0.472028 -0.246491 +v 0.113827 -0.495945 -0.246491 +v 0.199845 -0.471565 -0.222862 +v 0.175927 -0.471565 -0.222862 +v 0.175927 -0.495482 -0.222862 +v 0.199845 -0.495482 -0.222862 +v 0.175927 -0.471565 -0.246779 +v 0.175927 -0.495482 -0.246779 +v 0.199845 -0.471565 -0.246779 +v 0.199845 -0.495482 -0.246779 +v 0.331555 -0.471565 -0.222862 +v 0.307637 -0.471565 -0.222862 +v 0.307637 -0.495482 -0.222862 +v 0.331555 -0.495482 -0.222862 +v 0.307637 -0.471565 -0.246779 +v 0.307637 -0.495482 -0.246779 +v 0.331555 -0.471565 -0.246779 +v 0.331555 -0.495482 -0.246779 +v 0.245536 -0.472028 -0.222573 +v 0.221620 -0.472028 -0.222573 +v 0.221620 -0.495945 -0.222573 +v 0.245536 -0.495945 -0.222573 +v 0.221620 -0.472028 -0.246491 +v 0.221620 -0.495945 -0.246491 +v 0.245536 -0.472028 -0.246491 +v 0.245536 -0.495945 -0.246491 +v 0.273837 -0.472028 -0.222573 +v 0.249920 -0.472028 -0.222573 +v 0.249920 -0.495945 -0.222573 +v 0.273837 -0.495945 -0.222573 +v 0.249920 -0.472028 -0.246491 +v 0.249920 -0.495945 -0.246491 +v 0.273837 -0.472028 -0.246491 +v 0.273837 -0.495945 -0.246491 +v 0.303388 -0.472028 -0.222573 +v 0.279471 -0.472028 -0.222573 +v 0.279471 -0.495945 -0.222573 +v 0.303388 -0.495945 -0.222573 +v 0.279471 -0.472028 -0.246491 +v 0.279471 -0.495945 -0.246491 +v 0.303388 -0.472028 -0.246491 +v 0.303388 -0.495945 -0.246491 +v 0.399277 -0.471565 -0.222499 +v 0.375359 -0.471565 -0.222499 +v 0.375359 -0.495482 -0.222499 +v 0.399277 -0.495482 -0.222499 +v 0.375359 -0.471565 -0.246417 +v 0.375359 -0.495482 -0.246417 +v 0.399277 -0.471565 -0.246417 +v 0.399277 -0.495482 -0.246417 +v -0.007081 -0.471059 -0.374434 +v -0.045281 -0.471059 -0.374434 +v -0.045281 -0.495161 -0.374434 +v -0.007081 -0.495161 -0.374434 +v -0.045281 -0.471059 -0.398536 +v -0.045281 -0.495161 -0.398536 +v -0.007081 -0.471059 -0.398536 +v -0.007081 -0.495161 -0.398536 +v 0.031444 -0.471059 -0.374434 +v -0.000208 -0.471059 -0.374434 +v -0.000208 -0.495161 -0.374434 +v 0.031444 -0.495161 -0.374434 +v -0.000208 -0.471059 -0.398536 +v -0.000208 -0.495161 -0.398536 +v 0.031444 -0.471059 -0.398536 +v 0.031444 -0.495161 -0.398536 +v 0.068025 -0.471059 -0.374434 +v 0.036373 -0.471059 -0.374434 +v 0.036373 -0.495161 -0.374434 +v 0.068025 -0.495161 -0.374434 +v 0.036373 -0.471059 -0.398536 +v 0.036373 -0.495161 -0.398536 +v 0.068025 -0.471059 -0.398536 +v 0.068025 -0.495161 -0.398536 +v 0.104539 -0.471059 -0.374434 +v 0.072887 -0.471059 -0.374434 +v 0.072887 -0.495161 -0.374434 +v 0.104539 -0.495161 -0.374434 +v 0.072887 -0.471059 -0.398536 +v 0.072887 -0.495161 -0.398536 +v 0.104539 -0.471059 -0.398536 +v 0.104539 -0.495161 -0.398536 +v 0.293333 -0.471059 -0.374434 +v 0.110331 -0.471059 -0.374434 +v 0.110331 -0.495161 -0.374434 +v 0.293333 -0.495161 -0.374434 +v 0.110331 -0.471059 -0.398536 +v 0.110331 -0.495161 -0.398536 +v 0.293333 -0.471059 -0.398536 +v 0.293333 -0.495161 -0.398536 +v 0.326581 -0.471059 -0.374434 +v 0.297744 -0.471059 -0.374434 +v 0.297744 -0.495161 -0.374434 +v 0.326581 -0.495161 -0.374434 +v 0.297744 -0.471059 -0.398536 +v 0.297744 -0.495161 -0.398536 +v 0.326581 -0.471059 -0.398536 +v 0.326581 -0.495161 -0.398536 +v 0.311892 -0.472028 -0.261036 +v 0.287975 -0.472028 -0.261036 +v 0.287975 -0.495945 -0.261036 +v 0.311892 -0.495945 -0.261036 +v 0.287975 -0.472028 -0.284953 +v 0.287975 -0.495945 -0.284953 +v 0.311892 -0.472028 -0.284953 +v 0.311892 -0.495945 -0.284953 +v 0.282341 -0.472028 -0.261036 +v 0.258424 -0.472028 -0.261036 +v 0.258424 -0.495945 -0.261036 +v 0.282341 -0.495945 -0.261036 +v 0.258424 -0.472028 -0.284953 +v 0.258424 -0.495945 -0.284953 +v 0.282341 -0.472028 -0.284953 +v 0.282341 -0.495945 -0.284953 +v 0.254040 -0.472028 -0.261036 +v 0.230123 -0.472028 -0.261036 +v 0.230123 -0.495945 -0.261036 +v 0.254040 -0.495945 -0.261036 +v 0.230123 -0.472028 -0.284953 +v 0.230123 -0.495945 -0.284953 +v 0.254040 -0.472028 -0.284953 +v 0.254040 -0.495945 -0.284953 +v 0.222860 -0.472028 -0.261036 +v 0.198944 -0.472028 -0.261036 +v 0.198944 -0.495945 -0.261036 +v 0.222860 -0.495945 -0.261036 +v 0.198944 -0.472028 -0.284953 +v 0.198944 -0.495945 -0.284953 +v 0.222860 -0.472028 -0.284953 +v 0.222860 -0.495945 -0.284953 +v 0.194771 -0.472028 -0.261036 +v 0.170853 -0.472028 -0.261036 +v 0.170853 -0.495945 -0.261036 +v 0.194771 -0.495945 -0.261036 +v 0.170853 -0.472028 -0.284953 +v 0.170853 -0.495945 -0.284953 +v 0.194771 -0.472028 -0.284953 +v 0.194771 -0.495945 -0.284953 +v 0.165247 -0.472028 -0.261036 +v 0.141330 -0.472028 -0.261036 +v 0.141330 -0.495945 -0.261036 +v 0.165247 -0.495945 -0.261036 +v 0.141330 -0.472028 -0.284953 +v 0.141330 -0.495945 -0.284953 +v 0.165247 -0.472028 -0.284953 +v 0.165247 -0.495945 -0.284953 +v 0.135655 -0.472028 -0.261036 +v 0.111737 -0.472028 -0.261036 +v 0.111737 -0.495945 -0.261036 +v 0.135655 -0.495945 -0.261036 +v 0.111737 -0.472028 -0.284953 +v 0.111737 -0.495945 -0.284953 +v 0.135655 -0.472028 -0.284953 +v 0.135655 -0.495945 -0.284953 +v 0.103818 -0.472028 -0.261036 +v 0.079901 -0.472028 -0.261036 +v 0.079901 -0.495945 -0.261036 +v 0.103818 -0.495945 -0.261036 +v 0.079901 -0.472028 -0.284953 +v 0.079901 -0.495945 -0.284953 +v 0.103818 -0.472028 -0.284953 +v 0.103818 -0.495945 -0.284953 +v 0.074652 -0.472028 -0.261036 +v 0.050736 -0.472028 -0.261036 +v 0.050736 -0.495945 -0.261036 +v 0.074652 -0.495945 -0.261036 +v 0.050736 -0.472028 -0.284953 +v 0.050736 -0.495945 -0.284953 +v 0.074652 -0.472028 -0.284953 +v 0.074652 -0.495945 -0.284953 +v 0.044727 -0.472028 -0.261036 +v 0.020810 -0.472028 -0.261036 +v 0.020810 -0.495945 -0.261036 +v 0.044727 -0.495945 -0.261036 +v 0.020810 -0.472028 -0.284953 +v 0.020810 -0.495945 -0.284953 +v 0.044727 -0.472028 -0.284953 +v 0.044727 -0.495945 -0.284953 +v 0.014076 -0.472028 -0.260816 +v -0.046476 -0.472028 -0.260816 +v -0.046476 -0.495945 -0.260816 +v 0.014076 -0.495945 -0.260816 +v -0.046476 -0.472028 -0.284733 +v -0.046476 -0.495945 -0.284733 +v 0.014076 -0.472028 -0.284733 +v 0.014076 -0.495945 -0.284733 +v -0.018777 -0.472028 -0.289712 +v -0.046317 -0.472028 -0.289712 +v -0.046317 -0.495945 -0.289712 +v -0.018777 -0.495945 -0.289712 +v -0.046317 -0.472028 -0.312654 +v -0.046317 -0.472028 -0.342087 +v -0.046317 -0.495945 -0.342087 +v -0.046317 -0.495945 -0.312654 +v -0.018777 -0.472028 -0.342087 +v -0.018777 -0.495945 -0.342087 +v -0.018777 -0.495945 -0.312654 +v -0.018777 -0.472028 -0.312654 +v -0.012723 -0.472028 -0.312654 +v -0.012723 -0.495945 -0.312654 +v -0.012723 -0.495945 -0.289712 +v -0.012723 -0.472028 -0.289712 +v 0.020153 -0.472028 -0.346050 +v -0.046476 -0.472028 -0.346050 +v -0.046476 -0.495945 -0.346050 +v 0.020153 -0.495945 -0.346050 +v -0.046476 -0.472028 -0.369967 +v -0.046476 -0.495945 -0.369967 +v 0.020153 -0.472028 -0.369967 +v 0.020153 -0.495945 -0.369967 +v 0.008757 -0.472028 -0.318170 +v -0.015161 -0.472028 -0.318170 +v -0.015161 -0.495945 -0.318170 +v 0.008757 -0.495945 -0.318170 +v -0.015161 -0.472028 -0.342087 +v -0.015161 -0.495945 -0.342087 +v 0.008757 -0.472028 -0.342087 +v 0.008757 -0.495945 -0.342087 +v 0.013686 -0.472028 -0.289285 +v -0.010232 -0.472028 -0.289285 +v -0.010232 -0.495945 -0.289285 +v 0.013686 -0.495945 -0.289285 +v -0.010232 -0.472028 -0.313203 +v -0.010232 -0.495945 -0.313203 +v 0.013686 -0.472028 -0.313203 +v 0.013686 -0.495945 -0.313203 +v 0.041797 -0.472028 -0.289285 +v 0.017880 -0.472028 -0.289285 +v 0.017880 -0.495945 -0.289285 +v 0.041797 -0.495945 -0.289285 +v 0.017880 -0.472028 -0.313203 +v 0.017880 -0.495945 -0.313203 +v 0.041797 -0.472028 -0.313203 +v 0.041797 -0.495945 -0.313203 +v 0.036867 -0.472028 -0.318170 +v 0.012950 -0.472028 -0.318170 +v 0.012950 -0.495945 -0.318170 +v 0.036867 -0.495945 -0.318170 +v 0.012950 -0.472028 -0.342087 +v 0.012950 -0.495945 -0.342087 +v 0.036867 -0.472028 -0.342087 +v 0.036867 -0.495945 -0.342087 +v 0.048974 -0.472028 -0.346050 +v 0.025058 -0.472028 -0.346050 +v 0.025058 -0.495945 -0.346050 +v 0.048974 -0.495945 -0.346050 +v 0.025058 -0.472028 -0.369967 +v 0.025058 -0.495945 -0.369967 +v 0.048974 -0.472028 -0.369967 +v 0.048974 -0.495945 -0.369967 +v 0.077016 -0.472028 -0.346050 +v 0.053098 -0.472028 -0.346050 +v 0.053098 -0.495945 -0.346050 +v 0.077016 -0.495945 -0.346050 +v 0.053098 -0.472028 -0.369967 +v 0.053098 -0.495945 -0.369967 +v 0.077016 -0.472028 -0.369967 +v 0.077016 -0.495945 -0.369967 +v 0.064909 -0.472028 -0.318170 +v 0.040991 -0.472028 -0.318170 +v 0.040991 -0.495945 -0.318170 +v 0.064909 -0.495945 -0.318170 +v 0.040991 -0.472028 -0.342087 +v 0.040991 -0.495945 -0.342087 +v 0.064909 -0.472028 -0.342087 +v 0.064909 -0.495945 -0.342087 +v 0.069838 -0.472028 -0.289285 +v 0.045920 -0.472028 -0.289285 +v 0.045920 -0.495945 -0.289285 +v 0.069838 -0.495945 -0.289285 +v 0.045920 -0.472028 -0.313203 +v 0.045920 -0.495945 -0.313203 +v 0.069838 -0.472028 -0.313203 +v 0.069838 -0.495945 -0.313203 +v 0.098238 -0.472028 -0.289285 +v 0.074321 -0.472028 -0.289285 +v 0.074321 -0.495945 -0.289285 +v 0.098238 -0.495945 -0.289285 +v 0.074321 -0.472028 -0.313203 +v 0.074321 -0.495945 -0.313203 +v 0.098238 -0.472028 -0.313203 +v 0.098238 -0.495945 -0.313203 +v 0.093308 -0.472028 -0.318170 +v 0.069391 -0.472028 -0.318170 +v 0.069391 -0.495945 -0.318170 +v 0.093308 -0.495945 -0.318170 +v 0.069391 -0.472028 -0.342087 +v 0.069391 -0.495945 -0.342087 +v 0.093308 -0.472028 -0.342087 +v 0.093308 -0.495945 -0.342087 +v 0.105417 -0.472028 -0.346050 +v 0.081499 -0.472028 -0.346050 +v 0.081499 -0.495945 -0.346050 +v 0.105417 -0.495945 -0.346050 +v 0.081499 -0.472028 -0.369967 +v 0.081499 -0.495945 -0.369967 +v 0.105417 -0.472028 -0.369967 +v 0.105417 -0.495945 -0.369967 +v 0.133480 -0.472028 -0.346050 +v 0.109564 -0.472028 -0.346050 +v 0.109564 -0.495945 -0.346050 +v 0.133480 -0.495945 -0.346050 +v 0.109564 -0.472028 -0.369967 +v 0.109564 -0.495945 -0.369967 +v 0.133480 -0.472028 -0.369967 +v 0.133480 -0.495945 -0.369967 +v 0.121373 -0.472028 -0.318170 +v 0.097456 -0.472028 -0.318170 +v 0.097456 -0.495945 -0.318170 +v 0.121373 -0.495945 -0.318170 +v 0.097456 -0.472028 -0.342087 +v 0.097456 -0.495945 -0.342087 +v 0.121373 -0.472028 -0.342087 +v 0.121373 -0.495945 -0.342087 +v 0.126303 -0.472028 -0.289285 +v 0.102386 -0.472028 -0.289285 +v 0.102386 -0.495945 -0.289285 +v 0.126303 -0.495945 -0.289285 +v 0.102386 -0.472028 -0.313203 +v 0.102386 -0.495945 -0.313203 +v 0.126303 -0.472028 -0.313203 +v 0.126303 -0.495945 -0.313203 +v 0.155499 -0.472028 -0.289285 +v 0.131581 -0.472028 -0.289285 +v 0.131581 -0.495945 -0.289285 +v 0.155499 -0.495945 -0.289285 +v 0.131581 -0.472028 -0.313203 +v 0.131581 -0.495945 -0.313203 +v 0.155499 -0.472028 -0.313203 +v 0.155499 -0.495945 -0.313203 +v 0.150569 -0.472028 -0.318170 +v 0.126651 -0.472028 -0.318170 +v 0.126651 -0.495945 -0.318170 +v 0.150569 -0.495945 -0.318170 +v 0.126651 -0.472028 -0.342087 +v 0.126651 -0.495945 -0.342087 +v 0.150569 -0.472028 -0.342087 +v 0.150569 -0.495945 -0.342087 +v 0.162676 -0.472028 -0.346050 +v 0.138758 -0.472028 -0.346050 +v 0.138758 -0.495945 -0.346050 +v 0.162676 -0.495945 -0.346050 +v 0.138758 -0.472028 -0.369967 +v 0.138758 -0.495945 -0.369967 +v 0.162676 -0.472028 -0.369967 +v 0.162676 -0.495945 -0.369967 +v 0.191727 -0.472028 -0.346050 +v 0.167811 -0.472028 -0.346050 +v 0.167811 -0.495945 -0.346050 +v 0.191727 -0.495945 -0.346050 +v 0.167811 -0.472028 -0.369967 +v 0.167811 -0.495945 -0.369967 +v 0.191727 -0.472028 -0.369967 +v 0.191727 -0.495945 -0.369967 +v 0.179620 -0.472028 -0.318170 +v 0.155702 -0.472028 -0.318170 +v 0.155702 -0.495945 -0.318170 +v 0.179620 -0.495945 -0.318170 +v 0.155702 -0.472028 -0.342087 +v 0.155702 -0.495945 -0.342087 +v 0.179620 -0.472028 -0.342087 +v 0.179620 -0.495945 -0.342087 +v 0.184550 -0.472028 -0.289285 +v 0.160632 -0.472028 -0.289285 +v 0.160632 -0.495945 -0.289285 +v 0.184550 -0.495945 -0.289285 +v 0.160632 -0.472028 -0.313203 +v 0.160632 -0.495945 -0.313203 +v 0.184550 -0.472028 -0.313203 +v 0.184550 -0.495945 -0.313203 +v 0.213560 -0.472028 -0.289285 +v 0.189643 -0.472028 -0.289285 +v 0.189643 -0.495945 -0.289285 +v 0.213560 -0.495945 -0.289285 +v 0.189643 -0.472028 -0.313203 +v 0.189643 -0.495945 -0.313203 +v 0.213560 -0.472028 -0.313203 +v 0.213560 -0.495945 -0.313203 +v 0.208631 -0.472028 -0.318170 +v 0.184714 -0.472028 -0.318170 +v 0.184714 -0.495945 -0.318170 +v 0.208631 -0.495945 -0.318170 +v 0.184714 -0.472028 -0.342087 +v 0.184714 -0.495945 -0.342087 +v 0.208631 -0.472028 -0.342087 +v 0.208631 -0.495945 -0.342087 +v 0.220739 -0.472028 -0.346050 +v 0.196821 -0.472028 -0.346050 +v 0.196821 -0.495945 -0.346050 +v 0.220739 -0.495945 -0.346050 +v 0.196821 -0.472028 -0.369967 +v 0.196821 -0.495945 -0.369967 +v 0.220739 -0.472028 -0.369967 +v 0.220739 -0.495945 -0.369967 +v 0.252314 -0.472028 -0.346050 +v 0.228398 -0.472028 -0.346050 +v 0.228398 -0.495945 -0.346050 +v 0.252314 -0.495945 -0.346050 +v 0.228398 -0.472028 -0.369967 +v 0.228398 -0.495945 -0.369967 +v 0.252314 -0.472028 -0.369967 +v 0.252314 -0.495945 -0.369967 +v 0.240207 -0.472028 -0.318170 +v 0.216290 -0.472028 -0.318170 +v 0.216290 -0.495945 -0.318170 +v 0.240207 -0.495945 -0.318170 +v 0.216290 -0.472028 -0.342087 +v 0.216290 -0.495945 -0.342087 +v 0.240207 -0.472028 -0.342087 +v 0.240207 -0.495945 -0.342087 +v 0.245137 -0.472028 -0.289285 +v 0.221220 -0.472028 -0.289285 +v 0.221220 -0.495945 -0.289285 +v 0.245137 -0.495945 -0.289285 +v 0.221220 -0.472028 -0.313203 +v 0.221220 -0.495945 -0.313203 +v 0.245137 -0.472028 -0.313203 +v 0.245137 -0.495945 -0.313203 +v 0.273972 -0.472028 -0.289285 +v 0.250054 -0.472028 -0.289285 +v 0.250054 -0.495945 -0.289285 +v 0.273972 -0.495945 -0.289285 +v 0.250054 -0.472028 -0.313203 +v 0.250054 -0.495945 -0.313203 +v 0.273972 -0.472028 -0.313203 +v 0.273972 -0.495945 -0.313203 +v 0.269043 -0.472028 -0.318170 +v 0.245125 -0.472028 -0.318170 +v 0.245125 -0.495945 -0.318170 +v 0.269043 -0.495945 -0.318170 +v 0.245125 -0.472028 -0.342087 +v 0.245125 -0.495945 -0.342087 +v 0.269043 -0.472028 -0.342087 +v 0.269043 -0.495945 -0.342087 +v 0.281150 -0.472028 -0.346050 +v 0.257232 -0.472028 -0.346050 +v 0.257232 -0.495945 -0.346050 +v 0.281150 -0.495945 -0.346050 +v 0.257232 -0.472028 -0.369967 +v 0.257232 -0.495945 -0.369967 +v 0.281150 -0.472028 -0.369967 +v 0.281150 -0.495945 -0.369967 +v 0.310666 -0.472028 -0.346050 +v 0.286749 -0.472028 -0.346050 +v 0.286749 -0.495945 -0.346050 +v 0.310666 -0.495945 -0.346050 +v 0.286749 -0.472028 -0.369967 +v 0.286749 -0.495945 -0.369967 +v 0.310666 -0.472028 -0.369967 +v 0.310666 -0.495945 -0.369967 +v 0.298559 -0.472028 -0.318170 +v 0.274642 -0.472028 -0.318170 +v 0.274642 -0.495945 -0.318170 +v 0.298559 -0.495945 -0.318170 +v 0.274642 -0.472028 -0.342087 +v 0.274642 -0.495945 -0.342087 +v 0.298559 -0.472028 -0.342087 +v 0.298559 -0.495945 -0.342087 +v 0.303488 -0.472028 -0.289285 +v 0.279570 -0.472028 -0.289285 +v 0.279570 -0.495945 -0.289285 +v 0.303488 -0.495945 -0.289285 +v 0.279570 -0.472028 -0.313203 +v 0.279570 -0.495945 -0.313203 +v 0.303488 -0.472028 -0.313203 +v 0.303488 -0.495945 -0.313203 +v 0.332126 -0.472028 -0.289285 +v 0.308209 -0.472028 -0.289285 +v 0.308209 -0.495945 -0.289285 +v 0.332126 -0.495945 -0.289285 +v 0.308209 -0.472028 -0.313203 +v 0.308209 -0.495945 -0.313203 +v 0.332126 -0.472028 -0.313203 +v 0.332126 -0.495945 -0.313203 +v 0.327196 -0.472028 -0.318170 +v 0.303279 -0.472028 -0.318170 +v 0.303279 -0.495945 -0.318170 +v 0.327196 -0.495945 -0.318170 +v 0.303279 -0.472028 -0.342087 +v 0.303279 -0.495945 -0.342087 +v 0.327196 -0.472028 -0.342087 +v 0.327196 -0.495945 -0.342087 +v 0.339303 -0.472028 -0.346050 +v 0.315386 -0.472028 -0.346050 +v 0.315386 -0.495945 -0.346050 +v 0.339303 -0.495945 -0.346050 +v 0.315386 -0.472028 -0.369967 +v 0.315386 -0.495945 -0.369967 +v 0.339303 -0.472028 -0.369967 +v 0.339303 -0.495945 -0.369967 +v 0.367000 -0.472028 -0.346050 +v 0.343083 -0.472028 -0.346050 +v 0.343083 -0.495945 -0.346050 +v 0.367000 -0.495945 -0.346050 +v 0.343083 -0.472028 -0.369967 +v 0.343083 -0.495945 -0.369967 +v 0.367000 -0.472028 -0.369967 +v 0.367000 -0.495945 -0.369967 +v 0.354893 -0.472028 -0.318170 +v 0.330976 -0.472028 -0.318170 +v 0.330976 -0.495945 -0.318170 +v 0.354893 -0.495945 -0.318170 +v 0.330976 -0.472028 -0.342087 +v 0.330976 -0.495945 -0.342087 +v 0.354893 -0.472028 -0.342087 +v 0.354893 -0.495945 -0.342087 +v 0.359823 -0.472028 -0.289285 +v 0.335906 -0.472028 -0.289285 +v 0.335906 -0.495945 -0.289285 +v 0.359823 -0.495945 -0.289285 +v 0.335906 -0.472028 -0.313203 +v 0.335906 -0.495945 -0.313203 +v 0.359823 -0.472028 -0.313203 +v 0.359823 -0.495945 -0.313203 +v 0.340059 -0.471565 -0.261324 +v 0.316141 -0.471565 -0.261324 +v 0.316141 -0.495482 -0.261324 +v 0.340059 -0.495482 -0.261324 +v 0.316141 -0.471565 -0.285241 +v 0.316141 -0.495482 -0.285241 +v 0.340059 -0.471565 -0.285241 +v 0.340059 -0.495482 -0.285241 +v 0.370925 -0.471565 -0.261324 +v 0.347008 -0.471565 -0.261324 +v 0.347008 -0.495482 -0.261324 +v 0.370925 -0.495482 -0.261324 +v 0.347008 -0.471565 -0.285241 +v 0.347008 -0.495482 -0.285241 +v 0.370925 -0.471565 -0.285241 +v 0.370925 -0.495482 -0.285241 +v 0.359556 -0.471059 -0.374434 +v 0.330719 -0.471059 -0.374434 +v 0.330719 -0.495161 -0.374434 +v 0.359556 -0.495161 -0.374434 +v 0.330719 -0.471059 -0.398536 +v 0.330719 -0.495161 -0.398536 +v 0.359556 -0.471059 -0.398536 +v 0.359556 -0.495161 -0.398536 +v 0.399277 -0.471565 -0.261324 +v 0.375359 -0.471565 -0.261324 +v 0.375359 -0.495482 -0.261324 +v 0.399277 -0.495482 -0.261324 +v 0.375359 -0.471565 -0.285241 +v 0.375359 -0.495482 -0.285241 +v 0.399277 -0.471565 -0.285241 +v 0.399277 -0.495482 -0.285241 +v 0.399509 -0.471059 -0.289180 +v 0.363369 -0.471059 -0.289180 +v 0.363369 -0.495161 -0.289180 +v 0.399509 -0.495161 -0.289180 +v 0.363369 -0.471059 -0.313283 +v 0.363369 -0.495161 -0.313283 +v 0.399509 -0.471059 -0.313283 +v 0.399509 -0.495161 -0.313283 +v 0.399509 -0.471059 -0.317715 +v 0.358301 -0.471059 -0.317715 +v 0.358301 -0.495161 -0.317715 +v 0.399509 -0.495161 -0.317715 +v 0.358301 -0.471059 -0.341818 +v 0.358301 -0.495161 -0.341818 +v 0.399509 -0.471059 -0.341818 +v 0.399509 -0.495161 -0.341818 +v 0.399509 -0.471059 -0.346050 +v 0.370671 -0.471059 -0.346050 +v 0.370671 -0.495161 -0.346050 +v 0.399509 -0.495161 -0.346050 +v 0.370671 -0.471059 -0.370152 +v 0.370671 -0.495161 -0.370152 +v 0.399509 -0.471059 -0.370152 +v 0.399509 -0.495161 -0.370152 +v 0.399509 -0.471059 -0.374132 +v 0.363369 -0.471059 -0.374132 +v 0.363369 -0.495161 -0.374132 +v 0.399509 -0.495161 -0.374132 +v 0.363369 -0.471059 -0.398234 +v 0.363369 -0.495161 -0.398234 +v 0.399509 -0.471059 -0.398234 +v 0.399509 -0.495161 -0.398234 +vt 0.000000 0.000000 +vt 1.000000 0.000000 +vt 1.000000 1.000000 +vt 0.000000 1.000000 +g keys_keys_None +usemtl None +s off +f 41/31 42/32 43/33 44/34 +f 42/31 45/32 46/33 43/34 +f 45/31 47/32 48/33 46/34 +f 47/31 41/32 44/33 48/34 +f 42/33 41/34 47/31 45/32 +f 49/31 50/32 51/33 52/34 +f 50/31 53/32 54/33 51/34 +f 53/31 55/32 56/33 54/34 +f 55/31 49/32 52/33 56/34 +f 55/31 53/32 50/33 49/34 +f 57/31 58/32 59/33 60/34 +f 58/31 61/32 62/33 59/34 +f 61/31 63/32 64/33 62/34 +f 63/31 57/32 60/33 64/34 +f 63/31 61/32 58/33 57/34 +f 65/31 66/32 67/33 68/34 +f 66/31 69/32 70/33 67/34 +f 69/31 71/32 72/33 70/34 +f 71/31 65/32 68/33 72/34 +f 71/31 69/32 66/33 65/34 +f 73/31 74/32 75/33 76/34 +f 74/31 77/32 78/33 75/34 +f 77/31 79/32 80/33 78/34 +f 79/31 73/32 76/33 80/34 +f 79/31 77/32 74/33 73/34 +f 81/31 82/32 83/33 84/34 +f 82/31 85/32 86/33 83/34 +f 85/31 87/32 88/33 86/34 +f 87/31 81/32 84/33 88/34 +f 87/31 85/32 82/33 81/34 +f 89/31 90/32 91/33 92/34 +f 90/31 93/32 94/33 91/34 +f 93/31 95/32 96/33 94/34 +f 95/31 89/32 92/33 96/34 +f 95/31 93/32 90/33 89/34 +f 97/31 98/32 99/33 100/34 +f 98/31 101/32 102/33 99/34 +f 101/31 103/32 104/33 102/34 +f 103/31 97/32 100/33 104/34 +f 103/31 101/32 98/33 97/34 +f 105/31 106/32 107/33 108/34 +f 106/31 109/32 110/33 107/34 +f 109/31 111/32 112/33 110/34 +f 111/31 105/32 108/33 112/34 +f 111/31 109/32 106/33 105/34 +f 113/31 114/32 115/33 116/34 +f 114/31 117/32 118/33 115/34 +f 117/31 119/32 120/33 118/34 +f 119/31 113/32 116/33 120/34 +f 119/31 117/32 114/33 113/34 +f 121/31 122/32 123/33 124/34 +f 122/31 125/32 126/33 123/34 +f 125/31 127/32 128/33 126/34 +f 127/31 121/32 124/33 128/34 +f 127/31 125/32 122/33 121/34 +f 129/31 130/32 131/33 132/34 +f 130/31 133/32 134/33 131/34 +f 133/31 135/32 136/33 134/34 +f 135/31 129/32 132/33 136/34 +f 135/31 133/32 130/33 129/34 +f 137/31 138/32 139/33 140/34 +f 138/31 141/32 142/33 139/34 +f 141/31 143/32 144/33 142/34 +f 143/31 137/32 140/33 144/34 +f 143/31 141/32 138/33 137/34 +f 145/31 146/32 147/33 148/34 +f 146/31 149/32 150/33 147/34 +f 149/31 151/32 152/33 150/34 +f 151/31 145/32 148/33 152/34 +f 151/31 149/32 146/33 145/34 +f 153/31 154/32 155/33 156/34 +f 154/31 157/32 158/33 155/34 +f 157/31 159/32 160/33 158/34 +f 159/31 153/32 156/33 160/34 +f 159/31 157/32 154/33 153/34 +f 161/31 162/32 163/33 164/34 +f 162/31 165/32 166/33 163/34 +f 165/31 167/32 168/33 166/34 +f 167/31 161/32 164/33 168/34 +f 167/31 165/32 162/33 161/34 +f 169/31 170/32 171/33 172/34 +f 170/31 173/32 174/33 171/34 +f 173/31 175/32 176/33 174/34 +f 175/31 169/32 172/33 176/34 +f 175/31 173/32 170/33 169/34 +f 177/31 178/32 179/33 180/34 +f 178/31 181/32 182/33 179/34 +f 181/31 183/32 184/33 182/34 +f 183/31 177/32 180/33 184/34 +f 183/31 181/32 178/33 177/34 +f 185/31 186/32 187/33 188/34 +f 186/31 189/32 190/33 187/34 +f 189/31 191/32 192/33 190/34 +f 191/31 185/32 188/33 192/34 +f 191/31 189/32 186/33 185/34 +f 193/31 194/32 195/33 196/34 +f 194/31 197/32 198/33 195/34 +f 197/31 199/32 200/33 198/34 +f 199/31 193/32 196/33 200/34 +f 199/31 197/32 194/33 193/34 +f 201/31 202/32 203/33 204/34 +f 202/31 205/32 206/33 203/34 +f 205/31 207/32 208/33 206/34 +f 207/31 201/32 204/33 208/34 +f 207/31 205/32 202/33 201/34 +f 209/31 210/32 211/33 212/34 +f 210/31 213/32 214/33 211/34 +f 213/31 215/32 216/33 214/34 +f 215/31 209/32 212/33 216/34 +f 215/31 213/32 210/33 209/34 +f 217/31 218/32 219/33 220/34 +f 218/31 221/32 222/33 219/34 +f 221/31 223/32 224/33 222/34 +f 223/31 217/32 220/33 224/34 +f 223/31 221/32 218/33 217/34 +f 225/31 226/32 227/33 228/34 +f 226/31 229/32 230/33 227/34 +f 229/31 231/32 232/33 230/34 +f 231/31 225/32 228/33 232/34 +f 231/31 229/32 226/33 225/34 +f 233/31 234/32 235/33 236/34 +f 234/31 237/32 238/33 235/34 +f 237/31 239/32 240/33 238/34 +f 239/31 233/32 236/33 240/34 +f 239/31 237/32 234/33 233/34 +f 241/31 242/32 243/33 244/34 +f 242/31 245/32 246/33 243/34 +f 245/31 247/32 248/33 246/34 +f 247/31 241/32 244/33 248/34 +f 247/31 245/32 242/33 241/34 +f 249/31 250/32 251/33 252/34 +f 250/31 253/32 254/33 251/34 +f 253/31 255/32 256/33 254/34 +f 255/31 249/32 252/33 256/34 +f 255/31 253/32 250/33 249/34 +f 257/31 258/32 259/33 260/34 +f 258/31 261/32 262/33 259/34 +f 261/31 263/32 264/33 262/34 +f 263/31 257/32 260/33 264/34 +f 263/31 261/32 258/33 257/34 +f 265/31 266/32 267/33 268/34 +f 266/31 269/32 270/33 267/34 +f 269/31 271/32 272/33 270/34 +f 271/31 265/32 268/33 272/34 +f 271/31 269/32 266/33 265/34 +f 273/31 274/32 275/33 276/34 +f 274/31 277/32 278/33 275/34 +f 277/31 279/32 280/33 278/34 +f 279/31 273/32 276/33 280/34 +f 279/31 277/32 274/33 273/34 +f 281/31 282/32 283/33 284/34 +f 282/31 285/32 286/33 283/34 +f 285/31 287/32 288/33 286/34 +f 287/31 281/32 284/33 288/34 +f 287/31 285/32 282/33 281/34 +f 289/31 290/32 291/33 292/34 +f 290/31 293/32 294/33 291/34 +f 293/31 295/32 296/33 294/34 +f 295/31 289/32 292/33 296/34 +f 295/31 293/32 290/33 289/34 +f 297/31 298/32 299/33 300/34 +f 298/31 301/32 302/33 299/34 +f 301/31 303/32 304/33 302/34 +f 303/31 297/32 300/33 304/34 +f 303/31 301/32 298/33 297/34 +f 305/31 306/32 307/33 308/34 +f 306/31 309/32 310/33 307/34 +f 309/31 311/32 312/33 310/34 +f 311/31 305/32 308/33 312/34 +f 311/31 309/32 306/33 305/34 +f 313/31 314/32 315/33 316/34 +f 314/31 317/32 318/33 315/34 +f 317/31 319/32 320/33 318/34 +f 319/31 313/32 316/33 320/34 +f 319/31 317/32 314/33 313/34 +f 321/31 322/32 323/33 324/34 +f 322/31 325/32 326/33 323/34 +f 325/31 327/32 328/33 326/34 +f 327/31 321/32 324/33 328/34 +f 327/31 325/32 322/33 321/34 +f 329/31 330/32 331/33 332/34 +f 330/31 333/32 334/33 331/34 +f 333/31 335/32 336/33 334/34 +f 335/31 329/32 332/33 336/34 +f 335/31 333/32 330/33 329/34 +f 337/31 338/32 339/33 340/34 +f 338/31 341/32 342/33 339/34 +f 341/31 343/32 344/33 342/34 +f 343/31 337/32 340/33 344/34 +f 343/31 341/32 338/33 337/34 +f 345/31 346/32 347/33 348/34 +f 346/31 349/32 350/33 347/34 +f 349/31 351/32 352/33 350/34 +f 351/31 345/32 348/33 352/34 +f 351/31 349/32 346/33 345/34 +f 353/31 354/32 355/33 356/34 +f 354/31 357/32 358/33 355/34 +f 357/31 359/32 360/33 358/34 +f 359/31 353/32 356/33 360/34 +f 359/31 357/32 354/33 353/34 +f 361/31 362/32 363/33 364/34 +f 362/31 365/32 366/33 363/34 +f 365/31 367/32 368/33 366/34 +f 367/31 361/32 364/33 368/34 +f 367/31 365/32 362/33 361/34 +f 369/31 370/32 371/33 372/34 +f 370/31 373/32 374/33 371/34 +f 373/31 375/32 376/33 374/34 +f 375/31 369/32 372/33 376/34 +f 375/31 373/32 370/33 369/34 +f 377/31 378/32 379/33 380/34 +f 378/31 381/32 382/33 379/34 +f 381/31 383/32 384/33 382/34 +f 383/31 377/32 380/33 384/34 +f 383/31 381/32 378/33 377/34 +f 385/31 386/32 387/33 388/34 +f 386/31 389/32 390/33 387/34 +f 389/31 391/32 392/33 390/34 +f 391/31 385/32 388/33 392/34 +f 391/31 389/32 386/33 385/34 +f 393/31 394/32 395/33 396/34 +f 394/31 397/32 398/33 395/34 +f 397/31 399/32 400/33 398/34 +f 399/31 393/32 396/33 400/34 +f 399/31 397/32 394/33 393/34 +f 401/31 402/32 403/33 404/34 +f 402/31 405/32 406/33 403/34 +f 405/31 407/32 408/33 406/34 +f 407/31 401/32 404/33 408/34 +f 407/31 405/32 402/33 401/34 +f 409/31 410/32 411/33 412/34 +f 410/31 413/32 414/33 411/34 +f 413/31 415/32 416/33 414/34 +f 415/31 409/32 412/33 416/34 +f 415/31 413/32 410/33 409/34 +f 417/31 418/32 419/33 420/34 +f 418/31 421/32 422/33 419/34 +f 421/31 423/32 424/33 422/34 +f 423/31 417/32 420/33 424/34 +f 423/31 421/32 418/33 417/34 +f 425/31 426/32 427/33 428/34 +f 426/31 429/32 430/33 427/34 +f 429/31 431/32 432/33 430/34 +f 431/31 425/32 428/33 432/34 +f 431/31 429/32 426/33 425/34 +f 433/31 434/32 435/33 436/34 +f 434/31 437/32 438/33 435/34 +f 437/31 439/32 440/33 438/34 +f 439/31 433/32 436/33 440/34 +f 439/31 437/32 434/33 433/34 +f 441/31 442/32 443/33 444/34 +f 442/31 445/32 446/33 443/34 +f 445/31 447/32 448/33 446/34 +f 447/31 441/32 444/33 448/34 +f 447/31 445/32 442/33 441/34 +f 449/31 450/32 451/33 452/34 +f 450/31 453/32 454/33 451/34 +f 453/31 455/32 456/33 454/34 +f 455/31 449/32 452/33 456/34 +f 455/31 453/32 450/33 449/34 +f 457/31 458/32 459/33 460/34 +f 458/31 461/32 462/33 459/34 +f 461/31 463/32 464/33 462/34 +f 463/31 457/32 460/33 464/34 +f 463/31 461/32 458/33 457/34 +f 465/31 466/32 467/33 468/34 +f 466/31 469/32 470/33 467/34 +f 469/31 471/32 472/33 470/34 +f 471/31 465/32 468/33 472/34 +f 471/31 469/32 466/33 465/34 +f 473/31 474/32 475/33 476/34 +f 474/31 477/32 478/33 475/34 +f 477/31 479/32 480/33 478/34 +f 479/31 473/32 476/33 480/34 +f 479/31 477/32 474/33 473/34 +f 481/31 482/32 483/33 484/34 +f 482/31 485/32 486/33 483/34 +f 485/31 487/32 488/33 486/34 +f 487/31 481/32 484/33 488/34 +f 487/31 485/32 482/33 481/34 +f 489/31 490/32 491/33 492/34 +f 490/31 493/32 494/33 491/34 +f 493/31 495/32 496/33 494/34 +f 495/31 489/32 492/33 496/34 +f 495/31 493/32 490/33 489/34 +f 497/31 498/32 499/33 500/34 +f 498/31 501/32 502/33 499/34 +f 501/31 503/32 504/33 502/34 +f 503/31 497/32 500/33 504/34 +f 503/31 501/32 498/33 497/34 +f 505/31 506/32 507/33 508/34 +f 506/31 509/32 510/33 507/34 +f 509/31 511/32 512/33 510/34 +f 511/31 505/32 508/33 512/34 +f 511/31 509/32 506/33 505/34 +f 513/31 514/32 515/33 516/34 +f 514/31 517/32 518/33 515/34 +f 517/31 519/32 520/33 518/34 +f 519/31 513/32 516/33 520/34 +f 519/31 517/32 514/33 513/34 +f 521/31 522/32 523/33 524/34 +f 522/31 525/32 526/33 523/34 +f 525/31 527/32 528/33 526/34 +f 527/31 521/32 524/33 528/34 +f 527/31 525/32 522/33 521/34 +f 529/31 530/32 531/33 532/34 +f 530/31 533/32 534/33 531/34 +f 533/31 535/32 536/33 534/34 +f 535/31 529/32 532/33 536/34 +f 535/31 533/32 530/33 529/34 +f 537/31 538/32 539/33 540/34 +f 541/31 542/32 543/33 544/34 +f 542/31 545/32 546/33 543/34 +f 547/31 548/32 549/33 550/34 +f 548/31 541/32 538/33 537/34 +f 538/31 541/32 544/33 539/34 +f 545/31 548/32 547/33 546/34 +f 545/31 542/32 541/33 548/34 +f 540/31 547/32 550/33 551/34 +f 548/31 537/32 552/33 549/34 +f 549/31 552/32 551/33 550/34 +f 537/31 540/32 551/33 552/34 +f 553/31 554/32 555/33 556/34 +f 554/31 557/32 558/33 555/34 +f 557/31 559/32 560/33 558/34 +f 559/31 553/32 556/33 560/34 +f 559/31 557/32 554/33 553/34 +f 561/31 562/32 563/33 564/34 +f 562/31 565/32 566/33 563/34 +f 565/31 567/32 568/33 566/34 +f 567/31 561/32 564/33 568/34 +f 567/31 565/32 562/33 561/34 +f 569/31 570/32 571/33 572/34 +f 570/31 573/32 574/33 571/34 +f 573/31 575/32 576/33 574/34 +f 575/31 569/32 572/33 576/34 +f 575/31 573/32 570/33 569/34 +f 577/31 578/32 579/33 580/34 +f 578/31 581/32 582/33 579/34 +f 581/31 583/32 584/33 582/34 +f 583/31 577/32 580/33 584/34 +f 583/31 581/32 578/33 577/34 +f 585/31 586/32 587/33 588/34 +f 586/31 589/32 590/33 587/34 +f 589/31 591/32 592/33 590/34 +f 591/31 585/32 588/33 592/34 +f 591/31 589/32 586/33 585/34 +f 593/31 594/32 595/33 596/34 +f 594/31 597/32 598/33 595/34 +f 597/31 599/32 600/33 598/34 +f 599/31 593/32 596/33 600/34 +f 599/31 597/32 594/33 593/34 +f 601/31 602/32 603/33 604/34 +f 602/31 605/32 606/33 603/34 +f 605/31 607/32 608/33 606/34 +f 607/31 601/32 604/33 608/34 +f 607/31 605/32 602/33 601/34 +f 609/31 610/32 611/33 612/34 +f 610/31 613/32 614/33 611/34 +f 613/31 615/32 616/33 614/34 +f 615/31 609/32 612/33 616/34 +f 615/31 613/32 610/33 609/34 +f 617/31 618/32 619/33 620/34 +f 618/31 621/32 622/33 619/34 +f 621/31 623/32 624/33 622/34 +f 623/31 617/32 620/33 624/34 +f 623/31 621/32 618/33 617/34 +f 625/31 626/32 627/33 628/34 +f 626/31 629/32 630/33 627/34 +f 629/31 631/32 632/33 630/34 +f 631/31 625/32 628/33 632/34 +f 631/31 629/32 626/33 625/34 +f 633/31 634/32 635/33 636/34 +f 634/31 637/32 638/33 635/34 +f 637/31 639/32 640/33 638/34 +f 639/31 633/32 636/33 640/34 +f 639/31 637/32 634/33 633/34 +f 641/31 642/32 643/33 644/34 +f 642/31 645/32 646/33 643/34 +f 645/31 647/32 648/33 646/34 +f 647/31 641/32 644/33 648/34 +f 647/31 645/32 642/33 641/34 +f 649/31 650/32 651/33 652/34 +f 650/31 653/32 654/33 651/34 +f 653/31 655/32 656/33 654/34 +f 655/31 649/32 652/33 656/34 +f 655/31 653/32 650/33 649/34 +f 657/31 658/32 659/33 660/34 +f 658/31 661/32 662/33 659/34 +f 661/31 663/32 664/33 662/34 +f 663/31 657/32 660/33 664/34 +f 663/31 661/32 658/33 657/34 +f 665/31 666/32 667/33 668/34 +f 666/31 669/32 670/33 667/34 +f 669/31 671/32 672/33 670/34 +f 671/31 665/32 668/33 672/34 +f 671/31 669/32 666/33 665/34 +f 673/31 674/32 675/33 676/34 +f 674/31 677/32 678/33 675/34 +f 677/31 679/32 680/33 678/34 +f 679/31 673/32 676/33 680/34 +f 679/31 677/32 674/33 673/34 +f 681/31 682/32 683/33 684/34 +f 682/31 685/32 686/33 683/34 +f 685/31 687/32 688/33 686/34 +f 687/31 681/32 684/33 688/34 +f 687/31 685/32 682/33 681/34 +f 689/31 690/32 691/33 692/34 +f 690/31 693/32 694/33 691/34 +f 693/31 695/32 696/33 694/34 +f 695/31 689/32 692/33 696/34 +f 695/31 693/32 690/33 689/34 +f 697/31 698/32 699/33 700/34 +f 698/31 701/32 702/33 699/34 +f 701/31 703/32 704/33 702/34 +f 703/31 697/32 700/33 704/34 +f 703/31 701/32 698/33 697/34 +f 705/31 706/32 707/33 708/34 +f 706/31 709/32 710/33 707/34 +f 709/31 711/32 712/33 710/34 +f 711/31 705/32 708/33 712/34 +f 711/31 709/32 706/33 705/34 +f 713/31 714/32 715/33 716/34 +f 714/31 717/32 718/33 715/34 +f 717/31 719/32 720/33 718/34 +f 719/31 713/32 716/33 720/34 +f 719/31 717/32 714/33 713/34 +f 721/31 722/32 723/33 724/34 +f 722/31 725/32 726/33 723/34 +f 725/31 727/32 728/33 726/34 +f 727/31 721/32 724/33 728/34 +f 727/31 725/32 722/33 721/34 +f 729/31 730/32 731/33 732/34 +f 730/31 733/32 734/33 731/34 +f 733/31 735/32 736/33 734/34 +f 735/31 729/32 732/33 736/34 +f 735/31 733/32 730/33 729/34 +f 737/31 738/32 739/33 740/34 +f 738/31 741/32 742/33 739/34 +f 741/31 743/32 744/33 742/34 +f 743/31 737/32 740/33 744/34 +f 743/31 741/32 738/33 737/34 +f 745/31 746/32 747/33 748/34 +f 746/31 749/32 750/33 747/34 +f 749/31 751/32 752/33 750/34 +f 751/31 745/32 748/33 752/34 +f 751/31 749/32 746/33 745/34 +f 753/31 754/32 755/33 756/34 +f 754/31 757/32 758/33 755/34 +f 757/31 759/32 760/33 758/34 +f 759/31 753/32 756/33 760/34 +f 759/31 757/32 754/33 753/34 +f 761/31 762/32 763/33 764/34 +f 762/31 765/32 766/33 763/34 +f 765/31 767/32 768/33 766/34 +f 767/31 761/32 764/33 768/34 +f 767/31 765/32 762/33 761/34 +f 769/31 770/32 771/33 772/34 +f 770/31 773/32 774/33 771/34 +f 773/31 775/32 776/33 774/34 +f 775/31 769/32 772/33 776/34 +f 775/31 773/32 770/33 769/34 +f 777/31 778/32 779/33 780/34 +f 778/31 781/32 782/33 779/34 +f 781/31 783/32 784/33 782/34 +f 783/31 777/32 780/33 784/34 +f 783/31 781/32 778/33 777/34 +f 785/31 786/32 787/33 788/34 +f 786/31 789/32 790/33 787/34 +f 789/31 791/32 792/33 790/34 +f 791/31 785/32 788/33 792/34 +f 791/31 789/32 786/33 785/34 +f 793/31 794/32 795/33 796/34 +f 794/31 797/32 798/33 795/34 +f 797/31 799/32 800/33 798/34 +f 799/31 793/32 796/33 800/34 +f 799/31 797/32 794/33 793/34 +f 801/31 802/32 803/33 804/34 +f 802/31 805/32 806/33 803/34 +f 805/31 807/32 808/33 806/34 +f 807/31 801/32 804/33 808/34 +f 807/31 805/32 802/33 801/34 +f 809/31 810/32 811/33 812/34 +f 810/31 813/32 814/33 811/34 +f 813/31 815/32 816/33 814/34 +f 815/31 809/32 812/33 816/34 +f 815/31 813/32 810/33 809/34 +f 817/31 818/32 819/33 820/34 +f 818/31 821/32 822/33 819/34 +f 821/31 823/32 824/33 822/34 +f 823/31 817/32 820/33 824/34 +f 823/31 821/32 818/33 817/34 +f 825/31 826/32 827/33 828/34 +f 826/31 829/32 830/33 827/34 +f 829/31 831/32 832/33 830/34 +f 831/31 825/32 828/33 832/34 +f 831/31 829/32 826/33 825/34 +f 833/31 834/32 835/33 836/34 +f 834/31 837/32 838/33 835/34 +f 837/31 839/32 840/33 838/34 +f 839/31 833/32 836/33 840/34 +f 839/31 837/32 834/33 833/34 +f 841/31 842/32 843/33 844/34 +f 842/31 845/32 846/33 843/34 +f 845/31 847/32 848/33 846/34 +f 847/31 841/32 844/33 848/34 +f 847/31 845/32 842/33 841/34 +f 849/31 850/32 851/33 852/34 +f 850/31 853/32 854/33 851/34 +f 853/31 855/32 856/33 854/34 +f 855/31 849/32 852/33 856/34 +f 855/31 853/32 850/33 849/34 +f 857/31 858/32 859/33 860/34 +f 858/31 861/32 862/33 859/34 +f 861/31 863/32 864/33 862/34 +f 863/31 857/32 860/33 864/34 +f 863/31 861/32 858/33 857/34 +f 865/31 866/32 867/33 868/34 +f 866/31 869/32 870/33 867/34 +f 869/31 871/32 872/33 870/34 +f 871/31 865/32 868/33 872/34 +f 871/31 869/32 866/33 865/34 +f 873/31 874/32 875/33 876/34 +f 874/31 877/32 878/33 875/34 +f 877/31 879/32 880/33 878/34 +f 879/31 873/32 876/33 880/34 +f 879/31 877/32 874/33 873/34 +f 881/31 882/32 883/33 884/34 +f 882/31 885/32 886/33 883/34 +f 885/31 887/32 888/33 886/34 +f 887/31 881/32 884/33 888/34 +f 887/31 885/32 882/33 881/34 +f 889/31 890/32 891/33 892/34 +f 890/31 893/32 894/33 891/34 +f 893/31 895/32 896/33 894/34 +f 895/31 889/32 892/33 896/34 +f 895/31 893/32 890/33 889/34 +f 897/31 898/32 899/33 900/34 +f 898/31 901/32 902/33 899/34 +f 901/31 903/32 904/33 902/34 +f 903/31 897/32 900/33 904/34 +f 903/31 901/32 898/33 897/34 +f 905/31 906/32 907/33 908/34 +f 906/31 909/32 910/33 907/34 +f 909/31 911/32 912/33 910/34 +f 911/31 905/32 908/33 912/34 +f 911/31 909/32 906/33 905/34 +f 913/31 914/32 915/33 916/34 +f 914/31 917/32 918/33 915/34 +f 917/31 919/32 920/33 918/34 +f 919/31 913/32 916/33 920/34 +f 919/31 917/32 914/33 913/34 +f 921/31 922/32 923/33 924/34 +f 922/31 925/32 926/33 923/34 +f 925/31 927/32 928/33 926/34 +f 927/31 921/32 924/33 928/34 +f 927/31 925/32 922/33 921/34 +l 544 547 +o keyboard +v -0.411510 -0.499998 -0.385414 +v -0.347259 -0.499998 -0.379792 +v -0.360885 -0.499998 -0.260399 +v -0.418823 -0.499998 -0.265468 +v -0.411638 -0.479821 -0.383948 +v -0.418823 -0.481779 -0.265468 +v -0.360885 -0.481779 -0.260399 +v -0.347387 -0.479821 -0.378327 +v -0.413073 -0.485086 -0.387747 +v -0.345315 -0.485086 -0.381819 +v -0.359464 -0.485086 -0.258429 +v -0.420565 -0.485086 -0.263775 +v -0.412532 -0.492542 -0.386975 +v -0.419957 -0.492542 -0.264466 +v -0.345980 -0.492542 -0.381152 +v -0.359943 -0.492542 -0.259215 +v -0.307392 -0.474888 -0.210007 +v -0.307392 -0.478903 -0.416481 +v -0.307392 -0.499996 -0.416481 +v -0.307392 -0.499996 -0.210007 +v 0.419545 -0.499996 -0.210007 +v 0.419545 -0.499996 -0.416481 +v 0.419545 -0.478903 -0.416481 +v 0.419545 -0.474888 -0.210007 +vt 0.000000 0.000000 +vt 1.000000 0.000000 +vt 1.000000 1.000000 +vt 0.000000 1.000000 +g keyboard_keyboard_None +usemtl None +s off +f 929/35 930/36 931/37 932/38 +f 933/35 934/36 935/37 936/38 +f 937/35 933/36 936/37 938/38 +f 938/35 936/36 935/37 939/38 +f 939/35 935/36 934/37 940/38 +f 941/35 929/36 932/37 942/38 +f 929/35 941/36 943/37 930/38 +f 941/35 937/36 938/37 943/38 +f 930/35 943/36 944/37 931/38 +f 943/35 938/36 939/37 944/38 +f 931/35 944/36 942/37 932/38 +f 944/35 939/36 940/37 942/38 +f 933/35 937/36 940/37 934/38 +f 937/35 941/36 942/37 940/38 +f 945/35 946/36 947/37 948/38 +f 949/35 948/36 947/37 950/38 +f 951/35 946/36 945/37 952/38 +f 946/35 951/36 950/37 947/38 +f 952/35 945/36 948/37 949/38 +f 951/35 952/36 949/37 950/38 diff --git a/games/default/files/Decorations/hdb/textures/overlay.png b/games/default/files/Decorations/hdb/textures/overlay.png new file mode 100644 index 000000000..fa399d566 Binary files /dev/null and b/games/default/files/Decorations/hdb/textures/overlay.png differ diff --git a/games/default/files/Decorations/ma_pops_furniture/depends.txt b/games/default/files/Decorations/ma_pops_furniture/depends.txt new file mode 100644 index 000000000..9bc856fd9 --- /dev/null +++ b/games/default/files/Decorations/ma_pops_furniture/depends.txt @@ -0,0 +1,2 @@ +default +color diff --git a/games/default/files/Decorations/ma_pops_furniture/init.lua b/games/default/files/Decorations/ma_pops_furniture/init.lua new file mode 100644 index 000000000..5a73f6019 --- /dev/null +++ b/games/default/files/Decorations/ma_pops_furniture/init.lua @@ -0,0 +1,5 @@ +ma_pops_furniture = {} + +dofile(minetest.get_modpath('ma_pops_furniture')..'/nodes.lua') + +local MP = minetest.get_modpath(minetest.get_current_modname()) diff --git a/games/default/files/Decorations/ma_pops_furniture/models/FM_birdbath.obj b/games/default/files/Decorations/ma_pops_furniture/models/FM_birdbath.obj new file mode 100644 index 000000000..1283a2274 --- /dev/null +++ b/games/default/files/Decorations/ma_pops_furniture/models/FM_birdbath.obj @@ -0,0 +1,96 @@ +# Blender v2.75 (sub 4) OBJ File: 'birdbath.blend' +# www.blender.org +o Cube.001 +v -0.400000 -0.500000 0.400000 +v -0.400000 -0.400000 0.400000 +v -0.400000 -0.500000 -0.400000 +v -0.400000 -0.400000 -0.400000 +v 0.400000 -0.500000 0.400000 +v 0.400000 -0.400000 0.400000 +v 0.400000 -0.500000 -0.400000 +v 0.400000 -0.400000 -0.400000 +v -0.100000 -0.400000 0.100000 +v -0.100000 -0.400000 -0.100000 +v 0.100000 -0.400000 -0.100000 +v 0.100000 -0.400000 0.100000 +v -0.100000 0.200000 0.100000 +v -0.100000 0.200000 -0.100000 +v 0.100000 0.200000 -0.100000 +v 0.100000 0.200000 0.100000 +v -0.500000 0.200000 0.500000 +v -0.500000 0.200000 -0.500000 +v 0.500000 0.200000 -0.500000 +v 0.500000 0.200000 0.500000 +v -0.500000 0.450000 0.500000 +v -0.500000 0.450000 -0.500000 +v 0.500000 0.450000 -0.500000 +v 0.500000 0.450000 0.500000 +v -0.404231 0.376539 0.404231 +v -0.404231 0.376539 -0.404231 +v 0.404231 0.376539 -0.404231 +v 0.404231 0.376539 0.404231 +vt 0.100000 0.100000 +vt 0.900000 0.100000 +vt 0.900000 0.000000 +vt 0.100000 0.000000 +vt 0.100000 0.900000 +vt 0.900000 0.900000 +vt 0.400000 0.400000 +vt 0.400000 0.600000 +vt 0.400000 0.100000 +vt 0.600000 0.100000 +vt 0.600000 0.700000 +vt 0.400000 0.700000 +vt 0.600000 0.400000 +vt 0.600000 0.600000 +vt 1.000000 0.000000 +vt 0.000000 0.000000 +vt 0.000000 0.700000 +vt 1.000000 0.700000 +vt 1.000000 0.950000 +vt 0.000000 0.950000 +vt 0.000000 1.000000 +vt 1.000000 1.000000 +vt 0.095769 0.095769 +vt 0.095769 0.904231 +vt 0.904231 0.095769 +vt 0.904231 0.904231 +vn -1.000000 0.000000 0.000000 +vn 0.000000 0.000000 -1.000000 +vn 1.000000 0.000000 0.000000 +vn 0.000000 0.000000 1.000000 +vn 0.000000 -1.000000 0.000000 +vn 0.000000 1.000000 0.000000 +vn 0.608600 0.793500 0.000000 +vn 0.000000 0.793500 -0.608600 +vn 0.000000 0.793500 0.608600 +vn -0.608600 0.793500 0.000000 +g Cube.001_Cube.001_Material +s off +f 2/1/1 4/2/1 3/3/1 1/4/1 +f 4/1/2 8/2/2 7/3/2 3/4/2 +f 8/2/3 6/1/3 5/4/3 7/3/3 +f 6/2/4 2/1/4 1/4/4 5/3/4 +f 1/1/5 3/5/5 7/6/5 5/2/5 +f 4/5/6 2/1/6 9/7/6 10/8/6 +f 12/9/3 11/10/3 15/11/3 16/12/3 +f 2/1/6 6/2/6 12/13/6 9/7/6 +f 8/6/6 4/5/6 10/8/6 11/14/6 +f 6/2/6 8/6/6 11/14/6 12/13/6 +f 13/7/5 16/13/5 20/15/5 17/16/5 +f 10/10/1 9/9/1 13/12/1 14/11/1 +f 9/9/4 12/10/4 16/11/4 13/12/4 +f 11/10/2 10/9/2 14/12/2 15/11/2 +f 20/17/3 19/18/3 23/19/3 24/20/3 +f 15/14/5 14/8/5 18/21/5 19/22/5 +f 16/13/5 15/14/5 19/22/5 20/15/5 +f 14/8/5 13/7/5 17/16/5 18/21/5 +f 22/21/7 21/16/7 25/23/7 26/24/7 +f 18/18/1 17/17/1 21/20/1 22/19/1 +f 17/17/4 20/18/4 24/19/4 21/20/4 +f 19/18/2 18/17/2 22/20/2 23/19/2 +f 21/16/8 24/15/8 28/25/8 25/23/8 +f 23/22/9 22/21/9 26/24/9 27/26/9 +f 24/15/10 23/22/10 27/26/10 28/25/10 +g Cube.001_Cube.001_Water.001 +f 28/15/6 27/22/6 26/21/6 25/16/6 diff --git a/games/default/files/Decorations/ma_pops_furniture/models/FM_fireplace_empty.obj b/games/default/files/Decorations/ma_pops_furniture/models/FM_fireplace_empty.obj new file mode 100644 index 000000000..e3251fefc --- /dev/null +++ b/games/default/files/Decorations/ma_pops_furniture/models/FM_fireplace_empty.obj @@ -0,0 +1,233 @@ +# Blender v2.75 (sub 0) OBJ File: '' +# www.blender.org +mtllib fireplace_empty.mtl +o Cube.009_Cube.010 +v -1.875625 -0.331071 -0.956249 +v -1.882333 -0.303344 0.871280 +v -1.871355 -0.873750 -0.947999 +v -1.878062 -0.846023 0.879529 +v -1.970013 -0.331819 -0.956584 +v -1.976720 -0.304092 0.870945 +v -1.965742 -0.874498 -0.948335 +v -1.972450 -0.846771 0.879194 +vn 1.000000 0.007900 0.003500 +vn 0.007900 -0.999900 0.015200 +vn -1.000000 -0.007900 -0.003500 +vn -0.007900 0.999900 -0.015200 +vn 0.003700 -0.015200 -0.999900 +vn -0.003700 0.015200 0.999900 +usemtl None +s off +f 2//1 4//1 3//1 1//1 +f 4//2 8//2 7//2 3//2 +f 8//3 6//3 5//3 7//3 +f 6//4 2//4 1//4 5//4 +f 1//5 3//5 7//5 5//5 +f 6//6 8//6 4//6 2//6 +o Cube.008_Cube.009 +v -1.914666 1.976250 0.049641 +v -1.914666 2.249527 0.049641 +v -1.914666 1.976250 -0.283576 +v -1.914666 2.249527 -0.283576 +v -0.054283 1.976250 0.049641 +v -0.054283 2.249527 0.049641 +v -0.054283 1.976250 -0.283576 +v -0.054283 2.249527 -0.283576 +vn -1.000000 0.000000 0.000000 +vn 0.000000 0.000000 -1.000000 +vn 1.000000 0.000000 0.000000 +vn 0.000000 0.000000 1.000000 +vn 0.000000 -1.000000 0.000000 +vn 0.000000 1.000000 0.000000 +usemtl None +s off +f 10//7 12//7 11//7 9//7 +f 12//8 16//8 15//8 11//8 +f 16//9 14//9 13//9 15//9 +f 14//10 10//10 9//10 13//10 +f 9//11 11//11 15//11 13//11 +f 14//12 16//12 12//12 10//12 +o Cube.007_Cube.008 +v -1.911818 1.599512 0.223404 +v -1.911818 1.990067 0.223404 +v -1.911818 1.599512 -0.401498 +v -1.911818 1.990067 -0.401498 +v -0.072114 1.599512 0.223404 +v -0.072114 1.990067 0.223404 +v -0.072114 1.599512 -0.401498 +v -0.072114 1.990067 -0.401498 +vn -1.000000 0.000000 0.000000 +vn 0.000000 0.000000 -1.000000 +vn 1.000000 0.000000 0.000000 +vn 0.000000 0.000000 1.000000 +vn 0.000000 -1.000000 0.000000 +vn 0.000000 1.000000 0.000000 +usemtl None +s off +f 18//13 20//13 19//13 17//13 +f 20//14 24//14 23//14 19//14 +f 24//15 22//15 21//15 23//15 +f 22//16 18//16 17//16 21//16 +f 17//17 19//17 23//17 21//17 +f 22//18 24//18 20//18 18//18 +o Cube.006_Cube.007 +v -1.919788 1.283157 0.334455 +v -1.919788 1.673711 0.334455 +v -1.919788 1.283157 -0.532109 +v -1.919788 1.673711 -0.532109 +v -0.007317 1.283157 0.334455 +v -0.007317 1.673711 0.334455 +v -0.007317 1.283157 -0.532109 +v -0.007317 1.673711 -0.532109 +vn -1.000000 0.000000 0.000000 +vn 0.000000 0.000000 -1.000000 +vn 1.000000 0.000000 0.000000 +vn 0.000000 0.000000 1.000000 +vn 0.000000 -1.000000 0.000000 +vn 0.000000 1.000000 0.000000 +usemtl None +s off +f 26//19 28//19 27//19 25//19 +f 28//20 32//20 31//20 27//20 +f 32//21 30//21 29//21 31//21 +f 30//22 26//22 25//22 29//22 +f 25//23 27//23 31//23 29//23 +f 30//24 32//24 28//24 26//24 +o Cube.005_Cube.006 +v -1.931623 1.001512 0.792719 +v -1.931623 1.392066 0.792719 +v -1.931623 1.001512 -0.918889 +v -1.931623 1.392066 -0.918889 +v 0.044714 1.001512 0.792719 +v 0.044714 1.392066 0.792719 +v 0.044714 1.001512 -0.918889 +v 0.044714 1.392066 -0.918889 +vn -1.000000 0.000000 0.000000 +vn 0.000000 0.000000 -1.000000 +vn 1.000000 0.000000 0.000000 +vn 0.000000 0.000000 1.000000 +vn 0.000000 -1.000000 0.000000 +vn 0.000000 1.000000 0.000000 +usemtl None +s off +f 34//25 36//25 35//25 33//25 +f 36//26 40//26 39//26 35//26 +f 40//27 38//27 37//27 39//27 +f 38//28 34//28 33//28 37//28 +f 33//29 35//29 39//29 37//29 +f 38//30 40//30 36//30 34//30 +o Cube.004_Cube.005 +v 0.056191 0.896049 -1.031979 +v 0.056191 0.899351 0.941779 +v -1.943517 0.930250 -1.032036 +v -1.943517 0.933552 0.941721 +v 0.057803 0.990334 -1.032137 +v 0.057804 0.993636 0.941621 +v -1.941904 1.024536 -1.032194 +v -1.941904 1.027838 0.941564 +vn -0.017100 -0.999900 0.001700 +vn -0.999900 0.017100 -0.000000 +vn 0.017100 0.999900 -0.001700 +vn 0.999900 -0.017100 0.000000 +vn -0.000000 -0.001700 -1.000000 +vn 0.000000 0.001700 1.000000 +usemtl None +s off +f 42//31 44//31 43//31 41//31 +f 44//32 48//32 47//32 43//32 +f 48//33 46//33 45//33 47//33 +f 46//34 42//34 41//34 45//34 +f 41//35 43//35 47//35 45//35 +f 46//36 48//36 44//36 42//36 +o Cube.003_Cube.004 +v 0.016186 -0.966420 -0.971699 +v 0.016186 -0.915652 0.951856 +v -1.983521 -0.932231 -0.972601 +v -1.983521 -0.881463 0.950953 +v 0.017799 -0.872167 -0.974186 +v 0.017799 -0.821400 0.949368 +v -1.981909 -0.837978 -0.975089 +v -1.981909 -0.787210 0.948466 +vn -0.017100 -0.999500 0.026400 +vn -0.999900 0.017100 -0.000500 +vn 0.017100 0.999500 -0.026400 +vn 0.999900 -0.017100 0.000500 +vn 0.000000 -0.026400 -0.999700 +vn -0.000000 0.026400 0.999700 +usemtl None +s off +f 50//37 52//37 51//37 49//37 +f 52//38 56//38 55//38 51//38 +f 56//39 54//39 53//39 55//39 +f 54//40 50//40 49//40 53//40 +f 49//41 51//41 55//41 53//41 +f 54//42 56//42 52//42 50//42 +o Cube.002_Cube.003 +v 0.016186 -0.997135 -0.902221 +v 0.016186 1.002865 -0.902221 +v -1.983521 -0.997135 -0.936423 +v -1.983521 1.002865 -0.936423 +v 0.017799 -0.997135 -0.996509 +v 0.017799 1.002865 -0.996509 +v -1.981909 -0.997135 -1.030711 +v -1.981909 1.002865 -1.030711 +vn -0.017100 0.000000 0.999900 +vn -0.999900 0.000000 -0.017100 +vn 0.017100 0.000000 -0.999900 +vn 0.999900 0.000000 0.017100 +vn 0.000000 -1.000000 0.000000 +vn 0.000000 1.000000 0.000000 +usemtl None +s off +f 58//43 60//43 59//43 57//43 +f 60//44 64//44 63//44 59//44 +f 64//45 62//45 61//45 63//45 +f 62//46 58//46 57//46 61//46 +f 57//47 59//47 63//47 61//47 +f 62//48 64//48 60//48 58//48 +o Cube.001_Cube.002 +v 0.048057 -1.004804 0.990161 +v 0.048057 0.995196 0.990161 +v -1.951651 -1.004804 0.955960 +v -1.951651 0.995196 0.955960 +v 0.049669 -1.004804 0.895873 +v 0.049669 0.995196 0.895873 +v -1.950038 -1.004804 0.861672 +v -1.950038 0.995196 0.861672 +vn -0.017100 0.000000 0.999900 +vn -0.999900 0.000000 -0.017100 +vn 0.017100 0.000000 -0.999900 +vn 0.999900 0.000000 0.017100 +vn 0.000000 -1.000000 0.000000 +vn 0.000000 1.000000 -0.000000 +usemtl None +s off +f 66//49 68//49 67//49 65//49 +f 68//50 72//50 71//50 67//50 +f 72//51 70//51 69//51 71//51 +f 70//52 66//52 65//52 69//52 +f 65//53 67//53 71//53 69//53 +f 70//54 72//54 68//54 66//54 +o Cube_Cube.001 +v -0.047151 -1.000000 1.000000 +v -0.047151 1.000000 1.000000 +v -0.047151 -1.000000 -1.000000 +v -0.047151 1.000000 -1.000000 +v 0.047151 -1.000000 1.000000 +v 0.047151 1.000000 1.000000 +v 0.047151 -1.000000 -1.000000 +v 0.047151 1.000000 -1.000000 +vn -1.000000 0.000000 0.000000 +vn 0.000000 0.000000 -1.000000 +vn 1.000000 0.000000 0.000000 +vn 0.000000 0.000000 1.000000 +vn 0.000000 -1.000000 0.000000 +vn 0.000000 1.000000 0.000000 +usemtl None +s off +f 74//55 76//55 75//55 73//55 +f 76//56 80//56 79//56 75//56 +f 80//57 78//57 77//57 79//57 +f 78//58 74//58 73//58 77//58 +f 73//59 75//59 79//59 77//59 +f 78//60 80//60 76//60 74//60 diff --git a/games/default/files/Decorations/ma_pops_furniture/models/FM_fireplace_off.obj b/games/default/files/Decorations/ma_pops_furniture/models/FM_fireplace_off.obj new file mode 100644 index 000000000..68dc5c5b4 --- /dev/null +++ b/games/default/files/Decorations/ma_pops_furniture/models/FM_fireplace_off.obj @@ -0,0 +1,201 @@ +# Blender v2.75 (sub 4) OBJ File: 'fireplace_empty.blend' +# www.blender.org +o Fireplace_off_Plane +v 0.447003 -0.064595 -0.457685 +v 0.447003 -0.364595 -0.457685 +v -0.447003 -0.064595 -0.457685 +v -0.447003 -0.364595 -0.457685 +v -0.500000 -0.400000 -0.500000 +v -0.500000 0.500000 -0.500000 +v 0.500000 -0.400000 -0.500000 +v 0.500000 0.500000 -0.500000 +v -0.500000 -0.400000 0.500000 +v -0.500000 0.500000 0.500000 +v 0.500000 -0.400000 0.500000 +v 0.500000 0.500000 0.500000 +v -0.400000 0.500000 -0.500000 +v 0.400000 0.500000 -0.500000 +v 0.400000 -0.400000 -0.500000 +v -0.400000 -0.400000 -0.500000 +v 0.400000 0.500000 0.500000 +v -0.400000 0.500000 0.500000 +v -0.400000 -0.400000 0.500000 +v 0.400000 -0.400000 0.500000 +v -0.500000 -0.300000 -0.500000 +v -0.500000 0.400000 -0.500000 +v 0.500000 0.400000 -0.500000 +v 0.500000 -0.300000 -0.500000 +v 0.500000 0.400000 0.500000 +v 0.500000 -0.300000 0.500000 +v -0.500000 0.400000 0.500000 +v -0.500000 -0.300000 0.500000 +v 0.400000 0.400000 0.500000 +v 0.400000 -0.300000 0.500000 +v -0.400000 0.400000 0.500000 +v -0.400000 -0.300000 0.500000 +v -0.400000 0.400000 -0.500000 +v -0.400000 -0.300000 -0.500000 +v 0.400000 0.400000 -0.500000 +v 0.400000 -0.300000 -0.500000 +v -0.400000 0.400000 0.400000 +v -0.400000 -0.300000 0.400000 +v 0.400000 0.400000 0.400000 +v 0.400000 -0.300000 0.400000 +v -0.400000 -0.500000 -0.500000 +v -0.500000 -0.500000 -0.500000 +v 0.500000 -0.500000 0.500000 +v 0.500000 -0.500000 -0.500000 +v 0.400000 -0.500000 0.500000 +v -0.500000 -0.500000 0.500000 +v 0.400000 -0.500000 -0.500000 +v -0.400000 -0.500000 0.500000 +v -0.400000 0.675000 -0.500000 +v 0.400000 0.675000 -0.500000 +v -0.400000 0.675000 0.500000 +v 0.400000 0.675000 0.500000 +v 0.400000 0.675000 0.500000 +v -0.400000 0.675000 0.500000 +v 0.400000 0.675000 -0.500000 +v -0.400000 0.675000 -0.500000 +v 0.240000 0.675000 0.500000 +v -0.240000 0.675000 0.500000 +v 0.240000 0.675000 -0.500000 +v -0.240000 0.675000 -0.500000 +v 0.240000 0.875000 0.500000 +v -0.240000 0.875000 0.500000 +v 0.240000 0.875000 -0.500000 +v -0.240000 0.875000 -0.500000 +v 0.120000 0.875000 0.500000 +v -0.120000 0.875000 0.500000 +v 0.120000 0.875000 -0.500000 +v -0.120000 0.875000 -0.500000 +v 0.120000 1.075000 0.500000 +v -0.120000 1.075000 0.500000 +v 0.120000 1.075000 -0.500000 +v -0.120000 1.075000 -0.500000 +vt 0.980066 -0.232831 +vt 1.103207 -0.232831 +vt 1.103207 -0.355973 +vt 0.980066 -0.355973 +vt -0.128207 -0.232831 +vt -0.128207 -0.355973 +vt -0.005066 -0.232831 +vt -0.005066 -0.355973 +vt -0.005066 -0.479114 +vt -0.128207 -0.479114 +vt 1.103207 0.629159 +vt 1.103207 0.752301 +vt -0.128207 0.752301 +vt -0.128207 0.629159 +vt 1.103207 -0.479114 +vt 0.980066 -0.479114 +vt -0.005066 0.752301 +vt 0.980066 0.752301 +vt 0.980066 0.629159 +vt -0.005066 0.629159 +vt -0.128207 0.967798 +vt 1.103207 0.967798 +vt 1.103207 1.214081 +vt -0.128207 1.214081 +vt 0.121793 -0.355973 +vt 1.353207 -0.355973 +vt 1.353207 -0.158946 +vt 0.121793 -0.158946 +vt 1.353207 -0.011176 +vt 0.121793 -0.011176 +vt 1.353207 0.629159 +vt 0.121793 0.629159 +vt 0.121793 0.432133 +vt 1.353207 0.432133 +vt 0.121793 0.284363 +vt 1.353207 0.284363 +vt 1.103207 1.460364 +vt -0.128207 1.460364 +vt 0.341929 1.457455 +vt 0.633902 1.457455 +vt 0.633902 1.214144 +vt 0.341929 1.214144 +vt 0.339730 1.214081 +vt 0.635270 1.214081 +vt 0.635270 1.460364 +vt 0.339730 1.460364 +vt 0.191961 1.214081 +vt 0.783040 1.214081 +vt 0.783040 0.967798 +vt 0.191961 0.967798 +vt 0.980066 0.967798 +vt -0.005066 0.967798 +vt -0.043259 1.000983 +vt -0.043259 0.631558 +vt 1.057632 0.631558 +vt 1.057632 1.000983 +vn 0.000000 0.000000 -1.000000 +vn 1.000000 0.000000 0.000000 +vn 0.000000 0.000000 1.000000 +vn -1.000000 0.000000 -0.000000 +vn 0.000000 1.000000 0.000000 +vn 0.000000 -1.000000 0.000000 +g Fireplace_off_Plane_FirePlace +s off +f 36/1/1 24/2/1 7/3/1 15/4/1 +f 24/5/2 26/2/2 11/3/2 7/6/2 +f 32/7/3 28/5/3 9/6/3 19/8/3 +f 28/2/4 21/5/4 5/6/4 9/3/4 +f 5/6/1 16/8/1 41/9/1 42/10/1 +f 17/11/5 12/12/5 8/13/5 14/14/5 +f 10/15/5 18/3/5 13/6/5 6/10/5 +f 15/4/1 7/3/1 44/15/1 47/16/1 +f 16/6/6 15/14/6 20/11/6 19/3/6 +f 26/2/3 30/1/3 20/4/3 11/3/3 +f 30/1/3 32/7/3 19/8/3 20/4/3 +f 21/5/1 34/7/1 16/8/1 5/6/1 +f 34/7/1 36/1/1 15/4/1 16/8/1 +f 13/17/1 14/18/1 35/19/1 33/20/1 +f 36/14/5 34/6/5 38/4/5 40/19/5 +f 6/13/1 13/17/1 33/20/1 22/14/1 +f 22/14/1 33/20/1 34/7/1 21/5/1 +f 17/18/3 18/17/3 31/20/3 29/19/3 +f 29/19/3 31/20/3 32/7/3 30/1/3 +f 12/12/3 17/18/3 29/19/3 25/11/3 +f 25/11/3 29/19/3 30/1/3 26/2/3 +f 10/12/4 6/13/4 22/14/4 27/11/4 +f 27/11/4 22/14/4 21/5/4 28/2/4 +f 18/17/3 10/13/3 27/14/3 31/20/3 +f 31/20/3 27/14/3 28/5/3 32/7/3 +f 8/13/2 12/12/2 25/11/2 23/14/2 +f 23/14/2 25/11/2 26/2/2 24/5/2 +f 14/18/1 8/12/1 23/11/1 35/19/1 +f 35/19/1 23/11/1 24/2/1 36/1/1 +f 37/20/1 39/19/1 40/1/1 38/7/1 +f 35/14/4 36/5/4 40/1/4 39/19/4 +f 34/5/2 33/14/2 37/19/2 38/1/2 +f 33/6/6 35/14/6 39/19/6 37/4/6 +f 47/14/6 44/13/6 43/12/6 45/11/6 +f 42/10/6 41/6/6 48/3/6 46/15/6 +f 20/3/4 15/6/4 47/10/4 45/15/4 +f 7/6/2 11/3/2 43/15/2 44/10/2 +f 16/6/2 19/3/2 48/15/2 41/10/2 +f 9/3/4 5/6/4 42/10/4 46/15/4 +f 11/3/3 20/4/3 45/16/3 43/15/3 +f 19/8/3 9/6/3 46/10/3 48/9/3 +f 60/21/4 58/22/4 62/23/4 64/24/4 +f 17/12/2 14/13/2 50/21/2 52/22/2 +f 13/13/4 18/12/4 51/22/4 49/21/4 +f 56/25/5 54/26/5 58/27/5 60/28/5 +f 49/6/3 51/3/3 54/3/3 56/6/3 +f 64/28/5 62/27/5 66/29/5 68/30/5 +f 57/22/2 59/21/2 63/24/2 61/23/2 +f 53/31/5 55/32/5 59/33/5 57/34/5 +f 52/11/3 50/14/3 55/14/3 53/11/3 +f 61/34/5 63/33/5 67/35/5 65/36/5 +f 68/24/4 66/23/4 70/37/4 72/38/4 +f 65/23/2 67/24/2 71/38/2 69/37/2 +f 71/35/5 72/30/5 70/29/5 69/36/5 +f 72/39/1 71/40/1 67/41/1 68/42/1 +f 66/43/3 65/44/3 69/45/3 70/46/3 +f 64/47/1 68/43/1 67/44/1 63/48/1 59/49/1 60/50/1 +f 58/50/3 57/49/3 61/48/3 65/44/3 66/43/3 62/47/3 +f 18/17/3 17/18/3 52/51/3 54/52/3 58/50/3 57/49/3 53/51/3 51/52/3 +f 13/17/1 49/52/1 55/51/1 59/49/1 60/50/1 56/52/1 50/51/1 14/18/1 +g Fireplace_off_Plane_Grate +f 1/53/1 2/54/1 4/55/1 3/56/1 diff --git a/games/default/files/Decorations/ma_pops_furniture/models/FM_fireplace_on.obj b/games/default/files/Decorations/ma_pops_furniture/models/FM_fireplace_on.obj new file mode 100644 index 000000000..1b9620ab0 --- /dev/null +++ b/games/default/files/Decorations/ma_pops_furniture/models/FM_fireplace_on.obj @@ -0,0 +1,271 @@ +# Blender v2.75 (sub 4) OBJ File: 'fireplace_empty.blend' +# www.blender.org +o Fireplace_on_Plane.002 +v -0.351930 -0.351930 0.025126 +v -0.351930 0.351930 0.025126 +v 0.351930 -0.351930 0.025126 +v 0.351930 0.351930 0.025126 +v 0.400000 0.041703 0.249151 +v -0.400000 0.041703 0.249151 +v 0.400000 -0.008757 0.370972 +v -0.400000 -0.008757 0.370972 +v 0.400000 -0.302859 0.249151 +v -0.400000 -0.302859 0.249151 +v 0.400000 -0.252399 0.127330 +v -0.400000 -0.252399 0.127330 +v 0.400000 -0.130578 0.076870 +v -0.400000 -0.130578 0.076870 +v 0.400000 -0.008757 0.127330 +v -0.400000 -0.008757 0.127330 +v 0.400000 -0.079822 -0.150849 +v -0.400000 -0.079822 -0.150849 +v 0.400000 -0.112470 -0.072030 +v -0.400000 -0.112470 -0.072030 +v 0.400000 -0.191289 -0.039382 +v -0.400000 -0.191289 -0.039382 +v 0.400000 -0.302756 -0.150849 +v -0.400000 -0.302756 -0.150849 +v 0.400000 -0.270108 -0.229668 +v -0.400000 -0.270108 -0.229668 +v 0.400000 -0.191289 -0.262316 +v -0.400000 -0.191289 -0.262316 +v 0.400000 -0.112470 -0.229668 +v -0.400000 -0.112470 -0.229668 +v 0.447003 -0.064595 -0.457685 +v 0.447003 -0.364595 -0.457685 +v -0.447003 -0.064595 -0.457685 +v -0.447003 -0.364595 -0.457685 +v -0.500000 -0.400000 -0.500000 +v -0.500000 0.500000 -0.500000 +v 0.500000 -0.400000 -0.500000 +v 0.500000 0.500000 -0.500000 +v -0.500000 -0.400000 0.500000 +v -0.500000 0.500000 0.500000 +v 0.500000 -0.400000 0.500000 +v 0.500000 0.500000 0.500000 +v -0.400000 0.500000 -0.500000 +v 0.400000 0.500000 -0.500000 +v 0.400000 -0.400000 -0.500000 +v -0.400000 -0.400000 -0.500000 +v 0.400000 0.500000 0.500000 +v -0.400000 0.500000 0.500000 +v -0.400000 -0.400000 0.500000 +v 0.400000 -0.400000 0.500000 +v -0.500000 -0.300000 -0.500000 +v -0.500000 0.400000 -0.500000 +v 0.500000 0.400000 -0.500000 +v 0.500000 -0.300000 -0.500000 +v 0.500000 0.400000 0.500000 +v 0.500000 -0.300000 0.500000 +v -0.500000 0.400000 0.500000 +v -0.500000 -0.300000 0.500000 +v 0.400000 0.400000 0.500000 +v 0.400000 -0.300000 0.500000 +v -0.400000 0.400000 0.500000 +v -0.400000 -0.300000 0.500000 +v -0.400000 0.400000 -0.500000 +v -0.400000 -0.300000 -0.500000 +v 0.400000 0.400000 -0.500000 +v 0.400000 -0.300000 -0.500000 +v -0.400000 0.400000 0.400000 +v -0.400000 -0.300000 0.400000 +v 0.400000 0.400000 0.400000 +v 0.400000 -0.300000 0.400000 +v -0.400000 -0.500000 -0.500000 +v -0.500000 -0.500000 -0.500000 +v 0.500000 -0.500000 0.500000 +v 0.500000 -0.500000 -0.500000 +v 0.400000 -0.500000 0.500000 +v -0.500000 -0.500000 0.500000 +v 0.400000 -0.500000 -0.500000 +v -0.400000 -0.500000 0.500000 +v -0.400000 0.675000 -0.500000 +v 0.400000 0.675000 -0.500000 +v -0.400000 0.675000 0.500000 +v 0.400000 0.675000 0.500000 +v 0.400000 0.675000 0.500000 +v -0.400000 0.675000 0.500000 +v 0.400000 0.675000 -0.500000 +v -0.400000 0.675000 -0.500000 +v 0.240000 0.675000 0.500000 +v -0.240000 0.675000 0.500000 +v 0.240000 0.675000 -0.500000 +v -0.240000 0.675000 -0.500000 +v 0.240000 0.875000 0.500000 +v -0.240000 0.875000 0.500000 +v 0.240000 0.875000 -0.500000 +v -0.240000 0.875000 -0.500000 +v 0.120000 0.875000 0.500000 +v -0.120000 0.875000 0.500000 +v 0.120000 0.875000 -0.500000 +v -0.120000 0.875000 -0.500000 +v 0.120000 1.075000 0.500000 +v -0.120000 1.075000 0.500000 +v 0.120000 1.075000 -0.500000 +v -0.120000 1.075000 -0.500000 +vt 0.980066 -0.232831 +vt 1.103207 -0.232831 +vt 1.103207 -0.355973 +vt 0.980066 -0.355973 +vt -0.128207 -0.232831 +vt -0.128207 -0.355973 +vt -0.005066 -0.232831 +vt -0.005066 -0.355973 +vt -0.005066 -0.479114 +vt -0.128207 -0.479114 +vt 1.103207 0.629159 +vt 1.103207 0.752301 +vt -0.128207 0.752301 +vt -0.128207 0.629159 +vt 1.103207 -0.479114 +vt 0.980066 -0.479114 +vt -0.005066 0.752301 +vt 0.980066 0.752301 +vt 0.980066 0.629159 +vt -0.005066 0.629159 +vt -0.128207 0.967798 +vt 1.103207 0.967798 +vt 1.103207 1.214081 +vt -0.128207 1.214081 +vt 0.121793 -0.355973 +vt 1.353207 -0.355973 +vt 1.353207 -0.158946 +vt 0.121793 -0.158946 +vt 1.353207 -0.011176 +vt 0.121793 -0.011176 +vt 1.353207 0.629159 +vt 0.121793 0.629159 +vt 0.121793 0.432133 +vt 1.353207 0.432133 +vt 0.121793 0.284363 +vt 1.353207 0.284363 +vt 1.103207 1.460364 +vt -0.128207 1.460364 +vt 0.344398 1.457912 +vt 0.635804 1.457912 +vt 0.635804 1.215073 +vt 0.344398 1.215073 +vt 0.339730 1.214081 +vt 0.635270 1.214081 +vt 0.635270 1.460364 +vt 0.339730 1.460364 +vt 0.191961 1.214081 +vt 0.783040 1.214081 +vt 0.783040 0.967798 +vt 0.191961 0.967798 +vt 0.980066 0.967798 +vt -0.005066 0.967798 +vt -0.043259 1.000983 +vt -0.043259 0.631558 +vt 1.057632 0.631558 +vt 1.057632 1.000983 +vt 0.621575 0.000134 +vt 0.621575 0.999866 +vt 0.496809 0.999866 +vt 0.496810 0.000134 +vt 0.122515 0.000134 +vt 0.122514 0.999866 +vt -0.002251 0.999866 +vt -0.002250 0.000134 +vt 0.995869 0.000134 +vt 0.995869 0.999866 +vt 0.871105 0.999866 +vt 0.871105 0.000134 +vt 0.746340 0.000134 +vt 0.746340 0.999866 +vt 0.372044 0.999866 +vt 0.372045 0.000134 +vt 0.999900 0.000100 +vt 0.999900 0.999900 +vt 0.000100 0.999900 +vt 0.000100 0.000100 +vn 0.000000 0.000000 -1.000000 +vn 1.000000 0.000000 0.000000 +vn 0.000000 0.000000 1.000000 +vn -1.000000 0.000000 -0.000000 +vn 0.000000 1.000000 0.000000 +vn 0.000000 -1.000000 0.000000 +vn 0.000000 0.923900 0.382700 +vn -0.000000 -0.923900 -0.382700 +vn 0.000000 -0.382700 -0.923900 +vn 0.000000 0.923900 -0.382700 +vn 0.000000 0.382700 -0.923900 +vn -0.000000 0.382700 0.923900 +g Fireplace_on_Plane.002_FirePlace +s off +f 66/1/1 54/2/1 37/3/1 45/4/1 +f 54/5/2 56/2/2 41/3/2 37/6/2 +f 62/7/3 58/5/3 39/6/3 49/8/3 +f 58/2/4 51/5/4 35/6/4 39/3/4 +f 35/6/1 46/8/1 71/9/1 72/10/1 +f 47/11/5 42/12/5 38/13/5 44/14/5 +f 40/15/5 48/3/5 43/6/5 36/10/5 +f 45/4/1 37/3/1 74/15/1 77/16/1 +f 46/6/6 45/14/6 50/11/6 49/3/6 +f 56/2/3 60/1/3 50/4/3 41/3/3 +f 60/1/3 62/7/3 49/8/3 50/4/3 +f 51/5/1 64/7/1 46/8/1 35/6/1 +f 64/7/1 66/1/1 45/4/1 46/8/1 +f 43/17/1 44/18/1 65/19/1 63/20/1 +f 66/14/5 64/6/5 68/4/5 70/19/5 +f 36/13/1 43/17/1 63/20/1 52/14/1 +f 52/14/1 63/20/1 64/7/1 51/5/1 +f 47/18/3 48/17/3 61/20/3 59/19/3 +f 59/19/3 61/20/3 62/7/3 60/1/3 +f 42/12/3 47/18/3 59/19/3 55/11/3 +f 55/11/3 59/19/3 60/1/3 56/2/3 +f 40/12/4 36/13/4 52/14/4 57/11/4 +f 57/11/4 52/14/4 51/5/4 58/2/4 +f 48/17/3 40/13/3 57/14/3 61/20/3 +f 61/20/3 57/14/3 58/5/3 62/7/3 +f 38/13/2 42/12/2 55/11/2 53/14/2 +f 53/14/2 55/11/2 56/2/2 54/5/2 +f 44/18/1 38/12/1 53/11/1 65/19/1 +f 65/19/1 53/11/1 54/2/1 66/1/1 +f 67/20/1 69/19/1 70/1/1 68/7/1 +f 65/14/4 66/5/4 70/1/4 69/19/4 +f 64/5/2 63/14/2 67/19/2 68/1/2 +f 63/6/6 65/14/6 69/19/6 67/4/6 +f 77/14/6 74/13/6 73/12/6 75/11/6 +f 72/10/6 71/6/6 78/3/6 76/15/6 +f 50/3/4 45/6/4 77/10/4 75/15/4 +f 37/6/2 41/3/2 73/15/2 74/10/2 +f 46/6/2 49/3/2 78/15/2 71/10/2 +f 39/3/4 35/6/4 72/10/4 76/15/4 +f 41/3/3 50/4/3 75/16/3 73/15/3 +f 49/8/3 39/6/3 76/10/3 78/9/3 +f 90/21/4 88/22/4 92/23/4 94/24/4 +f 47/12/2 44/13/2 80/21/2 82/22/2 +f 43/13/4 48/12/4 81/22/4 79/21/4 +f 86/25/5 84/26/5 88/27/5 90/28/5 +f 79/6/3 81/3/3 84/3/3 86/6/3 +f 94/28/5 92/27/5 96/29/5 98/30/5 +f 87/22/2 89/21/2 93/24/2 91/23/2 +f 83/31/5 85/32/5 89/33/5 87/34/5 +f 82/11/3 80/14/3 85/14/3 83/11/3 +f 91/34/5 93/33/5 97/35/5 95/36/5 +f 98/24/4 96/23/4 100/37/4 102/38/4 +f 95/23/2 97/24/2 101/38/2 99/37/2 +f 101/35/5 102/30/5 100/29/5 99/36/5 +f 102/39/1 101/40/1 97/41/1 98/42/1 +f 96/43/3 95/44/3 99/45/3 100/46/3 +f 94/47/1 98/43/1 97/44/1 93/48/1 89/49/1 90/50/1 +f 88/50/3 87/49/3 91/48/3 95/44/3 96/43/3 92/47/3 +f 48/17/3 47/18/3 82/51/3 84/52/3 88/50/3 87/49/3 83/51/3 81/52/3 +f 43/17/1 79/52/1 85/51/1 89/49/1 90/50/1 86/52/1 80/51/1 44/18/1 +g Fireplace_on_Plane.002_Grate +f 31/53/1 32/54/1 34/55/1 33/56/1 +g Fireplace_on_Plane.002_Wood +f 5/57/7 6/58/7 8/59/7 7/60/7 +f 9/61/8 10/62/8 12/63/8 11/64/8 +f 11/65/9 12/66/9 14/67/9 13/68/9 +f 15/69/10 16/70/10 6/58/10 5/57/10 +f 13/68/11 14/67/11 16/70/11 15/69/11 +f 17/57/7 18/58/7 20/59/7 19/60/7 +f 19/60/12 20/59/12 22/71/12 21/72/12 +f 23/61/8 24/62/8 26/63/8 25/64/8 +f 25/65/9 26/66/9 28/67/9 27/68/9 +f 29/69/10 30/70/10 18/58/10 17/57/10 +f 27/68/11 28/67/11 30/70/11 29/69/11 +g Fireplace_on_Plane.002_Fire +f 1/73/1 2/74/1 4/75/1 3/76/1 diff --git a/games/default/files/Decorations/ma_pops_furniture/models/FM_sofa.obj b/games/default/files/Decorations/ma_pops_furniture/models/FM_sofa.obj new file mode 100644 index 000000000..8efab14af --- /dev/null +++ b/games/default/files/Decorations/ma_pops_furniture/models/FM_sofa.obj @@ -0,0 +1,119 @@ +# Blender v2.75 (sub 4) OBJ File: 'sofa.blend' +# www.blender.org +o Sofa_Cube.001 +v 0.500000 -0.500000 -0.500000 +v 0.500000 -0.500000 0.500000 +v 0.500000 0.500000 0.500000 +v -0.500000 -0.500000 -0.500000 +v -0.500000 -0.500000 0.500000 +v -0.500000 0.500000 0.500000 +v 0.500000 0.500000 0.200000 +v 0.500000 -0.500000 0.200000 +v -0.500000 0.500000 0.200000 +v -0.500000 -0.500000 0.200000 +v 0.500000 0.000000 -0.500000 +v 0.500000 0.000000 0.500000 +v -0.500000 0.000000 0.500000 +v -0.500000 0.000000 -0.500000 +v -0.500000 0.000000 0.200000 +v 0.500000 0.000000 0.200000 +v -0.447309 -0.124050 -0.450000 +v -0.447309 0.273622 -0.450000 +v -0.447309 -0.124050 0.250000 +v -0.447309 0.273622 0.250000 +v -0.647309 -0.124050 -0.450000 +v -0.647309 0.273622 -0.450000 +v -0.647309 -0.124050 0.250000 +v -0.647309 0.273622 0.250000 +v 0.652691 -0.124050 -0.450000 +v 0.652691 0.273622 -0.450000 +v 0.652691 -0.124050 0.250000 +v 0.652691 0.273622 0.250000 +v 0.452691 -0.124050 -0.450000 +v 0.452691 0.273622 -0.450000 +v 0.452691 -0.124050 0.250000 +v 0.452691 0.273622 0.250000 +vt 0.700422 0.500000 +vt 1.000000 0.500000 +vt 1.000000 0.000000 +vt 0.700422 0.000000 +vt 0.001407 0.500000 +vt 0.001407 0.000000 +vt 0.992586 0.555593 +vt 0.008821 0.555593 +vt 0.008821 0.063711 +vt 0.992586 0.063711 +vt 0.001407 0.700000 +vt 0.001407 1.000000 +vt 1.000000 1.000000 +vt 1.000000 0.700000 +vt 0.996225 0.617831 +vt 0.996225 0.915144 +vt 0.005182 0.915144 +vt 0.005182 0.617831 +vt 1.000000 0.736766 +vt 0.001407 0.736766 +vt 0.001407 0.034817 +vt 1.000000 0.034817 +vt 0.700422 1.000000 +vt 0.008891 0.936254 +vt 0.008891 0.444442 +vt 0.992516 0.444442 +vt 0.992516 0.936254 +vt 0.158077 0.708334 +vt 0.691052 0.708334 +vt 0.691052 0.405549 +vt 0.158077 0.405549 +vt 0.841281 0.708334 +vt 0.993559 0.708334 +vt 0.993559 0.405549 +vt 0.841281 0.405549 +vt 0.774934 0.755988 +vt 0.074195 0.755988 +vt 0.074195 0.357896 +vt 0.774934 0.357896 +vt 0.841281 0.157374 +vt 0.841281 0.690348 +vt 0.993559 0.690348 +vt 0.993559 0.157374 +vt 0.003749 0.708334 +vt 0.156028 0.708334 +vt 0.156028 0.405549 +vt 0.003749 0.405549 +vt 0.003749 0.157374 +vt 0.003749 0.690348 +vt 0.156028 0.690348 +vt 0.156028 0.157374 +vn 1.000000 0.000000 0.000000 +vn 0.000000 0.000000 1.000000 +vn -1.000000 0.000000 0.000000 +vn 0.000000 0.000000 -1.000000 +vn 0.000000 -1.000000 0.000000 +vn 0.000000 1.000000 0.000000 +s off +f 16/1/1 12/2/1 2/3/1 8/4/1 +f 12/5/2 13/2/2 5/3/2 2/6/2 +f 15/1/3 14/5/3 4/6/3 10/4/3 +f 14/7/4 11/8/4 1/9/4 4/10/4 +f 8/11/5 2/12/5 5/13/5 10/14/5 +f 9/15/6 6/16/6 3/17/6 7/18/6 +f 15/19/6 16/20/6 11/21/6 14/22/6 +f 1/6/5 8/11/5 10/14/5 4/3/5 +f 13/2/3 15/1/3 10/4/3 5/3/3 +f 11/5/1 16/1/1 8/4/1 1/6/1 +f 6/13/3 9/23/3 15/1/3 13/2/3 +f 7/24/4 16/25/4 15/26/4 9/27/4 +f 3/12/2 6/13/2 13/2/2 12/5/2 +f 7/23/1 3/13/1 12/2/1 16/1/1 +f 18/28/1 20/29/1 19/30/1 17/31/1 +f 20/32/2 24/33/2 23/34/2 19/35/2 +f 24/36/3 22/37/3 21/38/3 23/39/3 +f 22/33/4 18/32/4 17/35/4 21/34/4 +f 17/40/5 19/41/5 23/42/5 21/43/5 +f 22/43/6 24/42/6 20/41/6 18/40/6 +f 26/37/1 28/36/1 27/39/1 25/38/1 +f 28/44/2 32/45/2 31/46/2 27/47/2 +f 32/29/3 30/28/3 29/31/3 31/30/3 +f 30/45/4 26/44/4 25/47/4 29/46/4 +f 25/48/5 27/49/5 31/50/5 29/51/5 +f 30/51/6 32/50/6 28/49/6 26/48/6 diff --git a/games/default/files/Decorations/ma_pops_furniture/models/FM_sofa_c.obj b/games/default/files/Decorations/ma_pops_furniture/models/FM_sofa_c.obj new file mode 100644 index 000000000..67cee62e1 --- /dev/null +++ b/games/default/files/Decorations/ma_pops_furniture/models/FM_sofa_c.obj @@ -0,0 +1,96 @@ +# Blender v2.75 (sub 4) OBJ File: 'sofa.blend' +# www.blender.org +o Sofa_C_Cube.006 +v 0.500000 -0.500000 -0.500000 +v 0.500000 -0.500000 0.500000 +v 0.500000 0.500000 0.500000 +v -0.500000 -0.500000 -0.500000 +v -0.500000 -0.500000 0.500000 +v -0.500000 0.500000 0.500000 +v 0.500000 0.500000 0.200000 +v 0.500000 -0.500000 0.200000 +v -0.500000 0.500000 0.200000 +v -0.500000 -0.500000 0.200000 +v 0.500000 0.000000 -0.500000 +v 0.500000 0.000000 0.500000 +v -0.500000 0.000000 0.500000 +v -0.500000 0.000000 -0.500000 +v -0.500000 0.000000 0.200000 +v 0.500000 0.000000 0.200000 +v -0.199400 0.500000 0.500000 +v -0.199400 -0.500000 0.500000 +v -0.199400 -0.500000 -0.500000 +v -0.199400 0.500000 0.200000 +v -0.199400 -0.500000 0.200000 +v -0.199400 0.000000 0.200000 +v -0.199400 0.000000 -0.500000 +v -0.199400 0.000000 0.500000 +v -0.199400 0.500000 -0.500000 +v -0.500000 0.500000 -0.500000 +vt 0.700000 0.500000 +vt 1.000000 0.500000 +vt 1.000000 -0.000000 +vt 0.700000 -0.000000 +vt 0.700574 0.496063 +vt 1.000000 0.496063 +vt 0.700574 0.000000 +vt 0.000000 0.500000 +vt 0.000000 0.000000 +vt 0.696668 0.500000 +vt 0.696668 -0.000000 +vt 0.696625 0.688976 +vt 0.696625 0.984251 +vt 0.996032 0.984251 +vt 0.996032 0.688976 +vt 0.700593 0.694488 +vt 0.700593 0.992126 +vt 0.003968 0.992126 +vt 0.003968 0.694488 +vt 0.003968 0.000000 +vt 0.696625 0.000000 +vt 0.996032 0.000000 +vt 1.000000 1.000000 +vt 0.700000 1.000000 +vt 1.000000 0.992126 +vt 0.003906 0.992126 +vt 0.003906 0.496063 +vt -0.000000 1.000000 +vt 0.696668 1.000000 +vt 0.000000 0.688976 +vt 1.000000 0.694488 +vt 0.000000 0.984251 +vt 0.996094 0.500000 +vt 0.996094 -0.000000 +vt 0.003906 0.000000 +vt 0.996094 1.000000 +vn 1.000000 0.000000 0.000000 +vn 0.000000 0.000000 1.000000 +vn -1.000000 0.000000 0.000000 +vn 0.000000 0.000000 -1.000000 +vn 0.000000 -1.000000 0.000000 +vn 0.000000 1.000000 0.000000 +s off +f 16/1/1 12/2/1 2/3/1 8/4/1 +f 24/5/2 13/6/2 5/3/2 18/7/2 +f 15/1/3 14/8/3 4/9/3 10/4/3 +f 23/10/4 11/8/4 1/9/4 19/11/4 +f 21/12/5 18/13/5 5/14/5 10/15/5 +f 20/16/6 17/17/6 3/18/6 7/19/6 +f 22/16/6 16/19/6 11/20/6 23/7/6 +f 19/21/5 21/12/5 10/15/5 4/22/5 +f 13/2/3 15/1/3 10/4/3 5/3/3 +f 11/8/1 16/1/1 8/4/1 1/9/1 +f 6/23/3 9/24/3 15/1/3 13/2/3 +f 17/17/2 6/25/2 13/6/2 24/5/2 +f 7/24/1 3/23/1 12/2/1 16/1/1 +f 3/26/2 17/17/2 24/5/2 12/27/2 +f 7/28/4 16/8/4 22/10/4 20/29/4 +f 1/9/5 8/30/5 21/12/5 19/21/5 +f 9/31/6 6/25/6 17/17/6 20/16/6 +f 8/30/5 2/32/5 18/13/5 21/12/5 +f 14/33/4 23/10/4 19/11/4 4/34/4 +f 12/27/2 24/5/2 18/7/2 2/35/2 +f 23/10/4 14/33/4 26/36/4 25/29/4 +f 9/31/6 20/16/6 25/7/6 26/3/6 +f 22/1/1 23/8/1 25/28/1 20/24/1 +f 14/8/3 15/1/3 9/24/3 26/28/3 diff --git a/games/default/files/Decorations/ma_pops_furniture/models/FM_sofa_l.obj b/games/default/files/Decorations/ma_pops_furniture/models/FM_sofa_l.obj new file mode 100644 index 000000000..0b5275c7a --- /dev/null +++ b/games/default/files/Decorations/ma_pops_furniture/models/FM_sofa_l.obj @@ -0,0 +1,97 @@ +# Blender v2.75 (sub 4) OBJ File: 'sofa.blend' +# www.blender.org +o Sofa_L_Cube.004 +v 0.500000 -0.500000 -0.500000 +v 0.500000 -0.500000 0.500000 +v 0.500000 0.500000 0.500000 +v -0.500000 -0.500000 -0.500000 +v -0.500000 -0.500000 0.500000 +v -0.500000 0.500000 0.500000 +v 0.500000 0.500000 0.200000 +v 0.500000 -0.500000 0.200000 +v -0.500000 0.500000 0.200000 +v -0.500000 -0.500000 0.200000 +v 0.500000 0.000000 -0.500000 +v 0.500000 0.000000 0.500000 +v -0.500000 0.000000 0.500000 +v -0.500000 0.000000 -0.500000 +v -0.500000 0.000000 0.200000 +v 0.500000 0.000000 0.200000 +v -0.447309 -0.124050 -0.450000 +v -0.447309 0.273622 -0.450000 +v -0.447309 -0.124050 0.250000 +v -0.447309 0.273622 0.250000 +v -0.647309 -0.124050 -0.450000 +v -0.647309 0.273622 -0.450000 +v -0.647309 -0.124050 0.250000 +v -0.647309 0.273622 0.250000 +vt 0.700422 0.500000 +vt 1.000000 0.500000 +vt 1.000000 0.000000 +vt 0.700422 0.000000 +vt 0.001407 0.500000 +vt 0.001407 0.000000 +vt 0.992586 0.555593 +vt 0.008821 0.555593 +vt 0.008821 0.063711 +vt 0.992586 0.063711 +vt 0.001407 0.700000 +vt 0.001407 1.000000 +vt 1.000000 1.000000 +vt 1.000000 0.700000 +vt 0.996225 0.617831 +vt 0.996225 0.915144 +vt 0.005182 0.915144 +vt 0.005182 0.617831 +vt 1.000000 0.736766 +vt 0.001407 0.736766 +vt 0.001407 0.034817 +vt 1.000000 0.034817 +vt 0.700422 1.000000 +vt 0.008891 0.936254 +vt 0.008891 0.444442 +vt 0.992516 0.444442 +vt 0.992516 0.936254 +vt 0.158077 0.708334 +vt 0.691052 0.708334 +vt 0.691052 0.405549 +vt 0.158077 0.405549 +vt 0.841281 0.708334 +vt 0.993559 0.708334 +vt 0.993559 0.405549 +vt 0.841281 0.405549 +vt 0.774934 0.755988 +vt 0.074195 0.755988 +vt 0.074195 0.357896 +vt 0.774934 0.357896 +vt 0.841281 0.157374 +vt 0.841281 0.690348 +vt 0.993559 0.690348 +vt 0.993559 0.157374 +vn 1.000000 0.000000 0.000000 +vn 0.000000 0.000000 1.000000 +vn -1.000000 0.000000 0.000000 +vn 0.000000 0.000000 -1.000000 +vn 0.000000 -1.000000 0.000000 +vn 0.000000 1.000000 0.000000 +s off +f 16/1/1 12/2/1 2/3/1 8/4/1 +f 12/5/2 13/2/2 5/3/2 2/6/2 +f 15/1/3 14/5/3 4/6/3 10/4/3 +f 14/7/4 11/8/4 1/9/4 4/10/4 +f 8/11/5 2/12/5 5/13/5 10/14/5 +f 9/15/6 6/16/6 3/17/6 7/18/6 +f 15/19/6 16/20/6 11/21/6 14/22/6 +f 1/6/5 8/11/5 10/14/5 4/3/5 +f 13/2/3 15/1/3 10/4/3 5/3/3 +f 11/5/1 16/1/1 8/4/1 1/6/1 +f 6/13/3 9/23/3 15/1/3 13/2/3 +f 7/24/4 16/25/4 15/26/4 9/27/4 +f 3/12/2 6/13/2 13/2/2 12/5/2 +f 7/23/1 3/13/1 12/2/1 16/1/1 +f 18/28/1 20/29/1 19/30/1 17/31/1 +f 20/32/2 24/33/2 23/34/2 19/35/2 +f 24/36/3 22/37/3 21/38/3 23/39/3 +f 22/33/4 18/32/4 17/35/4 21/34/4 +f 17/40/5 19/41/5 23/42/5 21/43/5 +f 22/43/6 24/42/6 20/41/6 18/40/6 diff --git a/games/default/files/Decorations/ma_pops_furniture/models/FM_sofa_m.obj b/games/default/files/Decorations/ma_pops_furniture/models/FM_sofa_m.obj new file mode 100644 index 000000000..127f505e9 --- /dev/null +++ b/games/default/files/Decorations/ma_pops_furniture/models/FM_sofa_m.obj @@ -0,0 +1,67 @@ +# Blender v2.75 (sub 4) OBJ File: 'sofa.blend' +# www.blender.org +o Sofa_M_Cube.002 +v 0.500000 -0.500000 -0.500000 +v 0.500000 -0.500000 0.500000 +v 0.500000 0.500000 0.500000 +v -0.500000 -0.500000 -0.500000 +v -0.500000 -0.500000 0.500000 +v -0.500000 0.500000 0.500000 +v 0.500000 0.500000 0.200000 +v 0.500000 -0.500000 0.200000 +v -0.500000 0.500000 0.200000 +v -0.500000 -0.500000 0.200000 +v 0.500000 0.000000 -0.500000 +v 0.500000 0.000000 0.500000 +v -0.500000 0.000000 0.500000 +v -0.500000 0.000000 -0.500000 +v -0.500000 0.000000 0.200000 +v 0.500000 0.000000 0.200000 +vt 0.700422 0.500000 +vt 1.000000 0.500000 +vt 1.000000 0.000000 +vt 0.700422 0.000000 +vt 0.001407 0.500000 +vt 0.001407 0.000000 +vt 0.992586 0.555593 +vt 0.008821 0.555593 +vt 0.008821 0.063711 +vt 0.992586 0.063711 +vt 0.001407 0.700000 +vt 0.001407 1.000000 +vt 1.000000 1.000000 +vt 1.000000 0.700000 +vt 0.996225 0.617831 +vt 0.996225 0.915144 +vt 0.005182 0.915144 +vt 0.005182 0.617831 +vt 1.000000 0.736766 +vt 0.001407 0.736766 +vt 0.001407 0.034817 +vt 1.000000 0.034817 +vt 0.700422 1.000000 +vt 0.008891 0.936254 +vt 0.008891 0.444442 +vt 0.992516 0.444442 +vt 0.992516 0.936254 +vn 1.000000 0.000000 0.000000 +vn 0.000000 0.000000 1.000000 +vn -1.000000 0.000000 0.000000 +vn 0.000000 0.000000 -1.000000 +vn 0.000000 -1.000000 0.000000 +vn 0.000000 1.000000 0.000000 +s off +f 16/1/1 12/2/1 2/3/1 8/4/1 +f 12/5/2 13/2/2 5/3/2 2/6/2 +f 15/1/3 14/5/3 4/6/3 10/4/3 +f 14/7/4 11/8/4 1/9/4 4/10/4 +f 8/11/5 2/12/5 5/13/5 10/14/5 +f 9/15/6 6/16/6 3/17/6 7/18/6 +f 15/19/6 16/20/6 11/21/6 14/22/6 +f 1/6/5 8/11/5 10/14/5 4/3/5 +f 13/2/3 15/1/3 10/4/3 5/3/3 +f 11/5/1 16/1/1 8/4/1 1/6/1 +f 6/13/3 9/23/3 15/1/3 13/2/3 +f 7/24/4 16/25/4 15/26/4 9/27/4 +f 3/12/2 6/13/2 13/2/2 12/5/2 +f 7/23/1 3/13/1 12/2/1 16/1/1 diff --git a/games/default/files/Decorations/ma_pops_furniture/models/FM_sofa_r.obj b/games/default/files/Decorations/ma_pops_furniture/models/FM_sofa_r.obj new file mode 100644 index 000000000..0dea04805 --- /dev/null +++ b/games/default/files/Decorations/ma_pops_furniture/models/FM_sofa_r.obj @@ -0,0 +1,97 @@ +# Blender v2.75 (sub 4) OBJ File: 'sofa.blend' +# www.blender.org +o Sofa_R_Cube.005 +v 0.500000 -0.500000 -0.500000 +v 0.500000 -0.500000 0.500000 +v 0.500000 0.500000 0.500000 +v -0.500000 -0.500000 -0.500000 +v -0.500000 -0.500000 0.500000 +v -0.500000 0.500000 0.500000 +v 0.500000 0.500000 0.200000 +v 0.500000 -0.500000 0.200000 +v -0.500000 0.500000 0.200000 +v -0.500000 -0.500000 0.200000 +v 0.500000 0.000000 -0.500000 +v 0.500000 0.000000 0.500000 +v -0.500000 0.000000 0.500000 +v -0.500000 0.000000 -0.500000 +v -0.500000 0.000000 0.200000 +v 0.500000 0.000000 0.200000 +v 0.652691 -0.124050 -0.450000 +v 0.652691 0.273622 -0.450000 +v 0.652691 -0.124050 0.250000 +v 0.652691 0.273622 0.250000 +v 0.452691 -0.124050 -0.450000 +v 0.452691 0.273622 -0.450000 +v 0.452691 -0.124050 0.250000 +v 0.452691 0.273622 0.250000 +vt 0.700422 0.500000 +vt 1.000000 0.500000 +vt 1.000000 0.000000 +vt 0.700422 0.000000 +vt 0.001407 0.500000 +vt 0.001407 0.000000 +vt 0.992586 0.555593 +vt 0.008821 0.555593 +vt 0.008821 0.063711 +vt 0.992586 0.063711 +vt 0.001407 0.700000 +vt 0.001407 1.000000 +vt 1.000000 1.000000 +vt 1.000000 0.700000 +vt 0.996225 0.617831 +vt 0.996225 0.915144 +vt 0.005182 0.915144 +vt 0.005182 0.617831 +vt 1.000000 0.736766 +vt 0.001407 0.736766 +vt 0.001407 0.034817 +vt 1.000000 0.034817 +vt 0.700422 1.000000 +vt 0.008891 0.936254 +vt 0.008891 0.444442 +vt 0.992516 0.444442 +vt 0.992516 0.936254 +vt 0.074195 0.755988 +vt 0.774934 0.755988 +vt 0.774934 0.357896 +vt 0.074195 0.357896 +vt 0.003749 0.708334 +vt 0.156028 0.708334 +vt 0.156028 0.405549 +vt 0.003749 0.405549 +vt 0.691052 0.708334 +vt 0.158077 0.708334 +vt 0.158077 0.405549 +vt 0.691052 0.405549 +vt 0.003749 0.157374 +vt 0.003749 0.690348 +vt 0.156028 0.690348 +vt 0.156028 0.157374 +vn 1.000000 0.000000 0.000000 +vn 0.000000 0.000000 1.000000 +vn -1.000000 0.000000 0.000000 +vn 0.000000 0.000000 -1.000000 +vn 0.000000 -1.000000 0.000000 +vn 0.000000 1.000000 0.000000 +s off +f 16/1/1 12/2/1 2/3/1 8/4/1 +f 12/5/2 13/2/2 5/3/2 2/6/2 +f 15/1/3 14/5/3 4/6/3 10/4/3 +f 14/7/4 11/8/4 1/9/4 4/10/4 +f 8/11/5 2/12/5 5/13/5 10/14/5 +f 9/15/6 6/16/6 3/17/6 7/18/6 +f 15/19/6 16/20/6 11/21/6 14/22/6 +f 1/6/5 8/11/5 10/14/5 4/3/5 +f 13/2/3 15/1/3 10/4/3 5/3/3 +f 11/5/1 16/1/1 8/4/1 1/6/1 +f 6/13/3 9/23/3 15/1/3 13/2/3 +f 7/24/4 16/25/4 15/26/4 9/27/4 +f 3/12/2 6/13/2 13/2/2 12/5/2 +f 7/23/1 3/13/1 12/2/1 16/1/1 +f 18/28/1 20/29/1 19/30/1 17/31/1 +f 20/32/2 24/33/2 23/34/2 19/35/2 +f 24/36/3 22/37/3 21/38/3 23/39/3 +f 22/33/4 18/32/4 17/35/4 21/34/4 +f 17/40/5 19/41/5 23/42/5 21/43/5 +f 22/43/6 24/42/6 20/41/6 18/40/6 diff --git a/games/default/files/Decorations/ma_pops_furniture/models/FM_stone_path_1.obj b/games/default/files/Decorations/ma_pops_furniture/models/FM_stone_path_1.obj new file mode 100644 index 000000000..51f796f9e --- /dev/null +++ b/games/default/files/Decorations/ma_pops_furniture/models/FM_stone_path_1.obj @@ -0,0 +1,77 @@ +# Blender v2.75 (sub 4) OBJ File: 'stone_path.blend' +# www.blender.org +o Path_1_Plane.007 +v -0.400000 -0.500000 -0.100000 +v 0.100000 -0.500000 -0.100000 +v -0.400000 -0.500000 -0.400000 +v 0.100000 -0.500000 -0.400000 +v 0.400000 -0.500000 0.100000 +v -0.100000 -0.500000 0.100000 +v 0.400000 -0.500000 0.400000 +v -0.100000 -0.500000 0.400000 +v -0.200000 -0.400000 0.000000 +v -0.400000 -0.400000 0.000000 +v -0.400000 -0.500000 0.000000 +v -0.400000 -0.500000 0.400000 +v 0.200000 -0.400000 -0.000000 +v 0.400000 -0.400000 -0.000000 +v 0.200000 -0.400000 -0.400000 +v 0.400000 -0.400000 -0.400000 +v 0.400000 -0.500000 -0.400000 +v 0.200000 -0.500000 -0.400000 +v 0.400000 -0.500000 -0.000000 +v 0.200000 -0.500000 -0.000000 +v -0.200000 -0.500000 0.400000 +v -0.200000 -0.500000 0.000000 +v -0.200000 -0.400000 0.400000 +v -0.400000 -0.400000 0.400000 +v -0.100000 -0.400000 0.400000 +v 0.400000 -0.400000 0.400000 +v -0.100000 -0.400000 0.100000 +v 0.400000 -0.400000 0.100000 +v 0.100000 -0.400000 -0.400000 +v -0.400000 -0.400000 -0.400000 +v 0.100000 -0.400000 -0.100000 +v -0.400000 -0.400000 -0.100000 +vt 0.000000 0.500000 +vt 0.000000 0.000000 +vt 0.375000 0.000000 +vt 1.000000 0.000000 +vt 0.625000 1.000000 +vt 0.000000 1.000000 +vt 1.000000 1.000000 +vt 0.750000 1.000000 +vt 0.000000 0.625000 +vt 0.750000 0.500000 +vt 1.000000 0.500000 +vt 0.250000 0.000000 +vt 0.250000 0.500000 +vt 1.000000 0.375000 +vt 0.625000 0.625000 +vt 0.375000 0.375000 +vn -1.000000 0.000000 0.000000 +vn 0.000000 0.000000 1.000000 +vn 0.000000 0.000000 -1.000000 +vn 0.000000 1.000000 0.000000 +vn 1.000000 0.000000 0.000000 +s off +f 10/1/1 11/1/1 12/2/1 24/2/1 +f 25/3/2 8/3/2 7/4/2 26/4/2 +f 29/5/3 4/5/3 3/6/3 30/6/3 +f 16/7/3 17/7/3 18/8/3 15/8/3 +f 30/6/1 3/6/1 1/9/1 32/9/1 +f 13/10/2 20/10/2 19/11/2 14/11/2 +f 24/2/4 23/12/4 9/13/4 10/1/4 +f 24/2/2 12/2/2 21/12/2 23/12/2 +f 15/8/1 18/8/1 20/10/1 13/10/1 +f 26/4/5 7/4/5 5/14/5 28/14/5 +f 31/15/5 2/15/5 4/5/5 29/5/5 +f 23/12/5 21/12/5 22/13/5 9/13/5 +f 14/11/5 19/11/5 17/7/5 16/7/5 +f 28/14/3 5/14/3 6/16/3 27/16/3 +f 32/9/2 1/9/2 2/15/2 31/15/2 +f 13/10/4 14/11/4 16/7/4 15/8/4 +f 32/9/4 31/15/4 29/5/4 30/6/4 +f 9/13/3 22/13/3 11/1/3 10/1/3 +f 27/16/1 6/16/1 8/3/1 25/3/1 +f 25/3/4 26/4/4 28/14/4 27/16/4 diff --git a/games/default/files/Decorations/ma_pops_furniture/models/FM_stone_path_2.obj b/games/default/files/Decorations/ma_pops_furniture/models/FM_stone_path_2.obj new file mode 100644 index 000000000..670f398b0 --- /dev/null +++ b/games/default/files/Decorations/ma_pops_furniture/models/FM_stone_path_2.obj @@ -0,0 +1,77 @@ +# Blender v2.75 (sub 4) OBJ File: 'stone_path.blend' +# www.blender.org +o Path_2_Plane.005 +v -0.401461 -0.400000 -0.098539 +v 0.001461 -0.400000 -0.098539 +v -0.401461 -0.400000 -0.401461 +v 0.001461 -0.400000 -0.401461 +v -0.401461 -0.400000 0.401461 +v -0.098539 -0.400000 0.401461 +v -0.401461 -0.400000 -0.001461 +v -0.098539 -0.400000 -0.001461 +v -0.401461 -0.500000 0.401461 +v -0.098539 -0.500000 0.401461 +v -0.401461 -0.500000 -0.001461 +v -0.098539 -0.500000 -0.001461 +v 0.098539 -0.400000 -0.198539 +v 0.501461 -0.400000 -0.198539 +v 0.098539 -0.400000 -0.501461 +v 0.501461 -0.400000 -0.501461 +v -0.401461 -0.500000 -0.098539 +v 0.001461 -0.500000 -0.098539 +v -0.401461 -0.500000 -0.401461 +v 0.001461 -0.500000 -0.401461 +v 0.098539 -0.500000 -0.198539 +v 0.501461 -0.500000 -0.198539 +v 0.098539 -0.500000 -0.501461 +v 0.501461 -0.500000 -0.501461 +v 0.401461 -0.500000 -0.001461 +v -0.001461 -0.500000 -0.001461 +v 0.401461 -0.500000 0.301461 +v -0.001461 -0.500000 0.301461 +v 0.401461 -0.400000 -0.001461 +v -0.001461 -0.400000 -0.001461 +v 0.401461 -0.400000 0.301461 +v -0.001461 -0.400000 0.301461 +vt 0.000000 0.553758 +vt 0.446242 0.553758 +vt 0.446242 0.889249 +vt 0.000000 0.889249 +vt 0.000000 0.446242 +vt 0.000000 0.000000 +vt 0.553757 0.664509 +vt 1.000000 0.664509 +vt 1.000000 1.000000 +vt 0.553757 1.000000 +vt 0.889248 0.110752 +vt 0.889248 0.446242 +vt 0.335491 0.000000 +vt 0.335491 0.446242 +vt 0.443006 0.446242 +vt 0.443006 0.110752 +vn 0.000000 1.000000 0.000000 +vn -1.000000 0.000000 0.000000 +vn 1.000000 0.000000 0.000000 +vn 0.000000 0.000000 -1.000000 +vn 0.000000 0.000000 1.000000 +s off +f 1/1/1 2/2/1 4/3/1 3/4/1 +f 7/5/2 11/5/2 9/6/2 5/6/2 +f 13/7/1 14/8/1 16/9/1 15/10/1 +f 31/11/3 27/11/3 25/12/3 29/12/3 +f 16/9/4 24/9/4 23/10/4 15/10/4 +f 5/6/1 6/13/1 8/14/1 7/5/1 +f 29/12/4 25/12/4 26/15/4 30/15/4 +f 5/6/5 9/6/5 10/13/5 6/13/5 +f 32/16/5 28/16/5 27/11/5 31/11/5 +f 8/14/4 12/14/4 11/5/4 7/5/4 +f 30/15/2 26/15/2 28/16/2 32/16/2 +f 6/13/3 10/13/3 12/14/3 8/14/3 +f 3/4/2 19/4/2 17/1/2 1/1/2 +f 32/16/1 31/11/1 29/12/1 30/15/1 +f 13/7/5 21/7/5 22/8/5 14/8/5 +f 1/1/5 17/1/5 18/2/5 2/2/5 +f 15/10/2 23/10/2 21/7/2 13/7/2 +f 2/2/3 18/2/3 20/3/3 4/3/3 +f 14/8/3 22/8/3 24/9/3 16/9/3 +f 4/3/4 20/3/4 19/4/4 3/4/4 diff --git a/games/default/files/Decorations/ma_pops_furniture/models/FM_stone_path_3.obj b/games/default/files/Decorations/ma_pops_furniture/models/FM_stone_path_3.obj new file mode 100644 index 000000000..7f02a580d --- /dev/null +++ b/games/default/files/Decorations/ma_pops_furniture/models/FM_stone_path_3.obj @@ -0,0 +1,94 @@ +# Blender v2.75 (sub 4) OBJ File: 'stone_path.blend' +# www.blender.org +o Path_3_Plane.006 +v -0.398223 -0.400000 -0.098539 +v 0.004699 -0.400000 -0.098539 +v -0.398223 -0.400000 -0.401461 +v 0.004699 -0.400000 -0.401461 +v -0.198223 -0.400000 0.501461 +v 0.104699 -0.400000 0.501461 +v -0.198223 -0.400000 0.098539 +v 0.104699 -0.400000 0.098539 +v 0.101777 -0.400000 -0.098539 +v 0.504699 -0.400000 -0.098539 +v 0.101777 -0.400000 -0.401461 +v 0.504699 -0.400000 -0.401461 +v 0.206537 -0.400000 0.396701 +v 0.499939 -0.400000 0.396701 +v 0.206537 -0.400000 0.003299 +v 0.499939 -0.400000 0.003299 +v -0.500061 -0.400000 0.396701 +v -0.500061 -0.400000 0.003299 +v -0.300061 -0.400000 0.396701 +v -0.300061 -0.400000 0.003299 +v -0.398223 -0.500000 -0.098539 +v 0.004699 -0.500000 -0.098539 +v -0.398223 -0.500000 -0.401461 +v 0.004699 -0.500000 -0.401461 +v -0.198223 -0.500000 0.501461 +v 0.104699 -0.500000 0.501461 +v -0.198223 -0.500000 0.098539 +v 0.104699 -0.500000 0.098539 +v 0.101777 -0.500000 -0.098539 +v 0.504699 -0.500000 -0.098539 +v 0.101777 -0.500000 -0.401461 +v 0.504699 -0.500000 -0.401461 +v 0.206537 -0.500000 0.396701 +v 0.499939 -0.500000 0.396701 +v 0.206537 -0.500000 0.003299 +v 0.499939 -0.500000 0.003299 +v -0.500061 -0.500000 0.396701 +v -0.500061 -0.500000 0.003299 +v -0.300061 -0.500000 0.396701 +v -0.300061 -0.500000 0.003299 +vt 0.101355 0.664509 +vt 0.502369 0.664509 +vt 0.502369 1.000000 +vt 0.101355 1.000000 +vt 0.300408 0.000000 +vt 0.601895 0.000000 +vt 0.601895 0.446242 +vt 0.300408 0.446242 +vt 0.598987 0.664509 +vt 1.000000 0.664509 +vt 1.000000 1.000000 +vt 0.598987 1.000000 +vt 0.703250 0.116023 +vt 0.995263 0.116023 +vt 0.995263 0.551722 +vt 0.703250 0.551722 +vt 0.000000 0.116023 +vt 0.199053 0.116023 +vt 0.199053 0.551722 +vt 0.000000 0.551722 +vn 0.000000 1.000000 0.000000 +vn 0.000000 0.000000 -1.000000 +vn -1.000000 0.000000 0.000000 +vn 0.000000 0.000000 1.000000 +vn 1.000000 0.000000 0.000000 +s off +f 1/1/1 2/2/1 4/3/1 3/4/1 +f 5/5/1 6/6/1 8/7/1 7/8/1 +f 9/9/1 10/10/1 12/11/1 11/12/1 +f 13/13/1 14/14/1 16/15/1 15/16/1 +f 17/17/1 19/18/1 20/19/1 18/20/1 +f 12/11/2 32/11/2 31/12/2 11/12/2 +f 7/8/3 27/8/3 25/5/3 5/5/3 +f 17/17/4 37/17/4 39/18/4 19/18/4 +f 15/16/3 35/16/3 33/13/3 13/13/3 +f 5/5/4 25/5/4 26/6/4 6/6/4 +f 13/13/4 33/13/4 34/14/4 14/14/4 +f 6/6/5 26/6/5 28/7/5 8/7/5 +f 14/14/5 34/14/5 36/15/5 16/15/5 +f 8/7/2 28/7/2 27/8/2 7/8/2 +f 3/4/3 23/4/3 21/1/3 1/1/3 +f 16/15/2 36/15/2 35/16/2 15/16/2 +f 11/12/3 31/12/3 29/9/3 9/9/3 +f 1/1/4 21/1/4 22/2/4 2/2/4 +f 18/20/3 38/20/3 37/17/3 17/17/3 +f 9/9/4 29/9/4 30/10/4 10/10/4 +f 2/2/5 22/2/5 24/3/5 4/3/5 +f 19/18/5 39/18/5 40/19/5 20/19/5 +f 10/10/5 30/10/5 32/11/5 12/11/5 +f 4/3/2 24/3/2 23/4/2 3/4/2 +f 20/19/2 40/19/2 38/20/2 18/20/2 diff --git a/games/default/files/Decorations/ma_pops_furniture/models/FM_stone_path_4.obj b/games/default/files/Decorations/ma_pops_furniture/models/FM_stone_path_4.obj new file mode 100644 index 000000000..8270eb82a --- /dev/null +++ b/games/default/files/Decorations/ma_pops_furniture/models/FM_stone_path_4.obj @@ -0,0 +1,76 @@ +# Blender v2.75 (sub 4) OBJ File: 'stone_path.blend' +# www.blender.org +o Path_4_Plane.004 +v -0.400000 -0.500000 -0.000000 +v -0.000000 -0.500000 -0.000000 +v -0.400000 -0.500000 -0.400000 +v -0.000000 -0.500000 -0.400000 +v 0.400000 -0.500000 0.000000 +v 0.000000 -0.500000 0.000000 +v 0.400000 -0.500000 0.400000 +v 0.000000 -0.500000 0.400000 +v 0.180000 -0.500000 -0.180000 +v 0.420000 -0.500000 -0.180000 +v 0.180000 -0.500000 -0.420000 +v 0.420000 -0.500000 -0.420000 +v -0.180000 -0.500000 0.180000 +v -0.420000 -0.500000 0.180000 +v -0.180000 -0.500000 0.420000 +v -0.420000 -0.500000 0.420000 +v -0.420000 -0.400000 0.420000 +v -0.180000 -0.400000 0.420000 +v -0.420000 -0.400000 0.180000 +v -0.180000 -0.400000 0.180000 +v 0.420000 -0.400000 -0.420000 +v 0.180000 -0.400000 -0.420000 +v 0.420000 -0.400000 -0.180000 +v 0.180000 -0.400000 -0.180000 +v 0.000000 -0.400000 0.400000 +v 0.400000 -0.400000 0.400000 +v 0.000000 -0.400000 0.000000 +v 0.400000 -0.400000 0.000000 +v -0.000000 -0.400000 -0.400000 +v -0.400000 -0.400000 -0.400000 +v -0.000000 -0.400000 -0.000000 +v -0.400000 -0.400000 -0.000000 +vt 1.000000 1.000000 +vt 0.714286 1.000000 +vt 0.500000 0.023810 +vt 0.976191 0.023810 +vt 1.000000 0.714286 +vt 0.500000 0.976191 +vt 0.023810 0.976191 +vt 0.000000 0.000000 +vt 0.285714 0.000000 +vt 0.285714 0.285714 +vt 0.000000 0.285714 +vt 0.023810 0.500000 +vt 0.714286 0.714286 +vt 0.976191 0.500000 +vt 0.500000 0.500000 +vn 0.000000 0.000000 -1.000000 +vn 0.000000 0.000000 1.000000 +vn 1.000000 0.000000 0.000000 +vn 0.000000 1.000000 0.000000 +vn -1.000000 0.000000 0.000000 +s off +f 21/1/1 12/1/1 11/2/1 22/2/1 +f 25/3/2 8/3/2 7/4/2 26/4/2 +f 23/5/3 10/5/3 12/1/3 21/1/3 +f 29/6/1 4/6/1 3/7/1 30/7/1 +f 17/8/4 18/9/4 20/10/4 19/11/4 +f 30/7/5 3/7/5 1/12/5 32/12/5 +f 19/11/5 14/11/5 16/8/5 17/8/5 +f 24/13/4 23/5/4 21/1/4 22/2/4 +f 22/2/5 11/2/5 9/13/5 24/13/5 +f 17/8/2 16/8/2 15/9/2 18/9/2 +f 26/4/3 7/4/3 5/14/3 28/14/3 +f 31/15/3 2/15/3 4/6/3 29/6/3 +f 18/9/3 15/9/3 13/10/3 20/10/3 +f 28/14/1 5/14/1 6/15/1 27/15/1 +f 32/12/2 1/12/2 2/15/2 31/15/2 +f 20/10/1 13/10/1 14/11/1 19/11/1 +f 32/12/4 31/15/4 29/6/4 30/7/4 +f 24/13/2 9/13/2 10/5/2 23/5/2 +f 27/15/5 6/15/5 8/3/5 25/3/5 +f 25/3/4 26/4/4 28/14/4 27/15/4 diff --git a/games/default/files/Decorations/ma_pops_furniture/models/FM_toilet_close.obj b/games/default/files/Decorations/ma_pops_furniture/models/FM_toilet_close.obj new file mode 100644 index 000000000..80689835b --- /dev/null +++ b/games/default/files/Decorations/ma_pops_furniture/models/FM_toilet_close.obj @@ -0,0 +1,231 @@ +# Blender v2.75 (sub 0) OBJ File: 'toilet.blend' +# www.blender.org +o Toilet_close_Cube.001 +v -0.216380 -0.364267 -0.195066 +v 0.230162 -0.364267 -0.195066 +v 0.230162 -0.364267 0.375364 +v -0.216380 -0.364267 0.375364 +v -0.216380 -0.503120 -0.195066 +v -0.216380 -0.503120 0.375364 +v 0.230162 -0.503120 0.375364 +v 0.230162 -0.503120 -0.195065 +v -0.026301 0.497050 0.418905 +v -0.099953 0.497050 0.418905 +v -0.099953 0.495923 0.354172 +v -0.026301 0.495923 0.354172 +v -0.099953 0.541235 0.418294 +v -0.099953 0.540108 0.353560 +v -0.026301 0.541235 0.418294 +v -0.026301 0.540108 0.353560 +v 0.332628 0.485120 0.489409 +v -0.318846 0.485120 0.489409 +v 0.332628 0.485120 0.286360 +v -0.318846 0.485120 0.286360 +v -0.318846 -0.032421 0.286360 +v 0.332628 -0.032421 0.286360 +v 0.332628 -0.367155 0.286360 +v -0.318846 -0.367155 0.286360 +v 0.332628 -0.032421 0.489409 +v -0.318846 -0.032421 0.489409 +v -0.318846 -0.367155 0.489409 +v 0.332628 -0.367155 0.489409 +v -0.318846 -0.032421 -0.334670 +v -0.318846 -0.367155 -0.334670 +v 0.332628 -0.032421 -0.334670 +v 0.332628 -0.367155 -0.334670 +v 0.074405 0.497050 0.418905 +v 0.000753 0.497050 0.418905 +v 0.000753 0.495923 0.354172 +v 0.074405 0.495923 0.354172 +v 0.000753 0.541235 0.418294 +v 0.000753 0.540108 0.353560 +v 0.074405 0.541235 0.418294 +v 0.074405 0.540108 0.353560 +v 0.298674 0.038404 0.235087 +v -0.290831 0.038404 0.235087 +v -0.290831 -0.026774 0.235208 +v 0.298674 -0.026774 0.235208 +v -0.290831 0.038576 -0.305720 +v -0.290831 -0.026603 -0.305600 +v 0.298674 0.038575 -0.305720 +v 0.298674 -0.026603 -0.305601 +v -0.230085 -0.040764 0.201747 +v 0.243868 -0.040764 0.201747 +v 0.243868 -0.040764 -0.250057 +v -0.230085 -0.040764 -0.250057 +v -0.230085 -0.318566 0.201747 +v 0.243867 -0.318566 0.201747 +v 0.163555 -0.203467 -0.206424 +v -0.149773 -0.203467 -0.206424 +vt 0.839078 0.324803 +vt -0.012876 0.324803 +vt -0.012876 0.991727 +vt 0.839077 0.991727 +vt -0.096533 0.324803 +vt -0.303914 0.324803 +vt -0.303914 0.991727 +vt -0.096533 0.991727 +vt 0.839078 -0.096533 +vt 0.839077 -0.303914 +vt -0.012876 -0.303914 +vt -0.012876 -0.096533 +vt -0.077905 0.608692 +vt -0.077905 0.498690 +vt 0.018775 0.498690 +vt 0.018775 0.608692 +vt -0.077905 1.189870 +vt -0.076993 1.255861 +vt 0.019689 1.254178 +vt 0.018775 1.188187 +vt -0.076993 0.498690 +vt -0.076993 0.608692 +vt 0.019689 0.608692 +vt 0.019689 0.498690 +vt 1.188187 0.608692 +vt 1.188187 0.498690 +vt 1.254178 0.498690 +vt 1.254178 0.608692 +vt 1.255861 0.608692 +vt 1.255861 0.498690 +vt 1.189870 0.498690 +vt 1.189870 0.608692 +vt 0.120055 1.144763 +vt 0.120055 0.171767 +vt -0.183205 0.171767 +vt -0.183205 1.144763 +vt -0.183205 0.399088 +vt 0.120055 0.399088 +vt 0.120055 -0.100846 +vt -0.183205 -0.100846 +vt 1.047581 0.399088 +vt 1.047581 -0.100846 +vt 0.246427 1.012196 +vt 0.246427 0.304334 +vt 0.399088 1.144763 +vt 0.399088 0.171767 +vt -0.100846 0.171767 +vt -0.100846 1.144763 +vt 1.047581 0.171767 +vt 1.047581 1.144763 +vt 0.120055 1.172052 +vt -0.183205 1.172052 +vt -0.077905 0.759099 +vt -0.077905 0.649098 +vt 0.018775 0.649098 +vt 0.018775 0.759099 +vt -0.076993 0.649098 +vt -0.076993 0.759099 +vt 0.019689 0.759099 +vt 0.019689 0.649098 +vt 1.188187 0.759099 +vt 1.188187 0.649098 +vt 1.254178 0.649098 +vt 1.254178 0.759099 +vt 1.255861 0.759099 +vt 1.255861 0.649098 +vt 1.189870 0.649098 +vt 1.189870 0.759099 +vt 1.172052 0.171767 +vt 1.172052 1.144763 +vt 0.921209 0.386628 +vt 0.246427 0.386628 +vt 0.246427 -0.028277 +vt 0.856042 0.143627 +vt 0.921209 0.304334 +vt 0.921209 1.012196 +vt 0.856042 0.892247 +vt 0.856042 0.424283 +vt 0.386628 1.012196 +vt 0.386628 0.304334 +vt 0.143627 0.424283 +vt 0.143627 0.892247 +vt -0.028277 1.012196 +vt -0.028277 0.304334 +vt 0.085590 0.552995 +vt 0.926569 0.552921 +vt 0.926318 0.442387 +vt 0.085337 0.442464 +vt 0.469592 0.001391 +vt 0.469592 1.001104 +vt 0.580109 1.001104 +vt 0.580109 0.001391 +vt 0.926615 0.799443 +vt 0.085637 0.800223 +vt 0.085291 0.689692 +vt 0.926271 0.688910 +vt 0.092622 1.001102 +vt 0.092622 0.001391 +vt 0.933506 0.001391 +vt 0.933506 1.001104 +vt 0.935429 1.001104 +vt 0.935429 0.001391 +vt 0.094547 0.001391 +vt 0.094547 1.001102 +vn 0.000000 1.000000 0.000000 +vn -0.000000 0.000000 1.000000 +vn -1.000000 0.000000 -0.000000 +vn 0.000000 -0.000000 -1.000000 +vn 1.000000 -0.000000 0.000000 +vn 0.000000 -0.999800 0.017400 +vn 0.000000 0.999800 -0.017400 +vn 0.000000 -0.013800 -0.999900 +vn 0.000000 0.013800 0.999900 +vn 0.000000 -1.000000 0.000000 +vn 0.000000 0.995200 -0.098100 +vn 0.975000 0.189300 0.116400 +vn 0.093600 0.995600 0.000000 +vn 0.000000 0.995200 0.098100 +vn -0.093600 0.995600 -0.000000 +vn -0.000000 0.962500 0.271400 +vn -0.975000 0.189300 0.116400 +vn -0.000000 0.259000 0.965900 +vn -0.000000 -0.001800 -1.000000 +vn -0.000000 -1.000000 -0.000300 +vn 0.000000 1.000000 0.000300 +g Toilet_close_Cube.001_White +s off +f 5/1/1 6/2/1 7/3/1 8/4/1 +f 1/5/2 5/6/2 8/7/2 2/8/2 +f 2/9/3 8/10/3 7/11/3 3/12/3 +f 3/8/4 7/7/4 6/6/4 4/5/4 +f 5/10/5 1/9/5 4/12/5 6/11/5 +f 9/13/6 10/14/6 11/15/6 12/16/6 +f 10/17/3 13/18/3 14/19/3 11/20/3 +f 13/21/7 15/22/7 16/23/7 14/24/7 +f 15/18/5 9/17/5 12/20/5 16/19/5 +f 12/25/8 11/26/8 14/27/8 16/28/8 +f 15/29/9 13/30/9 10/31/9 9/32/9 +f 19/33/1 20/34/1 18/35/1 17/36/1 +f 26/37/3 21/38/3 24/39/3 27/40/3 +f 31/41/5 22/38/5 23/39/5 32/42/5 +f 28/36/10 27/35/10 24/34/10 23/33/10 +f 21/34/11 22/33/11 50/43/11 49/44/11 +f 25/45/2 26/46/2 27/47/2 28/48/2 +f 21/38/3 29/41/3 30/42/3 24/39/3 +f 29/46/4 31/45/4 32/48/4 30/47/4 +f 22/38/5 25/37/5 28/40/5 23/39/5 +f 23/33/10 24/34/10 30/49/10 32/50/10 +f 25/37/5 22/38/5 19/51/5 17/52/5 +f 33/53/6 34/54/6 35/55/6 36/56/6 +f 34/17/3 37/18/3 38/19/3 35/20/3 +f 37/57/7 39/58/7 40/59/7 38/60/7 +f 39/18/5 33/17/5 36/20/5 40/19/5 +f 36/61/8 35/62/8 38/63/8 40/64/8 +f 39/65/9 37/66/9 34/67/9 33/68/9 +f 22/45/4 21/46/4 20/69/4 19/70/4 +f 21/38/3 26/37/3 18/52/3 20/51/3 +f 26/46/2 25/45/2 17/70/2 18/69/2 +f 52/71/12 49/72/12 53/73/12 56/74/12 +f 29/49/13 21/34/13 49/44/13 52/75/13 +f 31/50/14 29/49/14 52/75/14 51/76/14 +f 22/33/15 31/50/15 51/76/15 50/43/15 +f 55/77/16 56/78/16 53/44/16 54/43/16 +f 50/72/17 51/71/17 55/74/17 54/73/17 +f 51/79/18 52/80/18 56/81/18 55/82/18 +f 49/80/4 50/79/4 54/83/4 53/84/4 +g Toilet_close_Cube.001_Brown +f 42/85/3 45/86/3 46/87/3 43/88/3 +f 45/89/19 47/90/19 48/91/19 46/92/19 +f 47/93/5 41/94/5 44/95/5 48/96/5 +f 44/97/20 43/98/20 46/99/20 48/100/20 +f 47/101/21 45/102/21 42/103/21 41/104/21 diff --git a/games/default/files/Decorations/ma_pops_furniture/models/FM_toilet_open.obj b/games/default/files/Decorations/ma_pops_furniture/models/FM_toilet_open.obj new file mode 100644 index 000000000..c275f704a --- /dev/null +++ b/games/default/files/Decorations/ma_pops_furniture/models/FM_toilet_open.obj @@ -0,0 +1,230 @@ +# Blender v2.75 (sub 0) OBJ File: 'toilet.blend' +# www.blender.org +o Toilet_open_Cube.002 +v -0.216380 -0.364267 -0.195066 +v 0.230162 -0.364267 -0.195066 +v 0.230162 -0.364267 0.375364 +v -0.216380 -0.364267 0.375364 +v -0.216380 -0.503120 -0.195066 +v -0.216380 -0.503120 0.375364 +v 0.230162 -0.503120 0.375364 +v 0.230162 -0.503120 -0.195065 +v -0.026301 0.497050 0.418905 +v -0.099953 0.497050 0.418905 +v -0.099953 0.495923 0.354172 +v -0.026301 0.495923 0.354172 +v -0.099953 0.541235 0.418294 +v -0.099953 0.540108 0.353560 +v -0.026301 0.541235 0.418294 +v -0.026301 0.540108 0.353560 +v 0.332628 0.485120 0.489409 +v -0.318846 0.485120 0.489409 +v 0.332628 0.485120 0.286360 +v -0.318846 0.485120 0.286360 +v -0.318846 -0.032421 0.286360 +v 0.332628 -0.032421 0.286360 +v 0.332628 -0.367155 0.286360 +v -0.318846 -0.367155 0.286360 +v 0.332628 -0.032421 0.489409 +v -0.318846 -0.032421 0.489409 +v -0.318846 -0.367155 0.489409 +v 0.332628 -0.367155 0.489409 +v -0.318846 -0.032421 -0.334670 +v -0.318846 -0.367155 -0.334670 +v 0.332628 -0.032421 -0.334670 +v 0.332628 -0.367155 -0.334670 +v 0.074405 0.497050 0.418905 +v 0.000753 0.497050 0.418905 +v 0.000753 0.495923 0.354172 +v 0.074405 0.495923 0.354172 +v 0.000753 0.541235 0.418294 +v 0.000753 0.540108 0.353560 +v 0.074405 0.541235 0.418294 +v 0.074405 0.540108 0.353560 +v 0.298674 -0.026545 0.261491 +v -0.290831 -0.026545 0.261491 +v -0.290831 -0.027680 0.196323 +v 0.298674 -0.027680 0.196323 +v -0.290831 0.469302 0.253946 +v -0.290831 0.468168 0.188777 +v 0.298674 0.469302 0.253946 +v 0.298675 0.468168 0.188777 +v -0.230085 -0.040764 0.201747 +v 0.243868 -0.040764 0.201747 +v 0.243868 -0.040764 -0.250057 +v -0.230085 -0.040764 -0.250057 +v -0.230085 -0.318566 0.201747 +v 0.243867 -0.318566 0.201747 +v 0.163555 -0.203467 -0.206424 +v -0.149773 -0.203467 -0.206424 +vt 0.839078 0.324803 +vt -0.012876 0.324803 +vt -0.012876 0.991727 +vt 0.839077 0.991727 +vt -0.096533 0.324803 +vt -0.303914 0.324803 +vt -0.303914 0.991727 +vt -0.096533 0.991727 +vt 0.839078 -0.096533 +vt 0.839077 -0.303914 +vt -0.012876 -0.303914 +vt -0.012876 -0.096533 +vt -0.077905 0.608692 +vt -0.077905 0.498690 +vt 0.018775 0.498690 +vt 0.018775 0.608692 +vt -0.077905 1.189870 +vt -0.076993 1.255861 +vt 0.019689 1.254178 +vt 0.018775 1.188187 +vt -0.076993 0.498690 +vt -0.076993 0.608692 +vt 0.019689 0.608692 +vt 0.019689 0.498690 +vt 1.188187 0.608692 +vt 1.188187 0.498690 +vt 1.254178 0.498690 +vt 1.254178 0.608692 +vt 1.255861 0.608692 +vt 1.255861 0.498690 +vt 1.189870 0.498690 +vt 1.189870 0.608692 +vt 0.120055 1.144763 +vt 0.120055 0.171767 +vt -0.183205 0.171767 +vt -0.183205 1.144763 +vt -0.183205 0.399088 +vt 0.120055 0.399088 +vt 0.120055 -0.100846 +vt -0.183205 -0.100846 +vt 1.047581 0.399088 +vt 1.047581 -0.100846 +vt 0.246427 1.012196 +vt 0.246427 0.304334 +vt 0.399088 1.144763 +vt 0.399088 0.171767 +vt -0.100846 0.171767 +vt -0.100846 1.144763 +vt 1.047581 0.171767 +vt 1.047581 1.144763 +vt 0.120055 1.172052 +vt -0.183205 1.172052 +vt -0.077905 0.759099 +vt -0.077905 0.649098 +vt 0.018775 0.649098 +vt 0.018775 0.759099 +vt -0.076993 0.649098 +vt -0.076993 0.759099 +vt 0.019689 0.759099 +vt 0.019689 0.649098 +vt 1.188187 0.759099 +vt 1.188187 0.649098 +vt 1.254178 0.649098 +vt 1.254178 0.759099 +vt 1.255861 0.759099 +vt 1.255861 0.649098 +vt 1.189870 0.649098 +vt 1.189870 0.759099 +vt 1.172052 0.171767 +vt 1.172052 1.144763 +vt 0.921209 0.386628 +vt 0.246427 0.386628 +vt 0.246427 -0.028277 +vt 0.856042 0.143627 +vt 0.921209 0.304334 +vt 0.921209 1.012196 +vt 0.856042 0.892247 +vt 0.856042 0.424283 +vt 0.386628 1.012196 +vt 0.386628 0.304334 +vt 0.143627 0.424283 +vt 0.143627 0.892247 +vt -0.028277 1.012196 +vt -0.028277 0.304334 +vt 0.085590 0.552995 +vt 0.926569 0.552921 +vt 0.926318 0.442387 +vt 0.085337 0.442464 +vt 0.469592 0.001391 +vt 0.469592 1.001104 +vt 0.580109 1.001104 +vt 0.580109 0.001391 +vt 0.926615 0.799443 +vt 0.085637 0.800223 +vt 0.085291 0.689692 +vt 0.926271 0.688910 +vt 0.092622 1.001102 +vt 0.092622 0.001391 +vt 0.933506 0.001391 +vt 0.933506 1.001104 +vt 0.935429 1.001104 +vt 0.935429 0.001391 +vt 0.094547 0.001391 +vt 0.094547 1.001102 +vn 0.000000 1.000000 0.000000 +vn -0.000000 0.000000 1.000000 +vn -1.000000 0.000000 -0.000000 +vn 0.000000 -0.000000 -1.000000 +vn 1.000000 -0.000000 0.000000 +vn 0.000000 -0.999800 0.017400 +vn 0.000000 0.999800 -0.017400 +vn 0.000000 -0.013800 -0.999900 +vn 0.000000 0.013800 0.999900 +vn 0.000000 -1.000000 0.000000 +vn 0.000000 0.995200 -0.098100 +vn 0.975000 0.189300 0.116400 +vn 0.093600 0.995600 0.000000 +vn 0.000000 0.995200 0.098100 +vn -0.093600 0.995600 -0.000000 +vn -0.000000 0.962500 0.271400 +vn -0.975000 0.189300 0.116400 +vn -0.000000 0.259000 0.965900 +vn 0.000000 -0.015200 -0.999900 +vn -0.000000 0.015200 0.999900 +g Toilet_open_Cube.002_White +s off +f 5/1/1 6/2/1 7/3/1 8/4/1 +f 1/5/2 5/6/2 8/7/2 2/8/2 +f 2/9/3 8/10/3 7/11/3 3/12/3 +f 3/8/4 7/7/4 6/6/4 4/5/4 +f 5/10/5 1/9/5 4/12/5 6/11/5 +f 9/13/6 10/14/6 11/15/6 12/16/6 +f 10/17/3 13/18/3 14/19/3 11/20/3 +f 13/21/7 15/22/7 16/23/7 14/24/7 +f 15/18/5 9/17/5 12/20/5 16/19/5 +f 12/25/8 11/26/8 14/27/8 16/28/8 +f 15/29/9 13/30/9 10/31/9 9/32/9 +f 19/33/1 20/34/1 18/35/1 17/36/1 +f 26/37/3 21/38/3 24/39/3 27/40/3 +f 31/41/5 22/38/5 23/39/5 32/42/5 +f 28/36/10 27/35/10 24/34/10 23/33/10 +f 21/34/11 22/33/11 50/43/11 49/44/11 +f 25/45/2 26/46/2 27/47/2 28/48/2 +f 21/38/3 29/41/3 30/42/3 24/39/3 +f 29/46/4 31/45/4 32/48/4 30/47/4 +f 22/38/5 25/37/5 28/40/5 23/39/5 +f 23/33/10 24/34/10 30/49/10 32/50/10 +f 25/37/5 22/38/5 19/51/5 17/52/5 +f 33/53/6 34/54/6 35/55/6 36/56/6 +f 34/17/3 37/18/3 38/19/3 35/20/3 +f 37/57/7 39/58/7 40/59/7 38/60/7 +f 39/18/5 33/17/5 36/20/5 40/19/5 +f 36/61/8 35/62/8 38/63/8 40/64/8 +f 39/65/9 37/66/9 34/67/9 33/68/9 +f 22/45/4 21/46/4 20/69/4 19/70/4 +f 21/38/3 26/37/3 18/52/3 20/51/3 +f 26/46/2 25/45/2 17/70/2 18/69/2 +f 52/71/12 49/72/12 53/73/12 56/74/12 +f 29/49/13 21/34/13 49/44/13 52/75/13 +f 31/50/14 29/49/14 52/75/14 51/76/14 +f 22/33/15 31/50/15 51/76/15 50/43/15 +f 55/77/16 56/78/16 53/44/16 54/43/16 +f 50/72/17 51/71/17 55/74/17 54/73/17 +f 51/79/18 52/80/18 56/81/18 55/82/18 +f 49/80/4 50/79/4 54/83/4 53/84/4 +g Toilet_open_Cube.002_Brown +f 42/85/3 45/86/3 46/87/3 43/88/3 +f 45/89/7 47/90/7 48/91/7 46/92/7 +f 47/93/5 41/94/5 44/95/5 48/96/5 +f 44/97/19 43/98/19 46/99/19 48/100/19 +f 47/101/20 45/102/20 42/103/20 41/104/20 diff --git a/games/default/files/Decorations/ma_pops_furniture/models/FM_tv.obj b/games/default/files/Decorations/ma_pops_furniture/models/FM_tv.obj new file mode 100644 index 000000000..6947528ae --- /dev/null +++ b/games/default/files/Decorations/ma_pops_furniture/models/FM_tv.obj @@ -0,0 +1,137 @@ +# Blender v2.78 (sub 0) OBJ File: '' +# www.blender.org +mtllib FM_tv.mtl +o Cube_Cube.001_Body_Cube_Cube.001_Body_body +v -0.450000 0.400000 0.200000 +v -0.450000 0.400000 -0.500000 +v -0.450000 -0.500000 -0.500000 +v -0.450000 -0.500000 0.200000 +v 0.450000 0.400000 -0.500000 +v 0.450000 -0.500000 -0.500000 +v 0.360000 -0.410000 -0.500000 +v 0.360000 0.310000 -0.500000 +v 0.450000 0.400000 0.200000 +v 0.450000 -0.500000 0.200000 +v -0.300000 0.220000 0.200000 +v 0.300000 0.220000 0.200000 +v -0.300000 0.220000 0.458106 +v 0.300000 0.220000 0.458106 +v 0.300000 -0.320000 0.200000 +v -0.300000 -0.320000 0.200000 +v -0.300000 -0.320000 0.458106 +v 0.300000 -0.320000 0.458106 +v -0.360000 -0.410000 -0.500000 +v -0.360000 0.310000 -0.500000 +v -0.360000 0.310000 -0.457433 +v -0.360000 -0.410000 -0.457433 +v 0.360000 -0.410000 -0.457433 +v 0.360000 0.310000 -0.457433 +vt 0.9999 0.0001 +vt 0.9999 0.7777 +vt 0.0001 0.7777 +vt 0.0001 0.0001 +vt 0.9999 0.0001 +vt 0.9999 0.9999 +vt 0.8999 0.8999 +vt 0.8999 0.1001 +vt 0.9999 0.7777 +vt 0.0001 0.7777 +vt 0.0001 0.0001 +vt 0.9999 0.9999 +vt 0.0001 0.9999 +vt 0.1667 0.7999 +vt 0.8333 0.7999 +vt 0.0001 0.7777 +vt 0.0001 0.0001 +vt 0.9999 0.0001 +vt 0.9999 0.7777 +vt 0.9999 0.0001 +vt 0.9999 0.7777 +vt 0.0001 0.7777 +vt 0.0001 0.0001 +vt 0.9999 0.4302 +vt 0.0001 0.4302 +vt 0.0001 0.0001 +vt 0.9999 0.0001 +vt 0.9999 0.0001 +vt 0.8333 0.2001 +vt 0.1667 0.2001 +vt 0.9999 0.8999 +vt 0.0001 0.8999 +vt 0.0001 0.0001 +vt 0.9999 0.0001 +vt 0.9999 0.4780 +vt 0.0001 0.4780 +vt 0.9999 0.0001 +vt 0.0001 0.0001 +vt 0.9999 0.0001 +vt 0.9999 0.4302 +vt 0.0001 0.4302 +vt 0.0001 0.0001 +vt 0.9999 0.0001 +vt 0.9999 0.4780 +vt 0.0001 0.4780 +vt 0.0000 0.0000 +vt 1.0000 0.0000 +vt 1.0000 0.0591 +vt 0.0000 0.0591 +vt 0.0001 0.9999 +vt 0.1001 0.8999 +vt 0.0001 0.0001 +vt 0.1001 0.1001 +vt 1.0000 0.0591 +vt 0.0000 0.0591 +vt 0.0000 0.0000 +vt 1.0000 0.0000 +vt 0.0000 0.0000 +vt 1.0000 0.0000 +vt 1.0000 0.0591 +vt 0.0000 0.0591 +vt 1.0000 0.0591 +vt 0.0000 0.0591 +vt 0.0000 0.0000 +vt 1.0000 0.0000 +vn -1.0000 0.0000 0.0000 +vn 0.0000 0.0000 -1.0000 +vn 1.0000 0.0000 0.0000 +vn 0.0000 -0.0000 1.0000 +vn 0.0000 -1.0000 -0.0000 +vn 0.0000 1.0000 0.0000 +g Cube_Cube.001_Body_Cube_Cube.001_Body_body_Cube_Cube.001_Body_Cube_Cube.001_Body_body_body +usemtl body +s 1 +f 1/1/1 2/2/1 3/3/1 4/4/1 +f 5/5/2 6/6/2 7/7/2 8/8/2 +f 5/5/3 9/9/3 10/10/3 6/11/3 +f 9/12/4 1/13/4 11/14/4 12/15/4 +f 4/16/5 3/17/5 6/18/5 10/19/5 +f 9/20/6 5/21/6 2/22/6 1/23/6 +f 12/24/6 11/25/6 13/26/6 14/27/6 +f 10/28/4 9/12/4 12/15/4 15/29/4 +f 1/13/4 4/4/4 16/30/4 11/14/4 +f 4/4/4 10/28/4 15/29/4 16/30/4 +f 14/31/4 13/32/4 17/33/4 18/34/4 +f 11/35/1 16/36/1 17/33/1 13/37/1 +f 16/38/5 15/39/5 18/40/5 17/41/5 +f 15/42/3 12/43/3 14/44/3 18/45/3 +f 19/46/3 20/47/3 21/48/3 22/49/3 +f 6/6/2 3/50/2 19/51/2 7/7/2 +f 2/52/2 5/5/2 8/8/2 20/53/2 +f 3/50/2 2/52/2 20/53/2 19/51/2 +f 7/54/6 19/55/6 22/56/6 23/57/6 +f 20/58/5 8/59/5 24/60/5 21/61/5 +f 8/62/1 7/63/1 23/64/1 24/65/1 +o Cube_Cube.001_Screen_Cube_Cube.001_Screen_screen.001 +v -0.360000 0.310000 -0.457433 +v 0.360000 0.310000 -0.457433 +v 0.360000 -0.410000 -0.457433 +v -0.360000 -0.410000 -0.457433 +vt 1.0000 1.0000 +vt 0.0000 1.0000 +vt -0.0000 0.0000 +vt 1.0000 -0.0000 +vn 0.0000 0.0000 -1.0000 +g Cube_Cube.001_Screen_Cube_Cube.001_Screen_screen.001_Cube_Cube.001_Screen_Cube_Cube.001_Screen_screen.001_screen.001 +usemtl screen.001 +s 1 +f 25/66/7 26/67/7 27/68/7 28/69/7 diff --git a/games/default/files/Decorations/ma_pops_furniture/nodes.lua b/games/default/files/Decorations/ma_pops_furniture/nodes.lua new file mode 100644 index 000000000..61400520a --- /dev/null +++ b/games/default/files/Decorations/ma_pops_furniture/nodes.lua @@ -0,0 +1,139 @@ + +-- Chair + +local chair_table = { --name, material, invimg, colour + +{'White Chair', 'white', 'color_white.png', color4}, +{'Black Chair', 'black', 'color_black.png', color1}, +{'Red Chair', 'red', 'color_red.png', color6}, +{'Orange Chair', 'orange', 'color_orange.png', color5}, +{'Yellow Chair', 'yellow', 'color_yellow.png', color7}, +{'Pink Chair', 'pink', 'color_pink.png', color8}, +{'Green Chair', 'green', 'color_green.png', color3}, +{'Blue Chair', 'blue', 'color_blue.png', color2}, + +} + +for i in ipairs (chair_table) do + local name = chair_table[i][1] + local material = chair_table[i][2] + local invimg = chair_table[i][3] + local colour = chair_table[i][4] + +minetest.register_node('ma_pops_furniture:chair_'..material, { + description = name, + drawtype = 'nodebox', + wield_image = "color_handwhite.png^(color_handwhite2.png^[colorize:#"..colour..":70)", + wield_scale = {x=1,y=1,z=0.5}, + inventory_image = "chair.png^[colorize:#"..colour..":70", + tiles = {"color_white.png^[colorize:#"..colour..":70"}, + groups = {choppy=2, oddly_breakably_by_hand=2, furniture=1, flammable=1}, + paramtype = 'light', + paramtype2 = 'facedir', + sounds = default.node_sound_wood_defaults(), + + node_box = { + type = "fixed", + fixed = { + {-0.375, -0.5, -0.4375, -0.1875, 0, -0.25}, -- NodeBox1 + {-0.375, -0.5, 0.25, -0.1875, 0, 0.4375}, -- NodeBox2 + {0.1875, -0.5, 0.25, 0.375, 0, 0.4375}, -- NodeBox3 + {0.1875, -0.5, -0.4375, 0.375, 0, -0.25}, -- NodeBox4 + {-0.375, 0, -0.4375, 0.375, 0.1875, 0.4375}, -- NodeBox5 + {-0.375, 0.1875, 0.3125, 0.375, 0.875, 0.4375}, -- NodeBox6 + } + } +}) +end + +-- Table + +local table_table = { --name, material, invimg, colour + +{'White Table', 'white', 'color_white.png', color4}, +{'Black Table', 'black', 'color_black.png', color1}, +{'Red Table', 'red', 'color_red.png', color6}, +{'Orange Table', 'orange', 'color_orange.png', color5}, +{'Yellow Table', 'yellow', 'color_yellow.png', color7}, +{'Pink Table', 'pink', 'color_pink.png', color8}, +{'Green Table', 'green', 'color_green.png', color3}, +{'Blue Table', 'blue', 'color_blue.png', color2}, + +} + +for i in ipairs (table_table) do + local name = table_table[i][1] + local material = table_table[i][2] + local invimg = table_table[i][3] + local colour = table_table[i][4] + +minetest.register_node('ma_pops_furniture:table_'..material, { + description = name, + wield_image = "color_handwhite.png^(color_handwhite2.png^[colorize:#"..colour..":70)", + wield_scale = {x=1,y=1,z=0.5}, + inventory_image = "table.png^[colorize:#"..colour..":70", + drawtype = 'nodebox', + tiles = {"color_white.png^[colorize:#"..colour..":70"}, + groups = {snappy = 2, oddly_breakable_by_hand = 2, furniture = 1, flammable = 1}, + paramtype = 'light', + paramtype2 = 'facedir', + sounds = default.node_sound_wood_defaults(), + node_box = { + type = "fixed", + fixed = { + {-0.125, -0.5, -0.125, 0.125, 0.3125, 0.125}, -- NodeBox2 + {-0.5, 0.3125, -0.5, 0.5, 0.5, 0.5}, -- NodeBox3 + } + } +}) +end + +-- Chair + +local chair2_table = { --name, material, invimg, colour + +{'White Sofa', 'white', 'color_white.png', color4}, +{'Black Sofa', 'black', 'color_black.png', color1}, +{'Red Sofa', 'red', 'color_red.png', color6}, +{'Orange Sofa', 'orange', 'color_orange.png', color5}, +{'Yellow Sofa', 'yellow', 'color_yellow.png', color7}, +{'Pink Sofa', 'pink', 'color_pink.png', color8}, +{'Green Sofa', 'green', 'color_green.png', color3}, +{'Blue Sofa', 'blue', 'color_blue.png', color2}, + +} + +for i in ipairs (chair2_table) do + local name = chair2_table[i][1] + local material = chair2_table[i][2] + local invimg = chair2_table[i][3] + local colour = chair2_table[i][4] + +minetest.register_node('ma_pops_furniture:chair2_'..material, { + description = name, + drawtype = 'nodebox', + wield_image = "color_handwhite.png^(color_handwhite2.png^[colorize:#"..colour..":70)", + wield_scale = {x=1,y=1,z=0.5}, + inventory_image = "sofas.png^[colorize:#"..colour..":70", + tiles = {"color_white.png^[colorize:#"..colour..":70"}, + groups = {choppy=2, oddly_breakably_by_hand=2, furniture=1, flammable=1}, + paramtype = 'light', + paramtype2 = 'facedir', + sounds = default.node_sound_wood_defaults(), + + node_box = { + type = "fixed", + fixed = { + {-0.4, -0.5, -0.4, -0.3, -0.4, -0.3}, + {-0.4, -0.5, 0.4, -0.3, -0.4, 0.3}, + {0.4, -0.5, 0.4, 0.3, -0.4, 0.3}, + {0.4, -0.5, -0.4, 0.3, -0.4, -0.3}, + ----------------------------------- + {-0.450, -0.4, -0.450, 0.450, 0.1, 0.450}, + {-0.5, 0.1, -0.5, -0.3, 0.3, 0.0}, + {0.5, 0.1, -0.5, 0.3, 0.3, 0.0}, + {0.450, 0.1, -0.0, -0.450, 0.5, 0.450}, + }, + } +}) +end diff --git a/games/default/files/Decorations/ma_pops_furniture/sounds/mp_blast.ogg b/games/default/files/Decorations/ma_pops_furniture/sounds/mp_blast.ogg new file mode 100644 index 000000000..ff19a2e96 Binary files /dev/null and b/games/default/files/Decorations/ma_pops_furniture/sounds/mp_blast.ogg differ diff --git a/games/default/files/Decorations/ma_pops_furniture/sounds/mp_glass.ogg b/games/default/files/Decorations/ma_pops_furniture/sounds/mp_glass.ogg new file mode 100644 index 000000000..393cc3742 Binary files /dev/null and b/games/default/files/Decorations/ma_pops_furniture/sounds/mp_glass.ogg differ diff --git a/games/default/files/Decorations/ma_pops_furniture/sounds/mp_radio_static.ogg b/games/default/files/Decorations/ma_pops_furniture/sounds/mp_radio_static.ogg new file mode 100644 index 000000000..08ddc599c Binary files /dev/null and b/games/default/files/Decorations/ma_pops_furniture/sounds/mp_radio_static.ogg differ diff --git a/games/default/files/Decorations/ma_pops_furniture/sounds/mp_rainbow.ogg b/games/default/files/Decorations/ma_pops_furniture/sounds/mp_rainbow.ogg new file mode 100644 index 000000000..b7296880a Binary files /dev/null and b/games/default/files/Decorations/ma_pops_furniture/sounds/mp_rainbow.ogg differ diff --git a/games/default/files/Decorations/ma_pops_furniture/sounds/mp_smoke_detector.ogg b/games/default/files/Decorations/ma_pops_furniture/sounds/mp_smoke_detector.ogg new file mode 100644 index 000000000..006712507 Binary files /dev/null and b/games/default/files/Decorations/ma_pops_furniture/sounds/mp_smoke_detector.ogg differ diff --git a/games/default/files/Decorations/ma_pops_furniture/sounds/mp_static.ogg b/games/default/files/Decorations/ma_pops_furniture/sounds/mp_static.ogg new file mode 100644 index 000000000..08ddc599c Binary files /dev/null and b/games/default/files/Decorations/ma_pops_furniture/sounds/mp_static.ogg differ diff --git a/games/default/files/Decorations/ma_pops_furniture/textures/breadslice.png b/games/default/files/Decorations/ma_pops_furniture/textures/breadslice.png new file mode 100644 index 000000000..2d04ab035 Binary files /dev/null and b/games/default/files/Decorations/ma_pops_furniture/textures/breadslice.png differ diff --git a/games/default/files/Decorations/ma_pops_furniture/textures/mp_TV.png b/games/default/files/Decorations/ma_pops_furniture/textures/mp_TV.png new file mode 100644 index 000000000..f648d02ed Binary files /dev/null and b/games/default/files/Decorations/ma_pops_furniture/textures/mp_TV.png differ diff --git a/games/default/files/Decorations/ma_pops_furniture/textures/mp_b.png b/games/default/files/Decorations/ma_pops_furniture/textures/mp_b.png new file mode 100644 index 000000000..ef031a8f7 Binary files /dev/null and b/games/default/files/Decorations/ma_pops_furniture/textures/mp_b.png differ diff --git a/games/default/files/Decorations/ma_pops_furniture/textures/mp_blinds.png b/games/default/files/Decorations/ma_pops_furniture/textures/mp_blinds.png new file mode 100644 index 000000000..e70f95c57 Binary files /dev/null and b/games/default/files/Decorations/ma_pops_furniture/textures/mp_blinds.png differ diff --git a/games/default/files/Decorations/ma_pops_furniture/textures/mp_breadslice.png b/games/default/files/Decorations/ma_pops_furniture/textures/mp_breadslice.png new file mode 100644 index 000000000..2d04ab035 Binary files /dev/null and b/games/default/files/Decorations/ma_pops_furniture/textures/mp_breadslice.png differ diff --git a/games/default/files/Decorations/ma_pops_furniture/textures/mp_camp_back.png b/games/default/files/Decorations/ma_pops_furniture/textures/mp_camp_back.png new file mode 100644 index 000000000..c4fd041ac Binary files /dev/null and b/games/default/files/Decorations/ma_pops_furniture/textures/mp_camp_back.png differ diff --git a/games/default/files/Decorations/ma_pops_furniture/textures/mp_camp_bottom.png b/games/default/files/Decorations/ma_pops_furniture/textures/mp_camp_bottom.png new file mode 100644 index 000000000..583ed9f29 Binary files /dev/null and b/games/default/files/Decorations/ma_pops_furniture/textures/mp_camp_bottom.png differ diff --git a/games/default/files/Decorations/ma_pops_furniture/textures/mp_camp_front.png b/games/default/files/Decorations/ma_pops_furniture/textures/mp_camp_front.png new file mode 100644 index 000000000..ffe77e24a Binary files /dev/null and b/games/default/files/Decorations/ma_pops_furniture/textures/mp_camp_front.png differ diff --git a/games/default/files/Decorations/ma_pops_furniture/textures/mp_camp_left.png b/games/default/files/Decorations/ma_pops_furniture/textures/mp_camp_left.png new file mode 100644 index 000000000..c4fd041ac Binary files /dev/null and b/games/default/files/Decorations/ma_pops_furniture/textures/mp_camp_left.png differ diff --git a/games/default/files/Decorations/ma_pops_furniture/textures/mp_camp_right.png b/games/default/files/Decorations/ma_pops_furniture/textures/mp_camp_right.png new file mode 100644 index 000000000..c4fd041ac Binary files /dev/null and b/games/default/files/Decorations/ma_pops_furniture/textures/mp_camp_right.png differ diff --git a/games/default/files/Decorations/ma_pops_furniture/textures/mp_camp_top.png b/games/default/files/Decorations/ma_pops_furniture/textures/mp_camp_top.png new file mode 100644 index 000000000..1d32af198 Binary files /dev/null and b/games/default/files/Decorations/ma_pops_furniture/textures/mp_camp_top.png differ diff --git a/games/default/files/Decorations/ma_pops_furniture/textures/mp_cb.png b/games/default/files/Decorations/ma_pops_furniture/textures/mp_cb.png new file mode 100644 index 000000000..adc15a981 Binary files /dev/null and b/games/default/files/Decorations/ma_pops_furniture/textures/mp_cb.png differ diff --git a/games/default/files/Decorations/ma_pops_furniture/textures/mp_ceiling_light_bottom.png b/games/default/files/Decorations/ma_pops_furniture/textures/mp_ceiling_light_bottom.png new file mode 100644 index 000000000..b037fb003 Binary files /dev/null and b/games/default/files/Decorations/ma_pops_furniture/textures/mp_ceiling_light_bottom.png differ diff --git a/games/default/files/Decorations/ma_pops_furniture/textures/mp_ceiling_light_side.png b/games/default/files/Decorations/ma_pops_furniture/textures/mp_ceiling_light_side.png new file mode 100644 index 000000000..492a802da Binary files /dev/null and b/games/default/files/Decorations/ma_pops_furniture/textures/mp_ceiling_light_side.png differ diff --git a/games/default/files/Decorations/ma_pops_furniture/textures/mp_cf.png b/games/default/files/Decorations/ma_pops_furniture/textures/mp_cf.png new file mode 100644 index 000000000..62240454c Binary files /dev/null and b/games/default/files/Decorations/ma_pops_furniture/textures/mp_cf.png differ diff --git a/games/default/files/Decorations/ma_pops_furniture/textures/mp_chair_acacia_wood.png b/games/default/files/Decorations/ma_pops_furniture/textures/mp_chair_acacia_wood.png new file mode 100644 index 000000000..3987e3f11 Binary files /dev/null and b/games/default/files/Decorations/ma_pops_furniture/textures/mp_chair_acacia_wood.png differ diff --git a/games/default/files/Decorations/ma_pops_furniture/textures/mp_chair_aspen_wood.png b/games/default/files/Decorations/ma_pops_furniture/textures/mp_chair_aspen_wood.png new file mode 100644 index 000000000..9bb710694 Binary files /dev/null and b/games/default/files/Decorations/ma_pops_furniture/textures/mp_chair_aspen_wood.png differ diff --git a/games/default/files/Decorations/ma_pops_furniture/textures/mp_chair_junglewood.png b/games/default/files/Decorations/ma_pops_furniture/textures/mp_chair_junglewood.png new file mode 100644 index 000000000..9ee3ae80b Binary files /dev/null and b/games/default/files/Decorations/ma_pops_furniture/textures/mp_chair_junglewood.png differ diff --git a/games/default/files/Decorations/ma_pops_furniture/textures/mp_chair_pine_wood.png b/games/default/files/Decorations/ma_pops_furniture/textures/mp_chair_pine_wood.png new file mode 100644 index 000000000..779c49bdb Binary files /dev/null and b/games/default/files/Decorations/ma_pops_furniture/textures/mp_chair_pine_wood.png differ diff --git a/games/default/files/Decorations/ma_pops_furniture/textures/mp_chair_stone.png b/games/default/files/Decorations/ma_pops_furniture/textures/mp_chair_stone.png new file mode 100644 index 000000000..1c085ec77 Binary files /dev/null and b/games/default/files/Decorations/ma_pops_furniture/textures/mp_chair_stone.png differ diff --git a/games/default/files/Decorations/ma_pops_furniture/textures/mp_chair_wood.png b/games/default/files/Decorations/ma_pops_furniture/textures/mp_chair_wood.png new file mode 100644 index 000000000..c8371a74e Binary files /dev/null and b/games/default/files/Decorations/ma_pops_furniture/textures/mp_chair_wood.png differ diff --git a/games/default/files/Decorations/ma_pops_furniture/textures/mp_channel_blast.png b/games/default/files/Decorations/ma_pops_furniture/textures/mp_channel_blast.png new file mode 100644 index 000000000..0361c1063 Binary files /dev/null and b/games/default/files/Decorations/ma_pops_furniture/textures/mp_channel_blast.png differ diff --git a/games/default/files/Decorations/ma_pops_furniture/textures/mp_channel_cube.png b/games/default/files/Decorations/ma_pops_furniture/textures/mp_channel_cube.png new file mode 100644 index 000000000..eaf02a4b4 Binary files /dev/null and b/games/default/files/Decorations/ma_pops_furniture/textures/mp_channel_cube.png differ diff --git a/games/default/files/Decorations/ma_pops_furniture/textures/mp_channel_rainbow.png b/games/default/files/Decorations/ma_pops_furniture/textures/mp_channel_rainbow.png new file mode 100644 index 000000000..2a5d59b1d Binary files /dev/null and b/games/default/files/Decorations/ma_pops_furniture/textures/mp_channel_rainbow.png differ diff --git a/games/default/files/Decorations/ma_pops_furniture/textures/mp_channel_static.png b/games/default/files/Decorations/ma_pops_furniture/textures/mp_channel_static.png new file mode 100644 index 000000000..fc2bd6b07 Binary files /dev/null and b/games/default/files/Decorations/ma_pops_furniture/textures/mp_channel_static.png differ diff --git a/games/default/files/Decorations/ma_pops_furniture/textures/mp_cof_back.png b/games/default/files/Decorations/ma_pops_furniture/textures/mp_cof_back.png new file mode 100644 index 000000000..82b10902f Binary files /dev/null and b/games/default/files/Decorations/ma_pops_furniture/textures/mp_cof_back.png differ diff --git a/games/default/files/Decorations/ma_pops_furniture/textures/mp_cof_bottom.png b/games/default/files/Decorations/ma_pops_furniture/textures/mp_cof_bottom.png new file mode 100644 index 000000000..d7d6694dc Binary files /dev/null and b/games/default/files/Decorations/ma_pops_furniture/textures/mp_cof_bottom.png differ diff --git a/games/default/files/Decorations/ma_pops_furniture/textures/mp_cof_front.png b/games/default/files/Decorations/ma_pops_furniture/textures/mp_cof_front.png new file mode 100644 index 000000000..c61d8a655 Binary files /dev/null and b/games/default/files/Decorations/ma_pops_furniture/textures/mp_cof_front.png differ diff --git a/games/default/files/Decorations/ma_pops_furniture/textures/mp_cof_left.png b/games/default/files/Decorations/ma_pops_furniture/textures/mp_cof_left.png new file mode 100644 index 000000000..f393481e5 Binary files /dev/null and b/games/default/files/Decorations/ma_pops_furniture/textures/mp_cof_left.png differ diff --git a/games/default/files/Decorations/ma_pops_furniture/textures/mp_cof_right.png b/games/default/files/Decorations/ma_pops_furniture/textures/mp_cof_right.png new file mode 100644 index 000000000..6fb4f61fc Binary files /dev/null and b/games/default/files/Decorations/ma_pops_furniture/textures/mp_cof_right.png differ diff --git a/games/default/files/Decorations/ma_pops_furniture/textures/mp_cof_top.png b/games/default/files/Decorations/ma_pops_furniture/textures/mp_cof_top.png new file mode 100644 index 000000000..c975c9999 Binary files /dev/null and b/games/default/files/Decorations/ma_pops_furniture/textures/mp_cof_top.png differ diff --git a/games/default/files/Decorations/ma_pops_furniture/textures/mp_corn_r_back.png b/games/default/files/Decorations/ma_pops_furniture/textures/mp_corn_r_back.png new file mode 100644 index 000000000..e43af6376 Binary files /dev/null and b/games/default/files/Decorations/ma_pops_furniture/textures/mp_corn_r_back.png differ diff --git a/games/default/files/Decorations/ma_pops_furniture/textures/mp_corn_r_bottom.png b/games/default/files/Decorations/ma_pops_furniture/textures/mp_corn_r_bottom.png new file mode 100644 index 000000000..57c13597f Binary files /dev/null and b/games/default/files/Decorations/ma_pops_furniture/textures/mp_corn_r_bottom.png differ diff --git a/games/default/files/Decorations/ma_pops_furniture/textures/mp_corn_r_front.png b/games/default/files/Decorations/ma_pops_furniture/textures/mp_corn_r_front.png new file mode 100644 index 000000000..7ddcf2873 Binary files /dev/null and b/games/default/files/Decorations/ma_pops_furniture/textures/mp_corn_r_front.png differ diff --git a/games/default/files/Decorations/ma_pops_furniture/textures/mp_corn_r_left.png b/games/default/files/Decorations/ma_pops_furniture/textures/mp_corn_r_left.png new file mode 100644 index 000000000..7ddcf2873 Binary files /dev/null and b/games/default/files/Decorations/ma_pops_furniture/textures/mp_corn_r_left.png differ diff --git a/games/default/files/Decorations/ma_pops_furniture/textures/mp_corn_r_right.png b/games/default/files/Decorations/ma_pops_furniture/textures/mp_corn_r_right.png new file mode 100644 index 000000000..7ddcf2873 Binary files /dev/null and b/games/default/files/Decorations/ma_pops_furniture/textures/mp_corn_r_right.png differ diff --git a/games/default/files/Decorations/ma_pops_furniture/textures/mp_corn_r_top.png b/games/default/files/Decorations/ma_pops_furniture/textures/mp_corn_r_top.png new file mode 100644 index 000000000..f385e5e8e Binary files /dev/null and b/games/default/files/Decorations/ma_pops_furniture/textures/mp_corn_r_top.png differ diff --git a/games/default/files/Decorations/ma_pops_furniture/textures/mp_curtainb.png b/games/default/files/Decorations/ma_pops_furniture/textures/mp_curtainb.png new file mode 100644 index 000000000..72d5c62c9 Binary files /dev/null and b/games/default/files/Decorations/ma_pops_furniture/textures/mp_curtainb.png differ diff --git a/games/default/files/Decorations/ma_pops_furniture/textures/mp_curtains.png b/games/default/files/Decorations/ma_pops_furniture/textures/mp_curtains.png new file mode 100644 index 000000000..ed1991da8 Binary files /dev/null and b/games/default/files/Decorations/ma_pops_furniture/textures/mp_curtains.png differ diff --git a/games/default/files/Decorations/ma_pops_furniture/textures/mp_cutting_board.png b/games/default/files/Decorations/ma_pops_furniture/textures/mp_cutting_board.png new file mode 100644 index 000000000..fb9946e4d Binary files /dev/null and b/games/default/files/Decorations/ma_pops_furniture/textures/mp_cutting_board.png differ diff --git a/games/default/files/Decorations/ma_pops_furniture/textures/mp_db_bottom.png b/games/default/files/Decorations/ma_pops_furniture/textures/mp_db_bottom.png new file mode 100644 index 000000000..d14e2a03b Binary files /dev/null and b/games/default/files/Decorations/ma_pops_furniture/textures/mp_db_bottom.png differ diff --git a/games/default/files/Decorations/ma_pops_furniture/textures/mp_db_front.png b/games/default/files/Decorations/ma_pops_furniture/textures/mp_db_front.png new file mode 100644 index 000000000..d52b19e52 Binary files /dev/null and b/games/default/files/Decorations/ma_pops_furniture/textures/mp_db_front.png differ diff --git a/games/default/files/Decorations/ma_pops_furniture/textures/mp_db_left.png b/games/default/files/Decorations/ma_pops_furniture/textures/mp_db_left.png new file mode 100644 index 000000000..f607f6895 Binary files /dev/null and b/games/default/files/Decorations/ma_pops_furniture/textures/mp_db_left.png differ diff --git a/games/default/files/Decorations/ma_pops_furniture/textures/mp_db_right.png b/games/default/files/Decorations/ma_pops_furniture/textures/mp_db_right.png new file mode 100644 index 000000000..b1c2aac2a Binary files /dev/null and b/games/default/files/Decorations/ma_pops_furniture/textures/mp_db_right.png differ diff --git a/games/default/files/Decorations/ma_pops_furniture/textures/mp_db_top.png b/games/default/files/Decorations/ma_pops_furniture/textures/mp_db_top.png new file mode 100644 index 000000000..183e0b6eb Binary files /dev/null and b/games/default/files/Decorations/ma_pops_furniture/textures/mp_db_top.png differ diff --git a/games/default/files/Decorations/ma_pops_furniture/textures/mp_dw_back.png b/games/default/files/Decorations/ma_pops_furniture/textures/mp_dw_back.png new file mode 100644 index 000000000..3f9b1741b Binary files /dev/null and b/games/default/files/Decorations/ma_pops_furniture/textures/mp_dw_back.png differ diff --git a/games/default/files/Decorations/ma_pops_furniture/textures/mp_dw_bottom.png b/games/default/files/Decorations/ma_pops_furniture/textures/mp_dw_bottom.png new file mode 100644 index 000000000..cd294782a Binary files /dev/null and b/games/default/files/Decorations/ma_pops_furniture/textures/mp_dw_bottom.png differ diff --git a/games/default/files/Decorations/ma_pops_furniture/textures/mp_dw_front.png b/games/default/files/Decorations/ma_pops_furniture/textures/mp_dw_front.png new file mode 100644 index 000000000..f16cfc104 Binary files /dev/null and b/games/default/files/Decorations/ma_pops_furniture/textures/mp_dw_front.png differ diff --git a/games/default/files/Decorations/ma_pops_furniture/textures/mp_dw_left.png b/games/default/files/Decorations/ma_pops_furniture/textures/mp_dw_left.png new file mode 100644 index 000000000..70d9bb198 Binary files /dev/null and b/games/default/files/Decorations/ma_pops_furniture/textures/mp_dw_left.png differ diff --git a/games/default/files/Decorations/ma_pops_furniture/textures/mp_dw_right.png b/games/default/files/Decorations/ma_pops_furniture/textures/mp_dw_right.png new file mode 100644 index 000000000..c13735187 Binary files /dev/null and b/games/default/files/Decorations/ma_pops_furniture/textures/mp_dw_right.png differ diff --git a/games/default/files/Decorations/ma_pops_furniture/textures/mp_dw_top.png b/games/default/files/Decorations/ma_pops_furniture/textures/mp_dw_top.png new file mode 100644 index 000000000..6737b5159 Binary files /dev/null and b/games/default/files/Decorations/ma_pops_furniture/textures/mp_dw_top.png differ diff --git a/games/default/files/Decorations/ma_pops_furniture/textures/mp_enc_back.png b/games/default/files/Decorations/ma_pops_furniture/textures/mp_enc_back.png new file mode 100644 index 000000000..16168df40 Binary files /dev/null and b/games/default/files/Decorations/ma_pops_furniture/textures/mp_enc_back.png differ diff --git a/games/default/files/Decorations/ma_pops_furniture/textures/mp_enc_bottom.png b/games/default/files/Decorations/ma_pops_furniture/textures/mp_enc_bottom.png new file mode 100644 index 000000000..ee205a8f7 Binary files /dev/null and b/games/default/files/Decorations/ma_pops_furniture/textures/mp_enc_bottom.png differ diff --git a/games/default/files/Decorations/ma_pops_furniture/textures/mp_enc_front.png b/games/default/files/Decorations/ma_pops_furniture/textures/mp_enc_front.png new file mode 100644 index 000000000..9083b4e01 Binary files /dev/null and b/games/default/files/Decorations/ma_pops_furniture/textures/mp_enc_front.png differ diff --git a/games/default/files/Decorations/ma_pops_furniture/textures/mp_enc_left.png b/games/default/files/Decorations/ma_pops_furniture/textures/mp_enc_left.png new file mode 100644 index 000000000..6961f4303 Binary files /dev/null and b/games/default/files/Decorations/ma_pops_furniture/textures/mp_enc_left.png differ diff --git a/games/default/files/Decorations/ma_pops_furniture/textures/mp_enc_right.png b/games/default/files/Decorations/ma_pops_furniture/textures/mp_enc_right.png new file mode 100644 index 000000000..35bb7c4cb Binary files /dev/null and b/games/default/files/Decorations/ma_pops_furniture/textures/mp_enc_right.png differ diff --git a/games/default/files/Decorations/ma_pops_furniture/textures/mp_enc_top.png b/games/default/files/Decorations/ma_pops_furniture/textures/mp_enc_top.png new file mode 100644 index 000000000..f385e5e8e Binary files /dev/null and b/games/default/files/Decorations/ma_pops_furniture/textures/mp_enc_top.png differ diff --git a/games/default/files/Decorations/ma_pops_furniture/textures/mp_f.png b/games/default/files/Decorations/ma_pops_furniture/textures/mp_f.png new file mode 100644 index 000000000..6c496013b Binary files /dev/null and b/games/default/files/Decorations/ma_pops_furniture/textures/mp_f.png differ diff --git a/games/default/files/Decorations/ma_pops_furniture/textures/mp_fireplace.png b/games/default/files/Decorations/ma_pops_furniture/textures/mp_fireplace.png new file mode 100644 index 000000000..54c30cb36 Binary files /dev/null and b/games/default/files/Decorations/ma_pops_furniture/textures/mp_fireplace.png differ diff --git a/games/default/files/Decorations/ma_pops_furniture/textures/mp_fridge_back.png b/games/default/files/Decorations/ma_pops_furniture/textures/mp_fridge_back.png new file mode 100644 index 000000000..273be54f9 Binary files /dev/null and b/games/default/files/Decorations/ma_pops_furniture/textures/mp_fridge_back.png differ diff --git a/games/default/files/Decorations/ma_pops_furniture/textures/mp_fridge_bottom.png b/games/default/files/Decorations/ma_pops_furniture/textures/mp_fridge_bottom.png new file mode 100644 index 000000000..16d09caad Binary files /dev/null and b/games/default/files/Decorations/ma_pops_furniture/textures/mp_fridge_bottom.png differ diff --git a/games/default/files/Decorations/ma_pops_furniture/textures/mp_fridge_front.png b/games/default/files/Decorations/ma_pops_furniture/textures/mp_fridge_front.png new file mode 100644 index 000000000..4ac0e1491 Binary files /dev/null and b/games/default/files/Decorations/ma_pops_furniture/textures/mp_fridge_front.png differ diff --git a/games/default/files/Decorations/ma_pops_furniture/textures/mp_fridge_left.png b/games/default/files/Decorations/ma_pops_furniture/textures/mp_fridge_left.png new file mode 100644 index 000000000..1f5b3c844 Binary files /dev/null and b/games/default/files/Decorations/ma_pops_furniture/textures/mp_fridge_left.png differ diff --git a/games/default/files/Decorations/ma_pops_furniture/textures/mp_fridge_right.png b/games/default/files/Decorations/ma_pops_furniture/textures/mp_fridge_right.png new file mode 100644 index 000000000..93c1b9c00 Binary files /dev/null and b/games/default/files/Decorations/ma_pops_furniture/textures/mp_fridge_right.png differ diff --git a/games/default/files/Decorations/ma_pops_furniture/textures/mp_fridge_top.png b/games/default/files/Decorations/ma_pops_furniture/textures/mp_fridge_top.png new file mode 100644 index 000000000..02b24d0f5 Binary files /dev/null and b/games/default/files/Decorations/ma_pops_furniture/textures/mp_fridge_top.png differ diff --git a/games/default/files/Decorations/ma_pops_furniture/textures/mp_froz_back.png b/games/default/files/Decorations/ma_pops_furniture/textures/mp_froz_back.png new file mode 100644 index 000000000..273be54f9 Binary files /dev/null and b/games/default/files/Decorations/ma_pops_furniture/textures/mp_froz_back.png differ diff --git a/games/default/files/Decorations/ma_pops_furniture/textures/mp_froz_bottom.png b/games/default/files/Decorations/ma_pops_furniture/textures/mp_froz_bottom.png new file mode 100644 index 000000000..43ab54f94 Binary files /dev/null and b/games/default/files/Decorations/ma_pops_furniture/textures/mp_froz_bottom.png differ diff --git a/games/default/files/Decorations/ma_pops_furniture/textures/mp_froz_front.png b/games/default/files/Decorations/ma_pops_furniture/textures/mp_froz_front.png new file mode 100644 index 000000000..d587c6e7a Binary files /dev/null and b/games/default/files/Decorations/ma_pops_furniture/textures/mp_froz_front.png differ diff --git a/games/default/files/Decorations/ma_pops_furniture/textures/mp_froz_left.png b/games/default/files/Decorations/ma_pops_furniture/textures/mp_froz_left.png new file mode 100644 index 000000000..a8642e70b Binary files /dev/null and b/games/default/files/Decorations/ma_pops_furniture/textures/mp_froz_left.png differ diff --git a/games/default/files/Decorations/ma_pops_furniture/textures/mp_froz_right.png b/games/default/files/Decorations/ma_pops_furniture/textures/mp_froz_right.png new file mode 100644 index 000000000..883559a5a Binary files /dev/null and b/games/default/files/Decorations/ma_pops_furniture/textures/mp_froz_right.png differ diff --git a/games/default/files/Decorations/ma_pops_furniture/textures/mp_froz_top.png b/games/default/files/Decorations/ma_pops_furniture/textures/mp_froz_top.png new file mode 100644 index 000000000..6db1a3624 Binary files /dev/null and b/games/default/files/Decorations/ma_pops_furniture/textures/mp_froz_top.png differ diff --git a/games/default/files/Decorations/ma_pops_furniture/textures/mp_grif_sides.png b/games/default/files/Decorations/ma_pops_furniture/textures/mp_grif_sides.png new file mode 100644 index 000000000..2d4c74c11 Binary files /dev/null and b/games/default/files/Decorations/ma_pops_furniture/textures/mp_grif_sides.png differ diff --git a/games/default/files/Decorations/ma_pops_furniture/textures/mp_grif_top.png b/games/default/files/Decorations/ma_pops_furniture/textures/mp_grif_top.png new file mode 100644 index 000000000..1097a3465 Binary files /dev/null and b/games/default/files/Decorations/ma_pops_furniture/textures/mp_grif_top.png differ diff --git a/games/default/files/Decorations/ma_pops_furniture/textures/mp_grills.png b/games/default/files/Decorations/ma_pops_furniture/textures/mp_grills.png new file mode 100644 index 000000000..f75c7ef0f Binary files /dev/null and b/games/default/files/Decorations/ma_pops_furniture/textures/mp_grills.png differ diff --git a/games/default/files/Decorations/ma_pops_furniture/textures/mp_grillt.png b/games/default/files/Decorations/ma_pops_furniture/textures/mp_grillt.png new file mode 100644 index 000000000..38ecaae06 Binary files /dev/null and b/games/default/files/Decorations/ma_pops_furniture/textures/mp_grillt.png differ diff --git a/games/default/files/Decorations/ma_pops_furniture/textures/mp_grillton.png b/games/default/files/Decorations/ma_pops_furniture/textures/mp_grillton.png new file mode 100644 index 000000000..b6b71a8fa Binary files /dev/null and b/games/default/files/Decorations/ma_pops_furniture/textures/mp_grillton.png differ diff --git a/games/default/files/Decorations/ma_pops_furniture/textures/mp_hammer.png b/games/default/files/Decorations/ma_pops_furniture/textures/mp_hammer.png new file mode 100644 index 000000000..2af679a0e Binary files /dev/null and b/games/default/files/Decorations/ma_pops_furniture/textures/mp_hammer.png differ diff --git a/games/default/files/Decorations/ma_pops_furniture/textures/mp_hw_back.png b/games/default/files/Decorations/ma_pops_furniture/textures/mp_hw_back.png new file mode 100644 index 000000000..019a66907 Binary files /dev/null and b/games/default/files/Decorations/ma_pops_furniture/textures/mp_hw_back.png differ diff --git a/games/default/files/Decorations/ma_pops_furniture/textures/mp_hw_bottom.png b/games/default/files/Decorations/ma_pops_furniture/textures/mp_hw_bottom.png new file mode 100644 index 000000000..56a5accb2 Binary files /dev/null and b/games/default/files/Decorations/ma_pops_furniture/textures/mp_hw_bottom.png differ diff --git a/games/default/files/Decorations/ma_pops_furniture/textures/mp_hw_front.png b/games/default/files/Decorations/ma_pops_furniture/textures/mp_hw_front.png new file mode 100644 index 000000000..019a66907 Binary files /dev/null and b/games/default/files/Decorations/ma_pops_furniture/textures/mp_hw_front.png differ diff --git a/games/default/files/Decorations/ma_pops_furniture/textures/mp_hw_left.png b/games/default/files/Decorations/ma_pops_furniture/textures/mp_hw_left.png new file mode 100644 index 000000000..8db11633a Binary files /dev/null and b/games/default/files/Decorations/ma_pops_furniture/textures/mp_hw_left.png differ diff --git a/games/default/files/Decorations/ma_pops_furniture/textures/mp_hw_right.png b/games/default/files/Decorations/ma_pops_furniture/textures/mp_hw_right.png new file mode 100644 index 000000000..9dd3a36cc Binary files /dev/null and b/games/default/files/Decorations/ma_pops_furniture/textures/mp_hw_right.png differ diff --git a/games/default/files/Decorations/ma_pops_furniture/textures/mp_hw_top.png b/games/default/files/Decorations/ma_pops_furniture/textures/mp_hw_top.png new file mode 100644 index 000000000..d05e4f463 Binary files /dev/null and b/games/default/files/Decorations/ma_pops_furniture/textures/mp_hw_top.png differ diff --git a/games/default/files/Decorations/ma_pops_furniture/textures/mp_itembirdbath.png b/games/default/files/Decorations/ma_pops_furniture/textures/mp_itembirdbath.png new file mode 100644 index 000000000..93af8da57 Binary files /dev/null and b/games/default/files/Decorations/ma_pops_furniture/textures/mp_itembirdbath.png differ diff --git a/games/default/files/Decorations/ma_pops_furniture/textures/mp_knife.png b/games/default/files/Decorations/ma_pops_furniture/textures/mp_knife.png new file mode 100644 index 000000000..8a495ae84 Binary files /dev/null and b/games/default/files/Decorations/ma_pops_furniture/textures/mp_knife.png differ diff --git a/games/default/files/Decorations/ma_pops_furniture/textures/mp_knob_back.png b/games/default/files/Decorations/ma_pops_furniture/textures/mp_knob_back.png new file mode 100644 index 000000000..0a07897c1 Binary files /dev/null and b/games/default/files/Decorations/ma_pops_furniture/textures/mp_knob_back.png differ diff --git a/games/default/files/Decorations/ma_pops_furniture/textures/mp_knob_bottom.png b/games/default/files/Decorations/ma_pops_furniture/textures/mp_knob_bottom.png new file mode 100644 index 000000000..c0cc0a9ef Binary files /dev/null and b/games/default/files/Decorations/ma_pops_furniture/textures/mp_knob_bottom.png differ diff --git a/games/default/files/Decorations/ma_pops_furniture/textures/mp_knob_front.png b/games/default/files/Decorations/ma_pops_furniture/textures/mp_knob_front.png new file mode 100644 index 000000000..0a07897c1 Binary files /dev/null and b/games/default/files/Decorations/ma_pops_furniture/textures/mp_knob_front.png differ diff --git a/games/default/files/Decorations/ma_pops_furniture/textures/mp_knob_left.png b/games/default/files/Decorations/ma_pops_furniture/textures/mp_knob_left.png new file mode 100644 index 000000000..7cf78e6f5 Binary files /dev/null and b/games/default/files/Decorations/ma_pops_furniture/textures/mp_knob_left.png differ diff --git a/games/default/files/Decorations/ma_pops_furniture/textures/mp_knob_right.png b/games/default/files/Decorations/ma_pops_furniture/textures/mp_knob_right.png new file mode 100644 index 000000000..d97eab2ef Binary files /dev/null and b/games/default/files/Decorations/ma_pops_furniture/textures/mp_knob_right.png differ diff --git a/games/default/files/Decorations/ma_pops_furniture/textures/mp_knob_top.png b/games/default/files/Decorations/ma_pops_furniture/textures/mp_knob_top.png new file mode 100644 index 000000000..a5d67fb31 Binary files /dev/null and b/games/default/files/Decorations/ma_pops_furniture/textures/mp_knob_top.png differ diff --git a/games/default/files/Decorations/ma_pops_furniture/textures/mp_lb.png b/games/default/files/Decorations/ma_pops_furniture/textures/mp_lb.png new file mode 100644 index 000000000..735548fad Binary files /dev/null and b/games/default/files/Decorations/ma_pops_furniture/textures/mp_lb.png differ diff --git a/games/default/files/Decorations/ma_pops_furniture/textures/mp_light_off.png b/games/default/files/Decorations/ma_pops_furniture/textures/mp_light_off.png new file mode 100644 index 000000000..f4038c21e Binary files /dev/null and b/games/default/files/Decorations/ma_pops_furniture/textures/mp_light_off.png differ diff --git a/games/default/files/Decorations/ma_pops_furniture/textures/mp_light_on.png b/games/default/files/Decorations/ma_pops_furniture/textures/mp_light_on.png new file mode 100644 index 000000000..c65be586e Binary files /dev/null and b/games/default/files/Decorations/ma_pops_furniture/textures/mp_light_on.png differ diff --git a/games/default/files/Decorations/ma_pops_furniture/textures/mp_light_wall.png b/games/default/files/Decorations/ma_pops_furniture/textures/mp_light_wall.png new file mode 100644 index 000000000..02b24d0f5 Binary files /dev/null and b/games/default/files/Decorations/ma_pops_furniture/textures/mp_light_wall.png differ diff --git a/games/default/files/Decorations/ma_pops_furniture/textures/mp_ls.png b/games/default/files/Decorations/ma_pops_furniture/textures/mp_ls.png new file mode 100644 index 000000000..a0170763d Binary files /dev/null and b/games/default/files/Decorations/ma_pops_furniture/textures/mp_ls.png differ diff --git a/games/default/files/Decorations/ma_pops_furniture/textures/mp_lt.png b/games/default/files/Decorations/ma_pops_furniture/textures/mp_lt.png new file mode 100644 index 000000000..c69c3ab5d Binary files /dev/null and b/games/default/files/Decorations/ma_pops_furniture/textures/mp_lt.png differ diff --git a/games/default/files/Decorations/ma_pops_furniture/textures/mp_mask.png b/games/default/files/Decorations/ma_pops_furniture/textures/mp_mask.png new file mode 100644 index 000000000..ec4728696 Binary files /dev/null and b/games/default/files/Decorations/ma_pops_furniture/textures/mp_mask.png differ diff --git a/games/default/files/Decorations/ma_pops_furniture/textures/mp_med_back.png b/games/default/files/Decorations/ma_pops_furniture/textures/mp_med_back.png new file mode 100644 index 000000000..688d070dc Binary files /dev/null and b/games/default/files/Decorations/ma_pops_furniture/textures/mp_med_back.png differ diff --git a/games/default/files/Decorations/ma_pops_furniture/textures/mp_med_front.png b/games/default/files/Decorations/ma_pops_furniture/textures/mp_med_front.png new file mode 100644 index 000000000..e677aa0b2 Binary files /dev/null and b/games/default/files/Decorations/ma_pops_furniture/textures/mp_med_front.png differ diff --git a/games/default/files/Decorations/ma_pops_furniture/textures/mp_mirror_bottom.png b/games/default/files/Decorations/ma_pops_furniture/textures/mp_mirror_bottom.png new file mode 100644 index 000000000..3cf396f82 Binary files /dev/null and b/games/default/files/Decorations/ma_pops_furniture/textures/mp_mirror_bottom.png differ diff --git a/games/default/files/Decorations/ma_pops_furniture/textures/mp_mirror_front.png b/games/default/files/Decorations/ma_pops_furniture/textures/mp_mirror_front.png new file mode 100644 index 000000000..42f46eca6 Binary files /dev/null and b/games/default/files/Decorations/ma_pops_furniture/textures/mp_mirror_front.png differ diff --git a/games/default/files/Decorations/ma_pops_furniture/textures/mp_mirror_left.png b/games/default/files/Decorations/ma_pops_furniture/textures/mp_mirror_left.png new file mode 100644 index 000000000..26315d56b Binary files /dev/null and b/games/default/files/Decorations/ma_pops_furniture/textures/mp_mirror_left.png differ diff --git a/games/default/files/Decorations/ma_pops_furniture/textures/mp_mirror_open_bottom.png b/games/default/files/Decorations/ma_pops_furniture/textures/mp_mirror_open_bottom.png new file mode 100644 index 000000000..4c3f158a6 Binary files /dev/null and b/games/default/files/Decorations/ma_pops_furniture/textures/mp_mirror_open_bottom.png differ diff --git a/games/default/files/Decorations/ma_pops_furniture/textures/mp_mirror_open_front.png b/games/default/files/Decorations/ma_pops_furniture/textures/mp_mirror_open_front.png new file mode 100644 index 000000000..b5287551b Binary files /dev/null and b/games/default/files/Decorations/ma_pops_furniture/textures/mp_mirror_open_front.png differ diff --git a/games/default/files/Decorations/ma_pops_furniture/textures/mp_mirror_open_left.png b/games/default/files/Decorations/ma_pops_furniture/textures/mp_mirror_open_left.png new file mode 100644 index 000000000..a12a7e5a1 Binary files /dev/null and b/games/default/files/Decorations/ma_pops_furniture/textures/mp_mirror_open_left.png differ diff --git a/games/default/files/Decorations/ma_pops_furniture/textures/mp_mirror_open_right.png b/games/default/files/Decorations/ma_pops_furniture/textures/mp_mirror_open_right.png new file mode 100644 index 000000000..7e8faa9fe Binary files /dev/null and b/games/default/files/Decorations/ma_pops_furniture/textures/mp_mirror_open_right.png differ diff --git a/games/default/files/Decorations/ma_pops_furniture/textures/mp_mirror_open_top.png b/games/default/files/Decorations/ma_pops_furniture/textures/mp_mirror_open_top.png new file mode 100644 index 000000000..ecf8123df Binary files /dev/null and b/games/default/files/Decorations/ma_pops_furniture/textures/mp_mirror_open_top.png differ diff --git a/games/default/files/Decorations/ma_pops_furniture/textures/mp_mirror_right.png b/games/default/files/Decorations/ma_pops_furniture/textures/mp_mirror_right.png new file mode 100644 index 000000000..f69431c04 Binary files /dev/null and b/games/default/files/Decorations/ma_pops_furniture/textures/mp_mirror_right.png differ diff --git a/games/default/files/Decorations/ma_pops_furniture/textures/mp_mirror_top.png b/games/default/files/Decorations/ma_pops_furniture/textures/mp_mirror_top.png new file mode 100644 index 000000000..3e72cb436 Binary files /dev/null and b/games/default/files/Decorations/ma_pops_furniture/textures/mp_mirror_top.png differ diff --git a/games/default/files/Decorations/ma_pops_furniture/textures/mp_mw_back.png b/games/default/files/Decorations/ma_pops_furniture/textures/mp_mw_back.png new file mode 100644 index 000000000..02087b195 Binary files /dev/null and b/games/default/files/Decorations/ma_pops_furniture/textures/mp_mw_back.png differ diff --git a/games/default/files/Decorations/ma_pops_furniture/textures/mp_mw_bar.png b/games/default/files/Decorations/ma_pops_furniture/textures/mp_mw_bar.png new file mode 100644 index 000000000..ba516e7ef Binary files /dev/null and b/games/default/files/Decorations/ma_pops_furniture/textures/mp_mw_bar.png differ diff --git a/games/default/files/Decorations/ma_pops_furniture/textures/mp_mw_bar_on.png b/games/default/files/Decorations/ma_pops_furniture/textures/mp_mw_bar_on.png new file mode 100644 index 000000000..65e3ffd2d Binary files /dev/null and b/games/default/files/Decorations/ma_pops_furniture/textures/mp_mw_bar_on.png differ diff --git a/games/default/files/Decorations/ma_pops_furniture/textures/mp_mw_bottom.png b/games/default/files/Decorations/ma_pops_furniture/textures/mp_mw_bottom.png new file mode 100644 index 000000000..9f4882925 Binary files /dev/null and b/games/default/files/Decorations/ma_pops_furniture/textures/mp_mw_bottom.png differ diff --git a/games/default/files/Decorations/ma_pops_furniture/textures/mp_mw_front.png b/games/default/files/Decorations/ma_pops_furniture/textures/mp_mw_front.png new file mode 100644 index 000000000..189d72eb4 Binary files /dev/null and b/games/default/files/Decorations/ma_pops_furniture/textures/mp_mw_front.png differ diff --git a/games/default/files/Decorations/ma_pops_furniture/textures/mp_mw_left.png b/games/default/files/Decorations/ma_pops_furniture/textures/mp_mw_left.png new file mode 100644 index 000000000..e6928075d Binary files /dev/null and b/games/default/files/Decorations/ma_pops_furniture/textures/mp_mw_left.png differ diff --git a/games/default/files/Decorations/ma_pops_furniture/textures/mp_mw_right.png b/games/default/files/Decorations/ma_pops_furniture/textures/mp_mw_right.png new file mode 100644 index 000000000..40083f236 Binary files /dev/null and b/games/default/files/Decorations/ma_pops_furniture/textures/mp_mw_right.png differ diff --git a/games/default/files/Decorations/ma_pops_furniture/textures/mp_mw_top.png b/games/default/files/Decorations/ma_pops_furniture/textures/mp_mw_top.png new file mode 100644 index 000000000..1a5638571 Binary files /dev/null and b/games/default/files/Decorations/ma_pops_furniture/textures/mp_mw_top.png differ diff --git a/games/default/files/Decorations/ma_pops_furniture/textures/mp_oven_back.png b/games/default/files/Decorations/ma_pops_furniture/textures/mp_oven_back.png new file mode 100644 index 000000000..6737b5159 Binary files /dev/null and b/games/default/files/Decorations/ma_pops_furniture/textures/mp_oven_back.png differ diff --git a/games/default/files/Decorations/ma_pops_furniture/textures/mp_oven_bottom.png b/games/default/files/Decorations/ma_pops_furniture/textures/mp_oven_bottom.png new file mode 100644 index 000000000..6737b5159 Binary files /dev/null and b/games/default/files/Decorations/ma_pops_furniture/textures/mp_oven_bottom.png differ diff --git a/games/default/files/Decorations/ma_pops_furniture/textures/mp_oven_front.png b/games/default/files/Decorations/ma_pops_furniture/textures/mp_oven_front.png new file mode 100644 index 000000000..9f60361ea Binary files /dev/null and b/games/default/files/Decorations/ma_pops_furniture/textures/mp_oven_front.png differ diff --git a/games/default/files/Decorations/ma_pops_furniture/textures/mp_oven_left.png b/games/default/files/Decorations/ma_pops_furniture/textures/mp_oven_left.png new file mode 100644 index 000000000..600fc6cf6 Binary files /dev/null and b/games/default/files/Decorations/ma_pops_furniture/textures/mp_oven_left.png differ diff --git a/games/default/files/Decorations/ma_pops_furniture/textures/mp_oven_right.png b/games/default/files/Decorations/ma_pops_furniture/textures/mp_oven_right.png new file mode 100644 index 000000000..c48929535 Binary files /dev/null and b/games/default/files/Decorations/ma_pops_furniture/textures/mp_oven_right.png differ diff --git a/games/default/files/Decorations/ma_pops_furniture/textures/mp_oven_top.png b/games/default/files/Decorations/ma_pops_furniture/textures/mp_oven_top.png new file mode 100644 index 000000000..4e5c5d892 Binary files /dev/null and b/games/default/files/Decorations/ma_pops_furniture/textures/mp_oven_top.png differ diff --git a/games/default/files/Decorations/ma_pops_furniture/textures/mp_r_cb.png b/games/default/files/Decorations/ma_pops_furniture/textures/mp_r_cb.png new file mode 100644 index 000000000..b9e8a791b Binary files /dev/null and b/games/default/files/Decorations/ma_pops_furniture/textures/mp_r_cb.png differ diff --git a/games/default/files/Decorations/ma_pops_furniture/textures/mp_r_cf.png b/games/default/files/Decorations/ma_pops_furniture/textures/mp_r_cf.png new file mode 100644 index 000000000..4608de76f Binary files /dev/null and b/games/default/files/Decorations/ma_pops_furniture/textures/mp_r_cf.png differ diff --git a/games/default/files/Decorations/ma_pops_furniture/textures/mp_radio_back.png b/games/default/files/Decorations/ma_pops_furniture/textures/mp_radio_back.png new file mode 100644 index 000000000..1b66a17d1 Binary files /dev/null and b/games/default/files/Decorations/ma_pops_furniture/textures/mp_radio_back.png differ diff --git a/games/default/files/Decorations/ma_pops_furniture/textures/mp_radio_bottom.png b/games/default/files/Decorations/ma_pops_furniture/textures/mp_radio_bottom.png new file mode 100644 index 000000000..4009a5387 Binary files /dev/null and b/games/default/files/Decorations/ma_pops_furniture/textures/mp_radio_bottom.png differ diff --git a/games/default/files/Decorations/ma_pops_furniture/textures/mp_radio_front.png b/games/default/files/Decorations/ma_pops_furniture/textures/mp_radio_front.png new file mode 100644 index 000000000..c0061b666 Binary files /dev/null and b/games/default/files/Decorations/ma_pops_furniture/textures/mp_radio_front.png differ diff --git a/games/default/files/Decorations/ma_pops_furniture/textures/mp_radio_left.png b/games/default/files/Decorations/ma_pops_furniture/textures/mp_radio_left.png new file mode 100644 index 000000000..b6b12a30b Binary files /dev/null and b/games/default/files/Decorations/ma_pops_furniture/textures/mp_radio_left.png differ diff --git a/games/default/files/Decorations/ma_pops_furniture/textures/mp_radio_right.png b/games/default/files/Decorations/ma_pops_furniture/textures/mp_radio_right.png new file mode 100644 index 000000000..aa5e244fc Binary files /dev/null and b/games/default/files/Decorations/ma_pops_furniture/textures/mp_radio_right.png differ diff --git a/games/default/files/Decorations/ma_pops_furniture/textures/mp_radio_top.png b/games/default/files/Decorations/ma_pops_furniture/textures/mp_radio_top.png new file mode 100644 index 000000000..eff524770 Binary files /dev/null and b/games/default/files/Decorations/ma_pops_furniture/textures/mp_radio_top.png differ diff --git a/games/default/files/Decorations/ma_pops_furniture/textures/mp_s.png b/games/default/files/Decorations/ma_pops_furniture/textures/mp_s.png new file mode 100644 index 000000000..7ba186a71 Binary files /dev/null and b/games/default/files/Decorations/ma_pops_furniture/textures/mp_s.png differ diff --git a/games/default/files/Decorations/ma_pops_furniture/textures/mp_shears.png b/games/default/files/Decorations/ma_pops_furniture/textures/mp_shears.png new file mode 100644 index 000000000..c567a2fa3 Binary files /dev/null and b/games/default/files/Decorations/ma_pops_furniture/textures/mp_shears.png differ diff --git a/games/default/files/Decorations/ma_pops_furniture/textures/mp_shk_back.png b/games/default/files/Decorations/ma_pops_furniture/textures/mp_shk_back.png new file mode 100644 index 000000000..7c6d54e3b Binary files /dev/null and b/games/default/files/Decorations/ma_pops_furniture/textures/mp_shk_back.png differ diff --git a/games/default/files/Decorations/ma_pops_furniture/textures/mp_shk_bottom.png b/games/default/files/Decorations/ma_pops_furniture/textures/mp_shk_bottom.png new file mode 100644 index 000000000..2c6a3b305 Binary files /dev/null and b/games/default/files/Decorations/ma_pops_furniture/textures/mp_shk_bottom.png differ diff --git a/games/default/files/Decorations/ma_pops_furniture/textures/mp_shk_front.png b/games/default/files/Decorations/ma_pops_furniture/textures/mp_shk_front.png new file mode 100644 index 000000000..a693d14d8 Binary files /dev/null and b/games/default/files/Decorations/ma_pops_furniture/textures/mp_shk_front.png differ diff --git a/games/default/files/Decorations/ma_pops_furniture/textures/mp_shk_left.png b/games/default/files/Decorations/ma_pops_furniture/textures/mp_shk_left.png new file mode 100644 index 000000000..b9202fe40 Binary files /dev/null and b/games/default/files/Decorations/ma_pops_furniture/textures/mp_shk_left.png differ diff --git a/games/default/files/Decorations/ma_pops_furniture/textures/mp_shk_right.png b/games/default/files/Decorations/ma_pops_furniture/textures/mp_shk_right.png new file mode 100644 index 000000000..c91e81740 Binary files /dev/null and b/games/default/files/Decorations/ma_pops_furniture/textures/mp_shk_right.png differ diff --git a/games/default/files/Decorations/ma_pops_furniture/textures/mp_shk_top.png b/games/default/files/Decorations/ma_pops_furniture/textures/mp_shk_top.png new file mode 100644 index 000000000..9b8183d17 Binary files /dev/null and b/games/default/files/Decorations/ma_pops_furniture/textures/mp_shk_top.png differ diff --git a/games/default/files/Decorations/ma_pops_furniture/textures/mp_showbas_sides.png b/games/default/files/Decorations/ma_pops_furniture/textures/mp_showbas_sides.png new file mode 100644 index 000000000..1d6bb5ab9 Binary files /dev/null and b/games/default/files/Decorations/ma_pops_furniture/textures/mp_showbas_sides.png differ diff --git a/games/default/files/Decorations/ma_pops_furniture/textures/mp_showbas_top.png b/games/default/files/Decorations/ma_pops_furniture/textures/mp_showbas_top.png new file mode 100644 index 000000000..8acf7e8c5 Binary files /dev/null and b/games/default/files/Decorations/ma_pops_furniture/textures/mp_showbas_top.png differ diff --git a/games/default/files/Decorations/ma_pops_furniture/textures/mp_si.png b/games/default/files/Decorations/ma_pops_furniture/textures/mp_si.png new file mode 100644 index 000000000..40b4118e9 Binary files /dev/null and b/games/default/files/Decorations/ma_pops_furniture/textures/mp_si.png differ diff --git a/games/default/files/Decorations/ma_pops_furniture/textures/mp_sink_top.png b/games/default/files/Decorations/ma_pops_furniture/textures/mp_sink_top.png new file mode 100644 index 000000000..7b98f85ed Binary files /dev/null and b/games/default/files/Decorations/ma_pops_furniture/textures/mp_sink_top.png differ diff --git a/games/default/files/Decorations/ma_pops_furniture/textures/mp_sofa.png b/games/default/files/Decorations/ma_pops_furniture/textures/mp_sofa.png new file mode 100644 index 000000000..ca1fd6f06 Binary files /dev/null and b/games/default/files/Decorations/ma_pops_furniture/textures/mp_sofa.png differ diff --git a/games/default/files/Decorations/ma_pops_furniture/textures/mp_t.png b/games/default/files/Decorations/ma_pops_furniture/textures/mp_t.png new file mode 100644 index 000000000..b8d8811bb Binary files /dev/null and b/games/default/files/Decorations/ma_pops_furniture/textures/mp_t.png differ diff --git a/games/default/files/Decorations/ma_pops_furniture/textures/mp_table_stone.png b/games/default/files/Decorations/ma_pops_furniture/textures/mp_table_stone.png new file mode 100644 index 000000000..07087ebee Binary files /dev/null and b/games/default/files/Decorations/ma_pops_furniture/textures/mp_table_stone.png differ diff --git a/games/default/files/Decorations/ma_pops_furniture/textures/mp_table_wood.png b/games/default/files/Decorations/ma_pops_furniture/textures/mp_table_wood.png new file mode 100644 index 000000000..e390d2700 Binary files /dev/null and b/games/default/files/Decorations/ma_pops_furniture/textures/mp_table_wood.png differ diff --git a/games/default/files/Decorations/ma_pops_furniture/textures/mp_table_wood_acacia.png b/games/default/files/Decorations/ma_pops_furniture/textures/mp_table_wood_acacia.png new file mode 100644 index 000000000..06921fda3 Binary files /dev/null and b/games/default/files/Decorations/ma_pops_furniture/textures/mp_table_wood_acacia.png differ diff --git a/games/default/files/Decorations/ma_pops_furniture/textures/mp_table_wood_aspen.png b/games/default/files/Decorations/ma_pops_furniture/textures/mp_table_wood_aspen.png new file mode 100644 index 000000000..e282d5987 Binary files /dev/null and b/games/default/files/Decorations/ma_pops_furniture/textures/mp_table_wood_aspen.png differ diff --git a/games/default/files/Decorations/ma_pops_furniture/textures/mp_table_wood_jungle.png b/games/default/files/Decorations/ma_pops_furniture/textures/mp_table_wood_jungle.png new file mode 100644 index 000000000..270c7f700 Binary files /dev/null and b/games/default/files/Decorations/ma_pops_furniture/textures/mp_table_wood_jungle.png differ diff --git a/games/default/files/Decorations/ma_pops_furniture/textures/mp_table_wood_pine.png b/games/default/files/Decorations/ma_pops_furniture/textures/mp_table_wood_pine.png new file mode 100644 index 000000000..bae817cd3 Binary files /dev/null and b/games/default/files/Decorations/ma_pops_furniture/textures/mp_table_wood_pine.png differ diff --git a/games/default/files/Decorations/ma_pops_furniture/textures/mp_toas_back.png b/games/default/files/Decorations/ma_pops_furniture/textures/mp_toas_back.png new file mode 100644 index 000000000..908bf93e2 Binary files /dev/null and b/games/default/files/Decorations/ma_pops_furniture/textures/mp_toas_back.png differ diff --git a/games/default/files/Decorations/ma_pops_furniture/textures/mp_toas_back_bread.png b/games/default/files/Decorations/ma_pops_furniture/textures/mp_toas_back_bread.png new file mode 100644 index 000000000..b0e637a7e Binary files /dev/null and b/games/default/files/Decorations/ma_pops_furniture/textures/mp_toas_back_bread.png differ diff --git a/games/default/files/Decorations/ma_pops_furniture/textures/mp_toas_back_side.png b/games/default/files/Decorations/ma_pops_furniture/textures/mp_toas_back_side.png new file mode 100644 index 000000000..358d0f545 Binary files /dev/null and b/games/default/files/Decorations/ma_pops_furniture/textures/mp_toas_back_side.png differ diff --git a/games/default/files/Decorations/ma_pops_furniture/textures/mp_toas_back_toast.png b/games/default/files/Decorations/ma_pops_furniture/textures/mp_toas_back_toast.png new file mode 100644 index 000000000..8f4cb1ade Binary files /dev/null and b/games/default/files/Decorations/ma_pops_furniture/textures/mp_toas_back_toast.png differ diff --git a/games/default/files/Decorations/ma_pops_furniture/textures/mp_toas_bottom.png b/games/default/files/Decorations/ma_pops_furniture/textures/mp_toas_bottom.png new file mode 100644 index 000000000..efc46b057 Binary files /dev/null and b/games/default/files/Decorations/ma_pops_furniture/textures/mp_toas_bottom.png differ diff --git a/games/default/files/Decorations/ma_pops_furniture/textures/mp_toas_front.png b/games/default/files/Decorations/ma_pops_furniture/textures/mp_toas_front.png new file mode 100644 index 000000000..47a5dc318 Binary files /dev/null and b/games/default/files/Decorations/ma_pops_furniture/textures/mp_toas_front.png differ diff --git a/games/default/files/Decorations/ma_pops_furniture/textures/mp_toas_front_bread.png b/games/default/files/Decorations/ma_pops_furniture/textures/mp_toas_front_bread.png new file mode 100644 index 000000000..88e292688 Binary files /dev/null and b/games/default/files/Decorations/ma_pops_furniture/textures/mp_toas_front_bread.png differ diff --git a/games/default/files/Decorations/ma_pops_furniture/textures/mp_toas_front_side.png b/games/default/files/Decorations/ma_pops_furniture/textures/mp_toas_front_side.png new file mode 100644 index 000000000..b6677b87d Binary files /dev/null and b/games/default/files/Decorations/ma_pops_furniture/textures/mp_toas_front_side.png differ diff --git a/games/default/files/Decorations/ma_pops_furniture/textures/mp_toas_front_toast.png b/games/default/files/Decorations/ma_pops_furniture/textures/mp_toas_front_toast.png new file mode 100644 index 000000000..bec71537b Binary files /dev/null and b/games/default/files/Decorations/ma_pops_furniture/textures/mp_toas_front_toast.png differ diff --git a/games/default/files/Decorations/ma_pops_furniture/textures/mp_toas_left.png b/games/default/files/Decorations/ma_pops_furniture/textures/mp_toas_left.png new file mode 100644 index 000000000..562c5a3d9 Binary files /dev/null and b/games/default/files/Decorations/ma_pops_furniture/textures/mp_toas_left.png differ diff --git a/games/default/files/Decorations/ma_pops_furniture/textures/mp_toas_left_bread.png b/games/default/files/Decorations/ma_pops_furniture/textures/mp_toas_left_bread.png new file mode 100644 index 000000000..eb9b86d06 Binary files /dev/null and b/games/default/files/Decorations/ma_pops_furniture/textures/mp_toas_left_bread.png differ diff --git a/games/default/files/Decorations/ma_pops_furniture/textures/mp_toas_left_toast.png b/games/default/files/Decorations/ma_pops_furniture/textures/mp_toas_left_toast.png new file mode 100644 index 000000000..dc15ef87f Binary files /dev/null and b/games/default/files/Decorations/ma_pops_furniture/textures/mp_toas_left_toast.png differ diff --git a/games/default/files/Decorations/ma_pops_furniture/textures/mp_toas_left_toast_side.png b/games/default/files/Decorations/ma_pops_furniture/textures/mp_toas_left_toast_side.png new file mode 100644 index 000000000..215eb57f1 Binary files /dev/null and b/games/default/files/Decorations/ma_pops_furniture/textures/mp_toas_left_toast_side.png differ diff --git a/games/default/files/Decorations/ma_pops_furniture/textures/mp_toas_right.png b/games/default/files/Decorations/ma_pops_furniture/textures/mp_toas_right.png new file mode 100644 index 000000000..0aa9bbc6c Binary files /dev/null and b/games/default/files/Decorations/ma_pops_furniture/textures/mp_toas_right.png differ diff --git a/games/default/files/Decorations/ma_pops_furniture/textures/mp_toas_right_bread.png b/games/default/files/Decorations/ma_pops_furniture/textures/mp_toas_right_bread.png new file mode 100644 index 000000000..c3e559f0a Binary files /dev/null and b/games/default/files/Decorations/ma_pops_furniture/textures/mp_toas_right_bread.png differ diff --git a/games/default/files/Decorations/ma_pops_furniture/textures/mp_toas_right_toast.png b/games/default/files/Decorations/ma_pops_furniture/textures/mp_toas_right_toast.png new file mode 100644 index 000000000..dabbabe1d Binary files /dev/null and b/games/default/files/Decorations/ma_pops_furniture/textures/mp_toas_right_toast.png differ diff --git a/games/default/files/Decorations/ma_pops_furniture/textures/mp_toas_top.png b/games/default/files/Decorations/ma_pops_furniture/textures/mp_toas_top.png new file mode 100644 index 000000000..702385032 Binary files /dev/null and b/games/default/files/Decorations/ma_pops_furniture/textures/mp_toas_top.png differ diff --git a/games/default/files/Decorations/ma_pops_furniture/textures/mp_toas_top_bread.png b/games/default/files/Decorations/ma_pops_furniture/textures/mp_toas_top_bread.png new file mode 100644 index 000000000..ab43a773c Binary files /dev/null and b/games/default/files/Decorations/ma_pops_furniture/textures/mp_toas_top_bread.png differ diff --git a/games/default/files/Decorations/ma_pops_furniture/textures/mp_toas_top_bread_on.png b/games/default/files/Decorations/ma_pops_furniture/textures/mp_toas_top_bread_on.png new file mode 100644 index 000000000..c254ef822 Binary files /dev/null and b/games/default/files/Decorations/ma_pops_furniture/textures/mp_toas_top_bread_on.png differ diff --git a/games/default/files/Decorations/ma_pops_furniture/textures/mp_toas_top_toast.png b/games/default/files/Decorations/ma_pops_furniture/textures/mp_toas_top_toast.png new file mode 100644 index 000000000..c58d27704 Binary files /dev/null and b/games/default/files/Decorations/ma_pops_furniture/textures/mp_toas_top_toast.png differ diff --git a/games/default/files/Decorations/ma_pops_furniture/textures/mp_toast.png b/games/default/files/Decorations/ma_pops_furniture/textures/mp_toast.png new file mode 100644 index 000000000..acbe34a73 Binary files /dev/null and b/games/default/files/Decorations/ma_pops_furniture/textures/mp_toast.png differ diff --git a/games/default/files/Decorations/ma_pops_furniture/textures/mp_top.png b/games/default/files/Decorations/ma_pops_furniture/textures/mp_top.png new file mode 100644 index 000000000..14af8583c Binary files /dev/null and b/games/default/files/Decorations/ma_pops_furniture/textures/mp_top.png differ diff --git a/games/default/files/Decorations/ma_pops_furniture/textures/mp_tp_back.png b/games/default/files/Decorations/ma_pops_furniture/textures/mp_tp_back.png new file mode 100644 index 000000000..ac0146935 Binary files /dev/null and b/games/default/files/Decorations/ma_pops_furniture/textures/mp_tp_back.png differ diff --git a/games/default/files/Decorations/ma_pops_furniture/textures/mp_tp_bottom.png b/games/default/files/Decorations/ma_pops_furniture/textures/mp_tp_bottom.png new file mode 100644 index 000000000..ae3332ec2 Binary files /dev/null and b/games/default/files/Decorations/ma_pops_furniture/textures/mp_tp_bottom.png differ diff --git a/games/default/files/Decorations/ma_pops_furniture/textures/mp_tp_front.png b/games/default/files/Decorations/ma_pops_furniture/textures/mp_tp_front.png new file mode 100644 index 000000000..77d00e504 Binary files /dev/null and b/games/default/files/Decorations/ma_pops_furniture/textures/mp_tp_front.png differ diff --git a/games/default/files/Decorations/ma_pops_furniture/textures/mp_tp_left.png b/games/default/files/Decorations/ma_pops_furniture/textures/mp_tp_left.png new file mode 100644 index 000000000..074527695 Binary files /dev/null and b/games/default/files/Decorations/ma_pops_furniture/textures/mp_tp_left.png differ diff --git a/games/default/files/Decorations/ma_pops_furniture/textures/mp_tp_right.png b/games/default/files/Decorations/ma_pops_furniture/textures/mp_tp_right.png new file mode 100644 index 000000000..f92629cc9 Binary files /dev/null and b/games/default/files/Decorations/ma_pops_furniture/textures/mp_tp_right.png differ diff --git a/games/default/files/Decorations/ma_pops_furniture/textures/mp_tp_top.png b/games/default/files/Decorations/ma_pops_furniture/textures/mp_tp_top.png new file mode 100644 index 000000000..4dac23f40 Binary files /dev/null and b/games/default/files/Decorations/ma_pops_furniture/textures/mp_tp_top.png differ diff --git a/games/default/files/Decorations/ma_pops_furniture/textures/mp_up_bottom.png b/games/default/files/Decorations/ma_pops_furniture/textures/mp_up_bottom.png new file mode 100644 index 000000000..84de2add5 Binary files /dev/null and b/games/default/files/Decorations/ma_pops_furniture/textures/mp_up_bottom.png differ diff --git a/games/default/files/Decorations/ma_pops_furniture/textures/mp_up_front.png b/games/default/files/Decorations/ma_pops_furniture/textures/mp_up_front.png new file mode 100644 index 000000000..7c3ed20a6 Binary files /dev/null and b/games/default/files/Decorations/ma_pops_furniture/textures/mp_up_front.png differ diff --git a/games/default/files/Decorations/ma_pops_furniture/textures/mp_up_left.png b/games/default/files/Decorations/ma_pops_furniture/textures/mp_up_left.png new file mode 100644 index 000000000..b747e4de0 Binary files /dev/null and b/games/default/files/Decorations/ma_pops_furniture/textures/mp_up_left.png differ diff --git a/games/default/files/Decorations/ma_pops_furniture/textures/mp_up_right.png b/games/default/files/Decorations/ma_pops_furniture/textures/mp_up_right.png new file mode 100644 index 000000000..5449515e9 Binary files /dev/null and b/games/default/files/Decorations/ma_pops_furniture/textures/mp_up_right.png differ diff --git a/games/default/files/Decorations/ma_pops_furniture/textures/mp_up_top.png b/games/default/files/Decorations/ma_pops_furniture/textures/mp_up_top.png new file mode 100644 index 000000000..3facae921 Binary files /dev/null and b/games/default/files/Decorations/ma_pops_furniture/textures/mp_up_top.png differ diff --git a/games/default/files/Decorations/ma_pops_furniture/textures/mp_vcr_off.png b/games/default/files/Decorations/ma_pops_furniture/textures/mp_vcr_off.png new file mode 100644 index 000000000..3b1158b20 Binary files /dev/null and b/games/default/files/Decorations/ma_pops_furniture/textures/mp_vcr_off.png differ diff --git a/games/default/files/Decorations/ma_pops_furniture/textures/mp_vcr_on.png b/games/default/files/Decorations/ma_pops_furniture/textures/mp_vcr_on.png new file mode 100644 index 000000000..afeb0f7f8 Binary files /dev/null and b/games/default/files/Decorations/ma_pops_furniture/textures/mp_vcr_on.png differ diff --git a/games/default/files/Decorations/ma_pops_furniture/textures/mp_wool_coloured_rainbow.png b/games/default/files/Decorations/ma_pops_furniture/textures/mp_wool_coloured_rainbow.png new file mode 100644 index 000000000..22e80b090 Binary files /dev/null and b/games/default/files/Decorations/ma_pops_furniture/textures/mp_wool_coloured_rainbow.png differ diff --git a/games/default/files/Decorations/modpack.txt b/games/default/files/Decorations/modpack.txt new file mode 100644 index 000000000..e69de29bb diff --git a/games/default/files/Decorations/signs_lib/copyright.txt b/games/default/files/Decorations/signs_lib/copyright.txt new file mode 100644 index 000000000..68fa54931 --- /dev/null +++ b/games/default/files/Decorations/signs_lib/copyright.txt @@ -0,0 +1,8 @@ +Most code and all textures by Vanessa Ezekowitz. + +Some code copied and modified from the game's default mods (especially +doors) and ironzorg's flowers mod. + +Licenses: +* For the lua code, BSD. +* For all images and everything else, WTFPL. diff --git a/games/default/files/Decorations/signs_lib/depends.txt b/games/default/files/Decorations/signs_lib/depends.txt new file mode 100644 index 000000000..fbb8367f0 --- /dev/null +++ b/games/default/files/Decorations/signs_lib/depends.txt @@ -0,0 +1,6 @@ +default +color +intllib? +screwdriver? +keyword_interact? +craft_guide? diff --git a/games/default/files/Decorations/signs_lib/description.txt b/games/default/files/Decorations/signs_lib/description.txt new file mode 100644 index 000000000..d157852b6 --- /dev/null +++ b/games/default/files/Decorations/signs_lib/description.txt @@ -0,0 +1 @@ +Adds signs with readable text. diff --git a/games/default/files/Decorations/signs_lib/encoding.lua b/games/default/files/Decorations/signs_lib/encoding.lua new file mode 100644 index 000000000..16e35febe --- /dev/null +++ b/games/default/files/Decorations/signs_lib/encoding.lua @@ -0,0 +1,265 @@ +-- encoding borrowed from signs_lib mod of https://github.com/lord-server/lord + +local ansi_decode = { + [128] = "\208\130", + [129] = "\208\131", + [130] = "\226\128\154", + [131] = "\209\147", + [132] = "\226\128\158", + [133] = "\226\128\166", + [134] = "\226\128\160", + [135] = "\226\128\161", + [136] = "\226\130\172", + [137] = "\226\128\176", + [138] = "\208\137", + [139] = "\226\128\185", + [140] = "\208\138", + [141] = "\208\140", + [142] = "\208\139", + [143] = "\208\143", + [144] = "\209\146", + [145] = "\226\128\152", + [146] = "\226\128\153", + [147] = "\226\128\156", + [148] = "\226\128\157", + [149] = "\226\128\162", + [150] = "\226\128\147", + [151] = "\226\128\148", + [152] = "\194\152", + [153] = "\226\132\162", + [154] = "\209\153", + [155] = "\226\128\186", + [156] = "\209\154", + [157] = "\209\156", + [158] = "\209\155", + [159] = "\209\159", + [160] = "\194\160", + [161] = "\209\142", + [162] = "\209\158", + [163] = "\208\136", + [164] = "\194\164", + [165] = "\210\144", + [166] = "\194\166", + [167] = "\194\167", + [168] = "\208\129", + [169] = "\194\169", + [170] = "\208\132", + [171] = "\194\171", + [172] = "\194\172", + [173] = "\194\173", + [174] = "\194\174", + [175] = "\208\135", + [176] = "\194\176", + [177] = "\194\177", + [178] = "\208\134", + [179] = "\209\150", + [180] = "\210\145", + [181] = "\194\181", + [182] = "\194\182", + [183] = "\194\183", + [184] = "\209\145", + [185] = "\226\132\150", + [186] = "\209\148", + [187] = "\194\187", + [188] = "\209\152", + [189] = "\208\133", + [190] = "\209\149", + [191] = "\209\151" +} +local utf8_decode = { + [128] = { + [147] = "\150", + [148] = "\151", + [152] = "\145", + [153] = "\146", + [154] = "\130", + [156] = "\147", + [157] = "\148", + [158] = "\132", + [160] = "\134", + [161] = "\135", + [162] = "\149", + [166] = "\133", + [176] = "\137", + [185] = "\139", + [186] = "\155" + }, + [130] = {[172] = "\136"}, + [132] = {[150] = "\185", [162] = "\153"}, + [194] = { + [152] = "\152", + [160] = "\160", + [164] = "\164", + [166] = "\166", + [167] = "\167", + [169] = "\169", + [171] = "\171", + [172] = "\172", + [173] = "\173", + [174] = "\174", + [176] = "\176", + [177] = "\177", + [181] = "\181", + [182] = "\182", + [183] = "\183", + [187] = "\187" + }, + [208] = { + [129] = "\168", + [130] = "\128", + [131] = "\129", + [132] = "\170", + [133] = "\189", + [134] = "\178", + [135] = "\175", + [136] = "\163", + [137] = "\138", + [138] = "\140", + [139] = "\142", + [140] = "\141", + [143] = "\143", + [144] = "\192", + [145] = "\193", + [146] = "\194", + [147] = "\195", + [148] = "\196", + [149] = "\197", + [150] = "\198", + [151] = "\199", + [152] = "\200", + [153] = "\201", + [154] = "\202", + [155] = "\203", + [156] = "\204", + [157] = "\205", + [158] = "\206", + [159] = "\207", + [160] = "\208", + [161] = "\209", + [162] = "\210", + [163] = "\211", + [164] = "\212", + [165] = "\213", + [166] = "\214", + [167] = "\215", + [168] = "\216", + [169] = "\217", + [170] = "\218", + [171] = "\219", + [172] = "\220", + [173] = "\221", + [174] = "\222", + [175] = "\223", + [176] = "\224", + [177] = "\225", + [178] = "\226", + [179] = "\227", + [180] = "\228", + [181] = "\229", + [182] = "\230", + [183] = "\231", + [184] = "\232", + [185] = "\233", + [186] = "\234", + [187] = "\235", + [188] = "\236", + [189] = "\237", + [190] = "\238", + [191] = "\239" + }, + [209] = { + [128] = "\240", + [129] = "\241", + [130] = "\242", + [131] = "\243", + [132] = "\244", + [133] = "\245", + [134] = "\246", + [135] = "\247", + [136] = "\248", + [137] = "\249", + [138] = "\250", + [139] = "\251", + [140] = "\252", + [141] = "\253", + [142] = "\254", + [143] = "\255", + [144] = "\161", + [145] = "\184", + [146] = "\144", + [147] = "\131", + [148] = "\186", + [149] = "\190", + [150] = "\179", + [151] = "\191", + [152] = "\188", + [153] = "\154", + [154] = "\156", + [155] = "\158", + [156] = "\157", + [158] = "\162", + [159] = "\159" + }, + [210] = {[144] = "\165", [145] = "\180"} +} + +local nmdc = { + [36] = "$", + [124] = "|" +} + +function AnsiToUtf8(s) + local r, b = "" + for i = 1, s and s:len() or 0 do + b = s:byte(i) + if b < 128 then + r = r .. string.char(b) + else + if b > 239 then + r = r .. "\209" .. string.char(b - 112) + elseif b > 191 then + r = r .. "\208" .. string.char(b - 48) + elseif ansi_decode[b] then + r = r .. ansi_decode[b] + else + r = r .. "_" + end + end + end + return r +end + +function Utf8ToAnsi(s) + local a, j, r, b = 0, 0, "" + for i = 1, s and s:len() or 0 do + b = s:byte(i) + if b < 128 then + if nmdc[b] then + r = r .. nmdc[b] + else + r = r .. string.char(b) + end + elseif a == 2 then + a, j = a - 1, b + elseif a == 1 then + --if j == nil or b == nil then return r end + --print(j) + --print(b) + --local ansi = utf8_decode[j] + --if ansi == nil then return r end + --if ansi[b] == nil then return r end + if utf8_decode[j] then + if utf8_decode[j][b] then + a, r = a - 1, r .. utf8_decode[j][b] + end + end + elseif b == 226 then + a = 2 + elseif b == 194 or b == 208 or b == 209 or b == 210 then + j, a = b, 1 + else + r = r .. "_" + end + end + return r +end diff --git a/games/default/files/Decorations/signs_lib/init.lua b/games/default/files/Decorations/signs_lib/init.lua new file mode 100644 index 000000000..95ccf1630 --- /dev/null +++ b/games/default/files/Decorations/signs_lib/init.lua @@ -0,0 +1,859 @@ +-- This mod provides the visible text on signs library used by Home Decor +-- and perhaps other mods at some point in the future. Forked from thexyz's/ +-- PilzAdam's original text-on-signs mod and rewritten by Vanessa Ezekowitz +-- and Diego Martinez + +-- textpos = { +-- { delta = {entity position for 0° yaw}, exact yaw expression } +-- { delta = {entity position for 180° yaw}, exact yaw expression } +-- { delta = {entity position for 270° yaw}, exact yaw expression } +-- { delta = {entity position for 90° yaw}, exact yaw expression } +-- } +-- Made colored metal signs optionals +local enable_colored_metal_signs = true + +-- CWz's keyword interact mod uses this setting. +local current_keyword = minetest.settings:get("interact_keyword") or "iaccept" + +signs_lib = {} +signs_lib.path = minetest.get_modpath(minetest.get_current_modname()) +screwdriver = screwdriver or {} + +-- Load support for intllib. +local S, NS = dofile(signs_lib.path .. "/intllib.lua") +signs_lib.gettext = S + +-- text encoding +dofile(signs_lib.path .. "/encoding.lua"); + +signs_lib.wallmounted_rotate = function(pos, node, user, mode, new_param2) + if mode ~= screwdriver.ROTATE_AXIS then return false end + minetest.swap_node(pos, {name = node.name, param2 = (node.param2 + 1) % 6}) + for _, v in ipairs(minetest.get_objects_inside_radius(pos, 0.5)) do + local e = v:get_luaentity() + if e and e.name == "signs:text" then + v:remove() + end + end + signs_lib.update_sign(pos) + return true +end + +signs_lib.modpath = minetest.get_modpath("signs_lib") + +local DEFAULT_TEXT_SCALE = {x=0.8, y=0.5} + +signs_lib.regular_wall_sign_model = { + nodebox = { + type = "wallmounted", + wall_side = { -0.5, -0.25, -0.4375, -0.4375, 0.375, 0.4375 }, + wall_bottom = { -0.4375, -0.5, -0.25, 0.4375, -0.4375, 0.375 }, + wall_top = { -0.4375, 0.4375, -0.375, 0.4375, 0.5, 0.25 } + }, + textpos = { + nil, + nil, + {delta = { x = 0.41, y = 0.07, z = 0 }, yaw = math.pi / -2}, + {delta = { x = -0.41, y = 0.07, z = 0 }, yaw = math.pi / 2}, + {delta = { x = 0, y = 0.07, z = 0.41 }, yaw = 0}, + {delta = { x = 0, y = 0.07, z = -0.41 }, yaw = math.pi}, + } +} + +signs_lib.metal_wall_sign_model = { + nodebox = { + type = "fixed", + fixed = {-0.4375, -0.25, 0.4375, 0.4375, 0.375, 0.5} + }, + textpos = { + {delta = { x = 0, y = 0.07, z = 0.41 }, yaw = 0}, + {delta = { x = 0.41, y = 0.07, z = 0 }, yaw = math.pi / -2}, + {delta = { x = 0, y = 0.07, z = -0.41 }, yaw = math.pi}, + {delta = { x = -0.41, y = 0.07, z = 0 }, yaw = math.pi / 2}, + } +} + +signs_lib.yard_sign_model = { + nodebox = { + type = "fixed", + fixed = { + {-0.4375, -0.25, -0.0625, 0.4375, 0.375, 0}, + {-0.0625, -0.5, -0.0625, 0.0625, -0.1875, 0}, + } + }, + textpos = { + {delta = { x = 0, y = 0.07, z = -0.08 }, yaw = 0}, + {delta = { x = -0.08, y = 0.07, z = 0 }, yaw = math.pi / -2}, + {delta = { x = 0, y = 0.07, z = 0.08 }, yaw = math.pi}, + {delta = { x = 0.08, y = 0.07, z = 0 }, yaw = math.pi / 2}, + } +} + +signs_lib.hanging_sign_model = { + nodebox = { + type = "fixed", + fixed = { + {-0.4375, -0.3125, -0.0625, 0.4375, 0.3125, 0}, + {-0.4375, 0.25, -0.03125, 0.4375, 0.5, -0.03125}, + } + }, + textpos = { + {delta = { x = 0, y = -0.02, z = -0.08 }, yaw = 0}, + {delta = { x = -0.08, y = -0.02, z = 0 }, yaw = math.pi / -2}, + {delta = { x = 0, y = -0.02, z = 0.08 }, yaw = math.pi}, + {delta = { x = 0.08, y = -0.02, z = 0 }, yaw = math.pi / 2}, + } +} + +signs_lib.sign_post_model = { + nodebox = { + type = "fixed", + fixed = { + {-0.4375, -0.25, -0.1875, 0.4375, 0.375, -0.125}, + {-0.125, -0.5, -0.125, 0.125, 0.5, 0.125}, + } + }, + textpos = { + {delta = { x = 0, y = 0.07, z = -0.2 }, yaw = 0}, + {delta = { x = -0.2, y = 0.07, z = 0 }, yaw = math.pi / -2}, + {delta = { x = 0, y = 0.07, z = 0.2 }, yaw = math.pi}, + {delta = { x = 0.2, y = 0.07, z = 0 }, yaw = math.pi / 2}, + } +} + +-- the list of standard sign nodes + +signs_lib.sign_node_list = { + "signs:sign_wall_green", + "signs:sign_wall_yellow", + "signs:sign_wall_red", + "signs:sign_wall_white", + "signs:sign_wall_black", + "signs:sign_wall_orange", + "signs:sign_wall_blue", + "signs:sign_wall_pink", +} + +local default_sign, default_sign_image + +-- Default sign was renamed in 0.4.14. Support both & old versions. +if minetest.registered_nodes["default:sign_wall_wood"] then + default_sign = "default:sign_wall_wood" + default_sign_image = "default_sign_wood.png" +else + default_sign = "default:sign_wall" + default_sign_image = "default_sign_wall.png" +end + +default_sign_metal = "default:sign_wall_steel" +default_sign_metal_image = "default_sign_steel.png" + +--table copy + +function signs_lib.table_copy(t) + local nt = { }; + for k, v in pairs(t) do + if type(v) == "table" then + nt[k] = signs_lib.table_copy(v) + else + nt[k] = v + end + end + return nt +end + +-- infinite stacks + +if not minetest.settings:get_bool("creative_mode") then + signs_lib.expect_infinite_stacks = false +else + signs_lib.expect_infinite_stacks = true +end + +-- CONSTANTS + +-- Path to the textures. +local TP = signs_lib.path .. "/textures" +-- Font file formatter +local CHAR_FILE = "%s_%02x.png" +-- Fonts path +local CHAR_PATH = TP .. "/" .. CHAR_FILE + +-- Font name. +local font_name = "hdf" + +-- Lots of overkill here. KISS advocates, go away, shoo! ;) -- kaeza + +local PNG_HDR = string.char(0x89, 0x50, 0x4E, 0x47, 0x0D, 0x0A, 0x1A, 0x0A) + +-- check if a file does exist +-- to avoid reopening file after checking again +-- pass TRUE as second argument +function file_exists(name, return_handle, mode) + mode = mode or "r"; + local f = io.open(name, mode) + if f ~= nil then + if (return_handle) then + return f + end + io.close(f) + return true + else + return false + end +end + +-- Read the image size from a PNG file. +-- Returns image_w, image_h. +-- Only the LSB is read from each field! +local function read_image_size(filename) + local f = file_exists(filename, true, "rb") + -- file might not exist (don't crash the game) + if (not f) then + return 0, 0 + end + f:seek("set", 0x0) + local hdr = f:read(string.len(PNG_HDR)) + if hdr ~= PNG_HDR then + f:close() + return + end + f:seek("set", 0x13) + local ws = f:read(1) + f:seek("set", 0x17) + local hs = f:read(1) + f:close() + return ws:byte(), hs:byte() +end + +-- Set by build_char_db() +local LINE_HEIGHT +local SIGN_WIDTH +local COLORBGW, COLORBGH + +-- Size of the canvas, in characters. +-- Please note that CHARS_PER_LINE is multiplied by the average character +-- width to get the total width of the canvas, so for proportional fonts, +-- either more or fewer characters may fit on a line. +local CHARS_PER_LINE = 20 +local NUMBER_OF_LINES = 6 + +-- 6 rows, max 80 chars per, plus a bit of fudge to +-- avoid excess trimming (e.g. due to color codes) + +local MAX_INPUT_CHARS = 600 + +-- This holds the individual character widths. +-- Indexed by the actual character (e.g. charwidth["A"]) +local charwidth + +-- helper functions to trim sign text input/output + +local function trim_input(text) + return text:sub(1, math.min(MAX_INPUT_CHARS, text:len())) +end + +local function build_char_db() + + charwidth = { } + + -- To calculate average char width. + local total_width = 0 + local char_count = 0 + + for c = 32, 255 do + local w, h = read_image_size(CHAR_PATH:format(font_name, c)) + if w and h then + local ch = string.char(c) + charwidth[ch] = w + total_width = total_width + w + char_count = char_count + 1 + end + end + + COLORBGW, COLORBGH = read_image_size(TP.."/slc_n.png") + assert(COLORBGW and COLORBGH, "error reading bg dimensions") + LINE_HEIGHT = COLORBGH + + -- XXX: Is there a better way to calc this? + SIGN_WIDTH = math.floor((total_width / char_count) * CHARS_PER_LINE) + +end + +local sign_groups = {choppy=2, dig_immediate=2} + +local fences_with_sign = { } + +-- some local helper functions + +local function split_lines_and_words_old(text) + local lines = { } + local line = { } + if not text then return end + for word in text:gmatch("%S+") do + if word == "|" then + table.insert(lines, line) + if #lines >= NUMBER_OF_LINES then break end + line = { } + elseif word == "\\|" then + table.insert(line, "|") + else + table.insert(line, word) + end + end + table.insert(lines, line) + return lines +end + +local function split_lines_and_words(text) + if not text then return end + text = string.gsub(text, "@KEYWORD", current_keyword) + local lines = { } + for _, line in ipairs(text:split("\n")) do + table.insert(lines, line:split(" ")) + end + return lines +end + +local math_max = math.max + +local function fill_line(x, y, w, c) + c = c or "0" + local tex = { } + for xx = 0, math.max(0, w), COLORBGW do + table.insert(tex, (":%d,%d=slc_%s.png"):format(x + xx, y, c)) + end + return table.concat(tex) +end + +-- make char texture file name +-- if texture file does not exist use fallback texture instead +local function char_tex(font_name, ch) + local c = ch:byte() + local exists, tex = file_exists(CHAR_PATH:format(font_name, c)) + if exists and c ~= 14 then + tex = CHAR_FILE:format(font_name, c) + else + tex = CHAR_FILE:format(font_name, 0x0) + end + return tex, exists +end + +local function make_line_texture(line, lineno, pos) + + local width = 0 + local maxw = 0 + + local words = { } + local n = minetest.registered_nodes[minetest.get_node(pos).name] + local default_color = n.default_color or 0 + + local cur_color = tonumber(default_color, 16) + + -- We check which chars are available here. + for word_i, word in ipairs(line) do + local chars = { } + local ch_offs = 0 + local word_l = #word + local i = 1 + while i <= word_l do + local c = word:sub(i, i) + if c == "#" then + local cc = tonumber(word:sub(i+1, i+1), 16) + if cc then + i = i + 1 + cur_color = cc + end + else + local w = charwidth[c] + if w then + width = width + w + 1 + if width >= (SIGN_WIDTH - charwidth[" "]) then + width = 0 + else + maxw = math_max(width, maxw) + end + if #chars < MAX_INPUT_CHARS then + table.insert(chars, { + off = ch_offs, + tex = char_tex(font_name, c), + col = ("%X"):format(cur_color), + }) + end + ch_offs = ch_offs + w + end + end + i = i + 1 + end + width = width + charwidth[" "] + 1 + maxw = math_max(width, maxw) + table.insert(words, { chars=chars, w=ch_offs }) + end + + -- Okay, we actually build the "line texture" here. + + local texture = { } + + local start_xpos = math.floor((SIGN_WIDTH - maxw) / 2) + + local xpos = start_xpos + local ypos = (LINE_HEIGHT * lineno) + + cur_color = nil + + for word_i, word in ipairs(words) do + local xoffs = (xpos - start_xpos) + if (xoffs > 0) and ((xoffs + word.w) > maxw) then + table.insert(texture, fill_line(xpos, ypos, maxw, "n")) + xpos = start_xpos + ypos = ypos + LINE_HEIGHT + lineno = lineno + 1 + if lineno >= NUMBER_OF_LINES then break end + table.insert(texture, fill_line(xpos, ypos, maxw, cur_color)) + end + for ch_i, ch in ipairs(word.chars) do + if ch.col ~= cur_color then + cur_color = ch.col + table.insert(texture, fill_line(xpos + ch.off, ypos, maxw, cur_color)) + end + table.insert(texture, (":%d,%d=%s"):format(xpos + ch.off, ypos, ch.tex)) + end + table.insert( + texture, + (":%d,%d="):format(xpos + word.w, ypos) .. char_tex(font_name, " ") + ) + xpos = xpos + word.w + charwidth[" "] + if xpos >= (SIGN_WIDTH + charwidth[" "]) then break end + end + + table.insert(texture, fill_line(xpos, ypos, maxw, "n")) + table.insert(texture, fill_line(start_xpos, ypos + LINE_HEIGHT, maxw, "n")) + + return table.concat(texture), lineno +end + +local function make_sign_texture(lines, pos) + local texture = { ("[combine:%dx%d"):format(SIGN_WIDTH, LINE_HEIGHT * NUMBER_OF_LINES) } + local lineno = 0 + for i = 1, #lines do + if lineno >= NUMBER_OF_LINES then break end + local linetex, ln = make_line_texture(lines[i], lineno, pos) + table.insert(texture, linetex) + lineno = ln + 1 + end + table.insert(texture, "^[makealpha:0,0,0") + return table.concat(texture, "") +end + +local function set_obj_text(obj, text, new, pos) + local split = new and split_lines_and_words or split_lines_and_words_old + local text_ansi = Utf8ToAnsi(text) + local n = minetest.registered_nodes[minetest.get_node(pos).name] + local text_scale = (n and n.text_scale) or DEFAULT_TEXT_SCALE + obj:set_properties({ + textures={make_sign_texture(split(text_ansi), pos)}, + visual_size = text_scale, + }) +end + +signs_lib.construct_sign = function(pos, locked) + local meta = minetest.get_meta(pos) + meta:set_string( + "formspec", + "size[6,4]".. + "textarea[0,-0.3;6.5,3;text;;${text}]".. + "button_exit[2,3.4;2,1;ok;"..S("Write").."]".. + "") + meta:set_string("infotext", "") +end + +signs_lib.destruct_sign = function(pos) + local objects = minetest.get_objects_inside_radius(pos, 0.5) + for _, v in ipairs(objects) do + local e = v:get_luaentity() + if e and e.name == "signs:text" then + v:remove() + end + end +end + +local function make_infotext(text) + text = trim_input(text) + local lines = split_lines_and_words(text) or {} + local lines2 = { } + for _, line in ipairs(lines) do + table.insert(lines2, (table.concat(line, " "):gsub("#[0-9a-fA-F]", ""):gsub("##", "#"))) + end + return table.concat(lines2, "\n") +end + +signs_lib.update_sign = function(pos, fields, owner) + + -- First, check if the interact keyword from CWz's mod is being set, + -- or has been changed since the last restart... + + local meta = minetest.get_meta(pos) + local stored_text = meta:get_string("text") or "" + current_keyword = rawget(_G, "mki_interact_keyword") or current_keyword + + if fields then -- ...we're editing the sign. + if fields.text and string.find(dump(fields.text), "@KEYWORD") then + meta:set_string("keyword", current_keyword) + else + meta:set_string("keyword", nil) + end + elseif string.find(dump(stored_text), "@KEYWORD") then -- we need to check if the password is being set/changed + + local stored_keyword = meta:get_string("keyword") + if stored_keyword and stored_keyword ~= "" and stored_keyword ~= current_keyword then + signs_lib.destruct_sign(pos) + meta:set_string("keyword", current_keyword) + local ownstr = "" + if owner then ownstr = S("Locked sign, owned by @1\n", owner) end + meta:set_string("infotext", ownstr..string.gsub(make_infotext(stored_text), "@KEYWORD", current_keyword).." ") + end + end + + local new + + if fields then + + fields.text = trim_input(fields.text) + + local ownstr = "" + if owner then ownstr = S("Locked sign, owned by @1\n", owner) end + + meta:set_string("infotext", ownstr..string.gsub(make_infotext(fields.text), "@KEYWORD", current_keyword).." ") + meta:set_string("text", fields.text) + + meta:set_int("__signslib_new_format", 1) + new = true + else + new = (meta:get_int("__signslib_new_format") ~= 0) + end + local text = meta:get_string("text") + if text == nil then return end + local objects = minetest.get_objects_inside_radius(pos, 0.5) + local found + for _, v in ipairs(objects) do + local e = v:get_luaentity() + if e and e.name == "signs:text" then + if found then + v:remove() + else + set_obj_text(v, text, new, pos) + found = true + end + end + end + if found then + return + end + + -- if there is no entity + local sign_info + local signnode = minetest.get_node(pos) + local signname = signnode.name + local textpos = minetest.registered_nodes[signname].textpos + if textpos then + sign_info = textpos[minetest.get_node(pos).param2 + 1] + elseif signnode.name == "signs:sign_yard" then + sign_info = signs_lib.yard_sign_model.textpos[minetest.get_node(pos).param2 + 1] + elseif signnode.name == "signs:sign_hanging" then + sign_info = signs_lib.hanging_sign_model.textpos[minetest.get_node(pos).param2 + 1] + elseif string.find(signnode.name, "sign_wall") then + if signnode.name == default_sign + or signnode.name == default_sign_metal + or signnode.name == "locked_sign:sign_wall_locked" then + sign_info = signs_lib.regular_wall_sign_model.textpos[minetest.get_node(pos).param2 + 1] + else + sign_info = signs_lib.metal_wall_sign_model.textpos[minetest.get_node(pos).param2 + 1] + end + else -- ...it must be a sign on a fence post. + sign_info = signs_lib.sign_post_model.textpos[minetest.get_node(pos).param2 + 1] + end + if sign_info == nil then + return + end + local text = minetest.add_entity({x = pos.x + sign_info.delta.x, + y = pos.y + sign_info.delta.y, + z = pos.z + sign_info.delta.z}, "signs:text") + text:setyaw(sign_info.yaw) +end + +-- What kind of sign do we need to place, anyway? + +function signs_lib.determine_sign_type(itemstack, placer, pointed_thing, locked) + local name + name = minetest.get_node(pointed_thing.under).name + if fences_with_sign[name] then + if minetest.is_protected(pointed_thing.under, placer:get_player_name()) then + minetest.record_protection_violation(pointed_thing.under, + placer:get_player_name()) + return itemstack + end + else + name = minetest.get_node(pointed_thing.above).name + local def = minetest.registered_nodes[name] + if not def.buildable_to then + return itemstack + end + if minetest.is_protected(pointed_thing.above, placer:get_player_name()) then + minetest.record_protection_violation(pointed_thing.above, + placer:get_player_name()) + return itemstack + end + end + + local node=minetest.get_node(pointed_thing.under) + + if minetest.registered_nodes[node.name] and + minetest.registered_nodes[node.name].on_rightclick and + not placer:get_player_control().sneak then + return minetest.registered_nodes[node.name].on_rightclick(pointed_thing.under, node, placer, itemstack, pointed_thing) + else + local above = pointed_thing.above + local under = pointed_thing.under + local dir = {x = under.x - above.x, + y = under.y - above.y, + z = under.z - above.z} + + local wdir = minetest.dir_to_wallmounted(dir) + + local placer_pos = placer:getpos() + if placer_pos then + dir = { + x = above.x - placer_pos.x, + y = above.y - placer_pos.y, + z = above.z - placer_pos.z + } + end + + local fdir = minetest.dir_to_facedir(dir) + local pt_name = minetest.get_node(under).name + local signname = itemstack:get_name() + + if fences_with_sign[pt_name] and signname == default_sign then + minetest.add_node(under, {name = fences_with_sign[pt_name], param2 = fdir}) + elseif wdir == 0 and signname == default_sign then + minetest.add_node(above, {name = "signs:sign_hanging", param2 = fdir}) + elseif wdir == 1 and signname == default_sign then + minetest.add_node(above, {name = "signs:sign_yard", param2 = fdir}) + elseif signname == default_sign_metal then + minetest.add_node(above, {name = signname, param2 = wdir }) + elseif signname ~= default_sign + and signname ~= default_sign_metal + and signname ~= "locked_sign:sign_wall_locked" then -- it's a signs_lib colored metal wall sign. + minetest.add_node(above, {name = signname, param2 = fdir}) + else -- it must be a default or locked wooden wall sign + minetest.add_node(above, {name = signname, param2 = wdir }) -- note it's wallmounted here! + if locked then + local meta = minetest.get_meta(above) + local owner = placer:get_player_name() + meta:set_string("owner", owner) + end + end + + if not signs_lib.expect_infinite_stacks then + itemstack:take_item() + end + return itemstack + end +end + +function signs_lib.receive_fields(pos, formname, fields, sender, lock) + if minetest.is_protected(pos, sender:get_player_name()) then + minetest.record_protection_violation(pos, + sender:get_player_name()) + return + end + local lockstr = lock and S("locked ") or "" + if fields and fields.text and fields.ok then + minetest.log("action", S("@1 wrote \"@2\" to @3sign at @4", + (sender:get_player_name() or ""), + fields.text:gsub('\\', '\\\\'):gsub("\n", "\\n"), + lockstr, + minetest.pos_to_string(pos) + )) + if lock then + signs_lib.update_sign(pos, fields, sender:get_player_name()) + else + signs_lib.update_sign(pos, fields) + end + end +end + +-- metal, colored signs +if enable_colored_metal_signs then + -- array : color, translated color, default text color + + local sign_colors = { + {"green", S("green"), "f", color3}, + {"yellow", S("yellow"), "0", color7}, + {"red", S("red"), "f", color6}, + {"white", S("white"), "4", color4}, + {"black", S("black"), "0", color1}, + {"orange", S("orange"), "0", color5}, + {"blue", S("blue"), "f", color2}, + {"pink", S("pink"), "f", color8}, + } + + for i, color in ipairs(sign_colors) do + minetest.register_node(":signs:sign_wall_"..color[1], { + description = S("Sign (@1, metal)", color[2]), + inventory_image = "signs.png^[colorize:#"..color[4]..":70", + wield_image = "color_handwhite.png^(color_handwhite2.png^[colorize:#"..color[4]..":70)", + wield_scale = {x=1,y=1,z=0.5}, + node_placement_prediction = "", + paramtype = "light", + sunlight_propagates = true, + paramtype2 = "facedir", + drawtype = "nodebox", + node_box = signs_lib.metal_wall_sign_model.nodebox, + tiles = { + "signs_metal_tb.png", + "signs_metal_tb.png", + "signs_metal_sides.png", + "signs_metal_sides.png", + "signs_metal_back.png", + "color_white.png^[colorize:#"..color[4]..":70" + }, + default_color = color[3], + groups = sign_groups, + on_place = function(itemstack, placer, pointed_thing) + return signs_lib.determine_sign_type(itemstack, placer, pointed_thing) + end, + on_construct = function(pos) + signs_lib.construct_sign(pos) + end, + on_destruct = function(pos) + signs_lib.destruct_sign(pos) + end, + on_receive_fields = function(pos, formname, fields, sender) + signs_lib.receive_fields(pos, formname, fields, sender) + end, + on_punch = function(pos, node, puncher) + signs_lib.update_sign(pos) + end, + }) + end +end + +local signs_text_on_activate + +signs_text_on_activate = function(self) + local pos = self.object:getpos() + local meta = minetest.get_meta(pos) + local text = meta:get_string("text") + local new = (meta:get_int("__signslib_new_format") ~= 0) + if text and minetest.registered_nodes[minetest.get_node(pos).name] then + text = trim_input(text) + set_obj_text(self.object, text, new, pos) + end +end + +minetest.register_entity(":signs:text", { + collisionbox = { 0, 0, 0, 0, 0, 0 }, + visual = "upright_sprite", + textures = {}, + + on_activate = signs_text_on_activate, +}) + +-- And the good stuff here! :-) + +function signs_lib.register_fence_with_sign(fencename, fencewithsignname) + local def = minetest.registered_nodes[fencename] + local def_sign = minetest.registered_nodes[fencewithsignname] + if not (def and def_sign) then + minetest.log("warning", "[signs_lib] "..S("Attempt to register unknown node as fence")) + return + end + def = signs_lib.table_copy(def) + def_sign = signs_lib.table_copy(def_sign) + fences_with_sign[fencename] = fencewithsignname + + def_sign.on_place = function(itemstack, placer, pointed_thing, ...) + local node_above = minetest.get_node_or_nil(pointed_thing.above) + local node_under = minetest.get_node_or_nil(pointed_thing.under) + local def_above = node_above and minetest.registered_nodes[node_above.name] + local def_under = node_under and minetest.registered_nodes[node_under.name] + local fdir = minetest.dir_to_facedir(placer:get_look_dir()) + local playername = placer:get_player_name() + + if minetest.is_protected(pointed_thing.under, playername) then + minetest.record_protection_violation(pointed_thing.under, playername) + return itemstack + end + + if minetest.is_protected(pointed_thing.above, playername) then + minetest.record_protection_violation(pointed_thing.above, playername) + return itemstack + end + + if def_under and def_under.on_rightclick then + return def_under.on_rightclick(pointed_thing.under, node_under, placer, itemstack, pointed_thing) or itemstack + elseif def_under and def_under.buildable_to then + minetest.add_node(pointed_thing.under, {name = fencename, param2 = fdir}) + if not signs_lib.expect_infinite_stacks then + itemstack:take_item() + end + placer:set_wielded_item(itemstack) + elseif def_above and def_above.buildable_to then + minetest.add_node(pointed_thing.above, {name = fencename, param2 = fdir}) + if not signs_lib.expect_infinite_stacks then + itemstack:take_item() + end + placer:set_wielded_item(itemstack) + end + return itemstack + end + def_sign.on_construct = function(pos, ...) + signs_lib.construct_sign(pos) + end + def_sign.on_destruct = function(pos, ...) + signs_lib.destruct_sign(pos) + end + def_sign.on_receive_fields = function(pos, formname, fields, sender) + signs_lib.receive_fields(pos, formname, fields, sender) + end + def_sign.on_punch = function(pos, node, puncher, ...) + signs_lib.update_sign(pos) + end + local fencename = fencename + def_sign.after_dig_node = function(pos, node, ...) + node.name = fencename + minetest.add_node(pos, node) + end + def_sign.drop = default_sign + minetest.register_node(":"..fencename, def) + minetest.register_node(":"..fencewithsignname, def_sign) + table.insert(signs_lib.sign_node_list, fencewithsignname) + minetest.log("verbose", S("Registered @1 and @2", fencename, fencewithsignname)) +end + +build_char_db() + +minetest.register_alias("homedecor:fence_wood_with_sign", "signs:sign_post") +minetest.register_alias("sign_wall_locked", "locked_sign:sign_wall_locked") + +signs_lib.register_fence_with_sign("default:fence_wood", "signs:sign_post") + +-- restore signs' text after /clearobjects and the like, the next time +-- a block is reloaded by the server. + +minetest.register_lbm({ + nodenames = signs_lib.sign_node_list, + name = "signs_lib:restore_sign_text", + label = "Restore sign text", + run_at_every_load = true, + action = function(pos, node) + signs_lib.update_sign(pos) + end +}) + +-- locked sign + +if minetest.settings:get("log_mods") then + minetest.log("action", S("[MOD] signs loaded")) +end diff --git a/games/default/files/Decorations/signs_lib/intllib.lua b/games/default/files/Decorations/signs_lib/intllib.lua new file mode 100644 index 000000000..6669d7202 --- /dev/null +++ b/games/default/files/Decorations/signs_lib/intllib.lua @@ -0,0 +1,45 @@ + +-- Fallback functions for when `intllib` is not installed. +-- Code released under Unlicense . + +-- Get the latest version of this file at: +-- https://raw.githubusercontent.com/minetest-mods/intllib/master/lib/intllib.lua + +local function format(str, ...) + local args = { ... } + local function repl(escape, open, num, close) + if escape == "" then + local replacement = tostring(args[tonumber(num)]) + if open == "" then + replacement = replacement..close + end + return replacement + else + return "@"..open..num..close + end + end + return (str:gsub("(@?)@(%(?)(%d+)(%)?)", repl)) +end + +local gettext, ngettext +if minetest.get_modpath("intllib") then + if intllib.make_gettext_pair then + -- New method using gettext. + gettext, ngettext = intllib.make_gettext_pair() + else + -- Old method using text files. + gettext = intllib.Getter() + end +end + +-- Fill in missing functions. + +gettext = gettext or function(msgid, ...) + return format(msgid, ...) +end + +ngettext = ngettext or function(msgid, msgid_plural, n, ...) + return format(n==1 and msgid or msgid_plural, ...) +end + +return gettext, ngettext diff --git a/games/default/files/Decorations/signs_lib/locale/de.po b/games/default/files/Decorations/signs_lib/locale/de.po new file mode 100644 index 000000000..a2f4150f4 --- /dev/null +++ b/games/default/files/Decorations/signs_lib/locale/de.po @@ -0,0 +1,97 @@ +# German Translation for the signs_lib mod. +# Copyright (C) 2018 Vanessa Ezekowitz +# This file is distributed under the same license as the signs_lib package. +# Xanthin, 2017. +# CodeXP , 2018. +# +msgid "" +msgstr "" +"Project-Id-Version: \n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2017-07-31 18:31+0200\n" +"PO-Revision-Date: 2018-03-24 22:00+0100\n" +"Last-Translator: CodeXP \n" +"Language-Team: \n" +"Language: de\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Generator: Poedit 1.8.12\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" + +#: init.lua +msgid "Write" +msgstr "schreiben" + +#: init.lua +msgid "Locked sign, owned by @1\n" +msgstr "gesperrter Schild, gehört @1\n" + +#: init.lua +msgid "locked " +msgstr "gesperrt " + +#: init.lua +#, fuzzy +msgid "@1 wrote \"@2\" to @3sign at @4" +msgstr "@1 schrieb \"@2\" auf das @3Schild bei @4" + +#: init.lua +msgid "Sign" +msgstr "Schild" + +#: init.lua +msgid "Can edit all locked signs" +msgstr "Kann alle gesperrte Schilder bearbeiten" + +#: init.lua +msgid "Locked Sign" +msgstr "gesperrter Schild" + +#: init.lua +msgid "green" +msgstr "grün" + +#: init.lua +msgid "yellow" +msgstr "gelb" + +#: init.lua +msgid "red" +msgstr "rot" + +#: init.lua +msgid "white_red" +msgstr "weißrot" + +#: init.lua +msgid "white_black" +msgstr "schwarzweiß" + +#: init.lua +msgid "orange" +msgstr "orange" + +#: init.lua +msgid "blue" +msgstr "blau" + +#: init.lua +msgid "brown" +msgstr "braun" + +#: init.lua +msgid "Sign (@1, metal)" +msgstr "Schild (@1, Metall)" + +#: init.lua +msgid "Attempt to register unknown node as fence" +msgstr "Versuch ein unbekanntes Element als Zaun zu registrieren" + +#: init.lua +msgid "Registered @1 and @2" +msgstr "Registrierte @1 und @2" + +#: init.lua +msgid "[MOD] signs loaded" +msgstr "[MOD] Schilder-Mod geladen" diff --git a/games/default/files/Decorations/signs_lib/locale/es.po b/games/default/files/Decorations/signs_lib/locale/es.po new file mode 100644 index 000000000..85799370d --- /dev/null +++ b/games/default/files/Decorations/signs_lib/locale/es.po @@ -0,0 +1,95 @@ +# SOME DESCRIPTIVE TITLE. +# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER +# This file is distributed under the same license as the PACKAGE package. +# FIRST AUTHOR , YEAR. +# +msgid "" +msgstr "" +"Project-Id-Version: \n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2017-07-31 18:22+0200\n" +"PO-Revision-Date: 2017-07-31 18:30+0200\n" +"Language-Team: \n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Generator: Poedit 1.8.12\n" +"Last-Translator: Carlos Barraza\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" +"Language: es\n" + +#: init.lua +msgid "Locked sign, owned by @1\n" +msgstr "" + +#: init.lua +msgid "locked " +msgstr "bloqueada " + +#: init.lua +msgid "@1 wrote \"@2\" to @3sign at @4" +msgstr "@1 escribio \"@2\" en el cartel @3en @4" + +#: init.lua +msgid "Sign" +msgstr "Letrero" + +#: init.lua +msgid "Can edit all locked signs" +msgstr "" + +#: init.lua +#, fuzzy +msgid "Locked Sign" +msgstr "Letrero bloqueada" + +#: init.lua +msgid "green" +msgstr "verde" + +#: init.lua +msgid "yellow" +msgstr "amarillo" + +#: init.lua +msgid "red" +msgstr "rojo" + +#: init.lua +#, fuzzy +msgid "white_red" +msgstr "rojo y blanco" + +#: init.lua +#, fuzzy +msgid "white_black" +msgstr "negro y blanco" + +#: init.lua +msgid "orange" +msgstr "naranja" + +#: init.lua +msgid "blue" +msgstr "azul" + +#: init.lua +msgid "brown" +msgstr "marrón" + +#: init.lua +#, fuzzy +msgid "Sign (@1, metal)" +msgstr "Letrero (@1, metal)" + +#: init.lua +msgid "Attempt to register unknown node as fence" +msgstr "" + +#: init.lua +msgid "Registered @1 and @2" +msgstr "Registrado @1 y @2" + +#: init.lua +msgid "[MOD] signs loaded" +msgstr "[MOD] signs cargados" diff --git a/games/default/files/Decorations/signs_lib/locale/fr.po b/games/default/files/Decorations/signs_lib/locale/fr.po new file mode 100644 index 000000000..a50357405 --- /dev/null +++ b/games/default/files/Decorations/signs_lib/locale/fr.po @@ -0,0 +1,91 @@ +# SOME DESCRIPTIVE TITLE. +# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER +# This file is distributed under the same license as the PACKAGE package. +# FIRST AUTHOR , YEAR. +# +msgid "" +msgstr "" +"Project-Id-Version: \n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2017-07-31 18:13+0200\n" +"PO-Revision-Date: 2017-07-31 18:22+0200\n" +"Language-Team: \n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Generator: Poedit 1.8.12\n" +"Last-Translator: fat115 \n" +"Plural-Forms: nplurals=2; plural=(n > 1);\n" +"Language: fr\n" + +#: init.lua +msgid "Locked sign, owned by @1\n" +msgstr "Panneau verrouillé, appartient à @1\n" + +#: init.lua +msgid "locked " +msgstr "verrouillé " + +#: init.lua +msgid "@1 wrote \"@2\" to @3sign at @4" +msgstr "@1 a écrit \"@2\" sur le panneau @3en @4" + +#: init.lua +msgid "Sign" +msgstr "Panneau" + +#: init.lua +msgid "Can edit all locked signs" +msgstr "Peut modifier les panneaux verrouillés" + +#: init.lua +msgid "Locked Sign" +msgstr "Panneau (verrouillé)" + +#: init.lua +msgid "green" +msgstr "vert" + +#: init.lua +msgid "yellow" +msgstr "jaune" + +#: init.lua +msgid "red" +msgstr "rouge" + +#: init.lua +msgid "white_red" +msgstr "rouge et blanc" + +#: init.lua +msgid "white_black" +msgstr "noir et blanc" + +#: init.lua +msgid "orange" +msgstr "orange" + +#: init.lua +msgid "blue" +msgstr "bleu" + +#: init.lua +msgid "brown" +msgstr "marron" + +#: init.lua +msgid "Sign (@1, metal)" +msgstr "Panneau (@1, métal)" + +#: init.lua +msgid "Attempt to register unknown node as fence" +msgstr "Tentative d'enregistrer un nœud inconnu comme barrière" + +#: init.lua +msgid "Registered @1 and @2" +msgstr "Enregistrement de @1 et @" + +#: init.lua +msgid "[MOD] signs loaded" +msgstr "[MOD] signs chargé" diff --git a/games/default/files/Decorations/signs_lib/locale/ms.po b/games/default/files/Decorations/signs_lib/locale/ms.po new file mode 100644 index 000000000..da115120c --- /dev/null +++ b/games/default/files/Decorations/signs_lib/locale/ms.po @@ -0,0 +1,91 @@ +# SOME DESCRIPTIVE TITLE. +# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER +# This file is distributed under the same license as the PACKAGE package. +# FIRST AUTHOR , YEAR. +# +msgid "" +msgstr "" +"Project-Id-Version: \n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2017-07-31 18:00+0200\n" +"PO-Revision-Date: 2017-11-17 02:38+0800\n" +"Language-Team: \n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Generator: Poedit 2.0.4\n" +"Last-Translator: \n" +"Plural-Forms: nplurals=1; plural=0;\n" +"Language: ms\n" + +#: init.lua +msgid "Locked sign, owned by @1\n" +msgstr "Papan tanda berkunci, milik @1\n" + +#: init.lua +msgid "locked " +msgstr "berkunci " + +#: init.lua +msgid "@1 wrote \"@2\" to @3sign at @4" +msgstr "@1 menulis \"@2\" atas papan tanda @3dekat @4" + +#: init.lua +msgid "Sign" +msgstr "Papan Tanda" + +#: init.lua +msgid "Can edit all locked signs" +msgstr "Boleh sunting semua papan tanda berkunci" + +#: init.lua +msgid "Locked Sign" +msgstr "Papan Tanda Berkunci" + +#: init.lua +msgid "green" +msgstr "hijau" + +#: init.lua +msgid "yellow" +msgstr "kuning" + +#: init.lua +msgid "red" +msgstr "merah" + +#: init.lua +msgid "white_red" +msgstr "putih_merah" + +#: init.lua +msgid "white_black" +msgstr "putih_hitam" + +#: init.lua +msgid "orange" +msgstr "jingga" + +#: init.lua +msgid "blue" +msgstr "biru" + +#: init.lua +msgid "brown" +msgstr "perang" + +#: init.lua +msgid "Sign (@1, metal)" +msgstr "Papan Tanda (@1, logam)" + +#: init.lua +msgid "Attempt to register unknown node as fence" +msgstr "Cuba untuk mendaftar nod tidak diketahui sebagai pagar" + +#: init.lua +msgid "Registered @1 and @2" +msgstr "Telah daftar @1 dan @2" + +#: init.lua +msgid "[MOD] signs loaded" +msgstr "[MODS] signs telah dimuatkan" diff --git a/games/default/files/Decorations/signs_lib/locale/ru.po b/games/default/files/Decorations/signs_lib/locale/ru.po new file mode 100644 index 000000000..9cd01aa49 --- /dev/null +++ b/games/default/files/Decorations/signs_lib/locale/ru.po @@ -0,0 +1,94 @@ +# Russian Translation for the signs_lib mod. +# Copyright (C) 2018 Vanessa Ezekowitz +# This file is distributed under the same license as the signs_lib package. +# CodeXP , 2018. +# +#, fuzzy +msgid "" +msgstr "" +"Project-Id-Version: signs_lib\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2018-03-24 22:23+0100\n" +"PO-Revision-Date: \n" +"Last-Translator: CodeXP \n" +"Language-Team: \n" +"Language: ru\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" + +#: init.lua +msgid "Write" +msgstr "записать" + +#: init.lua +msgid "Locked sign, owned by @1\n" +msgstr "защищенная табличка, пренадлежит @1\n" + +#: init.lua +msgid "locked " +msgstr "защищенный " + +#: init.lua +msgid "@1 wrote \"@2\" to @3sign at @4" +msgstr "@1 записал \"@2\" в @3sign на @4" + +#: init.lua +msgid "Sign" +msgstr "табличка" + +#: init.lua +msgid "Can edit all locked signs" +msgstr "Может редактировать все защищенные таблички" + +#: init.lua +msgid "Locked Sign" +msgstr "защищенная табличка" + +#: init.lua +msgid "green" +msgstr "зеленая" + +#: init.lua +msgid "yellow" +msgstr "желтая" + +#: init.lua +msgid "red" +msgstr "красная" + +#: init.lua +msgid "white_red" +msgstr "краснобелая" + +#: init.lua +msgid "white_black" +msgstr "чернобелая" + +#: init.lua +msgid "orange" +msgstr "оранжевая" + +#: init.lua +msgid "blue" +msgstr "синея" + +#: init.lua +msgid "brown" +msgstr "коричневая" + +#: init.lua +msgid "Sign (@1, metal)" +msgstr "Табличка (@1, металл)" + +#: init.lua +msgid "Attempt to register unknown node as fence" +msgstr "Попытка зарегистрировать неизвестный узел как забор" + +#: init.lua +msgid "Registered @1 and @2" +msgstr "Зарегистрировано @1 для @2" + +#: init.lua +msgid "[MOD] signs loaded" +msgstr "[MOD] мод табличек загружен" diff --git a/games/default/files/Decorations/signs_lib/locale/template.pot b/games/default/files/Decorations/signs_lib/locale/template.pot new file mode 100644 index 000000000..e277437ff --- /dev/null +++ b/games/default/files/Decorations/signs_lib/locale/template.pot @@ -0,0 +1,94 @@ +# LANGUAGE Translation for the signs_lib mod. +# Copyright (C) 2018 Vanessa Ezekowitz +# This file is distributed under the same license as the signs_lib package. +# FIRST AUTHOR , YEAR. +# +#, fuzzy +msgid "" +msgstr "" +"Project-Id-Version: signs_lib\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2018-03-24 22:23+0100\n" +"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" +"Last-Translator: FULL NAME \n" +"Language-Team: LANGUAGE \n" +"Language: \n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" + +#: init.lua +msgid "Write" +msgstr "" + +#: init.lua +msgid "Locked sign, owned by @1\n" +msgstr "" + +#: init.lua +msgid "locked " +msgstr "" + +#: init.lua +msgid "@1 wrote \"@2\" to @3sign at @4" +msgstr "" + +#: init.lua +msgid "Sign" +msgstr "" + +#: init.lua +msgid "Can edit all locked signs" +msgstr "" + +#: init.lua +msgid "Locked Sign" +msgstr "" + +#: init.lua +msgid "green" +msgstr "" + +#: init.lua +msgid "yellow" +msgstr "" + +#: init.lua +msgid "red" +msgstr "" + +#: init.lua +msgid "white_red" +msgstr "" + +#: init.lua +msgid "white_black" +msgstr "" + +#: init.lua +msgid "orange" +msgstr "" + +#: init.lua +msgid "blue" +msgstr "" + +#: init.lua +msgid "brown" +msgstr "" + +#: init.lua +msgid "Sign (@1, metal)" +msgstr "" + +#: init.lua +msgid "Attempt to register unknown node as fence" +msgstr "" + +#: init.lua +msgid "Registered @1 and @2" +msgstr "" + +#: init.lua +msgid "[MOD] signs loaded" +msgstr "" diff --git a/games/default/files/Decorations/signs_lib/mod.conf b/games/default/files/Decorations/signs_lib/mod.conf new file mode 100644 index 000000000..c8937d05b --- /dev/null +++ b/games/default/files/Decorations/signs_lib/mod.conf @@ -0,0 +1 @@ +name = signs_lib diff --git a/games/default/files/Decorations/signs_lib/textures/bg_signs_lib.jpg b/games/default/files/Decorations/signs_lib/textures/bg_signs_lib.jpg new file mode 100644 index 000000000..4b72268b5 Binary files /dev/null and b/games/default/files/Decorations/signs_lib/textures/bg_signs_lib.jpg differ diff --git a/games/default/files/Decorations/signs_lib/textures/hdf_00.png b/games/default/files/Decorations/signs_lib/textures/hdf_00.png new file mode 100644 index 000000000..ec762d555 Binary files /dev/null and b/games/default/files/Decorations/signs_lib/textures/hdf_00.png differ diff --git a/games/default/files/Decorations/signs_lib/textures/hdf_20.png b/games/default/files/Decorations/signs_lib/textures/hdf_20.png new file mode 100644 index 000000000..465982d66 Binary files /dev/null and b/games/default/files/Decorations/signs_lib/textures/hdf_20.png differ diff --git a/games/default/files/Decorations/signs_lib/textures/hdf_21.png b/games/default/files/Decorations/signs_lib/textures/hdf_21.png new file mode 100644 index 000000000..01929d488 Binary files /dev/null and b/games/default/files/Decorations/signs_lib/textures/hdf_21.png differ diff --git a/games/default/files/Decorations/signs_lib/textures/hdf_22.png b/games/default/files/Decorations/signs_lib/textures/hdf_22.png new file mode 100644 index 000000000..2acde25d4 Binary files /dev/null and b/games/default/files/Decorations/signs_lib/textures/hdf_22.png differ diff --git a/games/default/files/Decorations/signs_lib/textures/hdf_23.png b/games/default/files/Decorations/signs_lib/textures/hdf_23.png new file mode 100644 index 000000000..ace143761 Binary files /dev/null and b/games/default/files/Decorations/signs_lib/textures/hdf_23.png differ diff --git a/games/default/files/Decorations/signs_lib/textures/hdf_24.png b/games/default/files/Decorations/signs_lib/textures/hdf_24.png new file mode 100644 index 000000000..909b015ec Binary files /dev/null and b/games/default/files/Decorations/signs_lib/textures/hdf_24.png differ diff --git a/games/default/files/Decorations/signs_lib/textures/hdf_25.png b/games/default/files/Decorations/signs_lib/textures/hdf_25.png new file mode 100644 index 000000000..30a78295a Binary files /dev/null and b/games/default/files/Decorations/signs_lib/textures/hdf_25.png differ diff --git a/games/default/files/Decorations/signs_lib/textures/hdf_26.png b/games/default/files/Decorations/signs_lib/textures/hdf_26.png new file mode 100644 index 000000000..d29936c72 Binary files /dev/null and b/games/default/files/Decorations/signs_lib/textures/hdf_26.png differ diff --git a/games/default/files/Decorations/signs_lib/textures/hdf_27.png b/games/default/files/Decorations/signs_lib/textures/hdf_27.png new file mode 100644 index 000000000..9844e9227 Binary files /dev/null and b/games/default/files/Decorations/signs_lib/textures/hdf_27.png differ diff --git a/games/default/files/Decorations/signs_lib/textures/hdf_28.png b/games/default/files/Decorations/signs_lib/textures/hdf_28.png new file mode 100644 index 000000000..4810d75a5 Binary files /dev/null and b/games/default/files/Decorations/signs_lib/textures/hdf_28.png differ diff --git a/games/default/files/Decorations/signs_lib/textures/hdf_29.png b/games/default/files/Decorations/signs_lib/textures/hdf_29.png new file mode 100644 index 000000000..e5ff2b76c Binary files /dev/null and b/games/default/files/Decorations/signs_lib/textures/hdf_29.png differ diff --git a/games/default/files/Decorations/signs_lib/textures/hdf_2a.png b/games/default/files/Decorations/signs_lib/textures/hdf_2a.png new file mode 100644 index 000000000..540889777 Binary files /dev/null and b/games/default/files/Decorations/signs_lib/textures/hdf_2a.png differ diff --git a/games/default/files/Decorations/signs_lib/textures/hdf_2b.png b/games/default/files/Decorations/signs_lib/textures/hdf_2b.png new file mode 100644 index 000000000..9ad7d9efe Binary files /dev/null and b/games/default/files/Decorations/signs_lib/textures/hdf_2b.png differ diff --git a/games/default/files/Decorations/signs_lib/textures/hdf_2c.png b/games/default/files/Decorations/signs_lib/textures/hdf_2c.png new file mode 100644 index 000000000..cb3eae05e Binary files /dev/null and b/games/default/files/Decorations/signs_lib/textures/hdf_2c.png differ diff --git a/games/default/files/Decorations/signs_lib/textures/hdf_2d.png b/games/default/files/Decorations/signs_lib/textures/hdf_2d.png new file mode 100644 index 000000000..c252f37df Binary files /dev/null and b/games/default/files/Decorations/signs_lib/textures/hdf_2d.png differ diff --git a/games/default/files/Decorations/signs_lib/textures/hdf_2e.png b/games/default/files/Decorations/signs_lib/textures/hdf_2e.png new file mode 100644 index 000000000..d3aab5be8 Binary files /dev/null and b/games/default/files/Decorations/signs_lib/textures/hdf_2e.png differ diff --git a/games/default/files/Decorations/signs_lib/textures/hdf_2f.png b/games/default/files/Decorations/signs_lib/textures/hdf_2f.png new file mode 100644 index 000000000..48c25f2e2 Binary files /dev/null and b/games/default/files/Decorations/signs_lib/textures/hdf_2f.png differ diff --git a/games/default/files/Decorations/signs_lib/textures/hdf_30.png b/games/default/files/Decorations/signs_lib/textures/hdf_30.png new file mode 100644 index 000000000..56ec3e79a Binary files /dev/null and b/games/default/files/Decorations/signs_lib/textures/hdf_30.png differ diff --git a/games/default/files/Decorations/signs_lib/textures/hdf_31.png b/games/default/files/Decorations/signs_lib/textures/hdf_31.png new file mode 100644 index 000000000..c526e8678 Binary files /dev/null and b/games/default/files/Decorations/signs_lib/textures/hdf_31.png differ diff --git a/games/default/files/Decorations/signs_lib/textures/hdf_32.png b/games/default/files/Decorations/signs_lib/textures/hdf_32.png new file mode 100644 index 000000000..339d9332d Binary files /dev/null and b/games/default/files/Decorations/signs_lib/textures/hdf_32.png differ diff --git a/games/default/files/Decorations/signs_lib/textures/hdf_33.png b/games/default/files/Decorations/signs_lib/textures/hdf_33.png new file mode 100644 index 000000000..aba5466e9 Binary files /dev/null and b/games/default/files/Decorations/signs_lib/textures/hdf_33.png differ diff --git a/games/default/files/Decorations/signs_lib/textures/hdf_34.png b/games/default/files/Decorations/signs_lib/textures/hdf_34.png new file mode 100644 index 000000000..9e71d1025 Binary files /dev/null and b/games/default/files/Decorations/signs_lib/textures/hdf_34.png differ diff --git a/games/default/files/Decorations/signs_lib/textures/hdf_35.png b/games/default/files/Decorations/signs_lib/textures/hdf_35.png new file mode 100644 index 000000000..c12370fff Binary files /dev/null and b/games/default/files/Decorations/signs_lib/textures/hdf_35.png differ diff --git a/games/default/files/Decorations/signs_lib/textures/hdf_36.png b/games/default/files/Decorations/signs_lib/textures/hdf_36.png new file mode 100644 index 000000000..bebb32a8b Binary files /dev/null and b/games/default/files/Decorations/signs_lib/textures/hdf_36.png differ diff --git a/games/default/files/Decorations/signs_lib/textures/hdf_37.png b/games/default/files/Decorations/signs_lib/textures/hdf_37.png new file mode 100644 index 000000000..73d9bb989 Binary files /dev/null and b/games/default/files/Decorations/signs_lib/textures/hdf_37.png differ diff --git a/games/default/files/Decorations/signs_lib/textures/hdf_38.png b/games/default/files/Decorations/signs_lib/textures/hdf_38.png new file mode 100644 index 000000000..baf7f6f82 Binary files /dev/null and b/games/default/files/Decorations/signs_lib/textures/hdf_38.png differ diff --git a/games/default/files/Decorations/signs_lib/textures/hdf_39.png b/games/default/files/Decorations/signs_lib/textures/hdf_39.png new file mode 100644 index 000000000..95729472b Binary files /dev/null and b/games/default/files/Decorations/signs_lib/textures/hdf_39.png differ diff --git a/games/default/files/Decorations/signs_lib/textures/hdf_3a.png b/games/default/files/Decorations/signs_lib/textures/hdf_3a.png new file mode 100644 index 000000000..23ba0cd08 Binary files /dev/null and b/games/default/files/Decorations/signs_lib/textures/hdf_3a.png differ diff --git a/games/default/files/Decorations/signs_lib/textures/hdf_3b.png b/games/default/files/Decorations/signs_lib/textures/hdf_3b.png new file mode 100644 index 000000000..c4b467faa Binary files /dev/null and b/games/default/files/Decorations/signs_lib/textures/hdf_3b.png differ diff --git a/games/default/files/Decorations/signs_lib/textures/hdf_3c.png b/games/default/files/Decorations/signs_lib/textures/hdf_3c.png new file mode 100644 index 000000000..566ba4968 Binary files /dev/null and b/games/default/files/Decorations/signs_lib/textures/hdf_3c.png differ diff --git a/games/default/files/Decorations/signs_lib/textures/hdf_3d.png b/games/default/files/Decorations/signs_lib/textures/hdf_3d.png new file mode 100644 index 000000000..50e6c6f08 Binary files /dev/null and b/games/default/files/Decorations/signs_lib/textures/hdf_3d.png differ diff --git a/games/default/files/Decorations/signs_lib/textures/hdf_3e.png b/games/default/files/Decorations/signs_lib/textures/hdf_3e.png new file mode 100644 index 000000000..090f8ca33 Binary files /dev/null and b/games/default/files/Decorations/signs_lib/textures/hdf_3e.png differ diff --git a/games/default/files/Decorations/signs_lib/textures/hdf_3f.png b/games/default/files/Decorations/signs_lib/textures/hdf_3f.png new file mode 100644 index 000000000..dce472764 Binary files /dev/null and b/games/default/files/Decorations/signs_lib/textures/hdf_3f.png differ diff --git a/games/default/files/Decorations/signs_lib/textures/hdf_40.png b/games/default/files/Decorations/signs_lib/textures/hdf_40.png new file mode 100644 index 000000000..65533fdc4 Binary files /dev/null and b/games/default/files/Decorations/signs_lib/textures/hdf_40.png differ diff --git a/games/default/files/Decorations/signs_lib/textures/hdf_41.png b/games/default/files/Decorations/signs_lib/textures/hdf_41.png new file mode 100644 index 000000000..e30c27ca5 Binary files /dev/null and b/games/default/files/Decorations/signs_lib/textures/hdf_41.png differ diff --git a/games/default/files/Decorations/signs_lib/textures/hdf_42.png b/games/default/files/Decorations/signs_lib/textures/hdf_42.png new file mode 100644 index 000000000..28d480b7f Binary files /dev/null and b/games/default/files/Decorations/signs_lib/textures/hdf_42.png differ diff --git a/games/default/files/Decorations/signs_lib/textures/hdf_43.png b/games/default/files/Decorations/signs_lib/textures/hdf_43.png new file mode 100644 index 000000000..db57d8dc2 Binary files /dev/null and b/games/default/files/Decorations/signs_lib/textures/hdf_43.png differ diff --git a/games/default/files/Decorations/signs_lib/textures/hdf_44.png b/games/default/files/Decorations/signs_lib/textures/hdf_44.png new file mode 100644 index 000000000..cca9575b1 Binary files /dev/null and b/games/default/files/Decorations/signs_lib/textures/hdf_44.png differ diff --git a/games/default/files/Decorations/signs_lib/textures/hdf_45.png b/games/default/files/Decorations/signs_lib/textures/hdf_45.png new file mode 100644 index 000000000..07e772b85 Binary files /dev/null and b/games/default/files/Decorations/signs_lib/textures/hdf_45.png differ diff --git a/games/default/files/Decorations/signs_lib/textures/hdf_46.png b/games/default/files/Decorations/signs_lib/textures/hdf_46.png new file mode 100644 index 000000000..24de187a4 Binary files /dev/null and b/games/default/files/Decorations/signs_lib/textures/hdf_46.png differ diff --git a/games/default/files/Decorations/signs_lib/textures/hdf_47.png b/games/default/files/Decorations/signs_lib/textures/hdf_47.png new file mode 100644 index 000000000..0deef8397 Binary files /dev/null and b/games/default/files/Decorations/signs_lib/textures/hdf_47.png differ diff --git a/games/default/files/Decorations/signs_lib/textures/hdf_48.png b/games/default/files/Decorations/signs_lib/textures/hdf_48.png new file mode 100644 index 000000000..f85b4aecc Binary files /dev/null and b/games/default/files/Decorations/signs_lib/textures/hdf_48.png differ diff --git a/games/default/files/Decorations/signs_lib/textures/hdf_49.png b/games/default/files/Decorations/signs_lib/textures/hdf_49.png new file mode 100644 index 000000000..1f027283c Binary files /dev/null and b/games/default/files/Decorations/signs_lib/textures/hdf_49.png differ diff --git a/games/default/files/Decorations/signs_lib/textures/hdf_4a.png b/games/default/files/Decorations/signs_lib/textures/hdf_4a.png new file mode 100644 index 000000000..b2f7befc4 Binary files /dev/null and b/games/default/files/Decorations/signs_lib/textures/hdf_4a.png differ diff --git a/games/default/files/Decorations/signs_lib/textures/hdf_4b.png b/games/default/files/Decorations/signs_lib/textures/hdf_4b.png new file mode 100644 index 000000000..e8d52d60d Binary files /dev/null and b/games/default/files/Decorations/signs_lib/textures/hdf_4b.png differ diff --git a/games/default/files/Decorations/signs_lib/textures/hdf_4c.png b/games/default/files/Decorations/signs_lib/textures/hdf_4c.png new file mode 100644 index 000000000..94d7d480f Binary files /dev/null and b/games/default/files/Decorations/signs_lib/textures/hdf_4c.png differ diff --git a/games/default/files/Decorations/signs_lib/textures/hdf_4d.png b/games/default/files/Decorations/signs_lib/textures/hdf_4d.png new file mode 100644 index 000000000..0ee8eb4b2 Binary files /dev/null and b/games/default/files/Decorations/signs_lib/textures/hdf_4d.png differ diff --git a/games/default/files/Decorations/signs_lib/textures/hdf_4e.png b/games/default/files/Decorations/signs_lib/textures/hdf_4e.png new file mode 100644 index 000000000..8ff83d66f Binary files /dev/null and b/games/default/files/Decorations/signs_lib/textures/hdf_4e.png differ diff --git a/games/default/files/Decorations/signs_lib/textures/hdf_4f.png b/games/default/files/Decorations/signs_lib/textures/hdf_4f.png new file mode 100644 index 000000000..b278ccc5e Binary files /dev/null and b/games/default/files/Decorations/signs_lib/textures/hdf_4f.png differ diff --git a/games/default/files/Decorations/signs_lib/textures/hdf_50.png b/games/default/files/Decorations/signs_lib/textures/hdf_50.png new file mode 100644 index 000000000..33b52fd6b Binary files /dev/null and b/games/default/files/Decorations/signs_lib/textures/hdf_50.png differ diff --git a/games/default/files/Decorations/signs_lib/textures/hdf_51.png b/games/default/files/Decorations/signs_lib/textures/hdf_51.png new file mode 100644 index 000000000..acb395ed4 Binary files /dev/null and b/games/default/files/Decorations/signs_lib/textures/hdf_51.png differ diff --git a/games/default/files/Decorations/signs_lib/textures/hdf_52.png b/games/default/files/Decorations/signs_lib/textures/hdf_52.png new file mode 100644 index 000000000..acb395ed4 Binary files /dev/null and b/games/default/files/Decorations/signs_lib/textures/hdf_52.png differ diff --git a/games/default/files/Decorations/signs_lib/textures/hdf_53.png b/games/default/files/Decorations/signs_lib/textures/hdf_53.png new file mode 100644 index 000000000..028f2841e Binary files /dev/null and b/games/default/files/Decorations/signs_lib/textures/hdf_53.png differ diff --git a/games/default/files/Decorations/signs_lib/textures/hdf_54.png b/games/default/files/Decorations/signs_lib/textures/hdf_54.png new file mode 100644 index 000000000..3bd0a2b9e Binary files /dev/null and b/games/default/files/Decorations/signs_lib/textures/hdf_54.png differ diff --git a/games/default/files/Decorations/signs_lib/textures/hdf_55.png b/games/default/files/Decorations/signs_lib/textures/hdf_55.png new file mode 100644 index 000000000..81643f94c Binary files /dev/null and b/games/default/files/Decorations/signs_lib/textures/hdf_55.png differ diff --git a/games/default/files/Decorations/signs_lib/textures/hdf_56.png b/games/default/files/Decorations/signs_lib/textures/hdf_56.png new file mode 100644 index 000000000..8726f5bc1 Binary files /dev/null and b/games/default/files/Decorations/signs_lib/textures/hdf_56.png differ diff --git a/games/default/files/Decorations/signs_lib/textures/hdf_57.png b/games/default/files/Decorations/signs_lib/textures/hdf_57.png new file mode 100644 index 000000000..5e8d9d0f4 Binary files /dev/null and b/games/default/files/Decorations/signs_lib/textures/hdf_57.png differ diff --git a/games/default/files/Decorations/signs_lib/textures/hdf_58.png b/games/default/files/Decorations/signs_lib/textures/hdf_58.png new file mode 100644 index 000000000..2abbda39c Binary files /dev/null and b/games/default/files/Decorations/signs_lib/textures/hdf_58.png differ diff --git a/games/default/files/Decorations/signs_lib/textures/hdf_59.png b/games/default/files/Decorations/signs_lib/textures/hdf_59.png new file mode 100644 index 000000000..ff4509306 Binary files /dev/null and b/games/default/files/Decorations/signs_lib/textures/hdf_59.png differ diff --git a/games/default/files/Decorations/signs_lib/textures/hdf_5a.png b/games/default/files/Decorations/signs_lib/textures/hdf_5a.png new file mode 100644 index 000000000..5c706ce1b Binary files /dev/null and b/games/default/files/Decorations/signs_lib/textures/hdf_5a.png differ diff --git a/games/default/files/Decorations/signs_lib/textures/hdf_5b.png b/games/default/files/Decorations/signs_lib/textures/hdf_5b.png new file mode 100644 index 000000000..2592f1ff7 Binary files /dev/null and b/games/default/files/Decorations/signs_lib/textures/hdf_5b.png differ diff --git a/games/default/files/Decorations/signs_lib/textures/hdf_5c.png b/games/default/files/Decorations/signs_lib/textures/hdf_5c.png new file mode 100644 index 000000000..406d63425 Binary files /dev/null and b/games/default/files/Decorations/signs_lib/textures/hdf_5c.png differ diff --git a/games/default/files/Decorations/signs_lib/textures/hdf_5d.png b/games/default/files/Decorations/signs_lib/textures/hdf_5d.png new file mode 100644 index 000000000..a5efa37d0 Binary files /dev/null and b/games/default/files/Decorations/signs_lib/textures/hdf_5d.png differ diff --git a/games/default/files/Decorations/signs_lib/textures/hdf_5e.png b/games/default/files/Decorations/signs_lib/textures/hdf_5e.png new file mode 100644 index 000000000..7f610d872 Binary files /dev/null and b/games/default/files/Decorations/signs_lib/textures/hdf_5e.png differ diff --git a/games/default/files/Decorations/signs_lib/textures/hdf_5f.png b/games/default/files/Decorations/signs_lib/textures/hdf_5f.png new file mode 100644 index 000000000..07cce5a14 Binary files /dev/null and b/games/default/files/Decorations/signs_lib/textures/hdf_5f.png differ diff --git a/games/default/files/Decorations/signs_lib/textures/hdf_60.png b/games/default/files/Decorations/signs_lib/textures/hdf_60.png new file mode 100644 index 000000000..cd4e0fb31 Binary files /dev/null and b/games/default/files/Decorations/signs_lib/textures/hdf_60.png differ diff --git a/games/default/files/Decorations/signs_lib/textures/hdf_61.png b/games/default/files/Decorations/signs_lib/textures/hdf_61.png new file mode 100644 index 000000000..dc019ba5a Binary files /dev/null and b/games/default/files/Decorations/signs_lib/textures/hdf_61.png differ diff --git a/games/default/files/Decorations/signs_lib/textures/hdf_62.png b/games/default/files/Decorations/signs_lib/textures/hdf_62.png new file mode 100644 index 000000000..285d0b2f1 Binary files /dev/null and b/games/default/files/Decorations/signs_lib/textures/hdf_62.png differ diff --git a/games/default/files/Decorations/signs_lib/textures/hdf_63.png b/games/default/files/Decorations/signs_lib/textures/hdf_63.png new file mode 100644 index 000000000..8781b8a84 Binary files /dev/null and b/games/default/files/Decorations/signs_lib/textures/hdf_63.png differ diff --git a/games/default/files/Decorations/signs_lib/textures/hdf_64.png b/games/default/files/Decorations/signs_lib/textures/hdf_64.png new file mode 100644 index 000000000..16c9a286d Binary files /dev/null and b/games/default/files/Decorations/signs_lib/textures/hdf_64.png differ diff --git a/games/default/files/Decorations/signs_lib/textures/hdf_65.png b/games/default/files/Decorations/signs_lib/textures/hdf_65.png new file mode 100644 index 000000000..810d9c93a Binary files /dev/null and b/games/default/files/Decorations/signs_lib/textures/hdf_65.png differ diff --git a/games/default/files/Decorations/signs_lib/textures/hdf_66.png b/games/default/files/Decorations/signs_lib/textures/hdf_66.png new file mode 100644 index 000000000..411ca5733 Binary files /dev/null and b/games/default/files/Decorations/signs_lib/textures/hdf_66.png differ diff --git a/games/default/files/Decorations/signs_lib/textures/hdf_67.png b/games/default/files/Decorations/signs_lib/textures/hdf_67.png new file mode 100644 index 000000000..d8820dd1c Binary files /dev/null and b/games/default/files/Decorations/signs_lib/textures/hdf_67.png differ diff --git a/games/default/files/Decorations/signs_lib/textures/hdf_68.png b/games/default/files/Decorations/signs_lib/textures/hdf_68.png new file mode 100644 index 000000000..5b51d05a2 Binary files /dev/null and b/games/default/files/Decorations/signs_lib/textures/hdf_68.png differ diff --git a/games/default/files/Decorations/signs_lib/textures/hdf_69.png b/games/default/files/Decorations/signs_lib/textures/hdf_69.png new file mode 100644 index 000000000..55f1a229d Binary files /dev/null and b/games/default/files/Decorations/signs_lib/textures/hdf_69.png differ diff --git a/games/default/files/Decorations/signs_lib/textures/hdf_6a.png b/games/default/files/Decorations/signs_lib/textures/hdf_6a.png new file mode 100644 index 000000000..c20e222ff Binary files /dev/null and b/games/default/files/Decorations/signs_lib/textures/hdf_6a.png differ diff --git a/games/default/files/Decorations/signs_lib/textures/hdf_6b.png b/games/default/files/Decorations/signs_lib/textures/hdf_6b.png new file mode 100644 index 000000000..fc34fc507 Binary files /dev/null and b/games/default/files/Decorations/signs_lib/textures/hdf_6b.png differ diff --git a/games/default/files/Decorations/signs_lib/textures/hdf_6c.png b/games/default/files/Decorations/signs_lib/textures/hdf_6c.png new file mode 100644 index 000000000..1f027283c Binary files /dev/null and b/games/default/files/Decorations/signs_lib/textures/hdf_6c.png differ diff --git a/games/default/files/Decorations/signs_lib/textures/hdf_6d.png b/games/default/files/Decorations/signs_lib/textures/hdf_6d.png new file mode 100644 index 000000000..6c0ae93f8 Binary files /dev/null and b/games/default/files/Decorations/signs_lib/textures/hdf_6d.png differ diff --git a/games/default/files/Decorations/signs_lib/textures/hdf_6e.png b/games/default/files/Decorations/signs_lib/textures/hdf_6e.png new file mode 100644 index 000000000..4f4dec708 Binary files /dev/null and b/games/default/files/Decorations/signs_lib/textures/hdf_6e.png differ diff --git a/games/default/files/Decorations/signs_lib/textures/hdf_6f.png b/games/default/files/Decorations/signs_lib/textures/hdf_6f.png new file mode 100644 index 000000000..921c61190 Binary files /dev/null and b/games/default/files/Decorations/signs_lib/textures/hdf_6f.png differ diff --git a/games/default/files/Decorations/signs_lib/textures/hdf_70.png b/games/default/files/Decorations/signs_lib/textures/hdf_70.png new file mode 100644 index 000000000..8202199d2 Binary files /dev/null and b/games/default/files/Decorations/signs_lib/textures/hdf_70.png differ diff --git a/games/default/files/Decorations/signs_lib/textures/hdf_71.png b/games/default/files/Decorations/signs_lib/textures/hdf_71.png new file mode 100644 index 000000000..c02171f05 Binary files /dev/null and b/games/default/files/Decorations/signs_lib/textures/hdf_71.png differ diff --git a/games/default/files/Decorations/signs_lib/textures/hdf_72.png b/games/default/files/Decorations/signs_lib/textures/hdf_72.png new file mode 100644 index 000000000..757b9c858 Binary files /dev/null and b/games/default/files/Decorations/signs_lib/textures/hdf_72.png differ diff --git a/games/default/files/Decorations/signs_lib/textures/hdf_73.png b/games/default/files/Decorations/signs_lib/textures/hdf_73.png new file mode 100644 index 000000000..e38497d9f Binary files /dev/null and b/games/default/files/Decorations/signs_lib/textures/hdf_73.png differ diff --git a/games/default/files/Decorations/signs_lib/textures/hdf_74.png b/games/default/files/Decorations/signs_lib/textures/hdf_74.png new file mode 100644 index 000000000..10f9cfa92 Binary files /dev/null and b/games/default/files/Decorations/signs_lib/textures/hdf_74.png differ diff --git a/games/default/files/Decorations/signs_lib/textures/hdf_75.png b/games/default/files/Decorations/signs_lib/textures/hdf_75.png new file mode 100644 index 000000000..377416bae Binary files /dev/null and b/games/default/files/Decorations/signs_lib/textures/hdf_75.png differ diff --git a/games/default/files/Decorations/signs_lib/textures/hdf_76.png b/games/default/files/Decorations/signs_lib/textures/hdf_76.png new file mode 100644 index 000000000..dc558d3a4 Binary files /dev/null and b/games/default/files/Decorations/signs_lib/textures/hdf_76.png differ diff --git a/games/default/files/Decorations/signs_lib/textures/hdf_77.png b/games/default/files/Decorations/signs_lib/textures/hdf_77.png new file mode 100644 index 000000000..6a142984a Binary files /dev/null and b/games/default/files/Decorations/signs_lib/textures/hdf_77.png differ diff --git a/games/default/files/Decorations/signs_lib/textures/hdf_78.png b/games/default/files/Decorations/signs_lib/textures/hdf_78.png new file mode 100644 index 000000000..38b4be036 Binary files /dev/null and b/games/default/files/Decorations/signs_lib/textures/hdf_78.png differ diff --git a/games/default/files/Decorations/signs_lib/textures/hdf_79.png b/games/default/files/Decorations/signs_lib/textures/hdf_79.png new file mode 100644 index 000000000..8859fb41f Binary files /dev/null and b/games/default/files/Decorations/signs_lib/textures/hdf_79.png differ diff --git a/games/default/files/Decorations/signs_lib/textures/hdf_7a.png b/games/default/files/Decorations/signs_lib/textures/hdf_7a.png new file mode 100644 index 000000000..c42c84a39 Binary files /dev/null and b/games/default/files/Decorations/signs_lib/textures/hdf_7a.png differ diff --git a/games/default/files/Decorations/signs_lib/textures/hdf_7b.png b/games/default/files/Decorations/signs_lib/textures/hdf_7b.png new file mode 100644 index 000000000..c0ee072c8 Binary files /dev/null and b/games/default/files/Decorations/signs_lib/textures/hdf_7b.png differ diff --git a/games/default/files/Decorations/signs_lib/textures/hdf_7c.png b/games/default/files/Decorations/signs_lib/textures/hdf_7c.png new file mode 100644 index 000000000..6e9949de3 Binary files /dev/null and b/games/default/files/Decorations/signs_lib/textures/hdf_7c.png differ diff --git a/games/default/files/Decorations/signs_lib/textures/hdf_7d.png b/games/default/files/Decorations/signs_lib/textures/hdf_7d.png new file mode 100644 index 000000000..6162caa2d Binary files /dev/null and b/games/default/files/Decorations/signs_lib/textures/hdf_7d.png differ diff --git a/games/default/files/Decorations/signs_lib/textures/hdf_7e.png b/games/default/files/Decorations/signs_lib/textures/hdf_7e.png new file mode 100644 index 000000000..ec762d555 Binary files /dev/null and b/games/default/files/Decorations/signs_lib/textures/hdf_7e.png differ diff --git a/games/default/files/Decorations/signs_lib/textures/hdf_a8.png b/games/default/files/Decorations/signs_lib/textures/hdf_a8.png new file mode 100644 index 000000000..75d149515 Binary files /dev/null and b/games/default/files/Decorations/signs_lib/textures/hdf_a8.png differ diff --git a/games/default/files/Decorations/signs_lib/textures/hdf_b8.png b/games/default/files/Decorations/signs_lib/textures/hdf_b8.png new file mode 100644 index 000000000..c8215a18b Binary files /dev/null and b/games/default/files/Decorations/signs_lib/textures/hdf_b8.png differ diff --git a/games/default/files/Decorations/signs_lib/textures/hdf_b9.png b/games/default/files/Decorations/signs_lib/textures/hdf_b9.png new file mode 100644 index 000000000..765437a3e Binary files /dev/null and b/games/default/files/Decorations/signs_lib/textures/hdf_b9.png differ diff --git a/games/default/files/Decorations/signs_lib/textures/hdf_c0.png b/games/default/files/Decorations/signs_lib/textures/hdf_c0.png new file mode 100644 index 000000000..fe3e3803e Binary files /dev/null and b/games/default/files/Decorations/signs_lib/textures/hdf_c0.png differ diff --git a/games/default/files/Decorations/signs_lib/textures/hdf_c1.png b/games/default/files/Decorations/signs_lib/textures/hdf_c1.png new file mode 100644 index 000000000..f589c1cff Binary files /dev/null and b/games/default/files/Decorations/signs_lib/textures/hdf_c1.png differ diff --git a/games/default/files/Decorations/signs_lib/textures/hdf_c2.png b/games/default/files/Decorations/signs_lib/textures/hdf_c2.png new file mode 100644 index 000000000..ea6043ad3 Binary files /dev/null and b/games/default/files/Decorations/signs_lib/textures/hdf_c2.png differ diff --git a/games/default/files/Decorations/signs_lib/textures/hdf_c3.png b/games/default/files/Decorations/signs_lib/textures/hdf_c3.png new file mode 100644 index 000000000..1cc88a868 Binary files /dev/null and b/games/default/files/Decorations/signs_lib/textures/hdf_c3.png differ diff --git a/games/default/files/Decorations/signs_lib/textures/hdf_c4.png b/games/default/files/Decorations/signs_lib/textures/hdf_c4.png new file mode 100644 index 000000000..1006dff76 Binary files /dev/null and b/games/default/files/Decorations/signs_lib/textures/hdf_c4.png differ diff --git a/games/default/files/Decorations/signs_lib/textures/hdf_c5.png b/games/default/files/Decorations/signs_lib/textures/hdf_c5.png new file mode 100644 index 000000000..85c9b92bb Binary files /dev/null and b/games/default/files/Decorations/signs_lib/textures/hdf_c5.png differ diff --git a/games/default/files/Decorations/signs_lib/textures/hdf_c6.png b/games/default/files/Decorations/signs_lib/textures/hdf_c6.png new file mode 100644 index 000000000..7e5b16c12 Binary files /dev/null and b/games/default/files/Decorations/signs_lib/textures/hdf_c6.png differ diff --git a/games/default/files/Decorations/signs_lib/textures/hdf_c7.png b/games/default/files/Decorations/signs_lib/textures/hdf_c7.png new file mode 100644 index 000000000..6303b0e84 Binary files /dev/null and b/games/default/files/Decorations/signs_lib/textures/hdf_c7.png differ diff --git a/games/default/files/Decorations/signs_lib/textures/hdf_c8.png b/games/default/files/Decorations/signs_lib/textures/hdf_c8.png new file mode 100644 index 000000000..e8ece15d9 Binary files /dev/null and b/games/default/files/Decorations/signs_lib/textures/hdf_c8.png differ diff --git a/games/default/files/Decorations/signs_lib/textures/hdf_c9.png b/games/default/files/Decorations/signs_lib/textures/hdf_c9.png new file mode 100644 index 000000000..d3dc073de Binary files /dev/null and b/games/default/files/Decorations/signs_lib/textures/hdf_c9.png differ diff --git a/games/default/files/Decorations/signs_lib/textures/hdf_ca.png b/games/default/files/Decorations/signs_lib/textures/hdf_ca.png new file mode 100644 index 000000000..a9400654e Binary files /dev/null and b/games/default/files/Decorations/signs_lib/textures/hdf_ca.png differ diff --git a/games/default/files/Decorations/signs_lib/textures/hdf_cb.png b/games/default/files/Decorations/signs_lib/textures/hdf_cb.png new file mode 100644 index 000000000..fa96d938f Binary files /dev/null and b/games/default/files/Decorations/signs_lib/textures/hdf_cb.png differ diff --git a/games/default/files/Decorations/signs_lib/textures/hdf_cc.png b/games/default/files/Decorations/signs_lib/textures/hdf_cc.png new file mode 100644 index 000000000..0c6614269 Binary files /dev/null and b/games/default/files/Decorations/signs_lib/textures/hdf_cc.png differ diff --git a/games/default/files/Decorations/signs_lib/textures/hdf_cd.png b/games/default/files/Decorations/signs_lib/textures/hdf_cd.png new file mode 100644 index 000000000..5677f033d Binary files /dev/null and b/games/default/files/Decorations/signs_lib/textures/hdf_cd.png differ diff --git a/games/default/files/Decorations/signs_lib/textures/hdf_ce.png b/games/default/files/Decorations/signs_lib/textures/hdf_ce.png new file mode 100644 index 000000000..9314974a9 Binary files /dev/null and b/games/default/files/Decorations/signs_lib/textures/hdf_ce.png differ diff --git a/games/default/files/Decorations/signs_lib/textures/hdf_cf.png b/games/default/files/Decorations/signs_lib/textures/hdf_cf.png new file mode 100644 index 000000000..fb6dee901 Binary files /dev/null and b/games/default/files/Decorations/signs_lib/textures/hdf_cf.png differ diff --git a/games/default/files/Decorations/signs_lib/textures/hdf_d0.png b/games/default/files/Decorations/signs_lib/textures/hdf_d0.png new file mode 100644 index 000000000..74b0c17af Binary files /dev/null and b/games/default/files/Decorations/signs_lib/textures/hdf_d0.png differ diff --git a/games/default/files/Decorations/signs_lib/textures/hdf_d1.png b/games/default/files/Decorations/signs_lib/textures/hdf_d1.png new file mode 100644 index 000000000..5197b0f89 Binary files /dev/null and b/games/default/files/Decorations/signs_lib/textures/hdf_d1.png differ diff --git a/games/default/files/Decorations/signs_lib/textures/hdf_d2.png b/games/default/files/Decorations/signs_lib/textures/hdf_d2.png new file mode 100644 index 000000000..744f4ebff Binary files /dev/null and b/games/default/files/Decorations/signs_lib/textures/hdf_d2.png differ diff --git a/games/default/files/Decorations/signs_lib/textures/hdf_d3.png b/games/default/files/Decorations/signs_lib/textures/hdf_d3.png new file mode 100644 index 000000000..048856b48 Binary files /dev/null and b/games/default/files/Decorations/signs_lib/textures/hdf_d3.png differ diff --git a/games/default/files/Decorations/signs_lib/textures/hdf_d4.png b/games/default/files/Decorations/signs_lib/textures/hdf_d4.png new file mode 100644 index 000000000..49e7b8cd5 Binary files /dev/null and b/games/default/files/Decorations/signs_lib/textures/hdf_d4.png differ diff --git a/games/default/files/Decorations/signs_lib/textures/hdf_d5.png b/games/default/files/Decorations/signs_lib/textures/hdf_d5.png new file mode 100644 index 000000000..f2df843b7 Binary files /dev/null and b/games/default/files/Decorations/signs_lib/textures/hdf_d5.png differ diff --git a/games/default/files/Decorations/signs_lib/textures/hdf_d6.png b/games/default/files/Decorations/signs_lib/textures/hdf_d6.png new file mode 100644 index 000000000..8f774839a Binary files /dev/null and b/games/default/files/Decorations/signs_lib/textures/hdf_d6.png differ diff --git a/games/default/files/Decorations/signs_lib/textures/hdf_d7.png b/games/default/files/Decorations/signs_lib/textures/hdf_d7.png new file mode 100644 index 000000000..20164b95f Binary files /dev/null and b/games/default/files/Decorations/signs_lib/textures/hdf_d7.png differ diff --git a/games/default/files/Decorations/signs_lib/textures/hdf_d8.png b/games/default/files/Decorations/signs_lib/textures/hdf_d8.png new file mode 100644 index 000000000..72861b0f2 Binary files /dev/null and b/games/default/files/Decorations/signs_lib/textures/hdf_d8.png differ diff --git a/games/default/files/Decorations/signs_lib/textures/hdf_d9.png b/games/default/files/Decorations/signs_lib/textures/hdf_d9.png new file mode 100644 index 000000000..497b45ec3 Binary files /dev/null and b/games/default/files/Decorations/signs_lib/textures/hdf_d9.png differ diff --git a/games/default/files/Decorations/signs_lib/textures/hdf_da.png b/games/default/files/Decorations/signs_lib/textures/hdf_da.png new file mode 100644 index 000000000..1c2454081 Binary files /dev/null and b/games/default/files/Decorations/signs_lib/textures/hdf_da.png differ diff --git a/games/default/files/Decorations/signs_lib/textures/hdf_db.png b/games/default/files/Decorations/signs_lib/textures/hdf_db.png new file mode 100644 index 000000000..e750c0e81 Binary files /dev/null and b/games/default/files/Decorations/signs_lib/textures/hdf_db.png differ diff --git a/games/default/files/Decorations/signs_lib/textures/hdf_dc.png b/games/default/files/Decorations/signs_lib/textures/hdf_dc.png new file mode 100644 index 000000000..ce2e19750 Binary files /dev/null and b/games/default/files/Decorations/signs_lib/textures/hdf_dc.png differ diff --git a/games/default/files/Decorations/signs_lib/textures/hdf_dd.png b/games/default/files/Decorations/signs_lib/textures/hdf_dd.png new file mode 100644 index 000000000..bbb07bdb4 Binary files /dev/null and b/games/default/files/Decorations/signs_lib/textures/hdf_dd.png differ diff --git a/games/default/files/Decorations/signs_lib/textures/hdf_de.png b/games/default/files/Decorations/signs_lib/textures/hdf_de.png new file mode 100644 index 000000000..4c590476f Binary files /dev/null and b/games/default/files/Decorations/signs_lib/textures/hdf_de.png differ diff --git a/games/default/files/Decorations/signs_lib/textures/hdf_df.png b/games/default/files/Decorations/signs_lib/textures/hdf_df.png new file mode 100644 index 000000000..7c29dde55 Binary files /dev/null and b/games/default/files/Decorations/signs_lib/textures/hdf_df.png differ diff --git a/games/default/files/Decorations/signs_lib/textures/hdf_e0.png b/games/default/files/Decorations/signs_lib/textures/hdf_e0.png new file mode 100644 index 000000000..93d4b14ad Binary files /dev/null and b/games/default/files/Decorations/signs_lib/textures/hdf_e0.png differ diff --git a/games/default/files/Decorations/signs_lib/textures/hdf_e1.png b/games/default/files/Decorations/signs_lib/textures/hdf_e1.png new file mode 100644 index 000000000..7bf23820c Binary files /dev/null and b/games/default/files/Decorations/signs_lib/textures/hdf_e1.png differ diff --git a/games/default/files/Decorations/signs_lib/textures/hdf_e2.png b/games/default/files/Decorations/signs_lib/textures/hdf_e2.png new file mode 100644 index 000000000..66b116a05 Binary files /dev/null and b/games/default/files/Decorations/signs_lib/textures/hdf_e2.png differ diff --git a/games/default/files/Decorations/signs_lib/textures/hdf_e3.png b/games/default/files/Decorations/signs_lib/textures/hdf_e3.png new file mode 100644 index 000000000..5b0a41877 Binary files /dev/null and b/games/default/files/Decorations/signs_lib/textures/hdf_e3.png differ diff --git a/games/default/files/Decorations/signs_lib/textures/hdf_e4.png b/games/default/files/Decorations/signs_lib/textures/hdf_e4.png new file mode 100644 index 000000000..e3ec02dc8 Binary files /dev/null and b/games/default/files/Decorations/signs_lib/textures/hdf_e4.png differ diff --git a/games/default/files/Decorations/signs_lib/textures/hdf_e5.png b/games/default/files/Decorations/signs_lib/textures/hdf_e5.png new file mode 100644 index 000000000..09b431a6b Binary files /dev/null and b/games/default/files/Decorations/signs_lib/textures/hdf_e5.png differ diff --git a/games/default/files/Decorations/signs_lib/textures/hdf_e6.png b/games/default/files/Decorations/signs_lib/textures/hdf_e6.png new file mode 100644 index 000000000..777b8cd27 Binary files /dev/null and b/games/default/files/Decorations/signs_lib/textures/hdf_e6.png differ diff --git a/games/default/files/Decorations/signs_lib/textures/hdf_e7.png b/games/default/files/Decorations/signs_lib/textures/hdf_e7.png new file mode 100644 index 000000000..9da7dabea Binary files /dev/null and b/games/default/files/Decorations/signs_lib/textures/hdf_e7.png differ diff --git a/games/default/files/Decorations/signs_lib/textures/hdf_e8.png b/games/default/files/Decorations/signs_lib/textures/hdf_e8.png new file mode 100644 index 000000000..d7279aec8 Binary files /dev/null and b/games/default/files/Decorations/signs_lib/textures/hdf_e8.png differ diff --git a/games/default/files/Decorations/signs_lib/textures/hdf_e9.png b/games/default/files/Decorations/signs_lib/textures/hdf_e9.png new file mode 100644 index 000000000..4d40313c9 Binary files /dev/null and b/games/default/files/Decorations/signs_lib/textures/hdf_e9.png differ diff --git a/games/default/files/Decorations/signs_lib/textures/hdf_ea.png b/games/default/files/Decorations/signs_lib/textures/hdf_ea.png new file mode 100644 index 000000000..2533ec117 Binary files /dev/null and b/games/default/files/Decorations/signs_lib/textures/hdf_ea.png differ diff --git a/games/default/files/Decorations/signs_lib/textures/hdf_eb.png b/games/default/files/Decorations/signs_lib/textures/hdf_eb.png new file mode 100644 index 000000000..4ef912963 Binary files /dev/null and b/games/default/files/Decorations/signs_lib/textures/hdf_eb.png differ diff --git a/games/default/files/Decorations/signs_lib/textures/hdf_ec.png b/games/default/files/Decorations/signs_lib/textures/hdf_ec.png new file mode 100644 index 000000000..18e859b7e Binary files /dev/null and b/games/default/files/Decorations/signs_lib/textures/hdf_ec.png differ diff --git a/games/default/files/Decorations/signs_lib/textures/hdf_ed.png b/games/default/files/Decorations/signs_lib/textures/hdf_ed.png new file mode 100644 index 000000000..edd951dbf Binary files /dev/null and b/games/default/files/Decorations/signs_lib/textures/hdf_ed.png differ diff --git a/games/default/files/Decorations/signs_lib/textures/hdf_ee.png b/games/default/files/Decorations/signs_lib/textures/hdf_ee.png new file mode 100644 index 000000000..813e1f7a1 Binary files /dev/null and b/games/default/files/Decorations/signs_lib/textures/hdf_ee.png differ diff --git a/games/default/files/Decorations/signs_lib/textures/hdf_ef.png b/games/default/files/Decorations/signs_lib/textures/hdf_ef.png new file mode 100644 index 000000000..f2f24d20b Binary files /dev/null and b/games/default/files/Decorations/signs_lib/textures/hdf_ef.png differ diff --git a/games/default/files/Decorations/signs_lib/textures/hdf_f0.png b/games/default/files/Decorations/signs_lib/textures/hdf_f0.png new file mode 100644 index 000000000..697286ceb Binary files /dev/null and b/games/default/files/Decorations/signs_lib/textures/hdf_f0.png differ diff --git a/games/default/files/Decorations/signs_lib/textures/hdf_f1.png b/games/default/files/Decorations/signs_lib/textures/hdf_f1.png new file mode 100644 index 000000000..01c1e6461 Binary files /dev/null and b/games/default/files/Decorations/signs_lib/textures/hdf_f1.png differ diff --git a/games/default/files/Decorations/signs_lib/textures/hdf_f2.png b/games/default/files/Decorations/signs_lib/textures/hdf_f2.png new file mode 100644 index 000000000..df2aaa393 Binary files /dev/null and b/games/default/files/Decorations/signs_lib/textures/hdf_f2.png differ diff --git a/games/default/files/Decorations/signs_lib/textures/hdf_f3.png b/games/default/files/Decorations/signs_lib/textures/hdf_f3.png new file mode 100644 index 000000000..e09cf75b5 Binary files /dev/null and b/games/default/files/Decorations/signs_lib/textures/hdf_f3.png differ diff --git a/games/default/files/Decorations/signs_lib/textures/hdf_f4.png b/games/default/files/Decorations/signs_lib/textures/hdf_f4.png new file mode 100644 index 000000000..2c0853bba Binary files /dev/null and b/games/default/files/Decorations/signs_lib/textures/hdf_f4.png differ diff --git a/games/default/files/Decorations/signs_lib/textures/hdf_f5.png b/games/default/files/Decorations/signs_lib/textures/hdf_f5.png new file mode 100644 index 000000000..fd21a81d9 Binary files /dev/null and b/games/default/files/Decorations/signs_lib/textures/hdf_f5.png differ diff --git a/games/default/files/Decorations/signs_lib/textures/hdf_f6.png b/games/default/files/Decorations/signs_lib/textures/hdf_f6.png new file mode 100644 index 000000000..189a96f32 Binary files /dev/null and b/games/default/files/Decorations/signs_lib/textures/hdf_f6.png differ diff --git a/games/default/files/Decorations/signs_lib/textures/hdf_f7.png b/games/default/files/Decorations/signs_lib/textures/hdf_f7.png new file mode 100644 index 000000000..87b2ecac3 Binary files /dev/null and b/games/default/files/Decorations/signs_lib/textures/hdf_f7.png differ diff --git a/games/default/files/Decorations/signs_lib/textures/hdf_f8.png b/games/default/files/Decorations/signs_lib/textures/hdf_f8.png new file mode 100644 index 000000000..3c195aa49 Binary files /dev/null and b/games/default/files/Decorations/signs_lib/textures/hdf_f8.png differ diff --git a/games/default/files/Decorations/signs_lib/textures/hdf_f9.png b/games/default/files/Decorations/signs_lib/textures/hdf_f9.png new file mode 100644 index 000000000..9fb54ba82 Binary files /dev/null and b/games/default/files/Decorations/signs_lib/textures/hdf_f9.png differ diff --git a/games/default/files/Decorations/signs_lib/textures/hdf_fa.png b/games/default/files/Decorations/signs_lib/textures/hdf_fa.png new file mode 100644 index 000000000..da72b468d Binary files /dev/null and b/games/default/files/Decorations/signs_lib/textures/hdf_fa.png differ diff --git a/games/default/files/Decorations/signs_lib/textures/hdf_fb.png b/games/default/files/Decorations/signs_lib/textures/hdf_fb.png new file mode 100644 index 000000000..6cfd0fe4b Binary files /dev/null and b/games/default/files/Decorations/signs_lib/textures/hdf_fb.png differ diff --git a/games/default/files/Decorations/signs_lib/textures/hdf_fc.png b/games/default/files/Decorations/signs_lib/textures/hdf_fc.png new file mode 100644 index 000000000..c8c691800 Binary files /dev/null and b/games/default/files/Decorations/signs_lib/textures/hdf_fc.png differ diff --git a/games/default/files/Decorations/signs_lib/textures/hdf_fd.png b/games/default/files/Decorations/signs_lib/textures/hdf_fd.png new file mode 100644 index 000000000..9130ccde9 Binary files /dev/null and b/games/default/files/Decorations/signs_lib/textures/hdf_fd.png differ diff --git a/games/default/files/Decorations/signs_lib/textures/hdf_fe.png b/games/default/files/Decorations/signs_lib/textures/hdf_fe.png new file mode 100644 index 000000000..516529665 Binary files /dev/null and b/games/default/files/Decorations/signs_lib/textures/hdf_fe.png differ diff --git a/games/default/files/Decorations/signs_lib/textures/hdf_ff.png b/games/default/files/Decorations/signs_lib/textures/hdf_ff.png new file mode 100644 index 000000000..a1a1f10a8 Binary files /dev/null and b/games/default/files/Decorations/signs_lib/textures/hdf_ff.png differ diff --git a/games/default/files/Decorations/signs_lib/textures/signs_back.png b/games/default/files/Decorations/signs_lib/textures/signs_back.png new file mode 100644 index 000000000..db33dee5b Binary files /dev/null and b/games/default/files/Decorations/signs_lib/textures/signs_back.png differ diff --git a/games/default/files/Decorations/signs_lib/textures/signs_blue_front.png b/games/default/files/Decorations/signs_lib/textures/signs_blue_front.png new file mode 100644 index 000000000..65ed6ea10 Binary files /dev/null and b/games/default/files/Decorations/signs_lib/textures/signs_blue_front.png differ diff --git a/games/default/files/Decorations/signs_lib/textures/signs_blue_inv.png b/games/default/files/Decorations/signs_lib/textures/signs_blue_inv.png new file mode 100644 index 000000000..3f5a0ceed Binary files /dev/null and b/games/default/files/Decorations/signs_lib/textures/signs_blue_inv.png differ diff --git a/games/default/files/Decorations/signs_lib/textures/signs_bottom.png b/games/default/files/Decorations/signs_lib/textures/signs_bottom.png new file mode 100644 index 000000000..38961f0cc Binary files /dev/null and b/games/default/files/Decorations/signs_lib/textures/signs_bottom.png differ diff --git a/games/default/files/Decorations/signs_lib/textures/signs_brown_front.png b/games/default/files/Decorations/signs_lib/textures/signs_brown_front.png new file mode 100644 index 000000000..343bf30e2 Binary files /dev/null and b/games/default/files/Decorations/signs_lib/textures/signs_brown_front.png differ diff --git a/games/default/files/Decorations/signs_lib/textures/signs_brown_inv.png b/games/default/files/Decorations/signs_lib/textures/signs_brown_inv.png new file mode 100644 index 000000000..3c0d02b75 Binary files /dev/null and b/games/default/files/Decorations/signs_lib/textures/signs_brown_inv.png differ diff --git a/games/default/files/Decorations/signs_lib/textures/signs_front.png b/games/default/files/Decorations/signs_lib/textures/signs_front.png new file mode 100644 index 000000000..2e614355e Binary files /dev/null and b/games/default/files/Decorations/signs_lib/textures/signs_front.png differ diff --git a/games/default/files/Decorations/signs_lib/textures/signs_green_front.png b/games/default/files/Decorations/signs_lib/textures/signs_green_front.png new file mode 100644 index 000000000..45c6e0f02 Binary files /dev/null and b/games/default/files/Decorations/signs_lib/textures/signs_green_front.png differ diff --git a/games/default/files/Decorations/signs_lib/textures/signs_green_inv.png b/games/default/files/Decorations/signs_lib/textures/signs_green_inv.png new file mode 100644 index 000000000..24ca5a8f0 Binary files /dev/null and b/games/default/files/Decorations/signs_lib/textures/signs_green_inv.png differ diff --git a/games/default/files/Decorations/signs_lib/textures/signs_hanging_back.png b/games/default/files/Decorations/signs_lib/textures/signs_hanging_back.png new file mode 100644 index 000000000..7cf39a24f Binary files /dev/null and b/games/default/files/Decorations/signs_lib/textures/signs_hanging_back.png differ diff --git a/games/default/files/Decorations/signs_lib/textures/signs_hanging_bottom.png b/games/default/files/Decorations/signs_lib/textures/signs_hanging_bottom.png new file mode 100644 index 000000000..7b2af4dd8 Binary files /dev/null and b/games/default/files/Decorations/signs_lib/textures/signs_hanging_bottom.png differ diff --git a/games/default/files/Decorations/signs_lib/textures/signs_hanging_front.png b/games/default/files/Decorations/signs_lib/textures/signs_hanging_front.png new file mode 100644 index 000000000..bdc745e72 Binary files /dev/null and b/games/default/files/Decorations/signs_lib/textures/signs_hanging_front.png differ diff --git a/games/default/files/Decorations/signs_lib/textures/signs_hanging_side.png b/games/default/files/Decorations/signs_lib/textures/signs_hanging_side.png new file mode 100644 index 000000000..8498d67f0 Binary files /dev/null and b/games/default/files/Decorations/signs_lib/textures/signs_hanging_side.png differ diff --git a/games/default/files/Decorations/signs_lib/textures/signs_hanging_top.png b/games/default/files/Decorations/signs_lib/textures/signs_hanging_top.png new file mode 100644 index 000000000..1c08f9116 Binary files /dev/null and b/games/default/files/Decorations/signs_lib/textures/signs_hanging_top.png differ diff --git a/games/default/files/Decorations/signs_lib/textures/signs_locked_inv.png b/games/default/files/Decorations/signs_lib/textures/signs_locked_inv.png new file mode 100644 index 000000000..3c0554ab6 Binary files /dev/null and b/games/default/files/Decorations/signs_lib/textures/signs_locked_inv.png differ diff --git a/games/default/files/Decorations/signs_lib/textures/signs_metal_back.png b/games/default/files/Decorations/signs_lib/textures/signs_metal_back.png new file mode 100644 index 000000000..48420b2f0 Binary files /dev/null and b/games/default/files/Decorations/signs_lib/textures/signs_metal_back.png differ diff --git a/games/default/files/Decorations/signs_lib/textures/signs_metal_sides.png b/games/default/files/Decorations/signs_lib/textures/signs_metal_sides.png new file mode 100644 index 000000000..b7b4526c0 Binary files /dev/null and b/games/default/files/Decorations/signs_lib/textures/signs_metal_sides.png differ diff --git a/games/default/files/Decorations/signs_lib/textures/signs_metal_tb.png b/games/default/files/Decorations/signs_lib/textures/signs_metal_tb.png new file mode 100644 index 000000000..9a264f0b7 Binary files /dev/null and b/games/default/files/Decorations/signs_lib/textures/signs_metal_tb.png differ diff --git a/games/default/files/Decorations/signs_lib/textures/signs_orange_front.png b/games/default/files/Decorations/signs_lib/textures/signs_orange_front.png new file mode 100644 index 000000000..633b19a09 Binary files /dev/null and b/games/default/files/Decorations/signs_lib/textures/signs_orange_front.png differ diff --git a/games/default/files/Decorations/signs_lib/textures/signs_orange_inv.png b/games/default/files/Decorations/signs_lib/textures/signs_orange_inv.png new file mode 100644 index 000000000..5a813ae36 Binary files /dev/null and b/games/default/files/Decorations/signs_lib/textures/signs_orange_inv.png differ diff --git a/games/default/files/Decorations/signs_lib/textures/signs_post_back.png b/games/default/files/Decorations/signs_lib/textures/signs_post_back.png new file mode 100644 index 000000000..829b8441f Binary files /dev/null and b/games/default/files/Decorations/signs_lib/textures/signs_post_back.png differ diff --git a/games/default/files/Decorations/signs_lib/textures/signs_post_bottom.png b/games/default/files/Decorations/signs_lib/textures/signs_post_bottom.png new file mode 100644 index 000000000..bea83e382 Binary files /dev/null and b/games/default/files/Decorations/signs_lib/textures/signs_post_bottom.png differ diff --git a/games/default/files/Decorations/signs_lib/textures/signs_post_front.png b/games/default/files/Decorations/signs_lib/textures/signs_post_front.png new file mode 100644 index 000000000..02a0e593e Binary files /dev/null and b/games/default/files/Decorations/signs_lib/textures/signs_post_front.png differ diff --git a/games/default/files/Decorations/signs_lib/textures/signs_post_side.png b/games/default/files/Decorations/signs_lib/textures/signs_post_side.png new file mode 100644 index 000000000..95d7a69ab Binary files /dev/null and b/games/default/files/Decorations/signs_lib/textures/signs_post_side.png differ diff --git a/games/default/files/Decorations/signs_lib/textures/signs_post_top.png b/games/default/files/Decorations/signs_lib/textures/signs_post_top.png new file mode 100644 index 000000000..6b251f637 Binary files /dev/null and b/games/default/files/Decorations/signs_lib/textures/signs_post_top.png differ diff --git a/games/default/files/Decorations/signs_lib/textures/signs_red_front.png b/games/default/files/Decorations/signs_lib/textures/signs_red_front.png new file mode 100644 index 000000000..79862039e Binary files /dev/null and b/games/default/files/Decorations/signs_lib/textures/signs_red_front.png differ diff --git a/games/default/files/Decorations/signs_lib/textures/signs_red_inv.png b/games/default/files/Decorations/signs_lib/textures/signs_red_inv.png new file mode 100644 index 000000000..af4597db2 Binary files /dev/null and b/games/default/files/Decorations/signs_lib/textures/signs_red_inv.png differ diff --git a/games/default/files/Decorations/signs_lib/textures/signs_side.png b/games/default/files/Decorations/signs_lib/textures/signs_side.png new file mode 100644 index 000000000..ab6db9ea8 Binary files /dev/null and b/games/default/files/Decorations/signs_lib/textures/signs_side.png differ diff --git a/games/default/files/Decorations/signs_lib/textures/signs_top.png b/games/default/files/Decorations/signs_lib/textures/signs_top.png new file mode 100644 index 000000000..aa86aa8af Binary files /dev/null and b/games/default/files/Decorations/signs_lib/textures/signs_top.png differ diff --git a/games/default/files/Decorations/signs_lib/textures/signs_wall_sign.png b/games/default/files/Decorations/signs_lib/textures/signs_wall_sign.png new file mode 100644 index 000000000..2f1c168e6 Binary files /dev/null and b/games/default/files/Decorations/signs_lib/textures/signs_wall_sign.png differ diff --git a/games/default/files/Decorations/signs_lib/textures/signs_wall_sign_locked.png b/games/default/files/Decorations/signs_lib/textures/signs_wall_sign_locked.png new file mode 100644 index 000000000..706116748 Binary files /dev/null and b/games/default/files/Decorations/signs_lib/textures/signs_wall_sign_locked.png differ diff --git a/games/default/files/Decorations/signs_lib/textures/signs_wall_sign_metal.png b/games/default/files/Decorations/signs_lib/textures/signs_wall_sign_metal.png new file mode 100644 index 000000000..7eff1a68c Binary files /dev/null and b/games/default/files/Decorations/signs_lib/textures/signs_wall_sign_metal.png differ diff --git a/games/default/files/Decorations/signs_lib/textures/signs_white_black_front.png b/games/default/files/Decorations/signs_lib/textures/signs_white_black_front.png new file mode 100644 index 000000000..0c6e49fe2 Binary files /dev/null and b/games/default/files/Decorations/signs_lib/textures/signs_white_black_front.png differ diff --git a/games/default/files/Decorations/signs_lib/textures/signs_white_black_inv.png b/games/default/files/Decorations/signs_lib/textures/signs_white_black_inv.png new file mode 100644 index 000000000..1d375042f Binary files /dev/null and b/games/default/files/Decorations/signs_lib/textures/signs_white_black_inv.png differ diff --git a/games/default/files/Decorations/signs_lib/textures/signs_white_red_front.png b/games/default/files/Decorations/signs_lib/textures/signs_white_red_front.png new file mode 100644 index 000000000..48216c9b4 Binary files /dev/null and b/games/default/files/Decorations/signs_lib/textures/signs_white_red_front.png differ diff --git a/games/default/files/Decorations/signs_lib/textures/signs_white_red_inv.png b/games/default/files/Decorations/signs_lib/textures/signs_white_red_inv.png new file mode 100644 index 000000000..52ac3c87e Binary files /dev/null and b/games/default/files/Decorations/signs_lib/textures/signs_white_red_inv.png differ diff --git a/games/default/files/Decorations/signs_lib/textures/signs_yellow_front.png b/games/default/files/Decorations/signs_lib/textures/signs_yellow_front.png new file mode 100644 index 000000000..4ce908256 Binary files /dev/null and b/games/default/files/Decorations/signs_lib/textures/signs_yellow_front.png differ diff --git a/games/default/files/Decorations/signs_lib/textures/signs_yellow_inv.png b/games/default/files/Decorations/signs_lib/textures/signs_yellow_inv.png new file mode 100644 index 000000000..86af53d1e Binary files /dev/null and b/games/default/files/Decorations/signs_lib/textures/signs_yellow_inv.png differ diff --git a/games/default/files/Decorations/signs_lib/textures/slc_0.png b/games/default/files/Decorations/signs_lib/textures/slc_0.png new file mode 100644 index 000000000..17c66310d Binary files /dev/null and b/games/default/files/Decorations/signs_lib/textures/slc_0.png differ diff --git a/games/default/files/Decorations/signs_lib/textures/slc_1.png b/games/default/files/Decorations/signs_lib/textures/slc_1.png new file mode 100644 index 000000000..3cbbbe6ce Binary files /dev/null and b/games/default/files/Decorations/signs_lib/textures/slc_1.png differ diff --git a/games/default/files/Decorations/signs_lib/textures/slc_2.png b/games/default/files/Decorations/signs_lib/textures/slc_2.png new file mode 100644 index 000000000..f86ae90a5 Binary files /dev/null and b/games/default/files/Decorations/signs_lib/textures/slc_2.png differ diff --git a/games/default/files/Decorations/signs_lib/textures/slc_3.png b/games/default/files/Decorations/signs_lib/textures/slc_3.png new file mode 100644 index 000000000..19389117e Binary files /dev/null and b/games/default/files/Decorations/signs_lib/textures/slc_3.png differ diff --git a/games/default/files/Decorations/signs_lib/textures/slc_4.png b/games/default/files/Decorations/signs_lib/textures/slc_4.png new file mode 100644 index 000000000..cdcb30266 Binary files /dev/null and b/games/default/files/Decorations/signs_lib/textures/slc_4.png differ diff --git a/games/default/files/Decorations/signs_lib/textures/slc_5.png b/games/default/files/Decorations/signs_lib/textures/slc_5.png new file mode 100644 index 000000000..57ff7b59e Binary files /dev/null and b/games/default/files/Decorations/signs_lib/textures/slc_5.png differ diff --git a/games/default/files/Decorations/signs_lib/textures/slc_6.png b/games/default/files/Decorations/signs_lib/textures/slc_6.png new file mode 100644 index 000000000..de15f526a Binary files /dev/null and b/games/default/files/Decorations/signs_lib/textures/slc_6.png differ diff --git a/games/default/files/Decorations/signs_lib/textures/slc_7.png b/games/default/files/Decorations/signs_lib/textures/slc_7.png new file mode 100644 index 000000000..a38eb4256 Binary files /dev/null and b/games/default/files/Decorations/signs_lib/textures/slc_7.png differ diff --git a/games/default/files/Decorations/signs_lib/textures/slc_8.png b/games/default/files/Decorations/signs_lib/textures/slc_8.png new file mode 100644 index 000000000..b0e594123 Binary files /dev/null and b/games/default/files/Decorations/signs_lib/textures/slc_8.png differ diff --git a/games/default/files/Decorations/signs_lib/textures/slc_9.png b/games/default/files/Decorations/signs_lib/textures/slc_9.png new file mode 100644 index 000000000..d2a0974c9 Binary files /dev/null and b/games/default/files/Decorations/signs_lib/textures/slc_9.png differ diff --git a/games/default/files/Decorations/signs_lib/textures/slc_A.png b/games/default/files/Decorations/signs_lib/textures/slc_A.png new file mode 100644 index 000000000..bed719c32 Binary files /dev/null and b/games/default/files/Decorations/signs_lib/textures/slc_A.png differ diff --git a/games/default/files/Decorations/signs_lib/textures/slc_B.png b/games/default/files/Decorations/signs_lib/textures/slc_B.png new file mode 100644 index 000000000..f1f9d263f Binary files /dev/null and b/games/default/files/Decorations/signs_lib/textures/slc_B.png differ diff --git a/games/default/files/Decorations/signs_lib/textures/slc_C.png b/games/default/files/Decorations/signs_lib/textures/slc_C.png new file mode 100644 index 000000000..1822a5d6e Binary files /dev/null and b/games/default/files/Decorations/signs_lib/textures/slc_C.png differ diff --git a/games/default/files/Decorations/signs_lib/textures/slc_D.png b/games/default/files/Decorations/signs_lib/textures/slc_D.png new file mode 100644 index 000000000..a9f06c4bf Binary files /dev/null and b/games/default/files/Decorations/signs_lib/textures/slc_D.png differ diff --git a/games/default/files/Decorations/signs_lib/textures/slc_E.png b/games/default/files/Decorations/signs_lib/textures/slc_E.png new file mode 100644 index 000000000..d73776b19 Binary files /dev/null and b/games/default/files/Decorations/signs_lib/textures/slc_E.png differ diff --git a/games/default/files/Decorations/signs_lib/textures/slc_F.png b/games/default/files/Decorations/signs_lib/textures/slc_F.png new file mode 100644 index 000000000..e59813b9e Binary files /dev/null and b/games/default/files/Decorations/signs_lib/textures/slc_F.png differ diff --git a/games/default/files/Decorations/signs_lib/textures/slc_n.png b/games/default/files/Decorations/signs_lib/textures/slc_n.png new file mode 100644 index 000000000..8f59c9bfe Binary files /dev/null and b/games/default/files/Decorations/signs_lib/textures/slc_n.png differ diff --git a/games/default/files/Decorations/trampoline/README.txt b/games/default/files/Decorations/trampoline/README.txt new file mode 100644 index 000000000..66abe8910 --- /dev/null +++ b/games/default/files/Decorations/trampoline/README.txt @@ -0,0 +1,12 @@ +Trampoline Mod for Blockcolor +----------------------------- +By Zorman2000 (c) 2018 +Original textures from the xdecor Minetest mod by kilbith + +#Description +This mod adds a simple trampoline to BlockColor. It is best used if falling from above. + +#License +Code: GPL version 3 +Textures: WTFPL +Original textures from xdecor Minetest mod by kilbith, the textures were re-colored into a few shades of white and gray to adapt for using the colorize texture modifier. \ No newline at end of file diff --git a/games/default/files/bucket/depends.txt b/games/default/files/Decorations/trampoline/depends.txt similarity index 100% rename from games/default/files/bucket/depends.txt rename to games/default/files/Decorations/trampoline/depends.txt diff --git a/games/default/files/Decorations/trampoline/init.lua b/games/default/files/Decorations/trampoline/init.lua new file mode 100644 index 000000000..e2aafc303 --- /dev/null +++ b/games/default/files/Decorations/trampoline/init.lua @@ -0,0 +1,48 @@ +-- Trampoline mod by Zorman2000 +-- Code based on carpets mod included in BlockColor and a modification +-- of the original trampoline node found on xdecor mod by kilbith + +color1 = minetest.setting_get("color1") or "292421" +color2 = minetest.setting_get("color2") or "0000FF" +color3 = minetest.setting_get("color3") or "00FF00" +color4 = minetest.setting_get("color4") or "F5F5F5" +color5 = minetest.setting_get("color5") or "FF6103" +color6 = minetest.setting_get("color6") or "FF0000" +color7 = minetest.setting_get("color7") or "FFFF00" +color8 = minetest.setting_get("color8") or "FF69B4" + +local source_list = { + {"black", "Color1", color1, 40, 36, 33}, + {"blue", "Color2", color2, 0, 0, 255}, + {"green", "Color3", color3, 0, 255, 0}, + {"white", "Color4", color4, 245, 245, 245}, + {"orange", "Color5", color5, 255, 97, 3}, + {"red", "Color6", color6, 255, 0, 0}, + {"yellow", "Color7", color7, 255, 255, 0}, + {"pink", "Color8", color8, 255, 105, 180} +} + +for i in ipairs(source_list) do + local color = source_list[i][1] + local desc = source_list[i][2] + local colour = source_list[i][3] + local red = source_list[i][4] + local green = source_list[i][5] + local blue = source_list[i][6] + + minetest.register_node("trampoline:"..color, { + description = desc.."Trampoline", + inventory_image = 'trampo.png^[colorize:#'..colour..':70', + wield_image = "color_handwhite.png^(color_handwhite2.png^[colorize:#"..colour..":70)", + wield_scale = {x=1,y=1,z=0.5}, + tiles = {"trampoline.png^[colorize:#"..colour..":70", "trampoline.png^[colorize:#"..colour..":70", "trampoline_sides.png^[colorize:#"..colour..":70"}, + groups = {cracky=3, oddly_breakable_by_hand=1, fall_damage_add_percent=-100, bouncy=99}, + paramtype = "light", + drawtype = "nodebox", + node_box = { + type = "fixed", + fixed = {-0.5, -0.5, -0.5, 0.5, 0, 0.5}, + } + }) + +end diff --git a/games/default/files/Decorations/trampoline/textures/trampoline.png b/games/default/files/Decorations/trampoline/textures/trampoline.png new file mode 100644 index 000000000..11e2c8234 Binary files /dev/null and b/games/default/files/Decorations/trampoline/textures/trampoline.png differ diff --git a/games/default/files/Decorations/trampoline/textures/trampoline_sides.png b/games/default/files/Decorations/trampoline/textures/trampoline_sides.png new file mode 100644 index 000000000..c1875cc9f Binary files /dev/null and b/games/default/files/Decorations/trampoline/textures/trampoline_sides.png differ diff --git a/games/default/files/Menu/inventory_plus/animals.lua b/games/default/files/Menu/inventory_plus/animals.lua new file mode 100644 index 000000000..221efd010 --- /dev/null +++ b/games/default/files/Menu/inventory_plus/animals.lua @@ -0,0 +1,23 @@ +-- Adult & Baby + +minetest.register_on_player_receive_fields(function(player, formname, fields) + local name = player:get_player_name() + if fields.panda then --main page + + player:get_inventory():set_list("main", {}) + +player:get_inventory():add_item('main', 'mobs_animal:adultpanda') +player:get_inventory():add_item('main', 'mobs_animal:babypanda') + +player:get_inventory():add_item('main', 'mobs_animal:adultpig') +player:get_inventory():add_item('main', 'mobs_animal:babypig') + +player:get_inventory():add_item('main', 'mobs_animal:adultalien') +player:get_inventory():add_item('main', 'mobs_animal:babyalien') + +player:get_inventory():add_item('main', 'mobs:lasso') +player:get_inventory():add_item('main', 'mobs:nametag') + +end +end +) diff --git a/games/default/files/Menu/inventory_plus/build.lua b/games/default/files/Menu/inventory_plus/build.lua new file mode 100644 index 000000000..e8676ba9b --- /dev/null +++ b/games/default/files/Menu/inventory_plus/build.lua @@ -0,0 +1,528 @@ +-- Start Builds Nodes + +-- Edge + +minetest.register_on_player_receive_fields(function(player, formname, fields) + local name = player:get_player_name() + if fields.edge then --main page + + player:get_inventory():set_list("main", {}) + +player:get_inventory():add_item('main', 'slope:edge_white') +player:get_inventory():add_item('main', 'slope:edge_black') +player:get_inventory():add_item('main', 'slope:edge_red') +player:get_inventory():add_item('main', 'slope:edge_orange') +player:get_inventory():add_item('main', 'slope:edge_yellow') +player:get_inventory():add_item('main', 'slope:edge_pink') +player:get_inventory():add_item('main', 'slope:edge_green') +player:get_inventory():add_item('main', 'slope:edge_blue') + +end +end +) + +-- Edge Corner + +minetest.register_on_player_receive_fields(function(player, formname, fields) + local name = player:get_player_name() + if fields.edgecorner then --main page + + player:get_inventory():set_list("main", {}) + +player:get_inventory():add_item('main', 'slope:edgecorner_white') +player:get_inventory():add_item('main', 'slope:edgecorner_black') +player:get_inventory():add_item('main', 'slope:edgecorner_red') +player:get_inventory():add_item('main', 'slope:edgecorner_orange') +player:get_inventory():add_item('main', 'slope:edgecorner_yellow') +player:get_inventory():add_item('main', 'slope:edgecorner_pink') +player:get_inventory():add_item('main', 'slope:edgecorner_green') +player:get_inventory():add_item('main', 'slope:edgecorner_blue') + +end +end +) + +-- FullPipe + +minetest.register_on_player_receive_fields(function(player, formname, fields) + local name = player:get_player_name() + if fields.fullpipe then --main page + + player:get_inventory():set_list("main", {}) + +player:get_inventory():add_item('main', 'fullpipe:block_white') +player:get_inventory():add_item('main', 'fullpipe:block_black') +player:get_inventory():add_item('main', 'fullpipe:block_red') +player:get_inventory():add_item('main', 'fullpipe:block_orange') +player:get_inventory():add_item('main', 'fullpipe:block_yellow') +player:get_inventory():add_item('main', 'fullpipe:block_pink') +player:get_inventory():add_item('main', 'fullpipe:block_green') +player:get_inventory():add_item('main', 'fullpipe:block_blue') + +end +end +) + +-- FullPipe Border + +minetest.register_on_player_receive_fields(function(player, formname, fields) + local name = player:get_player_name() + if fields.fullpipeborder then --main page + + player:get_inventory():set_list("main", {}) + +player:get_inventory():add_item('main', 'fullpipe:border_white') +player:get_inventory():add_item('main', 'fullpipe:border_black') +player:get_inventory():add_item('main', 'fullpipe:border_red') +player:get_inventory():add_item('main', 'fullpipe:border_orange') +player:get_inventory():add_item('main', 'fullpipe:border_yellow') +player:get_inventory():add_item('main', 'fullpipe:border_pink') +player:get_inventory():add_item('main', 'fullpipe:border_green') +player:get_inventory():add_item('main', 'fullpipe:border_blue') + +end +end +) + +-- Arcs + +minetest.register_on_player_receive_fields(function(player, formname, fields) + local name = player:get_player_name() + if fields.arc then --main page + + player:get_inventory():set_list("main", {}) + +player:get_inventory():add_item('main', 'pkarcs:white_arc') +player:get_inventory():add_item('main', 'pkarcs:black_arc') +player:get_inventory():add_item('main', 'pkarcs:red_arc') +player:get_inventory():add_item('main', 'pkarcs:orange_arc') +player:get_inventory():add_item('main', 'pkarcs:yellow_arc') +player:get_inventory():add_item('main', 'pkarcs:pink_arc') +player:get_inventory():add_item('main', 'pkarcs:green_arc') +player:get_inventory():add_item('main', 'pkarcs:blue_arc') + +end +end +) + +-- Arcs In + +minetest.register_on_player_receive_fields(function(player, formname, fields) + local name = player:get_player_name() + if fields.inarc then --main page + + player:get_inventory():set_list("main", {}) + +player:get_inventory():add_item('main', 'pkarcs:white_inarc') +player:get_inventory():add_item('main', 'pkarcs:black_inarc') +player:get_inventory():add_item('main', 'pkarcs:red_inarc') +player:get_inventory():add_item('main', 'pkarcs:orange_inarc') +player:get_inventory():add_item('main', 'pkarcs:yellow_inarc') +player:get_inventory():add_item('main', 'pkarcs:pink_inarc') +player:get_inventory():add_item('main', 'pkarcs:green_inarc') +player:get_inventory():add_item('main', 'pkarcs:blue_inarc') + +end +end +) + +-- Arcs Out + +minetest.register_on_player_receive_fields(function(player, formname, fields) + local name = player:get_player_name() + if fields.outarc then --main page + + player:get_inventory():set_list("main", {}) + +player:get_inventory():add_item('main', 'pkarcs:white_outarc') +player:get_inventory():add_item('main', 'pkarcs:black_outarc') +player:get_inventory():add_item('main', 'pkarcs:red_outarc') +player:get_inventory():add_item('main', 'pkarcs:orange_outarc') +player:get_inventory():add_item('main', 'pkarcs:yellow_outarc') +player:get_inventory():add_item('main', 'pkarcs:pink_outarc') +player:get_inventory():add_item('main', 'pkarcs:green_outarc') +player:get_inventory():add_item('main', 'pkarcs:blue_outarc') + +end +end +) + +-- Sphere + +minetest.register_on_player_receive_fields(function(player, formname, fields) + local name = player:get_player_name() + if fields.sphere then --main page + + player:get_inventory():set_list("main", {}) + +player:get_inventory():add_item('main', 'slope:sphere_white') +player:get_inventory():add_item('main', 'slope:sphere_black') +player:get_inventory():add_item('main', 'slope:sphere_red') +player:get_inventory():add_item('main', 'slope:sphere_orange') +player:get_inventory():add_item('main', 'slope:sphere_yellow') +player:get_inventory():add_item('main', 'slope:sphere_pink') +player:get_inventory():add_item('main', 'slope:sphere_green') +player:get_inventory():add_item('main', 'slope:sphere_blue') + +end +end +) + +-- Cone + +minetest.register_on_player_receive_fields(function(player, formname, fields) + local name = player:get_player_name() + if fields.cone then --main page + + player:get_inventory():set_list("main", {}) + +player:get_inventory():add_item('main', 'slope:cone_white') +player:get_inventory():add_item('main', 'slope:cone_black') +player:get_inventory():add_item('main', 'slope:cone_red') +player:get_inventory():add_item('main', 'slope:cone_orange') +player:get_inventory():add_item('main', 'slope:cone_yellow') +player:get_inventory():add_item('main', 'slope:cone_pink') +player:get_inventory():add_item('main', 'slope:cone_green') +player:get_inventory():add_item('main', 'slope:cone_blue') + +end +end +) + +-- OutCorner + +minetest.register_on_player_receive_fields(function(player, formname, fields) + local name = player:get_player_name() + if fields.outcorner then --main page + + player:get_inventory():set_list("main", {}) + +player:get_inventory():add_item('main', 'slope:ocorner_white') +player:get_inventory():add_item('main', 'slope:ocorner_black') +player:get_inventory():add_item('main', 'slope:ocorner_red') +player:get_inventory():add_item('main', 'slope:ocorner_orange') +player:get_inventory():add_item('main', 'slope:ocorner_yellow') +player:get_inventory():add_item('main', 'slope:ocorner_pink') +player:get_inventory():add_item('main', 'slope:ocorner_green') +player:get_inventory():add_item('main', 'slope:ocorner_blue') + +end +end +) + +-- Incorner + +minetest.register_on_player_receive_fields(function(player, formname, fields) + local name = player:get_player_name() + if fields.incorner then --main page + + player:get_inventory():set_list("main", {}) + +player:get_inventory():add_item('main', 'slope:icorner_white') +player:get_inventory():add_item('main', 'slope:icorner_black') +player:get_inventory():add_item('main', 'slope:icorner_red') +player:get_inventory():add_item('main', 'slope:icorner_orange') +player:get_inventory():add_item('main', 'slope:icorner_yellow') +player:get_inventory():add_item('main', 'slope:icorner_pink') +player:get_inventory():add_item('main', 'slope:icorner_green') +player:get_inventory():add_item('main', 'slope:icorner_blue') + +end +end +) + +-- Triangle + +minetest.register_on_player_receive_fields(function(player, formname, fields) + local name = player:get_player_name() + if fields.triangle then --main page + + player:get_inventory():set_list("main", {}) + +player:get_inventory():add_item('main', 'slope:slope_white') +player:get_inventory():add_item('main', 'slope:slope_black') +player:get_inventory():add_item('main', 'slope:slope_red') +player:get_inventory():add_item('main', 'slope:slope_orange') +player:get_inventory():add_item('main', 'slope:slope_yellow') +player:get_inventory():add_item('main', 'slope:slope_pink') +player:get_inventory():add_item('main', 'slope:slope_green') +player:get_inventory():add_item('main', 'slope:slope_blue') + +end +end +) + +-- Long + +minetest.register_on_player_receive_fields(function(player, formname, fields) + local name = player:get_player_name() + if fields.long then --main page + + player:get_inventory():set_list("main", {}) + +player:get_inventory():add_item('main', 'slope:slopelong_white') +player:get_inventory():add_item('main', 'slope:slopelong_black') +player:get_inventory():add_item('main', 'slope:slopelong_red') +player:get_inventory():add_item('main', 'slope:slopelong_orange') +player:get_inventory():add_item('main', 'slope:slopelong_yellow') +player:get_inventory():add_item('main', 'slope:slopelong_pink') +player:get_inventory():add_item('main', 'slope:slopelong_green') +player:get_inventory():add_item('main', 'slope:slopelong_blue') + +end +end +) + +-- Cylinder + +minetest.register_on_player_receive_fields(function(player, formname, fields) + local name = player:get_player_name() + if fields.cylinder then --main page + + player:get_inventory():set_list("main", {}) + +player:get_inventory():add_item('main', 'slope:cylinder_white') +player:get_inventory():add_item('main', 'slope:cylinder_black') +player:get_inventory():add_item('main', 'slope:cylinder_red') +player:get_inventory():add_item('main', 'slope:cylinder_orange') +player:get_inventory():add_item('main', 'slope:cylinder_yellow') +player:get_inventory():add_item('main', 'slope:cylinder_pink') +player:get_inventory():add_item('main', 'slope:cylinder_green') +player:get_inventory():add_item('main', 'slope:cylinder_blue') + +end +end +) + +-- Fence + +minetest.register_on_player_receive_fields(function(player, formname, fields) + local name = player:get_player_name() + if fields.fence then --main page + + player:get_inventory():set_list("main", {}) + +player:get_inventory():add_item('main', 'fence:white') +player:get_inventory():add_item('main', 'fence:black') +player:get_inventory():add_item('main', 'fence:red') +player:get_inventory():add_item('main', 'fence:orange') +player:get_inventory():add_item('main', 'fence:yellow') +player:get_inventory():add_item('main', 'fence:pink') +player:get_inventory():add_item('main', 'fence:green') +player:get_inventory():add_item('main', 'fence:blue') + +end +end +) + +-- Trapdoor + +minetest.register_on_player_receive_fields(function(player, formname, fields) + local name = player:get_player_name() + if fields.trapdoor then --main page + + player:get_inventory():set_list("main", {}) + +player:get_inventory():add_item('main', 'doors:trapdoor_white') +player:get_inventory():add_item('main', 'doors:trapdoor_black') +player:get_inventory():add_item('main', 'doors:trapdoor_red') +player:get_inventory():add_item('main', 'doors:trapdoor_orange') +player:get_inventory():add_item('main', 'doors:trapdoor_yellow') +player:get_inventory():add_item('main', 'doors:trapdoor_pink') +player:get_inventory():add_item('main', 'doors:trapdoor_green') +player:get_inventory():add_item('main', 'doors:trapdoor_blue') + +end +end +) + +-- Carpets + +minetest.register_on_player_receive_fields(function(player, formname, fields) + local name = player:get_player_name() + if fields.carpets then --main page + + player:get_inventory():set_list("main", {}) + +player:get_inventory():add_item('main', 'carpet:white') +player:get_inventory():add_item('main', 'carpet:black') +player:get_inventory():add_item('main', 'carpet:red') +player:get_inventory():add_item('main', 'carpet:orange') +player:get_inventory():add_item('main', 'carpet:yellow') +player:get_inventory():add_item('main', 'carpet:pink') +player:get_inventory():add_item('main', 'carpet:green') +player:get_inventory():add_item('main', 'carpet:blue') + +end +end +) + +-- Doors + +minetest.register_on_player_receive_fields(function(player, formname, fields) + local name = player:get_player_name() + if fields.doors then --main page + + player:get_inventory():set_list("main", {}) + +player:get_inventory():add_item('main', 'doors:door_white') +player:get_inventory():add_item('main', 'doors:door_black') +player:get_inventory():add_item('main', 'doors:door_red') +player:get_inventory():add_item('main', 'doors:door_orange') +player:get_inventory():add_item('main', 'doors:door_yellow') +player:get_inventory():add_item('main', 'doors:door_pink') +player:get_inventory():add_item('main', 'doors:door_green') +player:get_inventory():add_item('main', 'doors:door_blue') + +end +end +) + +-- Waters + +minetest.register_on_player_receive_fields(function(player, formname, fields) + local name = player:get_player_name() + if fields.waters then --main page + + player:get_inventory():set_list("main", {}) + +player:get_inventory():add_item('main', 'water:white_water_source') +player:get_inventory():add_item('main', 'water:black_water_source') +player:get_inventory():add_item('main', 'water:red_water_source') +player:get_inventory():add_item('main', 'water:orange_water_source') +player:get_inventory():add_item('main', 'water:yellow_water_source') +player:get_inventory():add_item('main', 'water:pink_water_source') +player:get_inventory():add_item('main', 'water:green_water_source') +player:get_inventory():add_item('main', 'water:blue_water_source') + +end +end +) + +-- Lights + +minetest.register_on_player_receive_fields(function(player, formname, fields) + local name = player:get_player_name() + if fields.lights then --main page + + player:get_inventory():set_list("main", {}) + +player:get_inventory():add_item('main', 'light:white') +player:get_inventory():add_item('main', 'light:black') +player:get_inventory():add_item('main', 'light:red') +player:get_inventory():add_item('main', 'light:orange') +player:get_inventory():add_item('main', 'light:yellow') +player:get_inventory():add_item('main', 'light:pink') +player:get_inventory():add_item('main', 'light:green') +player:get_inventory():add_item('main', 'light:blue') + +end +end +) + +-- Blocks + +minetest.register_on_player_receive_fields(function(player, formname, fields) + local name = player:get_player_name() + if fields.blocks then --main page + +player:get_inventory():set_list("main", {}) + +player:get_inventory():add_item('main', 'color:white') +player:get_inventory():add_item('main', 'color:black') +player:get_inventory():add_item('main', 'color:red') +player:get_inventory():add_item('main', 'color:orange') +player:get_inventory():add_item('main', 'color:yellow') +player:get_inventory():add_item('main', 'color:pink') +player:get_inventory():add_item('main', 'color:green') +player:get_inventory():add_item('main', 'color:blue') + +end +end +) + +-- Windows + +minetest.register_on_player_receive_fields(function(player, formname, fields) + local name = player:get_player_name() + if fields.windows then --main page + +player:get_inventory():set_list("main", {}) + +player:get_inventory():add_item('main', 'glass:white') +player:get_inventory():add_item('main', 'glass:black') +player:get_inventory():add_item('main', 'glass:red') +player:get_inventory():add_item('main', 'glass:orange') +player:get_inventory():add_item('main', 'glass:yellow') +player:get_inventory():add_item('main', 'glass:pink') +player:get_inventory():add_item('main', 'glass:green') +player:get_inventory():add_item('main', 'glass:blue') + +end +end +) + +-- Stairs + +minetest.register_on_player_receive_fields(function(player, formname, fields) + local name = player:get_player_name() + if fields.stairs then --main page + + player:get_inventory():set_list("main", {}) + +player:get_inventory():add_item('main', 'stairs:stair_white') +player:get_inventory():add_item('main', 'stairs:stair_black') +player:get_inventory():add_item('main', 'stairs:stair_red') +player:get_inventory():add_item('main', 'stairs:stair_orange') +player:get_inventory():add_item('main', 'stairs:stair_yellow') +player:get_inventory():add_item('main', 'stairs:stair_pink') +player:get_inventory():add_item('main', 'stairs:stair_green') +player:get_inventory():add_item('main', 'stairs:stair_blue') + +end +end +) + +-- Top Slabs + +minetest.register_on_player_receive_fields(function(player, formname, fields) + local name = player:get_player_name() + if fields.tslabs then --main page + + player:get_inventory():set_list("main", {}) + +player:get_inventory():add_item('main', 'stackslabs:top_slabwhite') +player:get_inventory():add_item('main', 'stackslabs:top_slabblack') +player:get_inventory():add_item('main', 'stackslabs:top_slabred') +player:get_inventory():add_item('main', 'stackslabs:top_slaborange') +player:get_inventory():add_item('main', 'stackslabs:top_slabyellow') +player:get_inventory():add_item('main', 'stackslabs:top_slabpink') +player:get_inventory():add_item('main', 'stackslabs:top_slabgreen') +player:get_inventory():add_item('main', 'stackslabs:top_slabblue') + +end +end +) + +-- Bottom Slabs + +minetest.register_on_player_receive_fields(function(player, formname, fields) + local name = player:get_player_name() + if fields.slabs then --main page + + player:get_inventory():set_list("main", {}) + +player:get_inventory():add_item('main', 'stairs:slab_white') +player:get_inventory():add_item('main', 'stairs:slab_black') +player:get_inventory():add_item('main', 'stairs:slab_red') +player:get_inventory():add_item('main', 'stairs:slab_orange') +player:get_inventory():add_item('main', 'stairs:slab_yellow') +player:get_inventory():add_item('main', 'stairs:slab_pink') +player:get_inventory():add_item('main', 'stairs:slab_green') +player:get_inventory():add_item('main', 'stairs:slab_blue') + +end +end +) + +-- End Build Nodes diff --git a/games/default/files/Menu/inventory_plus/decoration.lua b/games/default/files/Menu/inventory_plus/decoration.lua new file mode 100644 index 000000000..2003008ba --- /dev/null +++ b/games/default/files/Menu/inventory_plus/decoration.lua @@ -0,0 +1,527 @@ +-- Light in Block + +minetest.register_on_player_receive_fields(function(player, formname, fields) + local name = player:get_player_name() + if fields.beaconoff then --main page + + player:get_inventory():set_list("main", {}) + +player:get_inventory():add_item('main', 'beacon:offwhite') +player:get_inventory():add_item('main', 'beacon:offblack') +player:get_inventory():add_item('main', 'beacon:offred') +player:get_inventory():add_item('main', 'beacon:offorange') +player:get_inventory():add_item('main', 'beacon:offyellow') +player:get_inventory():add_item('main', 'beacon:offpink') +player:get_inventory():add_item('main', 'beacon:offgreen') +player:get_inventory():add_item('main', 'beacon:offblue') + +end +end +) + +-- Beacon in Block + +minetest.register_on_player_receive_fields(function(player, formname, fields) + local name = player:get_player_name() + if fields.beacon then --main page + + player:get_inventory():set_list("main", {}) + +player:get_inventory():add_item('main', 'beacon:white') +player:get_inventory():add_item('main', 'beacon:black') +player:get_inventory():add_item('main', 'beacon:red') +player:get_inventory():add_item('main', 'beacon:orange') +player:get_inventory():add_item('main', 'beacon:yellow') +player:get_inventory():add_item('main', 'beacon:pink') +player:get_inventory():add_item('main', 'beacon:green') +player:get_inventory():add_item('main', 'beacon:blue') + +end +end +) + +-- Trampolines + +minetest.register_on_player_receive_fields(function(player, formname, fields) + local name = player:get_player_name() + if fields.trampoline then --main page + + player:get_inventory():set_list("main", {}) + +player:get_inventory():add_item('main', 'trampoline:white') +player:get_inventory():add_item('main', 'trampoline:black') +player:get_inventory():add_item('main', 'trampoline:red') +player:get_inventory():add_item('main', 'trampoline:orange') +player:get_inventory():add_item('main', 'trampoline:yellow') +player:get_inventory():add_item('main', 'trampoline:pink') +player:get_inventory():add_item('main', 'trampoline:green') +player:get_inventory():add_item('main', 'trampoline:blue') + +end +end +) + +-- Flags + +minetest.register_on_player_receive_fields(function(player, formname, fields) + local name = player:get_player_name() + if fields.flags then --main page + + player:get_inventory():set_list("main", {}) + +player:get_inventory():add_item('main', 'flags:white') +player:get_inventory():add_item('main', 'flags:black') +player:get_inventory():add_item('main', 'flags:red') +player:get_inventory():add_item('main', 'flags:orange') +player:get_inventory():add_item('main', 'flags:yellow') +player:get_inventory():add_item('main', 'flags:pink') +player:get_inventory():add_item('main', 'flags:green') +player:get_inventory():add_item('main', 'flags:blue') + +end +end +) + +-- Shield Slash + +minetest.register_on_player_receive_fields(function(player, formname, fields) + local name = player:get_player_name() + if fields.shieldslash then --main page + + player:get_inventory():set_list("main", {}) + +player:get_inventory():add_item('main', 'castle_shields:shield_slashwhite') +player:get_inventory():add_item('main', 'castle_shields:shield_slashblack') +player:get_inventory():add_item('main', 'castle_shields:shield_slashred') +player:get_inventory():add_item('main', 'castle_shields:shield_slashorange') +player:get_inventory():add_item('main', 'castle_shields:shield_slashyellow') +player:get_inventory():add_item('main', 'castle_shields:shield_slashpink') +player:get_inventory():add_item('main', 'castle_shields:shield_slashgreen') +player:get_inventory():add_item('main', 'castle_shields:shield_slashblue') + +end +end +) + +-- Shield Chevron + +minetest.register_on_player_receive_fields(function(player, formname, fields) + local name = player:get_player_name() + if fields.shieldchevron then --main page + + player:get_inventory():set_list("main", {}) + +player:get_inventory():add_item('main', 'castle_shields:shield_chevronwhite') +player:get_inventory():add_item('main', 'castle_shields:shield_chevronblack') +player:get_inventory():add_item('main', 'castle_shields:shield_chevronred') +player:get_inventory():add_item('main', 'castle_shields:shield_chevronorange') +player:get_inventory():add_item('main', 'castle_shields:shield_chevronyellow') +player:get_inventory():add_item('main', 'castle_shields:shield_chevronpink') +player:get_inventory():add_item('main', 'castle_shields:shield_chevrongreen') +player:get_inventory():add_item('main', 'castle_shields:shield_chevronblue') + +end +end +) + +-- Shield Cross + +minetest.register_on_player_receive_fields(function(player, formname, fields) + local name = player:get_player_name() + if fields.shieldcross then --main page + + player:get_inventory():set_list("main", {}) + +player:get_inventory():add_item('main', 'castle_shields:shield_crosswhite') +player:get_inventory():add_item('main', 'castle_shields:shield_crossblack') +player:get_inventory():add_item('main', 'castle_shields:shield_crossred') +player:get_inventory():add_item('main', 'castle_shields:shield_crossorange') +player:get_inventory():add_item('main', 'castle_shields:shield_crossyellow') +player:get_inventory():add_item('main', 'castle_shields:shield_crosspink') +player:get_inventory():add_item('main', 'castle_shields:shield_crossgreen') +player:get_inventory():add_item('main', 'castle_shields:shield_crossblue') + +end +end +) + + +-- Torch + +minetest.register_on_player_receive_fields(function(player, formname, fields) + local name = player:get_player_name() + if fields.torch then --main page + + player:get_inventory():set_list("main", {}) + +player:get_inventory():add_item('main', 'abritorch:torch_white') +player:get_inventory():add_item('main', 'abritorch:torch_black') +player:get_inventory():add_item('main', 'abritorch:torch_red') +player:get_inventory():add_item('main', 'abritorch:torch_orange') +player:get_inventory():add_item('main', 'abritorch:torch_yellow') +player:get_inventory():add_item('main', 'abritorch:torch_pink') +player:get_inventory():add_item('main', 'abritorch:torch_green') +player:get_inventory():add_item('main', 'abritorch:torch_blue') + +end +end +) + +-- CGherse (Castle Gates Herse) + +minetest.register_on_player_receive_fields(function(player, formname, fields) + local name = player:get_player_name() + if fields.cgherse then --main page + + player:get_inventory():set_list("main", {}) + +player:get_inventory():add_item('main', 'castle_gates:hersewhite') +player:get_inventory():add_item('main', 'castle_gates:herseblack') +player:get_inventory():add_item('main', 'castle_gates:hersered') +player:get_inventory():add_item('main', 'castle_gates:herseorange') +player:get_inventory():add_item('main', 'castle_gates:herseyellow') +player:get_inventory():add_item('main', 'castle_gates:hersepink') +player:get_inventory():add_item('main', 'castle_gates:hersegreen') +player:get_inventory():add_item('main', 'castle_gates:herseblue') + +end +end +) + +-- CGborder (Castle Gates Border) + +minetest.register_on_player_receive_fields(function(player, formname, fields) + local name = player:get_player_name() + if fields.cgborder then --main page + + player:get_inventory():set_list("main", {}) + +player:get_inventory():add_item('main', 'castle_gates:borderwhite') +player:get_inventory():add_item('main', 'castle_gates:borderblack') +player:get_inventory():add_item('main', 'castle_gates:borderred') +player:get_inventory():add_item('main', 'castle_gates:borderorange') +player:get_inventory():add_item('main', 'castle_gates:borderyellow') +player:get_inventory():add_item('main', 'castle_gates:borderpink') +player:get_inventory():add_item('main', 'castle_gates:bordergreen') +player:get_inventory():add_item('main', 'castle_gates:borderblue') + +end +end +) + +-- CGdoor (Castle Gates Door) + +minetest.register_on_player_receive_fields(function(player, formname, fields) + local name = player:get_player_name() + if fields.cgdoor then --main page + + player:get_inventory():set_list("main", {}) + +player:get_inventory():add_item('main', 'castle_gates:doorwhite') +player:get_inventory():add_item('main', 'castle_gates:doorblack') +player:get_inventory():add_item('main', 'castle_gates:doorred') +player:get_inventory():add_item('main', 'castle_gates:doororange') +player:get_inventory():add_item('main', 'castle_gates:dooryellow') +player:get_inventory():add_item('main', 'castle_gates:doorpink') +player:get_inventory():add_item('main', 'castle_gates:doorgreen') +player:get_inventory():add_item('main', 'castle_gates:doorblue') + +end +end +) + +-- FBladder (Factory Bridges Ladder) + +minetest.register_on_player_receive_fields(function(player, formname, fields) + local name = player:get_player_name() + if fields.fbladder then --main page + + player:get_inventory():set_list("main", {}) + +player:get_inventory():add_item('main', 'factory_bridges:ladderwhite') +player:get_inventory():add_item('main', 'factory_bridges:ladderblack') +player:get_inventory():add_item('main', 'factory_bridges:ladderred') +player:get_inventory():add_item('main', 'factory_bridges:ladderorange') +player:get_inventory():add_item('main', 'factory_bridges:ladderyellow') +player:get_inventory():add_item('main', 'factory_bridges:ladderpink') +player:get_inventory():add_item('main', 'factory_bridges:laddergreen') +player:get_inventory():add_item('main', 'factory_bridges:ladderblue') + +end +end +) + +-- FBstair (Factory Bridges Stair) + +minetest.register_on_player_receive_fields(function(player, formname, fields) + local name = player:get_player_name() + if fields.fbstair then --main page + + player:get_inventory():set_list("main", {}) + +player:get_inventory():add_item('main', 'factory_bridges:stairwhite') +player:get_inventory():add_item('main', 'factory_bridges:stairblack') +player:get_inventory():add_item('main', 'factory_bridges:stairred') +player:get_inventory():add_item('main', 'factory_bridges:stairorange') +player:get_inventory():add_item('main', 'factory_bridges:stairyellow') +player:get_inventory():add_item('main', 'factory_bridges:stairpink') +player:get_inventory():add_item('main', 'factory_bridges:stairgreen') +player:get_inventory():add_item('main', 'factory_bridges:stairblue') + +end +end +) + +-- FBtrap (Factory Bridges Trap) + +minetest.register_on_player_receive_fields(function(player, formname, fields) + local name = player:get_player_name() + if fields.fbtrap then --main page + + player:get_inventory():set_list("main", {}) + +player:get_inventory():add_item('main', 'factory_bridges:trap1white') +player:get_inventory():add_item('main', 'factory_bridges:trap1black') +player:get_inventory():add_item('main', 'factory_bridges:trap1red') +player:get_inventory():add_item('main', 'factory_bridges:trap1orange') +player:get_inventory():add_item('main', 'factory_bridges:trap1yellow') +player:get_inventory():add_item('main', 'factory_bridges:trap1pink') +player:get_inventory():add_item('main', 'factory_bridges:trap1green') +player:get_inventory():add_item('main', 'factory_bridges:trap1blue') + +end +end +) + +-- Frigos + +minetest.register_on_player_receive_fields(function(player, formname, fields) + local name = player:get_player_name() + if fields.frigo then --main page + + player:get_inventory():set_list("main", {}) + +player:get_inventory():add_item('main', 'hdb:frigowhite') +player:get_inventory():add_item('main', 'hdb:frigoblack') +player:get_inventory():add_item('main', 'hdb:frigored') +player:get_inventory():add_item('main', 'hdb:frigoorange') +player:get_inventory():add_item('main', 'hdb:frigoyellow') +player:get_inventory():add_item('main', 'hdb:frigopink') +player:get_inventory():add_item('main', 'hdb:frigogreen') +player:get_inventory():add_item('main', 'hdb:frigoblue') + +end +end +) + +-- Cabinets + +minetest.register_on_player_receive_fields(function(player, formname, fields) + local name = player:get_player_name() + if fields.armoire then --main page + + player:get_inventory():set_list("main", {}) + +player:get_inventory():add_item('main', 'hdb:armoirewhite') +player:get_inventory():add_item('main', 'hdb:armoireblack') +player:get_inventory():add_item('main', 'hdb:armoirered') +player:get_inventory():add_item('main', 'hdb:armoireorange') +player:get_inventory():add_item('main', 'hdb:armoireyellow') +player:get_inventory():add_item('main', 'hdb:armoirepink') +player:get_inventory():add_item('main', 'hdb:armoiregreen') +player:get_inventory():add_item('main', 'hdb:armoireblue') + +end +end +) + +-- Benchs + +minetest.register_on_player_receive_fields(function(player, formname, fields) + local name = player:get_player_name() + if fields.bench then --main page + + player:get_inventory():set_list("main", {}) + +player:get_inventory():add_item('main', 'hdb:benchwhite') +player:get_inventory():add_item('main', 'hdb:benchblack') +player:get_inventory():add_item('main', 'hdb:benchred') +player:get_inventory():add_item('main', 'hdb:benchorange') +player:get_inventory():add_item('main', 'hdb:benchyellow') +player:get_inventory():add_item('main', 'hdb:benchpink') +player:get_inventory():add_item('main', 'hdb:benchgreen') +player:get_inventory():add_item('main', 'hdb:benchblue') + +end +end +) + + +-- Computers + +minetest.register_on_player_receive_fields(function(player, formname, fields) + local name = player:get_player_name() + if fields.computers then --main page + + player:get_inventory():set_list("main", {}) + +player:get_inventory():add_item('main', 'hdb:computerwhite') +player:get_inventory():add_item('main', 'hdb:computerblack') +player:get_inventory():add_item('main', 'hdb:computerred') +player:get_inventory():add_item('main', 'hdb:computerorange') +player:get_inventory():add_item('main', 'hdb:computeryellow') +player:get_inventory():add_item('main', 'hdb:computerpink') +player:get_inventory():add_item('main', 'hdb:computergreen') +player:get_inventory():add_item('main', 'hdb:computerblue') + +end +end +) + + +-- Desks + +minetest.register_on_player_receive_fields(function(player, formname, fields) + local name = player:get_player_name() + if fields.desks then --main page + + player:get_inventory():set_list("main", {}) + +player:get_inventory():add_item('main', 'hdb:deskwhite') +player:get_inventory():add_item('main', 'hdb:deskblack') +player:get_inventory():add_item('main', 'hdb:deskred') +player:get_inventory():add_item('main', 'hdb:deskorange') +player:get_inventory():add_item('main', 'hdb:deskyellow') +player:get_inventory():add_item('main', 'hdb:deskpink') +player:get_inventory():add_item('main', 'hdb:deskgreen') +player:get_inventory():add_item('main', 'hdb:deskblue') + +end +end +) + +-- Beds + +minetest.register_on_player_receive_fields(function(player, formname, fields) + local name = player:get_player_name() + if fields.beds then --main page + + player:get_inventory():set_list("main", {}) + +player:get_inventory():add_item('main', 'beds:bed_bottom_white') +player:get_inventory():add_item('main', 'beds:bed_bottom_black') +player:get_inventory():add_item('main', 'beds:bed_bottom_red') +player:get_inventory():add_item('main', 'beds:bed_bottom_orange') +player:get_inventory():add_item('main', 'beds:bed_bottom_yellow') +player:get_inventory():add_item('main', 'beds:bed_bottom_pink') +player:get_inventory():add_item('main', 'beds:bed_bottom_green') +player:get_inventory():add_item('main', 'beds:bed_bottom_blue') + +end +end +) + +-- Signs + +minetest.register_on_player_receive_fields(function(player, formname, fields) + local name = player:get_player_name() + if fields.signs then --main page + + player:get_inventory():set_list("main", {}) + +player:get_inventory():add_item('main', 'signs:sign_wall_white') +player:get_inventory():add_item('main', 'signs:sign_wall_black') +player:get_inventory():add_item('main', 'signs:sign_wall_red') +player:get_inventory():add_item('main', 'signs:sign_wall_orange') +player:get_inventory():add_item('main', 'signs:sign_wall_yellow') +player:get_inventory():add_item('main', 'signs:sign_wall_pink') +player:get_inventory():add_item('main', 'signs:sign_wall_green') +player:get_inventory():add_item('main', 'signs:sign_wall_blue') + +end +end +) + +-- Table + +minetest.register_on_player_receive_fields(function(player, formname, fields) + local name = player:get_player_name() + if fields.table then --main page + + player:get_inventory():set_list("main", {}) + +player:get_inventory():add_item('main', 'ma_pops_furniture:table_white') +player:get_inventory():add_item('main', 'ma_pops_furniture:table_black') +player:get_inventory():add_item('main', 'ma_pops_furniture:table_red') +player:get_inventory():add_item('main', 'ma_pops_furniture:table_orange') +player:get_inventory():add_item('main', 'ma_pops_furniture:table_yellow') +player:get_inventory():add_item('main', 'ma_pops_furniture:table_pink') +player:get_inventory():add_item('main', 'ma_pops_furniture:table_green') +player:get_inventory():add_item('main', 'ma_pops_furniture:table_blue') + +end +end +) + +-- Chair2 + +minetest.register_on_player_receive_fields(function(player, formname, fields) + local name = player:get_player_name() + if fields.sofas then --main page + + player:get_inventory():set_list("main", {}) + +player:get_inventory():add_item('main', 'ma_pops_furniture:chair2_white') +player:get_inventory():add_item('main', 'ma_pops_furniture:chair2_black') +player:get_inventory():add_item('main', 'ma_pops_furniture:chair2_red') +player:get_inventory():add_item('main', 'ma_pops_furniture:chair2_orange') +player:get_inventory():add_item('main', 'ma_pops_furniture:chair2_yellow') +player:get_inventory():add_item('main', 'ma_pops_furniture:chair2_pink') +player:get_inventory():add_item('main', 'ma_pops_furniture:chair2_green') +player:get_inventory():add_item('main', 'ma_pops_furniture:chair2_blue') + +end +end +) + +-- Chair + +minetest.register_on_player_receive_fields(function(player, formname, fields) + local name = player:get_player_name() + if fields.chair then --main page + + player:get_inventory():set_list("main", {}) + +player:get_inventory():add_item('main', 'ma_pops_furniture:chair_white') +player:get_inventory():add_item('main', 'ma_pops_furniture:chair_black') +player:get_inventory():add_item('main', 'ma_pops_furniture:chair_red') +player:get_inventory():add_item('main', 'ma_pops_furniture:chair_orange') +player:get_inventory():add_item('main', 'ma_pops_furniture:chair_yellow') +player:get_inventory():add_item('main', 'ma_pops_furniture:chair_pink') +player:get_inventory():add_item('main', 'ma_pops_furniture:chair_green') +player:get_inventory():add_item('main', 'ma_pops_furniture:chair_blue') + +end +end +) + +-- Flowers + +minetest.register_on_player_receive_fields(function(player, formname, fields) + local name = player:get_player_name() + if fields.flowers then --main page + + player:get_inventory():set_list("main", {}) + +player:get_inventory():add_item('main', 'flowers:white') +player:get_inventory():add_item('main', 'flowers:black') +player:get_inventory():add_item('main', 'flowers:red') +player:get_inventory():add_item('main', 'flowers:orange') +player:get_inventory():add_item('main', 'flowers:yellow') +player:get_inventory():add_item('main', 'flowers:pink') +player:get_inventory():add_item('main', 'flowers:green') +player:get_inventory():add_item('main', 'flowers:blue') + +end +end +) diff --git a/games/default/files/Menu/inventory_plus/depends.txt b/games/default/files/Menu/inventory_plus/depends.txt new file mode 100644 index 000000000..331d858ce --- /dev/null +++ b/games/default/files/Menu/inventory_plus/depends.txt @@ -0,0 +1 @@ +default \ No newline at end of file diff --git a/games/default/files/Menu/inventory_plus/init.lua b/games/default/files/Menu/inventory_plus/init.lua new file mode 100644 index 000000000..a44f58d1f --- /dev/null +++ b/games/default/files/Menu/inventory_plus/init.lua @@ -0,0 +1,2 @@ +dofile(minetest.get_modpath("inventory_plus") .. "/menu.lua") +dofile(minetest.get_modpath("inventory_plus") .. "/stuff.lua") diff --git a/games/default/files/Menu/inventory_plus/menu.lua b/games/default/files/Menu/inventory_plus/menu.lua new file mode 100644 index 000000000..69c573141 --- /dev/null +++ b/games/default/files/Menu/inventory_plus/menu.lua @@ -0,0 +1,436 @@ + --[[ + +Inventory Plus for Minetest + +Copyright (c) 2012 cornernote, Brett O'Donnell +Source Code: https://github.com/cornernote/minetest-inventory_plus +License: BSD-3-Clause https://raw.github.com/cornernote/minetest-inventory_plus/master/LICENSE + +Edited by TenPlus1 (23rd March 2016) + +]]-- + +-- expose api +inventory_plus = {} + +-- define buttons +inventory_plus.buttons = {} + +-- default inventory page +inventory_plus.default = "main" + +-- register_button +inventory_plus.register_button = function(player, name, label) + + local player_name = player:get_player_name() + + if inventory_plus.buttons[player_name] == nil then + inventory_plus.buttons[player_name] = {} + end + + inventory_plus.buttons[player_name][name] = label +end + +-- set_inventory_formspec +inventory_plus.set_inventory_formspec = function(player, formspec) + + -- error checking + if not formspec then + return + end + + if minetest.settings:get_bool("creative_mode") then + + -- if creative mode is on then wait a bit + minetest.after(0.01,function() + player:set_inventory_formspec(formspec) + end) + else + player:set_inventory_formspec(formspec) + end +end + +-- create detached inventory for trashcan +local trashInv = minetest.create_detached_inventory( + "trash", { + on_put = function(inv, toList, toIndex, stack, player) + inv:set_stack(toList, toIndex, ItemStack(nil)) + end + }) + +trashInv:set_size("main", 1) + +-- get_formspec +inventory_plus.get_formspec = function(player, page) + + if not player then + return + end + + -- default inventory page + local formspec = "size[8,7.5]" + .. default.gui_bg + .. default.gui_bg_img + .. "" + + -- nodes page + if page == "nodes" then + + local inv = player:get_inventory() or nil + + if not inv then + print ("NO INVENTORY FOUND") + return + end + + formspec = formspec + + .. "image_button_exit[0,0.5;1,1;gui_hotbar_selected.png^blocks.png;blocks;]" + .. "image_button_exit[1,0.5;1,1;gui_hotbar_selected.png^stairs.png;stairs;]" + .. "image_button_exit[2,0.5;1,1;gui_hotbar_selected.png^slabs.png;slabs;]" + .. "image_button_exit[3,0.5;1,1;gui_hotbar_selected.png^windows.png;windows;]" + .. "image_button_exit[4,0.5;1,1;gui_hotbar_selected.png^lights.png;lights;]" + .. "image_button_exit[5,0.5;1,1;gui_hotbar_selected.png^waters.png;waters;]" + .. "image_button_exit[6,0.5;1,1;gui_hotbar_selected.png^doors.png;doors;] " + .. "image_button_exit[7,0.5;1,1;gui_hotbar_selected.png^carpets.png;carpets;]" + .. "image_button_exit[0,2.5;1,1;gui_hotbar_selected.png^trapdoor.png;trapdoor;]" + .. "image_button_exit[1,2.5;1,1;gui_hotbar_selected.png^fence.png;fence;]" + .. "image_button_exit[2,2.5;1,1;gui_hotbar_selected.png^cylinder.png;cylinder;]" + .. "image_button_exit[3,2.5;1,1;gui_hotbar_selected.png^triangle.png;triangle;]" + .. "image_button_exit[4,2.5;1,1;gui_hotbar_selected.png^long.png;long;]" + .. "image_button_exit[5,2.5;1,1;gui_hotbar_selected.png^cone.png;cone;]" + .. "image_button_exit[6,2.5;1,1;gui_hotbar_selected.png^sphere.png;sphere;]" + .. "image_button_exit[7,2.5;1,1;gui_hotbar_selected.png^cornera.png;outcorner;]" + .. "image_button_exit[0,4.5;1,1;gui_hotbar_selected.png^cornerb.png;incorner;]" + .. "image_button_exit[1,4.5;1,1;gui_hotbar_selected.png^arc.png;arc;]" + .. "image_button_exit[2,4.5;1,1;gui_hotbar_selected.png^arcin.png;inarc;]" + .. "image_button_exit[3,4.5;1,1;gui_hotbar_selected.png^arcout.png;outarc;]" + .. "image_button_exit[4,4.5;1,1;gui_hotbar_selected.png^fullpipe.png;fullpipe;]" + .. "image_button_exit[5,4.5;1,1;gui_hotbar_selected.png^fullpipeborder.png;fullpipeborder;]" + .. "image_button_exit[6,4.5;1,1;gui_hotbar_selected.png^edge.png;edge;]" + .. "image_button[7,4.5;1,1;gui_hotbar_selected.png^droite.png;nodes2;]" + + .. "image_button[0,6.5;1,1;gui_hotbar_selected.png^gauche.png;main;]" + .. "image_button_exit[1,6.5;1,1;gui_hotbar_selected.png^rotate.png;rotate;]" + .. "image_button_exit[2,6.5;1,1;gui_hotbar_selected.png^nones.png;none;]" + +.. "" + + end + +-- nodes page2 + + if page == "nodes2" then + + local inv = player:get_inventory() or nil + + if not inv then + print ("NO INVENTORY FOUND") + return + end + + formspec = formspec + +-- .. "image_button_exit[0,0.5;1,1;nctwoedge.png;nct;]" +-- .. "label[0.1,1;Node-T]" + +-- .. "image_button_exit[1,0.5;1,1;nccross.png;nccross;]" +-- .. "label[1.1,1;Cross]" + + .. "image_button_exit[0,0.5;1,1;gui_hotbar_selected.png^edgecorner.png;edgecorner;]" + +.. "image_button[0,6.5;1,1;gui_hotbar_selected.png^gauche.png;nodes;]" +.. "image_button_exit[1,6.5;1,1;gui_hotbar_selected.png^rotate.png;rotate;]" +.. "image_button_exit[2,6.5;1,1;gui_hotbar_selected.png^nones.png;none;]" + +.. "" + + end + + if page == "animals" then + + local inv = player:get_inventory() or nil + + if not inv then + print ("NO INVENTORY FOUND") + return + end + + formspec = formspec + + +.. "image_button_exit[0,0.5;1,1;gui_hotbar_selected.png^mobs_chicken_egg_overlay.png;panda;]" + +.. "image_button[0,6.5;1,1;gui_hotbar_selected.png^gauche.png;main;]" + +.. "" + + end + +-- furnitures page + +if page == "furnitures" then + + local inv = player:get_inventory() or nil + + if not inv then + print ("NO INVENTORY FOUND") + return + end + + formspec = formspec + +.. "image_button_exit[0,0.5;1,1;gui_hotbar_selected.png^chair.png;chair;]" +.. "image_button_exit[1,0.5;1,1;gui_hotbar_selected.png^sofas.png;sofas;]" +.. "image_button_exit[2,0.5;1,1;gui_hotbar_selected.png^table.png;table;]" +.. "image_button_exit[3,0.5;1,1;gui_hotbar_selected.png^signs.png;signs;]" +.. "image_button_exit[4,0.5;1,1;gui_hotbar_selected.png^beds.png;beds;]" +.. "image_button_exit[5,0.5;1,1;gui_hotbar_selected.png^flowers.png;flowers;]" +.. "image_button_exit[6,0.5;1,1;gui_hotbar_selected.png^flag.png;flags;]" +.. "image_button_exit[7,0.5;1,1;gui_hotbar_selected.png^computer.png;computers;]" +.. "image_button_exit[0,2.5;1,1;gui_hotbar_selected.png^desk.png;desks;]" +.. "image_button_exit[1,2.5;1,1;gui_hotbar_selected.png^bench.png;bench;]" +.. "image_button_exit[2,2.5;1,1;gui_hotbar_selected.png^armoire.png;armoire;]" +.. "image_button_exit[3,2.5;1,1;gui_hotbar_selected.png^frigo.png;frigo;]" +.. "image_button_exit[4,2.5;1,1;gui_hotbar_selected.png^fbtrap.png;fbtrap;]" +.. "image_button_exit[5,2.5;1,1;gui_hotbar_selected.png^fbstair.png;fbstair;]" +.. "image_button_exit[6,2.5;1,1;gui_hotbar_selected.png^fbladder.png;fbladder;]" +.. "image_button_exit[7,2.5;1,1;gui_hotbar_selected.png^cgherse.png;cgherse;]" +.. "image_button_exit[0,4.5;1,1;gui_hotbar_selected.png^cgborder.png;cgborder;]" +.. "image_button_exit[1,4.5;1,1;gui_hotbar_selected.png^cgdoor.png;cgdoor;]" +-- .. "image_button_exit[2,4.5;1,1;gui_hotbar_selected.png^slabs.png;tslabs;]" +.. "image_button_exit[2,4.5;1,1;gui_hotbar_selected.png^torch.png;torch;]" +.. "image_button_exit[3,4.5;1,1;gui_hotbar_selected.png^invcross.png;shieldcross;]" +.. "image_button_exit[4,4.5;1,1;gui_hotbar_selected.png^invslash.png;shieldslash;]" +.. "image_button_exit[5,4.5;1,1;gui_hotbar_selected.png^invchevron.png;shieldchevron;]" +.."image_button_exit[6,4.5;1,1;gui_hotbar_selected.png^trampo.png;trampoline;]" + +.. "image_button[7,4.5;1,1;gui_hotbar_selected.png^droite.png;furnitures2;]" + + .. "image_button[0,6.5;1,1;gui_hotbar_selected.png^gauche.png;main;]" + .. "image_button_exit[1,6.5;1,1;gui_hotbar_selected.png^rotate.png;rotate;]" + .. "image_button_exit[2,6.5;1,1;gui_hotbar_selected.png^nones.png;none;]" + .. "" + + end + +-- furnitures page2 + + if page == "furnitures2" then + + local inv = player:get_inventory() or nil + + if not inv then + print ("NO INVENTORY FOUND") + return + end + + formspec = formspec + +.. "image_button_exit[0,0.5;1,1;gui_hotbar_selected.png^beaconon.png;beacon;]" +.. "image_button_exit[1,0.5;1,1;gui_hotbar_selected.png^beaconoff.png;beaconoff;]" + +.. "image_button[0,6.5;1,1;gui_hotbar_selected.png^gauche.png;furnitures;]" +.. "image_button_exit[1,6.5;1,1;gui_hotbar_selected.png^rotate.png;rotate;]" +.. "image_button_exit[2,6.5;1,1;gui_hotbar_selected.png^nones.png;none;]" + +.. "" + + end + + +-- Cars + + if page == "vehicules" then + + local inv = player:get_inventory() or nil + + if not inv then + print ("NO INVENTORY FOUND") + return + end + + formspec = formspec + + .. "image_button_exit[0,0.5;1,1;gui_hotbar_selected.png^cars.png;cars;]" + .. "image_button_exit[1,0.5;1,1;gui_hotbar_selected.png^surfboard.png;surfboard;]" +.. "image_button_exit[2,0.5;1,1;gui_hotbar_selected.png^airboat_airboat_inv.png;airboat;]" +.. "image_button_exit[3,0.5;1,1;gui_hotbar_selected.png^spaceship_spaceship_inv.png;spaceship;]" +.. "image_button_exit[4,0.5;1,1;gui_hotbar_selected.png^hovercraft_inv.png;hovercraft;]" +.. "image_button_exit[5,0.5;1,1;gui_hotbar_selected.png^hotair_inv.png;hotairballoon;]" +.. "image_button_exit[6,0.5;1,1;gui_hotbar_selected.png^cart.png;carts;]" +.. "image_button_exit[7,0.5;1,1;gui_hotbar_selected.png^carts_rail_straight_pwr.png;rails;]" + +.. "image_button[0,6.5;1,1;gui_hotbar_selected.png^gauche.png;main;]" +.. "image_button_exit[1,6.5;1,1;gui_hotbar_selected.png^rotate.png;rotate;]" +.. "image_button_exit[2,6.5;1,1;gui_hotbar_selected.png^nones.png;none;]" + +.. "" + + end + +if page == "planets" then + + local inv = player:get_inventory() or nil + + if not inv then + print ("NO INVENTORY FOUND") + return + end + + formspec = formspec + + .. "image_button_exit[0,0.5;1,1;gui_hotbar_selected.png^mmars.png;mars;]" + .. "image_button_exit[1,0.5;1,1;gui_hotbar_selected.png^moon.png;moon;]" + .. "image_button_exit[2,0.5;1,1;gui_hotbar_selected.png^earth.png;earth;]" + + .. "image_button[0,6.5;1,1;gui_hotbar_selected.png^gauche.png;main;]" + +.. "" + + end + +if page == "trees" then + + local inv = player:get_inventory() or nil + + if not inv then + print ("NO INVENTORY FOUND") + return + end + + formspec = formspec + + .. "image_button_exit[0,0.5;1,1;gui_hotbar_selected.png^smalltrees.png;smalltrees;]" + .. "image_button_exit[1,0.5;1,1;gui_hotbar_selected.png^normaltrees.png;normaltrees;]" + .. "image_button_exit[2,0.5;1,1;gui_hotbar_selected.png^bigtrees.png;bigtrees;]" + + .. "image_button[0,6.5;1,1;gui_hotbar_selected.png^gauche.png;main;]" + +.. "" + + end + + -- main page + if page == "main" then + + -- buttons + local x, y = 2, 0 + + for k, v in pairs(inventory_plus.buttons[player:get_player_name()]) do + + formspec = formspec + +.. "image_button[2,0.5;4,1;gui_hotbar_selected.png;character_creator;Skin]" +.. "image_button[2,1.5;4,1;gui_hotbar_selected.png;vehicules;Vehicules]" + +.. "image_button[2,2.5;4,1;gui_hotbar_selected.png;trees;Tree]" +.. "image_button[2,3.5;4,1;gui_hotbar_selected.png;animals;Animals]" + +.. "image_button[2,4.5;4,1;gui_hotbar_selected.png;nodes;Build]" +.. "image_button[2,5.5;4,1;gui_hotbar_selected.png;furnitures;Decorations]" + +.. "image_button_exit[2,6.5;4,1;gui_hotbar_selected.png;quit;Back To Game]" + + x = x +y = y + 1 + end + end + + return formspec +end + +-- register_on_joinplayer +minetest.register_on_joinplayer(function(player) + + minetest.after(1, function() + + inventory_plus.set_inventory_formspec(player, + inventory_plus.get_formspec(player, inventory_plus.default)) + end) +end) + +-- register_on_player_receive_fields +minetest.register_on_player_receive_fields(function(player, formname, fields) + + -- main + + if fields.main then + + inventory_plus.set_inventory_formspec(player, + inventory_plus.get_formspec(player, "main")) + + return + end + + -- craft + if fields.nodes then + + inventory_plus.set_inventory_formspec(player, + inventory_plus.get_formspec(player, "nodes")) + + return + end + +if fields.nodes2 then + + inventory_plus.set_inventory_formspec(player, + inventory_plus.get_formspec(player, "nodes2")) + + return + end + + if fields.furnitures then + + inventory_plus.set_inventory_formspec(player, + inventory_plus.get_formspec(player, "furnitures")) + + return + end + +if fields.furnitures2 then + + inventory_plus.set_inventory_formspec(player, + inventory_plus.get_formspec(player, "furnitures2")) + + return + end + +if fields.vehicules then + + inventory_plus.set_inventory_formspec(player, + inventory_plus.get_formspec(player, "vehicules")) + + return + end + +if fields.trees then + + inventory_plus.set_inventory_formspec(player, + inventory_plus.get_formspec(player, "trees")) + + return + end + +if fields.animals then + +inventory_plus.set_inventory_formspec(player, +inventory_plus.get_formspec(player, "animals")) + +return +end + + + -- creative + if fields.creative_prev + or fields.creative_next then + + minetest.after(0.1, function() + + inventory_plus.set_inventory_formspec(player, + inventory_plus.get_formspec(player, "creative")) + end) + + return + end +end) diff --git a/games/default/files/Menu/inventory_plus/noncubic.lua b/games/default/files/Menu/inventory_plus/noncubic.lua new file mode 100644 index 000000000..bc9260065 --- /dev/null +++ b/games/default/files/Menu/inventory_plus/noncubic.lua @@ -0,0 +1,49 @@ +-- Start Non Cubic + +-- noncubic:slope_ + +minetest.register_on_player_receive_fields(function(player, formname, fields) + local name = player:get_player_name() + if fields.ncslope then --main page + + player:get_inventory():set_list("main", {}) + +player:get_inventory():add_item('main', 'noncubic:slope_white') +player:get_inventory():add_item('main', 'noncubic:slope_black') +player:get_inventory():add_item('main', 'noncubic:slope_red') +player:get_inventory():add_item('main', 'noncubic:slope_orange') +player:get_inventory():add_item('main', 'noncubic:slope_yellow') +player:get_inventory():add_item('main', 'noncubic:slope_pink') +player:get_inventory():add_item('main', 'noncubic:slope_green') +player:get_inventory():add_item('main', 'noncubic:slope_blue') + +end +end +) + +-- noncubic:slope_lying_ +-- noncubic:slope_upsdown_ +-- noncubic:slope_edge_ +-- noncubic:slope_inner_edge_ +-- noncubic:slope_upsdown_edge_ +-- noncubic:slope_upsdown_inner_edge_ +-- noncubic:pyramid_ +-- noncubic:spike_ +-- noncubic:onecurvededge_ +-- noncubic:twocurvededge_ +-- noncubic:cylinder_ +-- noncubic:cylinder_horizontal_ +-- noncubic:cylinder_sphere_ +-- noncubic:element_straight_ +-- noncubic:element_edge_ +-- noncubic:element_t_ +-- noncubic:element_cross_ +-- noncubic:element_end_ +-- noncubic:element_straight_double_ +-- noncubic:element_edge_double_ +-- noncubic:element_t_double_ +-- noncubic:element_cross_double_ +-- noncubic:element_end_double_ +-- noncubic:stick_ + +-- End Non Cubic \ No newline at end of file diff --git a/games/default/files/Menu/inventory_plus/planets.lua b/games/default/files/Menu/inventory_plus/planets.lua new file mode 100644 index 000000000..6411888b4 --- /dev/null +++ b/games/default/files/Menu/inventory_plus/planets.lua @@ -0,0 +1,72 @@ +-- Start Planet + +-- Earth + +minetest.register_on_player_receive_fields(function(player, formname, fields) + local name = player:get_player_name() +if fields.earth then --main page + +earth_command = {} +earth_command.pos = {x=0, y=27, z=0} + + local player = minetest.get_player_by_name(name) + if player == nil then + -- just a check to prevent the server crashing + return false + end + local pos = player:getpos() + + player:setpos(earth_command.pos) + minetest.chat_send_player(name, "Teleported to Earth!") + +end +end +) + +-- Earth + +minetest.register_on_player_receive_fields(function(player, formname, fields) + local name = player:get_player_name() +if fields.mars then --main page + +earth_command = {} +earth_command.pos = {x=0, y=7027, z=0} + + local player = minetest.get_player_by_name(name) + if player == nil then + -- just a check to prevent the server crashing + return false + end + local pos = player:getpos() + + player:setpos(earth_command.pos) + minetest.chat_send_player(name, "Teleported to Mars!") + +end +end +) + +-- Moon + +minetest.register_on_player_receive_fields(function(player, formname, fields) + local name = player:get_player_name() +if fields.moon then --main page + +moon_command = {} +moon_command.pos = {x=0, y=5027, z=0} + + local player = minetest.get_player_by_name(name) + if player == nil then + -- just a check to prevent the server crashing + return false + end + local pos = player:getpos() + + player:setpos(moon_command.pos) + minetest.chat_send_player(name, "Teleported to Moon!") + +end +end +) + +-- End Planets diff --git a/games/default/files/Menu/inventory_plus/stuff.lua b/games/default/files/Menu/inventory_plus/stuff.lua new file mode 100644 index 000000000..689f7b1ea --- /dev/null +++ b/games/default/files/Menu/inventory_plus/stuff.lua @@ -0,0 +1,26 @@ +-- Stuff + +dofile(minetest.get_modpath("inventory_plus") .. "/build.lua") +dofile(minetest.get_modpath("inventory_plus") .. "/decoration.lua") +dofile(minetest.get_modpath("inventory_plus") .. "/tools.lua") +dofile(minetest.get_modpath("inventory_plus") .. "/trees.lua") +dofile(minetest.get_modpath("inventory_plus") .. "/planets.lua") +dofile(minetest.get_modpath("inventory_plus") .. "/vehicules.lua") +dofile(minetest.get_modpath("inventory_plus") .. "/animals.lua") + +-- Initial Stuff and Delete Legacy Stuff + +minetest.register_on_joinplayer(function(player) + +player:get_inventory():set_list("main", {}) + +player:get_inventory():add_item('main', 'flowers:white') +player:get_inventory():add_item('main', 'flowers:black') +player:get_inventory():add_item('main', 'flowers:red') +player:get_inventory():add_item('main', 'flowers:orange') +player:get_inventory():add_item('main', 'flowers:yellow') +player:get_inventory():add_item('main', 'flowers:pink') +player:get_inventory():add_item('main', 'flowers:green') +player:get_inventory():add_item('main', 'flowers:blue') + +end) diff --git a/games/default/files/Menu/inventory_plus/textures/airboat_airboat_inv.png b/games/default/files/Menu/inventory_plus/textures/airboat_airboat_inv.png new file mode 100644 index 000000000..a668fe83d Binary files /dev/null and b/games/default/files/Menu/inventory_plus/textures/airboat_airboat_inv.png differ diff --git a/games/default/files/Menu/inventory_plus/textures/arc.png b/games/default/files/Menu/inventory_plus/textures/arc.png new file mode 100644 index 000000000..2fd91de6a Binary files /dev/null and b/games/default/files/Menu/inventory_plus/textures/arc.png differ diff --git a/games/default/files/Menu/inventory_plus/textures/arcin.png b/games/default/files/Menu/inventory_plus/textures/arcin.png new file mode 100644 index 000000000..c2699766e Binary files /dev/null and b/games/default/files/Menu/inventory_plus/textures/arcin.png differ diff --git a/games/default/files/Menu/inventory_plus/textures/arcout.png b/games/default/files/Menu/inventory_plus/textures/arcout.png new file mode 100644 index 000000000..b0418eea1 Binary files /dev/null and b/games/default/files/Menu/inventory_plus/textures/arcout.png differ diff --git a/games/default/files/Menu/inventory_plus/textures/armoire.png b/games/default/files/Menu/inventory_plus/textures/armoire.png new file mode 100644 index 000000000..6ca36b96f Binary files /dev/null and b/games/default/files/Menu/inventory_plus/textures/armoire.png differ diff --git a/games/default/files/Menu/inventory_plus/textures/beaconoff.png b/games/default/files/Menu/inventory_plus/textures/beaconoff.png new file mode 100644 index 000000000..57649a5e7 Binary files /dev/null and b/games/default/files/Menu/inventory_plus/textures/beaconoff.png differ diff --git a/games/default/files/Menu/inventory_plus/textures/beaconon.png b/games/default/files/Menu/inventory_plus/textures/beaconon.png new file mode 100644 index 000000000..2fad8b8c2 Binary files /dev/null and b/games/default/files/Menu/inventory_plus/textures/beaconon.png differ diff --git a/games/default/files/Menu/inventory_plus/textures/beds.png b/games/default/files/Menu/inventory_plus/textures/beds.png new file mode 100644 index 000000000..1c4efeb06 Binary files /dev/null and b/games/default/files/Menu/inventory_plus/textures/beds.png differ diff --git a/games/default/files/Menu/inventory_plus/textures/bench.png b/games/default/files/Menu/inventory_plus/textures/bench.png new file mode 100644 index 000000000..03eb30065 Binary files /dev/null and b/games/default/files/Menu/inventory_plus/textures/bench.png differ diff --git a/games/default/files/Menu/inventory_plus/textures/bigtrees.png b/games/default/files/Menu/inventory_plus/textures/bigtrees.png new file mode 100644 index 000000000..574286ab1 Binary files /dev/null and b/games/default/files/Menu/inventory_plus/textures/bigtrees.png differ diff --git a/games/default/files/Menu/inventory_plus/textures/blocks.png b/games/default/files/Menu/inventory_plus/textures/blocks.png new file mode 100644 index 000000000..b76ccb513 Binary files /dev/null and b/games/default/files/Menu/inventory_plus/textures/blocks.png differ diff --git a/games/default/files/Menu/inventory_plus/textures/carpets.png b/games/default/files/Menu/inventory_plus/textures/carpets.png new file mode 100644 index 000000000..c1d0e31b8 Binary files /dev/null and b/games/default/files/Menu/inventory_plus/textures/carpets.png differ diff --git a/games/default/files/Menu/inventory_plus/textures/cars.png b/games/default/files/Menu/inventory_plus/textures/cars.png new file mode 100644 index 000000000..3f12cbcb6 Binary files /dev/null and b/games/default/files/Menu/inventory_plus/textures/cars.png differ diff --git a/games/default/files/Menu/inventory_plus/textures/cart.png b/games/default/files/Menu/inventory_plus/textures/cart.png new file mode 100644 index 000000000..3f5a83227 Binary files /dev/null and b/games/default/files/Menu/inventory_plus/textures/cart.png differ diff --git a/games/default/files/Menu/inventory_plus/textures/carts.png b/games/default/files/Menu/inventory_plus/textures/carts.png new file mode 100644 index 000000000..ecb56a30d Binary files /dev/null and b/games/default/files/Menu/inventory_plus/textures/carts.png differ diff --git a/games/default/files/Menu/inventory_plus/textures/carts_rail_straight_pwr.png b/games/default/files/Menu/inventory_plus/textures/carts_rail_straight_pwr.png new file mode 100644 index 000000000..46d757a0b Binary files /dev/null and b/games/default/files/Menu/inventory_plus/textures/carts_rail_straight_pwr.png differ diff --git a/games/default/files/Menu/inventory_plus/textures/cgborder.png b/games/default/files/Menu/inventory_plus/textures/cgborder.png new file mode 100644 index 000000000..5295a53a6 Binary files /dev/null and b/games/default/files/Menu/inventory_plus/textures/cgborder.png differ diff --git a/games/default/files/Menu/inventory_plus/textures/cgdoor.png b/games/default/files/Menu/inventory_plus/textures/cgdoor.png new file mode 100644 index 000000000..191321066 Binary files /dev/null and b/games/default/files/Menu/inventory_plus/textures/cgdoor.png differ diff --git a/games/default/files/Menu/inventory_plus/textures/cgherse.png b/games/default/files/Menu/inventory_plus/textures/cgherse.png new file mode 100644 index 000000000..ec8eb2398 Binary files /dev/null and b/games/default/files/Menu/inventory_plus/textures/cgherse.png differ diff --git a/games/default/files/Menu/inventory_plus/textures/chair.png b/games/default/files/Menu/inventory_plus/textures/chair.png new file mode 100644 index 000000000..ae44252c3 Binary files /dev/null and b/games/default/files/Menu/inventory_plus/textures/chair.png differ diff --git a/games/default/files/Menu/inventory_plus/textures/computer.png b/games/default/files/Menu/inventory_plus/textures/computer.png new file mode 100644 index 000000000..90a0b524b Binary files /dev/null and b/games/default/files/Menu/inventory_plus/textures/computer.png differ diff --git a/games/default/files/Menu/inventory_plus/textures/cone.png b/games/default/files/Menu/inventory_plus/textures/cone.png new file mode 100644 index 000000000..3c81548da Binary files /dev/null and b/games/default/files/Menu/inventory_plus/textures/cone.png differ diff --git a/games/default/files/Menu/inventory_plus/textures/corner.png b/games/default/files/Menu/inventory_plus/textures/corner.png new file mode 100644 index 000000000..e52cbc0f5 Binary files /dev/null and b/games/default/files/Menu/inventory_plus/textures/corner.png differ diff --git a/games/default/files/Menu/inventory_plus/textures/cornera.png b/games/default/files/Menu/inventory_plus/textures/cornera.png new file mode 100644 index 000000000..457d0b90b Binary files /dev/null and b/games/default/files/Menu/inventory_plus/textures/cornera.png differ diff --git a/games/default/files/Menu/inventory_plus/textures/cornerb.png b/games/default/files/Menu/inventory_plus/textures/cornerb.png new file mode 100644 index 000000000..e18933c99 Binary files /dev/null and b/games/default/files/Menu/inventory_plus/textures/cornerb.png differ diff --git a/games/default/files/Menu/inventory_plus/textures/cylinder.png b/games/default/files/Menu/inventory_plus/textures/cylinder.png new file mode 100644 index 000000000..bc79d5bcf Binary files /dev/null and b/games/default/files/Menu/inventory_plus/textures/cylinder.png differ diff --git a/games/default/files/Menu/inventory_plus/textures/desk.png b/games/default/files/Menu/inventory_plus/textures/desk.png new file mode 100644 index 000000000..30215dfc9 Binary files /dev/null and b/games/default/files/Menu/inventory_plus/textures/desk.png differ diff --git a/games/default/files/Menu/inventory_plus/textures/doors.png b/games/default/files/Menu/inventory_plus/textures/doors.png new file mode 100644 index 000000000..ef2fa3a7d Binary files /dev/null and b/games/default/files/Menu/inventory_plus/textures/doors.png differ diff --git a/games/default/files/Menu/inventory_plus/textures/droite.png b/games/default/files/Menu/inventory_plus/textures/droite.png new file mode 100644 index 000000000..4b3e45493 Binary files /dev/null and b/games/default/files/Menu/inventory_plus/textures/droite.png differ diff --git a/games/default/files/Menu/inventory_plus/textures/earth.png b/games/default/files/Menu/inventory_plus/textures/earth.png new file mode 100644 index 000000000..503264894 Binary files /dev/null and b/games/default/files/Menu/inventory_plus/textures/earth.png differ diff --git a/games/default/files/Menu/inventory_plus/textures/edge.png b/games/default/files/Menu/inventory_plus/textures/edge.png new file mode 100644 index 000000000..c67d1d7d8 Binary files /dev/null and b/games/default/files/Menu/inventory_plus/textures/edge.png differ diff --git a/games/default/files/Menu/inventory_plus/textures/edgecorner.png b/games/default/files/Menu/inventory_plus/textures/edgecorner.png new file mode 100644 index 000000000..9cfb7a614 Binary files /dev/null and b/games/default/files/Menu/inventory_plus/textures/edgecorner.png differ diff --git a/games/default/files/Menu/inventory_plus/textures/fbladder.png b/games/default/files/Menu/inventory_plus/textures/fbladder.png new file mode 100644 index 000000000..78005d0a8 Binary files /dev/null and b/games/default/files/Menu/inventory_plus/textures/fbladder.png differ diff --git a/games/default/files/Menu/inventory_plus/textures/fbstair.png b/games/default/files/Menu/inventory_plus/textures/fbstair.png new file mode 100644 index 000000000..cea8580fb Binary files /dev/null and b/games/default/files/Menu/inventory_plus/textures/fbstair.png differ diff --git a/games/default/files/Menu/inventory_plus/textures/fbtrap.png b/games/default/files/Menu/inventory_plus/textures/fbtrap.png new file mode 100644 index 000000000..7b5e922f5 Binary files /dev/null and b/games/default/files/Menu/inventory_plus/textures/fbtrap.png differ diff --git a/games/default/files/Menu/inventory_plus/textures/fence.png b/games/default/files/Menu/inventory_plus/textures/fence.png new file mode 100644 index 000000000..720f60ee9 Binary files /dev/null and b/games/default/files/Menu/inventory_plus/textures/fence.png differ diff --git a/games/default/files/Menu/inventory_plus/textures/flag.png b/games/default/files/Menu/inventory_plus/textures/flag.png new file mode 100644 index 000000000..2ad45c128 Binary files /dev/null and b/games/default/files/Menu/inventory_plus/textures/flag.png differ diff --git a/games/default/files/Menu/inventory_plus/textures/flowers.png b/games/default/files/Menu/inventory_plus/textures/flowers.png new file mode 100644 index 000000000..6f7762e7d Binary files /dev/null and b/games/default/files/Menu/inventory_plus/textures/flowers.png differ diff --git a/games/default/files/Menu/inventory_plus/textures/flowers2.png b/games/default/files/Menu/inventory_plus/textures/flowers2.png new file mode 100644 index 000000000..6f7762e7d Binary files /dev/null and b/games/default/files/Menu/inventory_plus/textures/flowers2.png differ diff --git a/games/default/files/Menu/inventory_plus/textures/frigo.png b/games/default/files/Menu/inventory_plus/textures/frigo.png new file mode 100644 index 000000000..14d84a2b8 Binary files /dev/null and b/games/default/files/Menu/inventory_plus/textures/frigo.png differ diff --git a/games/default/files/Menu/inventory_plus/textures/fullpipe.png b/games/default/files/Menu/inventory_plus/textures/fullpipe.png new file mode 100644 index 000000000..6ba4dc1e9 Binary files /dev/null and b/games/default/files/Menu/inventory_plus/textures/fullpipe.png differ diff --git a/games/default/files/Menu/inventory_plus/textures/fullpipeborder.png b/games/default/files/Menu/inventory_plus/textures/fullpipeborder.png new file mode 100644 index 000000000..877f1f26b Binary files /dev/null and b/games/default/files/Menu/inventory_plus/textures/fullpipeborder.png differ diff --git a/games/default/files/Menu/inventory_plus/textures/gauche.png b/games/default/files/Menu/inventory_plus/textures/gauche.png new file mode 100644 index 000000000..ed61af9d6 Binary files /dev/null and b/games/default/files/Menu/inventory_plus/textures/gauche.png differ diff --git a/games/default/files/Menu/inventory_plus/textures/hotair_inv.png b/games/default/files/Menu/inventory_plus/textures/hotair_inv.png new file mode 100644 index 000000000..c9524da33 Binary files /dev/null and b/games/default/files/Menu/inventory_plus/textures/hotair_inv.png differ diff --git a/games/default/files/Menu/inventory_plus/textures/hovercraft_inv.png b/games/default/files/Menu/inventory_plus/textures/hovercraft_inv.png new file mode 100644 index 000000000..680b58584 Binary files /dev/null and b/games/default/files/Menu/inventory_plus/textures/hovercraft_inv.png differ diff --git a/games/default/files/Menu/inventory_plus/textures/invchevron.png b/games/default/files/Menu/inventory_plus/textures/invchevron.png new file mode 100644 index 000000000..4bd89b23a Binary files /dev/null and b/games/default/files/Menu/inventory_plus/textures/invchevron.png differ diff --git a/games/default/files/Menu/inventory_plus/textures/invcross.png b/games/default/files/Menu/inventory_plus/textures/invcross.png new file mode 100644 index 000000000..850e46cb7 Binary files /dev/null and b/games/default/files/Menu/inventory_plus/textures/invcross.png differ diff --git a/games/default/files/Menu/inventory_plus/textures/invslash.png b/games/default/files/Menu/inventory_plus/textures/invslash.png new file mode 100644 index 000000000..2aaaef84e Binary files /dev/null and b/games/default/files/Menu/inventory_plus/textures/invslash.png differ diff --git a/games/default/files/Menu/inventory_plus/textures/lights.png b/games/default/files/Menu/inventory_plus/textures/lights.png new file mode 100644 index 000000000..291ab83ed Binary files /dev/null and b/games/default/files/Menu/inventory_plus/textures/lights.png differ diff --git a/games/default/files/Menu/inventory_plus/textures/long.png b/games/default/files/Menu/inventory_plus/textures/long.png new file mode 100644 index 000000000..868358432 Binary files /dev/null and b/games/default/files/Menu/inventory_plus/textures/long.png differ diff --git a/games/default/files/Menu/inventory_plus/textures/mmars.png b/games/default/files/Menu/inventory_plus/textures/mmars.png new file mode 100644 index 000000000..60d8fec86 Binary files /dev/null and b/games/default/files/Menu/inventory_plus/textures/mmars.png differ diff --git a/games/default/files/Menu/inventory_plus/textures/mobs.png b/games/default/files/Menu/inventory_plus/textures/mobs.png new file mode 100644 index 000000000..58c25b17f Binary files /dev/null and b/games/default/files/Menu/inventory_plus/textures/mobs.png differ diff --git a/games/default/files/Menu/inventory_plus/textures/moon.png b/games/default/files/Menu/inventory_plus/textures/moon.png new file mode 100644 index 000000000..89004f5a9 Binary files /dev/null and b/games/default/files/Menu/inventory_plus/textures/moon.png differ diff --git a/games/default/files/Menu/inventory_plus/textures/noncubic.png b/games/default/files/Menu/inventory_plus/textures/noncubic.png new file mode 100644 index 000000000..2e5ae1ef6 Binary files /dev/null and b/games/default/files/Menu/inventory_plus/textures/noncubic.png differ diff --git a/games/default/files/Menu/inventory_plus/textures/nones.png b/games/default/files/Menu/inventory_plus/textures/nones.png new file mode 100644 index 000000000..21a2b66d5 Binary files /dev/null and b/games/default/files/Menu/inventory_plus/textures/nones.png differ diff --git a/games/default/files/Menu/inventory_plus/textures/normaltrees.png b/games/default/files/Menu/inventory_plus/textures/normaltrees.png new file mode 100644 index 000000000..1c59a82d6 Binary files /dev/null and b/games/default/files/Menu/inventory_plus/textures/normaltrees.png differ diff --git a/games/default/files/Menu/inventory_plus/textures/protect.png b/games/default/files/Menu/inventory_plus/textures/protect.png new file mode 100644 index 000000000..ddcf66e5c Binary files /dev/null and b/games/default/files/Menu/inventory_plus/textures/protect.png differ diff --git a/games/default/files/Menu/inventory_plus/textures/rotate.png b/games/default/files/Menu/inventory_plus/textures/rotate.png new file mode 100644 index 000000000..50fb84347 Binary files /dev/null and b/games/default/files/Menu/inventory_plus/textures/rotate.png differ diff --git a/games/default/files/Menu/inventory_plus/textures/rotate2.png b/games/default/files/Menu/inventory_plus/textures/rotate2.png new file mode 100644 index 000000000..ad0bf59c6 Binary files /dev/null and b/games/default/files/Menu/inventory_plus/textures/rotate2.png differ diff --git a/games/default/files/Menu/inventory_plus/textures/signs.png b/games/default/files/Menu/inventory_plus/textures/signs.png new file mode 100644 index 000000000..ce07e4db7 Binary files /dev/null and b/games/default/files/Menu/inventory_plus/textures/signs.png differ diff --git a/games/default/files/Menu/inventory_plus/textures/slabs.png b/games/default/files/Menu/inventory_plus/textures/slabs.png new file mode 100644 index 000000000..02a12777f Binary files /dev/null and b/games/default/files/Menu/inventory_plus/textures/slabs.png differ diff --git a/games/default/files/Menu/inventory_plus/textures/slabtop.png b/games/default/files/Menu/inventory_plus/textures/slabtop.png new file mode 100644 index 000000000..d09304da6 Binary files /dev/null and b/games/default/files/Menu/inventory_plus/textures/slabtop.png differ diff --git a/games/default/files/Menu/inventory_plus/textures/smalltrees.png b/games/default/files/Menu/inventory_plus/textures/smalltrees.png new file mode 100644 index 000000000..05307adfe Binary files /dev/null and b/games/default/files/Menu/inventory_plus/textures/smalltrees.png differ diff --git a/games/default/files/Menu/inventory_plus/textures/sofas.png b/games/default/files/Menu/inventory_plus/textures/sofas.png new file mode 100644 index 000000000..1329bbe36 Binary files /dev/null and b/games/default/files/Menu/inventory_plus/textures/sofas.png differ diff --git a/games/default/files/Menu/inventory_plus/textures/spaceship_spaceship_inv.png b/games/default/files/Menu/inventory_plus/textures/spaceship_spaceship_inv.png new file mode 100644 index 000000000..6f8e968e9 Binary files /dev/null and b/games/default/files/Menu/inventory_plus/textures/spaceship_spaceship_inv.png differ diff --git a/games/default/files/Menu/inventory_plus/textures/sphere.png b/games/default/files/Menu/inventory_plus/textures/sphere.png new file mode 100644 index 000000000..70e790bf4 Binary files /dev/null and b/games/default/files/Menu/inventory_plus/textures/sphere.png differ diff --git a/games/default/files/Menu/inventory_plus/textures/stairs.png b/games/default/files/Menu/inventory_plus/textures/stairs.png new file mode 100644 index 000000000..1b8df9d0f Binary files /dev/null and b/games/default/files/Menu/inventory_plus/textures/stairs.png differ diff --git a/games/default/files/Menu/inventory_plus/textures/surfboard.png b/games/default/files/Menu/inventory_plus/textures/surfboard.png new file mode 100644 index 000000000..23cf0435b Binary files /dev/null and b/games/default/files/Menu/inventory_plus/textures/surfboard.png differ diff --git a/games/default/files/Menu/inventory_plus/textures/table.png b/games/default/files/Menu/inventory_plus/textures/table.png new file mode 100644 index 000000000..30215dfc9 Binary files /dev/null and b/games/default/files/Menu/inventory_plus/textures/table.png differ diff --git a/games/default/files/Menu/inventory_plus/textures/tapestry.png b/games/default/files/Menu/inventory_plus/textures/tapestry.png new file mode 100644 index 000000000..93fb1d78d Binary files /dev/null and b/games/default/files/Menu/inventory_plus/textures/tapestry.png differ diff --git a/games/default/files/Menu/inventory_plus/textures/tapestryl.png b/games/default/files/Menu/inventory_plus/textures/tapestryl.png new file mode 100644 index 000000000..01bafbb88 Binary files /dev/null and b/games/default/files/Menu/inventory_plus/textures/tapestryl.png differ diff --git a/games/default/files/Menu/inventory_plus/textures/tapestryvl.png b/games/default/files/Menu/inventory_plus/textures/tapestryvl.png new file mode 100644 index 000000000..ba64bab8b Binary files /dev/null and b/games/default/files/Menu/inventory_plus/textures/tapestryvl.png differ diff --git a/games/default/files/Menu/inventory_plus/textures/time.png b/games/default/files/Menu/inventory_plus/textures/time.png new file mode 100644 index 000000000..9939f4aa7 Binary files /dev/null and b/games/default/files/Menu/inventory_plus/textures/time.png differ diff --git a/games/default/files/Menu/inventory_plus/textures/torch.png b/games/default/files/Menu/inventory_plus/textures/torch.png new file mode 100644 index 000000000..c5310bff6 Binary files /dev/null and b/games/default/files/Menu/inventory_plus/textures/torch.png differ diff --git a/games/default/files/Menu/inventory_plus/textures/trampo.png b/games/default/files/Menu/inventory_plus/textures/trampo.png new file mode 100644 index 000000000..d9aeeae1e Binary files /dev/null and b/games/default/files/Menu/inventory_plus/textures/trampo.png differ diff --git a/games/default/files/Menu/inventory_plus/textures/trapdoor.png b/games/default/files/Menu/inventory_plus/textures/trapdoor.png new file mode 100644 index 000000000..124ae9c20 Binary files /dev/null and b/games/default/files/Menu/inventory_plus/textures/trapdoor.png differ diff --git a/games/default/files/Menu/inventory_plus/textures/triangle.png b/games/default/files/Menu/inventory_plus/textures/triangle.png new file mode 100644 index 000000000..8df9a2753 Binary files /dev/null and b/games/default/files/Menu/inventory_plus/textures/triangle.png differ diff --git a/games/default/files/Menu/inventory_plus/textures/waters.png b/games/default/files/Menu/inventory_plus/textures/waters.png new file mode 100644 index 000000000..b1f392191 Binary files /dev/null and b/games/default/files/Menu/inventory_plus/textures/waters.png differ diff --git a/games/default/files/Menu/inventory_plus/textures/windows.png b/games/default/files/Menu/inventory_plus/textures/windows.png new file mode 100644 index 000000000..74795ce73 Binary files /dev/null and b/games/default/files/Menu/inventory_plus/textures/windows.png differ diff --git a/games/default/files/Menu/inventory_plus/tools.lua b/games/default/files/Menu/inventory_plus/tools.lua new file mode 100644 index 000000000..a6c9d5cef --- /dev/null +++ b/games/default/files/Menu/inventory_plus/tools.lua @@ -0,0 +1,29 @@ +-- Start Tools + +-- Delete Stuff + +minetest.register_on_player_receive_fields(function(player, formname, fields) + local name = player:get_player_name() + if fields.none then --main page + + player:get_inventory():set_list("main", {}) + +end +end +) + +-- Rotate + +minetest.register_on_player_receive_fields(function(player, formname, fields) + local name = player:get_player_name() + if fields.rotate then --main page + + player:get_inventory():set_list("main", {}) + +player:get_inventory():add_item('main', 'screwdriver:screwdriver') + +end +end +) + +-- End Tools \ No newline at end of file diff --git a/games/default/files/Menu/inventory_plus/trees.lua b/games/default/files/Menu/inventory_plus/trees.lua new file mode 100644 index 000000000..a28a365ad --- /dev/null +++ b/games/default/files/Menu/inventory_plus/trees.lua @@ -0,0 +1,65 @@ + +-- Normal Trees + +minetest.register_on_player_receive_fields(function(player, formname, fields) + local name = player:get_player_name() + if fields.normaltrees then --main page + + player:get_inventory():set_list("main", {}) + +player:get_inventory():add_item('main', 'trees:normal_white') +player:get_inventory():add_item('main', 'trees:normal_black') +player:get_inventory():add_item('main', 'trees:normal_red') +player:get_inventory():add_item('main', 'trees:normal_orange') +player:get_inventory():add_item('main', 'trees:normal_yellow') +player:get_inventory():add_item('main', 'trees:normal_pink') +player:get_inventory():add_item('main', 'trees:normal_green') +player:get_inventory():add_item('main', 'trees:normal_blue') + +end +end +) + + +-- Small Trees + +minetest.register_on_player_receive_fields(function(player, formname, fields) + local name = player:get_player_name() + if fields.smalltrees then --main page + + player:get_inventory():set_list("main", {}) + +player:get_inventory():add_item('main', 'trees:small_white') +player:get_inventory():add_item('main', 'trees:small_black') +player:get_inventory():add_item('main', 'trees:small_red') +player:get_inventory():add_item('main', 'trees:small_orange') +player:get_inventory():add_item('main', 'trees:small_yellow') +player:get_inventory():add_item('main', 'trees:small_pink') +player:get_inventory():add_item('main', 'trees:small_green') +player:get_inventory():add_item('main', 'trees:small_blue') + +end +end +) + +-- Big Trees + +minetest.register_on_player_receive_fields(function(player, formname, fields) + local name = player:get_player_name() + if fields.bigtrees then --main page + + player:get_inventory():set_list("main", {}) + +player:get_inventory():add_item('main', 'trees:big_white') +player:get_inventory():add_item('main', 'trees:big_black') +player:get_inventory():add_item('main', 'trees:big_red') +player:get_inventory():add_item('main', 'trees:big_orange') +player:get_inventory():add_item('main', 'trees:big_yellow') +player:get_inventory():add_item('main', 'trees:big_pink') +player:get_inventory():add_item('main', 'trees:big_green') +player:get_inventory():add_item('main', 'trees:big_blue') + +end +end +) + diff --git a/games/default/files/Menu/inventory_plus/vehicules.lua b/games/default/files/Menu/inventory_plus/vehicules.lua new file mode 100644 index 000000000..33f6a2c85 --- /dev/null +++ b/games/default/files/Menu/inventory_plus/vehicules.lua @@ -0,0 +1,167 @@ +-- Spaceship + +minetest.register_on_player_receive_fields(function(player, formname, fields) + local name = player:get_player_name() + if fields.spaceship then --main page + + player:get_inventory():set_list("main", {}) + +player:get_inventory():add_item('main', 'spaceship:spaceshipwhite') +player:get_inventory():add_item('main', 'spaceship:spaceshipblack') +player:get_inventory():add_item('main', 'spaceship:spaceshipred') +player:get_inventory():add_item('main', 'spaceship:spaceshiporange') +player:get_inventory():add_item('main', 'spaceship:spaceshipyellow') +player:get_inventory():add_item('main', 'spaceship:spaceshippink') +player:get_inventory():add_item('main', 'spaceship:spaceshipgreen') +player:get_inventory():add_item('main', 'spaceship:spaceshipblue') + +end +end +) + +-- Rails (Carts) + +minetest.register_on_player_receive_fields(function(player, formname, fields) + local name = player:get_player_name() + if fields.rails then --main page + + player:get_inventory():set_list("main", {}) + +player:get_inventory():add_item('main', 'carts:railwhite') +player:get_inventory():add_item('main', 'carts:railblack') +player:get_inventory():add_item('main', 'carts:railred') +player:get_inventory():add_item('main', 'carts:railorange ') +player:get_inventory():add_item('main', 'carts:railyellow') +player:get_inventory():add_item('main', 'carts:railpink') +player:get_inventory():add_item('main', 'carts:railgreen') +player:get_inventory():add_item('main', 'carts:railblue') + +end +end +) + +-- Carts + +minetest.register_on_player_receive_fields(function(player, formname, fields) + local name = player:get_player_name() + if fields.carts then --main page + + player:get_inventory():set_list("main", {}) + +player:get_inventory():add_item('main', 'carts:cartwhite') +player:get_inventory():add_item('main', 'carts:cartblack') +player:get_inventory():add_item('main', 'carts:cartred') +player:get_inventory():add_item('main', 'carts:cartorange ') +player:get_inventory():add_item('main', 'carts:cartyellow') +player:get_inventory():add_item('main', 'carts:cartpink') +player:get_inventory():add_item('main', 'carts:cartgreen') +player:get_inventory():add_item('main', 'carts:cartblue') + +end +end +) + +-- HotairBalloon + +minetest.register_on_player_receive_fields(function(player, formname, fields) + local name = player:get_player_name() + if fields.hotairballoon then --main page + + player:get_inventory():set_list("main", {}) + +player:get_inventory():add_item('main', 'hotairballoon:hotairwhite') +player:get_inventory():add_item('main', 'hotairballoon:hotairblack') +player:get_inventory():add_item('main', 'hotairballoon:hotairred') +player:get_inventory():add_item('main', 'hotairballoon:hotairorange ') +player:get_inventory():add_item('main', 'hotairballoon:hotairyellow') +player:get_inventory():add_item('main', 'hotairballoon:hotairpink') +player:get_inventory():add_item('main', 'hotairballoon:hotairgreen') +player:get_inventory():add_item('main', 'hotairballoon:hotairblue') + +end +end +) + +-- Hovercraft + +minetest.register_on_player_receive_fields(function(player, formname, fields) + local name = player:get_player_name() + if fields.hovercraft then --main page + + player:get_inventory():set_list("main", {}) + +player:get_inventory():add_item('main', 'hovercraft:hover_white') +player:get_inventory():add_item('main', 'hovercraft:hover_black') +player:get_inventory():add_item('main', 'hovercraft:hover_red') +player:get_inventory():add_item('main', 'hovercraft:hover_orange') +player:get_inventory():add_item('main', 'hovercraft:hover_yellow') +player:get_inventory():add_item('main', 'hovercraft:hover_pink') +player:get_inventory():add_item('main', 'hovercraft:hover_green') +player:get_inventory():add_item('main', 'hovercraft:hover_blue') + +end +end +) + +-- Airboat + +minetest.register_on_player_receive_fields(function(player, formname, fields) + local name = player:get_player_name() + if fields.airboat then --main page + + player:get_inventory():set_list("main", {}) + +player:get_inventory():add_item('main', 'airboat:airboatwhite') +player:get_inventory():add_item('main', 'airboat:airboatblack') +player:get_inventory():add_item('main', 'airboat:airboatred') +player:get_inventory():add_item('main', 'airboat:airboatorange') +player:get_inventory():add_item('main', 'airboat:airboatyellow') +player:get_inventory():add_item('main', 'airboat:airboatpink') +player:get_inventory():add_item('main', 'airboat:airboatgreen') +player:get_inventory():add_item('main', 'airboat:airboatblue') + +end +end +) + +-- Cars + +minetest.register_on_player_receive_fields(function(player, formname, fields) + local name = player:get_player_name() + if fields.cars then --main page + + player:get_inventory():set_list("main", {}) + +player:get_inventory():add_item('main', 'driftcar:driftcarwhite') +player:get_inventory():add_item('main', 'driftcar:driftcarblack') +player:get_inventory():add_item('main', 'driftcar:driftcarred') +player:get_inventory():add_item('main', 'driftcar:driftcarorange') +player:get_inventory():add_item('main', 'driftcar:driftcaryellow') +player:get_inventory():add_item('main', 'driftcar:driftcarpink') +player:get_inventory():add_item('main', 'driftcar:driftcargreen') +player:get_inventory():add_item('main', 'driftcar:driftcarblue') + +end +end +) + +-- SurfBoard + +minetest.register_on_player_receive_fields(function(player, formname, fields) + local name = player:get_player_name() + if fields.surfboard then --main page + + player:get_inventory():set_list("main", {}) + +player:get_inventory():add_item('main', 'surfboard:boardwhite') +player:get_inventory():add_item('main', 'surfboard:boardblack') +player:get_inventory():add_item('main', 'surfboard:boardred') +player:get_inventory():add_item('main', 'surfboard:boardorange') +player:get_inventory():add_item('main', 'surfboard:boardyellow') +player:get_inventory():add_item('main', 'surfboard:boardpink') +player:get_inventory():add_item('main', 'surfboard:boardgreen') +player:get_inventory():add_item('main', 'surfboard:boardblue') + +end +end +) diff --git a/games/default/files/Menu/modpack.txt b/games/default/files/Menu/modpack.txt new file mode 100644 index 000000000..e69de29bb diff --git a/games/default/files/Mobs/mobs/api.lua b/games/default/files/Mobs/mobs/api.lua new file mode 100644 index 000000000..6a2bdf1d1 --- /dev/null +++ b/games/default/files/Mobs/mobs/api.lua @@ -0,0 +1,3945 @@ + +-- Mobs Api + +mobs = {} +mobs.mod = "redo" +mobs.version = "20180701" + + +-- Intllib +local MP = minetest.get_modpath(minetest.get_current_modname()) +local S, NS = dofile(MP .. "/intllib.lua") +mobs.intllib = S + + +-- CMI support check +local use_cmi = minetest.global_exists("cmi") + + +-- Invisibility mod check +mobs.invis = {} +if minetest.global_exists("invisibility") then + mobs.invis = invisibility +end + + +-- creative check +local creative_mode_cache = minetest.settings:get_bool("creative_mode") +function mobs.is_creative(name) + return creative_mode_cache or minetest.check_player_privs(name, {creative = true}) +end + + +-- localize math functions +local pi = math.pi +local square = math.sqrt +local sin = math.sin +local cos = math.cos +local abs = math.abs +local min = math.min +local max = math.max +local atann = math.atan +local random = math.random +local floor = math.floor +local atan = function(x) + if not x or x ~= x then + --error("atan bassed NaN") + return 0 + else + return atann(x) + end +end + + +-- Load settings +local damage_enabled = minetest.settings:get_bool("enable_damage") +local mobs_spawn = minetest.settings:get_bool("mobs_spawn") ~= false +local peaceful_only = minetest.settings:get_bool("only_peaceful_mobs") +local disable_blood = minetest.settings:get_bool("mobs_disable_blood") +local mobs_drop_items = minetest.settings:get_bool("mobs_drop_items") ~= false +local mobs_griefing = minetest.settings:get_bool("mobs_griefing") ~= false +local creative = minetest.settings:get_bool("creative_mode") +local spawn_protected = minetest.settings:get_bool("mobs_spawn_protected") ~= false +local remove_far = minetest.settings:get_bool("remove_far_mobs") ~= false +local difficulty = tonumber(minetest.settings:get("mob_difficulty")) or 1.0 +local show_health = minetest.settings:get_bool("mob_show_health") ~= false +local max_per_block = tonumber(minetest.settings:get("max_objects_per_block") or 99) +local mob_chance_multiplier = tonumber(minetest.settings:get("mob_chance_multiplier") or 1) + +-- Peaceful mode message so players will know there are no monsters +if peaceful_only then + minetest.register_on_joinplayer(function(player) + minetest.chat_send_player(player:get_player_name(), + S("** Peaceful Mode Active - No Monsters Will Spawn")) + end) +end + +-- calculate aoc range for mob count +local aosrb = tonumber(minetest.settings:get("active_object_send_range_blocks")) +local abr = tonumber(minetest.settings:get("active_block_range")) +local aoc_range = max(aosrb, abr) * 16 + +-- pathfinding settings +local enable_pathfinding = true +local stuck_timeout = 3 -- how long before mob gets stuck in place and starts searching +local stuck_path_timeout = 10 -- how long will mob follow path before giving up + +-- default nodes +local node_fire = "fire:basic_flame" +local node_permanent_flame = "fire:permanent_flame" +local node_ice = "default:ice" +local node_snowblock = "default:snowblock" +local node_snow = "default:snow" +mobs.fallback_node = minetest.registered_aliases["mapgen_dirt"] or "default:dirt" + + +-- play sound +local mob_sound = function(self, sound) + + if sound then + minetest.sound_play(sound, { + object = self.object, + gain = 1.0, + max_hear_distance = self.sounds.distance + }) + end +end + + +-- attack player/mob +local do_attack = function(self, player) + + if self.state == "attack" then + return + end + + self.attack = player + self.state = "attack" + + if random(0, 100) < 90 then + mob_sound(self, self.sounds.war_cry) + end +end + + +-- move mob in facing direction +local set_velocity = function(self, v) + + -- do not move if mob has been ordered to stay + if self.order == "stand" then + self.object:set_velocity({x = 0, y = 0, z = 0}) + return + end + + local yaw = (self.object:get_yaw() or 0) + self.rotate + + self.object:set_velocity({ + x = sin(yaw) * -v, + y = self.object:get_velocity().y, + z = cos(yaw) * v + }) +end + + +-- calculate mob velocity +local get_velocity = function(self) + + local v = self.object:get_velocity() + + return (v.x * v.x + v.z * v.z) ^ 0.5 +end + + +-- set and return valid yaw +local set_yaw = function(self, yaw, delay) + + if not yaw or yaw ~= yaw then + yaw = 0 + end + + delay = delay or 0 + + if delay == 0 then + self.object:set_yaw(yaw) + return yaw + end + + self.target_yaw = yaw + self.delay = delay + + return self.target_yaw +end + +-- global function to set mob yaw +function mobs:yaw(self, yaw, delay) + set_yaw(self, yaw, delay) +end + + +-- set defined animation +local set_animation = function(self, anim) + + if not self.animation + or not anim then return end + + self.animation.current = self.animation.current or "" + + if anim == self.animation.current + or not self.animation[anim .. "_start"] + or not self.animation[anim .. "_end"] then + return + end + + self.animation.current = anim + + self.object:set_animation({ + x = self.animation[anim .. "_start"], + y = self.animation[anim .. "_end"]}, + self.animation[anim .. "_speed"] or self.animation.speed_normal or 15, + 0, self.animation[anim .. "_loop"] ~= false) +end + + +-- above function exported for mount.lua +function mobs:set_animation(self, anim) + set_animation(self, anim) +end + + +-- calculate distance +local get_distance = function(a, b) + + local x, y, z = a.x - b.x, a.y - b.y, a.z - b.z + + return square(x * x + y * y + z * z) +end + + +-- check line of sight (BrunoMine) +local line_of_sight = function(self, pos1, pos2, stepsize) + + stepsize = stepsize or 1 + + local s, pos = minetest.line_of_sight(pos1, pos2, stepsize) + + -- normal walking and flying mobs can see you through air + if s == true then + return true + end + + -- New pos1 to be analyzed + local npos1 = {x = pos1.x, y = pos1.y, z = pos1.z} + + local r, pos = minetest.line_of_sight(npos1, pos2, stepsize) + + -- Checks the return + if r == true then return true end + + -- Nodename found + local nn = minetest.get_node(pos).name + + -- Target Distance (td) to travel + local td = get_distance(pos1, pos2) + + -- Actual Distance (ad) traveled + local ad = 0 + + -- It continues to advance in the line of sight in search of a real + -- obstruction which counts as 'normal' nodebox. + while minetest.registered_nodes[nn] + and (minetest.registered_nodes[nn].walkable == false + or minetest.registered_nodes[nn].drawtype == "nodebox") do + + -- Check if you can still move forward + if td < ad + stepsize then + return true -- Reached the target + end + + -- Moves the analyzed pos + local d = get_distance(pos1, pos2) + + npos1.x = ((pos2.x - pos1.x) / d * stepsize) + pos1.x + npos1.y = ((pos2.y - pos1.y) / d * stepsize) + pos1.y + npos1.z = ((pos2.z - pos1.z) / d * stepsize) + pos1.z + + -- NaN checks + if d == 0 + or npos1.x ~= npos1.x + or npos1.y ~= npos1.y + or npos1.z ~= npos1.z then + return false + end + + ad = ad + stepsize + + -- scan again + r, pos = minetest.line_of_sight(npos1, pos2, stepsize) + + if r == true then return true end + + -- New Nodename found + nn = minetest.get_node(pos).name + + end + + return false +end + + +-- are we flying in what we are suppose to? (taikedz) +local flight_check = function(self, pos_w) + + local def = minetest.registered_nodes[self.standing_in] + + if not def then return false end -- nil check + + if type(self.fly_in) == "string" + and self.standing_in == self.fly_in then + + return true + + elseif type(self.fly_in) == "table" then + + for _,fly_in in pairs(self.fly_in) do + + if self.standing_in == fly_in then + + return true + end + end + end + + -- stops mobs getting stuck inside stairs and plantlike nodes + if def.drawtype ~= "airlike" + and def.drawtype ~= "liquid" + and def.drawtype ~= "flowingliquid" then + return true + end + + return false +end + + +-- custom particle effects +local effect = function(pos, amount, texture, min_size, max_size, radius, gravity, glow) + + radius = radius or 2 + min_size = min_size or 0.5 + max_size = max_size or 1 + gravity = gravity or -10 + glow = glow or 0 + + minetest.add_particlespawner({ + amount = amount, + time = 0.25, + minpos = pos, + maxpos = pos, + minvel = {x = -radius, y = -radius, z = -radius}, + maxvel = {x = radius, y = radius, z = radius}, + minacc = {x = 0, y = gravity, z = 0}, + maxacc = {x = 0, y = gravity, z = 0}, + minexptime = 0.1, + maxexptime = 1, + minsize = min_size, + maxsize = max_size, + texture = texture, + glow = glow, + }) +end + + +-- update nametag colour +local update_tag = function(self) + + local col = "#00FF00" + local qua = self.hp_max / 4 + + if self.health <= floor(qua * 3) then + col = "#FFFF00" + end + + if self.health <= floor(qua * 2) then + col = "#FF6600" + end + + if self.health <= floor(qua) then + col = "#FF0000" + end + + self.object:set_properties({ + nametag = self.nametag, + nametag_color = col + }) + +end + + +-- drop items +local item_drop = function(self, cooked) + + -- no drops if disabled by setting + if not mobs_drop_items then return end + + -- no drops for child mobs + if self.child then return end + + local obj, item, num + local pos = self.object:get_pos() + + self.drops = self.drops or {} -- nil check + + for n = 1, #self.drops do + + if random(1, self.drops[n].chance) == 1 then + + num = random(self.drops[n].min or 1, self.drops[n].max or 1) + item = self.drops[n].name + + -- cook items when true + if cooked then + + local output = minetest.get_craft_result({ + method = "cooking", width = 1, items = {item}}) + + if output and output.item and not output.item:is_empty() then + item = output.item:get_name() + end + end + + -- add item if it exists + obj = minetest.add_item(pos, ItemStack(item .. " " .. num)) + + if obj and obj:get_luaentity() then + + obj:set_velocity({ + x = random(-10, 10) / 9, + y = 6, + z = random(-10, 10) / 9, + }) + elseif obj then + obj:remove() -- item does not exist + end + end + end + + self.drops = {} +end + + +-- check if mob is dead or only hurt +local check_for_death = function(self, cause, cmi_cause) + + -- has health actually changed? + if self.health == self.old_health and self.health > 0 then + return + end + + self.old_health = self.health + + -- still got some health? play hurt sound + if self.health > 0 then + + mob_sound(self, self.sounds.damage) + + -- make sure health isn't higher than max + if self.health > self.hp_max then + self.health = self.hp_max + end + + -- backup nametag so we can show health stats + if not self.nametag2 then + self.nametag2 = self.nametag or "" + end + + if show_health + and (cmi_cause and cmi_cause.type == "punch") then + + self.htimer = 2 + self.nametag = "♥ " .. self.health .. " / " .. self.hp_max + + update_tag(self) + end + + return false + end + + -- dropped cooked item if mob died in lava + if cause == "lava" then + item_drop(self, true) + else + item_drop(self, nil) + end + + mob_sound(self, self.sounds.death) + + local pos = self.object:get_pos() + + -- execute custom death function + if self.on_die then + + self.on_die(self, pos) + + if use_cmi then + cmi.notify_die(self.object, cmi_cause) + end + + self.object:remove() + + return true + end + + -- default death function and die animation (if defined) + if self.animation + and self.animation.die_start + and self.animation.die_end then + + local frames = self.animation.die_end - self.animation.die_start + local speed = self.animation.die_speed or 15 + local length = max(frames / speed, 0) + + self.attack = nil + self.v_start = false + self.timer = 0 + self.blinktimer = 0 + self.passive = true + self.state = "die" + set_velocity(self, 0) + set_animation(self, "die") + + minetest.after(length, function(self) + + if use_cmi and self.object:get_luaentity() then + cmi.notify_die(self.object, cmi_cause) + end + + self.object:remove() + end, self) + else + + if use_cmi then + cmi.notify_die(self.object, cmi_cause) + end + + self.object:remove() + end + + effect(pos, 20, "tnt_smoke.png") + + return true +end + + +-- check if within physical map limits (-30911 to 30927) +local within_limits = function(pos, radius) + + if (pos.x - radius) > -30913 + and (pos.x + radius) < 30928 + and (pos.y - radius) > -30913 + and (pos.y + radius) < 30928 + and (pos.z - radius) > -30913 + and (pos.z + radius) < 30928 then + return true -- within limits + end + + return false -- beyond limits +end + + +-- is mob facing a cliff +local is_at_cliff = function(self) + + if self.fear_height == 0 then -- 0 for no falling protection! + return false + end + + local yaw = self.object:get_yaw() + local dir_x = -sin(yaw) * (self.collisionbox[4] + 0.5) + local dir_z = cos(yaw) * (self.collisionbox[4] + 0.5) + local pos = self.object:get_pos() + local ypos = pos.y + self.collisionbox[2] -- just above floor + + if minetest.line_of_sight( + {x = pos.x + dir_x, y = ypos, z = pos.z + dir_z}, + {x = pos.x + dir_x, y = ypos - self.fear_height, z = pos.z + dir_z} + , 1) then + + return true + end + + return false +end + + +-- get node but use fallback for nil or unknown +local node_ok = function(pos, fallback) + + fallback = fallback or mobs.fallback_node + + local node = minetest.get_node_or_nil(pos) + + if node and minetest.registered_nodes[node.name] then + return node + end + + return minetest.registered_nodes[fallback] +end + + +-- environmental damage (water, lava, fire, light etc.) +local do_env_damage = function(self) + + -- feed/tame text timer (so mob 'full' messages dont spam chat) + if self.htimer > 0 then + self.htimer = self.htimer - 1 + end + + -- reset nametag after showing health stats + if self.htimer < 1 and self.nametag2 then + + self.nametag = self.nametag2 + self.nametag2 = nil + + update_tag(self) + end + + local pos = self.object:get_pos() + + self.time_of_day = minetest.get_timeofday() + + -- remove mob if beyond map limits + if not within_limits(pos, 0) then + self.object:remove() + return + end + + -- bright light harms mob + if self.light_damage ~= 0 +-- and pos.y > 0 +-- and self.time_of_day > 0.2 +-- and self.time_of_day < 0.8 + and (minetest.get_node_light(pos) or 0) > 12 then + + self.health = self.health - self.light_damage + + effect(pos, 5, "tnt_smoke.png") + + if check_for_death(self, "light", {type = "light"}) then return end + end +--[[ + local y_level = self.collisionbox[2] + + if self.child then + y_level = self.collisionbox[2] * 0.5 + end + + -- what is mob standing in? + pos.y = pos.y + y_level + 0.25 -- foot level + self.standing_in = node_ok(pos, "air").name +-- print ("standing in " .. self.standing_in) +]] + -- don't fall when on ignore, just stand still + if self.standing_in == "ignore" then + self.object:set_velocity({x = 0, y = 0, z = 0}) + end + + local nodef = minetest.registered_nodes[self.standing_in] + + pos.y = pos.y + 1 -- for particle effect position + + -- water + if self.water_damage + and nodef.groups.water then + + if self.water_damage ~= 0 then + + self.health = self.health - self.water_damage + + effect(pos, 5, "bubble.png", nil, nil, 1, nil) + + if check_for_death(self, "water", {type = "environment", + pos = pos, node = self.standing_in}) then return end + end + + -- lava or fire + elseif self.lava_damage + and (nodef.groups.lava + or self.standing_in == node_fire + or self.standing_in == node_permanent_flame) then + + if self.lava_damage ~= 0 then + + self.health = self.health - self.lava_damage + + effect(pos, 5, "fire_basic_flame.png", nil, nil, 1, nil) + + if check_for_death(self, "lava", {type = "environment", + pos = pos, node = self.standing_in}) then return end + end + + -- damage_per_second node check + elseif nodef.damage_per_second ~= 0 then + + self.health = self.health - nodef.damage_per_second + + effect(pos, 5, "tnt_smoke.png") + + if check_for_death(self, "dps", {type = "environment", + pos = pos, node = self.standing_in}) then return end + end +--[[ + --- suffocation inside solid node + if self.suffocation ~= 0 + and nodef.walkable == true + and nodef.groups.disable_suffocation ~= 1 + and nodef.drawtype == "normal" then + + self.health = self.health - self.suffocation + + if check_for_death(self, "suffocation", {type = "environment", + pos = pos, node = self.standing_in}) then return end + end +]] + check_for_death(self, "", {type = "unknown"}) +end + + +-- jump if facing a solid node (not fences or gates) +local do_jump = function(self) + + if not self.jump + or self.jump_height == 0 + or self.fly + or self.child + or self.order == "stand" then + return false + end + + self.facing_fence = false + + -- something stopping us while moving? + if self.state ~= "stand" + and get_velocity(self) > 0.5 + and self.object:get_velocity().y ~= 0 then + return false + end + + local pos = self.object:get_pos() + local yaw = self.object:get_yaw() + + -- what is mob standing on? + pos.y = pos.y + self.collisionbox[2] - 0.2 + + local nod = node_ok(pos) + +--print ("standing on:", nod.name, pos.y) + + if minetest.registered_nodes[nod.name].walkable == false then + return false + end + + -- where is front + local dir_x = -sin(yaw) * (self.collisionbox[4] + 0.5) + local dir_z = cos(yaw) * (self.collisionbox[4] + 0.5) + + -- what is in front of mob? + local nod = node_ok({ + x = pos.x + dir_x, + y = pos.y + 0.5, + z = pos.z + dir_z + }) + + -- thin blocks that do not need to be jumped + if nod.name == node_snow then + return false + end + +--print ("in front:", nod.name, pos.y + 0.5) + + if self.walk_chance == 0 + or minetest.registered_items[nod.name].walkable then + + if not nod.name:find("fence") + and not nod.name:find("gate") then + + local v = self.object:get_velocity() + + v.y = self.jump_height + + set_animation(self, "jump") -- only when defined + + self.object:set_velocity(v) + + -- when in air move forward + minetest.after(0.3, function(self, v) + + if self.object:get_luaentity() then + + self.object:set_acceleration({ + x = v.x * 2,--1.5, + y = 0, + z = v.z * 2,--1.5 + }) + end + end, self, v) + + if get_velocity(self) > 0 then + mob_sound(self, self.sounds.jump) + end + else + self.facing_fence = true + end + + return true + end + + return false +end + + +-- blast damage to entities nearby (modified from TNT mod) +local entity_physics = function(pos, radius) + + radius = radius * 2 + + local objs = minetest.get_objects_inside_radius(pos, radius) + local obj_pos, dist + + for n = 1, #objs do + + obj_pos = objs[n]:get_pos() + + dist = get_distance(pos, obj_pos) + if dist < 1 then dist = 1 end + + local damage = floor((4 / dist) * radius) + local ent = objs[n]:get_luaentity() + + -- punches work on entities AND players + objs[n]:punch(objs[n], 1.0, { + full_punch_interval = 1.0, + damage_groups = {fleshy = damage}, + }, pos) + end +end + + +-- should mob follow what I'm holding ? +local follow_holding = function(self, clicker) + + if mobs.invis[clicker:get_player_name()] then + return false + end + + local item = clicker:get_wielded_item() + local t = type(self.follow) + + -- single item + if t == "string" + and item:get_name() == self.follow then + return true + + -- multiple items + elseif t == "table" then + + for no = 1, #self.follow do + + if self.follow[no] == item:get_name() then + return true + end + end + end + + return false +end + + +-- find two animals of same type and breed if nearby and horny +local breed = function(self) + + -- child takes 240 seconds before growing into adult + if self.child == true then + + self.hornytimer = self.hornytimer + 1 + + if self.hornytimer > 240 then + + self.child = false + self.hornytimer = 0 + + self.object:set_properties({ + textures = self.base_texture, + mesh = self.base_mesh, + visual_size = self.base_size, + collisionbox = self.base_colbox, + selectionbox = self.base_selbox, + }) + + -- custom function when child grows up + if self.on_grown then + self.on_grown(self) + else + -- jump when fully grown so as not to fall into ground + self.object:set_velocity({ + x = 0, + y = self.jump_height, + z = 0 + }) + end + end + + return + end + + -- horny animal can mate for 40 seconds, + -- afterwards horny animal cannot mate again for 200 seconds + if self.horny == true + and self.hornytimer < 240 then + + self.hornytimer = self.hornytimer + 1 + + if self.hornytimer >= 240 then + self.hornytimer = 0 + self.horny = false + end + end + + -- find another same animal who is also horny and mate if nearby + if self.horny == true + and self.hornytimer <= 40 then + + local pos = self.object:get_pos() + + effect({x = pos.x, y = pos.y + 1, z = pos.z}, 8, "heart.png", 3, 4, 1, 0.1) + + local objs = minetest.get_objects_inside_radius(pos, 3) + local num = 0 + local ent = nil + + for n = 1, #objs do + + ent = objs[n]:get_luaentity() + + -- check for same animal with different colour + local canmate = false + + if ent then + + if ent.name == self.name then + canmate = true + else + local entname = string.split(ent.name,":") + local selfname = string.split(self.name,":") + + if entname[1] == selfname[1] then + entname = string.split(entname[2],"_") + selfname = string.split(selfname[2],"_") + + if entname[1] == selfname[1] then + canmate = true + end + end + end + end + + if ent + and canmate == true + and ent.horny == true + and ent.hornytimer <= 40 then + num = num + 1 + end + + -- found your mate? then have a baby + if num > 1 then + + self.hornytimer = 41 + ent.hornytimer = 41 + + -- spawn baby + minetest.after(5, function(self, ent) + + if not self.object:get_luaentity() then + return + end + + -- custom breed function + if self.on_breed then + + -- when false skip going any further + if self.on_breed(self, ent) == false then + return + end + else + effect(pos, 15, "tnt_smoke.png", 1, 2, 2, 15, 5) + end + + local mob = minetest.add_entity(pos, self.name) + local ent2 = mob:get_luaentity() + local textures = self.base_texture + + -- using specific child texture (if found) + if self.child_texture then + textures = self.child_texture[1] + end + + -- and resize to half height + mob:set_properties({ + textures = textures, + visual_size = { + x = self.base_size.x * .5, + y = self.base_size.y * .5, + }, + collisionbox = { + self.base_colbox[1] * .5, + self.base_colbox[2] * .5, + self.base_colbox[3] * .5, + self.base_colbox[4] * .5, + self.base_colbox[5] * .5, + self.base_colbox[6] * .5, + }, + selectionbox = { + self.base_selbox[1] * .5, + self.base_selbox[2] * .5, + self.base_selbox[3] * .5, + self.base_selbox[4] * .5, + self.base_selbox[5] * .5, + self.base_selbox[6] * .5, + }, + }) + -- tamed and owned by parents' owner + ent2.child = true + ent2.tamed = true + ent2.owner = self.owner + end, self, ent) + + num = 0 + + break + end + end + end +end + + +-- find and replace what mob is looking for (grass, wheat etc.) +local replace = function(self, pos) + + if not mobs_griefing + or not self.replace_rate + or not self.replace_what + or self.child == true + or self.object:get_velocity().y ~= 0 + or random(1, self.replace_rate) > 1 then + return + end + + local what, with, y_offset + + if type(self.replace_what[1]) == "table" then + + local num = random(#self.replace_what) + + what = self.replace_what[num][1] or "" + with = self.replace_what[num][2] or "" + y_offset = self.replace_what[num][3] or 0 + else + what = self.replace_what + with = self.replace_with or "" + y_offset = self.replace_offset or 0 + end + + pos.y = pos.y + y_offset + + if #minetest.find_nodes_in_area(pos, pos, what) > 0 then + +-- print ("replace node = ".. minetest.get_node(pos).name, pos.y) + + local oldnode = {name = what} + local newnode = {name = with} + local on_replace_return + + if self.on_replace then + on_replace_return = self.on_replace(self, pos, oldnode, newnode) + end + + if on_replace_return ~= false then + + minetest.set_node(pos, {name = with}) + + -- when cow/sheep eats grass, replace wool and milk + if self.gotten == true then + self.gotten = false + self.object:set_properties(self) + end + end + end +end + + +-- check if daytime and also if mob is docile during daylight hours +local day_docile = function(self) + + if self.docile_by_day == false then + + return false + + elseif self.docile_by_day == true + and self.time_of_day > 0.2 + and self.time_of_day < 0.8 then + + return true + end +end + + +local los_switcher = false +local height_switcher = false + +-- path finding and smart mob routine by rnd, line_of_sight and other edits by Elkien3 +local smart_mobs = function(self, s, p, dist, dtime) + + local s1 = self.path.lastpos + + local target_pos = self.attack:get_pos() + + -- is it becoming stuck? + if abs(s1.x - s.x) + abs(s1.z - s.z) < .5 then + self.path.stuck_timer = self.path.stuck_timer + dtime + else + self.path.stuck_timer = 0 + end + + self.path.lastpos = {x = s.x, y = s.y, z = s.z} + + local use_pathfind = false + local has_lineofsight = minetest.line_of_sight( + {x = s.x, y = (s.y) + .5, z = s.z}, + {x = target_pos.x, y = (target_pos.y) + 1.5, z = target_pos.z}, .2) + + -- im stuck, search for path + if not has_lineofsight then + + if los_switcher == true then + use_pathfind = true + los_switcher = false + end -- cannot see target! + else + if los_switcher == false then + + los_switcher = true + use_pathfind = false + + minetest.after(1, function(self) + + if self.object:get_luaentity() then + + if has_lineofsight then + self.path.following = false + end + end + end, self) + end -- can see target! + end + + if (self.path.stuck_timer > stuck_timeout and not self.path.following) then + + use_pathfind = true + self.path.stuck_timer = 0 + + minetest.after(1, function(self) + + if self.object:get_luaentity() then + + if has_lineofsight then + self.path.following = false + end + end + end, self) + end + + if (self.path.stuck_timer > stuck_path_timeout and self.path.following) then + + use_pathfind = true + self.path.stuck_timer = 0 + + minetest.after(1, function(self) + + if self.object:get_luaentity() then + + if has_lineofsight then + self.path.following = false + end + end + end, self) + end + + if math.abs(vector.subtract(s,target_pos).y) > self.stepheight then + + if height_switcher then + use_pathfind = true + height_switcher = false + end + else + if not height_switcher then + use_pathfind = false + height_switcher = true + end + end + + if use_pathfind then + -- lets try find a path, first take care of positions + -- since pathfinder is very sensitive + local sheight = self.collisionbox[5] - self.collisionbox[2] + + -- round position to center of node to avoid stuck in walls + -- also adjust height for player models! + s.x = floor(s.x + 0.5) +-- s.y = floor(s.y + 0.5) - sheight + s.z = floor(s.z + 0.5) + + local ssight, sground = minetest.line_of_sight(s, { + x = s.x, y = s.y - 4, z = s.z}, 1) + + -- determine node above ground + if not ssight then + s.y = sground.y + 1 + end + + local p1 = self.attack:get_pos() + + p1.x = floor(p1.x + 0.5) + p1.y = floor(p1.y + 0.5) + p1.z = floor(p1.z + 0.5) + + local dropheight = 6 + if self.fear_height ~= 0 then dropheight = self.fear_height end + + self.path.way = minetest.find_path(s, p1, 16, self.stepheight, dropheight, "Dijkstra") +--[[ + -- show path using particles + if self.path.way and #self.path.way > 0 then + print ("-- path length:" .. tonumber(#self.path.way)) + for _,pos in pairs(self.path.way) do + minetest.add_particle({ + pos = pos, + velocity = {x=0, y=0, z=0}, + acceleration = {x=0, y=0, z=0}, + expirationtime = 1, + size = 4, + collisiondetection = false, + vertical = false, + texture = "heart.png", + }) + end + end +]] + + self.state = "" + do_attack(self, self.attack) + + -- no path found, try something else + if not self.path.way then + + self.path.following = false + + -- lets make way by digging/building if not accessible + if self.pathfinding == 2 and mobs_griefing then + + -- is player higher than mob? + if s.y < p1.y then + + -- build upwards + if not minetest.is_protected(s, "") then + + local ndef1 = minetest.registered_nodes[self.standing_in] + + if ndef1 and (ndef1.buildable_to or ndef1.groups.liquid) then + + minetest.set_node(s, {name = mobs.fallback_node}) + end + end + + local sheight = math.ceil(self.collisionbox[5]) + 1 + + -- assume mob is 2 blocks high so it digs above its head + s.y = s.y + sheight + + -- remove one block above to make room to jump + if not minetest.is_protected(s, "") then + + local node1 = node_ok(s, "air").name + local ndef1 = minetest.registered_nodes[node1] + + if node1 ~= "air" + and node1 ~= "ignore" + and ndef1 + and not ndef1.groups.level + and not ndef1.groups.unbreakable + and not ndef1.groups.liquid then + + minetest.set_node(s, {name = "air"}) + minetest.add_item(s, ItemStack(node1)) + + end + end + + s.y = s.y - sheight + self.object:set_pos({x = s.x, y = s.y + 2, z = s.z}) + + else -- dig 2 blocks to make door toward player direction + + local yaw1 = self.object:get_yaw() + pi / 2 + local p1 = { + x = s.x + cos(yaw1), + y = s.y, + z = s.z + sin(yaw1) + } + + if not minetest.is_protected(p1, "") then + + local node1 = node_ok(p1, "air").name + local ndef1 = minetest.registered_nodes[node1] + + if node1 ~= "air" + and node1 ~= "ignore" + and ndef1 + and not ndef1.groups.level + and not ndef1.groups.unbreakable + and not ndef1.groups.liquid then + + minetest.add_item(p1, ItemStack(node1)) + minetest.set_node(p1, {name = "air"}) + end + + p1.y = p1.y + 1 + node1 = node_ok(p1, "air").name + ndef1 = minetest.registered_nodes[node1] + + if node1 ~= "air" + and node1 ~= "ignore" + and ndef1 + and not ndef1.groups.level + and not ndef1.groups.unbreakable + and not ndef1.groups.liquid then + + minetest.add_item(p1, ItemStack(node1)) + minetest.set_node(p1, {name = "air"}) + end + + end + end + end + + -- will try again in 2 second + self.path.stuck_timer = stuck_timeout - 2 + + -- frustration! cant find the damn path :( + mob_sound(self, self.sounds.random) + else + -- yay i found path + mob_sound(self, self.sounds.war_cry) + set_velocity(self, self.walk_velocity) + + -- follow path now that it has it + self.path.following = true + end + end +end + + +-- specific attacks +local specific_attack = function(list, what) + + -- no list so attack default (player, animals etc.) + if list == nil then + return true + end + + -- found entity on list to attack? + for no = 1, #list do + + if list[no] == what then + return true + end + end + + return false +end + + +-- general attack function for all mobs ========== +local general_attack = function(self) + + -- return if already attacking, passive or docile during day + if self.passive + or self.state == "attack" + or day_docile(self) then + return + end + + local s = self.object:get_pos() + local objs = minetest.get_objects_inside_radius(s, self.view_range) + + -- remove entities we aren't interested in + for n = 1, #objs do + + local ent = objs[n]:get_luaentity() + + -- are we a player? + if objs[n]:is_player() then + + -- if player invisible or mob not setup to attack then remove from list + if self.attack_players == false + or (self.owner and self.type ~= "monster") + or mobs.invis[objs[n]:get_player_name()] + or not specific_attack(self.specific_attack, "player") then + objs[n] = nil +--print("- pla", n) + end + + -- or are we a mob? + elseif ent and ent._cmi_is_mob then + + -- remove mobs not to attack + if self.name == ent.name + or (not self.attack_animals and ent.type == "animal") + or (not self.attack_monsters and ent.type == "monster") + or (not self.attack_npcs and ent.type == "npc") + or not specific_attack(self.specific_attack, ent.name) then + objs[n] = nil +--print("- mob", n, self.name, ent.name) + end + + -- remove all other entities + else +--print(" -obj", n) + objs[n] = nil + end + end + + local p, sp, dist, min_player + local min_dist = self.view_range + 1 + + -- go through remaining entities and select closest + for _,player in pairs(objs) do + + p = player:get_pos() + sp = s + + dist = get_distance(p, s) + + -- aim higher to make looking up hills more realistic + p.y = p.y + 1 + sp.y = sp.y + 1 + + -- choose closest player to attack that isnt self + if dist ~= 0 + and dist < min_dist + and line_of_sight(self, sp, p, 2) == true then + min_dist = dist + min_player = player + end + end + + -- attack closest player or mob + if min_player then + do_attack(self, min_player) + end +end + + +-- specific runaway +local specific_runaway = function(list, what) + + -- no list so do not run + if list == nil then + return false + end + + -- found entity on list to attack? + for no = 1, #list do + + if list[no] == what then + return true + end + end + + return false +end + + +-- find someone to runaway from +local runaway_from = function(self) + + if not self.runaway_from then + return + end + + local s = self.object:get_pos() + local p, sp, dist, pname + local player, obj, min_player, name + local min_dist = self.view_range + 1 + local objs = minetest.get_objects_inside_radius(s, self.view_range) + + for n = 1, #objs do + + if objs[n]:is_player() then + + pname = objs[n]:get_player_name() + + if mobs.invis[pname] + or self.owner == pname then + + name = "" + else + player = objs[n] + name = "player" + end + else + obj = objs[n]:get_luaentity() + + if obj then + player = obj.object + name = obj.name or "" + end + end + + -- find specific mob to runaway from + if name ~= "" and name ~= self.name + and specific_runaway(self.runaway_from, name) then + + p = player:get_pos() + sp = s + + -- aim higher to make looking up hills more realistic + p.y = p.y + 1 + sp.y = sp.y + 1 + + dist = get_distance(p, s) + + -- choose closest player/mob to runaway from + if dist < min_dist + and line_of_sight(self, sp, p, 2) == true then + min_dist = dist + min_player = player + end + end + end + + if min_player then + + local lp = player:get_pos() + local vec = { + x = lp.x - s.x, + y = lp.y - s.y, + z = lp.z - s.z + } + + local yaw = (atan(vec.z / vec.x) + 3 * pi / 2) - self.rotate + + if lp.x > s.x then + yaw = yaw + pi + end + + yaw = set_yaw(self, yaw, 4) + self.state = "runaway" + self.runaway_timer = 3 + self.following = nil + end +end + + +-- follow player if owner or holding item, if fish outta water then flop +local follow_flop = function(self) + + -- find player to follow + if (self.follow ~= "" + or self.order == "follow") + and not self.following + and self.state ~= "attack" + and self.state ~= "runaway" then + + local s = self.object:get_pos() + local players = minetest.get_connected_players() + + for n = 1, #players do + + if get_distance(players[n]:get_pos(), s) < self.view_range + and not mobs.invis[ players[n]:get_player_name() ] then + + self.following = players[n] + + break + end + end + end + + if self.type == "npc" + and self.order == "follow" + and self.state ~= "attack" + and self.owner ~= "" then + + -- npc stop following player if not owner + if self.following + and self.owner + and self.owner ~= self.following:get_player_name() then + self.following = nil + end + else + -- stop following player if not holding specific item + if self.following + and self.following:is_player() + and follow_holding(self, self.following) == false then + self.following = nil + end + + end + + -- follow that thing + if self.following then + + local s = self.object:get_pos() + local p + + if self.following:is_player() then + + p = self.following:get_pos() + + elseif self.following.object then + + p = self.following.object:get_pos() + end + + if p then + + local dist = get_distance(p, s) + + -- dont follow if out of range + if dist > self.view_range then + self.following = nil + else + local vec = { + x = p.x - s.x, + z = p.z - s.z + } + + local yaw = (atan(vec.z / vec.x) + pi / 2) - self.rotate + + if p.x > s.x then yaw = yaw + pi end + + yaw = set_yaw(self, yaw, 6) + + -- anyone but standing npc's can move along + if dist > self.reach + and self.order ~= "stand" then + + set_velocity(self, self.walk_velocity) + + if self.walk_chance ~= 0 then + set_animation(self, "walk") + end + else + set_velocity(self, 0) + set_animation(self, "stand") + end + + return + end + end + end + + -- swimmers flop when out of their element, and swim again when back in + if self.fly then + local s = self.object:get_pos() + if not flight_check(self, s) then + + self.state = "flop" + self.object:set_velocity({x = 0, y = -5, z = 0}) + + set_animation(self, "stand") + + return + elseif self.state == "flop" then + self.state = "stand" + end + end +end + + +-- dogshoot attack switch and counter function +local dogswitch = function(self, dtime) + + -- switch mode not activated + if not self.dogshoot_switch + or not dtime then + return 0 + end + + self.dogshoot_count = self.dogshoot_count + dtime + + if (self.dogshoot_switch == 1 + and self.dogshoot_count > self.dogshoot_count_max) + or (self.dogshoot_switch == 2 + and self.dogshoot_count > self.dogshoot_count2_max) then + + self.dogshoot_count = 0 + + if self.dogshoot_switch == 1 then + self.dogshoot_switch = 2 + else + self.dogshoot_switch = 1 + end + end + + return self.dogshoot_switch +end + + +-- execute current state (stand, walk, run, attacks) +local do_states = function(self, dtime) + + local yaw = self.object:get_yaw() or 0 + + if self.state == "stand" then + + if random(1, 4) == 1 then + + local lp = nil + local s = self.object:get_pos() + local objs = minetest.get_objects_inside_radius(s, 3) + + for n = 1, #objs do + + if objs[n]:is_player() then + lp = objs[n]:get_pos() + break + end + end + + -- look at any players nearby, otherwise turn randomly + if lp then + + local vec = { + x = lp.x - s.x, + z = lp.z - s.z + } + + yaw = (atan(vec.z / vec.x) + pi / 2) - self.rotate + + if lp.x > s.x then yaw = yaw + pi end + else + yaw = yaw + random(-0.5, 0.5) + end + + yaw = set_yaw(self, yaw, 8) + end + + set_velocity(self, 0) + set_animation(self, "stand") + + -- npc's ordered to stand stay standing + if self.type ~= "npc" + or self.order ~= "stand" then + + if self.walk_chance ~= 0 + and self.facing_fence ~= true + and random(1, 100) <= self.walk_chance + and is_at_cliff(self) == false then + + set_velocity(self, self.walk_velocity) + self.state = "walk" + set_animation(self, "walk") + + --[[ fly up/down randomly for flying mobs + if self.fly and random(1, 100) <= self.walk_chance then + + local v = self.object:get_velocity() + local ud = random(-1, 2) / 9 + + self.object:set_velocity({x = v.x, y = ud, z = v.z}) + end--]] + end + end + + elseif self.state == "walk" then + + local s = self.object:get_pos() + local lp = nil + + -- is there something I need to avoid? + if self.water_damage > 0 + and self.lava_damage > 0 then + + lp = minetest.find_node_near(s, 1, {"group:water", "group:lava"}) + + elseif self.water_damage > 0 then + + lp = minetest.find_node_near(s, 1, {"group:water"}) + + elseif self.lava_damage > 0 then + + lp = minetest.find_node_near(s, 1, {"group:lava"}) + end + + if lp then + + -- if mob in water or lava then look for land + if (self.lava_damage + and minetest.registered_nodes[self.standing_in].groups.lava) + or (self.water_damage + and minetest.registered_nodes[self.standing_in].groups.water) then + + lp = minetest.find_node_near(s, 5, {"group:soil", "group:stone", + "group:sand", node_ice, node_snowblock}) + + -- did we find land? + if lp then + + local vec = { + x = lp.x - s.x, + z = lp.z - s.z + } + + yaw = (atan(vec.z / vec.x) + pi / 2) - self.rotate + + if lp.x > s.x then yaw = yaw + pi end + + -- look towards land and jump/move in that direction + yaw = set_yaw(self, yaw, 6) + do_jump(self) + set_velocity(self, self.walk_velocity) + else + yaw = yaw + random(-0.5, 0.5) + end + + else + + local vec = { + x = lp.x - s.x, + z = lp.z - s.z + } + + yaw = (atan(vec.z / vec.x) + pi / 2) - self.rotate + + if lp.x > s.x then yaw = yaw + pi end + end + + yaw = set_yaw(self, yaw, 8) + + -- otherwise randomly turn + elseif random(1, 100) <= 30 then + + yaw = yaw + random(-0.5, 0.5) + + yaw = set_yaw(self, yaw, 8) + end + + -- stand for great fall in front + local temp_is_cliff = is_at_cliff(self) + + if self.facing_fence == true + or temp_is_cliff + or random(1, 100) <= 30 then + + set_velocity(self, 0) + self.state = "stand" + set_animation(self, "stand") + else + set_velocity(self, self.walk_velocity) + + if flight_check(self) + and self.animation + and self.animation.fly_start + and self.animation.fly_end then + set_animation(self, "fly") + else + set_animation(self, "walk") + end + end + + -- runaway when punched + elseif self.state == "runaway" then + + self.runaway_timer = self.runaway_timer + 1 + + -- stop after 5 seconds or when at cliff + if self.runaway_timer > 5 + or is_at_cliff(self) then + self.runaway_timer = 0 + set_velocity(self, 0) + self.state = "stand" + set_animation(self, "stand") + else + set_velocity(self, self.run_velocity) + set_animation(self, "walk") + end + + -- attack routines (explode, dogfight, shoot, dogshoot) + elseif self.state == "attack" then + + -- calculate distance from mob and enemy + local s = self.object:get_pos() + local p = self.attack:get_pos() or s + local dist = get_distance(p, s) + + -- stop attacking if player invisible or out of range + if dist > self.view_range + or not self.attack + or not self.attack:get_pos() + or self.attack:get_hp() <= 0 + or (self.attack:is_player() and mobs.invis[ self.attack:get_player_name() ]) then + +-- print(" ** stop attacking **", dist, self.view_range) + self.state = "stand" + set_velocity(self, 0) + set_animation(self, "stand") + self.attack = nil + self.v_start = false + self.timer = 0 + self.blinktimer = 0 + self.path.way = nil + + return + end + + if self.attack_type == "explode" then + + local vec = { + x = p.x - s.x, + z = p.z - s.z + } + + yaw = (atan(vec.z / vec.x) + pi / 2) - self.rotate + + if p.x > s.x then yaw = yaw + pi end + + yaw = set_yaw(self, yaw) + + local node_break_radius = self.explosion_radius or 1 + local entity_damage_radius = self.explosion_damage_radius + or (node_break_radius * 2) + + -- start timer when in reach and line of sight + if not self.v_start + and dist <= self.reach + and line_of_sight(self, s, p, 2) then + + self.v_start = true + self.timer = 0 + self.blinktimer = 0 + mob_sound(self, self.sounds.fuse) +-- print ("=== explosion timer started", self.explosion_timer) + + -- stop timer if out of reach or direct line of sight + elseif self.allow_fuse_reset + and self.v_start + and (dist > self.reach + or not line_of_sight(self, s, p, 2)) then + self.v_start = false + self.timer = 0 + self.blinktimer = 0 + self.blinkstatus = false + self.object:settexturemod("") + end + + -- walk right up to player unless the timer is active + if self.v_start and (self.stop_to_explode or dist < 1.5) then + set_velocity(self, 0) + else + set_velocity(self, self.run_velocity) + end + + if self.animation and self.animation.run_start then + set_animation(self, "run") + else + set_animation(self, "walk") + end + + if self.v_start then + + self.timer = self.timer + dtime + self.blinktimer = (self.blinktimer or 0) + dtime + + if self.blinktimer > 0.2 then + + self.blinktimer = 0 + + if self.blinkstatus then + self.object:settexturemod("") + else + self.object:settexturemod("^[brighten") + end + + self.blinkstatus = not self.blinkstatus + end + +-- print ("=== explosion timer", self.timer) + + if self.timer > self.explosion_timer then + + local pos = self.object:get_pos() + + -- dont damage anything if area protected or next to water + if minetest.find_node_near(pos, 1, {"group:water"}) + or minetest.is_protected(pos, "") then + + node_break_radius = 1 + end + + self.object:remove() + + if minetest.get_modpath("tnt") and tnt and tnt.boom + and not minetest.is_protected(pos, "") then + + tnt.boom(pos, { + radius = node_break_radius, + damage_radius = entity_damage_radius, + sound = self.sounds.explode, + }) + else + + minetest.sound_play(self.sounds.explode, { + pos = pos, + gain = 1.0, + max_hear_distance = self.sounds.distance or 32 + }) + + entity_physics(pos, entity_damage_radius) + effect(pos, 32, "tnt_smoke.png", nil, nil, node_break_radius, 1, 0) + end + + return + end + end + + elseif self.attack_type == "dogfight" + or (self.attack_type == "dogshoot" and dogswitch(self, dtime) == 2) + or (self.attack_type == "dogshoot" and dist <= self.reach and dogswitch(self) == 0) then + + if self.fly + and dist > self.reach then + + local p1 = s + local me_y = floor(p1.y) + local p2 = p + local p_y = floor(p2.y + 1) + local v = self.object:get_velocity() + + if flight_check(self, s) then + + if me_y < p_y then + + self.object:set_velocity({ + x = v.x, + y = 1 * self.walk_velocity, + z = v.z + }) + + elseif me_y > p_y then + + self.object:set_velocity({ + x = v.x, + y = -1 * self.walk_velocity, + z = v.z + }) + end + else + if me_y < p_y then + + self.object:set_velocity({ + x = v.x, + y = 0.01, + z = v.z + }) + + elseif me_y > p_y then + + self.object:set_velocity({ + x = v.x, + y = -0.01, + z = v.z + }) + end + end + + end + + -- rnd: new movement direction + if self.path.following + and self.path.way + and self.attack_type ~= "dogshoot" then + + -- no paths longer than 50 + if #self.path.way > 50 + or dist < self.reach then + self.path.following = false + return + end + + local p1 = self.path.way[1] + + if not p1 then + self.path.following = false + return + end + + if abs(p1.x-s.x) + abs(p1.z - s.z) < 0.6 then + -- reached waypoint, remove it from queue + table.remove(self.path.way, 1) + end + + -- set new temporary target + p = {x = p1.x, y = p1.y, z = p1.z} + end + + local vec = { + x = p.x - s.x, + z = p.z - s.z + } + + yaw = (atan(vec.z / vec.x) + pi / 2) - self.rotate + + if p.x > s.x then yaw = yaw + pi end + + yaw = set_yaw(self, yaw) + + -- move towards enemy if beyond mob reach + if dist > self.reach then + + -- path finding by rnd + if self.pathfinding -- only if mob has pathfinding enabled + and enable_pathfinding then + + smart_mobs(self, s, p, dist, dtime) + end + + if is_at_cliff(self) then + + set_velocity(self, 0) + set_animation(self, "stand") + else + + if self.path.stuck then + set_velocity(self, self.walk_velocity) + else + set_velocity(self, self.run_velocity) + end + + if self.animation and self.animation.run_start then + set_animation(self, "run") + else + set_animation(self, "walk") + end + end + + else -- rnd: if inside reach range + + self.path.stuck = false + self.path.stuck_timer = 0 + self.path.following = false -- not stuck anymore + + set_velocity(self, 0) + + if not self.custom_attack then + + if self.timer > 1 then + + self.timer = 0 + + if self.double_melee_attack + and random(1, 2) == 1 then + set_animation(self, "punch2") + else + set_animation(self, "punch") + end + + local p2 = p + local s2 = s + + p2.y = p2.y + .5 + s2.y = s2.y + .5 + + if line_of_sight(self, p2, s2) == true then + + -- play attack sound + mob_sound(self, self.sounds.attack) + + -- punch player (or what player is attached to) + local attached = self.attack:get_attach() + if attached then + self.attack = attached + end + self.attack:punch(self.object, 1.0, { + full_punch_interval = 1.0, + damage_groups = {fleshy = self.damage} + }, nil) + end + end + else -- call custom attack every second + if self.custom_attack + and self.timer > 1 then + + self.timer = 0 + + self.custom_attack(self, p) + end + end + end + + elseif self.attack_type == "shoot" + or (self.attack_type == "dogshoot" and dogswitch(self, dtime) == 1) + or (self.attack_type == "dogshoot" and dist > self.reach and dogswitch(self) == 0) then + + p.y = p.y - .5 + s.y = s.y + .5 + + local dist = get_distance(p, s) + local vec = { + x = p.x - s.x, + y = p.y - s.y, + z = p.z - s.z + } + + yaw = (atan(vec.z / vec.x) + pi / 2) - self.rotate + + if p.x > s.x then yaw = yaw + pi end + + yaw = set_yaw(self, yaw) + + set_velocity(self, 0) + + if self.shoot_interval + and self.timer > self.shoot_interval + and random(1, 100) <= 60 then + + self.timer = 0 + set_animation(self, "shoot") + + -- play shoot attack sound + mob_sound(self, self.sounds.shoot_attack) + + local p = self.object:get_pos() + + p.y = p.y + (self.collisionbox[2] + self.collisionbox[5]) / 2 + + if minetest.registered_entities[self.arrow] then + + local obj = minetest.add_entity(p, self.arrow) + local ent = obj:get_luaentity() + local amount = (vec.x * vec.x + vec.y * vec.y + vec.z * vec.z) ^ 0.5 + local v = ent.velocity or 1 -- or set to default + + ent.switch = 1 + ent.owner_id = tostring(self.object) -- add unique owner id to arrow + + -- offset makes shoot aim accurate + vec.y = vec.y + self.shoot_offset + vec.x = vec.x * (v / amount) + vec.y = vec.y * (v / amount) + vec.z = vec.z * (v / amount) + + obj:set_velocity(vec) + end + end + end + end +end + + +-- falling and fall damage +local falling = function(self, pos) + + if self.fly then + return + end + + -- floating in water (or falling) + local v = self.object:get_velocity() + + if v.y > 0 then + + -- apply gravity when moving up + self.object:set_acceleration({ + x = 0, + y = -10, + z = 0 + }) + + elseif v.y <= 0 and v.y > self.fall_speed then + + -- fall downwards at set speed + self.object:set_acceleration({ + x = 0, + y = self.fall_speed, + z = 0 + }) + else + -- stop accelerating once max fall speed hit + self.object:set_acceleration({x = 0, y = 0, z = 0}) + end + + -- in water then float up + if minetest.registered_nodes[self.standing_in].groups.water then + + if self.floats == 1 then + + self.object:set_acceleration({ + x = 0, + y = -self.fall_speed / (max(1, v.y) ^ 8), -- 8 was 2 + z = 0 + }) + end + else + + -- fall damage onto solid ground + if self.fall_damage == 1 + and self.object:get_velocity().y == 0 then + + local d = (self.old_y or 0) - self.object:get_pos().y + + if d > 5 then + + self.health = self.health - floor(d - 5) + + effect(pos, 5, "tnt_smoke.png", 1, 2, 2, nil) + + if check_for_death(self, "fall", {type = "fall"}) then + return + end + end + + self.old_y = self.object:get_pos().y + end + end +end + + +-- is Took Ranks mod active? +local tr = minetest.get_modpath("toolranks") + +-- deal damage and effects when mob punched +local mob_punch = function(self, hitter, tflp, tool_capabilities, dir) + + -- custom punch function + if self.do_punch then + + -- when false skip going any further + if self.do_punch(self, hitter, tflp, tool_capabilities, dir) == false then + return + end + end + + -- mob health check +-- if self.health <= 0 then +-- return +-- end + + -- error checking when mod profiling is enabled + if not tool_capabilities then + minetest.log("warning", "[mobs] Mod profiling enabled, damage not enabled") + return + end + + -- is mob protected? + if self.protected and hitter:is_player() + and minetest.is_protected(self.object:get_pos(), hitter:get_player_name()) then + minetest.chat_send_player(hitter:get_player_name(), S("Mob has been protected!")) + return + end + + + -- weapon wear + local weapon = hitter:get_wielded_item() + local punch_interval = 1.4 + + -- calculate mob damage + local damage = 0 + local armor = self.object:get_armor_groups() or {} + local tmp + + -- quick error check incase it ends up 0 (serialize.h check test) + if tflp == 0 then + tflp = 0.2 + end + + if use_cmi then + damage = cmi.calculate_damage(self.object, hitter, tflp, tool_capabilities, dir) + else + + for group,_ in pairs( (tool_capabilities.damage_groups or {}) ) do + + tmp = tflp / (tool_capabilities.full_punch_interval or 1.4) + + if tmp < 0 then + tmp = 0.0 + elseif tmp > 1 then + tmp = 1.0 + end + + damage = damage + (tool_capabilities.damage_groups[group] or 0) + * tmp * ((armor[group] or 0) / 100.0) + end + end + + -- check for tool immunity or special damage + for n = 1, #self.immune_to do + + if self.immune_to[n][1] == weapon:get_name() then + + damage = self.immune_to[n][2] or 0 + break + + -- if "all" then no tool does damage unless it's specified in list + elseif self.immune_to[n][1] == "all" then + damage = self.immune_to[n][2] or 0 + end + end + + -- healing + if damage <= -1 then + self.health = self.health - floor(damage) + return + end + +-- print ("Mob Damage is", damage) + + if use_cmi then + + local cancel = cmi.notify_punch(self.object, hitter, tflp, tool_capabilities, dir, damage) + + if cancel then return end + end + + -- add weapon wear + if tool_capabilities then + punch_interval = tool_capabilities.full_punch_interval or 1.4 + end + + if weapon:get_definition() + and weapon:get_definition().tool_capabilities then + + -- toolrank support + local wear = floor((punch_interval / 75) * 9000) + + if mobs.is_creative(hitter:get_player_name()) then + + if tr then + wear = 1 + else + wear = 0 + end + end + + if tr then + if weapon:get_definition() + and weapon:get_definition().original_description then + weapon:add_wear(toolranks.new_afteruse(weapon, hitter, nil, {wear = wear})) + end + else + weapon:add_wear(wear) + end + + hitter:set_wielded_item(weapon) + end + + -- only play hit sound and show blood effects if damage is 1 or over + if damage >= 1 then + + -- weapon sounds + if weapon:get_definition().sounds ~= nil then + + local s = random(0, #weapon:get_definition().sounds) + + minetest.sound_play(weapon:get_definition().sounds[s], { + object = self.object, --hitter, + max_hear_distance = 8 + }) + else + minetest.sound_play("default_punch", { + object = self.object, --hitter, + max_hear_distance = 5 + }) + end + + -- blood_particles + if self.blood_amount > 0 + and not disable_blood then + + local pos = self.object:get_pos() + + pos.y = pos.y + (-self.collisionbox[2] + self.collisionbox[5]) * .5 + + -- do we have a single blood texture or multiple? + if type(self.blood_texture) == "table" then + + local blood = self.blood_texture[random(1, #self.blood_texture)] + + effect(pos, self.blood_amount, blood, nil, nil, 1, nil) + else + effect(pos, self.blood_amount, self.blood_texture, nil, nil, 1, nil) + end + end + + -- do damage + self.health = self.health - floor(damage) + + -- exit here if dead, special item check + if weapon:get_name() == "mobs:pick_lava" then + if check_for_death(self, "lava", {type = "punch", + puncher = hitter}) then + return + end + else + if check_for_death(self, "hit", {type = "punch", + puncher = hitter}) then + return + end + end + + --[[ add healthy afterglow when hit (can cause hit lag with larger textures) + minetest.after(0.1, function() + + if not self.object:get_luaentity() then return end + + self.object:settexturemod("^[colorize:#c9900070") + + core.after(0.3, function() + self.object:settexturemod("") + end) + end) ]] + + -- knock back effect (only on full punch) + if self.knock_back + and tflp >= punch_interval then + + local v = self.object:get_velocity() + local r = 1.4 - min(punch_interval, 1.4) + local kb = r * 5 + local up = 2 + + -- if already in air then dont go up anymore when hit + if v.y > 0 + or self.fly then + up = 0 + end + + -- direction error check + dir = dir or {x = 0, y = 0, z = 0} + + -- check if tool already has specific knockback value + if tool_capabilities.damage_groups["knockback"] then + kb = tool_capabilities.damage_groups["knockback"] + else + kb = kb * 1.5 + end + + self.object:set_velocity({ + x = dir.x * kb, + y = up, + z = dir.z * kb + }) + + self.pause_timer = 0.25 + end + end -- END if damage + + -- if skittish then run away + if self.runaway == true then + + local lp = hitter:get_pos() + local s = self.object:get_pos() + local vec = { + x = lp.x - s.x, + y = lp.y - s.y, + z = lp.z - s.z + } + + local yaw = (atan(vec.z / vec.x) + 3 * pi / 2) - self.rotate + + if lp.x > s.x then + yaw = yaw + pi + end + + yaw = set_yaw(self, yaw, 6) + self.state = "runaway" + self.runaway_timer = 0 + self.following = nil + end + + local name = hitter:get_player_name() or "" + + -- attack puncher and call other mobs for help + if self.passive == false + and self.state ~= "flop" + and self.child == false + and self.attack_players == true + and hitter:get_player_name() ~= self.owner + and not mobs.invis[ name ] then + + -- attack whoever punched mob + self.state = "" + do_attack(self, hitter) + + -- alert others to the attack + local objs = minetest.get_objects_inside_radius(hitter:get_pos(), self.view_range) + local obj = nil + + for n = 1, #objs do + + obj = objs[n]:get_luaentity() + + if obj and obj._cmi_is_mob then + + -- only alert members of same mob + if obj.group_attack == true + and obj.state ~= "attack" + and obj.owner ~= name + and obj.name == self.name then + do_attack(obj, hitter) + end + + -- have owned mobs attack player threat + if obj.owner == name and obj.owner_loyal then + do_attack(obj, self.object) + end + end + end + end +end + + +-- get entity staticdata +local mob_staticdata = function(self) + + -- remove mob when out of range unless tamed + if remove_far + and self.remove_ok + and self.type ~= "npc" + and self.state ~= "attack" + and not self.tamed + and self.lifetimer < 20000 then + + --print ("REMOVED " .. self.name) + + self.object:remove() + + return ""-- nil + end + + self.remove_ok = true + self.attack = nil + self.following = nil + self.state = "stand" + + -- used to rotate older mobs + if self.drawtype + and self.drawtype == "side" then + self.rotate = math.rad(90) + end + + if use_cmi then + self.serialized_cmi_components = cmi.serialize_components(self._cmi_components) + end + + local tmp = {} + + for _,stat in pairs(self) do + + local t = type(stat) + + if t ~= "function" + and t ~= "nil" + and t ~= "userdata" + and _ ~= "_cmi_components" then + tmp[_] = self[_] + end + end + + --print('===== '..self.name..'\n'.. dump(tmp)..'\n=====\n') + return minetest.serialize(tmp) +end + + +-- activate mob and reload settings +local mob_activate = function(self, staticdata, def, dtime) + + -- remove monsters in peaceful mode + if self.type == "monster" + and peaceful_only then + + self.object:remove() + + return + end + + -- load entity variables + local tmp = minetest.deserialize(staticdata) + + if tmp then + for _,stat in pairs(tmp) do + self[_] = stat + end + end + + -- select random texture, set model and size + if not self.base_texture then + + -- compatiblity with old simple mobs textures + if type(def.textures[1]) == "string" then + def.textures = {def.textures} + end + + self.base_texture = def.textures[random(1, #def.textures)] + self.base_mesh = def.mesh + self.base_size = self.visual_size + self.base_colbox = self.collisionbox + self.base_selbox = self.selectionbox + end + + -- for current mobs that dont have this set + if not self.base_selbox then + self.base_selbox = self.selectionbox or self.base_colbox + end + + -- set texture, model and size + local textures = self.base_texture + local mesh = self.base_mesh + local vis_size = self.base_size + local colbox = self.base_colbox + local selbox = self.base_selbox + + -- specific texture if gotten + if self.gotten == true + and def.gotten_texture then + textures = def.gotten_texture + end + + -- specific mesh if gotten + if self.gotten == true + and def.gotten_mesh then + mesh = def.gotten_mesh + end + + -- set child objects to half size + if self.child == true then + + vis_size = { + x = self.base_size.x * .5, + y = self.base_size.y * .5, + } + + if def.child_texture then + textures = def.child_texture[1] + end + + colbox = { + self.base_colbox[1] * .5, + self.base_colbox[2] * .5, + self.base_colbox[3] * .5, + self.base_colbox[4] * .5, + self.base_colbox[5] * .5, + self.base_colbox[6] * .5 + } + selbox = { + self.base_selbox[1] * .5, + self.base_selbox[2] * .5, + self.base_selbox[3] * .5, + self.base_selbox[4] * .5, + self.base_selbox[5] * .5, + self.base_selbox[6] * .5 + } + end + + if self.health == 0 then + self.health = random (self.hp_min, self.hp_max) + end + + -- pathfinding init + self.path = {} + self.path.way = {} -- path to follow, table of positions + self.path.lastpos = {x = 0, y = 0, z = 0} + self.path.stuck = false + self.path.following = false -- currently following path? + self.path.stuck_timer = 0 -- if stuck for too long search for path + + -- mob defaults + self.object:set_armor_groups({immortal = 1, fleshy = self.armor}) + self.old_y = self.object:get_pos().y + self.old_health = self.health + self.sounds.distance = self.sounds.distance or 10 + self.textures = textures + self.mesh = mesh + self.collisionbox = colbox + self.selectionbox = selbox + self.visual_size = vis_size + self.standing_in = "air" + + -- check existing nametag + if not self.nametag then + self.nametag = def.nametag + end + + -- set anything changed above + self.object:set_properties(self) + set_yaw(self, (random(0, 360) - 180) / 180 * pi, 6) + update_tag(self) + set_animation(self, "stand") + + -- run on_spawn function if found + if self.on_spawn and not self.on_spawn_run then + if self.on_spawn(self) then + self.on_spawn_run = true -- if true, set flag to run once only + end + end + + -- run after_activate + if def.after_activate then + def.after_activate(self, staticdata, def, dtime) + end + + if use_cmi then + self._cmi_components = cmi.activate_components(self.serialized_cmi_components) + cmi.notify_activate(self.object, dtime) + end +end + + +-- main mob function +local mob_step = function(self, dtime) + + if use_cmi then + cmi.notify_step(self.object, dtime) + end + + local pos = self.object:get_pos() + local yaw = 0 + + -- when lifetimer expires remove mob (except npc and tamed) + if self.type ~= "npc" + and not self.tamed + and self.state ~= "attack" + and remove_far ~= true + and self.lifetimer < 20000 then + + self.lifetimer = self.lifetimer - dtime + + if self.lifetimer <= 0 then + + -- only despawn away from player + local objs = minetest.get_objects_inside_radius(pos, 15) + + for n = 1, #objs do + + if objs[n]:is_player() then + + self.lifetimer = 20 + + return + end + end + +-- minetest.log("action", +-- S("lifetimer expired, removed @1", self.name)) + + effect(pos, 15, "tnt_smoke.png", 2, 4, 2, 0) + + self.object:remove() + + return + end + end + + -- get node at foot level every quarter second + self.node_timer = (self.node_timer or 0) + dtime + + if self.node_timer > 0.25 then + + self.node_timer = 0 + + local y_level = self.collisionbox[2] + + if self.child then + y_level = self.collisionbox[2] * 0.5 + end + + -- what is mob standing in? + self.standing_in = node_ok({ + x = pos.x, y = pos.y + y_level + 0.25, z = pos.z}, "air").name +-- print ("standing in " .. self.standing_in) + end + + -- check if falling, flying, floating + falling(self, pos) + + -- smooth rotation by ThomasMonroe314 + + if self.delay and self.delay > 0 then + + local yaw = self.object:get_yaw() + + if self.delay == 1 then + yaw = self.target_yaw + else + local dif = abs(yaw - self.target_yaw) + + if yaw > self.target_yaw then + + if dif > pi then + dif = 2 * pi - dif -- need to add + yaw = yaw + dif / self.delay + else + yaw = yaw - dif / self.delay -- need to subtract + end + + elseif yaw < self.target_yaw then + + if dif > pi then + dif = 2 * pi - dif + yaw = yaw - dif / self.delay -- need to subtract + else + yaw = yaw + dif / self.delay -- need to add + end + end + + if yaw > (pi * 2) then yaw = yaw - (pi * 2) end + if yaw < 0 then yaw = yaw + (pi * 2) end + end + + self.delay = self.delay - 1 + self.object:set_yaw(yaw) + end + + -- end rotation + + -- knockback timer + if self.pause_timer > 0 then + + self.pause_timer = self.pause_timer - dtime + + return + end + + -- run custom function (defined in mob lua file) + if self.do_custom then + + -- when false skip going any further + if self.do_custom(self, dtime) == false then + return + end + end + + -- attack timer + self.timer = self.timer + dtime + + if self.state ~= "attack" then + + if self.timer < 1 then + return + end + + self.timer = 0 + end + + -- never go over 100 + if self.timer > 100 then + self.timer = 1 + end + + -- mob plays random sound at times + if random(1, 100) == 1 then + mob_sound(self, self.sounds.random) + end + + -- environmental damage timer (every 1 second) + self.env_damage_timer = self.env_damage_timer + dtime + + if (self.state == "attack" and self.env_damage_timer > 1) + or self.state ~= "attack" then + + self.env_damage_timer = 0 + + -- check for environmental damage (water, fire, lava etc.) + do_env_damage(self) + + -- node replace check (cow eats grass etc.) + replace(self, pos) + end + + general_attack(self) + + breed(self) + + follow_flop(self) + + do_states(self, dtime) + + do_jump(self) + + runaway_from(self) + +end + + +-- default function when mobs are blown up with TNT +local do_tnt = function(obj, damage) + + --print ("----- Damage", damage) + + obj.object:punch(obj.object, 1.0, { + full_punch_interval = 1.0, + damage_groups = {fleshy = damage}, + }, nil) + + return false, true, {} +end + + +mobs.spawning_mobs = {} + +-- register mob entity +function mobs:register_mob(name, def) + + mobs.spawning_mobs[name] = true + +minetest.register_entity(name, { + + stepheight = def.stepheight or 1.1, -- was 0.6 + name = name, + type = def.type, + attack_type = def.attack_type, + fly = def.fly, + fly_in = def.fly_in or "air", + owner = def.owner or "", + order = def.order or "", + on_die = def.on_die, + do_custom = def.do_custom, + jump_height = def.jump_height or 4, -- was 6 + drawtype = def.drawtype, -- DEPRECATED, use rotate instead + rotate = math.rad(def.rotate or 0), -- 0=front, 90=side, 180=back, 270=side2 + lifetimer = def.lifetimer or 180, -- 3 minutes + hp_min = max(1, (def.hp_min or 5) * difficulty), + hp_max = max(1, (def.hp_max or 10) * difficulty), + physical = true, + collisionbox = def.collisionbox or {-0.25, -0.25, -0.25, 0.25, 0.25, 0.25}, + selectionbox = def.selectionbox or def.collisionbox, + visual = def.visual, + visual_size = def.visual_size or {x = 1, y = 1}, + mesh = def.mesh, + makes_footstep_sound = def.makes_footstep_sound or false, + view_range = def.view_range or 5, + walk_velocity = def.walk_velocity or 1, + run_velocity = def.run_velocity or 2, + damage = max(0, (def.damage or 0) * difficulty), + light_damage = def.light_damage or 0, + water_damage = def.water_damage or 0, + lava_damage = def.lava_damage or 0, + suffocation = def.suffocation or 2, + fall_damage = def.fall_damage or 1, + fall_speed = def.fall_speed or -10, -- must be lower than -2 (default: -10) + drops = def.drops or {}, + armor = def.armor or 100, + on_rightclick = def.on_rightclick, + arrow = def.arrow, + shoot_interval = def.shoot_interval, + sounds = def.sounds or {}, + animation = def.animation, + follow = def.follow, + jump = def.jump ~= false, + walk_chance = def.walk_chance or 50, + passive = def.passive or false, + knock_back = def.knock_back ~= false, + blood_amount = def.blood_amount or 5, + blood_texture = def.blood_texture or "mobs_blood.png", + shoot_offset = def.shoot_offset or 0, + floats = def.floats or 1, -- floats in water by default + replace_rate = def.replace_rate, + replace_what = def.replace_what, + replace_with = def.replace_with, + replace_offset = def.replace_offset or 0, + on_replace = def.on_replace, + timer = 0, + env_damage_timer = 0, -- only used when state = "attack" + tamed = false, + pause_timer = 0, + horny = false, + hornytimer = 0, + child = false, + gotten = false, + health = 0, + reach = def.reach or 3, + htimer = 0, + texture_list = def.textures, + child_texture = def.child_texture, + docile_by_day = def.docile_by_day or false, + time_of_day = 0.5, + fear_height = def.fear_height or 0, + runaway = def.runaway, + runaway_timer = 0, + pathfinding = def.pathfinding, + immune_to = def.immune_to or {}, + explosion_radius = def.explosion_radius, + explosion_damage_radius = def.explosion_damage_radius, + explosion_timer = def.explosion_timer or 3, + allow_fuse_reset = def.allow_fuse_reset ~= false, + stop_to_explode = def.stop_to_explode ~= false, + custom_attack = def.custom_attack, + double_melee_attack = def.double_melee_attack, + dogshoot_switch = def.dogshoot_switch, + dogshoot_count = 0, + dogshoot_count_max = def.dogshoot_count_max or 5, + dogshoot_count2_max = def.dogshoot_count2_max or (def.dogshoot_count_max or 5), + group_attack = def.group_attack or false, + attack_monsters = def.attacks_monsters or def.attack_monsters or false, + attack_animals = def.attack_animals or false, + attack_players = def.attack_players ~= false, + attack_npcs = def.attack_npcs ~= false, + specific_attack = def.specific_attack, + runaway_from = def.runaway_from, + owner_loyal = def.owner_loyal, + facing_fence = false, + _cmi_is_mob = true, + + on_spawn = def.on_spawn, + + on_blast = def.on_blast or do_tnt, + + on_step = mob_step, + + do_punch = def.do_punch, + + on_punch = mob_punch, + + on_breed = def.on_breed, + + on_grown = def.on_grown, + + on_activate = function(self, staticdata, dtime) + return mob_activate(self, staticdata, def, dtime) + end, + + get_staticdata = function(self) + return mob_staticdata(self) + end, + +}) + +end -- END mobs:register_mob function + + +-- count how many mobs of one type are inside an area +local count_mobs = function(pos, type) + + local num_type = 0 + local num_total = 0 + local objs = minetest.get_objects_inside_radius(pos, aoc_range) + + for n = 1, #objs do + + if not objs[n]:is_player() then + + local obj = objs[n]:get_luaentity() + + -- count mob type and add to total also + if obj and obj.name and obj.name == type then + + num_type = num_type + 1 + num_total = num_total + 1 + + -- add to total mobs + elseif obj and obj.name and obj.health ~= nil then + + num_total = num_total + 1 + end + end + end + + return num_type, num_total +end + + +-- global functions + +function mobs:spawn_abm_check(pos, node, name) + -- global function to add additional spawn checks + -- return true to stop spawning mob +end + + +function mobs:spawn_specific(name, nodes, neighbors, min_light, max_light, + interval, chance, aoc, min_height, max_height, day_toggle, on_spawn) + + -- Do mobs spawn at all? + if not mobs_spawn then + return + end + + -- chance/spawn number override in minetest.conf for registered mob + local numbers = minetest.settings:get(name) + + if numbers then + numbers = numbers:split(",") + chance = tonumber(numbers[1]) or chance + aoc = tonumber(numbers[2]) or aoc + + if chance == 0 then + minetest.log("warning", string.format("[mobs] %s has spawning disabled", name)) + return + end + + minetest.log("action", + string.format("[mobs] Chance setting for %s changed to %s (total: %s)", name, chance, aoc)) + + end + + minetest.register_abm({ + + label = name .. " spawning", + nodenames = nodes, + neighbors = neighbors, + interval = interval, + chance = max(1, (chance * mob_chance_multiplier)), + catch_up = false, + + action = function(pos, node, active_object_count, active_object_count_wider) + + -- is mob actually registered? + if not mobs.spawning_mobs[name] + or not minetest.registered_entities[name] then +--print ("--- mob doesn't exist", name) + return + end + + -- additional custom checks for spawning mob + if mobs:spawn_abm_check(pos, node, name) == true then + return + end + + -- do not spawn if too many of same mob in area + if active_object_count_wider >= max_per_block + or count_mobs(pos, name) >= aoc then +--print ("--- too many entities", name, aoc, active_object_count_wider) + return + end + + -- if toggle set to nil then ignore day/night check + if day_toggle ~= nil then + + local tod = (minetest.get_timeofday() or 0) * 24000 + + if tod > 4500 and tod < 19500 then + -- daylight, but mob wants night + if day_toggle == false then +--print ("--- mob needs night", name) + return + end + else + -- night time but mob wants day + if day_toggle == true then +--print ("--- mob needs day", name) + return + end + end + end + + -- spawn above node + pos.y = pos.y + 1 + + -- are we spawning within height limits? + if pos.y > max_height + or pos.y < min_height then +--print ("--- height limits not met", name, pos.y) + return + end + + -- are light levels ok? + local light = minetest.get_node_light(pos) + if not light + or light > max_light + or light < min_light then +--print ("--- light limits not met", name, light) + return + end + + -- only spawn away from player + local objs = minetest.get_objects_inside_radius(pos, 10) + + for n = 1, #objs do + + if objs[n]:is_player() then +--print ("--- player too close", name) + return + end + end + + -- do we have enough height clearance to spawn mob? + local ent = minetest.registered_entities[name] + local height = max(0, math.ceil(ent.collisionbox[5] - ent.collisionbox[2]) - 1) + + for n = 0, height do + + local pos2 = {x = pos.x, y = pos.y + n, z = pos.z} + + if minetest.registered_nodes[node_ok(pos2).name].walkable == true then +--print ("--- inside block", name, node_ok(pos2).name) + return + end + end + + -- mobs cannot spawn in protected areas when enabled + if not spawn_protected + and minetest.is_protected(pos, "") then +--print ("--- inside protected area", name) + return + end + + -- spawn mob half block higher than ground + pos.y = pos.y + 0.5 + + local mob = minetest.add_entity(pos, name) +--[[ + print ("[mobs] Spawned " .. name .. " at " + .. minetest.pos_to_string(pos) .. " on " + .. node.name .. " near " .. neighbors[1]) +]] + if on_spawn then + + local ent = mob:get_luaentity() + + on_spawn(ent, pos) + end + end + }) +end + + +-- compatibility with older mob registration +function mobs:register_spawn(name, nodes, max_light, min_light, chance, active_object_count, max_height, day_toggle) + + mobs:spawn_specific(name, nodes, {"air"}, min_light, max_light, 30, + chance, active_object_count, -31000, max_height, day_toggle) +end + + +-- MarkBu's spawn function +function mobs:spawn(def) + + mobs:spawn_specific( + def.name, + def.nodes or {"group:soil", "group:stone"}, + def.neighbors or {"air"}, + def.min_light or 0, + def.max_light or 15, + def.interval or 30, + def.chance or 5000, + def.active_object_count or 1, + def.min_height or -31000, + def.max_height or 31000, + def.day_toggle, + def.on_spawn + ) +end + + +-- register arrow for shoot attack +function mobs:register_arrow(name, def) + + if not name or not def then return end -- errorcheck + + minetest.register_entity(name, { + + physical = false, + visual = def.visual, + visual_size = def.visual_size, + textures = def.textures, + velocity = def.velocity, + hit_player = def.hit_player, + hit_node = def.hit_node, + hit_mob = def.hit_mob, + drop = def.drop or false, -- drops arrow as registered item when true + collisionbox = {0, 0, 0, 0, 0, 0}, -- remove box around arrows + timer = 0, + switch = 0, + owner_id = def.owner_id, + rotate = def.rotate, + automatic_face_movement_dir = def.rotate + and (def.rotate - (pi / 180)) or false, + + on_activate = def.on_activate, + + on_step = def.on_step or function(self, dtime) + + self.timer = self.timer + 1 + + local pos = self.object:get_pos() + + if self.switch == 0 + or self.timer > 150 + or not within_limits(pos, 0) then + + self.object:remove() ; -- print ("removed arrow") + + return + end + + -- does arrow have a tail (fireball) + if def.tail + and def.tail == 1 + and def.tail_texture then + + minetest.add_particle({ + pos = pos, + velocity = {x = 0, y = 0, z = 0}, + acceleration = {x = 0, y = 0, z = 0}, + expirationtime = def.expire or 0.25, + collisiondetection = false, + texture = def.tail_texture, + size = def.tail_size or 5, + glow = def.glow or 0, + }) + end + + if self.hit_node then + + local node = node_ok(pos).name + + if minetest.registered_nodes[node].walkable then + + self.hit_node(self, pos, node) + + if self.drop == true then + + pos.y = pos.y + 1 + + self.lastpos = (self.lastpos or pos) + + minetest.add_item(self.lastpos, self.object:get_luaentity().name) + end + + self.object:remove() ; -- print ("hit node") + + return + end + end + + if self.hit_player or self.hit_mob then + + for _,player in pairs(minetest.get_objects_inside_radius(pos, 1.0)) do + + if self.hit_player + and player:is_player() then + + self.hit_player(self, player) + self.object:remove() ; -- print ("hit player") + return + end + + local entity = player:get_luaentity() + + if entity + and self.hit_mob + and entity._cmi_is_mob == true + and tostring(player) ~= self.owner_id + and entity.name ~= self.object:get_luaentity().name then + + self.hit_mob(self, player) + + self.object:remove() ; --print ("hit mob") + + return + end + end + end + + self.lastpos = pos + end + }) +end + + +-- compatibility function +function mobs:explosion(pos, radius) + local self = {sounds = {}} + self.sounds.explode = "tnt_explode" + mobs:boom(self, pos, radius) +end + + +-- no damage to nodes explosion +function mobs:safe_boom(self, pos, radius) + + minetest.sound_play(self.sounds and self.sounds.explode or "tnt_explode", { + pos = pos, + gain = 1.0, + max_hear_distance = self.sounds and self.sounds.distance or 32 + }) + + entity_physics(pos, radius) + effect(pos, 32, "tnt_smoke.png", radius * 3, radius * 5, radius, 1, 0) +end + + +-- make explosion with protection and tnt mod check +function mobs:boom(self, pos, radius) + + if mobs_griefing + and minetest.get_modpath("tnt") and tnt and tnt.boom + and not minetest.is_protected(pos, "") then + + tnt.boom(pos, { + radius = radius, + damage_radius = radius, + sound = self.sounds and self.sounds.explode, + explode_center = true, + }) + else + mobs:safe_boom(self, pos, radius) + end +end + + +-- Register spawn eggs + +-- Note: This also introduces the “spawn_egg” group: +-- * spawn_egg=1: Spawn egg (generic mob, no metadata) +-- * spawn_egg=2: Spawn egg (captured/tamed mob, metadata) +function mobs:register_egg(mob, desc, background, addegg, no_creative) + + local grp = {spawn_egg = 1} + + -- do NOT add this egg to creative inventory (e.g. dungeon master) + if creative and no_creative == true then + grp.not_in_creative_inventory = 1 + end + + local invimg = background + + if addegg == 1 then + invimg = "mobs_chicken_egg.png^(" .. invimg .. + "^[mask:mobs_chicken_egg_overlay.png)" + end + + -- register new spawn egg containing mob information + minetest.register_craftitem(mob .. "_set", { + + description = S("@1 (Tamed)", desc), + inventory_image = invimg, + groups = {spawn_egg = 2, not_in_creative_inventory = 1}, + stack_max = 1, + + on_place = function(itemstack, placer, pointed_thing) + + local pos = pointed_thing.above + + -- am I clicking on something with existing on_rightclick function? + local under = minetest.get_node(pointed_thing.under) + local def = minetest.registered_nodes[under.name] + if def and def.on_rightclick then + return def.on_rightclick(pointed_thing.under, under, placer, itemstack) + end + + if pos + and within_limits(pos, 0) + and not minetest.is_protected(pos, placer:get_player_name()) then + + if not minetest.registered_entities[mob] then + return + end + + pos.y = pos.y + 1 + + local data = itemstack:get_metadata() + local mob = minetest.add_entity(pos, mob, data) + local ent = mob:get_luaentity() + + -- set owner if not a monster + if ent.type ~= "monster" then + ent.owner = placer:get_player_name() + ent.tamed = true + end + + -- since mob is unique we remove egg once spawned + itemstack:take_item() + end + + return itemstack + end, + }) + + + -- register old stackable mob egg + minetest.register_craftitem(mob, { + + description = desc, + inventory_image = invimg, + groups = grp, + + on_place = function(itemstack, placer, pointed_thing) + + local pos = pointed_thing.above + + -- am I clicking on something with existing on_rightclick function? + local under = minetest.get_node(pointed_thing.under) + local def = minetest.registered_nodes[under.name] + if def and def.on_rightclick then + return def.on_rightclick(pointed_thing.under, under, placer, itemstack) + end + + if pos + and within_limits(pos, 0) + and not minetest.is_protected(pos, placer:get_player_name()) then + + if not minetest.registered_entities[mob] then + return + end + + pos.y = pos.y + 1 + + local mob = minetest.add_entity(pos, mob) + local ent = mob:get_luaentity() + + -- don't set owner if monster or sneak pressed + if ent.type ~= "monster" + and not placer:get_player_control().sneak then + ent.owner = placer:get_player_name() + ent.tamed = true + end + + -- if not in creative then take item + if not mobs.is_creative(placer:get_player_name()) then + itemstack:take_item() + end + end + + return itemstack + end, + }) + +end + + +-- capture critter (thanks to blert2112 for idea) +function mobs:capture_mob(self, clicker, chance_hand, chance_net, chance_lasso, force_take, replacewith) + + if self.child + or not clicker:is_player() + or not clicker:get_inventory() then + return false + end + + -- get name of clicked mob + local mobname = self.name + + -- if not nil change what will be added to inventory + if replacewith then + mobname = replacewith + end + + local name = clicker:get_player_name() + local tool = clicker:get_wielded_item() + + -- are we using hand, net or lasso to pick up mob? + if tool:get_name() ~= "" + and tool:get_name() ~= "mobs:net" + and tool:get_name() ~= "mobs:lasso" then + return false + end + + -- is mob tamed? + if self.tamed == false + and force_take == false then + + minetest.chat_send_player(name, S("Not tamed!")) + + return true -- false + end + + -- cannot pick up if not owner + if self.owner ~= name + and force_take == false then + + minetest.chat_send_player(name, S("@1 is owner!", self.owner)) + + return true -- false + end + + if clicker:get_inventory():room_for_item("main", mobname) then + + -- was mob clicked with hand, net, or lasso? + local chance = 0 + + if tool:get_name() == "" then + chance = chance_hand + + elseif tool:get_name() == "mobs:net" then + + chance = chance_net + + clicker:set_wielded_item(tool) + + elseif tool:get_name() == "mobs:lasso" then + + chance = chance_lasso + + clicker:set_wielded_item(tool) + + end + + -- default mob egg + local new_stack = ItemStack(mobname) + + -- add special mob egg with all mob information + -- unless 'replacewith' contains new item to use + if not replacewith then + + new_stack = ItemStack(mobname .. "_set") + + local tmp = {} + + for _,stat in pairs(self) do + local t = type(stat) + if t ~= "function" + and t ~= "nil" + and t ~= "userdata" then + tmp[_] = self[_] + end + end + + local data_str = minetest.serialize(tmp) + + new_stack:set_metadata(data_str) + end + + local inv = clicker:get_inventory() + + if inv:room_for_item("main", new_stack) then + inv:add_item("main", new_stack) + else + minetest.add_item(clicker:get_pos(), new_stack) + end + + self.object:remove() + + mob_sound(self, "default_place_node_hard") + + end + + return true +end + + +-- protect tamed mob with rune item +function mobs:protect(self, clicker) + + local name = clicker:get_player_name() + local tool = clicker:get_wielded_item() + + if tool:get_name() ~= "mobs:protector" then + return false + end + + if self.tamed == false then + minetest.chat_send_player(name, S("Not tamed!")) + return true -- false + end + + if self.protected == true then + minetest.chat_send_player(name, S("Already protected!")) + return true -- false + end + + if not mobs.is_creative(clicker:get_player_name()) then + tool:take_item() -- take 1 protection rune + clicker:set_wielded_item(tool) + end + + self.protected = true + + local pos = self.object:get_pos() + pos.y = pos.y + self.collisionbox[2] + 0.5 + + effect(self.object:get_pos(), 25, "mobs_protect_particle.png", 0.5, 4, 2, 15) + + mob_sound(self, "mobs_spell") + + return true +end + + +local mob_obj = {} +local mob_sta = {} + +-- feeding, taming and breeding (thanks blert2112) +function mobs:feed_tame(self, clicker, feed_count, breed, tame) + + if not self.follow then + return false + end + + -- can eat/tame with item in hand + if follow_holding(self, clicker) then + + -- if not in creative then take item + if not mobs.is_creative(clicker:get_player_name()) then + + local item = clicker:get_wielded_item() + + item:take_item() + + clicker:set_wielded_item(item) + end + + -- increase health + self.health = self.health + 4 + + if self.health >= self.hp_max then + + self.health = self.hp_max + + if self.htimer < 1 then + + minetest.chat_send_player(clicker:get_player_name(), + S("@1 at full health (@2)", + self.name:split(":")[2], tostring(self.health))) + + self.htimer = 5 + end + end + + self.object:set_hp(self.health) + + update_tag(self) + + -- make children grow quicker + if self.child == true then + + self.hornytimer = self.hornytimer + 20 + + return true + end + + -- feed and tame + self.food = (self.food or 0) + 1 + if self.food >= feed_count then + + self.food = 0 + + if breed and self.hornytimer == 0 then + self.horny = true + end + + self.gotten = false + + if tame then + + if self.tamed == false then + minetest.chat_send_player(clicker:get_player_name(), + S("@1 has been tamed!", + self.name:split(":")[2])) + end + + self.tamed = true + + if not self.owner or self.owner == "" then + self.owner = clicker:get_player_name() + end + end + + -- make sound when fed so many times + mob_sound(self, self.sounds.random) + end + + return true + end + + local item = clicker:get_wielded_item() + + -- if mob has been tamed you can name it with a nametag + if item:get_name() == "mobs:nametag" + and clicker:get_player_name() == self.owner then + + local name = clicker:get_player_name() + + -- store mob and nametag stack in external variables + mob_obj[name] = self + mob_sta[name] = item + + local tag = self.nametag or "" + + minetest.show_formspec(name, "mobs_nametag", "size[8,4]" + .. default.gui_bg + .. default.gui_bg_img + .. "field[0.5,1;7.5,0;name;" .. minetest.formspec_escape(S("Enter name:")) .. ";" .. tag .. "]" + .. "button_exit[2.5,3.5;3,1;mob_rename;" .. minetest.formspec_escape(S("Rename")) .. "]") + end + + return false +end + + +-- inspired by blockmen's nametag mod +minetest.register_on_player_receive_fields(function(player, formname, fields) + + -- right-clicked with nametag and name entered? + if formname == "mobs_nametag" + and fields.name + and fields.name ~= "" then + + local name = player:get_player_name() + + if not mob_obj[name] + or not mob_obj[name].object then + return + end + + -- make sure nametag is being used to name mob + local item = player:get_wielded_item() + + if item:get_name() ~= "mobs:nametag" then + return + end + + -- limit name entered to 64 characters long + if string.len(fields.name) > 64 then + fields.name = string.sub(fields.name, 1, 64) + end + + -- update nametag + mob_obj[name].nametag = fields.name + + update_tag(mob_obj[name]) + + -- if not in creative then take item + if not mobs.is_creative(name) then + + mob_sta[name]:take_item() + + player:set_wielded_item(mob_sta[name]) + end + + -- reset external variables + mob_obj[name] = nil + mob_sta[name] = nil + end +end) + + +-- compatibility function for old entities to new modpack entities +function mobs:alias_mob(old_name, new_name) + + -- spawn egg + minetest.register_alias(old_name, new_name) + + -- entity + minetest.register_entity(":" .. old_name, { + + physical = false, + + on_step = function(self) + + if minetest.registered_entities[new_name] then + minetest.add_entity(self.object:get_pos(), new_name) + end + + self.object:remove() + end + }) +end diff --git a/games/default/files/Mobs/mobs/api.lua_testspawn b/games/default/files/Mobs/mobs/api.lua_testspawn new file mode 100644 index 000000000..471df3520 --- /dev/null +++ b/games/default/files/Mobs/mobs/api.lua_testspawn @@ -0,0 +1,3985 @@ + +-- Mobs Api + +mobs = {} +mobs.mod = "redo" +mobs.version = "20180623" + + +-- Intllib +local MP = minetest.get_modpath(minetest.get_current_modname()) +local S, NS = dofile(MP .. "/intllib.lua") +mobs.intllib = S + + +-- CMI support check +local use_cmi = minetest.global_exists("cmi") + + +-- Invisibility mod check +mobs.invis = {} +if minetest.global_exists("invisibility") then + mobs.invis = invisibility +end + + +-- creative check +local creative_mode_cache = minetest.settings:get_bool("creative_mode") +function mobs.is_creative(name) + return creative_mode_cache or minetest.check_player_privs(name, {creative = true}) +end + + +-- localize math functions +local pi = math.pi +local square = math.sqrt +local sin = math.sin +local cos = math.cos +local abs = math.abs +local min = math.min +local max = math.max +local atann = math.atan +local random = math.random +local floor = math.floor +local atan = function(x) + if not x or x ~= x then + --error("atan bassed NaN") + return 0 + else + return atann(x) + end +end + + +-- Load settings +local damage_enabled = minetest.settings:get_bool("enable_damage") +local mobs_spawn = minetest.settings:get_bool("mobs_spawn") ~= false +local peaceful_only = minetest.settings:get_bool("only_peaceful_mobs") +local disable_blood = minetest.settings:get_bool("mobs_disable_blood") +local mobs_drop_items = minetest.settings:get_bool("mobs_drop_items") ~= false +local mobs_griefing = minetest.settings:get_bool("mobs_griefing") ~= false +local creative = minetest.settings:get_bool("creative_mode") +local spawn_protected = minetest.settings:get_bool("mobs_spawn_protected") ~= false +local remove_far = minetest.settings:get_bool("remove_far_mobs") ~= false +local difficulty = tonumber(minetest.settings:get("mob_difficulty")) or 1.0 +local show_health = minetest.settings:get_bool("mob_show_health") ~= false +local max_per_block = tonumber(minetest.settings:get("max_objects_per_block") or 99) +local mob_chance_multiplier = tonumber(minetest.settings:get("mob_chance_multiplier") or 1) + +-- Peaceful mode message so players will know there are no monsters +if peaceful_only then + minetest.register_on_joinplayer(function(player) + minetest.chat_send_player(player:get_player_name(), + S("** Peaceful Mode Active - No Monsters Will Spawn")) + end) +end + +-- calculate aoc range for mob count +local aosrb = tonumber(minetest.settings:get("active_object_send_range_blocks")) +local abr = tonumber(minetest.settings:get("active_block_range")) +local aoc_range = max(aosrb, abr) * 16 + +-- pathfinding settings +local enable_pathfinding = true +local stuck_timeout = 3 -- how long before mob gets stuck in place and starts searching +local stuck_path_timeout = 10 -- how long will mob follow path before giving up + +-- default nodes +local node_fire = "fire:basic_flame" +local node_permanent_flame = "fire:permanent_flame" +local node_ice = "default:ice" +local node_snowblock = "default:snowblock" +local node_snow = "default:snow" +mobs.fallback_node = minetest.registered_aliases["mapgen_dirt"] or "default:dirt" + + +-- play sound +local mob_sound = function(self, sound) + + if sound then + minetest.sound_play(sound, { + object = self.object, + gain = 1.0, + max_hear_distance = self.sounds.distance + }) + end +end + + +-- attack player/mob +local do_attack = function(self, player) + + if self.state == "attack" then + return + end + + self.attack = player + self.state = "attack" + + if random(0, 100) < 90 then + mob_sound(self, self.sounds.war_cry) + end +end + + +-- move mob in facing direction +local set_velocity = function(self, v) + + -- do not move if mob has been ordered to stay + if self.order == "stand" then + self.object:setvelocity({x = 0, y = 0, z = 0}) + return + end + + local yaw = (self.object:get_yaw() or 0) + self.rotate + + self.object:setvelocity({ + x = sin(yaw) * -v, + y = self.object:getvelocity().y, + z = cos(yaw) * v + }) +end + + +-- calculate mob velocity +local get_velocity = function(self) + + local v = self.object:getvelocity() + + return (v.x * v.x + v.z * v.z) ^ 0.5 +end + + +-- set and return valid yaw +local set_yaw = function(self, yaw, delay) + + if not yaw or yaw ~= yaw then + yaw = 0 + end + + delay = delay or 0 + + if delay == 0 then + self.object:set_yaw(yaw) + return yaw + end + + self.target_yaw = yaw + self.delay = delay + + return self.target_yaw +end + +-- global function to set mob yaw +function mobs:yaw(self, yaw, delay) + set_yaw(self, yaw, delay) +end + + +-- set defined animation +local set_animation = function(self, anim) + + if not self.animation + or not anim then return end + + self.animation.current = self.animation.current or "" + + if anim == self.animation.current + or not self.animation[anim .. "_start"] + or not self.animation[anim .. "_end"] then + return + end + + self.animation.current = anim + + self.object:set_animation({ + x = self.animation[anim .. "_start"], + y = self.animation[anim .. "_end"]}, + self.animation[anim .. "_speed"] or self.animation.speed_normal or 15, + 0, self.animation[anim .. "_loop"] ~= false) +end + + +-- above function exported for mount.lua +function mobs:set_animation(self, anim) + set_animation(self, anim) +end + + +-- calculate distance +local get_distance = function(a, b) + + local x, y, z = a.x - b.x, a.y - b.y, a.z - b.z + + return square(x * x + y * y + z * z) +end + + +-- check line of sight (BrunoMine) +local line_of_sight = function(self, pos1, pos2, stepsize) + + stepsize = stepsize or 1 + + local s, pos = minetest.line_of_sight(pos1, pos2, stepsize) + + -- normal walking and flying mobs can see you through air + if s == true then + return true + end + + -- New pos1 to be analyzed + local npos1 = {x = pos1.x, y = pos1.y, z = pos1.z} + + local r, pos = minetest.line_of_sight(npos1, pos2, stepsize) + + -- Checks the return + if r == true then return true end + + -- Nodename found + local nn = minetest.get_node(pos).name + + -- Target Distance (td) to travel + local td = get_distance(pos1, pos2) + + -- Actual Distance (ad) traveled + local ad = 0 + + -- It continues to advance in the line of sight in search of a real + -- obstruction which counts as 'normal' nodebox. + while minetest.registered_nodes[nn] + and (minetest.registered_nodes[nn].walkable == false + or minetest.registered_nodes[nn].drawtype == "nodebox") do + + -- Check if you can still move forward + if td < ad + stepsize then + return true -- Reached the target + end + + -- Moves the analyzed pos + local d = get_distance(pos1, pos2) + + npos1.x = ((pos2.x - pos1.x) / d * stepsize) + pos1.x + npos1.y = ((pos2.y - pos1.y) / d * stepsize) + pos1.y + npos1.z = ((pos2.z - pos1.z) / d * stepsize) + pos1.z + + -- NaN checks + if d == 0 + or npos1.x ~= npos1.x + or npos1.y ~= npos1.y + or npos1.z ~= npos1.z then + return false + end + + ad = ad + stepsize + + -- scan again + r, pos = minetest.line_of_sight(npos1, pos2, stepsize) + + if r == true then return true end + + -- New Nodename found + nn = minetest.get_node(pos).name + + end + + return false +end + + +-- are we flying in what we are suppose to? (taikedz) +local flight_check = function(self, pos_w) + + local def = minetest.registered_nodes[self.standing_in] + + if not def then return false end -- nil check + + if type(self.fly_in) == "string" + and self.standing_in == self.fly_in then + + return true + + elseif type(self.fly_in) == "table" then + + for _,fly_in in pairs(self.fly_in) do + + if self.standing_in == fly_in then + + return true + end + end + end + + -- stops mobs getting stuck inside stairs and plantlike nodes + if def.drawtype ~= "airlike" + and def.drawtype ~= "liquid" + and def.drawtype ~= "flowingliquid" then + return true + end + + return false +end + + +-- custom particle effects +local effect = function(pos, amount, texture, min_size, max_size, radius, gravity, glow) + + radius = radius or 2 + min_size = min_size or 0.5 + max_size = max_size or 1 + gravity = gravity or -10 + glow = glow or 0 + + minetest.add_particlespawner({ + amount = amount, + time = 0.25, + minpos = pos, + maxpos = pos, + minvel = {x = -radius, y = -radius, z = -radius}, + maxvel = {x = radius, y = radius, z = radius}, + minacc = {x = 0, y = gravity, z = 0}, + maxacc = {x = 0, y = gravity, z = 0}, + minexptime = 0.1, + maxexptime = 1, + minsize = min_size, + maxsize = max_size, + texture = texture, + glow = glow, + }) +end + + +-- update nametag colour +local update_tag = function(self) + + local col = "#00FF00" + local qua = self.hp_max / 4 + + if self.health <= floor(qua * 3) then + col = "#FFFF00" + end + + if self.health <= floor(qua * 2) then + col = "#FF6600" + end + + if self.health <= floor(qua) then + col = "#FF0000" + end + + self.object:set_properties({ + nametag = self.nametag, + nametag_color = col + }) + +end + + +-- drop items +local item_drop = function(self, cooked) + + -- no drops if disabled by setting + if not mobs_drop_items then return end + + -- no drops for child mobs + if self.child then return end + + local obj, item, num + local pos = self.object:get_pos() + + self.drops = self.drops or {} -- nil check + + for n = 1, #self.drops do + + if random(1, self.drops[n].chance) == 1 then + + num = random(self.drops[n].min or 1, self.drops[n].max or 1) + item = self.drops[n].name + + -- cook items when true + if cooked then + + local output = minetest.get_craft_result({ + method = "cooking", width = 1, items = {item}}) + + if output and output.item and not output.item:is_empty() then + item = output.item:get_name() + end + end + + -- add item if it exists + obj = minetest.add_item(pos, ItemStack(item .. " " .. num)) + + if obj and obj:get_luaentity() then + + obj:setvelocity({ + x = random(-10, 10) / 9, + y = 6, + z = random(-10, 10) / 9, + }) + elseif obj then + obj:remove() -- item does not exist + end + end + end + + self.drops = {} +end + + +-- check if mob is dead or only hurt +local check_for_death = function(self, cause, cmi_cause) + + -- has health actually changed? + if self.health == self.old_health and self.health > 0 then + return + end + + self.old_health = self.health + + -- still got some health? play hurt sound + if self.health > 0 then + + mob_sound(self, self.sounds.damage) + + -- make sure health isn't higher than max + if self.health > self.hp_max then + self.health = self.hp_max + end + + -- backup nametag so we can show health stats + if not self.nametag2 then + self.nametag2 = self.nametag or "" + end + + if show_health + and (cmi_cause and cmi_cause.type == "punch") then + + self.htimer = 2 + self.nametag = "♥ " .. self.health .. " / " .. self.hp_max + + update_tag(self) + end + + return false + end + + -- dropped cooked item if mob died in lava + if cause == "lava" then + item_drop(self, true) + else + item_drop(self, nil) + end + + mob_sound(self, self.sounds.death) + + local pos = self.object:get_pos() + + -- execute custom death function + if self.on_die then + + self.on_die(self, pos) + + if use_cmi then + cmi.notify_die(self.object, cmi_cause) + end + + self.object:remove() + + return true + end + + -- default death function and die animation (if defined) + if self.animation + and self.animation.die_start + and self.animation.die_end then + + local frames = self.animation.die_end - self.animation.die_start + local speed = self.animation.die_speed or 15 + local length = max(frames / speed, 0) + + self.attack = nil + self.v_start = false + self.timer = 0 + self.blinktimer = 0 + self.passive = true + self.state = "die" + set_velocity(self, 0) + set_animation(self, "die") + + minetest.after(length, function(self) + + if use_cmi and self.object:get_luaentity() then + cmi.notify_die(self.object, cmi_cause) + end + + self.object:remove() + end, self) + else + + if use_cmi then + cmi.notify_die(self.object, cmi_cause) + end + + self.object:remove() + end + + effect(pos, 20, "tnt_smoke.png") + + return true +end + + +-- check if within physical map limits (-30911 to 30927) +local within_limits = function(pos, radius) + + if (pos.x - radius) > -30913 + and (pos.x + radius) < 30928 + and (pos.y - radius) > -30913 + and (pos.y + radius) < 30928 + and (pos.z - radius) > -30913 + and (pos.z + radius) < 30928 then + return true -- within limits + end + + return false -- beyond limits +end + + +-- is mob facing a cliff +local is_at_cliff = function(self) + + if self.fear_height == 0 then -- 0 for no falling protection! + return false + end + + local yaw = self.object:get_yaw() + local dir_x = -sin(yaw) * (self.collisionbox[4] + 0.5) + local dir_z = cos(yaw) * (self.collisionbox[4] + 0.5) + local pos = self.object:get_pos() + local ypos = pos.y + self.collisionbox[2] -- just above floor + + if minetest.line_of_sight( + {x = pos.x + dir_x, y = ypos, z = pos.z + dir_z}, + {x = pos.x + dir_x, y = ypos - self.fear_height, z = pos.z + dir_z} + , 1) then + + return true + end + + return false +end + + +-- get node but use fallback for nil or unknown +local node_ok = function(pos, fallback) + + fallback = fallback or mobs.fallback_node + + local node = minetest.get_node_or_nil(pos) + + if node and minetest.registered_nodes[node.name] then + return node + end + + return minetest.registered_nodes[fallback] +end + + +-- environmental damage (water, lava, fire, light etc.) +local do_env_damage = function(self) + + -- feed/tame text timer (so mob 'full' messages dont spam chat) + if self.htimer > 0 then + self.htimer = self.htimer - 1 + end + + -- reset nametag after showing health stats + if self.htimer < 1 and self.nametag2 then + + self.nametag = self.nametag2 + self.nametag2 = nil + + update_tag(self) + end + + local pos = self.object:get_pos() + + self.time_of_day = minetest.get_timeofday() + + -- remove mob if beyond map limits + if not within_limits(pos, 0) then + self.object:remove() + return + end + + -- bright light harms mob + if self.light_damage ~= 0 +-- and pos.y > 0 +-- and self.time_of_day > 0.2 +-- and self.time_of_day < 0.8 + and (minetest.get_node_light(pos) or 0) > 12 then + + self.health = self.health - self.light_damage + + effect(pos, 5, "tnt_smoke.png") + + if check_for_death(self, "light", {type = "light"}) then return end + end +--[[ + local y_level = self.collisionbox[2] + + if self.child then + y_level = self.collisionbox[2] * 0.5 + end + + -- what is mob standing in? + pos.y = pos.y + y_level + 0.25 -- foot level + self.standing_in = node_ok(pos, "air").name +-- print ("standing in " .. self.standing_in) +]] + -- don't fall when on ignore, just stand still + if self.standing_in == "ignore" then + self.object:setvelocity({x = 0, y = 0, z = 0}) + end + + local nodef = minetest.registered_nodes[self.standing_in] + + pos.y = pos.y + 1 -- for particle effect position + + -- water + if self.water_damage + and nodef.groups.water then + + if self.water_damage ~= 0 then + + self.health = self.health - self.water_damage + + effect(pos, 5, "bubble.png", nil, nil, 1, nil) + + if check_for_death(self, "water", {type = "environment", + pos = pos, node = self.standing_in}) then return end + end + + -- lava or fire + elseif self.lava_damage + and (nodef.groups.lava + or self.standing_in == node_fire + or self.standing_in == node_permanent_flame) then + + if self.lava_damage ~= 0 then + + self.health = self.health - self.lava_damage + + effect(pos, 5, "fire_basic_flame.png", nil, nil, 1, nil) + + if check_for_death(self, "lava", {type = "environment", + pos = pos, node = self.standing_in}) then return end + end + + -- damage_per_second node check + elseif nodef.damage_per_second ~= 0 then + + self.health = self.health - nodef.damage_per_second + + effect(pos, 5, "tnt_smoke.png") + + if check_for_death(self, "dps", {type = "environment", + pos = pos, node = self.standing_in}) then return end + end +--[[ + --- suffocation inside solid node + if self.suffocation ~= 0 + and nodef.walkable == true + and nodef.groups.disable_suffocation ~= 1 + and nodef.drawtype == "normal" then + + self.health = self.health - self.suffocation + + if check_for_death(self, "suffocation", {type = "environment", + pos = pos, node = self.standing_in}) then return end + end +]] + check_for_death(self, "", {type = "unknown"}) +end + + +-- jump if facing a solid node (not fences or gates) +local do_jump = function(self) + + if not self.jump + or self.jump_height == 0 + or self.fly + or self.child + or self.order == "stand" then + return false + end + + self.facing_fence = false + + -- something stopping us while moving? + if self.state ~= "stand" + and get_velocity(self) > 0.5 + and self.object:getvelocity().y ~= 0 then + return false + end + + local pos = self.object:get_pos() + local yaw = self.object:get_yaw() + + -- what is mob standing on? + pos.y = pos.y + self.collisionbox[2] - 0.2 + + local nod = node_ok(pos) + +--print ("standing on:", nod.name, pos.y) + + if minetest.registered_nodes[nod.name].walkable == false then + return false + end + + -- where is front + local dir_x = -sin(yaw) * (self.collisionbox[4] + 0.5) + local dir_z = cos(yaw) * (self.collisionbox[4] + 0.5) + + -- what is in front of mob? + local nod = node_ok({ + x = pos.x + dir_x, + y = pos.y + 0.5, + z = pos.z + dir_z + }) + + -- thin blocks that do not need to be jumped + if nod.name == node_snow then + return false + end + +--print ("in front:", nod.name, pos.y + 0.5) + + if self.walk_chance == 0 + or minetest.registered_items[nod.name].walkable then + + if not nod.name:find("fence") + and not nod.name:find("gate") then + + local v = self.object:getvelocity() + + v.y = self.jump_height + + set_animation(self, "jump") -- only when defined + + self.object:setvelocity(v) + + -- when in air move forward + minetest.after(0.3, function(self, v) + + if self.object:get_luaentity() then + + self.object:set_acceleration({ + x = v.x * 2,--1.5, + y = 0, + z = v.z * 2,--1.5 + }) + end + end, self, v) + + if get_velocity(self) > 0 then + mob_sound(self, self.sounds.jump) + end + else + self.facing_fence = true + end + + return true + end + + return false +end + + +-- blast damage to entities nearby (modified from TNT mod) +local entity_physics = function(pos, radius) + + radius = radius * 2 + + local objs = minetest.get_objects_inside_radius(pos, radius) + local obj_pos, dist + + for n = 1, #objs do + + obj_pos = objs[n]:get_pos() + + dist = get_distance(pos, obj_pos) + if dist < 1 then dist = 1 end + + local damage = floor((4 / dist) * radius) + local ent = objs[n]:get_luaentity() + + -- punches work on entities AND players + objs[n]:punch(objs[n], 1.0, { + full_punch_interval = 1.0, + damage_groups = {fleshy = damage}, + }, pos) + end +end + + +-- should mob follow what I'm holding ? +local follow_holding = function(self, clicker) + + if mobs.invis[clicker:get_player_name()] then + return false + end + + local item = clicker:get_wielded_item() + local t = type(self.follow) + + -- single item + if t == "string" + and item:get_name() == self.follow then + return true + + -- multiple items + elseif t == "table" then + + for no = 1, #self.follow do + + if self.follow[no] == item:get_name() then + return true + end + end + end + + return false +end + + +-- find two animals of same type and breed if nearby and horny +local breed = function(self) + + -- child takes 240 seconds before growing into adult + if self.child == true then + + self.hornytimer = self.hornytimer + 1 + + if self.hornytimer > 240 then + + self.child = false + self.hornytimer = 0 + + self.object:set_properties({ + textures = self.base_texture, + mesh = self.base_mesh, + visual_size = self.base_size, + collisionbox = self.base_colbox, + selectionbox = self.base_selbox, + }) + + -- custom function when child grows up + if self.on_grown then + self.on_grown(self) + else + -- jump when fully grown so as not to fall into ground + self.object:setvelocity({ + x = 0, + y = self.jump_height, + z = 0 + }) + end + end + + return + end + + -- horny animal can mate for 40 seconds, + -- afterwards horny animal cannot mate again for 200 seconds + if self.horny == true + and self.hornytimer < 240 then + + self.hornytimer = self.hornytimer + 1 + + if self.hornytimer >= 240 then + self.hornytimer = 0 + self.horny = false + end + end + + -- find another same animal who is also horny and mate if nearby + if self.horny == true + and self.hornytimer <= 40 then + + local pos = self.object:get_pos() + + effect({x = pos.x, y = pos.y + 1, z = pos.z}, 8, "heart.png", 3, 4, 1, 0.1) + + local objs = minetest.get_objects_inside_radius(pos, 3) + local num = 0 + local ent = nil + + for n = 1, #objs do + + ent = objs[n]:get_luaentity() + + -- check for same animal with different colour + local canmate = false + + if ent then + + if ent.name == self.name then + canmate = true + else + local entname = string.split(ent.name,":") + local selfname = string.split(self.name,":") + + if entname[1] == selfname[1] then + entname = string.split(entname[2],"_") + selfname = string.split(selfname[2],"_") + + if entname[1] == selfname[1] then + canmate = true + end + end + end + end + + if ent + and canmate == true + and ent.horny == true + and ent.hornytimer <= 40 then + num = num + 1 + end + + -- found your mate? then have a baby + if num > 1 then + + self.hornytimer = 41 + ent.hornytimer = 41 + + -- spawn baby + minetest.after(5, function(self, ent) + + if not self.object:get_luaentity() then + return + end + + -- custom breed function + if self.on_breed then + + -- when false skip going any further + if self.on_breed(self, ent) == false then + return + end + else + effect(pos, 15, "tnt_smoke.png", 1, 2, 2, 15, 5) + end + + local mob = minetest.add_entity(pos, self.name) + local ent2 = mob:get_luaentity() + local textures = self.base_texture + + -- using specific child texture (if found) + if self.child_texture then + textures = self.child_texture[1] + end + + -- and resize to half height + mob:set_properties({ + textures = textures, + visual_size = { + x = self.base_size.x * .5, + y = self.base_size.y * .5, + }, + collisionbox = { + self.base_colbox[1] * .5, + self.base_colbox[2] * .5, + self.base_colbox[3] * .5, + self.base_colbox[4] * .5, + self.base_colbox[5] * .5, + self.base_colbox[6] * .5, + }, + selectionbox = { + self.base_selbox[1] * .5, + self.base_selbox[2] * .5, + self.base_selbox[3] * .5, + self.base_selbox[4] * .5, + self.base_selbox[5] * .5, + self.base_selbox[6] * .5, + }, + }) + -- tamed and owned by parents' owner + ent2.child = true + ent2.tamed = true + ent2.owner = self.owner + end, self, ent) + + num = 0 + + break + end + end + end +end + + +-- find and replace what mob is looking for (grass, wheat etc.) +local replace = function(self, pos) + + if not mobs_griefing + or not self.replace_rate + or not self.replace_what + or self.child == true + or self.object:getvelocity().y ~= 0 + or random(1, self.replace_rate) > 1 then + return + end + + local what, with, y_offset + + if type(self.replace_what[1]) == "table" then + + local num = random(#self.replace_what) + + what = self.replace_what[num][1] or "" + with = self.replace_what[num][2] or "" + y_offset = self.replace_what[num][3] or 0 + else + what = self.replace_what + with = self.replace_with or "" + y_offset = self.replace_offset or 0 + end + + pos.y = pos.y + y_offset + + if #minetest.find_nodes_in_area(pos, pos, what) > 0 then + +-- print ("replace node = ".. minetest.get_node(pos).name, pos.y) + + local oldnode = {name = what} + local newnode = {name = with} + local on_replace_return + + if self.on_replace then + on_replace_return = self.on_replace(self, pos, oldnode, newnode) + end + + if on_replace_return ~= false then + + minetest.set_node(pos, {name = with}) + + -- when cow/sheep eats grass, replace wool and milk + if self.gotten == true then + self.gotten = false + self.object:set_properties(self) + end + end + end +end + + +-- check if daytime and also if mob is docile during daylight hours +local day_docile = function(self) + + if self.docile_by_day == false then + + return false + + elseif self.docile_by_day == true + and self.time_of_day > 0.2 + and self.time_of_day < 0.8 then + + return true + end +end + + +local los_switcher = false +local height_switcher = false + +-- path finding and smart mob routine by rnd, line_of_sight and other edits by Elkien3 +local smart_mobs = function(self, s, p, dist, dtime) + + local s1 = self.path.lastpos + + local target_pos = self.attack:get_pos() + + -- is it becoming stuck? + if abs(s1.x - s.x) + abs(s1.z - s.z) < .5 then + self.path.stuck_timer = self.path.stuck_timer + dtime + else + self.path.stuck_timer = 0 + end + + self.path.lastpos = {x = s.x, y = s.y, z = s.z} + + local use_pathfind = false + local has_lineofsight = minetest.line_of_sight( + {x = s.x, y = (s.y) + .5, z = s.z}, + {x = target_pos.x, y = (target_pos.y) + 1.5, z = target_pos.z}, .2) + + -- im stuck, search for path + if not has_lineofsight then + + if los_switcher == true then + use_pathfind = true + los_switcher = false + end -- cannot see target! + else + if los_switcher == false then + + los_switcher = true + use_pathfind = false + + minetest.after(1, function(self) + + if self.object:get_luaentity() then + + if has_lineofsight then + self.path.following = false + end + end + end, self) + end -- can see target! + end + + if (self.path.stuck_timer > stuck_timeout and not self.path.following) then + + use_pathfind = true + self.path.stuck_timer = 0 + + minetest.after(1, function(self) + + if self.object:get_luaentity() then + + if has_lineofsight then + self.path.following = false + end + end + end, self) + end + + if (self.path.stuck_timer > stuck_path_timeout and self.path.following) then + + use_pathfind = true + self.path.stuck_timer = 0 + + minetest.after(1, function(self) + + if self.object:get_luaentity() then + + if has_lineofsight then + self.path.following = false + end + end + end, self) + end + + if math.abs(vector.subtract(s,target_pos).y) > self.stepheight then + + if height_switcher then + use_pathfind = true + height_switcher = false + end + else + if not height_switcher then + use_pathfind = false + height_switcher = true + end + end + + if use_pathfind then + -- lets try find a path, first take care of positions + -- since pathfinder is very sensitive + local sheight = self.collisionbox[5] - self.collisionbox[2] + + -- round position to center of node to avoid stuck in walls + -- also adjust height for player models! + s.x = floor(s.x + 0.5) +-- s.y = floor(s.y + 0.5) - sheight + s.z = floor(s.z + 0.5) + + local ssight, sground = minetest.line_of_sight(s, { + x = s.x, y = s.y - 4, z = s.z}, 1) + + -- determine node above ground + if not ssight then + s.y = sground.y + 1 + end + + local p1 = self.attack:get_pos() + + p1.x = floor(p1.x + 0.5) + p1.y = floor(p1.y + 0.5) + p1.z = floor(p1.z + 0.5) + + local dropheight = 6 + if self.fear_height ~= 0 then dropheight = self.fear_height end + + self.path.way = minetest.find_path(s, p1, 16, self.stepheight, dropheight, "Dijkstra") +--[[ + -- show path using particles + if self.path.way and #self.path.way > 0 then + print ("-- path length:" .. tonumber(#self.path.way)) + for _,pos in pairs(self.path.way) do + minetest.add_particle({ + pos = pos, + velocity = {x=0, y=0, z=0}, + acceleration = {x=0, y=0, z=0}, + expirationtime = 1, + size = 4, + collisiondetection = false, + vertical = false, + texture = "heart.png", + }) + end + end +]] + + self.state = "" + do_attack(self, self.attack) + + -- no path found, try something else + if not self.path.way then + + self.path.following = false + + -- lets make way by digging/building if not accessible + if self.pathfinding == 2 and mobs_griefing then + + -- is player higher than mob? + if s.y < p1.y then + + -- build upwards + if not minetest.is_protected(s, "") then + + local ndef1 = minetest.registered_nodes[self.standing_in] + + if ndef1 and (ndef1.buildable_to or ndef1.groups.liquid) then + + minetest.set_node(s, {name = mobs.fallback_node}) + end + end + + local sheight = math.ceil(self.collisionbox[5]) + 1 + + -- assume mob is 2 blocks high so it digs above its head + s.y = s.y + sheight + + -- remove one block above to make room to jump + if not minetest.is_protected(s, "") then + + local node1 = node_ok(s, "air").name + local ndef1 = minetest.registered_nodes[node1] + + if node1 ~= "air" + and node1 ~= "ignore" + and ndef1 + and not ndef1.groups.level + and not ndef1.groups.unbreakable + and not ndef1.groups.liquid then + + minetest.set_node(s, {name = "air"}) + minetest.add_item(s, ItemStack(node1)) + + end + end + + s.y = s.y - sheight + self.object:setpos({x = s.x, y = s.y + 2, z = s.z}) + + else -- dig 2 blocks to make door toward player direction + + local yaw1 = self.object:get_yaw() + pi / 2 + local p1 = { + x = s.x + cos(yaw1), + y = s.y, + z = s.z + sin(yaw1) + } + + if not minetest.is_protected(p1, "") then + + local node1 = node_ok(p1, "air").name + local ndef1 = minetest.registered_nodes[node1] + + if node1 ~= "air" + and node1 ~= "ignore" + and ndef1 + and not ndef1.groups.level + and not ndef1.groups.unbreakable + and not ndef1.groups.liquid then + + minetest.add_item(p1, ItemStack(node1)) + minetest.set_node(p1, {name = "air"}) + end + + p1.y = p1.y + 1 + node1 = node_ok(p1, "air").name + ndef1 = minetest.registered_nodes[node1] + + if node1 ~= "air" + and node1 ~= "ignore" + and ndef1 + and not ndef1.groups.level + and not ndef1.groups.unbreakable + and not ndef1.groups.liquid then + + minetest.add_item(p1, ItemStack(node1)) + minetest.set_node(p1, {name = "air"}) + end + + end + end + end + + -- will try again in 2 second + self.path.stuck_timer = stuck_timeout - 2 + + -- frustration! cant find the damn path :( + mob_sound(self, self.sounds.random) + else + -- yay i found path + mob_sound(self, self.sounds.war_cry) + set_velocity(self, self.walk_velocity) + + -- follow path now that it has it + self.path.following = true + end + end +end + + +-- specific attacks +local specific_attack = function(list, what) + + -- no list so attack default (player, animals etc.) + if list == nil then + return true + end + + -- found entity on list to attack? + for no = 1, #list do + + if list[no] == what then + return true + end + end + + return false +end + + +-- monster find someone to attack +local monster_attack = function(self) + + if self.type ~= "monster" + or not damage_enabled + or creative + or self.state == "attack" + or day_docile(self) then + return + end + + local s = self.object:get_pos() + local p, sp, dist + local player, obj, min_player + local type, name = "", "" + local min_dist = self.view_range + 1 + local objs = minetest.get_objects_inside_radius(s, self.view_range) + + for n = 1, #objs do + + if objs[n]:is_player() then + + if mobs.invis[ objs[n]:get_player_name() ] then + + type = "" + else + player = objs[n] + type = "player" + name = "player" + end + else + obj = objs[n]:get_luaentity() + + if obj then + player = obj.object + type = obj.type + name = obj.name or "" + end + end + + -- find specific mob to attack, failing that attack player/npc/animal + if specific_attack(self.specific_attack, name) + and (type == "player" or type == "npc" + or (type == "animal" and self.attack_animals == true)) then + + p = player:get_pos() + sp = s + + dist = get_distance(p, s) + + -- aim higher to make looking up hills more realistic + p.y = p.y + 1 + sp.y = sp.y + 1 + + + -- choose closest player to attack + if dist < min_dist + and line_of_sight(self, sp, p, 2) == true then + min_dist = dist + min_player = player + end + end + end + + -- attack player + if min_player then + do_attack(self, min_player) + end +end + + +-- npc, find closest monster to attack +local npc_attack = function(self) + + if self.type ~= "npc" + or not self.attacks_monsters + or self.state == "attack" then + return + end + + local p, sp, obj, min_player, dist + local s = self.object:get_pos() + local min_dist = self.view_range + 1 + local objs = minetest.get_objects_inside_radius(s, self.view_range) + + for n = 1, #objs do + + obj = objs[n]:get_luaentity() + + if obj and obj.type == "monster" then + + p = obj.object:get_pos() + sp = s + + dist = get_distance(p, s) + + -- aim higher to make looking up hills more realistic + p.y = p.y + 1 + sp.y = sp.y + 1 + + if dist < min_dist + and line_of_sight(self, sp, p, 2) == true then + min_dist = dist + min_player = obj.object + end + end + end + + if min_player then + do_attack(self, min_player) + end +end + + +-- specific runaway +local specific_runaway = function(list, what) + + -- no list so do not run + if list == nil then + return false + end + + -- found entity on list to attack? + for no = 1, #list do + + if list[no] == what then + return true + end + end + + return false +end + + +-- find someone to runaway from +local runaway_from = function(self) + + if not self.runaway_from then + return + end + + local s = self.object:get_pos() + local p, sp, dist + local player, obj, min_player + local type, name = "", "" + local min_dist = self.view_range + 1 + local objs = minetest.get_objects_inside_radius(s, self.view_range) + + for n = 1, #objs do + + if objs[n]:is_player() then + + if mobs.invis[ objs[n]:get_player_name() ] + or self.owner == objs[n]:get_player_name() then + + type = "" + else + player = objs[n] + type = "player" + name = "player" + end + else + obj = objs[n]:get_luaentity() + + if obj then + player = obj.object + type = obj.type + name = obj.name or "" + end + end + + -- find specific mob to runaway from + if name ~= "" and name ~= self.name + and specific_runaway(self.runaway_from, name) then + + p = player:get_pos() + sp = s + + -- aim higher to make looking up hills more realistic + p.y = p.y + 1 + sp.y = sp.y + 1 + + dist = get_distance(p, s) + + + -- choose closest player/mpb to runaway from + if dist < min_dist + and line_of_sight(self, sp, p, 2) == true then + min_dist = dist + min_player = player + end + end + end + + if min_player then + + local lp = player:get_pos() + local vec = { + x = lp.x - s.x, + y = lp.y - s.y, + z = lp.z - s.z + } + + local yaw = (atan(vec.z / vec.x) + 3 * pi / 2) - self.rotate + + if lp.x > s.x then + yaw = yaw + pi + end + + yaw = set_yaw(self, yaw, 4) + self.state = "runaway" + self.runaway_timer = 3 + self.following = nil + end +end + + +-- follow player if owner or holding item, if fish outta water then flop +local follow_flop = function(self) + + -- find player to follow + if (self.follow ~= "" + or self.order == "follow") + and not self.following + and self.state ~= "attack" + and self.state ~= "runaway" then + + local s = self.object:get_pos() + local players = minetest.get_connected_players() + + for n = 1, #players do + + if get_distance(players[n]:get_pos(), s) < self.view_range + and not mobs.invis[ players[n]:get_player_name() ] then + + self.following = players[n] + + break + end + end + end + + if self.type == "npc" + and self.order == "follow" + and self.state ~= "attack" + and self.owner ~= "" then + + -- npc stop following player if not owner + if self.following + and self.owner + and self.owner ~= self.following:get_player_name() then + self.following = nil + end + else + -- stop following player if not holding specific item + if self.following + and self.following:is_player() + and follow_holding(self, self.following) == false then + self.following = nil + end + + end + + -- follow that thing + if self.following then + + local s = self.object:get_pos() + local p + + if self.following:is_player() then + + p = self.following:get_pos() + + elseif self.following.object then + + p = self.following.object:get_pos() + end + + if p then + + local dist = get_distance(p, s) + + -- dont follow if out of range + if dist > self.view_range then + self.following = nil + else + local vec = { + x = p.x - s.x, + z = p.z - s.z + } + + local yaw = (atan(vec.z / vec.x) + pi / 2) - self.rotate + + if p.x > s.x then yaw = yaw + pi end + + yaw = set_yaw(self, yaw, 6) + + -- anyone but standing npc's can move along + if dist > self.reach + and self.order ~= "stand" then + + set_velocity(self, self.walk_velocity) + + if self.walk_chance ~= 0 then + set_animation(self, "walk") + end + else + set_velocity(self, 0) + set_animation(self, "stand") + end + + return + end + end + end + + -- swimmers flop when out of their element, and swim again when back in + if self.fly then + local s = self.object:get_pos() + if not flight_check(self, s) then + + self.state = "flop" + self.object:setvelocity({x = 0, y = -5, z = 0}) + + set_animation(self, "stand") + + return + elseif self.state == "flop" then + self.state = "stand" + end + end +end + + +-- dogshoot attack switch and counter function +local dogswitch = function(self, dtime) + + -- switch mode not activated + if not self.dogshoot_switch + or not dtime then + return 0 + end + + self.dogshoot_count = self.dogshoot_count + dtime + + if (self.dogshoot_switch == 1 + and self.dogshoot_count > self.dogshoot_count_max) + or (self.dogshoot_switch == 2 + and self.dogshoot_count > self.dogshoot_count2_max) then + + self.dogshoot_count = 0 + + if self.dogshoot_switch == 1 then + self.dogshoot_switch = 2 + else + self.dogshoot_switch = 1 + end + end + + return self.dogshoot_switch +end + + +-- execute current state (stand, walk, run, attacks) +local do_states = function(self, dtime) + + local yaw = self.object:get_yaw() or 0 + + if self.state == "stand" then + + if random(1, 4) == 1 then + + local lp = nil + local s = self.object:get_pos() + local objs = minetest.get_objects_inside_radius(s, 3) + + for n = 1, #objs do + + if objs[n]:is_player() then + lp = objs[n]:get_pos() + break + end + end + + -- look at any players nearby, otherwise turn randomly + if lp then + + local vec = { + x = lp.x - s.x, + z = lp.z - s.z + } + + yaw = (atan(vec.z / vec.x) + pi / 2) - self.rotate + + if lp.x > s.x then yaw = yaw + pi end + else + yaw = yaw + random(-0.5, 0.5) + end + + yaw = set_yaw(self, yaw, 8) + end + + set_velocity(self, 0) + set_animation(self, "stand") + + -- npc's ordered to stand stay standing + if self.type ~= "npc" + or self.order ~= "stand" then + + if self.walk_chance ~= 0 + and self.facing_fence ~= true + and random(1, 100) <= self.walk_chance + and is_at_cliff(self) == false then + + set_velocity(self, self.walk_velocity) + self.state = "walk" + set_animation(self, "walk") + + --[[ fly up/down randomly for flying mobs + if self.fly and random(1, 100) <= self.walk_chance then + + local v = self.object:getvelocity() + local ud = random(-1, 2) / 9 + + self.object:setvelocity({x = v.x, y = ud, z = v.z}) + end--]] + end + end + + elseif self.state == "walk" then + + local s = self.object:get_pos() + local lp = nil + + -- is there something I need to avoid? + if self.water_damage > 0 + and self.lava_damage > 0 then + + lp = minetest.find_node_near(s, 1, {"group:water", "group:lava"}) + + elseif self.water_damage > 0 then + + lp = minetest.find_node_near(s, 1, {"group:water"}) + + elseif self.lava_damage > 0 then + + lp = minetest.find_node_near(s, 1, {"group:lava"}) + end + + if lp then + + -- if mob in water or lava then look for land + if (self.lava_damage + and minetest.registered_nodes[self.standing_in].groups.lava) + or (self.water_damage + and minetest.registered_nodes[self.standing_in].groups.water) then + + lp = minetest.find_node_near(s, 5, {"group:soil", "group:stone", + "group:sand", node_ice, node_snowblock}) + + -- did we find land? + if lp then + + local vec = { + x = lp.x - s.x, + z = lp.z - s.z + } + + yaw = (atan(vec.z / vec.x) + pi / 2) - self.rotate + + if lp.x > s.x then yaw = yaw + pi end + + -- look towards land and jump/move in that direction + yaw = set_yaw(self, yaw, 6) + do_jump(self) + set_velocity(self, self.walk_velocity) + else + yaw = yaw + random(-0.5, 0.5) + end + + else + + local vec = { + x = lp.x - s.x, + z = lp.z - s.z + } + + yaw = (atan(vec.z / vec.x) + pi / 2) - self.rotate + + if lp.x > s.x then yaw = yaw + pi end + end + + yaw = set_yaw(self, yaw, 8) + + -- otherwise randomly turn + elseif random(1, 100) <= 30 then + + yaw = yaw + random(-0.5, 0.5) + + yaw = set_yaw(self, yaw, 8) + end + + -- stand for great fall in front + local temp_is_cliff = is_at_cliff(self) + + if self.facing_fence == true + or temp_is_cliff + or random(1, 100) <= 30 then + + set_velocity(self, 0) + self.state = "stand" + set_animation(self, "stand") + else + set_velocity(self, self.walk_velocity) + + if flight_check(self) + and self.animation + and self.animation.fly_start + and self.animation.fly_end then + set_animation(self, "fly") + else + set_animation(self, "walk") + end + end + + -- runaway when punched + elseif self.state == "runaway" then + + self.runaway_timer = self.runaway_timer + 1 + + -- stop after 5 seconds or when at cliff + if self.runaway_timer > 5 + or is_at_cliff(self) then + self.runaway_timer = 0 + set_velocity(self, 0) + self.state = "stand" + set_animation(self, "stand") + else + set_velocity(self, self.run_velocity) + set_animation(self, "walk") + end + + -- attack routines (explode, dogfight, shoot, dogshoot) + elseif self.state == "attack" then + + -- calculate distance from mob and enemy + local s = self.object:get_pos() + local p = self.attack:get_pos() or s + local dist = get_distance(p, s) + + -- stop attacking if player invisible or out of range + if dist > self.view_range + or not self.attack + or not self.attack:get_pos() + or self.attack:get_hp() <= 0 + or (self.attack:is_player() and mobs.invis[ self.attack:get_player_name() ]) then + +-- print(" ** stop attacking **", dist, self.view_range) + self.state = "stand" + set_velocity(self, 0) + set_animation(self, "stand") + self.attack = nil + self.v_start = false + self.timer = 0 + self.blinktimer = 0 + self.path.way = nil + + return + end + + if self.attack_type == "explode" then + + local vec = { + x = p.x - s.x, + z = p.z - s.z + } + + yaw = (atan(vec.z / vec.x) + pi / 2) - self.rotate + + if p.x > s.x then yaw = yaw + pi end + + yaw = set_yaw(self, yaw) + + local node_break_radius = self.explosion_radius or 1 + local entity_damage_radius = self.explosion_damage_radius + or (node_break_radius * 2) + + -- start timer when in reach and line of sight + if not self.v_start + and dist <= self.reach + and line_of_sight(self, s, p, 2) then + + self.v_start = true + self.timer = 0 + self.blinktimer = 0 + mob_sound(self, self.sounds.fuse) +-- print ("=== explosion timer started", self.explosion_timer) + + -- stop timer if out of reach or direct line of sight + elseif self.allow_fuse_reset + and self.v_start + and (dist > self.reach + or not line_of_sight(self, s, p, 2)) then + self.v_start = false + self.timer = 0 + self.blinktimer = 0 + self.blinkstatus = false + self.object:settexturemod("") + end + + -- walk right up to player unless the timer is active + if self.v_start and (self.stop_to_explode or dist < 1.5) then + set_velocity(self, 0) + else + set_velocity(self, self.run_velocity) + end + + if self.animation and self.animation.run_start then + set_animation(self, "run") + else + set_animation(self, "walk") + end + + if self.v_start then + + self.timer = self.timer + dtime + self.blinktimer = (self.blinktimer or 0) + dtime + + if self.blinktimer > 0.2 then + + self.blinktimer = 0 + + if self.blinkstatus then + self.object:settexturemod("") + else + self.object:settexturemod("^[brighten") + end + + self.blinkstatus = not self.blinkstatus + end + +-- print ("=== explosion timer", self.timer) + + if self.timer > self.explosion_timer then + + local pos = self.object:get_pos() + + -- dont damage anything if area protected or next to water + if minetest.find_node_near(pos, 1, {"group:water"}) + or minetest.is_protected(pos, "") then + + node_break_radius = 1 + end + + self.object:remove() + + if minetest.get_modpath("tnt") and tnt and tnt.boom + and not minetest.is_protected(pos, "") then + + tnt.boom(pos, { + radius = node_break_radius, + damage_radius = entity_damage_radius, + sound = self.sounds.explode, + }) + else + + minetest.sound_play(self.sounds.explode, { + pos = pos, + gain = 1.0, + max_hear_distance = self.sounds.distance or 32 + }) + + entity_physics(pos, entity_damage_radius) + effect(pos, 32, "tnt_smoke.png", nil, nil, node_break_radius, 1, 0) + end + + return + end + end + + elseif self.attack_type == "dogfight" + or (self.attack_type == "dogshoot" and dogswitch(self, dtime) == 2) + or (self.attack_type == "dogshoot" and dist <= self.reach and dogswitch(self) == 0) then + + if self.fly + and dist > self.reach then + + local p1 = s + local me_y = floor(p1.y) + local p2 = p + local p_y = floor(p2.y + 1) + local v = self.object:getvelocity() + + if flight_check(self, s) then + + if me_y < p_y then + + self.object:setvelocity({ + x = v.x, + y = 1 * self.walk_velocity, + z = v.z + }) + + elseif me_y > p_y then + + self.object:setvelocity({ + x = v.x, + y = -1 * self.walk_velocity, + z = v.z + }) + end + else + if me_y < p_y then + + self.object:setvelocity({ + x = v.x, + y = 0.01, + z = v.z + }) + + elseif me_y > p_y then + + self.object:setvelocity({ + x = v.x, + y = -0.01, + z = v.z + }) + end + end + + end + + -- rnd: new movement direction + if self.path.following + and self.path.way + and self.attack_type ~= "dogshoot" then + + -- no paths longer than 50 + if #self.path.way > 50 + or dist < self.reach then + self.path.following = false + return + end + + local p1 = self.path.way[1] + + if not p1 then + self.path.following = false + return + end + + if abs(p1.x-s.x) + abs(p1.z - s.z) < 0.6 then + -- reached waypoint, remove it from queue + table.remove(self.path.way, 1) + end + + -- set new temporary target + p = {x = p1.x, y = p1.y, z = p1.z} + end + + local vec = { + x = p.x - s.x, + z = p.z - s.z + } + + yaw = (atan(vec.z / vec.x) + pi / 2) - self.rotate + + if p.x > s.x then yaw = yaw + pi end + + yaw = set_yaw(self, yaw) + + -- move towards enemy if beyond mob reach + if dist > self.reach then + + -- path finding by rnd + if self.pathfinding -- only if mob has pathfinding enabled + and enable_pathfinding then + + smart_mobs(self, s, p, dist, dtime) + end + + if is_at_cliff(self) then + + set_velocity(self, 0) + set_animation(self, "stand") + else + + if self.path.stuck then + set_velocity(self, self.walk_velocity) + else + set_velocity(self, self.run_velocity) + end + + if self.animation and self.animation.run_start then + set_animation(self, "run") + else + set_animation(self, "walk") + end + end + + else -- rnd: if inside reach range + + self.path.stuck = false + self.path.stuck_timer = 0 + self.path.following = false -- not stuck anymore + + set_velocity(self, 0) + + if not self.custom_attack then + + if self.timer > 1 then + + self.timer = 0 + + if self.double_melee_attack + and random(1, 2) == 1 then + set_animation(self, "punch2") + else + set_animation(self, "punch") + end + + local p2 = p + local s2 = s + + p2.y = p2.y + .5 + s2.y = s2.y + .5 + + if line_of_sight(self, p2, s2) == true then + + -- play attack sound + mob_sound(self, self.sounds.attack) + + -- punch player (or what player is attached to) + local attached = self.attack:get_attach() + if attached then + self.attack = attached + end + self.attack:punch(self.object, 1.0, { + full_punch_interval = 1.0, + damage_groups = {fleshy = self.damage} + }, nil) + end + end + else -- call custom attack every second + if self.custom_attack + and self.timer > 1 then + + self.timer = 0 + + self.custom_attack(self, p) + end + end + end + + elseif self.attack_type == "shoot" + or (self.attack_type == "dogshoot" and dogswitch(self, dtime) == 1) + or (self.attack_type == "dogshoot" and dist > self.reach and dogswitch(self) == 0) then + + p.y = p.y - .5 + s.y = s.y + .5 + + local dist = get_distance(p, s) + local vec = { + x = p.x - s.x, + y = p.y - s.y, + z = p.z - s.z + } + + yaw = (atan(vec.z / vec.x) + pi / 2) - self.rotate + + if p.x > s.x then yaw = yaw + pi end + + yaw = set_yaw(self, yaw) + + set_velocity(self, 0) + + if self.shoot_interval + and self.timer > self.shoot_interval + and random(1, 100) <= 60 then + + self.timer = 0 + set_animation(self, "shoot") + + -- play shoot attack sound + mob_sound(self, self.sounds.shoot_attack) + + local p = self.object:get_pos() + + p.y = p.y + (self.collisionbox[2] + self.collisionbox[5]) / 2 + + if minetest.registered_entities[self.arrow] then + + local obj = minetest.add_entity(p, self.arrow) + local ent = obj:get_luaentity() + local amount = (vec.x * vec.x + vec.y * vec.y + vec.z * vec.z) ^ 0.5 + local v = ent.velocity or 1 -- or set to default + + ent.switch = 1 + ent.owner_id = tostring(self.object) -- add unique owner id to arrow + + -- offset makes shoot aim accurate + vec.y = vec.y + self.shoot_offset + vec.x = vec.x * (v / amount) + vec.y = vec.y * (v / amount) + vec.z = vec.z * (v / amount) + + obj:setvelocity(vec) + end + end + end + end +end + + +-- falling and fall damage +local falling = function(self, pos) + + if self.fly then + return + end + + -- floating in water (or falling) + local v = self.object:getvelocity() + + if v.y > 0 then + + -- apply gravity when moving up + self.object:setacceleration({ + x = 0, + y = -10, + z = 0 + }) + + elseif v.y <= 0 and v.y > self.fall_speed then + + -- fall downwards at set speed + self.object:setacceleration({ + x = 0, + y = self.fall_speed, + z = 0 + }) + else + -- stop accelerating once max fall speed hit + self.object:setacceleration({x = 0, y = 0, z = 0}) + end + + -- in water then float up + if minetest.registered_nodes[self.standing_in].groups.water then + + if self.floats == 1 then + + self.object:setacceleration({ + x = 0, + y = -self.fall_speed / (max(1, v.y) ^ 8), -- 8 was 2 + z = 0 + }) + end + else + + -- fall damage onto solid ground + if self.fall_damage == 1 + and self.object:getvelocity().y == 0 then + + local d = (self.old_y or 0) - self.object:get_pos().y + + if d > 5 then + + self.health = self.health - floor(d - 5) + + effect(pos, 5, "tnt_smoke.png", 1, 2, 2, nil) + + if check_for_death(self, "fall", {type = "fall"}) then + return + end + end + + self.old_y = self.object:get_pos().y + end + end +end + + +-- deal damage and effects when mob punched +local mob_punch = function(self, hitter, tflp, tool_capabilities, dir) + + -- custom punch function + if self.do_punch then + + -- when false skip going any further + if self.do_punch(self, hitter, tflp, tool_capabilities, dir) == false then + return + end + end + + -- mob health check +-- if self.health <= 0 then +-- return +-- end + + -- error checking when mod profiling is enabled + if not tool_capabilities then + minetest.log("warning", "[mobs] Mod profiling enabled, damage not enabled") + return + end + + -- is mob protected? + if self.protected and hitter:is_player() + and minetest.is_protected(self.object:get_pos(), hitter:get_player_name()) then + minetest.chat_send_player(hitter:get_player_name(), S("Mob has been protected!")) + return + end + + + -- weapon wear + local weapon = hitter:get_wielded_item() + local punch_interval = 1.4 + + -- calculate mob damage + local damage = 0 + local armor = self.object:get_armor_groups() or {} + local tmp + + -- quick error check incase it ends up 0 (serialize.h check test) + if tflp == 0 then + tflp = 0.2 + end + + if use_cmi then + damage = cmi.calculate_damage(self.object, hitter, tflp, tool_capabilities, dir) + else + + for group,_ in pairs( (tool_capabilities.damage_groups or {}) ) do + + tmp = tflp / (tool_capabilities.full_punch_interval or 1.4) + + if tmp < 0 then + tmp = 0.0 + elseif tmp > 1 then + tmp = 1.0 + end + + damage = damage + (tool_capabilities.damage_groups[group] or 0) + * tmp * ((armor[group] or 0) / 100.0) + end + end + + -- check for tool immunity or special damage + for n = 1, #self.immune_to do + + if self.immune_to[n][1] == weapon:get_name() then + + damage = self.immune_to[n][2] or 0 + break + + -- if "all" then no tool does damage unless it's specified in list + elseif self.immune_to[n][1] == "all" then + damage = self.immune_to[n][2] or 0 + end + end + + -- healing + if damage <= -1 then + self.health = self.health - floor(damage) + return + end + +-- print ("Mob Damage is", damage) + + if use_cmi then + + local cancel = cmi.notify_punch(self.object, hitter, tflp, tool_capabilities, dir, damage) + + if cancel then return end + end + + -- add weapon wear + if tool_capabilities then + punch_interval = tool_capabilities.full_punch_interval or 1.4 + end + + if weapon:get_definition() + and weapon:get_definition().tool_capabilities then + + weapon:add_wear(floor((punch_interval / 75) * 9000)) + hitter:set_wielded_item(weapon) + end + + -- only play hit sound and show blood effects if damage is 1 or over + if damage >= 1 then + + -- weapon sounds + if weapon:get_definition().sounds ~= nil then + + local s = random(0, #weapon:get_definition().sounds) + + minetest.sound_play(weapon:get_definition().sounds[s], { + object = self.object, --hitter, + max_hear_distance = 8 + }) + else + minetest.sound_play("default_punch", { + object = self.object, --hitter, + max_hear_distance = 5 + }) + end + + -- blood_particles + if self.blood_amount > 0 + and not disable_blood then + + local pos = self.object:get_pos() + + pos.y = pos.y + (-self.collisionbox[2] + self.collisionbox[5]) * .5 + + -- do we have a single blood texture or multiple? + if type(self.blood_texture) == "table" then + + local blood = self.blood_texture[random(1, #self.blood_texture)] + + effect(pos, self.blood_amount, blood, nil, nil, 1, nil) + else + effect(pos, self.blood_amount, self.blood_texture, nil, nil, 1, nil) + end + end + + -- do damage + self.health = self.health - floor(damage) + + -- exit here if dead, special item check + if weapon:get_name() == "mobs:pick_lava" then + if check_for_death(self, "lava", {type = "punch", + puncher = hitter}) then + return + end + else + if check_for_death(self, "hit", {type = "punch", + puncher = hitter}) then + return + end + end + + --[[ add healthy afterglow when hit (can cause hit lag with larger textures) + minetest.after(0.1, function() + + if not self.object:get_luaentity() then return end + + self.object:settexturemod("^[colorize:#c9900070") + + core.after(0.3, function() + self.object:settexturemod("") + end) + end) ]] + + -- knock back effect (only on full punch) + if self.knock_back + and tflp >= punch_interval then + + local v = self.object:getvelocity() + local r = 1.4 - min(punch_interval, 1.4) + local kb = r * 5 + local up = 2 + + -- if already in air then dont go up anymore when hit + if v.y > 0 + or self.fly then + up = 0 + end + + -- direction error check + dir = dir or {x = 0, y = 0, z = 0} + + -- check if tool already has specific knockback value + if tool_capabilities.damage_groups["knockback"] then + kb = tool_capabilities.damage_groups["knockback"] + else + kb = kb * 1.5 + end + + self.object:setvelocity({ + x = dir.x * kb, + y = up, + z = dir.z * kb + }) + + self.pause_timer = 0.25 + end + end -- END if damage + + -- if skittish then run away + if self.runaway == true then + + local lp = hitter:get_pos() + local s = self.object:get_pos() + local vec = { + x = lp.x - s.x, + y = lp.y - s.y, + z = lp.z - s.z + } + + local yaw = (atan(vec.z / vec.x) + 3 * pi / 2) - self.rotate + + if lp.x > s.x then + yaw = yaw + pi + end + + yaw = set_yaw(self, yaw, 6) + self.state = "runaway" + self.runaway_timer = 0 + self.following = nil + end + + local name = hitter:get_player_name() or "" + + -- attack puncher and call other mobs for help + if self.passive == false + and self.state ~= "flop" + and self.child == false + and hitter:get_player_name() ~= self.owner + and not mobs.invis[ name ] then + + -- attack whoever punched mob + self.state = "" + do_attack(self, hitter) + + -- alert others to the attack + local objs = minetest.get_objects_inside_radius(hitter:get_pos(), self.view_range) + local obj = nil + + for n = 1, #objs do + + obj = objs[n]:get_luaentity() + + if obj then + + -- only alert members of same mob + if obj.group_attack == true + and obj.state ~= "attack" + and obj.owner ~= name + and obj.name == self.name then + do_attack(obj, hitter) + end + + -- have owned mobs attack player threat + if obj.owner == name and obj.owner_loyal then + do_attack(obj, self.object) + end + end + end + end +end + + +-- get entity staticdata +local mob_staticdata = function(self) + + -- remove mob when out of range unless tamed + if remove_far + and self.remove_ok + and self.type ~= "npc" + and self.state ~= "attack" + and not self.tamed + and self.lifetimer < 20000 then + + --print ("REMOVED " .. self.name) + + self.object:remove() + + return ""-- nil + end + + self.remove_ok = true + self.attack = nil + self.following = nil + self.state = "stand" + + -- used to rotate older mobs + if self.drawtype + and self.drawtype == "side" then + self.rotate = math.rad(90) + end + + if use_cmi then + self.serialized_cmi_components = cmi.serialize_components(self._cmi_components) + end + + local tmp = {} + + for _,stat in pairs(self) do + + local t = type(stat) + + if t ~= "function" + and t ~= "nil" + and t ~= "userdata" + and _ ~= "_cmi_components" then + tmp[_] = self[_] + end + end + + --print('===== '..self.name..'\n'.. dump(tmp)..'\n=====\n') + return minetest.serialize(tmp) +end + + +-- activate mob and reload settings +local mob_activate = function(self, staticdata, def, dtime) + + -- remove monsters in peaceful mode + if self.type == "monster" + and peaceful_only then + + self.object:remove() + + return + end + + -- load entity variables + local tmp = minetest.deserialize(staticdata) + + if tmp then + for _,stat in pairs(tmp) do + self[_] = stat + end + end + + -- select random texture, set model and size + if not self.base_texture then + + -- compatiblity with old simple mobs textures + if type(def.textures[1]) == "string" then + def.textures = {def.textures} + end + + self.base_texture = def.textures[random(1, #def.textures)] + self.base_mesh = def.mesh + self.base_size = self.visual_size + self.base_colbox = self.collisionbox + self.base_selbox = self.selectionbox + end + + -- for current mobs that dont have this set + if not self.base_selbox then + self.base_selbox = self.selectionbox or self.base_colbox + end + + -- set texture, model and size + local textures = self.base_texture + local mesh = self.base_mesh + local vis_size = self.base_size + local colbox = self.base_colbox + local selbox = self.base_selbox + + -- specific texture if gotten + if self.gotten == true + and def.gotten_texture then + textures = def.gotten_texture + end + + -- specific mesh if gotten + if self.gotten == true + and def.gotten_mesh then + mesh = def.gotten_mesh + end + + -- set child objects to half size + if self.child == true then + + vis_size = { + x = self.base_size.x * .5, + y = self.base_size.y * .5, + } + + if def.child_texture then + textures = def.child_texture[1] + end + + colbox = { + self.base_colbox[1] * .5, + self.base_colbox[2] * .5, + self.base_colbox[3] * .5, + self.base_colbox[4] * .5, + self.base_colbox[5] * .5, + self.base_colbox[6] * .5 + } + selbox = { + self.base_selbox[1] * .5, + self.base_selbox[2] * .5, + self.base_selbox[3] * .5, + self.base_selbox[4] * .5, + self.base_selbox[5] * .5, + self.base_selbox[6] * .5 + } + end + + if self.health == 0 then + self.health = random (self.hp_min, self.hp_max) + end + + -- pathfinding init + self.path = {} + self.path.way = {} -- path to follow, table of positions + self.path.lastpos = {x = 0, y = 0, z = 0} + self.path.stuck = false + self.path.following = false -- currently following path? + self.path.stuck_timer = 0 -- if stuck for too long search for path + + -- mob defaults + self.object:set_armor_groups({immortal = 1, fleshy = self.armor}) + self.old_y = self.object:get_pos().y + self.old_health = self.health + self.sounds.distance = self.sounds.distance or 10 + self.textures = textures + self.mesh = mesh + self.collisionbox = colbox + self.selectionbox = selbox + self.visual_size = vis_size + self.standing_in = "air" + + -- check existing nametag + if not self.nametag then + self.nametag = def.nametag + end + + -- set anything changed above + self.object:set_properties(self) + set_yaw(self, (random(0, 360) - 180) / 180 * pi, 6) + update_tag(self) + set_animation(self, "stand") + + -- run on_spawn function if found + if self.on_spawn and not self.on_spawn_run then + if self.on_spawn(self) then + self.on_spawn_run = true -- if true, set flag to run once only + end + end + + -- run after_activate + if def.after_activate then + def.after_activate(self, staticdata, def, dtime) + end + + if use_cmi then + self._cmi_components = cmi.activate_components(self.serialized_cmi_components) + cmi.notify_activate(self.object, dtime) + end +end + + +-- main mob function +local mob_step = function(self, dtime) + + if use_cmi then + cmi.notify_step(self.object, dtime) + end + + local pos = self.object:get_pos() + local yaw = 0 + + -- when lifetimer expires remove mob (except npc and tamed) + if self.type ~= "npc" + and not self.tamed + and self.state ~= "attack" + and remove_far ~= true + and self.lifetimer < 20000 then + + self.lifetimer = self.lifetimer - dtime + + if self.lifetimer <= 0 then + + -- only despawn away from player + local objs = minetest.get_objects_inside_radius(pos, 15) + + for n = 1, #objs do + + if objs[n]:is_player() then + + self.lifetimer = 20 + + return + end + end + +-- minetest.log("action", +-- S("lifetimer expired, removed @1", self.name)) + + effect(pos, 15, "tnt_smoke.png", 2, 4, 2, 0) + + self.object:remove() + + return + end + end + + -- get node at foot level every quarter second + self.node_timer = (self.node_timer or 0) + dtime + + if self.node_timer > 0.25 then + + self.node_timer = 0 + + local y_level = self.collisionbox[2] + + if self.child then + y_level = self.collisionbox[2] * 0.5 + end + + -- what is mob standing in? + self.standing_in = node_ok({ + x = pos.x, y = pos.y + y_level + 0.25, z = pos.z}, "air").name +-- print ("standing in " .. self.standing_in) + end + + -- check if falling, flying, floating + falling(self, pos) + + -- smooth rotation by ThomasMonroe314 + + if self.delay and self.delay > 0 then + + local yaw = self.object:get_yaw() + + if self.delay == 1 then + yaw = self.target_yaw + else + local dif = abs(yaw - self.target_yaw) + + if yaw > self.target_yaw then + + if dif > pi then + dif = 2 * pi - dif -- need to add + yaw = yaw + dif / self.delay + else + yaw = yaw - dif / self.delay -- need to subtract + end + + elseif yaw < self.target_yaw then + + if dif > pi then + dif = 2 * pi - dif + yaw = yaw - dif / self.delay -- need to subtract + else + yaw = yaw + dif / self.delay -- need to add + end + end + + if yaw > (pi * 2) then yaw = yaw - (pi * 2) end + if yaw < 0 then yaw = yaw + (pi * 2) end + end + + self.delay = self.delay - 1 + self.object:set_yaw(yaw) + end + + -- end rotation + + -- knockback timer + if self.pause_timer > 0 then + + self.pause_timer = self.pause_timer - dtime + + return + end + + -- run custom function (defined in mob lua file) + if self.do_custom then + + -- when false skip going any further + if self.do_custom(self, dtime) == false then + return + end + end + + -- attack timer + self.timer = self.timer + dtime + + if self.state ~= "attack" then + + if self.timer < 1 then + return + end + + self.timer = 0 + end + + -- never go over 100 + if self.timer > 100 then + self.timer = 1 + end + + -- mob plays random sound at times + if random(1, 100) == 1 then + mob_sound(self, self.sounds.random) + end + + -- environmental damage timer (every 1 second) + self.env_damage_timer = self.env_damage_timer + dtime + + if (self.state == "attack" and self.env_damage_timer > 1) + or self.state ~= "attack" then + + self.env_damage_timer = 0 + + -- check for environmental damage (water, fire, lava etc.) + do_env_damage(self) + + -- node replace check (cow eats grass etc.) + replace(self, pos) + end + + monster_attack(self) + + npc_attack(self) + + breed(self) + + follow_flop(self) + + do_states(self, dtime) + + do_jump(self) + + runaway_from(self) + +end + + +-- default function when mobs are blown up with TNT +local do_tnt = function(obj, damage) + + --print ("----- Damage", damage) + + obj.object:punch(obj.object, 1.0, { + full_punch_interval = 1.0, + damage_groups = {fleshy = damage}, + }, nil) + + return false, true, {} +end + + +mobs.spawning_mobs = {} + +-- register mob entity +function mobs:register_mob(name, def) + + mobs.spawning_mobs[name] = true + +minetest.register_entity(name, { + + stepheight = def.stepheight or 1.1, -- was 0.6 + name = name, + type = def.type, + attack_type = def.attack_type, + fly = def.fly, + fly_in = def.fly_in or "air", + owner = def.owner or "", + order = def.order or "", + on_die = def.on_die, + do_custom = def.do_custom, + jump_height = def.jump_height or 4, -- was 6 + drawtype = def.drawtype, -- DEPRECATED, use rotate instead + rotate = math.rad(def.rotate or 0), -- 0=front, 90=side, 180=back, 270=side2 + lifetimer = def.lifetimer or 180, -- 3 minutes + hp_min = max(1, (def.hp_min or 5) * difficulty), + hp_max = max(1, (def.hp_max or 10) * difficulty), + physical = true, + collisionbox = def.collisionbox or {-0.25, -0.25, -0.25, 0.25, 0.25, 0.25}, + selectionbox = def.selectionbox or def.collisionbox, + visual = def.visual, + visual_size = def.visual_size or {x = 1, y = 1}, + mesh = def.mesh, + makes_footstep_sound = def.makes_footstep_sound or false, + view_range = def.view_range or 5, + walk_velocity = def.walk_velocity or 1, + run_velocity = def.run_velocity or 2, + damage = max(0, (def.damage or 0) * difficulty), + light_damage = def.light_damage or 0, + water_damage = def.water_damage or 0, + lava_damage = def.lava_damage or 0, + suffocation = def.suffocation or 2, + fall_damage = def.fall_damage or 1, + fall_speed = def.fall_speed or -10, -- must be lower than -2 (default: -10) + drops = def.drops or {}, + armor = def.armor or 100, + on_rightclick = def.on_rightclick, + arrow = def.arrow, + shoot_interval = def.shoot_interval, + sounds = def.sounds or {}, + animation = def.animation, + follow = def.follow, + jump = def.jump ~= false, + walk_chance = def.walk_chance or 50, + attacks_monsters = def.attacks_monsters or false, + group_attack = def.group_attack or false, + passive = def.passive or false, + knock_back = def.knock_back ~= false, + blood_amount = def.blood_amount or 5, + blood_texture = def.blood_texture or "mobs_blood.png", + shoot_offset = def.shoot_offset or 0, + floats = def.floats or 1, -- floats in water by default + replace_rate = def.replace_rate, + replace_what = def.replace_what, + replace_with = def.replace_with, + replace_offset = def.replace_offset or 0, + on_replace = def.on_replace, + timer = 0, + env_damage_timer = 0, -- only used when state = "attack" + tamed = false, + pause_timer = 0, + horny = false, + hornytimer = 0, + child = false, + gotten = false, + health = 0, + reach = def.reach or 3, + htimer = 0, + texture_list = def.textures, + child_texture = def.child_texture, + docile_by_day = def.docile_by_day or false, + time_of_day = 0.5, + fear_height = def.fear_height or 0, + runaway = def.runaway, + runaway_timer = 0, + pathfinding = def.pathfinding, + immune_to = def.immune_to or {}, + explosion_radius = def.explosion_radius, + explosion_damage_radius = def.explosion_damage_radius, + explosion_timer = def.explosion_timer or 3, + allow_fuse_reset = def.allow_fuse_reset ~= false, + stop_to_explode = def.stop_to_explode ~= false, + custom_attack = def.custom_attack, + double_melee_attack = def.double_melee_attack, + dogshoot_switch = def.dogshoot_switch, + dogshoot_count = 0, + dogshoot_count_max = def.dogshoot_count_max or 5, + dogshoot_count2_max = def.dogshoot_count2_max or (def.dogshoot_count_max or 5), + attack_animals = def.attack_animals or false, + specific_attack = def.specific_attack, + runaway_from = def.runaway_from, + owner_loyal = def.owner_loyal, + facing_fence = false, + _cmi_is_mob = true, + + on_spawn = def.on_spawn, + + on_blast = def.on_blast or do_tnt, + + on_step = mob_step, + + do_punch = def.do_punch, + + on_punch = mob_punch, + + on_breed = def.on_breed, + + on_grown = def.on_grown, + + on_activate = function(self, staticdata, dtime) + return mob_activate(self, staticdata, def, dtime) + end, + + get_staticdata = function(self) + return mob_staticdata(self) + end, + +}) + +end -- END mobs:register_mob function + + +-- count how many mobs of one type are inside an area +local count_mobs = function(pos, type) + + local num_type = 0 + local num_total = 0 + local objs = minetest.get_objects_inside_radius(pos, aoc_range) + + for n = 1, #objs do + + if not objs[n]:is_player() then + + local obj = objs[n]:get_luaentity() + + -- count mob type and add to total also + if obj and obj.name and obj.name == type then + + num_type = num_type + 1 + num_total = num_total + 1 + + -- add to total mobs + elseif obj and obj.name and obj.health ~= nil then + + num_total = num_total + 1 + end + end + end + + return num_type, num_total +end + + +-- global functions + +function mobs:spawn_abm_check(pos, node, name) + -- global function to add additional spawn checks + -- return true to stop spawning mob +end + + +local function player_near(pos, radius) + + local objs = minetest.get_objects_inside_radius(pos, radius) + + for n = 1, #objs do + + if objs[n]:is_player() then + return true + end + end + + return false +end + + +local function daycheck(day_toggle) + + if day_toggle ~= nil then + + local tod = (minetest.get_timeofday() or 0) * 24000 + + if tod > 4500 and tod < 19500 then + + if day_toggle == false then + return false -- mob requires night + end + else + if day_toggle == true then + return false -- mob requires day + end + end + end + + return true -- mob doesn't care +end + + +local function is_protected(pos) + + if not spawn_protected + and minetest.is_protected(pos, "") then + return true -- protected area + end + + return false -- mobs can spawn +end + + +local interval = 30 +local timer = 0 +local spawning_mobs = {} + +minetest.register_globalstep(function(dtime) + + if not mobs_spawn then + return + end + + timer = timer + dtime + if timer < interval then + return + end + timer = 0 + + for _,player in ipairs(minetest.get_connected_players()) do + + if player:get_hp() > 0 then + + local pos = player:getpos() + local area, pos2, light, obj, base + + for _,mob in ipairs(spawning_mobs) do + + area = nil + + if minetest.registered_entities[mob.name] + and random(1, mob.chance) == 1 then + + area = minetest.find_nodes_in_area_under_air( + {x = pos.x - 20, y = pos.y - 20, z = pos.z - 20}, + {x = pos.x + 20, y = pos.y + 20, z = pos.z + 20}, + mob.nodes) + end + + if area and #area > 0 then + + pos2 = area[math.random(1, #area)] + base = minetest.registered_entities[mob.name].collisionbox[5] + pos2.y = pos2.y + 1 + base + + light = minetest.get_node_light(pos2) or -1 + + if pos2.y >= mob.min_height + and pos2.y <= mob.max_height + and light >= mob.min_light + and light <= mob.max_light + and daycheck(mob.day_toggle) + and minetest.find_node_near(pos2, 1, mob.neighbors) + and count_mobs(pos2, mob.name) < mob.total + and not player_near(pos2, 10) + and not is_protected(pos2) then + +print ("--- Spawned ", mob.name, minetest.pos_to_string(pos2), mob.chance) + + obj = minetest.add_entity(pos2, mob.name) + + if mob.on_spawn then + mob.on_spawn(obj:get_luaentity(), pos2) + end + else +print ("--- Cannot spawn ", mob.name) + end + end + end + end + end +end) + + +function mobs:spawn_specific(name, nodes, neighbors, min_light, max_light, + interval, chance, aoc, min_height, max_height, day_toggle, on_spawn) + + -- chance/spawn number override in minetest.conf for registered mob + local numbers = minetest.settings:get(name) + + if numbers then + numbers = numbers:split(",") + chance = tonumber(numbers[1]) or chance + aoc = tonumber(numbers[2]) or aoc + + if chance == 0 then + minetest.log("warning", string.format("[mobs] %s has spawning disabled", name)) + return + end + + minetest.log("action", + string.format("[mobs] Chance setting for %s changed to %s (total: %s)", name, chance, aoc)) + end + + -- change old chance values to be more useable by new spawn routine + if chance > 999 then + chance = max(1, chance / 1000) + end + + -- adjust for mob chance multiplier + chance = max(1, chance * mob_chance_multiplier) + + -- add mob to table for spawning with routine above + table.insert(spawning_mobs, { + name = name, + nodes = nodes, + neighbors = neighbors, + chance = chance, + min_height = min_height, + max_height = max_height, + min_light = min_light, + max_light = max_light, + total = aoc, + day_toggle = day_toggle, + on_spawn = on_spawn, + }) +end + + +-- compatibility with older mob registration +function mobs:register_spawn(name, nodes, max_light, min_light, chance, active_object_count, max_height, day_toggle) + + mobs:spawn_specific(name, nodes, {"air"}, min_light, max_light, 30, + chance, active_object_count, -31000, max_height, day_toggle) +end + + +-- MarkBu's spawn function +function mobs:spawn(def) + + mobs:spawn_specific( + def.name, + def.nodes or {"group:soil", "group:stone"}, + def.neighbors or {"air"}, + def.min_light or 0, + def.max_light or 15, + def.interval or 30, + def.chance or 5000, + def.active_object_count or 1, + def.min_height or -31000, + def.max_height or 31000, + def.day_toggle, + def.on_spawn + ) +end + + +-- register arrow for shoot attack +function mobs:register_arrow(name, def) + + if not name or not def then return end -- errorcheck + + minetest.register_entity(name, { + + physical = false, + visual = def.visual, + visual_size = def.visual_size, + textures = def.textures, + velocity = def.velocity, + hit_player = def.hit_player, + hit_node = def.hit_node, + hit_mob = def.hit_mob, + drop = def.drop or false, -- drops arrow as registered item when true + collisionbox = {0, 0, 0, 0, 0, 0}, -- remove box around arrows + timer = 0, + switch = 0, + owner_id = def.owner_id, + rotate = def.rotate, + automatic_face_movement_dir = def.rotate + and (def.rotate - (pi / 180)) or false, + + on_activate = def.on_activate, + + on_step = def.on_step or function(self, dtime) + + self.timer = self.timer + 1 + + local pos = self.object:get_pos() + + if self.switch == 0 + or self.timer > 150 + or not within_limits(pos, 0) then + + self.object:remove() ; -- print ("removed arrow") + + return + end + + -- does arrow have a tail (fireball) + if def.tail + and def.tail == 1 + and def.tail_texture then + + minetest.add_particle({ + pos = pos, + velocity = {x = 0, y = 0, z = 0}, + acceleration = {x = 0, y = 0, z = 0}, + expirationtime = def.expire or 0.25, + collisiondetection = false, + texture = def.tail_texture, + size = def.tail_size or 5, + glow = def.glow or 0, + }) + end + + if self.hit_node then + + local node = node_ok(pos).name + + if minetest.registered_nodes[node].walkable then + + self.hit_node(self, pos, node) + + if self.drop == true then + + pos.y = pos.y + 1 + + self.lastpos = (self.lastpos or pos) + + minetest.add_item(self.lastpos, self.object:get_luaentity().name) + end + + self.object:remove() ; -- print ("hit node") + + return + end + end + + if self.hit_player or self.hit_mob then + + for _,player in pairs(minetest.get_objects_inside_radius(pos, 1.0)) do + + if self.hit_player + and player:is_player() then + + self.hit_player(self, player) + self.object:remove() ; -- print ("hit player") + return + end + + local entity = player:get_luaentity() + + if entity + and self.hit_mob + and entity._cmi_is_mob == true + and tostring(player) ~= self.owner_id + and entity.name ~= self.object:get_luaentity().name then + + self.hit_mob(self, player) + + self.object:remove() ; --print ("hit mob") + + return + end + end + end + + self.lastpos = pos + end + }) +end + + +-- compatibility function +function mobs:explosion(pos, radius) + local self = {sounds = {}} + self.sounds.explode = "tnt_explode" + mobs:boom(self, pos, radius) +end + + +-- no damage to nodes explosion +function mobs:safe_boom(self, pos, radius) + + minetest.sound_play(self.sounds and self.sounds.explode or "tnt_explode", { + pos = pos, + gain = 1.0, + max_hear_distance = self.sounds and self.sounds.distance or 32 + }) + + entity_physics(pos, radius) + effect(pos, 32, "tnt_smoke.png", radius * 3, radius * 5, radius, 1, 0) +end + + +-- make explosion with protection and tnt mod check +function mobs:boom(self, pos, radius) + + if mobs_griefing + and minetest.get_modpath("tnt") and tnt and tnt.boom + and not minetest.is_protected(pos, "") then + + tnt.boom(pos, { + radius = radius, + damage_radius = radius, + sound = self.sounds and self.sounds.explode, + explode_center = true, + }) + else + mobs:safe_boom(self, pos, radius) + end +end + + +-- Register spawn eggs + +-- Note: This also introduces the “spawn_egg” group: +-- * spawn_egg=1: Spawn egg (generic mob, no metadata) +-- * spawn_egg=2: Spawn egg (captured/tamed mob, metadata) +function mobs:register_egg(mob, desc, background, addegg, no_creative) + + local grp = {spawn_egg = 1} + + -- do NOT add this egg to creative inventory (e.g. dungeon master) + if creative and no_creative == true then + grp.not_in_creative_inventory = 1 + end + + local invimg = background + + if addegg == 1 then + invimg = "mobs_chicken_egg.png^(" .. invimg .. + "^[mask:mobs_chicken_egg_overlay.png)" + end + + -- register new spawn egg containing mob information + minetest.register_craftitem(mob .. "_set", { + + description = S("@1 (Tamed)", desc), + inventory_image = invimg, + groups = {spawn_egg = 2, not_in_creative_inventory = 1}, + stack_max = 1, + + on_place = function(itemstack, placer, pointed_thing) + + local pos = pointed_thing.above + + -- am I clicking on something with existing on_rightclick function? + local under = minetest.get_node(pointed_thing.under) + local def = minetest.registered_nodes[under.name] + if def and def.on_rightclick then + return def.on_rightclick(pointed_thing.under, under, placer, itemstack) + end + + if pos + and within_limits(pos, 0) + and not minetest.is_protected(pos, placer:get_player_name()) then + + if not minetest.registered_entities[mob] then + return + end + + pos.y = pos.y + 1 + + local data = itemstack:get_metadata() + local mob = minetest.add_entity(pos, mob, data) + local ent = mob:get_luaentity() + + -- set owner if not a monster + if ent.type ~= "monster" then + ent.owner = placer:get_player_name() + ent.tamed = true + end + + -- since mob is unique we remove egg once spawned + itemstack:take_item() + end + + return itemstack + end, + }) + + + -- register old stackable mob egg + minetest.register_craftitem(mob, { + + description = desc, + inventory_image = invimg, + groups = grp, + + on_place = function(itemstack, placer, pointed_thing) + + local pos = pointed_thing.above + + -- am I clicking on something with existing on_rightclick function? + local under = minetest.get_node(pointed_thing.under) + local def = minetest.registered_nodes[under.name] + if def and def.on_rightclick then + return def.on_rightclick(pointed_thing.under, under, placer, itemstack) + end + + if pos + and within_limits(pos, 0) + and not minetest.is_protected(pos, placer:get_player_name()) then + + if not minetest.registered_entities[mob] then + return + end + + pos.y = pos.y + 1 + + local mob = minetest.add_entity(pos, mob) + local ent = mob:get_luaentity() + + -- don't set owner if monster or sneak pressed + if ent.type ~= "monster" + and not placer:get_player_control().sneak then + ent.owner = placer:get_player_name() + ent.tamed = true + end + + -- if not in creative then take item + if not mobs.is_creative(placer:get_player_name()) then + itemstack:take_item() + end + end + + return itemstack + end, + }) + +end + + +-- capture critter (thanks to blert2112 for idea) +function mobs:capture_mob(self, clicker, chance_hand, chance_net, chance_lasso, force_take, replacewith) + + if self.child + or not clicker:is_player() + or not clicker:get_inventory() then + return false + end + + -- get name of clicked mob + local mobname = self.name + + -- if not nil change what will be added to inventory + if replacewith then + mobname = replacewith + end + + local name = clicker:get_player_name() + local tool = clicker:get_wielded_item() + + -- are we using hand, net or lasso to pick up mob? + if tool:get_name() ~= "" + and tool:get_name() ~= "mobs:net" + and tool:get_name() ~= "mobs:lasso" then + return false + end + + -- is mob tamed? + if self.tamed == false + and force_take == false then + + minetest.chat_send_player(name, S("Not tamed!")) + + return true -- false + end + + -- cannot pick up if not owner + if self.owner ~= name + and force_take == false then + + minetest.chat_send_player(name, S("@1 is owner!", self.owner)) + + return true -- false + end + + if clicker:get_inventory():room_for_item("main", mobname) then + + -- was mob clicked with hand, net, or lasso? + local chance = 0 + + if tool:get_name() == "" then + chance = chance_hand + + elseif tool:get_name() == "mobs:net" then + + chance = chance_net + + tool:add_wear(4000) -- 17 uses + + clicker:set_wielded_item(tool) + + elseif tool:get_name() == "mobs:lasso" then + + chance = chance_lasso + + tool:add_wear(650) -- 100 uses + + clicker:set_wielded_item(tool) + + end + + -- calculate chance.. add to inventory if successful? + if chance > 0 and random(1, 100) <= chance then + + -- default mob egg + local new_stack = ItemStack(mobname) + + -- add special mob egg with all mob information + -- unless 'replacewith' contains new item to use + if not replacewith then + + new_stack = ItemStack(mobname .. "_set") + + local tmp = {} + + for _,stat in pairs(self) do + local t = type(stat) + if t ~= "function" + and t ~= "nil" + and t ~= "userdata" then + tmp[_] = self[_] + end + end + + local data_str = minetest.serialize(tmp) + + new_stack:set_metadata(data_str) + end + + local inv = clicker:get_inventory() + + if inv:room_for_item("main", new_stack) then + inv:add_item("main", new_stack) + else + minetest.add_item(clicker:get_pos(), new_stack) + end + + self.object:remove() + + mob_sound(self, "default_place_node_hard") + + elseif chance ~= 0 then + minetest.chat_send_player(name, S("Missed!")) + + mob_sound(self, "mobs_swing") + end + end + + return true +end + + +-- protect tamed mob with rune item +function mobs:protect(self, clicker) + + local name = clicker:get_player_name() + local tool = clicker:get_wielded_item() + + if tool:get_name() ~= "mobs:protector" then + return false + end + + if self.tamed == false then + minetest.chat_send_player(name, S("Not tamed!")) + return true -- false + end + + if self.protected == true then + minetest.chat_send_player(name, S("Already protected!")) + return true -- false + end + + if not mobs.is_creative(clicker:get_player_name()) then + tool:take_item() -- take 1 protection rune + clicker:set_wielded_item(tool) + end + + self.protected = true + + local pos = self.object:get_pos() + pos.y = pos.y + self.collisionbox[2] + 0.5 + + effect(self.object:get_pos(), 25, "mobs_protect_particle.png", 0.5, 4, 2, 15) + + mob_sound(self, "mobs_spell") + + return true +end + + +local mob_obj = {} +local mob_sta = {} + +-- feeding, taming and breeding (thanks blert2112) +function mobs:feed_tame(self, clicker, feed_count, breed, tame) + + if not self.follow then + return false + end + + -- can eat/tame with item in hand + if follow_holding(self, clicker) then + + -- if not in creative then take item + if not mobs.is_creative(clicker:get_player_name()) then + + local item = clicker:get_wielded_item() + + item:take_item() + + clicker:set_wielded_item(item) + end + + -- increase health + self.health = self.health + 4 + + if self.health >= self.hp_max then + + self.health = self.hp_max + + if self.htimer < 1 then + + minetest.chat_send_player(clicker:get_player_name(), + S("@1 at full health (@2)", + self.name:split(":")[2], tostring(self.health))) + + self.htimer = 5 + end + end + + self.object:set_hp(self.health) + + update_tag(self) + + -- make children grow quicker + if self.child == true then + + self.hornytimer = self.hornytimer + 20 + + return true + end + + -- feed and tame + self.food = (self.food or 0) + 1 + if self.food >= feed_count then + + self.food = 0 + + if breed and self.hornytimer == 0 then + self.horny = true + end + + self.gotten = false + + if tame then + + if self.tamed == false then + minetest.chat_send_player(clicker:get_player_name(), + S("@1 has been tamed!", + self.name:split(":")[2])) + end + + self.tamed = true + + if not self.owner or self.owner == "" then + self.owner = clicker:get_player_name() + end + end + + -- make sound when fed so many times + mob_sound(self, self.sounds.random) + end + + return true + end + + local item = clicker:get_wielded_item() + + -- if mob has been tamed you can name it with a nametag + if item:get_name() == "mobs:nametag" + and clicker:get_player_name() == self.owner then + + local name = clicker:get_player_name() + + -- store mob and nametag stack in external variables + mob_obj[name] = self + mob_sta[name] = item + + local tag = self.nametag or "" + + minetest.show_formspec(name, "mobs_nametag", "size[8,4]" + .. default.gui_bg + .. default.gui_bg_img + .. "field[0.5,1;7.5,0;name;" .. minetest.formspec_escape(S("Enter name:")) .. ";" .. tag .. "]" + .. "button_exit[2.5,3.5;3,1;mob_rename;" .. minetest.formspec_escape(S("Rename")) .. "]") + end + + return false +end + + +-- inspired by blockmen's nametag mod +minetest.register_on_player_receive_fields(function(player, formname, fields) + + -- right-clicked with nametag and name entered? + if formname == "mobs_nametag" + and fields.name + and fields.name ~= "" then + + local name = player:get_player_name() + + if not mob_obj[name] + or not mob_obj[name].object then + return + end + + -- make sure nametag is being used to name mob + local item = player:get_wielded_item() + + if item:get_name() ~= "mobs:nametag" then + return + end + + -- limit name entered to 64 characters long + if string.len(fields.name) > 64 then + fields.name = string.sub(fields.name, 1, 64) + end + + -- update nametag + mob_obj[name].nametag = fields.name + + update_tag(mob_obj[name]) + + -- if not in creative then take item + if not mobs.is_creative(name) then + + mob_sta[name]:take_item() + + player:set_wielded_item(mob_sta[name]) + end + + -- reset external variables + mob_obj[name] = nil + mob_sta[name] = nil + end +end) + + +-- compatibility function for old entities to new modpack entities +function mobs:alias_mob(old_name, new_name) + + -- spawn egg + minetest.register_alias(old_name, new_name) + + -- entity + minetest.register_entity(":" .. old_name, { + + physical = false, + + on_step = function(self) + + if minetest.registered_entities[new_name] then + minetest.add_entity(self.object:get_pos(), new_name) + end + + self.object:remove() + end + }) +end diff --git a/games/default/files/Mobs/mobs/api.txt b/games/default/files/Mobs/mobs/api.txt new file mode 100644 index 000000000..74e99db12 --- /dev/null +++ b/games/default/files/Mobs/mobs/api.txt @@ -0,0 +1,722 @@ + +Mobs Redo API +============= + +Welcome to the world of mobs in minetest and hopefully an easy guide to defining +your own mobs and having them appear in your worlds. + + +Registering Mobs +---------------- + +To register a mob and have it ready for use requires the following function: + + mobs:register_mob(name, definition) + +The 'name' of a mob usually starts with the mod name it's running from followed +by it's own name e.g. + + "mobs_monster:sand_monster" or "mymod:totally_awesome_beast" + +... and the 'definition' is a table which holds all of the settings and +functions needed for the mob to work properly which contains the following: + + 'nametag' contains the name which is shown above mob. + 'type' holds the type of mob that inhabits your world e.g. + "animal" usually docile and walking around. + "monster" attacks player or npc on sight. + "npc" walk around and will defend themselves if hit first, they + kill monsters. + 'hp_min' has the minimum health value the mob can spawn with. + 'hp_max' has the maximum health value the mob can spawn with. + 'armor' holds strength of mob, 100 is normal, lower is more powerful + and needs more hits and better weapons to kill. + 'passive' when true allows animals to defend themselves when hit, + otherwise they amble onwards. + 'walk_velocity' is the speed that your mob can walk around. + 'run_velocity' is the speed your mob can run with, usually when attacking. + 'walk_chance' has a 0-100 chance value your mob will walk from standing, + set to 0 for jumping mobs only. + 'jump' when true allows your mob to jump updwards. + 'jump_height' holds the height your mob can jump, 0 to disable jumping. + 'stepheight' height of a block that your mob can easily walk up onto, + defaults to 1.1. + 'fly' when true allows your mob to fly around instead of walking. + 'fly_in' holds the node name that the mob flies (or swims) around + in e.g. "air" or "default:water_source". + 'runaway' if true causes animals to turn and run away when hit. + 'view_range' how many nodes in distance the mob can see a player. + 'damage' how many health points the mob does to a player or another + mob when melee attacking. + 'knock_back' when true has mobs falling backwards when hit, the greater + the damage the more they move back. + 'fear_height' is how high a cliff or edge has to be before the mob stops + walking, 0 to turn off height fear. + 'fall_speed' has the maximum speed the mob can fall at, default is -10. + 'fall_damage' when true causes falling to inflict damage. + 'water_damage' holds the damage per second infliced to mobs when standing in + water. + 'lava_damage' holds the damage per second inflicted to mobs when standing + in lava or fire. + 'light_damage' holds the damage per second inflicted to mobs when it's too + bright (above 13 light). + 'suffocation' when true causes mobs to suffocate inside solid blocks. + 'floats' when set to 1 mob will float in water, 0 has them sink. + 'follow' mobs follow player when holding any of the items which appear + on this table, the same items can be fed to a mob to tame or + breed e.g. {"farming:wheat", "default:apple"} + + 'reach' is how far the mob can attack player when standing + nearby, default is 3 nodes. + 'docile_by_day' when true has mobs wandering around during daylight + hours and only attacking player at night or when + provoked. + 'attack_monsters' when true mob will attack monsters. + 'attack_animals' when true mob will attack animals. + 'attack_npcs' when true mob will attack npcs within range. + 'attack_players' when true mob will attack players nearby. + 'owner_loyal' when true non-docile tamed mobs attack anything player + punches when nearby. + 'group_attack' when true has same mob type grouping together to attack + offender. + 'attack_type' tells the api what a mob does when attacking the player + or another mob: + 'dogfight' is a melee attack when player is within mob reach. + 'shoot' has mob shoot pre-defined arrows at player when inside + view_range. + 'dogshoot' has melee attack when inside reach and shoot attack + when inside view_range. + 'explode' causes mob to stop and explode when inside reach. + 'explosion_radius' the radius of explosion node destruction, + defaults to 1 + 'explosion_damage_radius' the radius of explosion entity & player damage, + defaults to explosion_radius * 2 + 'explosion_timer' number of seconds before mob explodes while its target + is still inside reach or explosion_damage_radius, + defaults to 3. + 'allow_fuse_reset' Allow 'explode' attack_type to reset fuse and resume + chasing if target leaves the blast radius or line of + sight. Defaults to true. + 'stop_to_explode' When set to true (default), mob must stop and wait for + explosion_timer in order to explode. If false, mob will + continue chasing. + 'arrow' holds the pre-defined arrow object to shoot when + attacking. + 'dogshoot_switch' allows switching between attack types by using timers + (1 for shoot, 2 for dogfight) + 'dogshoot_count_max' contains how many seconds before switching from + dogfight to shoot. + 'dogshoot_count2_max' contains how many seconds before switching from shoot + to dogfight. + 'shoot_interval' has the number of seconds between shots. + 'shoot_offset' holds the y position added as to where the + arrow/fireball appears on mob. + 'specific_attack' has a table of entity names that mob can also attack + e.g. {"player", "mobs_animal:chicken"}. + 'runaway_from' contains a table with mob names to run away from, add + "player" to list to runaway from player also. + 'blood_amount' contains the number of blood droplets to appear when + mob is hit. + 'blood_texture' has the texture name to use for droplets e.g. + "mobs_blood.png", or table {"blood1.png", "blood2.png"} + 'pathfinding' set to 1 for mobs to use pathfinder feature to locate + player, set to 2 so they can build/break also (only + works with dogfight attack and when 'mobs_griefing' + in minetest.conf is not false). + 'immune_to' is a table that holds specific damage when being hit by + certain items e.g. + {"default:sword_wood", 0} -- causes no damage. + {"default:gold_lump", -10} -- heals by 10 health points. + {"default:coal_block", 20} -- 20 damage when hit on head with coal blocks. + {"all"} -- stops all weapons causing damage apart from those on list. + + 'makes_footstep_sound' when true you can hear mobs walking. + 'sounds' this is a table with sounds of the mob + 'distance' maximum distance sounds can be heard, default is 10. + 'random' random sound that plays during gameplay. + 'war_cry' what you hear when mob starts to attack player. + 'attack' what you hear when being attacked. + 'shoot_attack' sound played when mob shoots. + 'damage' sound heard when mob is hurt. + 'death' played when mob is killed. + 'jump' played when mob jumps. + 'fuse' sound played when mob explode timer starts. + 'explode' sound played when mob explodes. + + 'drops' table of items that are dropped when mob is killed, fields are: + 'name' name of item to drop. + 'chance' chance of drop, 1 for always, 2 for 1-in-2 chance etc. + 'min' minimum number of items dropped. + 'max' maximum number of items dropped. + + 'visual' holds the look of the mob you wish to create: + 'cube' looks like a normal node + 'sprite' sprite which looks same from all angles. + 'upright_sprite' flat model standing upright. + 'wielditem' how it looks when player holds it in hand. + 'mesh' uses separate object file to define mob. + 'visual_size' has the size of the mob, defaults to {x = 1, y = 1} + 'collisionbox' has the box in which mob can be interacted with the + world e.g. {-0.5, -0.5, -0.5, 0.5, 0.5, 0.5} + 'selectionbox' has the box in which player can interact with mob + 'textures' holds a table list of textures to be used for mob, or you + could use multiple lists inside another table for random + selection e.g. { {"texture1.png"}, {"texture2.png"} } + 'child_texture' holds the texture table for when baby mobs are used. + 'gotten_texture' holds the texture table for when self.gotten value is + true, used for milking cows or shearing sheep. + 'mesh' holds the name of the external object used for mob model + e.g. "mobs_cow.b3d" + 'gotten_mesh" holds the name of the external object used for when + self.gotten is true for mobs. + 'rotate' custom model rotation, 0 = front, 90 = side, 180 = back, + 270 = other side. + 'double_melee_attack' when true has the api choose between 'punch' and + 'punch2' animations. + + 'animation' holds a table containing animation names and settings for use with mesh models: + 'stand_start' start frame for when mob stands still. + 'stand_end' end frame of stand animation. + 'stand_speed' speed of animation in frames per second. + 'walk_start' when mob is walking around. + 'walk_end' + 'walk_speed' + 'run_start' when a mob runs or attacks. + 'run_end' + 'run_speed' + 'fly_start' when a mob is flying. + 'fly_end' + 'fly_speed' + 'punch_start' when a mob melee attacks. + 'punch_end' + 'punch_speed' + 'punch2_start' alternative melee attack animation. + 'punch2_end' + 'punch2_speed' + 'shoot_start' shooting animation. + 'shoot_end' + 'shoot_speed' + 'die_start' death animation + 'die_end' + 'die_speed' + 'die_loop' when set to false stops the animation looping. + + Using '_loop = false' setting will stop any of the above animations from + looping. + + 'speed_normal' is used for animation speed for compatibility with some + older mobs. + + +Node Replacement +---------------- + +Mobs can look around for specific nodes as they walk and replace them to mimic +eating. + + 'replace_what' group of items to replace e.g. + {"farming:wheat_8", "farming:carrot_8"} + or you can use the specific options of what, with and + y offset by using this instead: + { + {"group:grass", "air", 0}, + {"default:dirt_with_grass", "default:dirt", -1} + } + 'replace_with' replace with what e.g. "air" or in chickens case "mobs:egg" + 'replace_rate' how random should the replace rate be (typically 10) + 'replace_offset' +/- value to check specific node to replace + + 'on_replace(self, pos, oldnode, newnode)' is called when mob is about to + replace a node. + 'self' ObjectRef of mob + 'pos' Position of node to replace + 'oldnode' Current node + 'newnode' What the node will become after replacing + + If false is returned, the mob will not replace the node. + + By default, replacing sets self.gotten to true and resets the object + properties. + + +Custom Definition Functions +--------------------------- + +Along with the above mob registry settings we can also use custom functions to +enhance mob functionality and have them do many interesting things: + + 'on_die' a function that is called when the mob is killed the + parameters are (self, pos) + 'on_rightclick' its same as in minetest.register_entity() + 'on_blast' is called when an explosion happens near mob when using TNT + functions, parameters are (object, damage) and returns + (do_damage, do_knockback, drops) + 'on_spawn' is a custom function that runs on mob spawn with 'self' as + variable, return true at end of function to run only once. + 'after_activate' is a custom function that runs once mob has been activated + with these paramaters (self, staticdata, def, dtime) + 'on_breed' called when two similar mobs breed, paramaters are + (parent1, parent2) objects, return false to stop child from + being resized and owner/tamed flags and child textures being + applied. Function itself must spawn new child mob. + 'on_grown' is called when a child mob has grown up, only paramater is + (self). + 'do_punch' called when mob is punched with paramaters (self, hitter, + time_from_last_punch, tool_capabilities, direction), return + false to stop punch damage and knockback from taking place. + 'custom_attack' when set this function is called instead of the normal mob + melee attack, parameters are (self, to_attack). + 'on_die' a function that is called when mob is killed (self, pos) + 'do_custom' a custom function that is called every tick while mob is + active and which has access to all of the self.* variables + e.g. (self.health for health or self.standing_in for node + status), return with 'false' to skip remainder of mob API. + + +Internal Variables +------------------ + +The mob api also has some preset variables and functions that it will remember +for each mob. + + 'self.health' contains current health of mob (cannot exceed + self.hp_max) + 'self.texture_list' contains list of all mob textures + 'self.child_texture' contains mob child texture when growing up + 'self.base_texture' contains current skin texture which was randomly + selected from textures list + 'self.gotten' this is used for obtaining milk from cow and wool from + sheep + 'self.horny' when animal fed enough it is set to true and animal can + breed with same animal + 'self.hornytimer' background timer that controls breeding functions and + mob childhood timings + 'self.child' used for when breeding animals have child, will use + child_texture and be half size + 'self.owner' string used to set owner of npc mobs, typically used for + dogs + 'self.order' set to "follow" or "stand" so that npc will follow owner + or stand it's ground + 'self.nametag' contains the name of the mob which it can show above + + +Spawning Mobs in World +---------------------- + +mobs:register_spawn(name, nodes, max_light, min_light, chance, + active_object_count, max_height, day_toggle) + +mobs:spawn_specfic(name, nodes, neighbors, min_light, max_light, interval, + chance, active_object_count, min_height, max_height, day_toggle, on_spawn) + +These functions register a spawn algorithm for the mob. Without this function +the call the mobs won't spawn. + + 'name' is the name of the animal/monster + 'nodes' is a list of nodenames on that the animal/monster can + spawn on top of + 'neighbors' is a list of nodenames on that the animal/monster will + spawn beside (default is {"air"} for + mobs:register_spawn) + 'max_light' is the maximum of light + 'min_light' is the minimum of light + 'interval' is same as in register_abm() (default is 30 for + mobs:register_spawn) + 'chance' is same as in register_abm() + 'active_object_count' number of this type of mob to spawn at one time inside + map area + 'min_height' is the minimum height the mob can spawn + 'max_height' is the maximum height the mob can spawn + 'day_toggle' true for day spawning, false for night or nil for + anytime + 'on_spawn' is a custom function which runs after mob has spawned + and gives self and pos values. + +A simpler way to handle mob spawns has been added with the mobs:spawn(def) +command which uses above names to make settings clearer: + + mobs:spawn({name = "mobs_monster:tree_monster", + nodes = {"group:leaves"}, + max_light = 7, + }) + + +For each mob that spawns with this function is a field in mobs.spawning_mobs. +It tells if the mob should spawn or not. Default is true. So other mods can +only use the API of this mod by disabling the spawning of the default mobs in +this mod. + + +mobs:spawn_abm_check(pos, node, name) + +This global function can be changed to contain additional checks for mobs to +spawn e.g. mobs that spawn only in specific areas and the like. By returning +true the mob will not spawn. + + 'pos' holds the position of the spawning mob + 'node' contains the node the mob is spawning on top of + 'name' is the name of the animal/monster + + +Making Arrows +------------- + +mobs:register_arrow(name, definition) + +This function registers a arrow for mobs with the attack type shoot. + + 'name' is the name of the arrow + 'definition' is a table with the following values: + 'visual' same is in minetest.register_entity() + 'visual_size' same is in minetest.register_entity() + 'textures' same is in minetest.register_entity() + 'velocity' the velocity of the arrow + 'drop' if set to true any arrows hitting a node will drop as item + 'hit_player' a function that is called when the arrow hits a player; + this function should hurt the player, the parameters are + (self, player) + 'hit_mob' a function that is called when the arrow hits a mob; + this function should hurt the mob, the parameters are + (self, player) + 'hit_node' a function that is called when the arrow hits a node, the + parameters are (self, pos, node) + 'tail' when set to 1 adds a trail or tail to mob arrows + 'tail_texture' texture string used for above effect + 'tail_size' has size for above texture (defaults to between 5 and 10) + 'expire' contains float value for how long tail appears for + (defaults to 0.25) + 'glow' has value for how brightly tail glows 1 to 10 (default is + 0 for no glow) + 'rotate' integer value in degrees to rotate arrow + 'on_step' is a custom function when arrow is active, nil for + default. + + +Spawn Eggs +---------- + +mobs:register_egg(name, description, background, addegg, no_creative) + +This function registers a spawn egg which can be used by admin to properly spawn in a mob. + + 'name' this is the name of your new mob to spawn e.g. "mob:sheep" + 'description' the name of the new egg you are creating e.g. "Spawn Sheep" + 'background' the texture displayed for the egg in inventory + 'addegg' would you like an egg image in front of your texture (1 = yes, + 0 = no) + 'no_creative' when set to true this stops spawn egg appearing in creative + mode for destructive mobs like Dungeon Masters. + + +Explosion Function +------------------ + +mobs:explosion(pos, radius) -- DEPRECATED!!! use mobs:boom() instead + +mobs:boom(self, pos, radius) + 'self' mob entity + 'pos' centre position of explosion + 'radius' radius of explosion (typically set to 3) + +This function generates an explosion which removes nodes in a specific radius +and damages any entity caught inside the blast radius. Protection will limit +node destruction but not entity damage. + + +Capturing Mobs +-------------- + +mobs:capture_mob(self, clicker, chance_hand, chance_net, chance_lasso, + force_take, replacewith) + +This function is generally called inside the on_rightclick section of the mob +api code, it provides a chance of capturing the mob by hand, using the net or +lasso items, and can also have the player take the mob by force if tamed and +replace with another item entirely. + + 'self' mob information + 'clicker' player information + 'chance_hand' chance of capturing mob by hand (1 to 100) 0 to disable + 'chance_net' chance of capturing mob using net (1 to 100) 0 to disable + 'chance_lasso' chance of capturing mob using magic lasso (1 to 100) 0 to + disable + 'force_take' take mob by force, even if tamed (true or false) + 'replacewith' once captured replace mob with this item instead (overrides + new mob eggs with saved information) + + +Feeding and Taming/Breeding +--------------------------- + +mobs:feed_tame(self, clicker, feed_count, breed, tame) + +This function allows the mob to be fed the item inside self.follow be it apple, +wheat or whatever a set number of times and be tamed or bred as a result. +Will return true when mob is fed with item it likes. + + 'self' mob information + 'clicker' player information + 'feed_count' number of times mob must be fed to tame or breed + 'breed' true or false stating if mob can be bred and a child created + afterwards + 'tame' true or false stating if mob can be tamed so player can pick + them up + + +Protecting Mobs +--------------- + +mobs:protect(self, clicker) + +This function can be used to right-click any tamed mob with mobs:protector item, +this will protect the mob from harm inside of a protected area from other +players. Will return true when mob right-clicked with mobs:protector item. + + 'self' mob information + 'clicker' player information + + +Riding Mobs +----------- + +Mobs can now be ridden by players and the following shows its functions and +usage: + + +mobs:attach(self, player) + +This function attaches a player to the mob so it can be ridden. + + 'self' mob information + 'player' player information + + +mobs:detach(player, offset) + +This function will detach the player currently riding a mob to an offset +position. + + 'player' player information + 'offset' position table containing offset values + + +mobs:drive(self, move_animation, stand_animation, can_fly, dtime) + +This function allows an attached player to move the mob around and animate it at +same time. + + 'self' mob information + 'move_animation' string containing movement animation e.g. "walk" + 'stand_animation' string containing standing animation e.g. "stand" + 'can_fly' if true then jump and sneak controls will allow mob to fly + up and down + 'dtime' tick time used inside drive function + + +mobs:fly(self, dtime, speed, can_shoot, arrow_entity, move_animation, stand_animation) + +This function allows an attached player to fly the mob around using directional +controls. + + 'self' mob information + 'dtime' tick time used inside fly function + 'speed' speed of flight + 'can_shoot' true if mob can fire arrow (sneak and left mouse button + fires) + 'arrow_entity' name of arrow entity used for firing + 'move_animation' string containing name of pre-defined animation e.g. "walk" + or "fly" etc. + 'stand_animation' string containing name of pre-defined animation e.g. + "stand" or "blink" etc. + +Note: animation names above are from the pre-defined animation lists inside mob +registry without extensions. + + +mobs:set_animation(self, name) + +This function sets the current animation for mob, defaulting to "stand" if not +found. + + 'self' mob information + 'name' name of animation + + +Certain variables need to be set before using the above functions: + + 'self.v2' toggle switch used to define below values for the + first time + 'self.max_speed_forward' max speed mob can move forward + 'self.max_speed_reverse' max speed mob can move backwards + 'self.accel' acceleration speed + 'self.terrain_type' integer containing terrain mob can walk on + (1 = water, 2 or 3 = land) + 'self.driver_attach_at' position offset for attaching player to mob + 'self.driver_eye_offset' position offset for attached player view + 'self.driver_scale' sets driver scale for mobs larger than {x=1, y=1} + + +External Settings for "minetest.conf" +------------------------------------ + + 'enable_damage' if true monsters will attack players (default is true) + 'only_peaceful_mobs' if true only animals will spawn in game (default is + false) + 'mobs_disable_blood' if false blood effects appear when mob is hit (default + is false) + 'mobs_spawn_protected' if set to false then mobs will not spawn in protected + areas (default is true) + 'remove_far_mobs' if true then untamed mobs that are outside players + visual range will be removed (default is true) + 'mobname' can change specific mob chance rate (0 to disable) and + spawn number e.g. mobs_animal:cow = 1000,5 + 'mob_difficulty' sets difficulty level (health and hit damage + multiplied by this number), defaults to 1.0. + 'mob_show_health' if false then punching mob will not show health status + (true by default) + 'mob_chance_multiplier' multiplies chance of all mobs spawning and can be set + to 0.5 to have mobs spawn more or 2.0 to spawn less. + e.g. 1 in 7000 * 0.5 = 1 in 3500 so better odds of + spawning. + 'mobs_spawn' if false then mobs no longer spawn without spawner or + spawn egg. + 'mobs_drop_items' when false mobs no longer drop items when they die. + 'mobs_griefing' when false mobs cannot break blocks when using either + pathfinding level 2, replace functions or mobs:boom + function. + +Players can override the spawn chance for each mob registered by adding a line +to their minetest.conf file with a new value, the lower the value the more each +mob will spawn e.g. + +mobs_animal:sheep_chance 11000 +mobs_monster:sand_monster_chance 100 + + +Rideable Horse Example Mob +-------------------------- + +mobs:register_mob("mob_horse:horse", { + type = "animal", + visual = "mesh", + visual_size = {x = 1.20, y = 1.20}, + mesh = "mobs_horse.x", + collisionbox = {-0.4, -0.01, -0.4, 0.4, 1.25, 0.4}, + animation = { + speed_normal = 15, + speed_run = 30, + stand_start = 25, + stand_end = 75, + walk_start = 75, + walk_end = 100, + run_start = 75, + run_end = 100, + }, + textures = { + {"mobs_horse.png"}, + {"mobs_horsepeg.png"}, + {"mobs_horseara.png"} + }, + fear_height = 3, + runaway = true, + fly = false, + walk_chance = 60, + view_range = 5, + follow = {"farming:wheat"}, + passive = true, + hp_min = 12, + hp_max = 16, + armor = 200, + lava_damage = 5, + fall_damage = 5, + water_damage = 1, + makes_footstep_sound = true, + drops = { + {name = "mobs:meat_raw", chance = 1, min = 2, max = 3} + }, + sounds = { + random = "horse_neigh.ogg", + damage = "horse_whinney.ogg", + }, + + do_custom = function(self, dtime) + + -- set needed values if not already present + if not self.v2 then + self.v2 = 0 + self.max_speed_forward = 6 + self.max_speed_reverse = 2 + self.accel = 6 + self.terrain_type = 3 + self.driver_attach_at = {x = 0, y = 20, z = -2} + self.driver_eye_offset = {x = 0, y = 3, z = 0} + self.driver_scale = {x = 1, y = 1} + end + + -- if driver present allow control of horse + if self.driver then + + mobs.drive(self, "walk", "stand", false, dtime) + + return false -- skip rest of mob functions + end + + return true + end, + + on_die = function(self, pos) + + -- drop saddle when horse is killed while riding + -- also detach from horse properly + if self.driver then + minetest.add_item(pos, "mobs:saddle") + mobs.detach(self.driver, {x = 1, y = 0, z = 1}) + end + + end, + + on_rightclick = function(self, clicker) + + -- make sure player is clicking + if not clicker or not clicker:is_player() then + return + end + + -- feed, tame or heal horse + if mobs:feed_tame(self, clicker, 10, true, true) then + return + end + + -- make sure tamed horse is being clicked by owner only + if self.tamed and self.owner == clicker:get_player_name() then + + local inv = clicker:get_inventory() + + -- detatch player already riding horse + if self.driver and clicker == self.driver then + + mobs.detach(clicker, {x = 1, y = 0, z = 1}) + + -- add saddle back to inventory + if inv:room_for_item("main", "mobs:saddle") then + inv:add_item("main", "mobs:saddle") + else + minetest.add_item(clicker.getpos(), "mobs:saddle") + end + + -- attach player to horse + elseif not self.driver + and clicker:get_wielded_item():get_name() == "mobs:saddle" then + + self.object:set_properties({stepheight = 1.1}) + mobs.attach(self, clicker) + + -- take saddle from inventory + inv:remove_item("main", "mobs:saddle") + end + end + + -- used to capture horse with magic lasso + mobs:capture_mob(self, clicker, 0, 0, 80, false, nil) + end +}) diff --git a/games/default/files/Mobs/mobs/crafts.lua b/games/default/files/Mobs/mobs/crafts.lua new file mode 100644 index 000000000..0bf42ad4d --- /dev/null +++ b/games/default/files/Mobs/mobs/crafts.lua @@ -0,0 +1,184 @@ + +local S = mobs.intllib + +-- name tag +minetest.register_craftitem("mobs:nametag", { + description = S("Name Tag"), + inventory_image = "mobs_nametag.png", + groups = {flammable = 2}, +}) + +if minetest.get_modpath("dye") and minetest.get_modpath("farming") then + minetest.register_craft({ + type = "shapeless", + output = "mobs:nametag", + recipe = {"default:paper", "dye:black", "farming:string"}, + }) +end + +-- leather +minetest.register_craftitem("mobs:leather", { + description = S("Leather"), + inventory_image = "mobs_leather.png", + groups = {flammable = 2}, +}) + +-- raw meat +minetest.register_craftitem("mobs:meat_raw", { + description = S("Raw Meat"), + inventory_image = "mobs_meat_raw.png", + on_use = minetest.item_eat(3), + groups = {food_meat_raw = 1, flammable = 2}, +}) + +-- cooked meat +minetest.register_craftitem("mobs:meat", { + description = S("Meat"), + inventory_image = "mobs_meat.png", + on_use = minetest.item_eat(8), + groups = {food_meat = 1, flammable = 2}, +}) + +minetest.register_craft({ + type = "cooking", + output = "mobs:meat", + recipe = "mobs:meat_raw", + cooktime = 5, +}) + +-- lasso +minetest.register_tool("mobs:lasso", { + description = S("Lasso (right-click animal to put in inventory)"), + inventory_image = "mobs_magic_lasso.png", + groups = {flammable = 2}, +}) + +if minetest.get_modpath("farming") then + minetest.register_craft({ + output = "mobs:lasso", + recipe = { + {"farming:string", "", "farming:string"}, + {"", "default:diamond", ""}, + {"farming:string", "", "farming:string"}, + } + }) +end + +minetest.register_alias("mobs:magic_lasso", "mobs:lasso") + +-- net +minetest.register_tool("mobs:net", { + description = S("Net (right-click animal to put in inventory)"), + inventory_image = "mobs_net.png", + groups = {flammable = 2}, +}) + +if minetest.get_modpath("farming") then + minetest.register_craft({ + output = "mobs:net", + recipe = { + {"group:stick", "", "group:stick"}, + {"group:stick", "", "group:stick"}, + {"farming:string", "group:stick", "farming:string"}, + } + }) +end + +-- shears (right click to shear animal) +minetest.register_tool("mobs:shears", { + description = S("Steel Shears (right-click to shear)"), + inventory_image = "mobs_shears.png", + groups = {flammable = 2}, +}) + +minetest.register_craft({ + output = 'mobs:shears', + recipe = { + {'', 'default:steel_ingot', ''}, + {'', 'group:stick', 'default:steel_ingot'}, + } +}) + +-- protection rune +minetest.register_craftitem("mobs:protector", { + description = S("Mob Protection Rune"), + inventory_image = "mobs_protector.png", + groups = {flammable = 2}, +}) + +minetest.register_craft({ + output = "mobs:protector", + recipe = { + {"default:stone", "default:stone", "default:stone"}, + {"default:stone", "default:goldblock", "default:stone"}, + {"default:stone", "default:stone", "default:stone"}, + } +}) + +-- saddle +minetest.register_craftitem("mobs:saddle", { + description = S("Saddle"), + inventory_image = "mobs_saddle.png", + groups = {flammable = 2}, +}) + +minetest.register_craft({ + output = "mobs:saddle", + recipe = { + {"mobs:leather", "mobs:leather", "mobs:leather"}, + {"mobs:leather", "default:steel_ingot", "mobs:leather"}, + {"mobs:leather", "default:steel_ingot", "mobs:leather"}, + } +}) + +-- mob fence (looks like normal fence but collision is 2 high) +default.register_fence("mobs:fence_wood", { + description = S("Mob Fence"), + texture = "default_wood.png", + material = "default:fence_wood", + groups = {choppy = 2, oddly_breakable_by_hand = 2, flammable = 2}, + sounds = default.node_sound_wood_defaults(), + collision_box = { + type = "fixed", + fixed = { + {-0.5, -0.5, -0.5, 0.5, 1.9, 0.5}, + }, + }, +}) + +-- items that can be used as fuel +minetest.register_craft({ + type = "fuel", + recipe = "mobs:nametag", + burntime = 3, +}) + +minetest.register_craft({ + type = "fuel", + recipe = "mobs:lasso", + burntime = 7, +}) + +minetest.register_craft({ + type = "fuel", + recipe = "mobs:net", + burntime = 8, +}) + +minetest.register_craft({ + type = "fuel", + recipe = "mobs:leather", + burntime = 4, +}) + +minetest.register_craft({ + type = "fuel", + recipe = "mobs:saddle", + burntime = 7, +}) + +minetest.register_craft({ + type = "fuel", + recipe = "mobs:fence_wood", + burntime = 7, +}) diff --git a/games/default/files/Mobs/mobs/depends.txt b/games/default/files/Mobs/mobs/depends.txt new file mode 100644 index 000000000..2f208027c --- /dev/null +++ b/games/default/files/Mobs/mobs/depends.txt @@ -0,0 +1,9 @@ +default +tnt? +dye? +farming? +invisibility? +intllib? +lucky_block? +cmi? +toolranks? diff --git a/games/default/files/Mobs/mobs/description.txt b/games/default/files/Mobs/mobs/description.txt new file mode 100644 index 000000000..919852a13 --- /dev/null +++ b/games/default/files/Mobs/mobs/description.txt @@ -0,0 +1 @@ +Adds a mob api for mods to add animals or monsters etc. \ No newline at end of file diff --git a/games/default/files/Mobs/mobs/init.lua b/games/default/files/Mobs/mobs/init.lua new file mode 100644 index 000000000..f63fb164d --- /dev/null +++ b/games/default/files/Mobs/mobs/init.lua @@ -0,0 +1,19 @@ + +local path = minetest.get_modpath("mobs") + +-- Mob API +dofile(path .. "/api.lua") + +-- Rideable Mobs +dofile(path .. "/mount.lua") + +-- Mob Items +dofile(path .. "/crafts.lua") + +-- Mob Spawner +dofile(path .. "/spawner.lua") + +-- Lucky Blocks +dofile(path .. "/lucky_block.lua") + +minetest.log("action", "[MOD] Mobs Redo loaded") diff --git a/games/default/files/Mobs/mobs/intllib.lua b/games/default/files/Mobs/mobs/intllib.lua new file mode 100644 index 000000000..6669d7202 --- /dev/null +++ b/games/default/files/Mobs/mobs/intllib.lua @@ -0,0 +1,45 @@ + +-- Fallback functions for when `intllib` is not installed. +-- Code released under Unlicense . + +-- Get the latest version of this file at: +-- https://raw.githubusercontent.com/minetest-mods/intllib/master/lib/intllib.lua + +local function format(str, ...) + local args = { ... } + local function repl(escape, open, num, close) + if escape == "" then + local replacement = tostring(args[tonumber(num)]) + if open == "" then + replacement = replacement..close + end + return replacement + else + return "@"..open..num..close + end + end + return (str:gsub("(@?)@(%(?)(%d+)(%)?)", repl)) +end + +local gettext, ngettext +if minetest.get_modpath("intllib") then + if intllib.make_gettext_pair then + -- New method using gettext. + gettext, ngettext = intllib.make_gettext_pair() + else + -- Old method using text files. + gettext = intllib.Getter() + end +end + +-- Fill in missing functions. + +gettext = gettext or function(msgid, ...) + return format(msgid, ...) +end + +ngettext = ngettext or function(msgid, msgid_plural, n, ...) + return format(n==1 and msgid or msgid_plural, ...) +end + +return gettext, ngettext diff --git a/games/default/files/mobs_redo/license.txt b/games/default/files/Mobs/mobs/license.txt similarity index 100% rename from games/default/files/mobs_redo/license.txt rename to games/default/files/Mobs/mobs/license.txt diff --git a/games/default/files/Mobs/mobs/locale/de_DE.po b/games/default/files/Mobs/mobs/locale/de_DE.po new file mode 100644 index 000000000..210990d8f --- /dev/null +++ b/games/default/files/Mobs/mobs/locale/de_DE.po @@ -0,0 +1,131 @@ +# Mobs Redo translation. +# Copyright (C) 2017 TenPlus1 +# This file is distributed under the same license as the mobs package. +# Wuzzy , 2017 +# +msgid "" +msgstr "" +"Project-Id-Version: mobs\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2017-07-02 16:48+0200\n" +"PO-Revision-Date: 2017-07-02 14:27+0200\n" +"Last-Translator: Wuzzy \n" +"Language-Team: \n" +"Language: de_DE\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Generator: Poedit 2.0.2\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" + +#: api.lua +msgid "** Peaceful Mode Active - No Monsters Will Spawn" +msgstr "" + +#: api.lua +msgid "Mob has been protected!" +msgstr "Kreatur wurde geschützt!" + +#: api.lua +msgid "@1 (Tamed)" +msgstr "@1 (Gezähmt)" + +#: api.lua +msgid "Not tamed!" +msgstr "Nicht gezähmt!" + +#: api.lua +msgid "@1 is owner!" +msgstr "@1 ist der Besitzer!" + +#: api.lua +msgid "Missed!" +msgstr "Daneben!" + +#: api.lua +msgid "Already protected!" +msgstr "Bereits geschützt!" + +#: api.lua +msgid "@1 at full health (@2)" +msgstr "@1 bei voller Gesundheit (@2)" + +#: api.lua +msgid "@1 has been tamed!" +msgstr "@1 wurde gezähmt!" + +#: api.lua +msgid "Enter name:" +msgstr "Namen eingeben:" + +#: api.lua +msgid "Rename" +msgstr "Umbenennen" + +#: crafts.lua +msgid "Name Tag" +msgstr "Namensschild" + +#: crafts.lua +msgid "Leather" +msgstr "Leder" + +#: crafts.lua +msgid "Raw Meat" +msgstr "Rohes Fleisch" + +#: crafts.lua +msgid "Meat" +msgstr "Fleisch" + +#: crafts.lua +msgid "Lasso (right-click animal to put in inventory)" +msgstr "Lasso (Rechtsklick auf Tier, um es zu nehmen)" + +#: crafts.lua +msgid "Net (right-click animal to put in inventory)" +msgstr "Netz (Rechtsklick auf Tier, um es zu nehmen)" + +#: crafts.lua +msgid "Steel Shears (right-click to shear)" +msgstr "Stahlschere (Rechtsklick zum Scheren)" + +#: crafts.lua +msgid "Mob Protection Rune" +msgstr "Kreaturschutzrune" + +#: crafts.lua +msgid "Saddle" +msgstr "Sattel" + +#: crafts.lua +msgid "Mob Fence" +msgstr "Kreaturen Zaun" + +#: spawner.lua +msgid "Mob Spawner" +msgstr "Kreaturenspawner" + +#: spawner.lua +msgid "Mob MinLight MaxLight Amount PlayerDist" +msgstr "Kreatur MinLicht MaxLicht Menge SpielerEntfng" + +#: spawner.lua +msgid "Spawner Not Active (enter settings)" +msgstr "Nicht aktiv (Einstellungen eingeben)" + +#: spawner.lua +msgid "Spawner Active (@1)" +msgstr "Spawner aktiv (@1)" + +#: spawner.lua +msgid "Mob Spawner settings failed!" +msgstr "Kreaturenspawner-Einstellungen gescheitert!" + +#: spawner.lua +msgid "" +"Syntax: “name min_light[0-14] max_light[0-14] max_mobs_in_area[0 to disable] " +"distance[1-20] y_offset[-10 to 10]”" +msgstr "" +"Syntax: „name min_licht[0-14] max_licht[0-14] max_mobs_im_gebiet[0 zum " +"Deaktivieren] distanz[1-20] y_versatz[-10 bis 10]“" diff --git a/games/default/files/Mobs/mobs/locale/es.po b/games/default/files/Mobs/mobs/locale/es.po new file mode 100644 index 000000000..849db6671 --- /dev/null +++ b/games/default/files/Mobs/mobs/locale/es.po @@ -0,0 +1,128 @@ +# Mobs Redo translation. +# Copyright (C) 2017 TenPlus1 +# This file is distributed under the same license as the mobs package. +# Wuzzy , 2017 +# +msgid "" +msgstr "" +"Project-Id-Version: PACKAGE VERSION\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2017-07-16 16:48+0200\n" +"PO-Revision-Date: 2017-07-16 16:48+0200\n" +"Last-Translator: Aleks \n" +"Language-Team: \n" +"Language: es\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" + +#: api.lua +msgid "** Peaceful Mode Active - No Monsters Will Spawn" +msgstr "" + +#: api.lua +msgid "Mob has been protected!" +msgstr "El mob ha sido protegido!" + +#: api.lua +msgid "@1 (Tamed)" +msgstr "@1 (Domesticado)" + +#: api.lua +msgid "Not tamed!" +msgstr "No domesticado!" + +#: api.lua +msgid "@1 is owner!" +msgstr "@1 es el dueño!" + +#: api.lua +msgid "Missed!" +msgstr "Perdido!" + +#: api.lua +msgid "Already protected!" +msgstr "Ya está protegido!" + +#: api.lua +msgid "@1 at full health (@2)" +msgstr "@1 con salud llena (@2)" + +#: api.lua +msgid "@1 has been tamed!" +msgstr "@1 ha sido domesticado!" + +#: api.lua +msgid "Enter name:" +msgstr "Ingrese nombre:" + +#: api.lua +msgid "Rename" +msgstr "Renombrar" + +#: crafts.lua +msgid "Name Tag" +msgstr "Nombrar etiqueta" + +#: crafts.lua +msgid "Leather" +msgstr "Cuero" + +#: crafts.lua +msgid "Raw Meat" +msgstr "Carne cruda" + +#: crafts.lua +msgid "Meat" +msgstr "Carne" + +#: crafts.lua +msgid "Lasso (right-click animal to put in inventory)" +msgstr "Lazo (click derecho en animal para colocar en inventario)" + +#: crafts.lua +msgid "Net (right-click animal to put in inventory)" +msgstr "Red (click derecho en animal para colocar en inventario)" + +#: crafts.lua +msgid "Steel Shears (right-click to shear)" +msgstr "Tijera de acero (click derecho para esquilar)" + +#: crafts.lua +msgid "Mob Protection Rune" +msgstr "Runa de protección de Mob" + +#: crafts.lua +msgid "Saddle" +msgstr "Montura" + +#: crafts.lua +msgid "Mob Fence" +msgstr "" + +#: spawner.lua +msgid "Mob Spawner" +msgstr "Generador de Mob" + +#: spawner.lua +msgid "Mob MinLight MaxLight Amount PlayerDist" +msgstr "Mob LuzMin LuzMax Cantidad DistJugador" + +#: spawner.lua +msgid "Spawner Not Active (enter settings)" +msgstr "Generador no activo (ingrese config)" + +#: spawner.lua +msgid "Spawner Active (@1)" +msgstr "Generador activo (@1)" + +#: spawner.lua +msgid "Mob Spawner settings failed!" +msgstr "Configuracion de generador de Mob falló!" + +#: spawner.lua +msgid "" +"Syntax: “name min_light[0-14] max_light[0-14] max_mobs_in_area[0 to disable] " +"distance[1-20] y_offset[-10 to 10]”" +msgstr "Sintaxis: “nombre luz_min[0-14] luz_max[0-14] max_mobs_en_area[0 para deshabilitar] " +"distancia[1-20] compensacion[-10 a 10]”" diff --git a/games/default/files/Mobs/mobs/locale/fr.po b/games/default/files/Mobs/mobs/locale/fr.po new file mode 100644 index 000000000..25b920cd9 --- /dev/null +++ b/games/default/files/Mobs/mobs/locale/fr.po @@ -0,0 +1,129 @@ +# SOME DESCRIPTIVE TITLE. +# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER +# This file is distributed under the same license as the PACKAGE package. +# FIRST AUTHOR , YEAR. +# +msgid "" +msgstr "" +"Project-Id-Version: \n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2017-07-29 09:13+0200\n" +"PO-Revision-Date: 2017-07-29 09:20+0200\n" +"Language-Team: \n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Generator: Poedit 1.8.12\n" +"Last-Translator: fat115 \n" +"Plural-Forms: nplurals=2; plural=(n > 1);\n" +"Language: fr\n" + +#: api.lua +msgid "** Peaceful Mode Active - No Monsters Will Spawn" +msgstr "** Mode pacifique activé - Aucun monstre ne sera généré" + +#: api.lua +msgid "Mob has been protected!" +msgstr "L'animal a été protégé !" + +#: api.lua +msgid "@1 (Tamed)" +msgstr "@1 (apprivoisé)" + +#: api.lua +msgid "Not tamed!" +msgstr "Non-apprivoisé !" + +#: api.lua +msgid "@1 is owner!" +msgstr "Appartient à @1 !" + +#: api.lua +msgid "Missed!" +msgstr "Raté !" + +#: api.lua +msgid "Already protected!" +msgstr "Déjà protégé !" + +#: api.lua +msgid "@1 at full health (@2)" +msgstr "@1 est en pleine forme (@2) " + +#: api.lua +msgid "@1 has been tamed!" +msgstr "@1 a été apprivoisé ! " + +#: api.lua +msgid "Enter name:" +msgstr "Saisissez un nom :" + +#: api.lua +msgid "Rename" +msgstr "Renommer" + +#: crafts.lua +msgid "Name Tag" +msgstr "Étiquette pour collier" + +#: crafts.lua +msgid "Leather" +msgstr "Cuir" + +#: crafts.lua +msgid "Raw Meat" +msgstr "Viande crue" + +#: crafts.lua +msgid "Meat" +msgstr "Viande" + +#: crafts.lua +msgid "Lasso (right-click animal to put in inventory)" +msgstr "Lasso (clic droit sur l'animal pour le mettre dans l'inventaire)" + +#: crafts.lua +msgid "Net (right-click animal to put in inventory)" +msgstr "Filet (clic droit sur l'animal pour le mettre dans l'inventaire)" + +#: crafts.lua +msgid "Steel Shears (right-click to shear)" +msgstr "Ciseaux à laine (clic droit pour tondre)" + +#: crafts.lua +msgid "Mob Protection Rune" +msgstr "Rune de protection des animaux" + +#: crafts.lua +msgid "Saddle" +msgstr "Selle" + +#: crafts.lua +msgid "Mob Fence" +msgstr "Clôture à animaux" + +#: spawner.lua +msgid "Mob Spawner" +msgstr "Générateur de mob" + +#: spawner.lua +msgid "Mob MinLight MaxLight Amount PlayerDist" +msgstr "Mob MinLumière MaxLumière Quantité DistanceJoueur" + +#: spawner.lua +msgid "Spawner Not Active (enter settings)" +msgstr "Générateur non actif (entrez les paramètres)" + +#: spawner.lua +msgid "Spawner Active (@1)" +msgstr "Générateur actif (@1)" + +#: spawner.lua +msgid "Mob Spawner settings failed!" +msgstr "Echec des paramètres du générateur" + +#: spawner.lua +msgid "" +"Syntax: “name min_light[0-14] max_light[0-14] max_mobs_in_area[0 to disable] " +"distance[1-20] y_offset[-10 to 10]”" +msgstr "Syntaxe : “nom min_lumière[0-14] max_lumière[0-14] max_mobs_dans_zone[0 pour désactiver] distance[1-20] décalage_y[-10 à 10]“" diff --git a/games/default/files/Mobs/mobs/locale/it.po b/games/default/files/Mobs/mobs/locale/it.po new file mode 100644 index 000000000..a439f6dea --- /dev/null +++ b/games/default/files/Mobs/mobs/locale/it.po @@ -0,0 +1,131 @@ +# ITALIAN LOCALE FILE FOR THE MOBS REDO MODULE +# Copyright (c) 2014 Krupnov Pavel and 2016 TenPlus1 +# This file is distributed under the same license as the MOBS REDO package. +# Hamlet , 2017. +# +msgid "" +msgstr "" +"Project-Id-Version: Italian locale file for the Mobs Redo module\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2017-07-02 16:48+0200\n" +"PO-Revision-Date: 2017-08-18 12:18+0100\n" +"Last-Translator: H4mlet \n" +"Language-Team: \n" +"Language: it\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" +"X-Generator: Poedit 1.6.10\n" + +#: api.lua +msgid "** Peaceful Mode Active - No Monsters Will Spawn" +msgstr "" + +#: api.lua +msgid "Mob has been protected!" +msgstr "Il mob è stato protetto!" + +#: api.lua +msgid "@1 (Tamed)" +msgstr "@1 (Addomesticat*)" + +#: api.lua +msgid "Not tamed!" +msgstr "Non addomesticat*!" + +#: api.lua +msgid "@1 is owner!" +msgstr "Proprietari* @1!" + +#: api.lua +msgid "Missed!" +msgstr "Mancat*!" + +#: api.lua +msgid "Already protected!" +msgstr "Già protett*!" + +#: api.lua +msgid "@1 at full health (@2)" +msgstr "@1 in piena salute (@2)" + +#: api.lua +msgid "@1 has been tamed!" +msgstr "@1 è stat* addomesticat*!" + +#: api.lua +msgid "Enter name:" +msgstr "Inserire il nome:" + +#: api.lua +msgid "Rename" +msgstr "Rinominare" + +#: crafts.lua +msgid "Name Tag" +msgstr "Targhetta" + +#: crafts.lua +msgid "Leather" +msgstr "Pelle" + +#: crafts.lua +msgid "Raw Meat" +msgstr "Carne cruda" + +#: crafts.lua +msgid "Meat" +msgstr "Carne" + +#: crafts.lua +msgid "Lasso (right-click animal to put in inventory)" +msgstr "Lazo (click di destro per mettere l'animale nell'inventario)" + +#: crafts.lua +msgid "Net (right-click animal to put in inventory)" +msgstr "Rete (click destro per mettere l'animale nell'inventario)" + +#: crafts.lua +msgid "Steel Shears (right-click to shear)" +msgstr "Cesoie d'acciaio (click destro per tosare)" + +#: crafts.lua +msgid "Mob Protection Rune" +msgstr "Runa di protezione per mob" + +#: crafts.lua +msgid "Saddle" +msgstr "Sella" + +#: crafts.lua +msgid "Mob Fence" +msgstr "" + +#: spawner.lua +msgid "Mob Spawner" +msgstr "Generatore di mob" + +#: spawner.lua +msgid "Mob MinLight MaxLight Amount PlayerDist" +msgstr "Mob LuceMin LuceMax Ammontare DistGiocat." + +#: spawner.lua +msgid "Spawner Not Active (enter settings)" +msgstr "Generatore inattivo (inserire le impostazioni)" + +#: spawner.lua +msgid "Spawner Active (@1)" +msgstr "Generatore attivo (@1)" + +#: spawner.lua +msgid "Mob Spawner settings failed!" +msgstr "Impostazioni del generatore di mob fallite!" + +#: spawner.lua +msgid "" +"Syntax: “name min_light[0-14] max_light[0-14] max_mobs_in_area[0 to disable] " +"distance[1-20] y_offset[-10 to 10]”" +msgstr "" +"Sintassi: “name min_light[0-14] max_light[0-14] max_mobs_in_area[0 per " +"disabilitare] distance[1-20] y_offset[-10 to 10]”" diff --git a/games/default/files/Mobs/mobs/locale/ms.po b/games/default/files/Mobs/mobs/locale/ms.po new file mode 100644 index 000000000..a2a31f3f8 --- /dev/null +++ b/games/default/files/Mobs/mobs/locale/ms.po @@ -0,0 +1,131 @@ +# SOME DESCRIPTIVE TITLE. +# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER +# This file is distributed under the same license as the PACKAGE package. +# FIRST AUTHOR , YEAR. +# +msgid "" +msgstr "" +"Project-Id-Version: \n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2018-02-05 23:40+0800\n" +"PO-Revision-Date: 2018-02-05 23:51+0800\n" +"Language-Team: \n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Generator: Poedit 2.0.6\n" +"Last-Translator: MuhdNurHidayat (MNH48) \n" +"Plural-Forms: nplurals=1; plural=0;\n" +"Language: ms\n" + +#: api.lua +msgid "** Peaceful Mode Active - No Monsters Will Spawn" +msgstr "** Mod Aman Diaktifkan - Tiada Raksasa Akan Muncul" + +#: api.lua +msgid "Mob has been protected!" +msgstr "Mob telah pun dilindungi!" + +#: api.lua +msgid "@1 (Tamed)" +msgstr "@1 (Jinak)" + +#: api.lua +msgid "Not tamed!" +msgstr "Belum dijinakkan!" + +#: api.lua +msgid "@1 is owner!" +msgstr "Ini hak milik @1!" + +#: api.lua +msgid "Missed!" +msgstr "Terlepas!" + +#: api.lua +msgid "Already protected!" +msgstr "Telah dilindungi!" + +#: api.lua +msgid "@1 at full health (@2)" +msgstr "Mata kesihatan @1 telah penuh (@2)" + +#: api.lua +msgid "@1 has been tamed!" +msgstr "@1 telah dijinakkan!" + +#: api.lua +msgid "Enter name:" +msgstr "Masukkan nama:" + +#: api.lua +msgid "Rename" +msgstr "Namakan semula" + +#: crafts.lua +msgid "Name Tag" +msgstr "Tanda Nama" + +#: crafts.lua +msgid "Leather" +msgstr "Kulit" + +#: crafts.lua +msgid "Raw Meat" +msgstr "Daging Mentah" + +#: crafts.lua +msgid "Meat" +msgstr "Daging Bakar" + +#: crafts.lua +msgid "Lasso (right-click animal to put in inventory)" +msgstr "Tanjul (klik-kanan haiwan untuk masukkan ke inventori)" + +#: crafts.lua +msgid "Net (right-click animal to put in inventory)" +msgstr "Jaring (klik-kanan haiwan untuk masukkan ke inventori)" + +#: crafts.lua +msgid "Steel Shears (right-click to shear)" +msgstr "Ketam Keluli (klik-kanan untuk mengetam bulu biri-biri)" + +#: crafts.lua +msgid "Mob Protection Rune" +msgstr "Rune Perlindungan Mob" + +#: crafts.lua +msgid "Saddle" +msgstr "Pelana" + +#: crafts.lua +msgid "Mob Fence" +msgstr "Pagar Mob" + +#: spawner.lua +msgid "Mob Spawner" +msgstr "Pewujud Mob" + +#: spawner.lua +msgid "Mob MinLight MaxLight Amount PlayerDist" +msgstr "Mob CahayaMin CahayaMax Amaun JarakPemain" + +#: spawner.lua +msgid "Spawner Not Active (enter settings)" +msgstr "Pewujud Mob Tidak Aktif (masukkan tetapan)" + +#: spawner.lua +msgid "Spawner Active (@1)" +msgstr "Pewujud Mob Aktif (@1)" + +#: spawner.lua +msgid "Mob Spawner settings failed!" +msgstr "Penetapan Pewujud Mob gagal!" + +#: spawner.lua +msgid "" +"Syntax: “name min_light[0-14] max_light[0-14] max_mobs_in_area[0 to disable] " +"distance[1-20] y_offset[-10 to 10]”" +msgstr "" +"Sintaks: \"nama cahaya_minimum[0-14] cahaya_maksimum[0-14] " +"amaun_mob_maksimum[0 untuk lumpuhkan] jarak[1-20] ketinggian[-10 hingga 10]\"" diff --git a/games/default/files/Mobs/mobs/locale/pt.po b/games/default/files/Mobs/mobs/locale/pt.po new file mode 100644 index 000000000..b52afd622 --- /dev/null +++ b/games/default/files/Mobs/mobs/locale/pt.po @@ -0,0 +1,133 @@ +# SOME DESCRIPTIVE TITLE. +# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER +# This file is distributed under the same license as the PACKAGE package. +# FIRST AUTHOR , YEAR. +# +msgid "" +msgstr "" +"Project-Id-Version: mobs\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2017-07-02 16:48+0200\n" +"PO-Revision-Date: 2017-07-02 14:55+0200\n" +"Last-Translator: Wuzzy \n" +"Language-Team: \n" +"Language: pt\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Generator: Poedit 2.0.2\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" + +#: api.lua +msgid "** Peaceful Mode Active - No Monsters Will Spawn" +msgstr "" + +#: api.lua +msgid "Mob has been protected!" +msgstr "" + +#: api.lua +msgid "@1 (Tamed)" +msgstr "" + +#: api.lua +msgid "Not tamed!" +msgstr "Indomesticado!" + +#: api.lua +msgid "@1 is owner!" +msgstr "Dono @1!" + +#: api.lua +msgid "Missed!" +msgstr "Faltou!" + +#: api.lua +msgid "Already protected!" +msgstr "" + +#: api.lua +msgid "@1 at full health (@2)" +msgstr "@1 em plena saude (@2)" + +#: api.lua +msgid "@1 has been tamed!" +msgstr "@1 foi domesticado!" + +#: api.lua +msgid "Enter name:" +msgstr "Insira um nome:" + +#: api.lua +msgid "Rename" +msgstr "Renomear" + +#: crafts.lua +msgid "Name Tag" +msgstr "Etiqueta" + +#: crafts.lua +msgid "Leather" +msgstr "Couro" + +#: crafts.lua +msgid "Raw Meat" +msgstr "Carne crua" + +#: crafts.lua +msgid "Meat" +msgstr "Carne" + +#: crafts.lua +#, fuzzy +msgid "Lasso (right-click animal to put in inventory)" +msgstr "Laço (clique-direito no animal para por no inventario)" + +#: crafts.lua +msgid "Net (right-click animal to put in inventory)" +msgstr "Net (clique-direito no animal para por no inventario)" + +#: crafts.lua +msgid "Steel Shears (right-click to shear)" +msgstr "Tesoura de Aço (clique-direito para tosquiar)" + +#: crafts.lua +msgid "Mob Protection Rune" +msgstr "" + +#: crafts.lua +msgid "Saddle" +msgstr "" + +#: crafts.lua +msgid "Mob Fence" +msgstr "" + +#: spawner.lua +msgid "Mob Spawner" +msgstr "Spawnador de Mob" + +#: spawner.lua +msgid "Mob MinLight MaxLight Amount PlayerDist" +msgstr "Mob LuzMinima LuzMaxima Valor DistJogador" + +#: spawner.lua +msgid "Spawner Not Active (enter settings)" +msgstr "Spawnador Inativo (configurar)" + +#: spawner.lua +msgid "Spawner Active (@1)" +msgstr "Spawnador Ativo (@1)" + +#: spawner.lua +msgid "Mob Spawner settings failed!" +msgstr "Configuraçao de Spawnador do Mob falhou!" + +#: spawner.lua +#, fuzzy +msgid "" +"Syntax: “name min_light[0-14] max_light[0-14] max_mobs_in_area[0 to disable] " +"distance[1-20] y_offset[-10 to 10]”" +msgstr "" +"> nome luz_min[0-14] luz_max[0-14] max_mobs_na_area[0 para desabilitar] " +"distancia[1-20] y_offset[-10 a 10]" diff --git a/games/default/files/Mobs/mobs/locale/ru.po b/games/default/files/Mobs/mobs/locale/ru.po new file mode 100644 index 000000000..6cde7ef91 --- /dev/null +++ b/games/default/files/Mobs/mobs/locale/ru.po @@ -0,0 +1,129 @@ +# Russian translation for the mobs_redo mod. +# Copyright (C) 2018 TenPlus1 +# This file is distributed under the same license as the mobs_redo package. +# Oleg720 , 2017. +# CodeXP , 2018. +# +#, fuzzy +msgid "" +msgstr "" +"Project-Id-Version: PACKAGE VERSION\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2017-08-13 15:47+0200\n" +"PO-Revision-Date: 2018-03-23 22:22+0100\n" +"Last-Translator: CodeXP \n" +"Language-Team: \n" +"Language: ru\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" + +#: api.lua +msgid "** Peaceful Mode Active - No Monsters Will Spawn" +msgstr "** Мирный модус активирован - монстры не спаунятся" + +#: api.lua +msgid "Mob has been protected!" +msgstr "Моб защищен!" + +#: api.lua +msgid "@1 (Tamed)" +msgstr "@1 (Прирученный)" + +#: api.lua +msgid "Not tamed!" +msgstr "Не прирученный" + +#: api.lua +msgid "@1 is owner!" +msgstr "@1 владелец" + +#: api.lua +msgid "Missed!" +msgstr "Промазал!" + +#: api.lua +msgid "Already protected!" +msgstr "Уже защищен!" + +#: api.lua +msgid "@1 at full health (@2)" +msgstr "@1 при полном здоровье (@2)" + +#: api.lua +msgid "@1 has been tamed!" +msgstr "@1 приручен" + +#: api.lua +msgid "Enter name:" +msgstr "Введите имя:" + +#: api.lua +msgid "Rename" +msgstr "Переименовать" + +#: crafts.lua +msgid "Name Tag" +msgstr "Новый тэг" + +#: crafts.lua +msgid "Leather" +msgstr "Кожа" + +#: crafts.lua +msgid "Raw Meat" +msgstr "Сырое мясо" + +#: crafts.lua +msgid "Meat" +msgstr "Мясо" + +#: crafts.lua +msgid "Lasso (right-click animal to put in inventory)" +msgstr "Лассо (Правый клик - положить животное в инвентарь)" + +#: crafts.lua +msgid "Net (right-click animal to put in inventory)" +msgstr "Сеть (Правый клик - положить животное в инвентарь)" + +#: crafts.lua +msgid "Steel Shears (right-click to shear)" +msgstr "Ножницы (Правый клик - подстричь)" + +#: crafts.lua +msgid "Mob Protection Rune" +msgstr "Защитная руна мобов" + +#: crafts.lua +msgid "Saddle" +msgstr "Седло" + +#: crafts.lua +msgid "Mob Fence" +msgstr "Забор от мобов" + +#: spawner.lua +msgid "Mob Spawner" +msgstr "Спаунер моба" + +#: spawner.lua +msgid "Mob MinLight MaxLight Amount PlayerDist" +msgstr "" + +#: spawner.lua +msgid "Spawner Not Active (enter settings)" +msgstr "Спаунер не активен (введите настройки)" + +#: spawner.lua +msgid "Spawner Active (@1)" +msgstr "Активные спаунер (@1)" + +#: spawner.lua +msgid "Mob Spawner settings failed!" +msgstr "Настройки спаунера моба провалились" + +#: spawner.lua +msgid "" +"Syntax: “name min_light[0-14] max_light[0-14] max_mobs_in_area[0 to disable] " +"distance[1-20] y_offset[-10 to 10]”" +msgstr "" diff --git a/games/default/files/Mobs/mobs/locale/template.pot b/games/default/files/Mobs/mobs/locale/template.pot new file mode 100644 index 000000000..e69de29bb diff --git a/games/default/files/Mobs/mobs/locale/tr.po b/games/default/files/Mobs/mobs/locale/tr.po new file mode 100644 index 000000000..10688e20d --- /dev/null +++ b/games/default/files/Mobs/mobs/locale/tr.po @@ -0,0 +1,133 @@ +# SOME DESCRIPTIVE TITLE. +# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER +# This file is distributed under the same license as the PACKAGE package. +# FIRST AUTHOR , YEAR. +# +msgid "" +msgstr "" +"Project-Id-Version: mobs\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2017-07-02 16:48+0200\n" +"PO-Revision-Date: 2017-07-02 14:56+0200\n" +"Last-Translator: Wuzzy \n" +"Language-Team: \n" +"Language: tr\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Generator: Poedit 2.0.2\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" + +#: api.lua +msgid "** Peaceful Mode Active - No Monsters Will Spawn" +msgstr "" + +#: api.lua +msgid "Mob has been protected!" +msgstr "" + +#: api.lua +msgid "@1 (Tamed)" +msgstr "" + +#: api.lua +msgid "Not tamed!" +msgstr "Evcil değil!" + +#: api.lua +msgid "@1 is owner!" +msgstr "Sahibi @1!" + +#: api.lua +msgid "Missed!" +msgstr "Kaçırdın!" + +#: api.lua +msgid "Already protected!" +msgstr "" + +#: api.lua +msgid "@1 at full health (@2)" +msgstr "@1 tam canında (@2)" + +#: api.lua +msgid "@1 has been tamed!" +msgstr "@1 tamamen evcilleştirilmiştir!" + +#: api.lua +msgid "Enter name:" +msgstr "İsim gir:" + +#: api.lua +msgid "Rename" +msgstr "Yeniden adlandır" + +#: crafts.lua +msgid "Name Tag" +msgstr "İsim etiketi" + +#: crafts.lua +msgid "Leather" +msgstr "Deri" + +#: crafts.lua +msgid "Raw Meat" +msgstr "Çiğ et" + +#: crafts.lua +msgid "Meat" +msgstr "Et" + +#: crafts.lua +#, fuzzy +msgid "Lasso (right-click animal to put in inventory)" +msgstr "Kement (hayvana sağ tıklayarak envantere koy)" + +#: crafts.lua +msgid "Net (right-click animal to put in inventory)" +msgstr "Ağ (hayvana sağ tıklayarak envantere koy)" + +#: crafts.lua +msgid "Steel Shears (right-click to shear)" +msgstr "Çelik makas (sağ tıklayarak kes)" + +#: crafts.lua +msgid "Mob Protection Rune" +msgstr "" + +#: crafts.lua +msgid "Saddle" +msgstr "" + +#: crafts.lua +msgid "Mob Fence" +msgstr "Canavar Yaratıcı" + +#: spawner.lua +msgid "Mob Spawner" +msgstr "Canavar Yaratıcı" + +#: spawner.lua +msgid "Mob MinLight MaxLight Amount PlayerDist" +msgstr "Mob MinIşık MaxIşık Miktar OyuncuMesafesi" + +#: spawner.lua +msgid "Spawner Not Active (enter settings)" +msgstr "Yaratıcı aktif değil (ayarlara gir)" + +#: spawner.lua +msgid "Spawner Active (@1)" +msgstr "Yaratıcı aktif (@1)" + +#: spawner.lua +msgid "Mob Spawner settings failed!" +msgstr "Yaratıcı ayarları uygulanamadı." + +#: spawner.lua +#, fuzzy +msgid "" +"Syntax: “name min_light[0-14] max_light[0-14] max_mobs_in_area[0 to disable] " +"distance[1-20] y_offset[-10 to 10]”" +msgstr "" +"> isim min_isik[0-14] max_isik[0-14] alandaki_max_canavar_sayisi[kapatmak " +"icin 0] mesafe[1-20] y_cikinti[-10 ve 10 arası]" diff --git a/games/default/files/Mobs/mobs/lucky_block.lua b/games/default/files/Mobs/mobs/lucky_block.lua new file mode 100644 index 000000000..8cf20edd1 --- /dev/null +++ b/games/default/files/Mobs/mobs/lucky_block.lua @@ -0,0 +1,17 @@ + +if minetest.get_modpath("lucky_block") then + + lucky_block:add_blocks({ + {"dro", {"mobs:meat_raw"}, 5}, + {"dro", {"mobs:meat"}, 5}, + {"dro", {"mobs:nametag"}, 1}, + {"dro", {"mobs:leather"}, 5}, + {"dro", {"default:stick"}, 10}, + {"dro", {"mobs:net"}, 1}, + {"dro", {"mobs:lasso"}, 1}, + {"dro", {"mobs:shears"}, 1}, + {"dro", {"mobs:protector"}, 1}, + {"dro", {"mobs:fence_wood"}, 10}, + {"lig"}, + }) +end diff --git a/games/default/files/mobs_redo/mod.conf b/games/default/files/Mobs/mobs/mod.conf similarity index 100% rename from games/default/files/mobs_redo/mod.conf rename to games/default/files/Mobs/mobs/mod.conf diff --git a/games/default/files/Mobs/mobs/mount.lua b/games/default/files/Mobs/mobs/mount.lua new file mode 100644 index 000000000..d1f5841a8 --- /dev/null +++ b/games/default/files/Mobs/mobs/mount.lua @@ -0,0 +1,448 @@ + +-- lib_mount by Blert2112 (edited by TenPlus1) + +local enable_crash = false +local crash_threshold = 6.5 -- ignored if enable_crash=false + +------------------------------------------------------------------------------ + +-- +-- Helper functions +-- + +local node_ok = function(pos, fallback) + + fallback = fallback or mobs.fallback_node + + local node = minetest.get_node_or_nil(pos) + + if node and minetest.registered_nodes[node.name] then + return node + end + + return {name = fallback} +end + + +local function node_is(pos) + + local node = node_ok(pos) + + if node.name == "air" then + return "air" + end + + if minetest.get_item_group(node.name, "lava") ~= 0 then + return "lava" + end + + if minetest.get_item_group(node.name, "liquid") ~= 0 then + return "liquid" + end + + if minetest.registered_nodes[node.name].walkable == true then + return "walkable" + end + + return "other" +end + + +local function get_sign(i) + + i = i or 0 + + if i == 0 then + return 0 + else + return i / math.abs(i) + end +end + + +local function get_velocity(v, yaw, y) + + local x = -math.sin(yaw) * v + local z = math.cos(yaw) * v + + return {x = x, y = y, z = z} +end + + +local function get_v(v) + return math.sqrt(v.x * v.x + v.z * v.z) +end + + +local function force_detach(player) + + local attached_to = player:get_attach() + + if not attached_to then + return + end + + local entity = attached_to:get_luaentity() + + if entity.driver + and entity.driver == player then + + entity.driver = nil + end + + player:set_detach() + default.player_attached[player:get_player_name()] = false + player:set_eye_offset({x = 0, y = 0, z = 0}, {x = 0, y = 0, z = 0}) + default.player_set_animation(player, "stand" , 30) + player:set_properties({visual_size = {x = 1, y = 1} }) + +end + +------------------------------------------------------------------------------- + + +minetest.register_on_leaveplayer(function(player) + force_detach(player) +end) + +minetest.register_on_shutdown(function() + local players = minetest.get_connected_players() + for i = 1, #players do + force_detach(players[i]) + end +end) + +minetest.register_on_dieplayer(function(player) + force_detach(player) + return true +end) + +------------------------------------------------------------------------------- + +function mobs.attach(entity, player) + + local attach_at, eye_offset = {}, {} + + entity.player_rotation = entity.player_rotation or {x = 0, y = 0, z = 0} + entity.driver_attach_at = entity.driver_attach_at or {x = 0, y = 0, z = 0} + entity.driver_eye_offset = entity.driver_eye_offset or {x = 0, y = 0, z = 0} + entity.driver_scale = entity.driver_scale or {x = 1, y = 1} + + local rot_view = 0 + + if entity.player_rotation.y == 90 then + rot_view = math.pi/2 + end + + attach_at = entity.driver_attach_at + eye_offset = entity.driver_eye_offset + entity.driver = player + + force_detach(player) + + player:set_attach(entity.object, "", attach_at, entity.player_rotation) + default.player_attached[player:get_player_name()] = true + player:set_eye_offset(eye_offset, {x = 0, y = 0, z = 0}) + + player:set_properties({ + visual_size = { + x = entity.driver_scale.x, + y = entity.driver_scale.y + } + }) + + minetest.after(0.2, function() + default.player_set_animation(player, "sit" , 30) + end) + + --player:set_look_yaw(entity.object:get_yaw() - rot_view) + player:set_look_horizontal(entity.object:get_yaw() - rot_view) +end + + +function mobs.detach(player, offset) + + force_detach(player) + + default.player_set_animation(player, "stand" , 30) + + local pos = player:get_pos() + + pos = {x = pos.x + offset.x, y = pos.y + 0.2 + offset.y, z = pos.z + offset.z} + + minetest.after(0.1, function() + player:set_pos(pos) + end) +end + + +function mobs.drive(entity, moving_anim, stand_anim, can_fly, dtime) + + local rot_steer, rot_view = math.pi/2, 0 + + if entity.player_rotation.y == 90 then + rot_steer, rot_view = 0, math.pi/2 + end + + local acce_y = 0 + local velo = entity.object:get_velocity() + + entity.v = get_v(velo) * get_sign(entity.v) + + -- process controls + if entity.driver then + +--print ("---velo", get_v(velo)) + + local ctrl = entity.driver:get_player_control() + + -- move forwards + if ctrl.up then + + entity.v = entity.v + entity.accel / 10 + + -- move backwards + elseif ctrl.down then + + if entity.max_speed_reverse == 0 and entity.v == 0 then + return + end + + entity.v = entity.v - entity.accel / 10 + end + + -- fix mob rotation + entity.object:set_yaw(entity.driver:get_look_horizontal() - entity.rotate) + + if can_fly then + + -- fly up + if ctrl.jump then + velo.y = velo.y + 1 + if velo.y > entity.accel then velo.y = entity.accel end + + elseif velo.y > 0 then + velo.y = velo.y - 0.1 + if velo.y < 0 then velo.y = 0 end + end + + -- fly down + if ctrl.sneak then + velo.y = velo.y - 1 + if velo.y < -entity.accel then velo.y = -entity.accel end + + elseif velo.y < 0 then + velo.y = velo.y + 0.1 + if velo.y > 0 then velo.y = 0 end + end + + else + + -- jump + if ctrl.jump then + + if velo.y == 0 then + velo.y = velo.y + entity.jump_height + acce_y = acce_y + (acce_y * 3) + 1 + end + end + + end + end + + -- if not moving then set animation and return + if entity.v == 0 and velo.x == 0 and velo.y == 0 and velo.z == 0 then + + if stand_anim then + mobs:set_animation(entity, stand_anim) + end + + return + end + + -- set moving animation + if moving_anim then + mobs:set_animation(entity, moving_anim) + end + + -- Stop! + local s = get_sign(entity.v) + + entity.v = entity.v - 0.02 * s + + if s ~= get_sign(entity.v) then + + entity.object:set_velocity({x = 0, y = 0, z = 0}) + entity.v = 0 + return + end + + -- enforce speed limit forward and reverse + local max_spd = entity.max_speed_reverse + + if get_sign(entity.v) >= 0 then + max_spd = entity.max_speed_forward + end + + if math.abs(entity.v) > max_spd then + entity.v = entity.v - get_sign(entity.v) + end + + -- Set position, velocity and acceleration + local p = entity.object:get_pos() + local new_velo = {x = 0, y = 0, z = 0} + local new_acce = {x = 0, y = -9.8, z = 0} + + p.y = p.y - 0.5 + + local ni = node_is(p) + local v = entity.v + + if ni == "air" then + + if can_fly == true then + new_acce.y = 0 + end + + elseif ni == "liquid" or ni == "lava" then + + if ni == "lava" and entity.lava_damage ~= 0 then + + entity.lava_counter = (entity.lava_counter or 0) + dtime + + if entity.lava_counter > 1 then + + minetest.sound_play("default_punch", { + object = entity.object, + max_hear_distance = 5 + }) + + entity.object:punch(entity.object, 1.0, { + full_punch_interval = 1.0, + damage_groups = {fleshy = entity.lava_damage} + }, nil) + + entity.lava_counter = 0 + end + end + + if entity.terrain_type == 2 + or entity.terrain_type == 3 then + + new_acce.y = 0 + p.y = p.y + 1 + + if node_is(p) == "liquid" then + + if velo.y >= 5 then + velo.y = 5 + elseif velo.y < 0 then + new_acce.y = 20 + else + new_acce.y = 5 + end + else + if math.abs(velo.y) < 1 then + local pos = entity.object:get_pos() + pos.y = math.floor(pos.y) + 0.5 + entity.object:set_pos(pos) + velo.y = 0 + end + end + else + v = v * 0.25 + end + end + + new_velo = get_velocity(v, entity.object:get_yaw() - rot_view, velo.y) + new_acce.y = new_acce.y + acce_y + + entity.object:set_velocity(new_velo) + entity.object:set_acceleration(new_acce) + + -- CRASH! + if enable_crash then + + local intensity = entity.v2 - v + + if intensity >= crash_threshold then + +--print("----------- crash", intensity) + + entity.object:punch(entity.object, 1.0, { + full_punch_interval = 1.0, + damage_groups = {fleshy = intensity} + }, nil) + + end + end + + entity.v2 = v +end + + +-- directional flying routine by D00Med (edited by TenPlus1) + +function mobs.fly(entity, dtime, speed, shoots, arrow, moving_anim, stand_anim) + + local ctrl = entity.driver:get_player_control() + local velo = entity.object:get_velocity() + local dir = entity.driver:get_look_dir() + local yaw = entity.driver:get_look_horizontal() + 1.57 -- offset fix between old and new commands + local rot_steer, rot_view = math.pi / 2, 0 + + if entity.player_rotation.y == 90 then + rot_steer, rot_view = 0, math.pi / 2 + end + + if ctrl.up then + entity.object:set_velocity({ + x = dir.x * speed, + y = dir.y * speed + 2, + z = dir.z * speed + }) + + elseif ctrl.down then + entity.object:set_velocity({ + x = -dir.x * speed, + y = dir.y * speed + 2, + z = -dir.z * speed + }) + + elseif not ctrl.down or ctrl.up or ctrl.jump then + entity.object:set_velocity({x = 0, y = -2, z = 0}) + end + + entity.object:set_yaw(yaw + math.pi + math.pi / 2 - entity.rotate) + + -- firing arrows + if ctrl.LMB and ctrl.sneak and shoots then + + local pos = entity.object:get_pos() + local obj = minetest.add_entity({ + x = pos.x + 0 + dir.x * 2.5, + y = pos.y + 1.5 + dir.y, + z = pos.z + 0 + dir.z * 2.5}, arrow) + + local ent = obj:get_luaentity() + if ent then + ent.switch = 1 -- for mob specific arrows + ent.owner_id = tostring(entity.object) -- so arrows dont hurt entity you are riding + local vec = {x = dir.x * 6, y = dir.y * 6, z = dir.z * 6} + local yaw = entity.driver:get_look_horizontal() + obj:set_yaw(yaw + math.pi / 2) + obj:set_velocity(vec) + else + obj:remove() + end + end + + -- change animation if stopped + if velo.x == 0 and velo.y == 0 and velo.z == 0 then + + mobs:set_animation(entity, stand_anim) + else + -- moving animation + mobs:set_animation(entity, moving_anim) + end +end diff --git a/games/default/files/Mobs/mobs/readme.MD b/games/default/files/Mobs/mobs/readme.MD new file mode 100644 index 000000000..a9e0fc90e --- /dev/null +++ b/games/default/files/Mobs/mobs/readme.MD @@ -0,0 +1,79 @@ + +MOBS REDO for MINETEST + +Built from PilzAdam's original Simple Mobs with additional mobs by KrupnoPavel, Zeg9, ExeterDad and AspireMint. + + +This mod contains the API only for adding your own mobs into the world, so please use the additional modpacks to add animals, monsters etc. + + +https://forum.minetest.net/viewtopic.php?f=11&t=9917 + + +Crafts: + + - Nametag (paper, black dye, string) can be used right-click on a tamed mob to give them a name. + - Nets can be used to right-click tamed mobs to pick them up and place inside inventory as a spawn egg. + - Magic Lasso is similar to nets but with a better chance of picking up larger mobs. + - Shears are used to right-click sheep and return 1-3 wool. + - Protection Rune lets you protect tamed mobs from harm by other players + +Lucky Blocks: 9 + + +Changelog: +- 1.44- Added ToolRanks support for swords when attacking mobs +- 1.43- Better 0.4.16 compatibility, added general attack function and settings +- 1.42- Added "all" option to immune_to table, tidied floating mobs to be less intensive +- 1.41- Mob pathfinding has been updated thanks to Elkien3 +- 1.40- Updated to use newer functions, requires Minetest 0.4.16+ to work. +- 1.39- Added 'on_breed', 'on_grown' and 'do_punch' custom functions per mob +- 1.38- Better entity checking, nametag setting and on_spawn function added to mob registry, tweaked light damage +- 1.37- Added support for Raymoo's CMI (common mob interface) mod: https://forum.minetest.net/viewtopic.php?f=9&t=15448 +- 1.36- Death check added, if mob dies in fire/lava/with lava pick then drops are cooked +- 1.35- Added owner_loyal flag for owned mobs to attack player enemies, also fixed group_attack +- 1.34- Added function to fly mob using directional movement (thanks D00Med for flying code) +- 1.33- Added functions to mount ride mobs (mobs.attach, mobs.detach, mobs.drive) many thanks to Blert2112 +- 1.32- Added new spawn check to count specific mobs AND new minetest.conf setting to chance spawn chance and numbers, added ability to protect tamed mobs +- 1.31- Added 'attack_animals' and 'specific_attack' flags for custom monster attacks, also 'mob_difficulty' .conf setting to make mobs harder. +- 1.30- Added support for invisibility mod (mobs cant attack what they cant see), tweaked and tidied code +- 1.29- Split original Mobs Redo into a modpack to make it easier to disable mob sets (animal, monster, npc) or simply use the Api itself for your own mod +- 1.28- New damage system added with ability for mob to be immune to weapons or healed by them :) +- 1.27- Added new sheep, lava flan and spawn egg textures. New Lava Pick tool smelts what you dig. New atan checking function. +- 1.26- Pathfinding feature added thanks to rnd, when monsters attack they become scary smart in finding you :) also, beehive produces honey now :) +- 1.25- Mobs no longer spawn within 12 blocks of player or despawn within same range, spawners now have player detection, Code tidy and tweak. +- 1.24- Added feature where certain animals run away when punched (runaway = true in mob definition) +- 1.23- Added mob spawner block for admin to setup spawners in-game (place and right click to enter settings) +- 1.22- Added ability to name tamed animals and npc using nametags, also npc will attack anyone who punches them apart from owner +- 1.21- Added some more error checking to reduce serialize.h error and added height checks for falling off cliffs (thanks cmdskp) +- 1.20- Error checking added to remove bad mobs, out of map limit mobs and stop serialize.h error +- 1.19- Chickens now drop egg items instead of placing the egg, also throwing eggs result in 1/8 chance of spawning chick +- 1.18- Added docile_by_day flag so that monsters will not attack automatically during daylight hours unless hit first +- 1.17- Added 'dogshoot' attack type, shoots when out of reach, melee attack when in reach, also api tweaks and self.reach added +- 1.16- Mobs follow multiple items now, Npc's can breed +- 1.15- Added Feeding/Taming/Breeding function, right-click to pick up any sheep with X mark on them and replace with new one to fix compatibility. +- 1.14- All .self variables saved in staticdata, Fixed self.health bug +- 1.13- Added capture function (thanks blert2112) chance of picking up mob with hand; net; magic lasso, replaced some .x models with newer .b3d one's +- 1.12- Added animal ownership so that players cannot steal your tamed animals +- 1.11- Added flying mobs (and swimming), fly=true and fly_in="air" or "deafult:water_source" for fishy +- 1,10- Footstep removed (use replace), explosion routine added for exploding mobs. +- 1.09- reworked breeding routine, added mob rotation value, added footstep feature, added jumping mobs with sounds feature, added magic lasso for picking up animals +- 1.08- Mob throwing attack has been rehauled so that they can damage one another, also drops and on_die function added +- 1.07- Npc's can now be set to follow player or stand by using self.order and self.owner variables +- beta- Npc mob added, kills monsters, attacks player when punched, right click with food to heal or gold lump for drop +- 1.06- Changed recovery times after breeding, and time taken to grow up (can be sped up by feeding baby animal) +- 1.05- Added ExeterDad's bunny's which can be picked up and tamed with 4 carrots from farming redo or farming_plus, also shears added to get wool from sheep and lastly Jordach/BSD's kitten +- 1.04- Added mating for sheep, cows and hogs... feed animals to make horny and hope for a baby which is half size, will grow up quick though :) +- 1.03- Added mob drop/replace feature so that chickens can drop eggs, cow/sheep can eat grass/wheat etc. +- 1.02- Sheared sheep are remembered and spawn shaven, Warthogs will attack when threatened, Api additions +- 1.01- Mobs that suffer fall damage or die in water/lava/sunlight will now drop items +- 1.0 - more work on Api so that certain mobs can float in water while some sink like a brick :) +- 0.9 - Spawn eggs added for all mobs (admin only, cannot be placed in protected areas)... Api tweaked +- 0.8 - Added sounds to monster mobs (thanks Cyberpangolin for the sfx) and also chicken sound +- 0.7 - mobs.protected switch added to api.lua, when set to 1 mobs no longer spawn in protected areas, also bug fixes +- 0.6 - Api now supports multi-textured mobs, e.g oerkki, dungeon master, rats and chickens have random skins when spawning (sheep fix TODO), also new Honey block +- 0.5 - Mobs now float in water, die from falling, and some code improvements +- 0.4 - Dungeon Masters and Mese Monsters have much better aim due to shoot_offset, also they can both shoot through nodes that aren't walkable (flowers, grass etc) plus new sheep sound :) +- 0.3 - Added LOTT's Spider mob, made Cobwebs, added KPavel's Bee with Honey and Beehives (made texture), Warthogs now have sound and can be tamed, taming of shaved sheep or milked cow with 8 wheat so it will not despawn, many bug fixes :) +- 0.2 - Cooking bucket of milk into cheese now returns empty bucket +- 0.1 - Initial Release diff --git a/games/default/files/Mobs/mobs/settingtypes.txt b/games/default/files/Mobs/mobs/settingtypes.txt new file mode 100644 index 000000000..082143741 --- /dev/null +++ b/games/default/files/Mobs/mobs/settingtypes.txt @@ -0,0 +1,29 @@ +# If false then mobs no longer spawn in world without spawner or spawn egg +mobs_spawn (Spawn Mobs) bool true + +# If enabled then monsters no longer spawn in world +only_peaceful_mobs (Only spawn peaceful Mobs) bool false + +# If enabled then punching mobs no longer shows blood effects +mobs_disable_blood (Disable Mob blood) bool false + +# If disabled then Mobs no longer destroy world blocks +mobs_griefing (Griefing Mobs) bool true + +# If false then Mobs no longer spawn inside player protected areas +mobs_spawn_protected (Spawn Mobs in protected areas) bool true + +# If true Mobs will be removed once a map chunk is out of view +remove_far_mobs (Remove far Mobs) bool true + +# Sets Mob difficulty level by multiplying punch damage +mob_difficulty (Mob difficulty) float 1.0 + +# If disabled health status no longer appears above Mob when punched +mob_show_health (Show Mob health) bool true + +# Contains a value used to multiply Mob spawn values +mob_chance_multiplier (Mob chance multiplier) float 1.0 + +# When false Mob no longer drop items when killed +mobs_drop_items (Mob drops) bool true diff --git a/games/default/files/default/sounds/player_punch.1.ogg b/games/default/files/Mobs/mobs/sounds/default_punch.ogg similarity index 100% rename from games/default/files/default/sounds/player_punch.1.ogg rename to games/default/files/Mobs/mobs/sounds/default_punch.ogg diff --git a/games/default/files/mobs_redo/sounds/license.txt b/games/default/files/Mobs/mobs/sounds/license.txt similarity index 100% rename from games/default/files/mobs_redo/sounds/license.txt rename to games/default/files/Mobs/mobs/sounds/license.txt diff --git a/games/default/files/mobs_redo/sounds/mobs_spell.ogg b/games/default/files/Mobs/mobs/sounds/mobs_spell.ogg similarity index 100% rename from games/default/files/mobs_redo/sounds/mobs_spell.ogg rename to games/default/files/Mobs/mobs/sounds/mobs_spell.ogg diff --git a/games/default/files/Mobs/mobs/sounds/mobs_swing.ogg b/games/default/files/Mobs/mobs/sounds/mobs_swing.ogg new file mode 100644 index 000000000..ffe6a9ce1 Binary files /dev/null and b/games/default/files/Mobs/mobs/sounds/mobs_swing.ogg differ diff --git a/games/default/files/Mobs/mobs/spawner.lua b/games/default/files/Mobs/mobs/spawner.lua new file mode 100644 index 000000000..ca75deef6 --- /dev/null +++ b/games/default/files/Mobs/mobs/spawner.lua @@ -0,0 +1,181 @@ + +-- intllib +local MP = minetest.get_modpath(minetest.get_current_modname()) +local S, NS = dofile(MP .. "/intllib.lua") + +-- mob spawner + +local spawner_default = "mobs_animal:pumba 10 15 0 0" + +minetest.register_node("mobs:spawner", { + tiles = {"mob_spawner.png"}, + drawtype = "glasslike", + paramtype = "light", + walkable = true, + description = S("Mob Spawner"), + groups = {cracky = 1}, + + on_construct = function(pos) + + local meta = minetest.get_meta(pos) + + -- text entry formspec + meta:set_string("formspec", + "field[text;" .. S("Mob MinLight MaxLight Amount PlayerDist") .. ";${command}]") + meta:set_string("infotext", S("Spawner Not Active (enter settings)")) + meta:set_string("command", spawner_default) + end, + + on_right_click = function(pos, placer) + + if minetest.is_protected(pos, placer:get_player_name()) then + return + end + end, + + on_receive_fields = function(pos, formname, fields, sender) + + if not fields.text or fields.text == "" then + return + end + + local meta = minetest.get_meta(pos) + local comm = fields.text:split(" ") + local name = sender:get_player_name() + + if minetest.is_protected(pos, name) then + minetest.record_protection_violation(pos, name) + return + end + + local mob = comm[1] -- mob to spawn + local mlig = tonumber(comm[2]) -- min light + local xlig = tonumber(comm[3]) -- max light + local num = tonumber(comm[4]) -- total mobs in area + local pla = tonumber(comm[5]) -- player distance (0 to disable) + local yof = tonumber(comm[6]) or 0 -- Y offset to spawn mob + + if mob and mob ~= "" and mobs.spawning_mobs[mob] == true + and num and num >= 0 and num <= 10 + and mlig and mlig >= 0 and mlig <= 15 + and xlig and xlig >= 0 and xlig <= 15 + and pla and pla >=0 and pla <= 20 + and yof and yof > -10 and yof < 10 then + + meta:set_string("command", fields.text) + meta:set_string("infotext", S("Spawner Active (@1)", mob)) + + else + minetest.chat_send_player(name, S("Mob Spawner settings failed!")) + minetest.chat_send_player(name, + S("Syntax: “name min_light[0-14] max_light[0-14] max_mobs_in_area[0 to disable] distance[1-20] y_offset[-10 to 10]”")) + end + end, +}) + + +local max_per_block = tonumber(minetest.settings:get("max_objects_per_block") or 99) + +-- spawner abm +minetest.register_abm({ + label = "Mob spawner node", + nodenames = {"mobs:spawner"}, + interval = 10, + chance = 4, + catch_up = false, + + action = function(pos, node, active_object_count, active_object_count_wider) + + -- return if too many entities already + if active_object_count_wider >= max_per_block then + return + end + + -- get meta and command + local meta = minetest.get_meta(pos) + local comm = meta:get_string("command"):split(" ") + + -- get settings from command + local mob = comm[1] + local mlig = tonumber(comm[2]) + local xlig = tonumber(comm[3]) + local num = tonumber(comm[4]) + local pla = tonumber(comm[5]) or 0 + local yof = tonumber(comm[6]) or 0 + + -- if amount is 0 then do nothing + if num == 0 then + return + end + + -- are we spawning a registered mob? + if not mobs.spawning_mobs[mob] then + --print ("--- mob doesn't exist", mob) + return + end + + -- check objects inside 9x9 area around spawner + local objs = minetest.get_objects_inside_radius(pos, 9) + local count = 0 + local ent = nil + + -- count mob objects of same type in area + for k, obj in ipairs(objs) do + + ent = obj:get_luaentity() + + if ent and ent.name and ent.name == mob then + count = count + 1 + end + end + + -- is there too many of same type? + if count >= num then + return + end + + -- spawn mob if player detected and in range + if pla > 0 then + + local in_range = 0 + local objs = minetest.get_objects_inside_radius(pos, pla) + + for _,oir in pairs(objs) do + + if oir:is_player() then + + in_range = 1 + + break + end + end + + -- player not found + if in_range == 0 then + return + end + end + + -- find air blocks within 5 nodes of spawner + local air = minetest.find_nodes_in_area( + {x = pos.x - 5, y = pos.y + yof, z = pos.z - 5}, + {x = pos.x + 5, y = pos.y + yof, z = pos.z + 5}, + {"air"}) + + -- spawn in random air block + if air and #air > 0 then + + local pos2 = air[math.random(#air)] + local lig = minetest.get_node_light(pos2) or 0 + + pos2.y = pos2.y + 0.5 + + -- only if light levels are within range + if lig >= mlig and lig <= xlig + and minetest.registered_entities[mob] then + minetest.add_entity(pos2, mob) + end + end + + end +}) diff --git a/games/default/files/Mobs/mobs/textures/mob_spawner.png b/games/default/files/Mobs/mobs/textures/mob_spawner.png new file mode 100644 index 000000000..8f0ac39b7 Binary files /dev/null and b/games/default/files/Mobs/mobs/textures/mob_spawner.png differ diff --git a/games/default/files/Mobs/mobs/textures/mobs_alien.png b/games/default/files/Mobs/mobs/textures/mobs_alien.png new file mode 100644 index 000000000..e8c183d90 Binary files /dev/null and b/games/default/files/Mobs/mobs/textures/mobs_alien.png differ diff --git a/games/default/files/Mobs/mobs/textures/mobs_blood.png b/games/default/files/Mobs/mobs/textures/mobs_blood.png new file mode 100644 index 000000000..488b50fe9 Binary files /dev/null and b/games/default/files/Mobs/mobs/textures/mobs_blood.png differ diff --git a/games/default/files/Mobs/mobs/textures/mobs_chicken_egg.png b/games/default/files/Mobs/mobs/textures/mobs_chicken_egg.png new file mode 100644 index 000000000..92830cd09 Binary files /dev/null and b/games/default/files/Mobs/mobs/textures/mobs_chicken_egg.png differ diff --git a/games/default/files/Mobs/mobs/textures/mobs_chicken_egg_overlay.png b/games/default/files/Mobs/mobs/textures/mobs_chicken_egg_overlay.png new file mode 100644 index 000000000..b33e7b929 Binary files /dev/null and b/games/default/files/Mobs/mobs/textures/mobs_chicken_egg_overlay.png differ diff --git a/games/default/files/Mobs/mobs/textures/mobs_leather.png b/games/default/files/Mobs/mobs/textures/mobs_leather.png new file mode 100644 index 000000000..3205e5d63 Binary files /dev/null and b/games/default/files/Mobs/mobs/textures/mobs_leather.png differ diff --git a/games/default/files/Mobs/mobs/textures/mobs_magic_lasso.png b/games/default/files/Mobs/mobs/textures/mobs_magic_lasso.png new file mode 100644 index 000000000..993f2d17a Binary files /dev/null and b/games/default/files/Mobs/mobs/textures/mobs_magic_lasso.png differ diff --git a/games/default/files/Mobs/mobs/textures/mobs_meat.png b/games/default/files/Mobs/mobs/textures/mobs_meat.png new file mode 100644 index 000000000..4c63fdd16 Binary files /dev/null and b/games/default/files/Mobs/mobs/textures/mobs_meat.png differ diff --git a/games/default/files/Mobs/mobs/textures/mobs_meat_raw.png b/games/default/files/Mobs/mobs/textures/mobs_meat_raw.png new file mode 100644 index 000000000..0dea4ec54 Binary files /dev/null and b/games/default/files/Mobs/mobs/textures/mobs_meat_raw.png differ diff --git a/games/default/files/Mobs/mobs/textures/mobs_nametag.png b/games/default/files/Mobs/mobs/textures/mobs_nametag.png new file mode 100644 index 000000000..ec99ec0c0 Binary files /dev/null and b/games/default/files/Mobs/mobs/textures/mobs_nametag.png differ diff --git a/games/default/files/Mobs/mobs/textures/mobs_net.png b/games/default/files/Mobs/mobs/textures/mobs_net.png new file mode 100644 index 000000000..df7c3a61f Binary files /dev/null and b/games/default/files/Mobs/mobs/textures/mobs_net.png differ diff --git a/games/default/files/Mobs/mobs/textures/mobs_noentry_particle.png b/games/default/files/Mobs/mobs/textures/mobs_noentry_particle.png new file mode 100644 index 000000000..87938ff44 Binary files /dev/null and b/games/default/files/Mobs/mobs/textures/mobs_noentry_particle.png differ diff --git a/games/default/files/Mobs/mobs/textures/mobs_panda.png b/games/default/files/Mobs/mobs/textures/mobs_panda.png new file mode 100644 index 000000000..967815ddf Binary files /dev/null and b/games/default/files/Mobs/mobs/textures/mobs_panda.png differ diff --git a/games/default/files/Mobs/mobs/textures/mobs_pig.png b/games/default/files/Mobs/mobs/textures/mobs_pig.png new file mode 100644 index 000000000..3bb4e30c0 Binary files /dev/null and b/games/default/files/Mobs/mobs/textures/mobs_pig.png differ diff --git a/games/default/files/Mobs/mobs/textures/mobs_protect_particle.png b/games/default/files/Mobs/mobs/textures/mobs_protect_particle.png new file mode 100644 index 000000000..debe20cb1 Binary files /dev/null and b/games/default/files/Mobs/mobs/textures/mobs_protect_particle.png differ diff --git a/games/default/files/Mobs/mobs/textures/mobs_protector.png b/games/default/files/Mobs/mobs/textures/mobs_protector.png new file mode 100644 index 000000000..f3937b70e Binary files /dev/null and b/games/default/files/Mobs/mobs/textures/mobs_protector.png differ diff --git a/games/default/files/Mobs/mobs/textures/mobs_saddle.png b/games/default/files/Mobs/mobs/textures/mobs_saddle.png new file mode 100644 index 000000000..e9d42f82e Binary files /dev/null and b/games/default/files/Mobs/mobs/textures/mobs_saddle.png differ diff --git a/games/default/files/Mobs/mobs/textures/mobs_shears.png b/games/default/files/Mobs/mobs/textures/mobs_shears.png new file mode 100644 index 000000000..aa16f2ecb Binary files /dev/null and b/games/default/files/Mobs/mobs/textures/mobs_shears.png differ diff --git a/games/default/files/Mobs/mobs/textures/tnt_smoke.png b/games/default/files/Mobs/mobs/textures/tnt_smoke.png new file mode 100644 index 000000000..488b50fe9 Binary files /dev/null and b/games/default/files/Mobs/mobs/textures/tnt_smoke.png differ diff --git a/games/default/files/Mobs/mobs_animal/adultalien.lua b/games/default/files/Mobs/mobs_animal/adultalien.lua new file mode 100644 index 000000000..4563b95b8 --- /dev/null +++ b/games/default/files/Mobs/mobs_animal/adultalien.lua @@ -0,0 +1,82 @@ + +local S = mobs.intllib + + +-- Model by AspireMint (CC BY-SA 3.0) + +mobs:register_mob("mobs_animal:adultalien", { +stepheight = 0.6, + type = "animal", + passive = true, + group_attack = false, + owner_loyal = true, + attack_npcs = false, + reach = 2, + damage = 0, + hp_min = 0, + hp_max = 0, + armor = 0, + collisionbox = {-0.9, -0.9, -0.9, 0.9, 0.9, 0.9}, + visual = "mesh", + visual_size = {x=2, y=2, z=2}, + mesh = "mobs_adult.b3d", + textures = { + {"mobs_alien.png"}, + }, + makes_footstep_sound = true, + sounds = { + random = "mobs_panda", + attack = "mobs_panda", + }, + walk_chance = 5, + walk_velocity = 0.5, + run_velocity = 1.5, + jump = false, + jump_height = 6, + follow = {"color:blue"}, + view_range = 8, + water_damage = 0, + lava_damage = 0, + light_damage = 0, + fear_height = 6, + animation = { + speed_normal = 15, + stand_start = 390, + stand_end = 450, + stand1_start = 0, + stand1_end = 0, + stand2_start = 1, + stand2_end = 1, + stand3_start = 2, + stand3_end = 2, + walk_start = 280, + walk_end = 340, + run_start = 10, + run_end = 70, + punch_start = 390, + punch_end = 450, + -- 0 = rest, 1 = hiding (covers eyes), 2 = surprised + }, + + + on_rightclick = function(self, clicker) + + if mobs:feed_tame(self, clicker, 20, true, true) then return end + if mobs:protect(self, clicker) then return end + if mobs:capture_mob(self, clicker, 0, 5, 50, false, nil) then return end + end, +}) + + mobs:spawn({ + name = "mobs_animal:adultalien", + nodes = {"color:red"}, + neighbors = {"group:grass"}, + min_light = 14, + interval = 60, + chance = 15000, + min_height = 0, + max_height = 31000, + day_toggle = true, + }) + +mobs:register_egg("mobs_animal:adultalien", S("AdultAlien"), "mobs_alien.png", 1) diff --git a/games/default/files/Mobs/mobs_animal/adultpanda.lua b/games/default/files/Mobs/mobs_animal/adultpanda.lua new file mode 100644 index 000000000..29deb484e --- /dev/null +++ b/games/default/files/Mobs/mobs_animal/adultpanda.lua @@ -0,0 +1,82 @@ + +local S = mobs.intllib + + +-- Model by AspireMint (CC BY-SA 3.0) + +mobs:register_mob("mobs_animal:adultpanda", { +stepheight = 0.6, + type = "animal", + passive = true, + group_attack = false, + owner_loyal = true, + attack_npcs = false, + reach = 2, + damage = 0, + hp_min = 0, + hp_max = 0, + armor = 0, + collisionbox = {-0.9, -0.9, -0.9, 0.9, 0.9, 0.9}, + visual = "mesh", + visual_size = {x=2, y=2, z=2}, + mesh = "mobs_adult.b3d", + textures = { + {"mobs_panda.png"}, + }, + makes_footstep_sound = true, + sounds = { + random = "mobs_panda", + attack = "mobs_panda", + }, + walk_chance = 5, + walk_velocity = 0.5, + run_velocity = 1.5, + jump = false, + jump_height = 6, + follow = {"color:green"}, + view_range = 8, + water_damage = 0, + lava_damage = 0, + light_damage = 0, + fear_height = 6, + animation = { + speed_normal = 15, + stand_start = 390, + stand_end = 450, + stand1_start = 0, + stand1_end = 0, + stand2_start = 1, + stand2_end = 1, + stand3_start = 2, + stand3_end = 2, + walk_start = 280, + walk_end = 340, + run_start = 10, + run_end = 70, + punch_start = 390, + punch_end = 450, + -- 0 = rest, 1 = hiding (covers eyes), 2 = surprised + }, + + + on_rightclick = function(self, clicker) + + if mobs:feed_tame(self, clicker, 20, true, true) then return end + if mobs:protect(self, clicker) then return end + if mobs:capture_mob(self, clicker, 0, 5, 50, false, nil) then return end + end, +}) + + mobs:spawn({ + name = "mobs_animal:adultpanda", + nodes = {"comboblock:slab_green_onc_slab_orange"}, + neighbors = {"group:grass"}, + min_light = 14, + interval = 60, + chance = 15000, + min_height = 0, + max_height = 31000, + day_toggle = true, + }) + +mobs:register_egg("mobs_animal:adultpanda", S("AdultPanda"), "mobs_panda.png", 1) diff --git a/games/default/files/Mobs/mobs_animal/adultpig.lua b/games/default/files/Mobs/mobs_animal/adultpig.lua new file mode 100644 index 000000000..00b53f63b --- /dev/null +++ b/games/default/files/Mobs/mobs_animal/adultpig.lua @@ -0,0 +1,83 @@ + +local S = mobs.intllib + + +-- Model by AspireMint (CC BY-SA 3.0) + +mobs:register_mob("mobs_animal:adultpig", { +stepheight = 0.6, + type = "animal", + passive = true, + group_attack = false, + owner_loyal = true, + attack_npcs = false, + reach = 2, + damage = 0, + hp_min = 0, + hp_max = 0, + armor = 0, + collisionbox = {-0.9, -0.9, -0.9, 0.9, 0.9, 0.9}, + inventory_image = "mobs_pig.png", + visual = "mesh", + visual_size = {x=2, y=2, z=2}, + mesh = "mobs_adult.b3d", + textures = { + {"mobs_pig.png"}, + }, + makes_footstep_sound = true, + sounds = { + random = "mobs_panda", + attack = "mobs_panda", + }, + walk_chance = 5, + walk_velocity = 0.5, + run_velocity = 1.5, + jump = false, + jump_height = 6, + follow = {"color:orange"}, + view_range = 8, + water_damage = 0, + lava_damage = 0, + light_damage = 0, + fear_height = 6, + animation = { + speed_normal = 15, + stand_start = 390, + stand_end = 450, + stand1_start = 0, + stand1_end = 0, + stand2_start = 1, + stand2_end = 1, + stand3_start = 2, + stand3_end = 2, + walk_start = 280, + walk_end = 340, + run_start = 10, + run_end = 70, + punch_start = 390, + punch_end = 450, + -- 0 = rest, 1 = hiding (covers eyes), 2 = surprised + }, + + + on_rightclick = function(self, clicker) + + if mobs:feed_tame(self, clicker, 20, true, true) then return end + if mobs:protect(self, clicker) then return end + if mobs:capture_mob(self, clicker, 0, 5, 50, false, nil) then return end + end, +}) + + mobs:spawn({ + name = "mobs_animal:adultpig", + nodes = {"comboblock:slab_green_onc_slab_orange"}, + neighbors = {"group:grass"}, + min_light = 14, + interval = 60, + chance = 15000, + min_height = 0, + max_height = 31000, + day_toggle = true, + }) + +mobs:register_egg("mobs_animal:adultpig", S("AdultPig"), "mobs_pig.png", 1) diff --git a/games/default/files/Mobs/mobs_animal/babyalien.lua b/games/default/files/Mobs/mobs_animal/babyalien.lua new file mode 100644 index 000000000..f5fe4de66 --- /dev/null +++ b/games/default/files/Mobs/mobs_animal/babyalien.lua @@ -0,0 +1,79 @@ + +local S = mobs.intllib + + +-- Panda by AspireMint (CC BY-SA 3.0) + +mobs:register_mob("mobs_animal:babyalien", { +stepheight = 0.6, + type = "animal", + passive = true, + group_attack = false, + owner_loyal = true, + attack_npcs = false, + reach = 2, + damage = 0, + hp_min = 0, + hp_max = 0, + armor = 0, + collisionbox = {-0.4, -0.45, -0.4, 0.4, 0.45, 0.4}, + visual = "mesh", + mesh = "mobs_baby.b3d", + textures = { + {"mobs_alien.png"}, + }, + makes_footstep_sound = true, + sounds = { + random = "mobs_panda", + attack = "mobs_panda", + }, + walk_chance = 5, + walk_velocity = 0.5, + run_velocity = 1.5, + jump = false, + jump_height = 6, + follow = {"color:blue"}, + view_range = 8, + water_damage = 0, + lava_damage = 0, + light_damage = 0, + fear_height = 6, + animation = { + speed_normal = 15, + stand_start = 130, + stand_end = 270, + stand1_start = 0, + stand1_end = 0, + stand2_start = 1, + stand2_end = 1, + stand3_start = 2, + stand3_end = 2, + walk_start = 10, + walk_end = 70, + run_start = 10, + run_end = 70, + punch_start = 80, + punch_end = 120, + -- 0 = rest, 1 = hiding (covers eyes), 2 = surprised + }, + on_rightclick = function(self, clicker) + + if mobs:feed_tame(self, clicker, 20, true, true) then return end + if mobs:protect(self, clicker) then return end + if mobs:capture_mob(self, clicker, 0, 5, 50, false, nil) then return end + end, +}) + + mobs:spawn({ + name = "mobs_animal:babyalien", + nodes = {"color:red"}, + neighbors = {"group:grass"}, + min_light = 14, + interval = 60, + chance = 15000, + min_height = 6500, + max_height = 31000, + day_toggle = true, + }) + +mobs:register_egg("mobs_animal:babyalien", S("BabyAlien"), "mobs_alien.png", 1) diff --git a/games/default/files/Mobs/mobs_animal/babypanda.lua b/games/default/files/Mobs/mobs_animal/babypanda.lua new file mode 100644 index 000000000..0a2157864 --- /dev/null +++ b/games/default/files/Mobs/mobs_animal/babypanda.lua @@ -0,0 +1,79 @@ + +local S = mobs.intllib + + +-- Panda by AspireMint (CC BY-SA 3.0) + +mobs:register_mob("mobs_animal:babypanda", { +stepheight = 0.6, + type = "animal", + passive = true, + group_attack = false, + owner_loyal = true, + attack_npcs = false, + reach = 2, + damage = 0, + hp_min = 0, + hp_max = 0, + armor = 0, + visual = "mesh", + collisionbox = {-0.4, -0.45, -0.4, 0.4, 0.45, 0.4}, + mesh = "mobs_baby.b3d", + textures = { + {"mobs_panda.png"}, + }, + makes_footstep_sound = true, + sounds = { + random = "mobs_panda", + attack = "mobs_panda", + }, + walk_chance = 5, + walk_velocity = 0.5, + run_velocity = 1.5, + jump = false, + jump_height = 6, + follow = {"color:green"}, + view_range = 8, + water_damage = 0, + lava_damage = 0, + light_damage = 0, + fear_height = 6, + animation = { + speed_normal = 15, + stand_start = 130, + stand_end = 270, + stand1_start = 0, + stand1_end = 0, + stand2_start = 1, + stand2_end = 1, + stand3_start = 2, + stand3_end = 2, + walk_start = 10, + walk_end = 70, + run_start = 10, + run_end = 70, + punch_start = 80, + punch_end = 120, + -- 0 = rest, 1 = hiding (covers eyes), 2 = surprised + }, + on_rightclick = function(self, clicker) + + if mobs:feed_tame(self, clicker, 20, true, true) then return end + if mobs:protect(self, clicker) then return end + if mobs:capture_mob(self, clicker, 0, 5, 50, false, nil) then return end + end, +}) + + mobs:spawn({ + name = "mobs_animal:babypanda", + nodes = {"comboblock:slab_green_onc_slab_orange"}, + neighbors = {"group:grass"}, + min_light = 14, + interval = 60, + chance = 15000, + min_height = 0, + max_height = 31000, + day_toggle = true, + }) + +mobs:register_egg("mobs_animal:babypanda", S("babyPanda"), "mobs_panda.png", 1) diff --git a/games/default/files/Mobs/mobs_animal/babypig.lua b/games/default/files/Mobs/mobs_animal/babypig.lua new file mode 100644 index 000000000..7f444f6a4 --- /dev/null +++ b/games/default/files/Mobs/mobs_animal/babypig.lua @@ -0,0 +1,79 @@ + +local S = mobs.intllib + + +-- Model by AspireMint (CC BY-SA 3.0) + +mobs:register_mob("mobs_animal:babypig", { +stepheight = 0.6, + type = "animal", + passive = true, + group_attack = false, + owner_loyal = true, + attack_npcs = false, + reach = 2, + damage = 0, + hp_min = 0, + hp_max = 0, + armor = 0, + collisionbox = {-0.4, -0.45, -0.4, 0.4, 0.45, 0.4}, + visual = "mesh", + mesh = "mobs_baby.b3d", + textures = { + {"mobs_pig.png"}, + }, + makes_footstep_sound = true, + sounds = { + random = "mobs_panda", + attack = "mobs_panda", + }, + walk_chance = 5, + walk_velocity = 0.5, + run_velocity = 1.5, + jump = false, + jump_height = 6, + follow = {"color:orange"}, + view_range = 8, + water_damage = 0, + lava_damage = 0, + light_damage = 0, + fear_height = 6, + animation = { + speed_normal = 15, + stand_start = 130, + stand_end = 270, + stand1_start = 0, + stand1_end = 0, + stand2_start = 1, + stand2_end = 1, + stand3_start = 2, + stand3_end = 2, + walk_start = 10, + walk_end = 70, + run_start = 10, + run_end = 70, + punch_start = 80, + punch_end = 120, + -- 0 = rest, 1 = hiding (covers eyes), 2 = surprised + }, + on_rightclick = function(self, clicker) + + if mobs:feed_tame(self, clicker, 20, true, true) then return end + if mobs:protect(self, clicker) then return end + if mobs:capture_mob(self, clicker, 0, 5, 50, false, nil) then return end + end, +}) + + mobs:spawn({ + name = "mobs_animal:babypig", + nodes = {"comboblock:slab_green_onc_slab_orange"}, + neighbors = {"group:grass"}, + min_light = 14, + interval = 60, + chance = 15000, + min_height = 0, + max_height = 31000, + day_toggle = true, + }) + +mobs:register_egg("mobs_animal:babypig", S("BabyPig"), "mobs_pig.png", 1) diff --git a/games/default/files/mobs_monster/depends.txt b/games/default/files/Mobs/mobs_animal/depends.txt similarity index 100% rename from games/default/files/mobs_monster/depends.txt rename to games/default/files/Mobs/mobs_animal/depends.txt diff --git a/games/default/files/Mobs/mobs_animal/description.txt b/games/default/files/Mobs/mobs_animal/description.txt new file mode 100644 index 000000000..85afccdd6 --- /dev/null +++ b/games/default/files/Mobs/mobs_animal/description.txt @@ -0,0 +1 @@ +Adds farm animals. \ No newline at end of file diff --git a/games/default/files/Mobs/mobs_animal/init.lua b/games/default/files/Mobs/mobs_animal/init.lua new file mode 100644 index 000000000..f294ed83b --- /dev/null +++ b/games/default/files/Mobs/mobs_animal/init.lua @@ -0,0 +1,20 @@ + +local path = minetest.get_modpath("mobs_animal") + +-- Load support for intllib. +local MP = minetest.get_modpath(minetest.get_current_modname()) +local S, NS = dofile(MP.."/intllib.lua") +mobs.intllib = S + +-- Animals + +dofile(path .. "/adultpanda.lua") +dofile(path .. "/babypanda.lua") + +dofile(path .. "/adultpig.lua") +dofile(path .. "/babypig.lua") + +dofile(path .. "/adultalien.lua") +dofile(path .. "/babyalien.lua") + +print (("Panda, Pig and Alien are Here.")) diff --git a/games/default/files/Mobs/mobs_animal/intllib.lua b/games/default/files/Mobs/mobs_animal/intllib.lua new file mode 100644 index 000000000..6669d7202 --- /dev/null +++ b/games/default/files/Mobs/mobs_animal/intllib.lua @@ -0,0 +1,45 @@ + +-- Fallback functions for when `intllib` is not installed. +-- Code released under Unlicense . + +-- Get the latest version of this file at: +-- https://raw.githubusercontent.com/minetest-mods/intllib/master/lib/intllib.lua + +local function format(str, ...) + local args = { ... } + local function repl(escape, open, num, close) + if escape == "" then + local replacement = tostring(args[tonumber(num)]) + if open == "" then + replacement = replacement..close + end + return replacement + else + return "@"..open..num..close + end + end + return (str:gsub("(@?)@(%(?)(%d+)(%)?)", repl)) +end + +local gettext, ngettext +if minetest.get_modpath("intllib") then + if intllib.make_gettext_pair then + -- New method using gettext. + gettext, ngettext = intllib.make_gettext_pair() + else + -- Old method using text files. + gettext = intllib.Getter() + end +end + +-- Fill in missing functions. + +gettext = gettext or function(msgid, ...) + return format(msgid, ...) +end + +ngettext = ngettext or function(msgid, msgid_plural, n, ...) + return format(n==1 and msgid or msgid_plural, ...) +end + +return gettext, ngettext diff --git a/games/default/files/Mobs/mobs_animal/license.txt b/games/default/files/Mobs/mobs_animal/license.txt new file mode 100644 index 000000000..776968aeb --- /dev/null +++ b/games/default/files/Mobs/mobs_animal/license.txt @@ -0,0 +1,21 @@ +The MIT License (MIT) + +Copyright (c) 2014 Krupnov Pavel and 2016 TenPlus1 + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in +all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +THE SOFTWARE. diff --git a/games/default/files/Mobs/mobs_animal/locale/de.po b/games/default/files/Mobs/mobs_animal/locale/de.po new file mode 100644 index 000000000..cd6d85e2b --- /dev/null +++ b/games/default/files/Mobs/mobs_animal/locale/de.po @@ -0,0 +1,203 @@ +# SOME DESCRIPTIVE TITLE. +# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER +# This file is distributed under the same license as the PACKAGE package. +# FIRST AUTHOR , YEAR. +# +msgid "" +msgstr "" +"Project-Id-Version: \n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2017-07-31 11:28+0200\n" +"PO-Revision-Date: 2016-06-10 08:58+0200\n" +"Last-Translator: Xanthin\n" +"Language-Team: \n" +"Language: de\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Generator: Poedit 1.8.12\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" + +#: bee.lua +msgid "Bee" +msgstr "Biene" + +#: bee.lua +msgid "Honey" +msgstr "Honig" + +#: bee.lua +msgid "Beehive" +msgstr "Bienenstock" + +#: bee.lua +msgid "Honey Block" +msgstr "Honigblock" + +#: bunny.lua +msgid "Bunny" +msgstr "Häschen" + +#: bunny.lua +msgid "Raw Rabbit" +msgstr "Rohes Kaninchen" + +#: bunny.lua +msgid "Cooked Rabbit" +msgstr "Gekochtes Kaninchen" + +#: bunny.lua +msgid "Rabbit Hide" +msgstr "Kaninchenfell" + +#: chicken.lua +msgid "Chicken" +msgstr "Huhn" + +#: chicken.lua +msgid "Chicken Egg" +msgstr "Hühnerei" + +#: chicken.lua +msgid "Fried Egg" +msgstr "Spiegelei" + +#: chicken.lua +msgid "Raw Chicken" +msgstr "Rohes Hühnchen" + +#: chicken.lua +msgid "Cooked Chicken" +msgstr "Gekochtes Hühnchen" + +#: chicken.lua +#, fuzzy +msgid "Feather" +msgstr "Feder" + +#: cow.lua +msgid "Cow already milked!" +msgstr "Kuh ist bereits gemolken!" + +#: cow.lua +msgid "Cow" +msgstr "Kuh" + +#: cow.lua +msgid "Bucket of Milk" +msgstr "Eimer Milch" + +#: cow.lua +msgid "Cheese" +msgstr "Käse" + +#: cow.lua +msgid "Cheese Block" +msgstr "Käseblock" + +#: init.lua +msgid "[MOD] Mobs Redo 'Animals' loaded" +msgstr "[MOD] Mobs Redo 'Animals' geladen" + +#: kitten.lua +msgid "Kitten" +msgstr "Kätzchen" + +#: penguin.lua +#, fuzzy +msgid "Penguin" +msgstr "Pinguin" + +#: rat.lua +msgid "Rat" +msgstr "Ratte" + +#: rat.lua +msgid "Cooked Rat" +msgstr "Gekochte Ratte" + +#: sheep.lua +msgid "Black" +msgstr "Schwarzes" + +#: sheep.lua +msgid "Blue" +msgstr "Blaues" + +#: sheep.lua +msgid "Brown" +msgstr "Braunes" + +#: sheep.lua +msgid "Cyan" +msgstr "Cyan" + +#: sheep.lua +msgid "Dark Green" +msgstr "Dunkelgrünes" + +#: sheep.lua +msgid "Dark Grey" +msgstr "Dunkelgraues" + +#: sheep.lua +msgid "Green" +msgstr "Grünes" + +#: sheep.lua +msgid "Grey" +msgstr "Graues" + +#: sheep.lua +msgid "Magenta" +msgstr "Magenta" + +#: sheep.lua +msgid "Orange" +msgstr "Oranges" + +#: sheep.lua +msgid "Pink" +msgstr "Pinkes" + +#: sheep.lua +msgid "Red" +msgstr "Rotes" + +#: sheep.lua +msgid "Violet" +msgstr "Violettes" + +#: sheep.lua +msgid "White" +msgstr "Weißes" + +#: sheep.lua +msgid "Yellow" +msgstr "Gelbes" + +#: sheep.lua +#, fuzzy +msgid "@1 Sheep" +msgstr "@1 Schaf" + +#: sheep.lua +msgid "Raw Mutton" +msgstr "Rohes Hammelfleisch" + +#: sheep.lua +#, fuzzy +msgid "Cooked Mutton" +msgstr "Gekochtes Hammelfleisch" + +#: warthog.lua +msgid "Warthog" +msgstr "Warzenschwein" + +#: warthog.lua +msgid "Raw Porkchop" +msgstr "Rohes Schweinekotelett" + +#: warthog.lua +msgid "Cooked Porkchop" +msgstr "Gekochtes Schweinekotelett" diff --git a/games/default/files/Mobs/mobs_animal/locale/fr.po b/games/default/files/Mobs/mobs_animal/locale/fr.po new file mode 100644 index 000000000..5c0d2f6f6 --- /dev/null +++ b/games/default/files/Mobs/mobs_animal/locale/fr.po @@ -0,0 +1,202 @@ +# SOME DESCRIPTIVE TITLE. +# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER +# This file is distributed under the same license as the PACKAGE package. +# FIRST AUTHOR , YEAR. +# +msgid "" +msgstr "" +"Project-Id-Version: \n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2017-07-31 11:28+0200\n" +"PO-Revision-Date: 2017-07-31 09:18+0200\n" +"Last-Translator: fat115 \n" +"Language-Team: \n" +"Language: fr\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Generator: Poedit 1.8.12\n" +"Plural-Forms: nplurals=2; plural=(n > 1);\n" + +#: bee.lua +msgid "Bee" +msgstr "Abeille" + +#: bee.lua +msgid "Honey" +msgstr "Miel" + +#: bee.lua +msgid "Beehive" +msgstr "Ruche" + +#: bee.lua +msgid "Honey Block" +msgstr "Bloc de miel" + +#: bunny.lua +msgid "Bunny" +msgstr "Lapin" + +#: bunny.lua +msgid "Raw Rabbit" +msgstr "Lapin Cru" + +#: bunny.lua +#, fuzzy +msgid "Cooked Rabbit" +msgstr "Lapin Cuit" + +#: bunny.lua +msgid "Rabbit Hide" +msgstr "Fourrure de Lapin" + +#: chicken.lua +msgid "Chicken" +msgstr "Poule" + +#: chicken.lua +msgid "Chicken Egg" +msgstr "Œuf" + +#: chicken.lua +msgid "Fried Egg" +msgstr "Œuf au plat" + +#: chicken.lua +msgid "Raw Chicken" +msgstr "Poulet cru" + +#: chicken.lua +msgid "Cooked Chicken" +msgstr "Poulet cuit" + +#: chicken.lua +msgid "Feather" +msgstr "Plume" + +#: cow.lua +msgid "Cow already milked!" +msgstr "Vache déjà traite !" + +#: cow.lua +msgid "Cow" +msgstr "Vache" + +#: cow.lua +msgid "Bucket of Milk" +msgstr "Seau de lait" + +#: cow.lua +msgid "Cheese" +msgstr "Fromage" + +#: cow.lua +msgid "Cheese Block" +msgstr "Bloc de fromage" + +#: init.lua +msgid "[MOD] Mobs Redo 'Animals' loaded" +msgstr "[MOD] Mobs Redo 'Animals' chargé" + +#: kitten.lua +msgid "Kitten" +msgstr "Chaton" + +#: penguin.lua +msgid "Penguin" +msgstr "Manchot" + +#: rat.lua +msgid "Rat" +msgstr "Rat" + +#: rat.lua +msgid "Cooked Rat" +msgstr "Rat cuit" + +#: sheep.lua +msgid "Black" +msgstr "noir" + +#: sheep.lua +msgid "Blue" +msgstr "bleu" + +#: sheep.lua +msgid "Brown" +msgstr "marron" + +#: sheep.lua +msgid "Cyan" +msgstr "cyan" + +#: sheep.lua +msgid "Dark Green" +msgstr "vert foncé" + +#: sheep.lua +msgid "Dark Grey" +msgstr "gris foncé" + +#: sheep.lua +msgid "Green" +msgstr "vert" + +#: sheep.lua +msgid "Grey" +msgstr "gris" + +#: sheep.lua +msgid "Magenta" +msgstr "magenta" + +#: sheep.lua +msgid "Orange" +msgstr "orange" + +#: sheep.lua +msgid "Pink" +msgstr "rose" + +#: sheep.lua +msgid "Red" +msgstr "rouge" + +#: sheep.lua +msgid "Violet" +msgstr "violet" + +#: sheep.lua +msgid "White" +msgstr "blanc" + +#: sheep.lua +msgid "Yellow" +msgstr "jaune" + +#: sheep.lua +#, fuzzy +msgid "@1 Sheep" +msgstr "Mouton @1" + +#: sheep.lua +msgid "Raw Mutton" +msgstr "Mouton Cru" + +#: sheep.lua +#, fuzzy +msgid "Cooked Mutton" +msgstr "Mouton Cuit" + +#: warthog.lua +msgid "Warthog" +msgstr "Sanglier" + +#: warthog.lua +msgid "Raw Porkchop" +msgstr "Côte de sanglier crue" + +#: warthog.lua +msgid "Cooked Porkchop" +msgstr "Côte de sanglier cuite" diff --git a/games/default/files/Mobs/mobs_animal/locale/it.po b/games/default/files/Mobs/mobs_animal/locale/it.po new file mode 100644 index 000000000..8982f9359 --- /dev/null +++ b/games/default/files/Mobs/mobs_animal/locale/it.po @@ -0,0 +1,201 @@ +# ITALIAN LOCALE FILE FOR THE MOBS ANMAL MODULE +# Copyright (c) 2014 Krupnov Pavel and 2016 TenPlus1 +# This file is distributed under the same license as the MOBS ANIMAL package. +# Hamlet , 2017. +# +msgid "" +msgstr "" +"Project-Id-Version: Italian localization file for the Mobs Animal mod\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2017-07-31 11:28+0200\n" +"PO-Revision-Date: 2017-08-18 00:56+0100\n" +"Last-Translator: H4mlet \n" +"Language-Team: \n" +"Language: it\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" +"X-Generator: Poedit 1.6.10\n" + +#: bee.lua +msgid "Bee" +msgstr "Ape" + +#: bee.lua +msgid "Honey" +msgstr "Miele" + +#: bee.lua +msgid "Beehive" +msgstr "Favo" + +#: bee.lua +msgid "Honey Block" +msgstr "Blocco di miele" + +#: bunny.lua +msgid "Bunny" +msgstr "Coniglietto" + +#: bunny.lua +msgid "Raw Rabbit" +msgstr "Coniglio Crudo" + +#: bunny.lua +#, fuzzy +msgid "Cooked Rabbit" +msgstr "Coniglio Cotto" + +#: bunny.lua +msgid "Rabbit Hide" +msgstr "Pelle di Coniglio" + +#: chicken.lua +msgid "Chicken" +msgstr "Gallina" + +#: chicken.lua +msgid "Chicken Egg" +msgstr "Uovo di gallina" + +#: chicken.lua +msgid "Fried Egg" +msgstr "Uovo fritto" + +#: chicken.lua +msgid "Raw Chicken" +msgstr "Pollo crudo" + +#: chicken.lua +msgid "Cooked Chicken" +msgstr "Pollo cotto" + +#: chicken.lua +msgid "Feather" +msgstr "Piuma" + +#: cow.lua +msgid "Cow already milked!" +msgstr "Mucca già munta!" + +#: cow.lua +msgid "Cow" +msgstr "Mucca" + +#: cow.lua +msgid "Bucket of Milk" +msgstr "Secchio di latte" + +#: cow.lua +msgid "Cheese" +msgstr "Formaggio" + +#: cow.lua +msgid "Cheese Block" +msgstr "Blocco di formaggio" + +#: init.lua +msgid "[MOD] Mobs Redo 'Animals' loaded" +msgstr "[MOD] Mobs Redo 'Animals' caricato" + +#: kitten.lua +msgid "Kitten" +msgstr "Gattino" + +#: penguin.lua +msgid "Penguin" +msgstr "Pinguino" + +#: rat.lua +msgid "Rat" +msgstr "Ratto" + +#: rat.lua +msgid "Cooked Rat" +msgstr "Ratto cotto" + +#: sheep.lua +msgid "Black" +msgstr "Nera" + +#: sheep.lua +msgid "Blue" +msgstr "Blu" + +#: sheep.lua +msgid "Brown" +msgstr "Marrone" + +#: sheep.lua +msgid "Cyan" +msgstr "Ciano" + +#: sheep.lua +msgid "Dark Green" +msgstr "Verde scuro" + +#: sheep.lua +msgid "Dark Grey" +msgstr "Grigio scuro" + +#: sheep.lua +msgid "Green" +msgstr "Verde" + +#: sheep.lua +msgid "Grey" +msgstr "Grigia" + +#: sheep.lua +msgid "Magenta" +msgstr "Magenta" + +#: sheep.lua +msgid "Orange" +msgstr "Arancione" + +#: sheep.lua +msgid "Pink" +msgstr "Rosa" + +#: sheep.lua +msgid "Red" +msgstr "Rossa" + +#: sheep.lua +msgid "Violet" +msgstr "Viola" + +#: sheep.lua +msgid "White" +msgstr "Bianca" + +#: sheep.lua +msgid "Yellow" +msgstr "Gialla" + +#: sheep.lua +msgid "@1 Sheep" +msgstr "Pecora @1" + +#: sheep.lua +msgid "Raw Mutton" +msgstr "Montone Crudo" + +#: sheep.lua +#, fuzzy +msgid "Cooked Mutton" +msgstr "Montone Cotto" + +#: warthog.lua +msgid "Warthog" +msgstr "Facocero" + +#: warthog.lua +msgid "Raw Porkchop" +msgstr "Bistecca di maiale cruda" + +#: warthog.lua +msgid "Cooked Porkchop" +msgstr "Bistecca di maiale cotta" diff --git a/games/default/files/Mobs/mobs_animal/locale/ms.po b/games/default/files/Mobs/mobs_animal/locale/ms.po new file mode 100644 index 000000000..38e896da7 --- /dev/null +++ b/games/default/files/Mobs/mobs_animal/locale/ms.po @@ -0,0 +1,199 @@ +# SOME DESCRIPTIVE TITLE. +# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER +# This file is distributed under the same license as the PACKAGE package. +# FIRST AUTHOR , YEAR. +# +msgid "" +msgstr "" +"Project-Id-Version: \n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2018-02-06 00:17+0800\n" +"PO-Revision-Date: 2018-02-06 00:25+0800\n" +"Last-Translator: MuhdNurHidayat (MNH48) \n" +"Language-Team: \n" +"Language: ms\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Generator: Poedit 2.0.6\n" +"Plural-Forms: nplurals=1; plural=0;\n" + +#: bee.lua +msgid "Bee" +msgstr "Lebah" + +#: bee.lua +msgid "Honey" +msgstr "Madu" + +#: bee.lua +msgid "Beehive" +msgstr "Sarang Lebah" + +#: bee.lua +msgid "Honey Block" +msgstr "Blok Madu" + +#: bunny.lua +msgid "Bunny" +msgstr "Arnab" + +#: bunny.lua +msgid "Raw Rabbit" +msgstr "Daging Arnab Mentah" + +#: bunny.lua +msgid "Cooked Rabbit" +msgstr "Daging Arnab Bakar" + +#: bunny.lua +msgid "Rabbit Hide" +msgstr "Belulang Arnab" + +#: chicken.lua +msgid "Chicken" +msgstr "Ayam" + +#: chicken.lua +msgid "Chicken Egg" +msgstr "Telur Ayam" + +#: chicken.lua +msgid "Fried Egg" +msgstr "Telur Goreng" + +#: chicken.lua +msgid "Raw Chicken" +msgstr "Ayam Mentah" + +#: chicken.lua +msgid "Cooked Chicken" +msgstr "Ayam Bakar" + +#: chicken.lua +msgid "Feather" +msgstr "Bulu" + +#: cow.lua +msgid "Cow already milked!" +msgstr "Lembu telah diperah susunya!" + +#: cow.lua +msgid "Cow" +msgstr "Lembu" + +#: cow.lua +msgid "Bucket of Milk" +msgstr "Baldi Susu" + +#: cow.lua +msgid "Cheese" +msgstr "Keju" + +#: cow.lua +msgid "Cheese Block" +msgstr "Blok Keju" + +#: init.lua +msgid "[MOD] Mobs Redo 'Animals' loaded" +msgstr "[MODS] Mobs Redo 'Animals' telah dimuatkan" + +#: kitten.lua +msgid "Kitten" +msgstr "Anak Kucing" + +#: penguin.lua +msgid "Penguin" +msgstr "Penguin" + +#: rat.lua +msgid "Rat" +msgstr "Tikus" + +#: rat.lua +msgid "Cooked Rat" +msgstr "Tikus Bakar" + +#: sheep.lua +msgid "Black" +msgstr "Hitam" + +#: sheep.lua +msgid "Blue" +msgstr "Biru" + +#: sheep.lua +msgid "Brown" +msgstr "Perang" + +#: sheep.lua +msgid "Cyan" +msgstr "Sian" + +#: sheep.lua +msgid "Dark Green" +msgstr "Hijau Gelap" + +#: sheep.lua +msgid "Dark Grey" +msgstr "Kelabu Gelap" + +#: sheep.lua +msgid "Green" +msgstr "Hijau" + +#: sheep.lua +msgid "Grey" +msgstr "Kelabu" + +#: sheep.lua +msgid "Magenta" +msgstr "Merah Lembayung" + +#: sheep.lua +msgid "Orange" +msgstr "Jingga" + +#: sheep.lua +msgid "Pink" +msgstr "Merah Jambu" + +#: sheep.lua +msgid "Red" +msgstr "Merah" + +#: sheep.lua +msgid "Violet" +msgstr "Ungu" + +#: sheep.lua +msgid "White" +msgstr "Putih" + +#: sheep.lua +msgid "Yellow" +msgstr "Kuning" + +#: sheep.lua +msgid "@1 Sheep" +msgstr "Biri-biri @1" + +#: sheep.lua +msgid "Raw Mutton" +msgstr "Daging Biri-biri Mentah" + +#: sheep.lua +msgid "Cooked Mutton" +msgstr "Daging Biri-biri Bakar" + +#: warthog.lua +msgid "Warthog" +msgstr "Babi Hutan" + +#: warthog.lua +msgid "Raw Porkchop" +msgstr "Daging Babi Mentah" + +#: warthog.lua +msgid "Cooked Porkchop" +msgstr "Daging Babi Bakar" diff --git a/games/default/files/Mobs/mobs_animal/locale/ru.po b/games/default/files/Mobs/mobs_animal/locale/ru.po new file mode 100644 index 000000000..3aff71524 --- /dev/null +++ b/games/default/files/Mobs/mobs_animal/locale/ru.po @@ -0,0 +1,200 @@ +# SOME DESCRIPTIVE TITLE. +# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER +# This file is distributed under the same license as the PACKAGE package. +# FIRST AUTHOR , YEAR. +# +#, fuzzy +msgid "" +msgstr "" +"Project-Id-Version: PACKAGE VERSION\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2017-08-13 16:00 (UTC+5)\n" +"PO-Revision-Date: 2018-03-29 18:00 (UTC+5)\n" +"Last-Translator: Oleg720 \n" +"Language-Team: 720 Locales <>\n" +"Language: ru\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=CHARSET\n" +"Content-Transfer-Encoding: 8bit\n" + +#: bee.lua +msgid "Bee" +msgstr "Пчела" + +#: bee.lua +msgid "Honey" +msgstr "Мёд" + +#: bee.lua +msgid "Beehive" +msgstr "Улей" + +#: bee.lua +msgid "Honey Block" +msgstr "Блок мёда" + +#: bunny.lua +msgid "Bunny" +msgstr "Кролик" + +#: bunny.lua +msgid "Raw Rabbit" +msgstr "Сырой кролик" + +#: bunny.lua +#, fuzzy +msgid "Cooked Rabbit" +msgstr "Приготовленный кролик" + +#: bunny.lua +msgid "Rabbit Hide" +msgstr "Кролик скрыть" + +#: chicken.lua +msgid "Chicken" +msgstr "Курица" + +#: chicken.lua +msgid "Chicken Egg" +msgstr "Курино яйцо" + +#: chicken.lua +msgid "Fried Egg" +msgstr "Жареное яйцо" + +#: chicken.lua +msgid "Raw Chicken" +msgstr "Сырая курятина" + +#: chicken.lua +msgid "Cooked Chicken" +msgstr "Вареная курятина" + +#: chicken.lua +msgid "Feather" +msgstr "Перо" + +#: cow.lua +msgid "Cow already milked!" +msgstr "Корову уже подоили!" + +#: cow.lua +msgid "Cow" +msgstr "Корова" + +#: cow.lua +msgid "Bucket of Milk" +msgstr "Ведро молока" + +#: cow.lua +msgid "Cheese" +msgstr "Сыр" + +#: cow.lua +msgid "Cheese Block" +msgstr "Блок сыра" + +#: init.lua +msgid "[MOD] Mobs Redo 'Animals' loaded" +msgstr "[МОД] Mobs Redo 'Animals' загружен" + +#: kitten.lua +msgid "Kitten" +msgstr "Котенок" + +#: penguin.lua +msgid "Penguin" +msgstr "Пингвин" + +#: rat.lua +msgid "Rat" +msgstr "Крыса" + +#: rat.lua +msgid "Cooked Rat" +msgstr "Приготовленная крыса" + +#: sheep.lua +msgid "Black" +msgstr "Черный" + +#: sheep.lua +msgid "Blue" +msgstr "Синий" + +#: sheep.lua +msgid "Brown" +msgstr "Коричневый" + +#: sheep.lua +msgid "Cyan" +msgstr "Голубой" + +#: sheep.lua +msgid "Dark Green" +msgstr "Темно-зеленый" + +#: sheep.lua +msgid "Dark Grey" +msgstr "Темно-серый" + +#: sheep.lua +msgid "Green" +msgstr "Зеленый" + +#: sheep.lua +msgid "Grey" +msgstr "Серый" + +#: sheep.lua +msgid "Magenta" +msgstr "Пурпурный" + +#: sheep.lua +msgid "Orange" +msgstr "Оранжевый" + +#: sheep.lua +msgid "Pink" +msgstr "Розовый" + +#: sheep.lua +msgid "Red" +msgstr "Красный" + +#: sheep.lua +msgid "Violet" +msgstr "Фиолетовый" + +#: sheep.lua +msgid "White" +msgstr "Белый" + +#: sheep.lua +msgid "Yellow" +msgstr "Желтый" + +#: sheep.lua +msgid "@1 Sheep" +msgstr "@1 Овец" + +#: sheep.lua +msgid "Raw Mutton" +msgstr "сырой ягненок" + +#: sheep.lua +#, fuzzy +msgid "Cooked Mutton" +msgstr "приготовленный ягненок" + +#: warthog.lua +msgid "Warthog" +msgstr "Бородавочник" + +#: warthog.lua +msgid "Raw Porkchop" +msgstr "Отбивные из свинины" + +#: warthog.lua +msgid "Cooked Porkchop" +msgstr "Приготовленные отбивные" diff --git a/games/default/files/Mobs/mobs_animal/locale/template.pot b/games/default/files/Mobs/mobs_animal/locale/template.pot new file mode 100644 index 000000000..79f58ff79 --- /dev/null +++ b/games/default/files/Mobs/mobs_animal/locale/template.pot @@ -0,0 +1,198 @@ +# SOME DESCRIPTIVE TITLE. +# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER +# This file is distributed under the same license as the PACKAGE package. +# FIRST AUTHOR , YEAR. +# +#, fuzzy +msgid "" +msgstr "" +"Project-Id-Version: PACKAGE VERSION\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2017-07-31 11:28+0200\n" +"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" +"Last-Translator: FULL NAME \n" +"Language-Team: LANGUAGE \n" +"Language: \n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=CHARSET\n" +"Content-Transfer-Encoding: 8bit\n" + +#: bee.lua +msgid "Bee" +msgstr "" + +#: bee.lua +msgid "Honey" +msgstr "" + +#: bee.lua +msgid "Beehive" +msgstr "" + +#: bee.lua +msgid "Honey Block" +msgstr "" + +#: bunny.lua +msgid "Bunny" +msgstr "" + +#: bunny.lua +msgid "Raw Rabbit" +msgstr "" + +#: bunny.lua +msgid "Cooked Rabbit" +msgstr "" + +#: bunny.lua +msgid "Rabbit Hide" +msgstr "" + +#: chicken.lua +msgid "Chicken" +msgstr "" + +#: chicken.lua +msgid "Chicken Egg" +msgstr "" + +#: chicken.lua +msgid "Fried Egg" +msgstr "" + +#: chicken.lua +msgid "Raw Chicken" +msgstr "" + +#: chicken.lua +msgid "Cooked Chicken" +msgstr "" + +#: chicken.lua +msgid "Feather" +msgstr "" + +#: cow.lua +msgid "Cow already milked!" +msgstr "" + +#: cow.lua +msgid "Cow" +msgstr "" + +#: cow.lua +msgid "Bucket of Milk" +msgstr "" + +#: cow.lua +msgid "Cheese" +msgstr "" + +#: cow.lua +msgid "Cheese Block" +msgstr "" + +#: init.lua +msgid "[MOD] Mobs Redo 'Animals' loaded" +msgstr "" + +#: kitten.lua +msgid "Kitten" +msgstr "" + +#: penguin.lua +msgid "Penguin" +msgstr "" + +#: rat.lua +msgid "Rat" +msgstr "" + +#: rat.lua +msgid "Cooked Rat" +msgstr "" + +#: sheep.lua +msgid "Black" +msgstr "" + +#: sheep.lua +msgid "Blue" +msgstr "" + +#: sheep.lua +msgid "Brown" +msgstr "" + +#: sheep.lua +msgid "Cyan" +msgstr "" + +#: sheep.lua +msgid "Dark Green" +msgstr "" + +#: sheep.lua +msgid "Dark Grey" +msgstr "" + +#: sheep.lua +msgid "Green" +msgstr "" + +#: sheep.lua +msgid "Grey" +msgstr "" + +#: sheep.lua +msgid "Magenta" +msgstr "" + +#: sheep.lua +msgid "Orange" +msgstr "" + +#: sheep.lua +msgid "Pink" +msgstr "" + +#: sheep.lua +msgid "Red" +msgstr "" + +#: sheep.lua +msgid "Violet" +msgstr "" + +#: sheep.lua +msgid "White" +msgstr "" + +#: sheep.lua +msgid "Yellow" +msgstr "" + +#: sheep.lua +msgid "@1 Sheep" +msgstr "" + +#: sheep.lua +msgid "Raw Mutton" +msgstr "" + +#: sheep.lua +msgid "Cooked Mutton" +msgstr "" + +#: warthog.lua +msgid "Warthog" +msgstr "" + +#: warthog.lua +msgid "Raw Porkchop" +msgstr "" + +#: warthog.lua +msgid "Cooked Porkchop" +msgstr "" diff --git a/games/default/files/Mobs/mobs_animal/locale/tr.po b/games/default/files/Mobs/mobs_animal/locale/tr.po new file mode 100644 index 000000000..f3c0b86c5 --- /dev/null +++ b/games/default/files/Mobs/mobs_animal/locale/tr.po @@ -0,0 +1,202 @@ +# SOME DESCRIPTIVE TITLE. +# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER +# This file is distributed under the same license as the PACKAGE package. +# FIRST AUTHOR , YEAR. +# +msgid "" +msgstr "" +"Project-Id-Version: \n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2017-07-31 11:28+0200\n" +"PO-Revision-Date: 2017-04-26 09:02+0200\n" +"Last-Translator: Admicos\n" +"Language-Team: \n" +"Language: tr\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Generator: Poedit 1.8.12\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" + +#: bee.lua +msgid "Bee" +msgstr "Arı" + +#: bee.lua +msgid "Honey" +msgstr "Bal" + +#: bee.lua +msgid "Beehive" +msgstr "Arı kovanı" + +#: bee.lua +msgid "Honey Block" +msgstr "Bal bloğu" + +#: bunny.lua +msgid "Bunny" +msgstr "Tavşan" + +#: bunny.lua +msgid "Raw Rabbit" +msgstr "çiğ tavşan" + +#: bunny.lua +#, fuzzy +msgid "Cooked Rabbit" +msgstr "pişmiş tavşan" + +#: bunny.lua +msgid "Rabbit Hide" +msgstr "tavşan kürkü" + +#: chicken.lua +msgid "Chicken" +msgstr "Tavuk" + +#: chicken.lua +msgid "Chicken Egg" +msgstr "Tavuk yumurtası " + +#: chicken.lua +msgid "Fried Egg" +msgstr "Kızarmış yumurta" + +#: chicken.lua +msgid "Raw Chicken" +msgstr "Çiğ tavuk" + +#: chicken.lua +msgid "Cooked Chicken" +msgstr "Pişmiş tavuk" + +#: chicken.lua +msgid "Feather" +msgstr "" + +#: cow.lua +msgid "Cow already milked!" +msgstr "İnekte süt yok!" + +#: cow.lua +msgid "Cow" +msgstr "İnek" + +#: cow.lua +msgid "Bucket of Milk" +msgstr "Süt kovası" + +#: cow.lua +msgid "Cheese" +msgstr "Peynir" + +#: cow.lua +msgid "Cheese Block" +msgstr "Peynir bloğu" + +#: init.lua +msgid "[MOD] Mobs Redo 'Animals' loaded" +msgstr "[MOD] Mobs Redo 'Hayvanlar' yüklendi" + +#: kitten.lua +msgid "Kitten" +msgstr "Yavru kedi" + +#: penguin.lua +msgid "Penguin" +msgstr "" + +#: rat.lua +msgid "Rat" +msgstr "Sıçan" + +#: rat.lua +msgid "Cooked Rat" +msgstr "Pişmiş sıçan" + +#: sheep.lua +msgid "Black" +msgstr "Siyah" + +#: sheep.lua +msgid "Blue" +msgstr "Mavi" + +#: sheep.lua +msgid "Brown" +msgstr "Kahverengi" + +#: sheep.lua +msgid "Cyan" +msgstr "Camgöbeği" + +#: sheep.lua +msgid "Dark Green" +msgstr "Koyu yeşil" + +#: sheep.lua +msgid "Dark Grey" +msgstr "Koyu gri" + +#: sheep.lua +msgid "Green" +msgstr "Yeşil" + +#: sheep.lua +msgid "Grey" +msgstr "Gri" + +#: sheep.lua +msgid "Magenta" +msgstr "Macenta" + +#: sheep.lua +msgid "Orange" +msgstr "Turuncu" + +#: sheep.lua +msgid "Pink" +msgstr "Pembe" + +#: sheep.lua +msgid "Red" +msgstr "Kırmızı" + +#: sheep.lua +msgid "Violet" +msgstr "Mor" + +#: sheep.lua +msgid "White" +msgstr "Beyaz" + +#: sheep.lua +msgid "Yellow" +msgstr "Sarı" + +#: sheep.lua +#, fuzzy +msgid "@1 Sheep" +msgstr "@1 Koyun" + +#: sheep.lua +msgid "Raw Mutton" +msgstr "çiğ kuzu" + +#: sheep.lua +#, fuzzy +msgid "Cooked Mutton" +msgstr "pişmiş kuzu" + +#: warthog.lua +msgid "Warthog" +msgstr "Domuz" + +#: warthog.lua +msgid "Raw Porkchop" +msgstr "Çiğ pirzola" + +#: warthog.lua +msgid "Cooked Porkchop" +msgstr "Pişmiş pirzola" diff --git a/games/default/files/Mobs/mobs_animal/mod.conf b/games/default/files/Mobs/mobs_animal/mod.conf new file mode 100644 index 000000000..e2080bc36 --- /dev/null +++ b/games/default/files/Mobs/mobs_animal/mod.conf @@ -0,0 +1 @@ +name = mobs_animal diff --git a/games/default/files/Mobs/mobs_animal/models/additional animations.txt b/games/default/files/Mobs/mobs_animal/models/additional animations.txt new file mode 100644 index 000000000..0d036f9f2 --- /dev/null +++ b/games/default/files/Mobs/mobs_animal/models/additional animations.txt @@ -0,0 +1,9 @@ +Human animations: + +static: +frame 3 - sleeping (on bed) + +animated: +280 - 340 : walking +350 - 380 : digging +390 - 450 : standing \ No newline at end of file diff --git a/games/default/files/Mobs/mobs_animal/models/explained.png b/games/default/files/Mobs/mobs_animal/models/explained.png new file mode 100644 index 000000000..2c55fb23a Binary files /dev/null and b/games/default/files/Mobs/mobs_animal/models/explained.png differ diff --git a/games/default/files/Mobs/mobs_animal/models/mobs_adult.b3d b/games/default/files/Mobs/mobs_animal/models/mobs_adult.b3d new file mode 100644 index 000000000..9f4e29462 Binary files /dev/null and b/games/default/files/Mobs/mobs_animal/models/mobs_adult.b3d differ diff --git a/games/default/files/Mobs/mobs_animal/models/mobs_baby.b3d b/games/default/files/Mobs/mobs_animal/models/mobs_baby.b3d new file mode 100644 index 000000000..397be0c1d Binary files /dev/null and b/games/default/files/Mobs/mobs_animal/models/mobs_baby.b3d differ diff --git a/games/default/files/Mobs/mobs_animal/models/uvmap.png b/games/default/files/Mobs/mobs_animal/models/uvmap.png new file mode 100644 index 000000000..05eb051e4 Binary files /dev/null and b/games/default/files/Mobs/mobs_animal/models/uvmap.png differ diff --git a/games/default/files/Mobs/mobs_animal/readme.md b/games/default/files/Mobs/mobs_animal/readme.md new file mode 100644 index 000000000..275193d63 --- /dev/null +++ b/games/default/files/Mobs/mobs_animal/readme.md @@ -0,0 +1,45 @@ +# ANIMAL MOBS + +### Bee +Tends to buzz around flowers and gives honey when killed, you can also right-click a bee to pick it up and place in inventory. 3x bee's in a row can craft a beehive. + +--- +### Bunny +Bunnies appear in green grass areas (prairie biome in ethereal) and can be tamed with 4 carrots or grass. Can also be picked up and placed in inventory and gives 1 raw rabbit and 1 rabbit hide when killed. + +--- +### Chicken +Found in green areas (bamboo biome in ethereal) and lays eggs on flat ground, Can be picked up and placed in inventory and gives 1-2 raw chicken when killed. Feed 8x wheat seed to breed. + +--- +### Cow +Wanders around eating grass/wheat and can be right-clicked with empty bucket to get milk. Cows will defend themselves when hit and can be right-clicked with 8x wheat to tame and breed. + +--- +### Kitten +Found on green grass these cute cats walk around and can be picked up and placed in inventory as pets or right-clicked with 4x live rats or raw fish (found in ethereal) and tamed. They can sometimes leave you little gifts of a hairball. + +--- +### Rat +Typically found around stone they can be picked up and cooked for eating. + +--- +### Sheep +Green grass and wheat munchers that can be clipped using shears to give 1-3 wool. Feed sheep 8x wheat to regrow wool, tame and breed. Right-click a tamed sheep with dye to change it's colour. Will drop 1-3 raw mutton when killed. + +--- +### Warthog +Warthogs unlike pigs defend themselves when hit and give 1-3 raw pork when killed, they can also be right-clicked with 8x apples to tame or breed. + +--- +### Penguin +These little guys can be found in glacier biomes on top of snow and have the ability to swim if they fall into water. + +--- +### Panda +These monochrome cuties spawn in Ethereal's bamboo biome and can be tamed with bamboo stalks :) Remember they have claws though. + +--- +*Note: After breeding, animals need to rest for 4 minutes and baby animals take 4 minutes to grow up, also feeding them helps them grow quicker...* + +#### Lucky Blocks: 15 diff --git a/games/default/files/Mobs/mobs_animal/sounds/mobs_bee.ogg b/games/default/files/Mobs/mobs_animal/sounds/mobs_bee.ogg new file mode 100644 index 000000000..5317518e2 Binary files /dev/null and b/games/default/files/Mobs/mobs_animal/sounds/mobs_bee.ogg differ diff --git a/games/default/files/mobs_animal/sounds/mobs_chicken.ogg b/games/default/files/Mobs/mobs_animal/sounds/mobs_chicken.ogg similarity index 100% rename from games/default/files/mobs_animal/sounds/mobs_chicken.ogg rename to games/default/files/Mobs/mobs_animal/sounds/mobs_chicken.ogg diff --git a/games/default/files/mobs_animal/sounds/mobs_cow.ogg b/games/default/files/Mobs/mobs_animal/sounds/mobs_cow.ogg similarity index 100% rename from games/default/files/mobs_animal/sounds/mobs_cow.ogg rename to games/default/files/Mobs/mobs_animal/sounds/mobs_cow.ogg diff --git a/games/default/files/Mobs/mobs_animal/sounds/mobs_kitten.ogg b/games/default/files/Mobs/mobs_animal/sounds/mobs_kitten.ogg new file mode 100644 index 000000000..021d3dc79 Binary files /dev/null and b/games/default/files/Mobs/mobs_animal/sounds/mobs_kitten.ogg differ diff --git a/games/default/files/Mobs/mobs_animal/sounds/mobs_panda.ogg b/games/default/files/Mobs/mobs_animal/sounds/mobs_panda.ogg new file mode 100644 index 000000000..1c4c7d2a6 Binary files /dev/null and b/games/default/files/Mobs/mobs_animal/sounds/mobs_panda.ogg differ diff --git a/games/default/files/mobs_animal/sounds/mobs_pig.ogg b/games/default/files/Mobs/mobs_animal/sounds/mobs_pig.ogg similarity index 100% rename from games/default/files/mobs_animal/sounds/mobs_pig.ogg rename to games/default/files/Mobs/mobs_animal/sounds/mobs_pig.ogg diff --git a/games/default/files/mobs_animal/sounds/mobs_pig_angry.ogg b/games/default/files/Mobs/mobs_animal/sounds/mobs_pig_angry.ogg similarity index 100% rename from games/default/files/mobs_animal/sounds/mobs_pig_angry.ogg rename to games/default/files/Mobs/mobs_animal/sounds/mobs_pig_angry.ogg diff --git a/games/default/files/Mobs/mobs_animal/sounds/mobs_rat.ogg b/games/default/files/Mobs/mobs_animal/sounds/mobs_rat.ogg new file mode 100644 index 000000000..0e992671e Binary files /dev/null and b/games/default/files/Mobs/mobs_animal/sounds/mobs_rat.ogg differ diff --git a/games/default/files/mobs_animal/sounds/mobs_sheep.ogg b/games/default/files/Mobs/mobs_animal/sounds/mobs_sheep.ogg similarity index 100% rename from games/default/files/mobs_animal/sounds/mobs_sheep.ogg rename to games/default/files/Mobs/mobs_animal/sounds/mobs_sheep.ogg diff --git a/games/default/files/Mobs/mobs_animal/textures/mobs_alien.png b/games/default/files/Mobs/mobs_animal/textures/mobs_alien.png new file mode 100644 index 000000000..f348aeaa1 Binary files /dev/null and b/games/default/files/Mobs/mobs_animal/textures/mobs_alien.png differ diff --git a/games/default/files/Mobs/mobs_animal/textures/mobs_bee.png b/games/default/files/Mobs/mobs_animal/textures/mobs_bee.png new file mode 100644 index 000000000..654515f37 Binary files /dev/null and b/games/default/files/Mobs/mobs_animal/textures/mobs_bee.png differ diff --git a/games/default/files/Mobs/mobs_animal/textures/mobs_bee_inv.png b/games/default/files/Mobs/mobs_animal/textures/mobs_bee_inv.png new file mode 100644 index 000000000..94d5ace11 Binary files /dev/null and b/games/default/files/Mobs/mobs_animal/textures/mobs_bee_inv.png differ diff --git a/games/default/files/Mobs/mobs_animal/textures/mobs_beehive.png b/games/default/files/Mobs/mobs_animal/textures/mobs_beehive.png new file mode 100644 index 000000000..7bd140125 Binary files /dev/null and b/games/default/files/Mobs/mobs_animal/textures/mobs_beehive.png differ diff --git a/games/default/files/Mobs/mobs_animal/textures/mobs_bucket_milk.png b/games/default/files/Mobs/mobs_animal/textures/mobs_bucket_milk.png new file mode 100644 index 000000000..c89795779 Binary files /dev/null and b/games/default/files/Mobs/mobs_animal/textures/mobs_bucket_milk.png differ diff --git a/games/default/files/Mobs/mobs_animal/textures/mobs_bunny_brown.png b/games/default/files/Mobs/mobs_animal/textures/mobs_bunny_brown.png new file mode 100644 index 000000000..3a71d940c Binary files /dev/null and b/games/default/files/Mobs/mobs_animal/textures/mobs_bunny_brown.png differ diff --git a/games/default/files/Mobs/mobs_animal/textures/mobs_bunny_evil.png b/games/default/files/Mobs/mobs_animal/textures/mobs_bunny_evil.png new file mode 100644 index 000000000..683170da1 Binary files /dev/null and b/games/default/files/Mobs/mobs_animal/textures/mobs_bunny_evil.png differ diff --git a/games/default/files/Mobs/mobs_animal/textures/mobs_bunny_grey.png b/games/default/files/Mobs/mobs_animal/textures/mobs_bunny_grey.png new file mode 100644 index 000000000..d41d6c186 Binary files /dev/null and b/games/default/files/Mobs/mobs_animal/textures/mobs_bunny_grey.png differ diff --git a/games/default/files/Mobs/mobs_animal/textures/mobs_bunny_inv.png b/games/default/files/Mobs/mobs_animal/textures/mobs_bunny_inv.png new file mode 100644 index 000000000..762b713a5 Binary files /dev/null and b/games/default/files/Mobs/mobs_animal/textures/mobs_bunny_inv.png differ diff --git a/games/default/files/Mobs/mobs_animal/textures/mobs_bunny_white.png b/games/default/files/Mobs/mobs_animal/textures/mobs_bunny_white.png new file mode 100644 index 000000000..0445e8825 Binary files /dev/null and b/games/default/files/Mobs/mobs_animal/textures/mobs_bunny_white.png differ diff --git a/games/default/files/Mobs/mobs_animal/textures/mobs_butter.png b/games/default/files/Mobs/mobs_animal/textures/mobs_butter.png new file mode 100644 index 000000000..2e8434971 Binary files /dev/null and b/games/default/files/Mobs/mobs_animal/textures/mobs_butter.png differ diff --git a/games/default/files/Mobs/mobs_animal/textures/mobs_cheese.png b/games/default/files/Mobs/mobs_animal/textures/mobs_cheese.png new file mode 100644 index 000000000..04e03d801 Binary files /dev/null and b/games/default/files/Mobs/mobs_animal/textures/mobs_cheese.png differ diff --git a/games/default/files/Mobs/mobs_animal/textures/mobs_cheeseblock.png b/games/default/files/Mobs/mobs_animal/textures/mobs_cheeseblock.png new file mode 100644 index 000000000..dfa7c189d Binary files /dev/null and b/games/default/files/Mobs/mobs_animal/textures/mobs_cheeseblock.png differ diff --git a/games/default/files/Mobs/mobs_animal/textures/mobs_chick.png b/games/default/files/Mobs/mobs_animal/textures/mobs_chick.png new file mode 100644 index 000000000..90994e5fc Binary files /dev/null and b/games/default/files/Mobs/mobs_animal/textures/mobs_chick.png differ diff --git a/games/default/files/Mobs/mobs_animal/textures/mobs_chicken.png b/games/default/files/Mobs/mobs_animal/textures/mobs_chicken.png new file mode 100644 index 000000000..19cbd159b Binary files /dev/null and b/games/default/files/Mobs/mobs_animal/textures/mobs_chicken.png differ diff --git a/games/default/files/Mobs/mobs_animal/textures/mobs_chicken_black.png b/games/default/files/Mobs/mobs_animal/textures/mobs_chicken_black.png new file mode 100644 index 000000000..9f51a8ae2 Binary files /dev/null and b/games/default/files/Mobs/mobs_animal/textures/mobs_chicken_black.png differ diff --git a/games/default/files/Mobs/mobs_animal/textures/mobs_chicken_cooked.png b/games/default/files/Mobs/mobs_animal/textures/mobs_chicken_cooked.png new file mode 100644 index 000000000..bda35f3ae Binary files /dev/null and b/games/default/files/Mobs/mobs_animal/textures/mobs_chicken_cooked.png differ diff --git a/games/default/files/Mobs/mobs_animal/textures/mobs_chicken_egg_fried.png b/games/default/files/Mobs/mobs_animal/textures/mobs_chicken_egg_fried.png new file mode 100644 index 000000000..ad144a50d Binary files /dev/null and b/games/default/files/Mobs/mobs_animal/textures/mobs_chicken_egg_fried.png differ diff --git a/games/default/files/Mobs/mobs_animal/textures/mobs_chicken_feather.png b/games/default/files/Mobs/mobs_animal/textures/mobs_chicken_feather.png new file mode 100644 index 000000000..b6ae21195 Binary files /dev/null and b/games/default/files/Mobs/mobs_animal/textures/mobs_chicken_feather.png differ diff --git a/games/default/files/Mobs/mobs_animal/textures/mobs_chicken_inv.png b/games/default/files/Mobs/mobs_animal/textures/mobs_chicken_inv.png new file mode 100644 index 000000000..ccaca249e Binary files /dev/null and b/games/default/files/Mobs/mobs_animal/textures/mobs_chicken_inv.png differ diff --git a/games/default/files/Mobs/mobs_animal/textures/mobs_chicken_raw.png b/games/default/files/Mobs/mobs_animal/textures/mobs_chicken_raw.png new file mode 100644 index 000000000..3987a4a83 Binary files /dev/null and b/games/default/files/Mobs/mobs_animal/textures/mobs_chicken_raw.png differ diff --git a/games/default/files/Mobs/mobs_animal/textures/mobs_cooked_rat.png b/games/default/files/Mobs/mobs_animal/textures/mobs_cooked_rat.png new file mode 100644 index 000000000..daad3be0d Binary files /dev/null and b/games/default/files/Mobs/mobs_animal/textures/mobs_cooked_rat.png differ diff --git a/games/default/files/Mobs/mobs_animal/textures/mobs_cow.png b/games/default/files/Mobs/mobs_animal/textures/mobs_cow.png new file mode 100644 index 000000000..8656a7ceb Binary files /dev/null and b/games/default/files/Mobs/mobs_animal/textures/mobs_cow.png differ diff --git a/games/default/files/Mobs/mobs_animal/textures/mobs_cow2.png b/games/default/files/Mobs/mobs_animal/textures/mobs_cow2.png new file mode 100644 index 000000000..68a8e5e4c Binary files /dev/null and b/games/default/files/Mobs/mobs_animal/textures/mobs_cow2.png differ diff --git a/games/default/files/Mobs/mobs_animal/textures/mobs_hairball.png b/games/default/files/Mobs/mobs_animal/textures/mobs_hairball.png new file mode 100644 index 000000000..0628c95b7 Binary files /dev/null and b/games/default/files/Mobs/mobs_animal/textures/mobs_hairball.png differ diff --git a/games/default/files/Mobs/mobs_animal/textures/mobs_honey_block.png b/games/default/files/Mobs/mobs_animal/textures/mobs_honey_block.png new file mode 100644 index 000000000..8f05e770d Binary files /dev/null and b/games/default/files/Mobs/mobs_animal/textures/mobs_honey_block.png differ diff --git a/games/default/files/Mobs/mobs_animal/textures/mobs_honey_inv.png b/games/default/files/Mobs/mobs_animal/textures/mobs_honey_inv.png new file mode 100644 index 000000000..e70666d70 Binary files /dev/null and b/games/default/files/Mobs/mobs_animal/textures/mobs_honey_inv.png differ diff --git a/games/default/files/Mobs/mobs_animal/textures/mobs_kitten_ginger.png b/games/default/files/Mobs/mobs_animal/textures/mobs_kitten_ginger.png new file mode 100644 index 000000000..1707c2e23 Binary files /dev/null and b/games/default/files/Mobs/mobs_animal/textures/mobs_kitten_ginger.png differ diff --git a/games/default/files/Mobs/mobs_animal/textures/mobs_kitten_inv.png b/games/default/files/Mobs/mobs_animal/textures/mobs_kitten_inv.png new file mode 100644 index 000000000..6afa61f89 Binary files /dev/null and b/games/default/files/Mobs/mobs_animal/textures/mobs_kitten_inv.png differ diff --git a/games/default/files/Mobs/mobs_animal/textures/mobs_kitten_sandy.png b/games/default/files/Mobs/mobs_animal/textures/mobs_kitten_sandy.png new file mode 100644 index 000000000..052f04ee4 Binary files /dev/null and b/games/default/files/Mobs/mobs_animal/textures/mobs_kitten_sandy.png differ diff --git a/games/default/files/Mobs/mobs_animal/textures/mobs_kitten_splotchy.png b/games/default/files/Mobs/mobs_animal/textures/mobs_kitten_splotchy.png new file mode 100644 index 000000000..1fad99475 Binary files /dev/null and b/games/default/files/Mobs/mobs_animal/textures/mobs_kitten_splotchy.png differ diff --git a/games/default/files/Mobs/mobs_animal/textures/mobs_kitten_striped.png b/games/default/files/Mobs/mobs_animal/textures/mobs_kitten_striped.png new file mode 100644 index 000000000..4d1a0ccb6 Binary files /dev/null and b/games/default/files/Mobs/mobs_animal/textures/mobs_kitten_striped.png differ diff --git a/games/default/files/Mobs/mobs_animal/textures/mobs_mutton_cooked.png b/games/default/files/Mobs/mobs_animal/textures/mobs_mutton_cooked.png new file mode 100644 index 000000000..3189f67f5 Binary files /dev/null and b/games/default/files/Mobs/mobs_animal/textures/mobs_mutton_cooked.png differ diff --git a/games/default/files/Mobs/mobs_animal/textures/mobs_mutton_raw.png b/games/default/files/Mobs/mobs_animal/textures/mobs_mutton_raw.png new file mode 100644 index 000000000..622d84cb9 Binary files /dev/null and b/games/default/files/Mobs/mobs_animal/textures/mobs_mutton_raw.png differ diff --git a/games/default/files/Mobs/mobs_animal/textures/mobs_panda.png b/games/default/files/Mobs/mobs_animal/textures/mobs_panda.png new file mode 100644 index 000000000..21c3da846 Binary files /dev/null and b/games/default/files/Mobs/mobs_animal/textures/mobs_panda.png differ diff --git a/games/default/files/Mobs/mobs_animal/textures/mobs_penguin.png b/games/default/files/Mobs/mobs_animal/textures/mobs_penguin.png new file mode 100644 index 000000000..f7928d353 Binary files /dev/null and b/games/default/files/Mobs/mobs_animal/textures/mobs_penguin.png differ diff --git a/games/default/files/Mobs/mobs_animal/textures/mobs_pig.png b/games/default/files/Mobs/mobs_animal/textures/mobs_pig.png new file mode 100644 index 000000000..71212b9af Binary files /dev/null and b/games/default/files/Mobs/mobs_animal/textures/mobs_pig.png differ diff --git a/games/default/files/Mobs/mobs_animal/textures/mobs_pork_cooked.png b/games/default/files/Mobs/mobs_animal/textures/mobs_pork_cooked.png new file mode 100644 index 000000000..8d8c16684 Binary files /dev/null and b/games/default/files/Mobs/mobs_animal/textures/mobs_pork_cooked.png differ diff --git a/games/default/files/Mobs/mobs_animal/textures/mobs_pork_raw.png b/games/default/files/Mobs/mobs_animal/textures/mobs_pork_raw.png new file mode 100644 index 000000000..c070c57e3 Binary files /dev/null and b/games/default/files/Mobs/mobs_animal/textures/mobs_pork_raw.png differ diff --git a/games/default/files/Mobs/mobs_animal/textures/mobs_pumba.png b/games/default/files/Mobs/mobs_animal/textures/mobs_pumba.png new file mode 100644 index 000000000..ce87f6a1f Binary files /dev/null and b/games/default/files/Mobs/mobs_animal/textures/mobs_pumba.png differ diff --git a/games/default/files/Mobs/mobs_animal/textures/mobs_rabbit_cooked.png b/games/default/files/Mobs/mobs_animal/textures/mobs_rabbit_cooked.png new file mode 100644 index 000000000..310c90493 Binary files /dev/null and b/games/default/files/Mobs/mobs_animal/textures/mobs_rabbit_cooked.png differ diff --git a/games/default/files/Mobs/mobs_animal/textures/mobs_rabbit_hide.png b/games/default/files/Mobs/mobs_animal/textures/mobs_rabbit_hide.png new file mode 100644 index 000000000..b45ad836d Binary files /dev/null and b/games/default/files/Mobs/mobs_animal/textures/mobs_rabbit_hide.png differ diff --git a/games/default/files/Mobs/mobs_animal/textures/mobs_rabbit_raw.png b/games/default/files/Mobs/mobs_animal/textures/mobs_rabbit_raw.png new file mode 100644 index 000000000..b5c3b7dce Binary files /dev/null and b/games/default/files/Mobs/mobs_animal/textures/mobs_rabbit_raw.png differ diff --git a/games/default/files/Mobs/mobs_animal/textures/mobs_rat.png b/games/default/files/Mobs/mobs_animal/textures/mobs_rat.png new file mode 100644 index 000000000..f83da0879 Binary files /dev/null and b/games/default/files/Mobs/mobs_animal/textures/mobs_rat.png differ diff --git a/games/default/files/Mobs/mobs_animal/textures/mobs_rat2.png b/games/default/files/Mobs/mobs_animal/textures/mobs_rat2.png new file mode 100644 index 000000000..a8670df40 Binary files /dev/null and b/games/default/files/Mobs/mobs_animal/textures/mobs_rat2.png differ diff --git a/games/default/files/Mobs/mobs_animal/textures/mobs_rat_inventory.png b/games/default/files/Mobs/mobs_animal/textures/mobs_rat_inventory.png new file mode 100644 index 000000000..a8d615137 Binary files /dev/null and b/games/default/files/Mobs/mobs_animal/textures/mobs_rat_inventory.png differ diff --git a/games/default/files/Mobs/mobs_animal/textures/mobs_sheep_base.png b/games/default/files/Mobs/mobs_animal/textures/mobs_sheep_base.png new file mode 100644 index 000000000..c3c2c4a1c Binary files /dev/null and b/games/default/files/Mobs/mobs_animal/textures/mobs_sheep_base.png differ diff --git a/games/default/files/Mobs/mobs_animal/textures/mobs_sheep_shaved.png b/games/default/files/Mobs/mobs_animal/textures/mobs_sheep_shaved.png new file mode 100644 index 000000000..e9023a482 Binary files /dev/null and b/games/default/files/Mobs/mobs_animal/textures/mobs_sheep_shaved.png differ diff --git a/games/default/files/Mobs/mobs_animal/textures/mobs_sheep_wool.png b/games/default/files/Mobs/mobs_animal/textures/mobs_sheep_wool.png new file mode 100644 index 000000000..2dca0dc8d Binary files /dev/null and b/games/default/files/Mobs/mobs_animal/textures/mobs_sheep_wool.png differ diff --git a/games/default/files/Mobs/modpack.txt b/games/default/files/Mobs/modpack.txt new file mode 100644 index 000000000..e69de29bb diff --git a/games/default/files/Nodes/carpet/README.txt b/games/default/files/Nodes/carpet/README.txt new file mode 100644 index 000000000..50a866076 --- /dev/null +++ b/games/default/files/Nodes/carpet/README.txt @@ -0,0 +1,28 @@ +Carpets Mod for Minetest. + +By Jordan Snelling, 2012 + +License, LGPL. + +WARNING: + +This mod utilizes the Wool Mod found in minetest_games as of 0.4.2rc-1. + +If you are ruuning 0.4.1 / 0.4.0 / 0.4-dev; + +please download my other mod; + +http://minetest.net/forum/viewtopic.php?pid=23855#p23855 + +16 colours; or; + +http://minetest.net/forum/viewtopic.php?pid=24066#p24066 + +32 colours with spawning flowers. + +----------------------- + +Notes: There is a reason why the mod is in a folder, it is far easier than to rename a zipball than it is to just have a mod folder, which is extracted with the SAME name. + +----------------------- + diff --git a/games/default/files/Nodes/carpet/depends.txt b/games/default/files/Nodes/carpet/depends.txt new file mode 100644 index 000000000..22ed7be9e --- /dev/null +++ b/games/default/files/Nodes/carpet/depends.txt @@ -0,0 +1,2 @@ +default +color \ No newline at end of file diff --git a/games/default/files/Nodes/carpet/init.lua b/games/default/files/Nodes/carpet/init.lua new file mode 100644 index 000000000..3cd99d713 --- /dev/null +++ b/games/default/files/Nodes/carpet/init.lua @@ -0,0 +1,40 @@ +-- Carpet Mod! +-- By Jordan Snelling 2012 +-- License LGPL +-- This mod adds carpets into Minetest. + +local dyes = { + {"black", "Darkened", color1}, + {"blue", "Blue", color2}, + {"green", "Green", color3}, + {"white", "White", color4}, + {"orange", "Orange", color5}, + {"red", "Red", color6}, + {"yellow", "Yellow", color7}, + {"pink", "pink", color8} +} +for i = 1, #dyes do + local name, desc, colour = unpack(dyes[i]) + + minetest.register_node("carpet:" .. name, { + + description = desc .. " Carpet color", + drawtype = "raillike", + tiles = {"color_white.png^[colorize:#"..colour..":70"}, + wield_image = "color_handwhite.png^(color_handwhite2.png^[colorize:#"..colour..":70)", + inventory_image = "carpets.png^[colorize:#"..colour..":70", + wield_scale = {x=1,y=1,z=0.5}, + paramtype = "light", + is_ground_content = true, + walkable = false, + buildable_to = true, + selection_box = { + type = "fixed", + + fixed = {-1/2, -1/2, -1/2, 1/2, -1/2+1/16, 1/2}, + }, + groups = {dig_immediate=3}, + + }) + +end diff --git a/games/default/files/Nodes/color/README.txt b/games/default/files/Nodes/color/README.txt new file mode 100644 index 000000000..cbd240fee --- /dev/null +++ b/games/default/files/Nodes/color/README.txt @@ -0,0 +1,8 @@ +Minetest Game mod: give_initial_stuff +===================================== +See license.txt for license information. + +Authors of source code +---------------------- +Perttu Ahola (celeron55) (MIT) +Various Minetest developers and contributors (MIT) diff --git a/games/default/files/Nodes/color/depends.txt b/games/default/files/Nodes/color/depends.txt new file mode 100644 index 000000000..8c7163224 --- /dev/null +++ b/games/default/files/Nodes/color/depends.txt @@ -0,0 +1,2 @@ +default +character_creator \ No newline at end of file diff --git a/games/default/files/Nodes/color/init.lua b/games/default/files/Nodes/color/init.lua new file mode 100644 index 000000000..a07e19ea8 --- /dev/null +++ b/games/default/files/Nodes/color/init.lua @@ -0,0 +1,44 @@ +color1 = minetest.setting_get("color1") or "292421" +color2 = minetest.setting_get("color2") or "0000FF" +color3 = minetest.setting_get("color3") or "00FF00" +color4 = minetest.setting_get("color4") or "F5F5F5" +color5 = minetest.setting_get("color5") or "FF6103" +color6 = minetest.setting_get("color6") or "FF0000" +color7 = minetest.setting_get("color7") or "FFFF00" +color8 = minetest.setting_get("color8") or "FF69B4" + +local source_list = { + {"black", "Color1", color1, 41, 36, 33}, + {"blue", "Color2", color2, 0, 0, 255}, + {"green", "Color3", color3, 0, 255, 0}, + {"white", "Color4", color4, 245, 245, 245}, + {"orange", "Color5", color5, 255, 97, 3}, + {"red", "Color6", color6, 255, 0, 0}, + {"yellow", "Color7", color7, 255, 255, 0}, + {"pink", "Color8", color8, 255, 105, 180} +} + +for i in ipairs(source_list) do + local name = source_list[i][1] + local desc = source_list[i][2] + local colour = source_list[i][3] + local red = source_list[i][4] + local green = source_list[i][5] + local blue = source_list[i][6] + + minetest.register_node("color:" .. name, { + + description = desc .. " color", + inventory_image = "blocks.png^[colorize:#"..colour..":70", + tiles = {"color_white2.png^[colorize:#"..colour..":70"}, + wield_image = "color_handwhite.png^(color_handwhite2.png^[colorize:#"..colour..":70)", + wield_scale = {x=1,y=1,z=0.5}, + is_ground_content = true, + groups = {snappy = 2, choppy = 2, wool = 2}, + sounds = default.node_sound_defaults(), + oddly_breakable_by_hand = 1, + dig_immediate = 3, + + }) + +end diff --git a/games/default/files/Nodes/color/license.txt b/games/default/files/Nodes/color/license.txt new file mode 100644 index 000000000..dfbd2411d --- /dev/null +++ b/games/default/files/Nodes/color/license.txt @@ -0,0 +1,38 @@ +License for Textures Peak : CCO + +color_yellow.png +color_orange.png +color_blue.png +color_green.png +color_pink.png +color_red.png +color_white.png +color_black.png + +https://creativecommons.org/publicdomain/zero/1.0/deed.fr + +License of source code +---------------------- + +The MIT License (MIT) +Copyright (C) 2012-2016 Perttu Ahola (celeron55) +Copyright (C) 2012-2016 Various Minetest developers and contributors + +Permission is hereby granted, free of charge, to any person obtaining a copy of this +software and associated documentation files (the "Software"), to deal in the Software +without restriction, including without limitation the rights to use, copy, modify, merge, +publish, distribute, sublicense, and/or sell copies of the Software, and to permit +persons to whom the Software is furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all copies or +substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, +INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR +PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE +FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR +OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER +DEALINGS IN THE SOFTWARE. + +For more details: +https://opensource.org/licenses/MIT diff --git a/games/default/files/Nodes/color/textures/color_handwhite.png b/games/default/files/Nodes/color/textures/color_handwhite.png new file mode 100644 index 000000000..2efb0cbc1 Binary files /dev/null and b/games/default/files/Nodes/color/textures/color_handwhite.png differ diff --git a/games/default/files/Nodes/color/textures/color_handwhite2.png b/games/default/files/Nodes/color/textures/color_handwhite2.png new file mode 100644 index 000000000..7edd8ee59 Binary files /dev/null and b/games/default/files/Nodes/color/textures/color_handwhite2.png differ diff --git a/games/default/files/Nodes/color/textures/color_white.png b/games/default/files/Nodes/color/textures/color_white.png new file mode 100644 index 000000000..a6c6ff878 Binary files /dev/null and b/games/default/files/Nodes/color/textures/color_white.png differ diff --git a/games/default/files/Nodes/color/textures/color_white2.png b/games/default/files/Nodes/color/textures/color_white2.png new file mode 100644 index 000000000..7a19a5a29 Binary files /dev/null and b/games/default/files/Nodes/color/textures/color_white2.png differ diff --git a/games/default/files/Nodes/color/textures/description.txt b/games/default/files/Nodes/color/textures/description.txt new file mode 100644 index 000000000..df4741735 --- /dev/null +++ b/games/default/files/Nodes/color/textures/description.txt @@ -0,0 +1,3 @@ +slightly improved textures for the game BlockColor +16x16 + diff --git a/games/default/files/Nodes/doors/README.txt b/games/default/files/Nodes/doors/README.txt new file mode 100644 index 000000000..9ad7093d5 --- /dev/null +++ b/games/default/files/Nodes/doors/README.txt @@ -0,0 +1,84 @@ +Minetest Game mod: doors +======================== +See license.txt for license information. + +Authors of source code +---------------------- +Originally by PilzAdam (MIT) + +Modified by BlockMen (MIT): Added sounds, glass doors (glass, obsidian glass) and trapdoor. + +Modified by sofar (sofar@foo-projects.org) (MIT): +Added Steel trapdoor. +Re-implemented most of the door algorithms, added meshes, UV wrapped texture. +Added doors API to facilitate coding mods accessing and operating doors. +Added Fence Gate model, code, and sounds. + +Various Minetest developers and contributors (MIT) + + +Authors of media (textures) +--------------------------- +Following textures created by Fernando Zapata (CC BY-SA 3.0): + door_wood.png + door_wood_a.png + door_wood_a_r.png + door_wood_b.png + door_wood_b_r.png + +Following textures created by BlockMen (CC BY-SA 3.0): + door_trapdoor.png + door_obsidian_glass_side.png + +Following textures created by celeron55 (CC BY-SA 3.0): + door_glass_a.png + door_glass_b.png + +Following textures created by PenguinDad (CC BY-SA 4.0): + door_glass.png + door_obsidian_glass.png + +Following textures created by sofar (CC-BY-SA-3.0): + doors_trapdoor_steel.png + doors_trapdoor_steel_side.png + door_trapdoor_side.png + +Obsidian door textures by red-001 based on textures by Pilzadam and BlockMen (CC BY-SA 3.0): + door_obsidian_glass.png + +Glass door textures by red-001 based on textures by celeron55 (CC BY-SA 3.0): + door_glass.png + +All other textures (created by PilzAdam) (CC BY-SA 3.0): + +Door textures were converted to the new texture map by sofar, paramat and +red-001, under the same license as the originals. + + +Authors of media (models) +------------------------- +Door 3d models by sofar (CC-BY-SA-3.0) + - door_a.obj + - door_b.obj +Fence gate models by sofar (CC-BY-SA-3.0) + - fencegate_open.obj + - fencegate_closed.obj + + +Authors of media (sounds) +------------------------- +Opening-Sound created by CGEffex (CC BY 3.0), modified by BlockMen + door_open.ogg +Closing-Sound created by bennstir (CC BY 3.0) + door_close.ogg +fencegate_open.ogg: + http://www.freesound.org/people/mhtaylor67/sounds/126041/ - (CC0 1.0) +fencegate_close.ogg: + http://www.freesound.org/people/BarkersPinhead/sounds/274807/ - (CC-BY-3.0) + http://www.freesound.org/people/rivernile7/sounds/249573/ - (CC-BY-3.0) +Steel door sounds open & close (CC-BY-3.0) by HazMatt + - http://www.freesound.org/people/HazMattt/sounds/187283/ + doors_steel_door_open.ogg + doors_steel_door_close.ogg +doors_glass_door_open.ogg, doors_glass_door_close.ogg: + https://www.freesound.org/people/SkeetMasterFunk69/sounds/235546/ (CC0 1.0) diff --git a/games/default/files/Nodes/doors/depends.txt b/games/default/files/Nodes/doors/depends.txt new file mode 100644 index 000000000..9bc856fd9 --- /dev/null +++ b/games/default/files/Nodes/doors/depends.txt @@ -0,0 +1,2 @@ +default +color diff --git a/games/default/files/Nodes/doors/init.lua b/games/default/files/Nodes/doors/init.lua new file mode 100644 index 000000000..5d142659b --- /dev/null +++ b/games/default/files/Nodes/doors/init.lua @@ -0,0 +1,777 @@ +-- our API object +doors = {} + +-- private data +local _doors = {} +_doors.registered_doors = {} +_doors.registered_trapdoors = {} + +local function replace_old_owner_information(pos) + local meta = minetest.get_meta(pos) + local owner = meta:get_string("doors_owner") + if owner and owner ~= "" then + meta:set_string("owner", owner) + meta:set_string("doors_owner", "") + end +end + +-- returns an object to a door object or nil +function doors.get(pos) + local node_name = minetest.get_node(pos).name + if _doors.registered_doors[node_name] then + -- A normal upright door + return { + pos = pos, + open = function(self, player) + if self:state() then + return false + end + return _doors.door_toggle(self.pos, nil, player) + end, + close = function(self, player) + if not self:state() then + return false + end + return _doors.door_toggle(self.pos, nil, player) + end, + toggle = function(self, player) + return _doors.door_toggle(self.pos, nil, player) + end, + state = function(self) + local state = minetest.get_meta(self.pos):get_int("state") + return state %2 == 1 + end + } + elseif _doors.registered_trapdoors[node_name] then + -- A trapdoor + return { + pos = pos, + open = function(self, player) + if self:state() then + return false + end + return _doors.trapdoor_toggle(self.pos, nil, player) + end, + close = function(self, player) + if not self:state() then + return false + end + return _doors.trapdoor_toggle(self.pos, nil, player) + end, + toggle = function(self, player) + return _doors.trapdoor_toggle(self.pos, nil, player) + end, + state = function(self) + return minetest.get_node(self.pos).name:sub(-5) == "_open" + end + } + else + return nil + end +end + +-- this hidden node is placed on top of the bottom, and prevents +-- nodes from being placed in the top half of the door. +minetest.register_node("doors:hidden", { + description = "Hidden Door Segment", + -- can't use airlike otherwise falling nodes will turn to entities + -- and will be forever stuck until door is removed. + drawtype = "nodebox", + paramtype = "light", + paramtype2 = "facedir", + sunlight_propagates = true, + -- has to be walkable for falling nodes to stop falling. + walkable = true, + pointable = false, + diggable = false, + buildable_to = false, + floodable = false, + drop = "", + groups = {not_in_creative_inventory = 1}, + on_blast = function() end, + tiles = {"doors_blank.png"}, + -- 1px transparent block inside door hinge near node top. + node_box = { + type = "fixed", + fixed = {-15/32, 13/32, -15/32, -13/32, 1/2, -13/32}, + }, + -- collision_box needed otherise selection box would be full node size + collision_box = { + type = "fixed", + fixed = {-15/32, 13/32, -15/32, -13/32, 1/2, -13/32}, + }, +}) + +-- table used to aid door opening/closing +local transform = { + { + {v = "_a", param2 = 3}, + {v = "_a", param2 = 0}, + {v = "_a", param2 = 1}, + {v = "_a", param2 = 2}, + }, + { + {v = "_b", param2 = 1}, + {v = "_b", param2 = 2}, + {v = "_b", param2 = 3}, + {v = "_b", param2 = 0}, + }, + { + {v = "_b", param2 = 1}, + {v = "_b", param2 = 2}, + {v = "_b", param2 = 3}, + {v = "_b", param2 = 0}, + }, + { + {v = "_a", param2 = 3}, + {v = "_a", param2 = 0}, + {v = "_a", param2 = 1}, + {v = "_a", param2 = 2}, + }, +} + +function _doors.door_toggle(pos, node, clicker) + local meta = minetest.get_meta(pos) + node = node or minetest.get_node(pos) + local def = minetest.registered_nodes[node.name] + local name = def.door.name + + local state = meta:get_string("state") + if state == "" then + -- fix up lvm-placed right-hinged doors, default closed + if node.name:sub(-2) == "_b" then + state = 2 + else + state = 0 + end + else + state = tonumber(state) + end + + replace_old_owner_information(pos) + + if clicker and not default.can_interact_with_node(clicker, pos) then + return false + end + + -- until Lua-5.2 we have no bitwise operators :( + if state % 2 == 1 then + state = state - 1 + else + state = state + 1 + end + + local dir = node.param2 + if state % 2 == 0 then + minetest.sound_play(def.door.sounds[1], + {pos = pos, gain = 0.3, max_hear_distance = 10}) + else + minetest.sound_play(def.door.sounds[2], + {pos = pos, gain = 0.3, max_hear_distance = 10}) + end + + minetest.swap_node(pos, { + name = name .. transform[state + 1][dir+1].v, + param2 = transform[state + 1][dir+1].param2 + }) + meta:set_int("state", state) + + return true +end + + +local function on_place_node(place_to, newnode, + placer, oldnode, itemstack, pointed_thing) + -- Run script hook + for _, callback in ipairs(minetest.registered_on_placenodes) do + -- Deepcopy pos, node and pointed_thing because callback can modify them + local place_to_copy = {x = place_to.x, y = place_to.y, z = place_to.z} + local newnode_copy = + {name = newnode.name, param1 = newnode.param1, param2 = newnode.param2} + local oldnode_copy = + {name = oldnode.name, param1 = oldnode.param1, param2 = oldnode.param2} + local pointed_thing_copy = { + type = pointed_thing.type, + above = vector.new(pointed_thing.above), + under = vector.new(pointed_thing.under), + ref = pointed_thing.ref, + } + callback(place_to_copy, newnode_copy, placer, + oldnode_copy, itemstack, pointed_thing_copy) + end +end + +local function can_dig_door(pos, digger) + replace_old_owner_information(pos) + if default.can_interact_with_node(digger, pos) then + return true + else + minetest.record_protection_violation(pos, digger:get_player_name()) + return false + end +end + +function doors.register(name, def) + if not name:find(":") then + name = "doors:" .. name + end + + -- replace old doors of this type automatically + minetest.register_lbm({ + name = ":doors:replace_" .. name:gsub(":", "_"), + nodenames = {name.."_b_1", name.."_b_2"}, + action = function(pos, node) + local l = tonumber(node.name:sub(-1)) + local meta = minetest.get_meta(pos) + local h = meta:get_int("right") + 1 + local p2 = node.param2 + local replace = { + {{type = "a", state = 0}, {type = "a", state = 3}}, + {{type = "b", state = 1}, {type = "b", state = 2}} + } + local new = replace[l][h] + -- retain infotext and doors_owner fields + minetest.swap_node(pos, {name = name .. "_" .. new.type, param2 = p2}) + meta:set_int("state", new.state) + -- properly place doors:hidden at the right spot + local p3 = p2 + if new.state >= 2 then + p3 = (p3 + 3) % 4 + end + if new.state % 2 == 1 then + if new.state >= 2 then + p3 = (p3 + 1) % 4 + else + p3 = (p3 + 3) % 4 + end + end + -- wipe meta on top node as it's unused + minetest.set_node({x = pos.x, y = pos.y + 1, z = pos.z}, + {name = "doors:hidden", param2 = p3}) + end + }) + + minetest.register_craftitem(":" .. name, { + description = def.description, + inventory_image = def.inventory_image, + wield_image = def.wield_image, + wield_scale = def.wield_scale, + + groups = table.copy(def.groups), + + on_place = function(itemstack, placer, pointed_thing) + local pos + + if not pointed_thing.type == "node" then + return itemstack + end + + local node = minetest.get_node(pointed_thing.under) + local pdef = minetest.registered_nodes[node.name] + if pdef and pdef.on_rightclick and + not placer:get_player_control().sneak then + return pdef.on_rightclick(pointed_thing.under, + node, placer, itemstack, pointed_thing) + end + + if pdef and pdef.buildable_to then + pos = pointed_thing.under + else + pos = pointed_thing.above + node = minetest.get_node(pos) + pdef = minetest.registered_nodes[node.name] + if not pdef or not pdef.buildable_to then + return itemstack + end + end + + local above = {x = pos.x, y = pos.y + 1, z = pos.z} + local top_node = minetest.get_node_or_nil(above) + local topdef = top_node and minetest.registered_nodes[top_node.name] + + if not topdef or not topdef.buildable_to then + return itemstack + end + + local pn = placer:get_player_name() + if minetest.is_protected(pos, pn) or minetest.is_protected(above, pn) then + return itemstack + end + + local dir = minetest.dir_to_facedir(placer:get_look_dir()) + + local ref = { + {x = -1, y = 0, z = 0}, + {x = 0, y = 0, z = 1}, + {x = 1, y = 0, z = 0}, + {x = 0, y = 0, z = -1}, + } + + local aside = { + x = pos.x + ref[dir + 1].x, + y = pos.y + ref[dir + 1].y, + z = pos.z + ref[dir + 1].z, + } + + local state = 0 + if minetest.get_item_group(minetest.get_node(aside).name, "door") == 1 then + state = state + 2 + minetest.set_node(pos, {name = name .. "_b", param2 = dir}) + minetest.set_node(above, {name = "doors:hidden", param2 = (dir + 3) % 4}) + else + minetest.set_node(pos, {name = name .. "_a", param2 = dir}) + minetest.set_node(above, {name = "doors:hidden", param2 = dir}) + end + + local meta = minetest.get_meta(pos) + meta:set_int("state", state) + + if def.protected then + meta:set_string("owner", pn) + meta:set_string("infotext", "Owned by " .. pn) + end + + if not (creative and creative.is_enabled_for and creative.is_enabled_for(pn)) then + itemstack:take_item() + end + + minetest.sound_play(def.sounds.place, {pos = pos}) + + on_place_node(pos, minetest.get_node(pos), + placer, node, itemstack, pointed_thing) + + return itemstack + end + }) + def.inventory_image = nil + def.wield_image = nil +def.wield_scale = nil + + if def.recipe then + minetest.register_craft({ + output = name, + recipe = def.recipe, + }) + end + def.recipe = nil + + if not def.sounds then + def.sounds = default.node_sound_wood_defaults() + end + + if not def.sound_open then + def.sound_open = "doors_door_open" + end + + if not def.sound_close then + def.sound_close = "doors_door_close" + end + + def.groups.not_in_creative_inventory = 1 + def.groups.door = 1 + def.drop = name + def.door = { + name = name, + sounds = { def.sound_close, def.sound_open }, + } + + def.on_rightclick = function(pos, node, clicker, itemstack, pointed_thing) + _doors.door_toggle(pos, node, clicker) + return itemstack + end + def.after_dig_node = function(pos, node, meta, digger) + minetest.remove_node({x = pos.x, y = pos.y + 1, z = pos.z}) + minetest.check_for_falling({x = pos.x, y = pos.y + 1, z = pos.z}) + end + def.on_rotate = function(pos, node, user, mode, new_param2) + return false + end + + if def.protected then + def.can_dig = can_dig_door + def.on_blast = function() end + def.on_key_use = function(pos, player) + local door = doors.get(pos) + door:toggle(player) + end + def.on_skeleton_key_use = function(pos, player, newsecret) + replace_old_owner_information(pos) + local meta = minetest.get_meta(pos) + local owner = meta:get_string("owner") + local pname = player:get_player_name() + + -- verify placer is owner of lockable door + if owner ~= pname then + minetest.record_protection_violation(pos, pname) + minetest.chat_send_player(pname, "You do not own this locked door.") + return nil + end + + local secret = meta:get_string("key_lock_secret") + if secret == "" then + secret = newsecret + meta:set_string("key_lock_secret", secret) + end + + return secret, "a locked door", owner + end + else + def.on_blast = function(pos, intensity) + minetest.remove_node(pos) + -- hidden node doesn't get blasted away. + minetest.remove_node({x = pos.x, y = pos.y + 1, z = pos.z}) + return {name} + end + end + + def.on_destruct = function(pos) + minetest.remove_node({x = pos.x, y = pos.y + 1, z = pos.z}) + end + + def.drawtype = "mesh" + def.paramtype = "light" + def.paramtype2 = "facedir" + def.sunlight_propagates = true + def.walkable = true + def.is_ground_content = false + def.buildable_to = false + def.selection_box = {type = "fixed", fixed = {-1/2,-1/2,-1/2,1/2,3/2,-6/16}} + def.collision_box = {type = "fixed", fixed = {-1/2,-1/2,-1/2,1/2,3/2,-6/16}} + + def.mesh = "door_a.obj" + minetest.register_node(":" .. name .. "_a", def) + + def.mesh = "door_b.obj" + minetest.register_node(":" .. name .. "_b", def) + + _doors.registered_doors[name .. "_a"] = true + _doors.registered_doors[name .. "_b"] = true +end + +local source_list = { + {"black", "Darkened", color1, 40, 36, 33}, + {"blue", "Blue", color2, 0, 0, 255}, + {"green", "Green", color3, 0, 255, 0}, + {"white", "White", color4, 245, 245, 245}, + {"orange", "Orange", color5, 255, 97, 3}, + {"red", "Red", color6, 255, 0, 0}, + {"yellow", "Yellow", color7, 255, 255, 0}, + {"pink", "pink", color8, 255, 105, 180} +} + +for i in ipairs(source_list) do + local name = source_list[i][1] + local description = source_list[i][2] + local colour = source_list[i][3] + local red = source_list[i][4] + local green = source_list[i][5] + local blue = source_list[i][6] + +doors.register("door_" .. name , { + +alpha = 200, + tiles = {"doors_door_white.png^[colorize:#"..colour..":70"}, + description = name .. "Door", +wield_image = "color_handwhite.png^(color_handwhite2.png^[colorize:#"..colour..":70)", + wield_scale = {x=1,y=1,z=0.5}, +inventory_image = "doors.png^[colorize:#"..colour..":70", + groups = {cracky=3}, + sounds = default.node_sound_glass_defaults(), + sound_open = "doors_door_open", + sound_close = "doors_door_close", + +}) + +end + +-- Capture mods using the old API as best as possible. +function doors.register_door(name, def) + if def.only_placer_can_open then + def.protected = true + end + def.only_placer_can_open = nil + + local i = name:find(":") + local modname = name:sub(1, i - 1) + if not def.tiles then + if def.protected then + def.tiles = {{name = "doors_door_steel.png", backface_culling = true}} + else + def.tiles = {{name = "doors_door_wood.png", backface_culling = true}} + end + minetest.log("warning", modname .. " registered door \"" .. name .. "\" " .. + "using deprecated API method \"doors.register_door()\" but " .. + "did not provide the \"tiles\" parameter. A fallback tiledef " .. + "will be used instead.") + end + + doors.register(name, def) +end + +----trapdoor---- + +function _doors.trapdoor_toggle(pos, node, clicker) + node = node or minetest.get_node(pos) + + replace_old_owner_information(pos) + + if clicker and not default.can_interact_with_node(clicker, pos) then + return false + end + + local def = minetest.registered_nodes[node.name] + + if string.sub(node.name, -5) == "_open" then + minetest.sound_play(def.sound_close, + {pos = pos, gain = 0.3, max_hear_distance = 10}) + minetest.swap_node(pos, {name = string.sub(node.name, 1, + string.len(node.name) - 5), param1 = node.param1, param2 = node.param2}) + else + minetest.sound_play(def.sound_open, + {pos = pos, gain = 0.3, max_hear_distance = 10}) + minetest.swap_node(pos, {name = node.name .. "_open", + param1 = node.param1, param2 = node.param2}) + end +end + +function doors.register_trapdoor(name, def) + if not name:find(":") then + name = "doors:" .. name + end + + local name_closed = name + local name_opened = name.."_open" + + def.on_rightclick = function(pos, node, clicker, itemstack, pointed_thing) + _doors.trapdoor_toggle(pos, node, clicker) + return itemstack + end + + -- Common trapdoor configuration + def.drawtype = "nodebox" + def.paramtype = "light" + def.paramtype2 = "facedir" + def.is_ground_content = false + + if def.protected then + def.can_dig = can_dig_door + def.after_place_node = function(pos, placer, itemstack, pointed_thing) + local pn = placer:get_player_name() + local meta = minetest.get_meta(pos) + meta:set_string("owner", pn) + meta:set_string("infotext", "Owned by "..pn) + + return (creative and creative.is_enabled_for and creative.is_enabled_for(pn)) + end + + def.on_blast = function() end + def.on_key_use = function(pos, player) + local door = doors.get(pos) + door:toggle(player) + end + def.on_skeleton_key_use = function(pos, player, newsecret) + replace_old_owner_information(pos) + local meta = minetest.get_meta(pos) + local owner = meta:get_string("owner") + local pname = player:get_player_name() + + -- verify placer is owner of lockable door + if owner ~= pname then + minetest.record_protection_violation(pos, pname) + minetest.chat_send_player(pname, "You do not own this trapdoor.") + return nil + end + + local secret = meta:get_string("key_lock_secret") + if secret == "" then + secret = newsecret + meta:set_string("key_lock_secret", secret) + end + + return secret, "a locked trapdoor", owner + end + else + def.on_blast = function(pos, intensity) + minetest.remove_node(pos) + return {name} + end + end + + if not def.sounds then + def.sounds = default.node_sound_wood_defaults() + end + + if not def.sound_open then + def.sound_open = "doors_door_open" + end + + if not def.sound_close then + def.sound_close = "doors_door_close" + end + + local def_opened = table.copy(def) + local def_closed = table.copy(def) + + def_closed.node_box = { + type = "fixed", + fixed = {-0.5, -0.5, -0.5, 0.5, -6/16, 0.5} + } + def_closed.selection_box = { + type = "fixed", + fixed = {-0.5, -0.5, -0.5, 0.5, -6/16, 0.5} + } + def_closed.tiles = {def.tile_front, + def.tile_front .. '^[transformFY', + def.tile_side, def.tile_side, + def.tile_side, def.tile_side} + + def_opened.node_box = { + type = "fixed", + fixed = {-0.5, -0.5, 6/16, 0.5, 0.5, 0.5} + } + def_opened.selection_box = { + type = "fixed", + fixed = {-0.5, -0.5, 6/16, 0.5, 0.5, 0.5} + } + def_opened.tiles = {def.tile_side, def.tile_side, + def.tile_side .. '^[transform3', + def.tile_side .. '^[transform1', + def.tile_front .. '^[transform46', + def.tile_front .. '^[transform6'} + + def_opened.drop = name_closed + def_opened.groups.not_in_creative_inventory = 1 + + minetest.register_node(name_opened, def_opened) + minetest.register_node(name_closed, def_closed) + + _doors.registered_trapdoors[name_opened] = true + _doors.registered_trapdoors[name_closed] = true +end + +local source_list = { + {"black", "Darkened", color1, 40, 36, 33}, + {"blue", "Blue", color2, 0, 0, 255}, + {"green", "Green", color3, 0, 255, 0}, + {"white", "White", color4, 245, 245, 245}, + {"orange", "Orange", color5, 255, 97, 3}, + {"red", "Red", color6, 255, 0, 0}, + {"yellow", "Yellow", color7, 255, 255, 0}, + {"pink", "pink", color8, 255, 105, 180} +} + +for i in ipairs(source_list) do + local name = source_list[i][1] + local description = source_list[i][2] + local colour = source_list[i][3] + local red = source_list[i][4] + local green = source_list[i][5] + local blue = source_list[i][6] + +doors.register_trapdoor("doors:trapdoor_" .. name , { + description = "Trapdoor", + tile_front = "color_white.png^[colorize:#"..colour..":70", + tile_side = "color_white.png^[colorize:#"..colour..":70", + wield_image = "color_handwhite.png^(color_handwhite2.png^[colorize:#"..colour..":70)", + wield_scale = {x=1,y=1,z=0.5}, + inventory_image = "trapdoor.png^[colorize:#"..colour..":70", + groups = {choppy = 2, oddly_breakable_by_hand = 2, flammable = 2, door = 1}, +}) + +end + +minetest.register_craft({ + output = 'doors:trapdoor 2', + recipe = { + {'group:wood', 'group:wood', 'group:wood'}, + {'group:wood', 'group:wood', 'group:wood'}, + {'', '', ''}, + } +}) + +minetest.register_craft({ + output = 'doors:trapdoor_steel', + recipe = { + {'default:steel_ingot', 'default:steel_ingot'}, + {'default:steel_ingot', 'default:steel_ingot'}, + } +}) + + +----fence gate---- + +function doors.register_fencegate(name, def) + local fence = { + description = def.description, + drawtype = "mesh", + tiles = {def.texture}, + paramtype = "light", + paramtype2 = "facedir", + sunlight_propagates = true, + is_ground_content = false, + drop = name .. "_closed", + connect_sides = {"left", "right"}, + groups = def.groups, + sounds = def.sounds, + on_rightclick = function(pos, node, clicker, itemstack, pointed_thing) + local node_def = minetest.registered_nodes[node.name] + minetest.swap_node(pos, {name = node_def.gate, param2 = node.param2}) + minetest.sound_play(node_def.sound, {pos = pos, gain = 0.3, + max_hear_distance = 8}) + return itemstack + end, + selection_box = { + type = "fixed", + fixed = {-1/2, -1/2, -1/4, 1/2, 1/2, 1/4}, + }, + } + + if not fence.sounds then + fence.sounds = default.node_sound_wood_defaults() + end + + fence.groups.fence = 1 + + local fence_closed = table.copy(fence) + fence_closed.mesh = "doors_fencegate_closed.obj" + fence_closed.gate = name .. "_open" + fence_closed.sound = "doors_fencegate_open" + fence_closed.collision_box = { + type = "fixed", + fixed = {-1/2, -1/2, -1/4, 1/2, 1/2, 1/4}, + } + + local fence_open = table.copy(fence) + fence_open.mesh = "doors_fencegate_open.obj" + fence_open.gate = name .. "_closed" + fence_open.sound = "doors_fencegate_close" + fence_open.groups.not_in_creative_inventory = 1 + fence_open.collision_box = { + type = "fixed", + fixed = {{-1/2, -1/2, -1/4, -3/8, 1/2, 1/4}, + {-1/2, -3/8, -1/2, -3/8, 3/8, 0}}, + } + + minetest.register_node(":" .. name .. "_closed", fence_closed) + minetest.register_node(":" .. name .. "_open", fence_open) + + minetest.register_craft({ + output = name .. "_closed", + recipe = { + {"default:stick", def.material, "default:stick"}, + {"default:stick", def.material, "default:stick"} + } + }) +end + +doors.register_fencegate("doors_smallwhite", { + description = "White Fence Gate", + texture = "color_white.png", + material = "color:white", + groups = {choppy = 2, oddly_breakable_by_hand = 2, flammable = 2} +}) + + + + + diff --git a/games/default/files/Nodes/doors/license.txt b/games/default/files/Nodes/doors/license.txt new file mode 100644 index 000000000..8ce73c49f --- /dev/null +++ b/games/default/files/Nodes/doors/license.txt @@ -0,0 +1,164 @@ +License of source code +---------------------- + +The MIT License (MIT) +Copyright (C) 2012-2016 PilzAdam +Copyright (C) 2014-2016 BlockMen +Copyright (C) 2015-2016 sofar (sofar@foo-projects.org) +Copyright (C) 2012-2016 Various Minetest developers and contributors + +Permission is hereby granted, free of charge, to any person obtaining a copy of this +software and associated documentation files (the "Software"), to deal in the Software +without restriction, including without limitation the rights to use, copy, modify, merge, +publish, distribute, sublicense, and/or sell copies of the Software, and to permit +persons to whom the Software is furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all copies or +substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, +INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR +PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE +FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR +OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER +DEALINGS IN THE SOFTWARE. + +For more details: +https://opensource.org/licenses/MIT + + +Licenses of media (textures, models and sounds) +----------------------------------------------- + +Attribution-ShareAlike 3.0 Unported (CC BY-SA 3.0) +Copyright (C) 2011-2016 Fernando Zapata +Copyright (C) 2014-2016 celeron55 +Copyright (C) 2012-2016 PilzAdam +Copyright (C) 2014-2016 BlockMen +Copyright (C) 2015-2016 sofar +Copyright (C) 2016 red-001 +Copyright (C) 2016 paramat + +You are free to: +Share — copy and redistribute the material in any medium or format. +Adapt — remix, transform, and build upon the material for any purpose, even commercially. +The licensor cannot revoke these freedoms as long as you follow the license terms. + +Under the following terms: + +Attribution — You must give appropriate credit, provide a link to the license, and +indicate if changes were made. You may do so in any reasonable manner, but not in any way +that suggests the licensor endorses you or your use. + +ShareAlike — If you remix, transform, or build upon the material, you must distribute +your contributions under the same license as the original. + +No additional restrictions — You may not apply legal terms or technological measures that +legally restrict others from doing anything the license permits. + +Notices: + +You do not have to comply with the license for elements of the material in the public +domain or where your use is permitted by an applicable exception or limitation. +No warranties are given. The license may not give you all of the permissions necessary +for your intended use. For example, other rights such as publicity, privacy, or moral +rights may limit how you use the material. + +For more details: +http://creativecommons.org/licenses/by-sa/3.0/ + +----------------------- + +Attribution-ShareAlike 4.0 International (CC BY-SA 4.0) +Copyright (C) 2014-2016 PenguinDad + +You are free to: +Share — copy and redistribute the material in any medium or format. +Adapt — remix, transform, and build upon the material for any purpose, even commercially. +The licensor cannot revoke these freedoms as long as you follow the license terms. + +Under the following terms: + +Attribution — You must give appropriate credit, provide a link to the license, and +indicate if changes were made. You may do so in any reasonable manner, but not in any way +that suggests the licensor endorses you or your use. + +ShareAlike — If you remix, transform, or build upon the material, you must distribute +your contributions under the same license as the original. + +No additional restrictions — You may not apply legal terms or technological measures that +legally restrict others from doing anything the license permits. + +Notices: + +You do not have to comply with the license for elements of the material in the public +domain or where your use is permitted by an applicable exception or limitation. +No warranties are given. The license may not give you all of the permissions necessary +for your intended use. For example, other rights such as publicity, privacy, or moral +rights may limit how you use the material. + +For more details: +http://creativecommons.org/licenses/by-sa/4.0/ + +----------------------- + +Attribution 3.0 Unported (CC BY 3.0) +Copyright (C) 2014 CGEffex +Copyright (C) 2014 bennstir +Copyright (C) 2016 BarkersPinhead +Copyright (C) 2016 rivernile7 +Copyright (C) 2016 HazMatt + +You are free to: +Share — copy and redistribute the material in any medium or format. +Adapt — remix, transform, and build upon the material for any purpose, even commercially. +The licensor cannot revoke these freedoms as long as you follow the license terms. + +Under the following terms: + +Attribution — You must give appropriate credit, provide a link to the license, and +indicate if changes were made. You may do so in any reasonable manner, but not in any way +that suggests the licensor endorses you or your use. + +No additional restrictions — You may not apply legal terms or technological measures that +legally restrict others from doing anything the license permits. + +Notices: + +You do not have to comply with the license for elements of the material in the public +domain or where your use is permitted by an applicable exception or limitation. +No warranties are given. The license may not give you all of the permissions necessary +for your intended use. For example, other rights such as publicity, privacy, or moral +rights may limit how you use the material. + +For more details: +http://creativecommons.org/licenses/by/3.0/ + +----------------------- + +CC0 1.0 Universal (CC0 1.0) Public Domain Dedication +mhtaylor67 +SkeetMasterFunk69 + +No Copyright + +The person who associated a work with this deed has dedicated the work to the public +domain by waiving all of his or her rights to the work worldwide under copyright law, +including all related and neighboring rights, to the extent allowed by law. + +You can copy, modify, distribute and perform the work, even for commercial purposes, all +without asking permission. See Other Information below. + +Other Information + +In no way are the patent or trademark rights of any person affected by CC0, nor are the +rights that other persons may have in the work or in how the work is used, such as +publicity or privacy rights. +Unless expressly stated otherwise, the person who associated a work with this deed makes +no warranties about the work, and disclaims liability for all uses of the work, to the +fullest extent permitted by applicable law. +When using or citing the work, you should not imply endorsement by the author or the +affirmer. + +For more details: +https://creativecommons.org/publicdomain/zero/1.0/ diff --git a/games/default/files/doors/models/door_a.obj b/games/default/files/Nodes/doors/models/door_a.obj similarity index 100% rename from games/default/files/doors/models/door_a.obj rename to games/default/files/Nodes/doors/models/door_a.obj diff --git a/games/default/files/doors/models/door_b.obj b/games/default/files/Nodes/doors/models/door_b.obj similarity index 100% rename from games/default/files/doors/models/door_b.obj rename to games/default/files/Nodes/doors/models/door_b.obj diff --git a/games/default/files/Nodes/doors/models/doors_fencegate_closed.obj b/games/default/files/Nodes/doors/models/doors_fencegate_closed.obj new file mode 100644 index 000000000..0050f70e3 --- /dev/null +++ b/games/default/files/Nodes/doors/models/doors_fencegate_closed.obj @@ -0,0 +1,106 @@ +# Blender v2.76 (sub 0) OBJ File: 'gate_closed.blend' +# www.blender.org +mtllib gate_closed.mtl +o Cube_Cube.001 +v -0.625000 -0.500000 0.125000 +v -0.625000 0.500100 0.125000 +v -0.625000 -0.500000 -0.125000 +v -0.625000 0.500100 -0.125000 +v -0.375000 -0.500000 0.125000 +v -0.375000 0.500100 0.125000 +v -0.375000 -0.500000 -0.125000 +v -0.375000 0.500100 -0.125000 +v 0.375000 -0.500000 0.125000 +v 0.375000 0.500100 0.125000 +v 0.375000 -0.500000 -0.125000 +v 0.375000 0.500100 -0.125000 +v 0.625000 -0.500000 0.125000 +v 0.625000 0.500100 0.125000 +v 0.625000 -0.500000 -0.125000 +v 0.625000 0.500100 -0.125000 +v -0.375000 0.187500 0.062500 +v -0.375000 0.312500 0.062500 +v -0.375000 0.187500 -0.062500 +v -0.375000 0.312500 -0.062500 +v 0.375000 0.187500 0.062500 +v 0.375000 0.312500 0.062500 +v 0.375000 0.187500 -0.062500 +v 0.375000 0.312500 -0.062500 +v -0.374831 0.187348 0.062500 +v -0.156342 0.187363 0.062500 +v -0.374831 0.187348 -0.062500 +v -0.156342 0.187363 -0.062500 +v 0.374981 -0.343683 0.062500 +v 0.375065 -0.187304 0.062500 +v 0.374981 -0.343683 -0.062500 +v 0.375065 -0.187304 -0.062500 +vt 0.000000 0.750000 +vt 0.000000 0.500000 +vt 1.000000 0.500000 +vt 1.000000 0.750000 +vt 1.000000 1.000000 +vt -0.000000 1.000000 +vt 1.000000 -0.000000 +vt 1.000000 0.250000 +vt 0.000000 0.250000 +vt -0.000000 0.000000 +vt 0.250000 0.000000 +vt 0.250000 0.250000 +vt 0.250000 0.750000 +vt 0.250000 1.000000 +vt 0.500000 -0.000000 +vt 0.500000 0.250000 +vt 0.500000 0.750000 +vt 0.500000 1.000000 +vt 1.000000 0.625000 +vt 0.000000 0.625000 +vt 1.000000 0.875000 +vt 0.000000 0.875000 +vt -0.000000 0.687500 +vt 0.000000 0.562500 +vt 1.000000 0.562500 +vt 1.000000 0.687500 +vt 0.813740 0.249033 +vt 0.201557 0.249293 +vt 0.120995 0.125498 +vt 0.987404 0.125469 +vt 0.125000 0.375000 +vt 0.812500 0.375000 +vt 0.937500 0.500000 +vt 0.062500 0.500000 +vt 0.000000 0.125000 +vt 1.000000 0.125000 +vt 0.312500 0.437500 +vt 0.312500 0.312500 +vt 1.000000 0.312500 +vt 1.000000 0.437500 +vn -1.000000 0.000000 0.000000 +vn 0.000000 0.000000 -1.000000 +vn 1.000000 0.000000 0.000000 +vn 0.000000 0.000000 1.000000 +vn 0.000000 -1.000000 0.000000 +vn 0.000000 1.000000 0.000000 +vn -0.578000 -0.816100 0.000000 +vn 0.576200 0.817300 0.000000 +usemtl None +s off +f 2/1/1 4/2/1 3/3/1 1/4/1 +f 4/4/2 8/5/2 7/6/2 3/1/2 +f 8/7/3 6/8/3 5/9/3 7/10/3 +f 6/2/4 2/9/4 1/8/4 5/3/4 +f 1/9/5 3/10/5 7/11/5 5/12/5 +f 6/6/6 8/1/6 4/13/6 2/14/6 +f 10/1/1 12/2/1 11/3/1 9/4/1 +f 12/2/2 16/9/2 15/8/2 11/3/2 +f 16/7/3 14/8/3 13/9/3 15/10/3 +f 14/4/4 10/5/4 9/6/4 13/1/4 +f 9/12/5 11/11/5 15/15/5 13/16/5 +f 14/14/6 16/13/6 12/17/6 10/18/6 +f 20/2/2 24/3/2 23/19/2 19/20/2 +f 22/1/4 18/4/4 17/21/4 21/22/4 +f 17/23/5 19/24/5 23/25/5 21/26/5 +f 22/21/6 24/5/6 20/6/6 18/22/6 +f 28/27/2 32/28/2 31/29/2 27/30/2 +f 30/31/4 26/32/4 25/33/4 29/34/4 +f 25/35/7 27/10/7 31/7/7 29/36/7 +f 30/37/8 32/38/8 28/39/8 26/40/8 diff --git a/games/default/files/Nodes/doors/models/doors_fencegate_open.obj b/games/default/files/Nodes/doors/models/doors_fencegate_open.obj new file mode 100644 index 000000000..3fb727f40 --- /dev/null +++ b/games/default/files/Nodes/doors/models/doors_fencegate_open.obj @@ -0,0 +1,112 @@ +# Blender v2.76 (sub 0) OBJ File: 'gate_open.blend' +# www.blender.org +mtllib gate_open.mtl +o Cube_Cube.001 +v -0.625000 -0.500000 0.125000 +v -0.625000 0.500100 0.125000 +v -0.625000 -0.500000 -0.125000 +v -0.625000 0.500100 -0.125000 +v -0.375000 -0.500000 0.125000 +v -0.375000 0.500100 0.125000 +v -0.375000 -0.500000 -0.125000 +v -0.375000 0.500100 -0.125000 +v 0.375000 -0.500000 0.125000 +v 0.375000 0.500100 0.125000 +v 0.375000 -0.500000 -0.125000 +v 0.375000 0.500100 -0.125000 +v 0.625000 -0.500000 0.125000 +v 0.625000 0.500100 0.125000 +v 0.625000 -0.500000 -0.125000 +v 0.625000 0.500100 -0.125000 +v 0.434859 0.187500 -0.872359 +v 0.434859 0.312500 -0.872359 +v 0.559859 0.187500 -0.872359 +v 0.559859 0.312500 -0.872359 +v 0.434859 0.187500 -0.122359 +v 0.434859 0.312500 -0.122359 +v 0.559859 0.187500 -0.122359 +v 0.559859 0.312500 -0.122359 +v 0.434859 0.187348 -0.872190 +v 0.434859 0.187363 -0.653701 +v 0.559859 0.187348 -0.872190 +v 0.559859 0.187363 -0.653701 +v 0.434859 -0.343683 -0.122379 +v 0.434859 -0.187304 -0.122294 +v 0.559859 -0.343683 -0.122379 +v 0.559859 -0.187304 -0.122294 +v 0.499560 -0.442900 0.005495 +vt 0.000000 0.750000 +vt 0.000000 0.500000 +vt 1.000000 0.500000 +vt 1.000000 0.750000 +vt 1.000000 1.000000 +vt -0.000000 1.000000 +vt 1.000000 -0.000000 +vt 1.000000 0.250000 +vt 0.000000 0.250000 +vt -0.000000 0.000000 +vt 0.250000 0.000000 +vt 0.250000 0.250000 +vt 0.250000 0.750000 +vt 0.250000 1.000000 +vt 0.500000 -0.000000 +vt 0.500000 0.250000 +vt 0.500000 0.750000 +vt 0.500000 1.000000 +vt 1.000000 0.625000 +vt 0.000000 0.625000 +vt 1.000000 0.875000 +vt 0.000000 0.875000 +vt -0.000000 0.687500 +vt 0.000000 0.562500 +vt 1.000000 0.562500 +vt 1.000000 0.687500 +vt 0.813740 0.249033 +vt 0.201557 0.249293 +vt 0.120995 0.125498 +vt 0.987404 0.125469 +vt 0.125000 0.375000 +vt 0.812500 0.375000 +vt 0.937500 0.500000 +vt 0.062500 0.500000 +vt 0.000000 0.125000 +vt 1.000000 0.125000 +vt 0.312500 0.437500 +vt 0.312500 0.312500 +vt 1.000000 0.312500 +vt 1.000000 0.437500 +vt 0.312500 0.625000 +vt 0.312500 0.500000 +vt 0.187500 0.500000 +vt 0.187500 0.625000 +vn -1.000000 0.000000 0.000000 +vn 0.000000 0.000000 -1.000000 +vn 1.000000 0.000000 0.000000 +vn 0.000000 0.000000 1.000000 +vn 0.000000 -1.000000 0.000000 +vn 0.000000 1.000000 0.000000 +vn 0.000000 -0.816100 -0.578000 +vn 0.000000 0.817300 0.576200 +usemtl None +s off +f 2/1/1 4/2/1 3/3/1 1/4/1 +f 4/4/2 8/5/2 7/6/2 3/1/2 +f 8/7/3 6/8/3 5/9/3 7/10/3 +f 6/2/4 2/9/4 1/8/4 5/3/4 +f 1/9/5 3/10/5 7/11/5 5/12/5 +f 6/6/6 8/1/6 4/13/6 2/14/6 +f 10/1/1 12/2/1 11/3/1 9/4/1 +f 12/2/2 16/9/2 15/8/2 11/3/2 +f 16/7/3 14/8/3 13/9/3 15/10/3 +f 14/4/4 10/5/4 9/6/4 13/1/4 +f 9/12/5 11/11/5 15/15/5 13/16/5 +f 14/14/6 16/13/6 12/17/6 10/18/6 +f 20/2/3 24/3/3 23/19/3 19/20/3 +f 22/1/1 18/4/1 17/21/1 21/22/1 +f 17/23/5 19/24/5 23/25/5 21/26/5 +f 22/21/6 24/5/6 20/6/6 18/22/6 +f 28/27/3 32/28/3 31/29/3 27/30/3 +f 30/31/1 26/32/1 25/33/1 29/34/1 +f 25/35/7 27/10/7 31/7/7 29/36/7 +f 30/37/8 32/38/8 28/39/8 26/40/8 +f 17/41/2 18/42/2 20/43/2 19/44/2 diff --git a/games/default/files/Nodes/doors/sounds/doors_door_close.ogg b/games/default/files/Nodes/doors/sounds/doors_door_close.ogg new file mode 100644 index 000000000..c08399ced Binary files /dev/null and b/games/default/files/Nodes/doors/sounds/doors_door_close.ogg differ diff --git a/games/default/files/Nodes/doors/sounds/doors_door_open.ogg b/games/default/files/Nodes/doors/sounds/doors_door_open.ogg new file mode 100644 index 000000000..7df282653 Binary files /dev/null and b/games/default/files/Nodes/doors/sounds/doors_door_open.ogg differ diff --git a/games/default/files/Nodes/doors/textures/doors_blank.png b/games/default/files/Nodes/doors/textures/doors_blank.png new file mode 100644 index 000000000..1914264c0 Binary files /dev/null and b/games/default/files/Nodes/doors/textures/doors_blank.png differ diff --git a/games/default/files/Nodes/doors/textures/doors_door_black.png b/games/default/files/Nodes/doors/textures/doors_door_black.png new file mode 100644 index 000000000..21172c7e7 Binary files /dev/null and b/games/default/files/Nodes/doors/textures/doors_door_black.png differ diff --git a/games/default/files/Nodes/doors/textures/doors_door_blue.png b/games/default/files/Nodes/doors/textures/doors_door_blue.png new file mode 100644 index 000000000..761696a3e Binary files /dev/null and b/games/default/files/Nodes/doors/textures/doors_door_blue.png differ diff --git a/games/default/files/Nodes/doors/textures/doors_door_glass.png b/games/default/files/Nodes/doors/textures/doors_door_glass.png new file mode 100644 index 000000000..26c427b9f Binary files /dev/null and b/games/default/files/Nodes/doors/textures/doors_door_glass.png differ diff --git a/games/default/files/Nodes/doors/textures/doors_door_green.png b/games/default/files/Nodes/doors/textures/doors_door_green.png new file mode 100644 index 000000000..5274c581d Binary files /dev/null and b/games/default/files/Nodes/doors/textures/doors_door_green.png differ diff --git a/games/default/files/Nodes/doors/textures/doors_door_obsidian_glass.png b/games/default/files/Nodes/doors/textures/doors_door_obsidian_glass.png new file mode 100644 index 000000000..07ac5b20e Binary files /dev/null and b/games/default/files/Nodes/doors/textures/doors_door_obsidian_glass.png differ diff --git a/games/default/files/Nodes/doors/textures/doors_door_orange.png b/games/default/files/Nodes/doors/textures/doors_door_orange.png new file mode 100644 index 000000000..1c827f046 Binary files /dev/null and b/games/default/files/Nodes/doors/textures/doors_door_orange.png differ diff --git a/games/default/files/Nodes/doors/textures/doors_door_pink.png b/games/default/files/Nodes/doors/textures/doors_door_pink.png new file mode 100644 index 000000000..08b7d9c03 Binary files /dev/null and b/games/default/files/Nodes/doors/textures/doors_door_pink.png differ diff --git a/games/default/files/Nodes/doors/textures/doors_door_red.png b/games/default/files/Nodes/doors/textures/doors_door_red.png new file mode 100644 index 000000000..3ffa0f372 Binary files /dev/null and b/games/default/files/Nodes/doors/textures/doors_door_red.png differ diff --git a/games/default/files/Nodes/doors/textures/doors_door_steel.png b/games/default/files/Nodes/doors/textures/doors_door_steel.png new file mode 100644 index 000000000..f42f3350a Binary files /dev/null and b/games/default/files/Nodes/doors/textures/doors_door_steel.png differ diff --git a/games/default/files/Nodes/doors/textures/doors_door_white.png b/games/default/files/Nodes/doors/textures/doors_door_white.png new file mode 100644 index 000000000..33ef07a06 Binary files /dev/null and b/games/default/files/Nodes/doors/textures/doors_door_white.png differ diff --git a/games/default/files/Nodes/doors/textures/doors_door_wood.png b/games/default/files/Nodes/doors/textures/doors_door_wood.png new file mode 100644 index 000000000..7b18203eb Binary files /dev/null and b/games/default/files/Nodes/doors/textures/doors_door_wood.png differ diff --git a/games/default/files/Nodes/doors/textures/doors_door_yellow.png b/games/default/files/Nodes/doors/textures/doors_door_yellow.png new file mode 100644 index 000000000..706384065 Binary files /dev/null and b/games/default/files/Nodes/doors/textures/doors_door_yellow.png differ diff --git a/games/default/files/Nodes/doors/textures/doors_item_black.png b/games/default/files/Nodes/doors/textures/doors_item_black.png new file mode 100644 index 000000000..b3e576496 Binary files /dev/null and b/games/default/files/Nodes/doors/textures/doors_item_black.png differ diff --git a/games/default/files/Nodes/doors/textures/doors_item_blue.png b/games/default/files/Nodes/doors/textures/doors_item_blue.png new file mode 100644 index 000000000..42137b1ea Binary files /dev/null and b/games/default/files/Nodes/doors/textures/doors_item_blue.png differ diff --git a/games/default/files/Nodes/doors/textures/doors_item_glass.png b/games/default/files/Nodes/doors/textures/doors_item_glass.png new file mode 100644 index 000000000..791a58ab1 Binary files /dev/null and b/games/default/files/Nodes/doors/textures/doors_item_glass.png differ diff --git a/games/default/files/Nodes/doors/textures/doors_item_green.png b/games/default/files/Nodes/doors/textures/doors_item_green.png new file mode 100644 index 000000000..b95f2cfc3 Binary files /dev/null and b/games/default/files/Nodes/doors/textures/doors_item_green.png differ diff --git a/games/default/files/Nodes/doors/textures/doors_item_obsidian_glass.png b/games/default/files/Nodes/doors/textures/doors_item_obsidian_glass.png new file mode 100644 index 000000000..1026d4372 Binary files /dev/null and b/games/default/files/Nodes/doors/textures/doors_item_obsidian_glass.png differ diff --git a/games/default/files/Nodes/doors/textures/doors_item_orange.png b/games/default/files/Nodes/doors/textures/doors_item_orange.png new file mode 100644 index 000000000..b0d522ae5 Binary files /dev/null and b/games/default/files/Nodes/doors/textures/doors_item_orange.png differ diff --git a/games/default/files/Nodes/doors/textures/doors_item_pink.png b/games/default/files/Nodes/doors/textures/doors_item_pink.png new file mode 100644 index 000000000..70db366d1 Binary files /dev/null and b/games/default/files/Nodes/doors/textures/doors_item_pink.png differ diff --git a/games/default/files/Nodes/doors/textures/doors_item_red.png b/games/default/files/Nodes/doors/textures/doors_item_red.png new file mode 100644 index 000000000..f23e7d11f Binary files /dev/null and b/games/default/files/Nodes/doors/textures/doors_item_red.png differ diff --git a/games/default/files/Nodes/doors/textures/doors_item_steel.png b/games/default/files/Nodes/doors/textures/doors_item_steel.png new file mode 100644 index 000000000..dd99e1361 Binary files /dev/null and b/games/default/files/Nodes/doors/textures/doors_item_steel.png differ diff --git a/games/default/files/Nodes/doors/textures/doors_item_white.png b/games/default/files/Nodes/doors/textures/doors_item_white.png new file mode 100644 index 000000000..a11cba101 Binary files /dev/null and b/games/default/files/Nodes/doors/textures/doors_item_white.png differ diff --git a/games/default/files/Nodes/doors/textures/doors_item_wood.png b/games/default/files/Nodes/doors/textures/doors_item_wood.png new file mode 100644 index 000000000..100fe15fa Binary files /dev/null and b/games/default/files/Nodes/doors/textures/doors_item_wood.png differ diff --git a/games/default/files/Nodes/doors/textures/doors_item_yellow.png b/games/default/files/Nodes/doors/textures/doors_item_yellow.png new file mode 100644 index 000000000..2bdab6ec0 Binary files /dev/null and b/games/default/files/Nodes/doors/textures/doors_item_yellow.png differ diff --git a/games/default/files/Nodes/doors/textures/doors_trapdoor.png b/games/default/files/Nodes/doors/textures/doors_trapdoor.png new file mode 100644 index 000000000..e92c8b2e1 Binary files /dev/null and b/games/default/files/Nodes/doors/textures/doors_trapdoor.png differ diff --git a/games/default/files/Nodes/doors/textures/doors_trapdoor_side.png b/games/default/files/Nodes/doors/textures/doors_trapdoor_side.png new file mode 100644 index 000000000..c45d870d9 Binary files /dev/null and b/games/default/files/Nodes/doors/textures/doors_trapdoor_side.png differ diff --git a/games/default/files/Nodes/doors/textures/doors_trapdoor_steel.png b/games/default/files/Nodes/doors/textures/doors_trapdoor_steel.png new file mode 100644 index 000000000..4ba507d61 Binary files /dev/null and b/games/default/files/Nodes/doors/textures/doors_trapdoor_steel.png differ diff --git a/games/default/files/Nodes/doors/textures/doors_trapdoor_steel_side.png b/games/default/files/Nodes/doors/textures/doors_trapdoor_steel_side.png new file mode 100644 index 000000000..44c4344b2 Binary files /dev/null and b/games/default/files/Nodes/doors/textures/doors_trapdoor_steel_side.png differ diff --git a/games/default/files/Nodes/fence/cheapwood.lua b/games/default/files/Nodes/fence/cheapwood.lua new file mode 100644 index 000000000..c1625602a --- /dev/null +++ b/games/default/files/Nodes/fence/cheapwood.lua @@ -0,0 +1,44 @@ +-- +-- Fence +-- + +local source_list = { + {"black", "Darkened", "292421", 40, 36, 33}, + {"blue", "Blue", "0000FF", 0, 0, 255}, + {"green", "Green", "00FF00", 0, 255, 0}, + {"white", "White", "F5F5F5", 245, 245, 245}, + {"orange", "Orange", "FF6103", 255, 97, 3}, + {"red", "Red", "FF0000", 255, 0, 0}, + {"yellow", "Yellow", "FFFF00", 255, 255, 0}, + {"pink", "pink", "FF69B4", 255, 105, 180} +} + +for i in ipairs(source_list) do + local name = source_list[i][1] + local desc = source_list[i][2] + local colour = source_list[i][3] + local red = source_list[i][4] + local green = source_list[i][5] + local blue = source_list[i][6] + + minetest.register_node("fence:" .. name, { + description = desc .. " Fence ", + wield_image = "color_hand" .. name .. ".png", + inventory_image = "fence.png^[colorize:#"..colour..":70", + wield_scale = {x=2,y=1.5,z=0.2}, + tiles = {"color_" .. name .. ".png"}, + drawtype = "fencelike", + paramtype = "light", + selection_box = { + type = "fixed", + fixed = {-1/7, -1/2, -1/7, 1/7, 1/2, 1/7}, + }, + groups = {choppy=3,flammable=2}, + sounds = { + footstep = {name="wood_woodstep"}, + dig = {name="wood_woodtool"}, + place = {name="default_stoneplace"}, + }, +}) + +end diff --git a/games/default/files/Nodes/fence/depends.txt b/games/default/files/Nodes/fence/depends.txt new file mode 100644 index 000000000..22ed7be9e --- /dev/null +++ b/games/default/files/Nodes/fence/depends.txt @@ -0,0 +1,2 @@ +default +color \ No newline at end of file diff --git a/games/default/files/Nodes/fence/init.lua b/games/default/files/Nodes/fence/init.lua new file mode 100644 index 000000000..26acc44a6 --- /dev/null +++ b/games/default/files/Nodes/fence/init.lua @@ -0,0 +1,44 @@ +-- +-- Fence +-- + +local source_list = { + {"black", "Darkened", color1, 40, 36, 33}, + {"blue", "Blue", color2, 0, 0, 255}, + {"green", "Green", color3, 0, 255, 0}, + {"white", "White", color4, 245, 245, 245}, + {"orange", "Orange", color5, 255, 97, 3}, + {"red", "Red", color6, 255, 0, 0}, + {"yellow", "Yellow", color7, 255, 255, 0}, + {"pink", "pink", color8, 255, 105, 180} +} + +for i in ipairs(source_list) do + local name = source_list[i][1] + local desc = source_list[i][2] + local colour = source_list[i][3] + local red = source_list[i][4] + local green = source_list[i][5] + local blue = source_list[i][6] + + minetest.register_node("fence:" .. name, { + description = desc .. " Fence ", + wield_image = "color_handwhite.png^(color_handwhite2.png^[colorize:#"..colour..":70)", + inventory_image = "fence.png^[colorize:#"..colour..":70", + wield_scale = {x=1,y=1,z=0.5}, + tiles = {"color_white.png^[colorize:#"..colour..":70"}, + drawtype = "fencelike", + paramtype = "light", + selection_box = { + type = "fixed", + fixed = {-1/7, -1/2, -1/7, 1/7, 1/2, 1/7}, + }, + groups = {choppy=3,flammable=2}, + sounds = { + footstep = {name="wood_woodstep"}, + dig = {name="wood_woodtool"}, + place = {name="default_stoneplace"}, + }, +}) + +end diff --git a/games/default/files/Nodes/fence/textures/fence_cheapwood.png b/games/default/files/Nodes/fence/textures/fence_cheapwood.png new file mode 100644 index 000000000..1051a0f07 Binary files /dev/null and b/games/default/files/Nodes/fence/textures/fence_cheapwood.png differ diff --git a/games/default/files/Nodes/fence/textures/fence_cheapwood_amber.png b/games/default/files/Nodes/fence/textures/fence_cheapwood_amber.png new file mode 100644 index 000000000..3bfcb6d4a Binary files /dev/null and b/games/default/files/Nodes/fence/textures/fence_cheapwood_amber.png differ diff --git a/games/default/files/Nodes/fence/textures/fence_cheapwood_black.png b/games/default/files/Nodes/fence/textures/fence_cheapwood_black.png new file mode 100644 index 000000000..4bb64d96d Binary files /dev/null and b/games/default/files/Nodes/fence/textures/fence_cheapwood_black.png differ diff --git a/games/default/files/Nodes/fence/textures/fence_cheapwood_blue.png b/games/default/files/Nodes/fence/textures/fence_cheapwood_blue.png new file mode 100644 index 000000000..030386f13 Binary files /dev/null and b/games/default/files/Nodes/fence/textures/fence_cheapwood_blue.png differ diff --git a/games/default/files/Nodes/fence/textures/fence_cheapwood_brown.png b/games/default/files/Nodes/fence/textures/fence_cheapwood_brown.png new file mode 100644 index 000000000..edfe7298a Binary files /dev/null and b/games/default/files/Nodes/fence/textures/fence_cheapwood_brown.png differ diff --git a/games/default/files/Nodes/fence/textures/fence_cheapwood_chartreuse.png b/games/default/files/Nodes/fence/textures/fence_cheapwood_chartreuse.png new file mode 100644 index 000000000..734b86c8d Binary files /dev/null and b/games/default/files/Nodes/fence/textures/fence_cheapwood_chartreuse.png differ diff --git a/games/default/files/Nodes/fence/textures/fence_cheapwood_green.png b/games/default/files/Nodes/fence/textures/fence_cheapwood_green.png new file mode 100644 index 000000000..aad0b915c Binary files /dev/null and b/games/default/files/Nodes/fence/textures/fence_cheapwood_green.png differ diff --git a/games/default/files/Nodes/fence/textures/fence_cheapwood_inv.png b/games/default/files/Nodes/fence/textures/fence_cheapwood_inv.png new file mode 100644 index 000000000..3ec688e45 Binary files /dev/null and b/games/default/files/Nodes/fence/textures/fence_cheapwood_inv.png differ diff --git a/games/default/files/Nodes/fence/textures/fence_cheapwood_inv_amber.png b/games/default/files/Nodes/fence/textures/fence_cheapwood_inv_amber.png new file mode 100644 index 000000000..930b1684f Binary files /dev/null and b/games/default/files/Nodes/fence/textures/fence_cheapwood_inv_amber.png differ diff --git a/games/default/files/Nodes/fence/textures/fence_cheapwood_inv_black.png b/games/default/files/Nodes/fence/textures/fence_cheapwood_inv_black.png new file mode 100644 index 000000000..fa5522730 Binary files /dev/null and b/games/default/files/Nodes/fence/textures/fence_cheapwood_inv_black.png differ diff --git a/games/default/files/Nodes/fence/textures/fence_cheapwood_inv_blue.png b/games/default/files/Nodes/fence/textures/fence_cheapwood_inv_blue.png new file mode 100644 index 000000000..821b6c224 Binary files /dev/null and b/games/default/files/Nodes/fence/textures/fence_cheapwood_inv_blue.png differ diff --git a/games/default/files/Nodes/fence/textures/fence_cheapwood_inv_brown.png b/games/default/files/Nodes/fence/textures/fence_cheapwood_inv_brown.png new file mode 100644 index 000000000..434f0b3dc Binary files /dev/null and b/games/default/files/Nodes/fence/textures/fence_cheapwood_inv_brown.png differ diff --git a/games/default/files/Nodes/fence/textures/fence_cheapwood_inv_chartreuse.png b/games/default/files/Nodes/fence/textures/fence_cheapwood_inv_chartreuse.png new file mode 100644 index 000000000..9877302d9 Binary files /dev/null and b/games/default/files/Nodes/fence/textures/fence_cheapwood_inv_chartreuse.png differ diff --git a/games/default/files/Nodes/fence/textures/fence_cheapwood_inv_green.png b/games/default/files/Nodes/fence/textures/fence_cheapwood_inv_green.png new file mode 100644 index 000000000..596b0a0da Binary files /dev/null and b/games/default/files/Nodes/fence/textures/fence_cheapwood_inv_green.png differ diff --git a/games/default/files/Nodes/fence/textures/fence_cheapwood_inv_magenta.png b/games/default/files/Nodes/fence/textures/fence_cheapwood_inv_magenta.png new file mode 100644 index 000000000..339870c4a Binary files /dev/null and b/games/default/files/Nodes/fence/textures/fence_cheapwood_inv_magenta.png differ diff --git a/games/default/files/Nodes/fence/textures/fence_cheapwood_inv_orange.png b/games/default/files/Nodes/fence/textures/fence_cheapwood_inv_orange.png new file mode 100644 index 000000000..7c8a985bd Binary files /dev/null and b/games/default/files/Nodes/fence/textures/fence_cheapwood_inv_orange.png differ diff --git a/games/default/files/Nodes/fence/textures/fence_cheapwood_inv_purple.png b/games/default/files/Nodes/fence/textures/fence_cheapwood_inv_purple.png new file mode 100644 index 000000000..046e1a891 Binary files /dev/null and b/games/default/files/Nodes/fence/textures/fence_cheapwood_inv_purple.png differ diff --git a/games/default/files/Nodes/fence/textures/fence_cheapwood_inv_red.png b/games/default/files/Nodes/fence/textures/fence_cheapwood_inv_red.png new file mode 100644 index 000000000..9737fc3c2 Binary files /dev/null and b/games/default/files/Nodes/fence/textures/fence_cheapwood_inv_red.png differ diff --git a/games/default/files/Nodes/fence/textures/fence_cheapwood_inv_vermilion.png b/games/default/files/Nodes/fence/textures/fence_cheapwood_inv_vermilion.png new file mode 100644 index 000000000..1bdbedf47 Binary files /dev/null and b/games/default/files/Nodes/fence/textures/fence_cheapwood_inv_vermilion.png differ diff --git a/games/default/files/Nodes/fence/textures/fence_cheapwood_inv_violet.png b/games/default/files/Nodes/fence/textures/fence_cheapwood_inv_violet.png new file mode 100644 index 000000000..a8443eba8 Binary files /dev/null and b/games/default/files/Nodes/fence/textures/fence_cheapwood_inv_violet.png differ diff --git a/games/default/files/Nodes/fence/textures/fence_cheapwood_inv_viridian.png b/games/default/files/Nodes/fence/textures/fence_cheapwood_inv_viridian.png new file mode 100644 index 000000000..afedc90bc Binary files /dev/null and b/games/default/files/Nodes/fence/textures/fence_cheapwood_inv_viridian.png differ diff --git a/games/default/files/Nodes/fence/textures/fence_cheapwood_inv_yellow.png b/games/default/files/Nodes/fence/textures/fence_cheapwood_inv_yellow.png new file mode 100644 index 000000000..28ec1ad4e Binary files /dev/null and b/games/default/files/Nodes/fence/textures/fence_cheapwood_inv_yellow.png differ diff --git a/games/default/files/Nodes/fence/textures/fence_cheapwood_magenta.png b/games/default/files/Nodes/fence/textures/fence_cheapwood_magenta.png new file mode 100644 index 000000000..a309e76b6 Binary files /dev/null and b/games/default/files/Nodes/fence/textures/fence_cheapwood_magenta.png differ diff --git a/games/default/files/Nodes/fence/textures/fence_cheapwood_orange.png b/games/default/files/Nodes/fence/textures/fence_cheapwood_orange.png new file mode 100644 index 000000000..c7f19d04d Binary files /dev/null and b/games/default/files/Nodes/fence/textures/fence_cheapwood_orange.png differ diff --git a/games/default/files/Nodes/fence/textures/fence_cheapwood_purple.png b/games/default/files/Nodes/fence/textures/fence_cheapwood_purple.png new file mode 100644 index 000000000..06a1e3d50 Binary files /dev/null and b/games/default/files/Nodes/fence/textures/fence_cheapwood_purple.png differ diff --git a/games/default/files/Nodes/fence/textures/fence_cheapwood_red.png b/games/default/files/Nodes/fence/textures/fence_cheapwood_red.png new file mode 100644 index 000000000..a0163945f Binary files /dev/null and b/games/default/files/Nodes/fence/textures/fence_cheapwood_red.png differ diff --git a/games/default/files/Nodes/fence/textures/fence_cheapwood_vermilion.png b/games/default/files/Nodes/fence/textures/fence_cheapwood_vermilion.png new file mode 100644 index 000000000..ae9424008 Binary files /dev/null and b/games/default/files/Nodes/fence/textures/fence_cheapwood_vermilion.png differ diff --git a/games/default/files/Nodes/fence/textures/fence_cheapwood_violet.png b/games/default/files/Nodes/fence/textures/fence_cheapwood_violet.png new file mode 100644 index 000000000..6f16e3ee1 Binary files /dev/null and b/games/default/files/Nodes/fence/textures/fence_cheapwood_violet.png differ diff --git a/games/default/files/Nodes/fence/textures/fence_cheapwood_viridian.png b/games/default/files/Nodes/fence/textures/fence_cheapwood_viridian.png new file mode 100644 index 000000000..9f0c633c4 Binary files /dev/null and b/games/default/files/Nodes/fence/textures/fence_cheapwood_viridian.png differ diff --git a/games/default/files/Nodes/fence/textures/fence_cheapwood_yellow.png b/games/default/files/Nodes/fence/textures/fence_cheapwood_yellow.png new file mode 100644 index 000000000..3bfcb6d4a Binary files /dev/null and b/games/default/files/Nodes/fence/textures/fence_cheapwood_yellow.png differ diff --git a/games/default/files/Nodes/fence/textures/fence_space.png b/games/default/files/Nodes/fence/textures/fence_space.png new file mode 100644 index 000000000..c2e875225 Binary files /dev/null and b/games/default/files/Nodes/fence/textures/fence_space.png differ diff --git a/games/default/files/Nodes/fullpipe/LICENSE b/games/default/files/Nodes/fullpipe/LICENSE new file mode 100644 index 000000000..7205d6f0b --- /dev/null +++ b/games/default/files/Nodes/fullpipe/LICENSE @@ -0,0 +1,504 @@ +GNU LESSER GENERAL PUBLIC LICENSE + Version 2.1, February 1999 + + Copyright (C) 1991, 1999 Free Software Foundation, Inc. + 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA + Everyone is permitted to copy and distribute verbatim copies + of this license document, but changing it is not allowed. + +(This is the first released version of the Lesser GPL. It also counts + as the successor of the GNU Library Public License, version 2, hence + the version number 2.1.) + + Preamble + + The licenses for most software are designed to take away your +freedom to share and change it. By contrast, the GNU General Public +Licenses are intended to guarantee your freedom to share and change +free software--to make sure the software is free for all its users. + + This license, the Lesser General Public License, applies to some +specially designated software packages--typically libraries--of the +Free Software Foundation and other authors who decide to use it. You +can use it too, but we suggest you first think carefully about whether +this license or the ordinary General Public License is the better +strategy to use in any particular case, based on the explanations below. + + When we speak of free software, we are referring to freedom of use, +not price. Our General Public Licenses are designed to make sure that +you have the freedom to distribute copies of free software (and charge +for this service if you wish); that you receive source code or can get +it if you want it; that you can change the software and use pieces of +it in new free programs; and that you are informed that you can do +these things. + + To protect your rights, we need to make restrictions that forbid +distributors to deny you these rights or to ask you to surrender these +rights. These restrictions translate to certain responsibilities for +you if you distribute copies of the library or if you modify it. + + For example, if you distribute copies of the library, whether gratis +or for a fee, you must give the recipients all the rights that we gave +you. You must make sure that they, too, receive or can get the source +code. If you link other code with the library, you must provide +complete object files to the recipients, so that they can relink them +with the library after making changes to the library and recompiling +it. And you must show them these terms so they know their rights. + + We protect your rights with a two-step method: (1) we copyright the +library, and (2) we offer you this license, which gives you legal +permission to copy, distribute and/or modify the library. + + To protect each distributor, we want to make it very clear that +there is no warranty for the free library. Also, if the library is +modified by someone else and passed on, the recipients should know +that what they have is not the original version, so that the original +author's reputation will not be affected by problems that might be +introduced by others. + + Finally, software patents pose a constant threat to the existence of +any free program. We wish to make sure that a company cannot +effectively restrict the users of a free program by obtaining a +restrictive license from a patent holder. Therefore, we insist that +any patent license obtained for a version of the library must be +consistent with the full freedom of use specified in this license. + + Most GNU software, including some libraries, is covered by the +ordinary GNU General Public License. This license, the GNU Lesser +General Public License, applies to certain designated libraries, and +is quite different from the ordinary General Public License. We use +this license for certain libraries in order to permit linking those +libraries into non-free programs. + + When a program is linked with a library, whether statically or using +a shared library, the combination of the two is legally speaking a +combined work, a derivative of the original library. The ordinary +General Public License therefore permits such linking only if the +entire combination fits its criteria of freedom. The Lesser General +Public License permits more lax criteria for linking other code with +the library. + + We call this license the "Lesser" General Public License because it +does Less to protect the user's freedom than the ordinary General +Public License. It also provides other free software developers Less +of an advantage over competing non-free programs. These disadvantages +are the reason we use the ordinary General Public License for many +libraries. However, the Lesser license provides advantages in certain +special circumstances. + + For example, on rare occasions, there may be a special need to +encourage the widest possible use of a certain library, so that it becomes +a de-facto standard. To achieve this, non-free programs must be +allowed to use the library. A more frequent case is that a free +library does the same job as widely used non-free libraries. In this +case, there is little to gain by limiting the free library to free +software only, so we use the Lesser General Public License. + + In other cases, permission to use a particular library in non-free +programs enables a greater number of people to use a large body of +free software. For example, permission to use the GNU C Library in +non-free programs enables many more people to use the whole GNU +operating system, as well as its variant, the GNU/Linux operating +system. + + Although the Lesser General Public License is Less protective of the +users' freedom, it does ensure that the user of a program that is +linked with the Library has the freedom and the wherewithal to run +that program using a modified version of the Library. + + The precise terms and conditions for copying, distribution and +modification follow. Pay close attention to the difference between a +"work based on the library" and a "work that uses the library". The +former contains code derived from the library, whereas the latter must +be combined with the library in order to run. + + GNU LESSER GENERAL PUBLIC LICENSE + TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION + + 0. This License Agreement applies to any software library or other +program which contains a notice placed by the copyright holder or +other authorized party saying it may be distributed under the terms of +this Lesser General Public License (also called "this License"). +Each licensee is addressed as "you". + + A "library" means a collection of software functions and/or data +prepared so as to be conveniently linked with application programs +(which use some of those functions and data) to form executables. + + The "Library", below, refers to any such software library or work +which has been distributed under these terms. A "work based on the +Library" means either the Library or any derivative work under +copyright law: that is to say, a work containing the Library or a +portion of it, either verbatim or with modifications and/or translated +straightforwardly into another language. (Hereinafter, translation is +included without limitation in the term "modification".) + + "Source code" for a work means the preferred form of the work for +making modifications to it. For a library, complete source code means +all the source code for all modules it contains, plus any associated +interface definition files, plus the scripts used to control compilation +and installation of the library. + + Activities other than copying, distribution and modification are not +covered by this License; they are outside its scope. The act of +running a program using the Library is not restricted, and output from +such a program is covered only if its contents constitute a work based +on the Library (independent of the use of the Library in a tool for +writing it). Whether that is true depends on what the Library does +and what the program that uses the Library does. + + 1. You may copy and distribute verbatim copies of the Library's +complete source code as you receive it, in any medium, provided that +you conspicuously and appropriately publish on each copy an +appropriate copyright notice and disclaimer of warranty; keep intact +all the notices that refer to this License and to the absence of any +warranty; and distribute a copy of this License along with the +Library. + + You may charge a fee for the physical act of transferring a copy, +and you may at your option offer warranty protection in exchange for a +fee. + + 2. You may modify your copy or copies of the Library or any portion +of it, thus forming a work based on the Library, and copy and +distribute such modifications or work under the terms of Section 1 +above, provided that you also meet all of these conditions: + + a) The modified work must itself be a software library. + + b) You must cause the files modified to carry prominent notices + stating that you changed the files and the date of any change. + + c) You must cause the whole of the work to be licensed at no + charge to all third parties under the terms of this License. + + d) If a facility in the modified Library refers to a function or a + table of data to be supplied by an application program that uses + the facility, other than as an argument passed when the facility + is invoked, then you must make a good faith effort to ensure that, + in the event an application does not supply such function or + table, the facility still operates, and performs whatever part of + its purpose remains meaningful. + + (For example, a function in a library to compute square roots has + a purpose that is entirely well-defined independent of the + application. Therefore, Subsection 2d requires that any + application-supplied function or table used by this function must + be optional: if the application does not supply it, the square + root function must still compute square roots.) + +These requirements apply to the modified work as a whole. If +identifiable sections of that work are not derived from the Library, +and can be reasonably considered independent and separate works in +themselves, then this License, and its terms, do not apply to those +sections when you distribute them as separate works. But when you +distribute the same sections as part of a whole which is a work based +on the Library, the distribution of the whole must be on the terms of +this License, whose permissions for other licensees extend to the +entire whole, and thus to each and every part regardless of who wrote +it. + +Thus, it is not the intent of this section to claim rights or contest +your rights to work written entirely by you; rather, the intent is to +exercise the right to control the distribution of derivative or +collective works based on the Library. + +In addition, mere aggregation of another work not based on the Library +with the Library (or with a work based on the Library) on a volume of +a storage or distribution medium does not bring the other work under +the scope of this License. + + 3. You may opt to apply the terms of the ordinary GNU General Public +License instead of this License to a given copy of the Library. To do +this, you must alter all the notices that refer to this License, so +that they refer to the ordinary GNU General Public License, version 2, +instead of to this License. (If a newer version than version 2 of the +ordinary GNU General Public License has appeared, then you can specify +that version instead if you wish.) Do not make any other change in +these notices. + + Once this change is made in a given copy, it is irreversible for +that copy, so the ordinary GNU General Public License applies to all +subsequent copies and derivative works made from that copy. + + This option is useful when you wish to copy part of the code of +the Library into a program that is not a library. + + 4. You may copy and distribute the Library (or a portion or +derivative of it, under Section 2) in object code or executable form +under the terms of Sections 1 and 2 above provided that you accompany +it with the complete corresponding machine-readable source code, which +must be distributed under the terms of Sections 1 and 2 above on a +medium customarily used for software interchange. + + If distribution of object code is made by offering access to copy +from a designated place, then offering equivalent access to copy the +source code from the same place satisfies the requirement to +distribute the source code, even though third parties are not +compelled to copy the source along with the object code. + + 5. A program that contains no derivative of any portion of the +Library, but is designed to work with the Library by being compiled or +linked with it, is called a "work that uses the Library". Such a +work, in isolation, is not a derivative work of the Library, and +therefore falls outside the scope of this License. + + However, linking a "work that uses the Library" with the Library +creates an executable that is a derivative of the Library (because it +contains portions of the Library), rather than a "work that uses the +library". The executable is therefore covered by this License. +Section 6 states terms for distribution of such executables. + + When a "work that uses the Library" uses material from a header file +that is part of the Library, the object code for the work may be a +derivative work of the Library even though the source code is not. +Whether this is true is especially significant if the work can be +linked without the Library, or if the work is itself a library. The +threshold for this to be true is not precisely defined by law. + + If such an object file uses only numerical parameters, data +structure layouts and accessors, and small macros and small inline +functions (ten lines or less in length), then the use of the object +file is unrestricted, regardless of whether it is legally a derivative +work. (Executables containing this object code plus portions of the +Library will still fall under Section 6.) + + Otherwise, if the work is a derivative of the Library, you may +distribute the object code for the work under the terms of Section 6. +Any executables containing that work also fall under Section 6, +whether or not they are linked directly with the Library itself. + + 6. As an exception to the Sections above, you may also combine or +link a "work that uses the Library" with the Library to produce a +work containing portions of the Library, and distribute that work +under terms of your choice, provided that the terms permit +modification of the work for the customer's own use and reverse +engineering for debugging such modifications. + + You must give prominent notice with each copy of the work that the +Library is used in it and that the Library and its use are covered by +this License. You must supply a copy of this License. If the work +during execution displays copyright notices, you must include the +copyright notice for the Library among them, as well as a reference +directing the user to the copy of this License. Also, you must do one +of these things: + + a) Accompany the work with the complete corresponding + machine-readable source code for the Library including whatever + changes were used in the work (which must be distributed under + Sections 1 and 2 above); and, if the work is an executable linked + with the Library, with the complete machine-readable "work that + uses the Library", as object code and/or source code, so that the + user can modify the Library and then relink to produce a modified + executable containing the modified Library. (It is understood + that the user who changes the contents of definitions files in the + Library will not necessarily be able to recompile the application + to use the modified definitions.) + + b) Use a suitable shared library mechanism for linking with the + Library. A suitable mechanism is one that (1) uses at run time a + copy of the library already present on the user's computer system, + rather than copying library functions into the executable, and (2) + will operate properly with a modified version of the library, if + the user installs one, as long as the modified version is + interface-compatible with the version that the work was made with. + + c) Accompany the work with a written offer, valid for at + least three years, to give the same user the materials + specified in Subsection 6a, above, for a charge no more + than the cost of performing this distribution. + + d) If distribution of the work is made by offering access to copy + from a designated place, offer equivalent access to copy the above + specified materials from the same place. + + e) Verify that the user has already received a copy of these + materials or that you have already sent this user a copy. + + For an executable, the required form of the "work that uses the +Library" must include any data and utility programs needed for +reproducing the executable from it. However, as a special exception, +the materials to be distributed need not include anything that is +normally distributed (in either source or binary form) with the major +components (compiler, kernel, and so on) of the operating system on +which the executable runs, unless that component itself accompanies +the executable. + + It may happen that this requirement contradicts the license +restrictions of other proprietary libraries that do not normally +accompany the operating system. Such a contradiction means you cannot +use both them and the Library together in an executable that you +distribute. + + 7. You may place library facilities that are a work based on the +Library side-by-side in a single library together with other library +facilities not covered by this License, and distribute such a combined +library, provided that the separate distribution of the work based on +the Library and of the other library facilities is otherwise +permitted, and provided that you do these two things: + + a) Accompany the combined library with a copy of the same work + based on the Library, uncombined with any other library + facilities. This must be distributed under the terms of the + Sections above. + + b) Give prominent notice with the combined library of the fact + that part of it is a work based on the Library, and explaining + where to find the accompanying uncombined form of the same work. + + 8. You may not copy, modify, sublicense, link with, or distribute +the Library except as expressly provided under this License. Any +attempt otherwise to copy, modify, sublicense, link with, or +distribute the Library is void, and will automatically terminate your +rights under this License. However, parties who have received copies, +or rights, from you under this License will not have their licenses +terminated so long as such parties remain in full compliance. + + 9. You are not required to accept this License, since you have not +signed it. However, nothing else grants you permission to modify or +distribute the Library or its derivative works. These actions are +prohibited by law if you do not accept this License. Therefore, by +modifying or distributing the Library (or any work based on the +Library), you indicate your acceptance of this License to do so, and +all its terms and conditions for copying, distributing or modifying +the Library or works based on it. + + 10. Each time you redistribute the Library (or any work based on the +Library), the recipient automatically receives a license from the +original licensor to copy, distribute, link with or modify the Library +subject to these terms and conditions. You may not impose any further +restrictions on the recipients' exercise of the rights granted herein. +You are not responsible for enforcing compliance by third parties with +this License. + + 11. If, as a consequence of a court judgment or allegation of patent +infringement or for any other reason (not limited to patent issues), +conditions are imposed on you (whether by court order, agreement or +otherwise) that contradict the conditions of this License, they do not +excuse you from the conditions of this License. If you cannot +distribute so as to satisfy simultaneously your obligations under this +License and any other pertinent obligations, then as a consequence you +may not distribute the Library at all. For example, if a patent +license would not permit royalty-free redistribution of the Library by +all those who receive copies directly or indirectly through you, then +the only way you could satisfy both it and this License would be to +refrain entirely from distribution of the Library. + +If any portion of this section is held invalid or unenforceable under any +particular circumstance, the balance of the section is intended to apply, +and the section as a whole is intended to apply in other circumstances. + +It is not the purpose of this section to induce you to infringe any +patents or other property right claims or to contest validity of any +such claims; this section has the sole purpose of protecting the +integrity of the free software distribution system which is +implemented by public license practices. Many people have made +generous contributions to the wide range of software distributed +through that system in reliance on consistent application of that +system; it is up to the author/donor to decide if he or she is willing +to distribute software through any other system and a licensee cannot +impose that choice. + +This section is intended to make thoroughly clear what is believed to +be a consequence of the rest of this License. + + 12. If the distribution and/or use of the Library is restricted in +certain countries either by patents or by copyrighted interfaces, the +original copyright holder who places the Library under this License may add +an explicit geographical distribution limitation excluding those countries, +so that distribution is permitted only in or among countries not thus +excluded. In such case, this License incorporates the limitation as if +written in the body of this License. + + 13. The Free Software Foundation may publish revised and/or new +versions of the Lesser General Public License from time to time. +Such new versions will be similar in spirit to the present version, +but may differ in detail to address new problems or concerns. + +Each version is given a distinguishing version number. If the Library +specifies a version number of this License which applies to it and +"any later version", you have the option of following the terms and +conditions either of that version or of any later version published by +the Free Software Foundation. If the Library does not specify a +license version number, you may choose any version ever published by +the Free Software Foundation. + + 14. If you wish to incorporate parts of the Library into other free +programs whose distribution conditions are incompatible with these, +write to the author to ask for permission. For software which is +copyrighted by the Free Software Foundation, write to the Free +Software Foundation; we sometimes make exceptions for this. Our +decision will be guided by the two goals of preserving the free status +of all derivatives of our free software and of promoting the sharing +and reuse of software generally. + + NO WARRANTY + + 15. BECAUSE THE LIBRARY IS LICENSED FREE OF CHARGE, THERE IS NO +WARRANTY FOR THE LIBRARY, TO THE EXTENT PERMITTED BY APPLICABLE LAW. +EXCEPT WHEN OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR +OTHER PARTIES PROVIDE THE LIBRARY "AS IS" WITHOUT WARRANTY OF ANY +KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE +IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR +PURPOSE. THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE +LIBRARY IS WITH YOU. SHOULD THE LIBRARY PROVE DEFECTIVE, YOU ASSUME +THE COST OF ALL NECESSARY SERVICING, REPAIR OR CORRECTION. + + 16. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN +WRITING WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY +AND/OR REDISTRIBUTE THE LIBRARY AS PERMITTED ABOVE, BE LIABLE TO YOU +FOR DAMAGES, INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR +CONSEQUENTIAL DAMAGES ARISING OUT OF THE USE OR INABILITY TO USE THE +LIBRARY (INCLUDING BUT NOT LIMITED TO LOSS OF DATA OR DATA BEING +RENDERED INACCURATE OR LOSSES SUSTAINED BY YOU OR THIRD PARTIES OR A +FAILURE OF THE LIBRARY TO OPERATE WITH ANY OTHER SOFTWARE), EVEN IF +SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH +DAMAGES. + + END OF TERMS AND CONDITIONS + + How to Apply These Terms to Your New Libraries + + If you develop a new library, and you want it to be of the greatest +possible use to the public, we recommend making it free software that +everyone can redistribute and change. You can do so by permitting +redistribution under these terms (or, alternatively, under the terms of the +ordinary General Public License). + + To apply these terms, attach the following notices to the library. It is +safest to attach them to the start of each source file to most effectively +convey the exclusion of warranty; and each file should have at least the +"copyright" line and a pointer to where the full notice is found. + + {description} + Copyright (C) {year} {fullname} + + This library 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 2.1 of the License, or (at your option) any later version. + + This library 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 library; if not, write to the Free Software + Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 + USA + +Also add information on how to contact you by electronic and paper mail. + +You should also get your employer (if you work as a programmer) or your +school, if any, to sign a "copyright disclaimer" for the library, if +necessary. Here is a sample; alter the names: + + Yoyodyne, Inc., hereby disclaims all copyright interest in the + library `Frob' (a library for tweaking knobs) written by James Random + Hacker. + + {signature of Ty Coon}, 1 April 1990 + Ty Coon, President of Vice + +That's all there is to it! diff --git a/games/default/files/Nodes/fullpipe/README.md b/games/default/files/Nodes/fullpipe/README.md new file mode 100644 index 000000000..3244d1f29 --- /dev/null +++ b/games/default/files/Nodes/fullpipe/README.md @@ -0,0 +1,41 @@ +FullPipe (columnia fork for Blockcolor) + +Changelog : + +- Delete Bottom, Add rotate in top node. +- Delete Crosslink and Linkdown, use a block color is good. +- Replace Textures use by Colors. + +======== + +Licences: + +FullPipe (2018 by Chiantos) is à fork of columnia for Blockcolor Game. + +Columnia (2014 by Glunggi) is a fork of stairs ..in principle is its stairs with other nodes. +So i will to keep the old stairs- Licenses for this chanced Mode.. include all of my chances. + +Minetest 0.4 mod: stairs +========================= + +License of source code: +----------------------- +Copyright (C) 2011-2012 Kahrl +Copyright (C) 2011-2012 celeron55, Perttu Ahola + +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 2 of the License, or +(at your option) any later version. + +http://www.gnu.org/licenses/lgpl-2.1.html + +License of media (textures and sounds) +-------------------------------------- +Attribution-ShareAlike 3.0 Unported (CC BY-SA 3.0) +http://creativecommons.org/licenses/by-sa/3.0/ + +Authors of media files +----------------------- +Everything not listed in here: +Copyright (C) 2010-2012 celeron55, Perttu Ahola diff --git a/games/default/files/Nodes/fullpipe/depends.txt b/games/default/files/Nodes/fullpipe/depends.txt new file mode 100644 index 000000000..22ed7be9e --- /dev/null +++ b/games/default/files/Nodes/fullpipe/depends.txt @@ -0,0 +1,2 @@ +default +color \ No newline at end of file diff --git a/games/default/files/Nodes/fullpipe/init.lua b/games/default/files/Nodes/fullpipe/init.lua new file mode 100644 index 000000000..fae52ad04 --- /dev/null +++ b/games/default/files/Nodes/fullpipe/init.lua @@ -0,0 +1,92 @@ +-- Blockcolor 1.46.4 : pipefull by Chiantos ( Fork Columnia // 2018) + +-- Minetest 0.4 mod: columnia by Glunggi(former Stairs Copyright by(C) 2011-2012 Kahrl Copyright (C) 2011-2012 celeron55, Perttu Ahola) +-- See README.txt for licensing and other information. + +fullpipe = {} + +function fullpipe.register_pipe_border(subname, recipeitem, groups, images, description, inventorys, wieldcolors, sounds) + minetest.register_node("fullpipe:border_" .. subname, { + wield_image = wieldcolors, + wield_scale = {x=1,y=1,z=0.5}, + inventory_image = inventorys, + description = description, + drawtype = "nodebox", + tiles = images, + paramtype = "light", + paramtype2 = "facedir", + is_ground_content = true, + groups = groups, + sounds = sounds, + node_box = { + type = "fixed", + fixed = { + {-0.25, -0.5, -0.25, 0.25, 0.5, 0.25}, + {-0.5, 0.25, -0.5, 0.5, 0.5, 0.5}, + {-0.375, 0, -0.375, 0.375, 0.5, 0.375}, + }, + }, + + }) + +end + +function fullpipe.register_pipe_block(subname, recipeitem, groups, images, description, inventorys, wieldcolors, sounds) + minetest.register_node("fullpipe:block_" .. subname, { + wield_image = wieldcolors, + wield_scale = {x=1,y=1,z=0.5}, + inventory_image = inventorys, + description = description, + drawtype = "nodebox", + tiles = images, + paramtype = "light", + paramtype2 = "facedir", + is_ground_content = true, + groups = groups, + sounds = sounds, + node_box = { + type = "fixed", + fixed = {{-1/4, -1/2, -1/4, 1/4, 1/2, 1/4}}, + }, + }) + +end + +function fullpipe.register_pipe(subname, recipeitem, groups, images, desc_pipe_border, desc_pipe_block, inv_pipe_border, inv_pipe_block, sounds) + + fullpipe.register_pipe_border(subname, recipeitem, groups, images, desc_pipe_border, inv_pipe_border, sounds) + fullpipe.register_pipe_block(subname, recipeitem, groups, images, desc_pipe_block, inv_pipe_block, sounds) + +end + +local source_list = { + {"black", "Darkened", color1, 40, 36, 33}, + {"blue", "Blue", color2, 0, 0, 255}, + {"green", "Green", color3, 0, 255, 0}, + {"white", "White", color4, 245, 245, 245}, + {"orange", "Orange", color5, 255, 97, 3}, + {"red", "Red", color6, 255, 0, 0}, + {"yellow", "Yellow", color7, 255, 255, 0}, + {"pink", "Pink", color8, 255, 105, 180} +} + +for i in ipairs(source_list) do + local name = source_list[i][1] + local desc = source_list[i][2] + local colour = source_list[i][3] + local red = source_list[i][4] + local green = source_list[i][5] + local blue = source_list[i][6] + +fullpipe.register_pipe("" .. name .. "", "color:" .. name, + {cracky=3}, + {"color_white.png^[colorize:#"..colour..":70"}, + desc .. "FullPipe Border", + desc .. "FullPipe Block", + "fullpipeborder.png^[colorize:#"..colour..":70", + "fullpipe.png^[colorize:#"..colour..":70", + "color_handwhite.png^(color_handwhite2.png^[colorize:#"..colour..":70)", + default.node_sound_stone_defaults() + ) + +end diff --git a/games/default/files/Nodes/fullpipe/readme.txt b/games/default/files/Nodes/fullpipe/readme.txt new file mode 100644 index 000000000..145fb058e --- /dev/null +++ b/games/default/files/Nodes/fullpipe/readme.txt @@ -0,0 +1,27 @@ +Columnia (2014 by Glunggi) is a Fork of Stairs ..in principle is its Stairs with other Nodes. +So i will to keep the old Stairs- Licenses for this chanced Mode.. include all of my Chances. + +Minetest 0.4 mod: stairs +========================= + +License of source code: +----------------------- +Copyright (C) 2011-2012 Kahrl +Copyright (C) 2011-2012 celeron55, Perttu Ahola + +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 2 of the License, or +(at your option) any later version. + +http://www.gnu.org/licenses/lgpl-2.1.html + +License of media (textures and sounds) +-------------------------------------- +Attribution-ShareAlike 3.0 Unported (CC BY-SA 3.0) +http://creativecommons.org/licenses/by-sa/3.0/ + +Authors of media files +----------------------- +Everything not listed in here: +Copyright (C) 2010-2012 celeron55, Perttu Ahola diff --git a/games/default/files/Nodes/fullpipe/textures/columnia_blueprint.png b/games/default/files/Nodes/fullpipe/textures/columnia_blueprint.png new file mode 100644 index 000000000..f1a1bb4ae Binary files /dev/null and b/games/default/files/Nodes/fullpipe/textures/columnia_blueprint.png differ diff --git a/games/default/files/Nodes/fullpipe/textures/columnia_lamp.png b/games/default/files/Nodes/fullpipe/textures/columnia_lamp.png new file mode 100644 index 000000000..702397e9a Binary files /dev/null and b/games/default/files/Nodes/fullpipe/textures/columnia_lamp.png differ diff --git a/games/default/files/Nodes/fullpipe/textures/columnia_lamp_inv.png b/games/default/files/Nodes/fullpipe/textures/columnia_lamp_inv.png new file mode 100644 index 000000000..44bb9c44e Binary files /dev/null and b/games/default/files/Nodes/fullpipe/textures/columnia_lamp_inv.png differ diff --git a/games/default/files/Nodes/fullpipe/textures/columnia_rusty.png b/games/default/files/Nodes/fullpipe/textures/columnia_rusty.png new file mode 100644 index 000000000..544430ab0 Binary files /dev/null and b/games/default/files/Nodes/fullpipe/textures/columnia_rusty.png differ diff --git a/games/default/files/Nodes/fullpipe/textures/columnia_rusty_block.png b/games/default/files/Nodes/fullpipe/textures/columnia_rusty_block.png new file mode 100644 index 000000000..fe6c12248 Binary files /dev/null and b/games/default/files/Nodes/fullpipe/textures/columnia_rusty_block.png differ diff --git a/games/default/files/Nodes/glass/Readme.txt b/games/default/files/Nodes/glass/Readme.txt new file mode 100644 index 000000000..cb7aba72f --- /dev/null +++ b/games/default/files/Nodes/glass/Readme.txt @@ -0,0 +1,3 @@ +Coloured Glass by JBR +Code License: CC0 +Texture License: CC BY-SA 3.0 \ No newline at end of file diff --git a/games/default/files/Nodes/glass/depends.txt b/games/default/files/Nodes/glass/depends.txt new file mode 100644 index 000000000..22ed7be9e --- /dev/null +++ b/games/default/files/Nodes/glass/depends.txt @@ -0,0 +1,2 @@ +default +color \ No newline at end of file diff --git a/games/default/files/Nodes/glass/init.lua b/games/default/files/Nodes/glass/init.lua new file mode 100644 index 000000000..b5aec6dbf --- /dev/null +++ b/games/default/files/Nodes/glass/init.lua @@ -0,0 +1,34 @@ +--[[ +Coloured Glass by JBR +Code License: CC0 +Texture License: CC BY-SA 3.0 +--]] + +local dyes = { + {"black", "Darkened", color1}, + {"blue", "Blue", color2}, + {"green", "Green", color3}, + {"white", "White", color4}, + {"orange", "Orange", color5}, + {"red", "Red", color6}, + {"yellow", "Yellow", color7}, + {"pink", "pink", color8} +} +for i = 1, #dyes do + local name, desc, colour = unpack(dyes[i]) + +minetest.register_node("glass:" .. name , { + description = name .. "Glass", + drawtype = "glasslike", + tiles = {"whiteglass.png^[colorize:#"..colour..":70"}, + inventory_image = "windows.png^[colorize:#"..colour..":70", + wield_image = "color_handwhite.png^(color_handwhite2.png^[colorize:#"..colour..":70)", + wield_scale = {x=1,y=1,z=0.5}, + paramtype = "light", + use_texture_alpha = true, + sunlight_propagates = true, + sounds = default.node_sound_glass_defaults(), + groups = {cracky=3,oddly_breakable_by_hand=3}, +}) + +end diff --git a/games/default/files/Nodes/glass/textures/blackglass.png b/games/default/files/Nodes/glass/textures/blackglass.png new file mode 100644 index 000000000..da6dbd643 Binary files /dev/null and b/games/default/files/Nodes/glass/textures/blackglass.png differ diff --git a/games/default/files/Nodes/glass/textures/blueglass.png b/games/default/files/Nodes/glass/textures/blueglass.png new file mode 100644 index 000000000..d7daba237 Binary files /dev/null and b/games/default/files/Nodes/glass/textures/blueglass.png differ diff --git a/games/default/files/Nodes/glass/textures/darkblueglass.png b/games/default/files/Nodes/glass/textures/darkblueglass.png new file mode 100644 index 000000000..ad0fb8425 Binary files /dev/null and b/games/default/files/Nodes/glass/textures/darkblueglass.png differ diff --git a/games/default/files/Nodes/glass/textures/greenglass.png b/games/default/files/Nodes/glass/textures/greenglass.png new file mode 100644 index 000000000..c3a2c5570 Binary files /dev/null and b/games/default/files/Nodes/glass/textures/greenglass.png differ diff --git a/games/default/files/Nodes/glass/textures/orangeglass.png b/games/default/files/Nodes/glass/textures/orangeglass.png new file mode 100644 index 000000000..8037a1fbb Binary files /dev/null and b/games/default/files/Nodes/glass/textures/orangeglass.png differ diff --git a/games/default/files/Nodes/glass/textures/pinkglass.png b/games/default/files/Nodes/glass/textures/pinkglass.png new file mode 100644 index 000000000..9d305ae8c Binary files /dev/null and b/games/default/files/Nodes/glass/textures/pinkglass.png differ diff --git a/games/default/files/Nodes/glass/textures/purpleglass.png b/games/default/files/Nodes/glass/textures/purpleglass.png new file mode 100644 index 000000000..f193952f7 Binary files /dev/null and b/games/default/files/Nodes/glass/textures/purpleglass.png differ diff --git a/games/default/files/Nodes/glass/textures/redglass.png b/games/default/files/Nodes/glass/textures/redglass.png new file mode 100644 index 000000000..e047fb011 Binary files /dev/null and b/games/default/files/Nodes/glass/textures/redglass.png differ diff --git a/games/default/files/Nodes/glass/textures/whiteglass.png b/games/default/files/Nodes/glass/textures/whiteglass.png new file mode 100644 index 000000000..a6938d214 Binary files /dev/null and b/games/default/files/Nodes/glass/textures/whiteglass.png differ diff --git a/games/default/files/Nodes/glass/textures/yellowglass.png b/games/default/files/Nodes/glass/textures/yellowglass.png new file mode 100644 index 000000000..67346d2d6 Binary files /dev/null and b/games/default/files/Nodes/glass/textures/yellowglass.png differ diff --git a/games/default/files/Nodes/light/README.txt b/games/default/files/Nodes/light/README.txt new file mode 100644 index 000000000..cbd240fee --- /dev/null +++ b/games/default/files/Nodes/light/README.txt @@ -0,0 +1,8 @@ +Minetest Game mod: give_initial_stuff +===================================== +See license.txt for license information. + +Authors of source code +---------------------- +Perttu Ahola (celeron55) (MIT) +Various Minetest developers and contributors (MIT) diff --git a/games/default/files/Nodes/light/depends.txt b/games/default/files/Nodes/light/depends.txt new file mode 100644 index 000000000..22ed7be9e --- /dev/null +++ b/games/default/files/Nodes/light/depends.txt @@ -0,0 +1,2 @@ +default +color \ No newline at end of file diff --git a/games/default/files/Nodes/light/init.lua b/games/default/files/Nodes/light/init.lua new file mode 100644 index 000000000..02549f838 --- /dev/null +++ b/games/default/files/Nodes/light/init.lua @@ -0,0 +1,30 @@ +local dyes = { + {"black", "Darkened", color1}, + {"blue", "Blue", color2}, + {"green", "Green", color3}, + {"white", "White", color4}, + {"orange", "Orange", color5}, + {"red", "Red", color6}, + {"yellow", "Yellow", color7}, + {"pink", "pink", color8} +} +for i = 1, #dyes do + local name, desc, colour = unpack(dyes[i]) + + minetest.register_node("light:" .. name, { + description = desc .. " light", + wield_image = "color_handwhite.png^(color_handwhite2.png^[colorize:#"..colour..":70)", + wield_scale = {x=1,y=1,z=0.5}, + inventory_image = "lights.png^[colorize:#"..colour..":70", + tiles = {"color_white.png^[colorize:#"..colour..":70"}, + paramtype = "light", + light_source = 14, + is_ground_content = true, + groups = {snappy = 2, choppy = 2, wool = 2}, + sounds = default.node_sound_defaults(), + oddly_breakable_by_hand = 1, + dig_immediate = 3, + + }) + +end diff --git a/games/default/files/wool/license.txt b/games/default/files/Nodes/light/license.txt similarity index 100% rename from games/default/files/wool/license.txt rename to games/default/files/Nodes/light/license.txt diff --git a/games/default/files/Nodes/modpack.txt b/games/default/files/Nodes/modpack.txt new file mode 100644 index 000000000..e69de29bb diff --git a/games/default/files/Nodes/noncubic/init.lua b/games/default/files/Nodes/noncubic/init.lua new file mode 100644 index 000000000..c9284a7af --- /dev/null +++ b/games/default/files/Nodes/noncubic/init.lua @@ -0,0 +1,1301 @@ +-- NonCubic Blocks MOD v1.4 +------------by yves_de_beck + + + + +-- HERE YOU CAN CHANGE THE DETAIL-LEVEL: +---------------------------------------- +detail_level = 16 + + +-- HERE YOU CAN DE/ACTIVATE BACKGROUND FOR MILLING MENU: +-------------------------------------------------------- +allow_menu_background = false + + +-- VAR DECLARATION: +------------------- +noncubic = {} + + +-- REGISTER NONCUBIC FORMS, CREATE MODELS AND RECIPES: +------------------------------------------------------ + +-- SLOPE +-------- +function noncubic.register_slope(subname, recipeitem, groups, images, description) + +local slopebox = {} +local detail = detail_level +for i = 0, detail-1 do + slopebox[i+1]={-0.5, (i/detail)-0.5, (i/detail)-0.5, 0.5, (i/detail)-0.5+(1/detail), 0.5} +end +minetest.register_node("noncubic:slope_" .. subname, { + description = description, + drawtype = "nodebox", + tiles = images, + paramtype = "light", + paramtype2 = "facedir", + walkable = true, + selection_box = { + type = "fixed", + fixed = {-0.5, -0.5, -0.5, 0.5, 0.5, 0.5}, + }, + node_box = { + type = "fixed", + fixed = slopebox, + }, + groups = groups, + }) + minetest.register_craft({ + output = 'noncubic:slope_' .. subname .. ' 6', + recipe = { + {recipeitem, "", ""}, + {recipeitem, recipeitem, ""}, + {recipeitem, recipeitem, recipeitem}, + }, + }) + minetest.register_craft({ + output = 'noncubic:slope_' .. subname .. ' 6', + recipe = { + {"", "", recipeitem}, + {"", recipeitem, recipeitem}, + {recipeitem, recipeitem, recipeitem}, + }, + }) + +end + + +-- SLOPE Lying +---------------- +function noncubic.register_slope_lying(subname, recipeitem, groups, images, description) + +local slopeboxlying = {} +local detail = detail_level +for i = 0, detail-1 do + slopeboxlying[i+1]={(i/detail)-0.5, -0.5, (i/detail)-0.5, (i/detail)-0.5+(1/detail), 0.5 , 0.5} +end +minetest.register_node("noncubic:slope_lying_" .. subname, { + description = description, + drawtype = "nodebox", + tiles = images, + paramtype = "light", + paramtype2 = "facedir", + walkable = true, + selection_box = { + type = "fixed", + fixed = {-0.5, -0.5, -0.5, 0.5, 0.5, 0.5}, + }, + node_box = { + type = "fixed", + fixed = slopeboxlying, + }, + groups = groups, + }) + minetest.register_craft({ + output = 'noncubic:slope_lying_' .. subname .. ' 1', + recipe = { + {"", "", ""}, + {"", 'noncubic:slope_' .. subname, ""}, + {"", "", ""}, + }, + }) + +end + + +-- SLOPE UPSIDE DOWN +-------------------- +function noncubic.register_slope_upsdown(subname, recipeitem, groups, images, description) + +if subname == "dirt" then +return +end + +local slopeupdwnbox = {} +local detail = detail_level +for i = 0, detail-1 do + slopeupdwnbox[i+1]={-0.5, (i/detail)-0.5, (-1*(i/detail))+0.5-(1/detail), 0.5, (i/detail)-0.5+(1/detail), 0.5} +end +minetest.register_node("noncubic:slope_upsdown_" .. subname, { + description = description, + drawtype = "nodebox", + tiles = images, + paramtype = "light", + paramtype2 = "facedir", + walkable = true, + selection_box = { + type = "fixed", + fixed = {-0.5, -0.5, -0.5, 0.5, 0.5, 0.5}, + }, + node_box = { + type = "fixed", + fixed = slopeupdwnbox, + }, + groups = groups, + }) + minetest.register_craft({ + output = 'noncubic:slope_upsdown_' .. subname .. ' 6', + recipe = { + {recipeitem, recipeitem, recipeitem}, + {"", recipeitem, recipeitem}, + {"", "", recipeitem}, + }, + }) + minetest.register_craft({ + output = 'noncubic:slope_upsdown_' .. subname .. ' 6', + recipe = { + {recipeitem, recipeitem, recipeitem}, + {recipeitem, recipeitem, ""}, + {recipeitem, "", ""}, + }, + }) + +end + + +-- SLOPE EDGE +------------- +function noncubic.register_slope_edge(subname, recipeitem, groups, images, description) + +local slopeboxedge = {} +local detail = detail_level +for i = 0, detail-1 do + slopeboxedge[i+1]={(i/detail)-0.5, -0.5, (i/detail)-0.5, 0.5, (i/detail)-0.5+(1/detail), 0.5} +end +minetest.register_node("noncubic:slope_edge_" .. subname, { + description = description, + drawtype = "nodebox", + tiles = images, + paramtype = "light", + paramtype2 = "facedir", + walkable = true, + selection_box = { + type = "fixed", + fixed = {-0.5, -0.5, -0.5, 0.5, 0.5, 0.5}, + }, + node_box = { + type = "fixed", + fixed = slopeboxedge, + }, + groups = groups, + }) + minetest.register_craft({ + output = 'noncubic:slope_edge_' .. subname .. ' 3', + recipe = { + {"", "", ""}, + {recipeitem, "", ""}, + {recipeitem, recipeitem, ""}, + }, + }) + minetest.register_craft({ + output = 'noncubic:slope_edge_' .. subname .. ' 3', + recipe = { + {"", "", ""}, + {"", "", recipeitem}, + {"", recipeitem, recipeitem}, + }, + }) + +end + + +-- SLOPE INNER EDGE +------------------- +function noncubic.register_slope_inner_edge(subname, recipeitem, groups, images, description) + +minetest.register_node("noncubic:slope_inner_edge_" .. subname, { + description = description, + drawtype = "nodebox", + tiles = images, + paramtype = "light", + paramtype2 = "facedir", + walkable = true, + selection_box = { + type = "fixed", + fixed = {-0.5, -0.5, -0.5, 0.5, 0.5, 0.5}, + }, + node_box = { + type = "fixed", + fixed = { + -- PART 1 + {-0.5, -0.5, -0.5, 0.5, -0.45, 0.5}, + {-0.45, -0.5, -0.5, 0.5, -0.4, 0.5}, + {-0.4, -0.5, -0.5, 0.5, -0.35, 0.5}, + {-0.35, -0.5, -0.5, 0.5, -0.3, 0.5}, + {-0.3, -0.5, -0.5, 0.5, -0.25, 0.5}, + {-0.25, -0.5, -0.5, 0.5, -0.2, 0.5}, + {-0.2, -0.5, -0.5, 0.5, -0.15, 0.5}, + {-0.15, -0.5, -0.5, 0.5, -0.1, 0.5}, + {-0.1, -0.5, -0.5, 0.5, -0.05, 0.5}, + {-0.05, -0.5, -0.5, 0.5, 0, 0.5}, + {0, -0.5, -0.5, 0.5, 0.05, 0.5}, + {0.05, -0.5, -0.5, 0.5, 0.1, 0.5}, + {0.1, -0.5, -0.5, 0.5, 0.15, 0.5}, + {0.15, -0.5, -0.5, 0.5, 0.2, 0.5}, + {0.2, -0.5, -0.5, 0.5, 0.25, 0.5}, + {0.25, -0.5, -0.5, 0.5, 0.3, 0.5}, + {0.3, -0.5, -0.5, 0.5, 0.35, 0.5}, + {0.35, -0.5, -0.5, 0.5, 0.4, 0.5}, + {0.4, -0.5, -0.5, 0.5, 0.45, 0.5}, + {0.45, -0.5, -0.5, 0.5, 0.5, 0.5}, + -- PART 2 + {-0.5, -0.5, -0.45, 0.5, -0.45, 0.5}, + {-0.5, -0.5, -0.4, 0.5, -0.4, 0.5}, + {-0.5, -0.5, -0.35, 0.5, -0.35, 0.5}, + {-0.5, -0.5, -0.3, 0.5, -0.3, 0.5}, + {-0.5, -0.5, -0.25, 0.5, -0.25, 0.5}, + {-0.5, -0.5, -0.2, 0.5, -0.2, 0.5}, + {-0.5, -0.5, -0.15, 0.5, -0.15, 0.5}, + {-0.5, -0.5, -0.1, 0.5, -0.1, 0.5}, + {-0.5, -0.5, -0.05, 0.5, -0.05, 0.5}, + {-0.5, -0.5, 0, 0.5, 0, 0.5}, + {-0.5, -0.5, 0.05, 0.5, 0.05, 0.5}, + {-0.5, -0.5, 0.1, 0.5, 0.1, 0.5}, + {-0.5, -0.5, 0.15, 0.5, 0.15, 0.5}, + {-0.5, -0.5, 0.2, 0.5, 0.2, 0.5}, + {-0.5, -0.5, .25, 0.5, 0.25, 0.5}, + {-0.5, -0.5, 0.3, 0.5, 0.3, 0.5}, + {-0.5, -0.5, 0.35, 0.5, 0.35, 0.5}, + {-0.5, -0.5, 0.4, 0.5, 0.4, 0.5}, + {-0.5, -0.5, 0.45, 0.5, 0.45, 0.5}, + {-0.5, -0.5, 0.5, 0.5, 0.5, 0.5}, + }, + }, + groups = groups, + }) + minetest.register_craft({ + output = 'noncubic:slope_inner_edge_' .. subname .. ' 3', + recipe = { + {"", "", recipeitem}, + {recipeitem, "", ""}, + {recipeitem, recipeitem, ""}, + }, + }) + minetest.register_craft({ + output = 'noncubic:slope_inner_edge_' .. subname .. ' 3', + recipe = { + {recipeitem, "", ""}, + {"", "", recipeitem}, + {"", recipeitem, recipeitem}, + }, + }) + +end + + +-- SLOPE EDGE UPSIDE DOWN +------------------------- +function noncubic.register_slope_upsdown_edge(subname, recipeitem, groups, images, description) + +if subname == "dirt" then +return +end + +local slopeupdwnboxedge = {} +local detail = detail_level +for i = 0, detail-1 do + slopeupdwnboxedge[i+1]={(-1*(i/detail))+0.5-(1/detail), (i/detail)-0.5, (-1*(i/detail))+0.5-(1/detail), 0.5, (i/detail)-0.5+(1/detail), 0.5} +end +minetest.register_node("noncubic:slope_upsdown_edge_" .. subname, { + description = description, + drawtype = "nodebox", + tiles = images, + paramtype = "light", + paramtype2 = "facedir", + walkable = true, + selection_box = { + type = "fixed", + fixed = {-0.5, -0.5, -0.5, 0.5, 0.5, 0.5}, + }, + node_box = { + type = "fixed", + fixed = slopeupdwnboxedge, + }, + groups = groups, + }) + minetest.register_craft({ + output = 'noncubic:slope_upsdown_edge_' .. subname .. ' 3', + recipe = { + {"", recipeitem, recipeitem}, + {"", "", recipeitem}, + {"", "", ""}, + }, + }) + minetest.register_craft({ + output = 'noncubic:slope_upsdown_edge_' .. subname .. ' 3', + recipe = { + {recipeitem, recipeitem, ""}, + {recipeitem, "", ""}, + {"", "", ""}, + }, + }) + +end + + +-- SLOPE INNER EDGE UPSIDE DOWN +------------------------------- +function noncubic.register_slope_upsdown_inner_edge(subname, recipeitem, groups, images, description) + +if subname == "dirt" then +return +end + +minetest.register_node("noncubic:slope_upsdown_inner_edge_" .. subname, { + description = description, + drawtype = "nodebox", + tiles = images, + paramtype = "light", + paramtype2 = "facedir", + walkable = true, + selection_box = { + type = "fixed", + fixed = {-0.5, -0.5, -0.5, 0.5, 0.5, 0.5}, + }, + node_box = { + type = "fixed", + fixed = { + {0.45, -0.5, -0.5, 0.5, -0.45, 0.5}, + {0.4, -0.45, -0.5, 0.5, -0.4, 0.5}, + {0.35, -0.4, -0.5, 0.5, -0.35, 0.5}, + {0.3, -0.35, -0.5, 0.5, -0.3, 0.5}, + {0.25, -0.3, -0.5, 0.5, -0.25, 0.5}, + {0.2, -0.25, -0.5, 0.5, -0.2, 0.5}, + {0.15, -0.2, -0.5, 0.5, -0.15, 0.5}, + {0.1, -0.15, -0.5, 0.5, -0.1, 0.5}, + {0.05, -0.1, -0.5, 0.5, -0.05, 0.5}, + {0, -0.05, -0.5, 0.5, 0, 0.5}, + {-0.05, 0, -0.5, 0.5, 0.05, 0.5}, + {-0.1, 0.05, -0.5, 0.5, 0.1, 0.5}, + {-0.15, 0.1, -0.5, 0.5, 0.15, 0.5}, + {-0.2, 0.15, -0.5, 0.5, 0.2, 0.5}, + {-0.25, 0.2, -0.5, 0.5, 0.25, 0.5}, + {-0.3, 0.25, -0.5, 0.5, 0.3, 0.5}, + {-0.35, 0.3, -0.5, 0.5, 0.35, 0.5}, + {-0.4, 0.35, -0.5, 0.5, 0.4, 0.5}, + {-0.45, 0.4, -0.5, 0.5, 0.45, 0.5}, + {-0.5, 0.45, -0.5, 0.5, 0.5, 0.5}, + + {-0.5, -0.5, 0.45, 0.5, -0.45, 0.5}, + {-0.5, -0.45, 0.4, 0.5, -0.4, 0.5}, + {-0.5, -0.4, 0.35, 0.5, -0.35, 0.5}, + {-0.5, -0.35, 0.3, 0.5, -0.3, 0.5}, + {-0.5, -0.3, 0.25, 0.5, -0.25, 0.5}, + {-0.5, -0.25, 0.2, 0.5, -0.2, 0.5}, + {-0.5, -0.2, 0.15, 0.5, -0.15, 0.5}, + {-0.5, -0.15, 0.1, 0.5, -0.1, 0.5}, + {-0.5, -0.1, 0.05, 0.5, -0.05, 0.5}, + {-0.5, -0.05, 0, 0.5, 0, 0.5}, + {-0.5, 0, -0.05, 0.5, 0.05, 0.5}, + {-0.5, 0.05, -0.1, 0.5, 0.1, 0.5}, + {-0.5, 0.1, -0.15, 0.5, 0.15, 0.5}, + {-0.5, 0.15, -0.2, 0.5, 0.2, 0.5}, + {-0.5, 0.2, -0.25, 0.5, 0.25, 0.5}, + {-0.5, 0.25, -0.3, 0.5, 0.3, 0.5}, + {-0.5, 0.3, -0.35, 0.5, 0.35, 0.5}, + {-0.5, 0.35, -0.4, 0.5, 0.4, 0.5}, + {-0.5, 0.4, -0.45, 0.5, 0.45, 0.5}, + {-0.5, 0.45, -0.5, 0.5, 0.5, 0.5}, + + }, + }, + groups = groups, + }) + minetest.register_craft({ + output = 'noncubic:slope_upsdown_inner_edge_' .. subname .. ' 3', + recipe = { + {"", recipeitem, recipeitem}, + {"", "", recipeitem}, + {recipeitem, "", ""}, + }, + }) + minetest.register_craft({ + output = 'noncubic:slope_upsdown_inner_edge_' .. subname .. ' 3', + recipe = { + {recipeitem, recipeitem, ""}, + {recipeitem, "", ""}, + {"", "", recipeitem}, + }, + }) + +end + + +-- PYRAMID +---------- +function noncubic.register_pyramid(subname, recipeitem, groups, images, description) + +local pyrabox = {} +local detail = detail_level/2 +for i = 0, detail-1 do + pyrabox[i+1]={(i/detail/2)-0.5, (i/detail/2)-0.5, (i/detail/2)-0.5, 0.5-(i/detail/2), (i/detail/2)-0.5+(1/detail), 0.5-(i/detail/2)} +end +minetest.register_node("noncubic:pyramid_" .. subname, { + description = description, + drawtype = "nodebox", + tiles = images, + paramtype = "light", + paramtype2 = "facedir", + walkable = true, + selection_box = { + type = "fixed", + fixed = {-0.5, -0.5, -0.5, 0.5, 0, 0.5}, + }, + node_box = { + type = "fixed", + fixed = pyrabox, + }, + groups = groups, + }) + minetest.register_craft({ + output = 'noncubic:pyramid_' .. subname .. ' 3', + recipe = { + {"", "", ""}, + {"", recipeitem, ""}, + {recipeitem, "", recipeitem}, + }, + }) + +end + + +-- SPIKE +-------- +function noncubic.register_spike(subname, recipeitem, groups, images, description) + +if subname == "dirt" then +return +end + +local spikebox = {} +local detail = detail_level +for i = 0, detail-1 do + spikebox[i+1]={(i/detail/2)-0.5, (i/detail/2)-0.5, (i/detail/2)-0.5, 0.5-(i/detail/2), (i/detail)-0.5+(1/detail), 0.5-(i/detail/2)} +end +minetest.register_node("noncubic:spike_" .. subname, { + description = description, + drawtype = "nodebox", + tiles = images, + paramtype = "light", + paramtype2 = "facedir", + walkable = true, + selection_box = { + type = "fixed", + fixed = {-0.5, -0.5, -0.5, 0.5, 0.5, 0.5}, + }, + node_box = { + type = "fixed", + fixed = spikebox, + }, + groups = groups, + }) + minetest.register_craft({ + output = 'noncubic:spike_' .. subname .. ' 5', + recipe = { + {"", recipeitem, ""}, + {recipeitem, "", recipeitem}, + {recipeitem, "", recipeitem}, + }, + }) + +end + + +-- Block one curved edge +------------------------ +function noncubic.register_onecurvededge(subname, recipeitem, groups, images, description) + +local quartercyclebox = {} +local detail = detail_level*2 +local sehne +for i = (detail/2)-1, detail-1 do + sehne = math.sqrt(0.25 - (((i/detail)-0.5)^2)) + quartercyclebox[i]={-0.5, -0.5, -sehne, 0.5, (i/detail)+(1/detail)-0.5, 0.5} +end +minetest.register_node("noncubic:onecurvededge_" .. subname, { + description = description, + drawtype = "nodebox", + tiles = images, + paramtype = "light", + paramtype2 = "facedir", + walkable = true, + selection_box = { + type = "fixed", + fixed = {-0.5, -0.5, -0.5, 0.5, 0.5, 0.5}, + }, + node_box = { + type = "fixed", + fixed = quartercyclebox, + }, + groups = groups, + }) + minetest.register_craft({ + output = 'noncubic:onecurvededge_' .. subname .. ' 8', + recipe = { + {"", recipeitem, recipeitem}, + {recipeitem, recipeitem, recipeitem}, + {recipeitem, recipeitem, recipeitem}, + }, + }) + +end + + +-- Block two curved edges +------------------------- +function noncubic.register_twocurvededge(subname, recipeitem, groups, images, description) + +local quartercyclebox2 = {} +local detail = detail_level*2 +local sehne +for i = (detail/2)-1, detail-1 do + sehne = math.sqrt(0.25 - (((i/detail)-0.5)^2)) + quartercyclebox2[i]={-sehne, -0.5, -sehne, 0.5, (i/detail)+(1/detail)-0.5, 0.5} +end +minetest.register_node("noncubic:twocurvededge_" .. subname, { + description = description, + drawtype = "nodebox", + tiles = images, + paramtype = "light", + paramtype2 = "facedir", + walkable = true, + selection_box = { + type = "fixed", + fixed = {-0.5, -0.5, -0.5, 0.5, 0.5, 0.5}, + }, + node_box = { + type = "fixed", + fixed = quartercyclebox2, + }, + groups = groups, + }) + minetest.register_craft({ + output = 'noncubic:twocurvededge_' .. subname .. ' 3', + recipe = { + {"", "", ""}, + {'noncubic:onecurvededge_' .. subname, "", ""}, + {'noncubic:onecurvededge_' .. subname, 'noncubic:onecurvededge_' .. subname, ""}, + }, + }) + +end + + + +-- Cylinder +----------- +function noncubic.register_cylinder(subname, recipeitem, groups, images, description) + +if subname == "dirt" then +return +end + +local cylbox = {} +local detail = detail_level +local sehne +for i = 1, detail-1 do + sehne = math.sqrt(0.25 - (((i/detail)-0.5)^2)) + cylbox[i]={(i/detail)-0.5, -0.5, -sehne, (i/detail)+(1/detail)-0.5, 0.5, sehne} +end +minetest.register_node("noncubic:cylinder_" .. subname, { + description = description, + drawtype = "nodebox", + tiles = images, + paramtype = "light", + paramtype2 = "facedir", + walkable = true, + selection_box = { + type = "fixed", + fixed = {-0.5, -0.5, -0.5, 0.5, 0.5, 0.5}, + }, + node_box = { + type = "fixed", + fixed = cylbox, + }, + groups = groups, + }) + minetest.register_craft({ + output = 'noncubic:cylinder_' .. subname .. ' 6', + recipe = { + {recipeitem, recipeitem, ""}, + {recipeitem, recipeitem, ""}, + {recipeitem, recipeitem, ""}, + }, + }) + minetest.register_craft({ + output = 'noncubic:cylinder_' .. subname .. ' 1', + recipe = { + {"", "", ""}, + {"", 'noncubic:cylinder_horizontal_' .. subname, ""}, + {"", "", ""}, + }, + }) + +end + + +-- Cylinder Horizontal +---------------------- +function noncubic.register_cylinder_horizontal(subname, recipeitem, groups, images, description) + +if subname == "dirt" then +return +end + +local cylbox_horizontal = {} +local detail = detail_level +local sehne +for i = 1, detail-1 do + sehne = math.sqrt(0.25 - (((i/detail)-0.5)^2)) + cylbox_horizontal[i]={-0.5, (i/detail)-0.5, -sehne, 0.5, (i/detail)+(1/detail)-0.5, sehne} +end +minetest.register_node("noncubic:cylinder_horizontal_" .. subname, { + description = description, + drawtype = "nodebox", + tiles = images, + paramtype = "light", + paramtype2 = "facedir", + walkable = true, + selection_box = { + type = "fixed", + fixed = {-0.5, -0.5, -0.5, 0.5, 0.5, 0.5}, + }, + node_box = { + type = "fixed", + fixed = cylbox_horizontal, + }, + groups = groups, + }) + minetest.register_craft({ + output = 'noncubic:cylinder_horizontal_' .. subname .. ' 6', + recipe = { + {"", "", ""}, + {recipeitem, recipeitem, recipeitem}, + {recipeitem, recipeitem, recipeitem}, + }, + }) + minetest.register_craft({ + output = 'noncubic:cylinder_horizontal_' .. subname .. ' 1', + recipe = { + {"", "", ""}, + {"", 'noncubic:cylinder_' .. subname, ""}, + {"", "", ""}, + }, + }) + +end + + +-- Sphere +--------- +function noncubic.register_sphere(subname, recipeitem, groups, images, description) + +if subname == "dirt" then +return +end + +local spherebox = {} +local detail = detail_level +local sehne +for i = 1, detail-1 do + sehne = math.sqrt(0.25 - (((i/detail)-0.5)^2)) + spherebox[i]={-sehne, (i/detail)-0.5, -sehne, sehne, (i/detail)+(1/detail)-0.5, sehne} +end +minetest.register_node("noncubic:cylinder_sphere_" .. subname, { + description = description, + drawtype = "nodebox", + tiles = images, + paramtype = "light", + paramtype2 = "facedir", + walkable = true, + selection_box = { + type = "fixed", + fixed = {-0.5, -0.5, -0.5, 0.5, 0.5, 0.5}, + }, + node_box = { + type = "fixed", + fixed = spherebox, + }, + groups = groups, + }) + minetest.register_craft({ + output = 'noncubic:cylinder_sphere_' .. subname .. ' 4', + recipe = { + {"", recipeitem, ""}, + {recipeitem, "", recipeitem}, + {"", recipeitem, ""}, + }, + }) + +end + + +-- Element straight +------------------- +function noncubic.register_element_straight(subname, recipeitem, groups, images, description) + +minetest.register_node("noncubic:element_straight_" .. subname, { + description = description, + drawtype = "nodebox", + tiles = images, + paramtype = "light", + paramtype2 = "facedir", + walkable = true, + selection_box = { + type = "fixed", + fixed = {-0.3, -0.5, -0.5, 0.3, 0, 0.5}, + }, + node_box = { + type = "fixed", + fixed = { + {-0.3, -0.5, -0.5, 0.3, 0, 0.5}, + }, + }, + groups = groups, + }) + minetest.register_craft({ + output = 'noncubic:element_straight_' .. subname .. ' 12', + recipe = { + {"", recipeitem, ""}, + {"", recipeitem, ""}, + {"", recipeitem, ""}, + }, + }) + +end + + +-- Element Edge +--------------- +function noncubic.register_element_edge(subname, recipeitem, groups, images, description) + +minetest.register_node("noncubic:element_edge_" .. subname, { + description = description, + drawtype = "nodebox", + tiles = images, + paramtype = "light", + paramtype2 = "facedir", + walkable = true, + selection_box = { + type = "fixed", + fixed = { + {-0.3, -0.5, -0.5, 0.3, 0, 0.3}, + {-0.5, -0.5, -0.3, -0.3, 0, 0.3}, + }, + }, + node_box = { + type = "fixed", + fixed = { + {-0.3, -0.5, -0.5, 0.3, 0, 0.3}, + {-0.5, -0.5, -0.3, -0.3, 0, 0.3}, + }, + }, + groups = groups, + }) + minetest.register_craft({ + output = 'noncubic:element_edge_' .. subname .. ' 10', + recipe = { + {recipeitem, recipeitem, recipeitem}, + {"", "", recipeitem}, + {"", "", recipeitem}, + }, + }) + +end + + +-- Element T +------------ +function noncubic.register_element_t(subname, recipeitem, groups, images, description) + +minetest.register_node("noncubic:element_t_" .. subname, { + description = description, + drawtype = "nodebox", + tiles = images, + paramtype = "light", + paramtype2 = "facedir", + walkable = true, + selection_box = { + type = "fixed", + fixed = { + {-0.3, -0.5, -0.5, 0.3, 0, 0.3}, + {-0.5, -0.5, -0.3, -0.3, 0, 0.3}, + {0.3, -0.5, -0.3, 0.5, 0, 0.3}, + }, + }, + node_box = { + type = "fixed", + fixed = { + {-0.3, -0.5, -0.5, 0.3, 0, 0.3}, + {-0.5, -0.5, -0.3, -0.3, 0, 0.3}, + {0.3, -0.5, -0.3, 0.5, 0, 0.3}, + }, + }, + groups = groups, + }) + minetest.register_craft({ + output = 'noncubic:element_t_' .. subname .. ' 8', + recipe = { + {"", "", ""}, + {recipeitem, recipeitem, recipeitem}, + {"", recipeitem, ""}, + }, + }) + +end + + +-- Element Cross +---------------- +function noncubic.register_element_cross(subname, recipeitem, groups, images, description) + +minetest.register_node("noncubic:element_cross_" .. subname, { + description = description, + drawtype = "nodebox", + tiles = images, + paramtype = "light", + paramtype2 = "facedir", + walkable = true, + selection_box = { + type = "fixed", + fixed = { + {0.3, -0.5, -0.3, 0.5, 0, 0.3}, + {-0.3, -0.5, -0.5, 0.3, 0, 0.5}, + {-0.5, -0.5, -0.3, -0.3, 0, 0.3}, + }, + }, + node_box = { + type = "fixed", + fixed = { + {0.3, -0.5, -0.3, 0.5, 0, 0.3}, + {-0.3, -0.5, -0.5, 0.3, 0, 0.5}, + {-0.5, -0.5, -0.3, -0.3, 0, 0.3}, + }, + }, + groups = groups, + }) + minetest.register_craft({ + output = 'noncubic:element_cross_' .. subname .. ' 10', + recipe = { + {"", recipeitem, ""}, + {recipeitem, recipeitem, recipeitem}, + {"", recipeitem, ""}, + }, + }) + +end + + +-- Element End +-------------- +function noncubic.register_element_end(subname, recipeitem, groups, images, description) + +minetest.register_node("noncubic:element_end_" .. subname, { + description = description, + drawtype = "nodebox", + tiles = images, + paramtype = "light", + paramtype2 = "facedir", + walkable = true, + selection_box = { + type = "fixed", + fixed = {-0.3, -0.5, -0.3, 0.3, 0, 0.5}, + }, + node_box = { + type = "fixed", + fixed = {-0.3, -0.5, -0.3, 0.3, 0, 0.5}, + }, + groups = groups, + }) + minetest.register_craft({ + output = 'noncubic:element_end_' .. subname .. ' 8', + recipe = { + {"", "", ""}, + {"", recipeitem, ""}, + {"", recipeitem, ""}, + }, + }) + +end + + +-- Element straight DOUBLE +-------------------------- +function noncubic.register_element_straight_double(subname3, recipeitem3, groups3, images3, description3) + +minetest.register_node("noncubic:element_straight_double_" .. subname3, { + description = description3, + drawtype = "nodebox", + tiles = images3, + paramtype = "light", + paramtype2 = "facedir", + walkable = true, + selection_box = { + type = "fixed", + fixed = {-0.3, -0.5, -0.5, 0.3, 0.5, 0.5}, + }, + node_box = { + type = "fixed", + fixed = { + {-0.3, -0.5, -0.5, 0.3, 0.5, 0.5}, + }, + }, + groups = groups3, + }) + minetest.register_craft({ + output = 'noncubic:element_straight_double_' .. subname3 .. ' 1', + recipe = { + {"", "", ""}, + {"", 'noncubic:element_straight_' .. recipeitem3, ""}, + {"", 'noncubic:element_straight_' .. recipeitem3, ""}, + }, + }) + +end + + +-- Element Edge DOUBLE +---------------------- +function noncubic.register_element_edge_double(subname3, recipeitem3, groups3, images3, description3) + +minetest.register_node("noncubic:element_edge_double_" .. subname3, { + description = description3, + drawtype = "nodebox", + tiles = images3, + paramtype = "light", + paramtype2 = "facedir", + walkable = true, + selection_box = { + type = "fixed", + fixed = { + {-0.3, -0.5, -0.5, 0.3, 0.5, 0.3}, + {-0.5, -0.5, -0.3, -0.3, 0.5, 0.3}, + }, + }, + node_box = { + type = "fixed", + fixed = { + {-0.3, -0.5, -0.5, 0.3, 0.5, 0.3}, + {-0.5, -0.5, -0.3, -0.3, 0.5, 0.3}, + }, + }, + groups = groups3, + }) + minetest.register_craft({ + output = 'noncubic:element_edge_double_' .. subname3 .. ' 1', + recipe = { + {"", "", ""}, + {"", 'noncubic:element_edge_' .. recipeitem3, ""}, + {"", 'noncubic:element_edge_' .. recipeitem3, ""}, + }, + }) + +end + + +-- Element T DOUBLE +------------------- +function noncubic.register_element_t_double(subname3, recipeitem3, groups3, images3, description3) + +minetest.register_node("noncubic:element_t_double_" .. subname3, { + description = description3, + drawtype = "nodebox", + tiles = images3, + paramtype = "light", + paramtype2 = "facedir", + walkable = true, + selection_box = { + type = "fixed", + fixed = { + {-0.3, -0.5, -0.5, 0.3, 0.5, 0.3}, + {-0.5, -0.5, -0.3, -0.3, 0.5, 0.3}, + {0.3, -0.5, -0.3, 0.5, 0.5, 0.3}, + }, + }, + node_box = { + type = "fixed", + fixed = { + {-0.3, -0.5, -0.5, 0.3, 0.5, 0.3}, + {-0.5, -0.5, -0.3, -0.3, 0.5, 0.3}, + {0.3, -0.5, -0.3, 0.5, 0.5, 0.3}, + }, + }, + groups = groups3, + }) + minetest.register_craft({ + output = 'noncubic:element_t_double_' .. subname3 .. ' 1', + recipe = { + {"", "", ""}, + {"", 'noncubic:element_t_' .. recipeitem3, ""}, + {"", 'noncubic:element_t_' .. recipeitem3, ""}, + }, + }) + +end + + +-- Element Cross Double +----------------------- +function noncubic.register_element_cross_double(subname3, recipeitem3, groups3, images3, description3) + +minetest.register_node("noncubic:element_cross_double_" .. subname3, { + description = description3, + drawtype = "nodebox", + tiles = images3, + paramtype = "light", + paramtype2 = "facedir", + walkable = true, + selection_box = { + type = "fixed", + fixed = { + {0.3, -0.5, -0.3, 0.5, 0.5, 0.3}, + {-0.3, -0.5, -0.5, 0.3, 0.5, 0.5}, + {-0.5, -0.5, -0.3, -0.3, 0.5, 0.3}, + }, + }, + node_box = { + type = "fixed", + fixed = { + {0.3, -0.5, -0.3, 0.5, 0.5, 0.3}, + {-0.3, -0.5, -0.5, 0.3, 0.5, 0.5}, + {-0.5, -0.5, -0.3, -0.3, 0.5, 0.3}, + }, + }, + groups = groups3, + }) + minetest.register_craft({ + output = 'noncubic:element_cross_double_' .. subname3 .. ' 1', + recipe = { + {"", "", ""}, + {"", 'noncubic:element_cross_' .. recipeitem3, ""}, + {"", 'noncubic:element_cross_' .. recipeitem3, ""}, + }, + }) + +end + + +-- Element End Double +--------------------- +function noncubic.register_element_end_double(subname3, recipeitem3, groups3, images3, description3) + +minetest.register_node("noncubic:element_end_double_" .. subname3, { + description = description3, + drawtype = "nodebox", + tiles = images3, + paramtype = "light", + paramtype2 = "facedir", + walkable = true, + selection_box = { + type = "fixed", + fixed = {-0.3, -0.5, -0.3, 0.3, 0.5, 0.5}, + }, + node_box = { + type = "fixed", + fixed = {-0.3, -0.5, -0.3, 0.3, 0.5, 0.5}, + }, + groups = groups3, + }) + minetest.register_craft({ + output = 'noncubic:element_end_double_' .. subname3 .. ' 1', + recipe = { + {"", "", ""}, + {"", 'noncubic:element_end_' .. recipeitem3, ""}, + {"", 'noncubic:element_end_' .. recipeitem3, ""}, + }, + }) + +end + + +-- STICK +-------- +function noncubic.register_stick(subname2, recipeitem2, groups2, images2, description2) + +minetest.register_node("noncubic:stick_" .. subname2, { + description = description2, + drawtype = "nodebox", + tiles = images2, + paramtype = "light", + paramtype2 = "facedir", + walkable = true, + selection_box = { + type = "fixed", + fixed = {-0.15, -0.5, -0.15, 0.15, 0.5, 0.15}, + }, + node_box = { + type = "fixed", + fixed = {-0.15, -0.5, -0.15, 0.15, 0.5, 0.15}, + }, + groups = groups2, + }) + minetest.register_craft({ + output = 'noncubic:stick_' .. subname2 .. ' 8', + recipe = { + {'default:stick', "", ""}, + {"", "", ""}, + {recipeitem2, "", ""}, + }, + }) + +end + + +local source_list = { + {"black", "Darkened", "292421", 40, 36, 33}, + {"blue", "Blue", "0000FF", 0, 0, 255}, + {"green", "Green", "00FF00", 0, 255, 0}, + {"white", "White", "F5F5F5", 245, 245, 245}, + {"orange", "Orange", "FF6103", 255, 97, 3}, + {"red", "Red", "FF0000", 255, 0, 0}, + {"yellow", "Yellow", "FFFF00", 255, 255, 0}, + {"pink", "pink", "FF69B4", 255, 105, 180} +} + +for i in ipairs(source_list) do + local color1 = source_list[i][1] + local color2 = source_list[i][2] + local color3 = source_list[i][3] + local red = source_list[i][4] + local green = source_list[i][5] + local blue = source_list[i][6] + +-- REGISTER NEW NONCUBIC's PART 2: noncubic.register_element_end(subname, recipeitem, groups, images, desc_element_xyz) +----------------------------------------------------------------------------------------------------------------------- +function noncubic.register_slope_edge_etc(subname, recipeitem, groups, images, desc_slope, desc_slope_lying, desc_slope_upsdown, desc_slope_edge, desc_slope_inner_edge, desc_slope_upsdwn_edge, desc_slope_upsdwn_inner_edge, desc_pyramid, desc_spike, desc_onecurvededge, desc_twocurvededge, desc_cylinder, desc_cylinder_horizontal, desc_sphere, desc_element_straight, desc_element_edge, desc_element_t, desc_element_cross, desc_element_end) + noncubic.register_slope(subname, recipeitem, groups, images, desc_slope) + noncubic.register_slope_lying(subname, recipeitem, groups, images, desc_slope_lying) + noncubic.register_slope_upsdown(subname, recipeitem, groups, images, desc_slope_upsdown) + noncubic.register_slope_edge(subname, recipeitem, groups, images, desc_slope_edge) + noncubic.register_slope_inner_edge(subname, recipeitem, groups, images, desc_slope_inner_edge) + noncubic.register_slope_upsdown_edge(subname, recipeitem, groups, images, desc_slope_upsdwn_edge) + noncubic.register_slope_upsdown_inner_edge(subname, recipeitem, groups, images, desc_slope_upsdwn_inner_edge) + noncubic.register_pyramid(subname, recipeitem, groups, images, desc_pyramid) + noncubic.register_spike(subname, recipeitem, groups, images, desc_spike) + noncubic.register_onecurvededge(subname, recipeitem, groups, images, desc_onecurvededge) + noncubic.register_twocurvededge(subname, recipeitem, groups, images, desc_twocurvededge) + noncubic.register_cylinder(subname, recipeitem, groups, images, desc_cylinder) + noncubic.register_cylinder_horizontal(subname, recipeitem, groups, images, desc_cylinder_horizontal) + noncubic.register_sphere(subname, recipeitem, groups, images, desc_sphere) + noncubic.register_element_straight(subname, recipeitem, groups, images, desc_element_straight) + noncubic.register_element_edge(subname, recipeitem, groups, images, desc_element_edge) + noncubic.register_element_t(subname, recipeitem, groups, images, desc_element_t) + noncubic.register_element_cross(subname, recipeitem, groups, images, desc_element_cross) + noncubic.register_element_end(subname, recipeitem, groups, images, desc_element_end) +end + + +-- REGISTER MATERIALS AND PROPERTIES FOR NONCUBIC ELEMENTS: +----------------------------------------------------------- + +-- Red +------- +noncubic.register_slope_edge_etc("" .. color1 .. "", "color:" .. color1, + {snappy=2,choppy=2,oddly_breakable_by_hand=2}, + {"color_" .. color1 .. ".png"}, + "Red Slope", + color1 .. "Slope Lying", + color1 .. "Slope Upside Down", + color1 .. "Slope Edge", + color1 .. "Slope Inner Edge", + color1 .. "Slope Upside Down Edge", + color1 .. "Slope Upside Down Inner Edge", + color1 .. "Pyramid", + color1 .. "Spike", + color1 .. "One Curved Edge Block", + color1 .. "Two Curved Edge Block", + color1 .. "Cylinder", + color1 .. "Cylinder Horizontal", + color1 .. "Sphere", + color1 .. "Element Straight", + color1 .. "Element Edge", + color1 .. "Element T", + color1 .. "Element Cross", + color1 .. "Element End") + +-- REGISTER STICKS: noncubic.register_xyz(subname2, recipeitem2, groups2, images2, desc_element_xyz) +------------------------------------------------------------------------------------------------------------ +function noncubic.register_stick_etc(subname2, recipeitem2, groups2, images2, desc_stick) + noncubic.register_stick(subname2, recipeitem2, groups2, images2, desc_stick) +end + +-- REGISTER MATERIALS AND PROPERTIES FOR STICKS: +------------------------------------------------ + +-- WOOD +------- +noncubic.register_stick_etc("wood", "default:wood", + {snappy=2,choppy=2,oddly_breakable_by_hand=2}, + {"default_wood.png"}, + "Wooden Stick") +-- STONE +-------- +noncubic.register_stick_etc("stone", "default:stone", + {cracky=3}, + {"default_stone.png"}, + "Stone Stick") +-- COBBLE +--------- +noncubic.register_stick_etc("cobble", "default:cobble", + {cracky=3}, + {"default_cobble.png"}, + "Cobble Stick") +-- BRICK +-------- +noncubic.register_stick_etc("brick", "default:brick", + {cracky=3}, + {"default_brick.png"}, + "Brick Stick") +-- SANDSTONE +------------ +noncubic.register_stick_etc("sandstone", "default:sandstone", + {crumbly=2,cracky=2}, + {"default_sandstone.png"}, + "Sandstone Stick") +-- LEAVES +--------- +noncubic.register_stick_etc("leaves", "default:leaves", + {snappy=2,choppy=2,oddly_breakable_by_hand=3}, + {"bucharest_tree.png"}, + "Leaves Stick") +-- TREE +------- +noncubic.register_stick_etc("tree", "default:tree", + {snappy=1,choppy=2,oddly_breakable_by_hand=2,flammable=3,wood=1}, + {"default_tree.png"}, + "Tree Stick") +-- STEEL +-------- +noncubic.register_stick_etc("steel", "default:steelblock", + {snappy=1,bendy=2,cracky=1,melty=2,level=2}, + {"default_steel_block.png"}, + "Steel Stick") + +-- REGISTER DOUBLE ELEMNTS: noncubic.register_xyz(subname3, recipeitem3, groups3, images3, desc_element_xyz) +---------------------------------------------------------------------------------------------------- +function noncubic.register_elements(subname3, recipeitem3, groups3, images3, desc_element_straight_double, desc_element_edge_double, desc_element_t_double, desc_element_cross_double, desc_element_end_double) + noncubic.register_element_straight_double(subname3, recipeitem3, groups3, images3, desc_element_straight_double) + noncubic.register_element_edge_double(subname3, recipeitem3, groups3, images3, desc_element_edge_double) + noncubic.register_element_t_double(subname3, recipeitem3, groups3, images3, desc_element_t_double) + noncubic.register_element_cross_double(subname3, recipeitem3, groups3, images3, desc_element_cross_double) + noncubic.register_element_end_double(subname3, recipeitem3, groups3, images3, desc_element_end_double) +end + +-- REGISTER MATERIALS AND PROPERTIES FOR HALF AND NORMAL HEIGHT ELEMENTS: +------------------------------------------------------------------------- + +-- WOOD +------- +noncubic.register_elements(color1, "color:" ..color1, + {snappy=2,choppy=2,oddly_breakable_by_hand=2}, + {"color_" .. color1 ..".png"}, + color1 .. " Element Straight Double", + color1 .. "Element Edge Double", + color1 .. "Element T Double", + color1 .. "Element Cross Double", + color1 .. "Element End Double") + +end diff --git a/games/default/files/Nodes/noncubic/readme.txt b/games/default/files/Nodes/noncubic/readme.txt new file mode 100644 index 000000000..5e2e978b5 --- /dev/null +++ b/games/default/files/Nodes/noncubic/readme.txt @@ -0,0 +1,167 @@ +[MOD] NonCubicBlocks 1.4 - for Minetest v0.4 or later +--------------------------------------by yves_de_beck + + + +Install: +-------- +Simply copy the complete "noncubic" folder in the ..minetest-0.4.4-win32/mods/minetest/ directory. + + + +Dependence: +----------- +Default Stairs MOD (inkluding Minetest v0.4 or higher) + + + +For Slower PC's: +---------------- +You can change in the init.lua the 'detail_level = 20' lower (or higher for faster PC's) + +Example: 'detail_level = 16' works very well for older PC's and looks good. =D + + + +Recipes: +-------- + + +The Milling Machine Block: +-------------------------- +[cobble] [stick] [cobble] +[wood planks] [wood planks] [wood planks] +[stick] [nothing] [stick] + + +Craft NonCubics without Milling Machine: +---------------------------------------- +(o=nothing) +(x=regular stairblock of wood/stone/sandstone/cobble/brick, + Normal Block of leaves, tree ,steel or + dirt (only slope, slope edge, slope inner edge, pyramid, half sized elements)) + +Slope: +xoo oox +xxo oxx +xxx xxx + +Slope Lying: +(o=nothing) +(x=slope) +ooo +oxo +ooo + +Slope Upside Down: +xxx xxx +oxx xxo +oox xoo + +Slope Edge: +ooo ooo +xoo oox +xxo oxx + +Slope Inner Edge: +oox xoo +xoo oox +xxo oxx + +Slope Edge Upside Down: +oxx xxo +oox xoo +ooo ooo + +Slope Inner Edge Upside Down: +oxx xxo +oox xoo +xoo oox + +Pyramid: +ooo +oxo +xox + +Spike: +oxo +xox +xox + +Block one curved edge: +oxx +xxx +xxx + +Block two curved edge: +(o=nothing) +(x=block one curved edge) +ooo +xoo +xxo + +Cylinder Vertical: +xxo +xxo +xxo +(You can also craft one cylinder vertical + in a cylinder horizontal) + +Cylinder Horizontal: +ooo +xxx +xxx +(You can also craft one cylinder horizontal + in a cylinder vertical) + +Sphere: +oxo +xox +oxo + +Element Straight: +oxo +oxo +oxo + +Element Edge: +xxx +oox +oox + +Element T: +ooo +xxx +oxo + +Element Cross: +oxo +xxx +oxo + +Element End: +ooo +oxo +oxo + +---------------------------------------- + +For double height Elements simply craft: +(o=nothing) +(x=element Straight, Edge, T, Cross or Element End) +ooo +xoo +xoo + +---------------------------------------- + +Sticks: +(o=nothing) +(x=regular wood, stone, sandstone, cobble, brick, + Block of leaves, tree or steel) +(y=regular wooden stick) +yoo +ooo +xoo + +---------------------------------------- \ No newline at end of file diff --git a/games/default/files/Nodes/noncubic/textures/Shapes.png b/games/default/files/Nodes/noncubic/textures/Shapes.png new file mode 100644 index 000000000..0882657dd Binary files /dev/null and b/games/default/files/Nodes/noncubic/textures/Shapes.png differ diff --git a/games/default/files/Nodes/noncubic/textures/Thumbs.db b/games/default/files/Nodes/noncubic/textures/Thumbs.db new file mode 100644 index 000000000..7d4f93584 Binary files /dev/null and b/games/default/files/Nodes/noncubic/textures/Thumbs.db differ diff --git a/games/default/files/Nodes/noncubic/textures/bucharest_tree.png b/games/default/files/Nodes/noncubic/textures/bucharest_tree.png new file mode 100644 index 000000000..cc4b188a5 Binary files /dev/null and b/games/default/files/Nodes/noncubic/textures/bucharest_tree.png differ diff --git a/games/default/files/Nodes/noncubic/textures/cnc_bottom.png b/games/default/files/Nodes/noncubic/textures/cnc_bottom.png new file mode 100644 index 000000000..e600cb1de Binary files /dev/null and b/games/default/files/Nodes/noncubic/textures/cnc_bottom.png differ diff --git a/games/default/files/Nodes/noncubic/textures/cnc_front.png b/games/default/files/Nodes/noncubic/textures/cnc_front.png new file mode 100644 index 000000000..6cc049004 Binary files /dev/null and b/games/default/files/Nodes/noncubic/textures/cnc_front.png differ diff --git a/games/default/files/Nodes/noncubic/textures/cnc_side.png b/games/default/files/Nodes/noncubic/textures/cnc_side.png new file mode 100644 index 000000000..1ecbbacc6 Binary files /dev/null and b/games/default/files/Nodes/noncubic/textures/cnc_side.png differ diff --git a/games/default/files/Nodes/noncubic/textures/cnc_top.png b/games/default/files/Nodes/noncubic/textures/cnc_top.png new file mode 100644 index 000000000..512333414 Binary files /dev/null and b/games/default/files/Nodes/noncubic/textures/cnc_top.png differ diff --git a/games/default/files/Nodes/noncubic/textures/cylinder_horizontal.png b/games/default/files/Nodes/noncubic/textures/cylinder_horizontal.png new file mode 100644 index 000000000..670ecf29e Binary files /dev/null and b/games/default/files/Nodes/noncubic/textures/cylinder_horizontal.png differ diff --git a/games/default/files/Nodes/noncubic/textures/element_cross.png b/games/default/files/Nodes/noncubic/textures/element_cross.png new file mode 100644 index 000000000..f2ad0b79d Binary files /dev/null and b/games/default/files/Nodes/noncubic/textures/element_cross.png differ diff --git a/games/default/files/Nodes/noncubic/textures/element_edge.png b/games/default/files/Nodes/noncubic/textures/element_edge.png new file mode 100644 index 000000000..e6104cf3b Binary files /dev/null and b/games/default/files/Nodes/noncubic/textures/element_edge.png differ diff --git a/games/default/files/Nodes/noncubic/textures/element_end.png b/games/default/files/Nodes/noncubic/textures/element_end.png new file mode 100644 index 000000000..6bc683724 Binary files /dev/null and b/games/default/files/Nodes/noncubic/textures/element_end.png differ diff --git a/games/default/files/Nodes/noncubic/textures/element_straight.png b/games/default/files/Nodes/noncubic/textures/element_straight.png new file mode 100644 index 000000000..1648b7b2a Binary files /dev/null and b/games/default/files/Nodes/noncubic/textures/element_straight.png differ diff --git a/games/default/files/Nodes/noncubic/textures/element_t.png b/games/default/files/Nodes/noncubic/textures/element_t.png new file mode 100644 index 000000000..0d49cd8c3 Binary files /dev/null and b/games/default/files/Nodes/noncubic/textures/element_t.png differ diff --git a/games/default/files/Nodes/noncubic/textures/full.png b/games/default/files/Nodes/noncubic/textures/full.png new file mode 100644 index 000000000..d551a454f Binary files /dev/null and b/games/default/files/Nodes/noncubic/textures/full.png differ diff --git a/games/default/files/Nodes/noncubic/textures/half.png b/games/default/files/Nodes/noncubic/textures/half.png new file mode 100644 index 000000000..51ebcd740 Binary files /dev/null and b/games/default/files/Nodes/noncubic/textures/half.png differ diff --git a/games/default/files/Nodes/noncubic/textures/milling_background.png b/games/default/files/Nodes/noncubic/textures/milling_background.png new file mode 100644 index 000000000..6a9c2f462 Binary files /dev/null and b/games/default/files/Nodes/noncubic/textures/milling_background.png differ diff --git a/games/default/files/Nodes/noncubic/textures/onecurvededge.png b/games/default/files/Nodes/noncubic/textures/onecurvededge.png new file mode 100644 index 000000000..46779fd61 Binary files /dev/null and b/games/default/files/Nodes/noncubic/textures/onecurvededge.png differ diff --git a/games/default/files/Nodes/noncubic/textures/pyramid.png b/games/default/files/Nodes/noncubic/textures/pyramid.png new file mode 100644 index 000000000..5dc3322e5 Binary files /dev/null and b/games/default/files/Nodes/noncubic/textures/pyramid.png differ diff --git a/games/default/files/Nodes/noncubic/textures/slope_edge.png b/games/default/files/Nodes/noncubic/textures/slope_edge.png new file mode 100644 index 000000000..785adf653 Binary files /dev/null and b/games/default/files/Nodes/noncubic/textures/slope_edge.png differ diff --git a/games/default/files/Nodes/noncubic/textures/slope_edge_upsdwn.png b/games/default/files/Nodes/noncubic/textures/slope_edge_upsdwn.png new file mode 100644 index 000000000..5adb788b7 Binary files /dev/null and b/games/default/files/Nodes/noncubic/textures/slope_edge_upsdwn.png differ diff --git a/games/default/files/Nodes/noncubic/textures/slope_inner_edge.png b/games/default/files/Nodes/noncubic/textures/slope_inner_edge.png new file mode 100644 index 000000000..906dd2548 Binary files /dev/null and b/games/default/files/Nodes/noncubic/textures/slope_inner_edge.png differ diff --git a/games/default/files/Nodes/noncubic/textures/slope_inner_edge_upsdwn.png b/games/default/files/Nodes/noncubic/textures/slope_inner_edge_upsdwn.png new file mode 100644 index 000000000..0ae0e14dd Binary files /dev/null and b/games/default/files/Nodes/noncubic/textures/slope_inner_edge_upsdwn.png differ diff --git a/games/default/files/Nodes/noncubic/textures/slope_lying.png b/games/default/files/Nodes/noncubic/textures/slope_lying.png new file mode 100644 index 000000000..377769a7f Binary files /dev/null and b/games/default/files/Nodes/noncubic/textures/slope_lying.png differ diff --git a/games/default/files/Nodes/noncubic/textures/slope_upsdwn.png b/games/default/files/Nodes/noncubic/textures/slope_upsdwn.png new file mode 100644 index 000000000..b802b60db Binary files /dev/null and b/games/default/files/Nodes/noncubic/textures/slope_upsdwn.png differ diff --git a/games/default/files/Nodes/noncubic/textures/spike.png b/games/default/files/Nodes/noncubic/textures/spike.png new file mode 100644 index 000000000..92e6e58d0 Binary files /dev/null and b/games/default/files/Nodes/noncubic/textures/spike.png differ diff --git a/games/default/files/Nodes/noncubic/textures/stick.png b/games/default/files/Nodes/noncubic/textures/stick.png new file mode 100644 index 000000000..8dfe408ad Binary files /dev/null and b/games/default/files/Nodes/noncubic/textures/stick.png differ diff --git a/games/default/files/Nodes/noncubic/textures/twocurvededge.png b/games/default/files/Nodes/noncubic/textures/twocurvededge.png new file mode 100644 index 000000000..3219a901a Binary files /dev/null and b/games/default/files/Nodes/noncubic/textures/twocurvededge.png differ diff --git a/games/default/files/Nodes/pkarcs/depends.txt b/games/default/files/Nodes/pkarcs/depends.txt new file mode 100644 index 000000000..9bc856fd9 --- /dev/null +++ b/games/default/files/Nodes/pkarcs/depends.txt @@ -0,0 +1,2 @@ +default +color diff --git a/games/default/files/Nodes/pkarcs/description.txt b/games/default/files/Nodes/pkarcs/description.txt new file mode 100644 index 000000000..c70916fc3 --- /dev/null +++ b/games/default/files/Nodes/pkarcs/description.txt @@ -0,0 +1,47 @@ +This mod adds arc-nodes to Minetest as well as arcs for inner and outer corners. + +Provided nodes: + +default:cobble +default:mossycobble + +default:stone +default:stonebrick +default:stone_block + +default:desert_cobble +default:desert_stone +default:desert_stonebrick +default:desert_stone_block + +default:sandstone +default:sandstonebrick +default:sandstone_block + +default:brick + +default:obsidian +default:obsidianbrick +default:obsidian_block + +default:wood +default:junglewood +default:pine_wood +default:acacia_wood +default:aspen_wood + + +To make arcs from nodes of your mod, put "pkarcs?" into your depends.txt, +and call this function in your init.lua: + +if minetest.get_modpath("pkarcs") then + pkarcs.register_node("your_mod:your_nodename") +end + +Tested with Minetest 0.4.15 + +--- + +PEAK +01-20-2017 + diff --git a/games/default/files/Nodes/pkarcs/init.lua b/games/default/files/Nodes/pkarcs/init.lua new file mode 100644 index 000000000..7434032dd --- /dev/null +++ b/games/default/files/Nodes/pkarcs/init.lua @@ -0,0 +1,272 @@ + +pkarcs = {} + +function nb(n) + return n/16-1/2 +end + +local source_list = { + {"black", "Darkened", color1, 40, 36, 33}, + {"blue", "Blue", color2, 0, 0, 255}, + {"green", "Green", color3, 0, 255, 0}, + {"white", "White", color4, 245, 245, 245}, + {"orange", "Orange", color5, 255, 97, 3}, + {"red", "Red", color6, 255, 0, 0}, + {"yellow", "Yellow", color7, 255, 255, 0}, + {"pink", "Pink", color8, 255, 105, 180} +} + +for i in ipairs(source_list) do + local color = source_list[i][1] +local nodename = source_list[i][1] +local name = source_list[i][1] + local desc = source_list[i][2] + local desc2 = source_list[i][2] + local colour = source_list[i][3] + local red = source_list[i][4] + local green = source_list[i][5] + local blue = source_list[i][6] + + minetest.register_node("pkarcs:".. color .."_arc", { + description = desc2 .." Arc", + paramtype = "light", + paramtype2 = "facedir", + drawtype = "nodebox", + node_box = { + type = "fixed", + fixed = { + { nb(0), nb(0), nb(0), nb(1), nb(16), nb(16) }, + { nb(1), nb(4), nb(0), nb(2), nb(16), nb(16) }, + { nb(2), nb(7), nb(0), nb(3), nb(16), nb(16) }, + { nb(3), nb(8), nb(0), nb(4), nb(16), nb(16) }, + { nb(4), nb(10), nb(0), nb(5), nb(16), nb(16) }, + { nb(5), nb(11), nb(0), nb(6), nb(16), nb(16) }, + { nb(6), nb(12), nb(0), nb(8), nb(16), nb(16) }, + { nb(8), nb(13), nb(0), nb(9), nb(16), nb(16) }, + { nb(9), nb(14), nb(0), nb(12), nb(16), nb(16) }, + { nb(12), nb(15), nb(0), nb(16), nb(16), nb(16) }, + } + }, + tiles = {"color_white.png^[colorize:#"..colour..":70"}, + is_ground_content = true, + groups = {snappy = 2, choppy = 2, wool = 2}, + sounds = default.node_sound_defaults(), + oddly_breakable_by_hand = 1, + dig_immediate = 3, + wield_image = "color_handwhite.png^(color_handwhite2.png^[colorize:#"..colour..":70)", + wield_scale = {x=1,y=1,z=0.5}, + inventory_image = "arc.png^[colorize:#"..colour..":70", + + on_place = function(itemstack, placer, pointed_thing) + if pointed_thing.type ~= "node" then + return itemstack + end + + local p1 = pointed_thing.under + local p0 = pointed_thing.above + local param2 = 0 + + local placer_pos = placer:getpos() + if placer_pos then + local dir = { + x = p1.x - placer_pos.x, + y = p1.y - placer_pos.y, + z = p1.z - placer_pos.z + } + param2 = minetest.dir_to_facedir(dir) + end + + if p0.y-1 == p1.y then + param2 = param2 + 20 + if param2 == 21 then + param2 = 23 + elseif param2 == 23 then + param2 = 21 + end + end + + local NROT = 4 -- Number of possible "rotations" (4 Up down left right) + local rot = param2 % NROT + local wall = math.floor(param2/NROT) + if rot >=3 then + rot = 0 + else + rot = rot +1 + end + param2 = wall*NROT+rot + + return minetest.item_place(itemstack, placer, pointed_thing, param2) + end, + + }) + +-- outer arc + + minetest.register_node("pkarcs:"..nodename.."_outarc", { + description = desc.." Out Arc", + paramtype = "light", + paramtype2 = "facedir", + drawtype = "nodebox", + node_box = { + type = "fixed", + fixed = { + { nb(0), nb(0), nb(16), nb(1), nb(16), nb(16-1) }, + { nb(0), nb(4), nb(16), nb(2), nb(16), nb(16-2) }, + { nb(0), nb(7), nb(16), nb(3), nb(16), nb(16-3) }, + { nb(0), nb(8), nb(16), nb(4), nb(16), nb(16-4) }, + { nb(0), nb(10), nb(16), nb(5), nb(16), nb(16-5) }, + { nb(0), nb(11), nb(16), nb(6), nb(16), nb(16-6) }, + { nb(0), nb(12), nb(16), nb(8), nb(16), nb(16-8) }, + { nb(0), nb(13), nb(16), nb(9), nb(16), nb(16-9) }, + { nb(0), nb(14), nb(16), nb(12), nb(16), nb(16-12) }, + { nb(0), nb(15), nb(16), nb(16), nb(16), nb(16-16) }, + } + }, + tiles = {"color_white.png^[colorize:#"..colour..":70"}, + is_ground_content = true, + groups = {snappy = 2, choppy = 2, wool = 2}, + sounds = default.node_sound_defaults(), + oddly_breakable_by_hand = 1, + dig_immediate = 3, +wield_image = "color_handwhite.png^(color_handwhite2.png^[colorize:#"..colour..":70)", + wield_scale = {x=1,y=1,z=0.5}, + inventory_image = "arcout.png^[colorize:#"..colour..":70", + + on_place = function(itemstack, placer, pointed_thing) + if pointed_thing.type ~= "node" then + return itemstack + end + + local p1 = pointed_thing.under + local p0 = pointed_thing.above + local param2 = 0 + + local placer_pos = placer:getpos() + if placer_pos then + local dir = { + x = p1.x - placer_pos.x, + y = p1.y - placer_pos.y, + z = p1.z - placer_pos.z + } + param2 = minetest.dir_to_facedir(dir) + end + + if p0.y-1 == p1.y then + param2 = param2 + 20 + if param2 == 21 then + param2 = 23 + elseif param2 == 23 then + param2 = 21 + end + end + + local NROT = 4 -- Number of possible "rotations" (4 Up down left right) + local rot = param2 % NROT + local wall = math.floor(param2/NROT) + if rot >=3 then + rot = 0 + else + rot = rot +1 + end + param2 = wall*NROT+rot + + return minetest.item_place(itemstack, placer, pointed_thing, param2) + end, + + }) + +-- inner arc + + minetest.register_node("pkarcs:"..nodename.."_inarc", { + description = desc.." In Arc", + paramtype = "light", + paramtype2 = "facedir", + drawtype = "nodebox", + node_box = { + type = "fixed", + fixed = { + { nb(0), nb(0), nb(16), nb(1), nb(16), nb(0) }, + { nb(0), nb(0), nb(16), nb(16), nb(16), nb(16-1) }, + + { nb(0), nb(4), nb(16), nb(2), nb(16), nb(0) }, + { nb(0), nb(4), nb(16), nb(16), nb(16), nb(16-2) }, + + { nb(0), nb(7), nb(16), nb(3), nb(16), nb(0) }, + { nb(0), nb(7), nb(16), nb(16), nb(16), nb(16-3) }, + + { nb(0), nb(8), nb(16), nb(4), nb(16), nb(0) }, + { nb(0), nb(8), nb(16), nb(16), nb(16), nb(16-4) }, + + { nb(0), nb(10), nb(16), nb(5), nb(16), nb(0) }, + { nb(0), nb(10), nb(16), nb(16), nb(16), nb(16-5) }, + + { nb(0), nb(11), nb(16), nb(6), nb(16), nb(0) }, + { nb(0), nb(11), nb(16), nb(16), nb(16), nb(16-6) }, + + { nb(0), nb(12), nb(16), nb(8), nb(16), nb(0) }, + { nb(0), nb(12), nb(16), nb(16), nb(16), nb(16-8) }, + + { nb(0), nb(13), nb(16), nb(9), nb(16), nb(0) }, + { nb(0), nb(13), nb(16), nb(16), nb(16), nb(16-9) }, + + { nb(0), nb(14), nb(16), nb(12), nb(16), nb(0) }, + { nb(0), nb(14), nb(16), nb(16), nb(16), nb(16-12) }, + + { nb(0), nb(15), nb(16), nb(16), nb(16), nb(16-16) }, + } + }, + tiles = {"color_white.png^[colorize:#"..colour..":70"}, + is_ground_content = true, + groups = {snappy = 2, choppy = 2, wool = 2}, + sounds = default.node_sound_defaults(), + oddly_breakable_by_hand = 1, + dig_immediate = 3, + wield_image = "color_handwhite.png^(color_handwhite2.png^[colorize:#"..colour..":70)", + wield_scale = {x=1,y=1,z=0.5}, + inventory_image = "arcin.png^[colorize:#"..colour..":70", + + on_place = function(itemstack, placer, pointed_thing) + if pointed_thing.type ~= "node" then + return itemstack + end + + local p1 = pointed_thing.under + local p0 = pointed_thing.above + local param2 = 0 + + local placer_pos = placer:getpos() + if placer_pos then + local dir = { + x = p1.x - placer_pos.x, + y = p1.y - placer_pos.y, + z = p1.z - placer_pos.z + } + param2 = minetest.dir_to_facedir(dir) + end + + if p0.y-1 == p1.y then + param2 = param2 + 20 + if param2 == 21 then + param2 = 23 + elseif param2 == 23 then + param2 = 21 + end + end + + local NROT = 4 -- Number of possible "rotations" (4 Up down left right) + local rot = param2 % NROT + local wall = math.floor(param2/NROT) + if rot >=3 then + rot = 0 + else + rot = rot +1 + end + param2 = wall*NROT+rot + + return minetest.item_place(itemstack, placer, pointed_thing, param2) + end, + + }) + + +end diff --git a/games/default/files/Nodes/pkarcs/license.txt b/games/default/files/Nodes/pkarcs/license.txt new file mode 100644 index 000000000..e69de29bb diff --git a/games/default/files/Nodes/pkarcs/mod.conf b/games/default/files/Nodes/pkarcs/mod.conf new file mode 100644 index 000000000..e3b7fd9c6 --- /dev/null +++ b/games/default/files/Nodes/pkarcs/mod.conf @@ -0,0 +1 @@ +name = pkarcs diff --git a/games/default/files/Nodes/pkarcs/screenshots/crafting_arc.png b/games/default/files/Nodes/pkarcs/screenshots/crafting_arc.png new file mode 100644 index 000000000..b7e1ef74d Binary files /dev/null and b/games/default/files/Nodes/pkarcs/screenshots/crafting_arc.png differ diff --git a/games/default/files/Nodes/pkarcs/screenshots/crafting_inner_arc.png b/games/default/files/Nodes/pkarcs/screenshots/crafting_inner_arc.png new file mode 100644 index 000000000..9a5871509 Binary files /dev/null and b/games/default/files/Nodes/pkarcs/screenshots/crafting_inner_arc.png differ diff --git a/games/default/files/Nodes/pkarcs/screenshots/crafting_outer_arc.png b/games/default/files/Nodes/pkarcs/screenshots/crafting_outer_arc.png new file mode 100644 index 000000000..b2e279550 Binary files /dev/null and b/games/default/files/Nodes/pkarcs/screenshots/crafting_outer_arc.png differ diff --git a/games/default/files/Nodes/pkarcs/screenshots/screenshot_1.png b/games/default/files/Nodes/pkarcs/screenshots/screenshot_1.png new file mode 100644 index 000000000..71015c49e Binary files /dev/null and b/games/default/files/Nodes/pkarcs/screenshots/screenshot_1.png differ diff --git a/games/default/files/Nodes/pkarcs/screenshots/screenshot_2.png b/games/default/files/Nodes/pkarcs/screenshots/screenshot_2.png new file mode 100644 index 000000000..02bde8a5d Binary files /dev/null and b/games/default/files/Nodes/pkarcs/screenshots/screenshot_2.png differ diff --git a/games/default/files/Nodes/slope/blends/slope_test_blob_onetexture.blend b/games/default/files/Nodes/slope/blends/slope_test_blob_onetexture.blend new file mode 100644 index 000000000..89c306428 Binary files /dev/null and b/games/default/files/Nodes/slope/blends/slope_test_blob_onetexture.blend differ diff --git a/games/default/files/Nodes/slope/blends/slope_test_cone_onetexture.blend b/games/default/files/Nodes/slope/blends/slope_test_cone_onetexture.blend new file mode 100644 index 000000000..646b94098 Binary files /dev/null and b/games/default/files/Nodes/slope/blends/slope_test_cone_onetexture.blend differ diff --git a/games/default/files/Nodes/slope/blends/slope_test_corner_pyramid_short_1_onetexture.blend b/games/default/files/Nodes/slope/blends/slope_test_corner_pyramid_short_1_onetexture.blend new file mode 100644 index 000000000..c5cf2348b Binary files /dev/null and b/games/default/files/Nodes/slope/blends/slope_test_corner_pyramid_short_1_onetexture.blend differ diff --git a/games/default/files/Nodes/slope/blends/slope_test_corner_pyramid_short_2_onetexture.blend b/games/default/files/Nodes/slope/blends/slope_test_corner_pyramid_short_2_onetexture.blend new file mode 100644 index 000000000..73536a018 Binary files /dev/null and b/games/default/files/Nodes/slope/blends/slope_test_corner_pyramid_short_2_onetexture.blend differ diff --git a/games/default/files/Nodes/slope/blends/slope_test_corner_pyramid_tall_1_onetexture.blend b/games/default/files/Nodes/slope/blends/slope_test_corner_pyramid_tall_1_onetexture.blend new file mode 100644 index 000000000..122faf9b6 Binary files /dev/null and b/games/default/files/Nodes/slope/blends/slope_test_corner_pyramid_tall_1_onetexture.blend differ diff --git a/games/default/files/Nodes/slope/blends/slope_test_corner_pyramid_tall_2_onetexture.blend b/games/default/files/Nodes/slope/blends/slope_test_corner_pyramid_tall_2_onetexture.blend new file mode 100644 index 000000000..8d82b15f9 Binary files /dev/null and b/games/default/files/Nodes/slope/blends/slope_test_corner_pyramid_tall_2_onetexture.blend differ diff --git a/games/default/files/Nodes/slope/blends/slope_test_cylinder.blend b/games/default/files/Nodes/slope/blends/slope_test_cylinder.blend new file mode 100644 index 000000000..6efada6fd Binary files /dev/null and b/games/default/files/Nodes/slope/blends/slope_test_cylinder.blend differ diff --git a/games/default/files/Nodes/slope/blends/slope_test_cylinder_onetexture.blend b/games/default/files/Nodes/slope/blends/slope_test_cylinder_onetexture.blend new file mode 100644 index 000000000..5fdadf7e0 Binary files /dev/null and b/games/default/files/Nodes/slope/blends/slope_test_cylinder_onetexture.blend differ diff --git a/games/default/files/Nodes/slope/blends/slope_test_icorner.blend b/games/default/files/Nodes/slope/blends/slope_test_icorner.blend new file mode 100644 index 000000000..93fb14215 Binary files /dev/null and b/games/default/files/Nodes/slope/blends/slope_test_icorner.blend differ diff --git a/games/default/files/Nodes/slope/blends/slope_test_icorner_half_short_onetexture.blend b/games/default/files/Nodes/slope/blends/slope_test_icorner_half_short_onetexture.blend new file mode 100644 index 000000000..ff06b4bdf Binary files /dev/null and b/games/default/files/Nodes/slope/blends/slope_test_icorner_half_short_onetexture.blend differ diff --git a/games/default/files/Nodes/slope/blends/slope_test_icorner_half_tall_onetexture.blend b/games/default/files/Nodes/slope/blends/slope_test_icorner_half_tall_onetexture.blend new file mode 100644 index 000000000..1a64bffaf Binary files /dev/null and b/games/default/files/Nodes/slope/blends/slope_test_icorner_half_tall_onetexture.blend differ diff --git a/games/default/files/Nodes/slope/blends/slope_test_icorner_onetexture.blend b/games/default/files/Nodes/slope/blends/slope_test_icorner_onetexture.blend new file mode 100644 index 000000000..617d10720 Binary files /dev/null and b/games/default/files/Nodes/slope/blends/slope_test_icorner_onetexture.blend differ diff --git a/games/default/files/Nodes/slope/blends/slope_test_ocorner.blend b/games/default/files/Nodes/slope/blends/slope_test_ocorner.blend new file mode 100644 index 000000000..65122a1d0 Binary files /dev/null and b/games/default/files/Nodes/slope/blends/slope_test_ocorner.blend differ diff --git a/games/default/files/Nodes/slope/blends/slope_test_ocorner_onetexture.blend b/games/default/files/Nodes/slope/blends/slope_test_ocorner_onetexture.blend new file mode 100644 index 000000000..bf7cf35b3 Binary files /dev/null and b/games/default/files/Nodes/slope/blends/slope_test_ocorner_onetexture.blend differ diff --git a/games/default/files/Nodes/slope/blends/slope_test_ocorner_short_onetexture.blend b/games/default/files/Nodes/slope/blends/slope_test_ocorner_short_onetexture.blend new file mode 100644 index 000000000..3740e0bed Binary files /dev/null and b/games/default/files/Nodes/slope/blends/slope_test_ocorner_short_onetexture.blend differ diff --git a/games/default/files/Nodes/slope/blends/slope_test_pyramid_onetexture.blend b/games/default/files/Nodes/slope/blends/slope_test_pyramid_onetexture.blend new file mode 100644 index 000000000..995826969 Binary files /dev/null and b/games/default/files/Nodes/slope/blends/slope_test_pyramid_onetexture.blend differ diff --git a/games/default/files/Nodes/slope/blends/slope_test_pyramid_short_onetexture.blend b/games/default/files/Nodes/slope/blends/slope_test_pyramid_short_onetexture.blend new file mode 100644 index 000000000..342d56953 Binary files /dev/null and b/games/default/files/Nodes/slope/blends/slope_test_pyramid_short_onetexture.blend differ diff --git a/games/default/files/Nodes/slope/blends/slope_test_quarter_round.blend b/games/default/files/Nodes/slope/blends/slope_test_quarter_round.blend new file mode 100644 index 000000000..4ae25a41b Binary files /dev/null and b/games/default/files/Nodes/slope/blends/slope_test_quarter_round.blend differ diff --git a/games/default/files/Nodes/slope/blends/slope_test_quarter_round_corner.blend b/games/default/files/Nodes/slope/blends/slope_test_quarter_round_corner.blend new file mode 100644 index 000000000..533616f9d Binary files /dev/null and b/games/default/files/Nodes/slope/blends/slope_test_quarter_round_corner.blend differ diff --git a/games/default/files/Nodes/slope/blends/slope_test_quarter_round_corner_onetexture.blend b/games/default/files/Nodes/slope/blends/slope_test_quarter_round_corner_onetexture.blend new file mode 100644 index 000000000..dc7377a4d Binary files /dev/null and b/games/default/files/Nodes/slope/blends/slope_test_quarter_round_corner_onetexture.blend differ diff --git a/games/default/files/Nodes/slope/blends/slope_test_quarter_round_onetexture.blend b/games/default/files/Nodes/slope/blends/slope_test_quarter_round_onetexture.blend new file mode 100644 index 000000000..06490b1e2 Binary files /dev/null and b/games/default/files/Nodes/slope/blends/slope_test_quarter_round_onetexture.blend differ diff --git a/games/default/files/Nodes/slope/blends/slope_test_slope.blend b/games/default/files/Nodes/slope/blends/slope_test_slope.blend new file mode 100644 index 000000000..21a371826 Binary files /dev/null and b/games/default/files/Nodes/slope/blends/slope_test_slope.blend differ diff --git a/games/default/files/Nodes/slope/blends/slope_test_slope_long.blend b/games/default/files/Nodes/slope/blends/slope_test_slope_long.blend new file mode 100644 index 000000000..34d5a7afc Binary files /dev/null and b/games/default/files/Nodes/slope/blends/slope_test_slope_long.blend differ diff --git a/games/default/files/Nodes/slope/blends/slope_test_slope_long_backhalf_onetexture.blend b/games/default/files/Nodes/slope/blends/slope_test_slope_long_backhalf_onetexture.blend new file mode 100644 index 000000000..0d75d8348 Binary files /dev/null and b/games/default/files/Nodes/slope/blends/slope_test_slope_long_backhalf_onetexture.blend differ diff --git a/games/default/files/Nodes/slope/blends/slope_test_slope_long_fronthalf_onetexture.blend b/games/default/files/Nodes/slope/blends/slope_test_slope_long_fronthalf_onetexture.blend new file mode 100644 index 000000000..9caccaa7b Binary files /dev/null and b/games/default/files/Nodes/slope/blends/slope_test_slope_long_fronthalf_onetexture.blend differ diff --git a/games/default/files/Nodes/slope/blends/slope_test_slope_long_onetexture.blend b/games/default/files/Nodes/slope/blends/slope_test_slope_long_onetexture.blend new file mode 100644 index 000000000..9a2793722 Binary files /dev/null and b/games/default/files/Nodes/slope/blends/slope_test_slope_long_onetexture.blend differ diff --git a/games/default/files/Nodes/slope/blends/slope_test_slope_onetexture.blend b/games/default/files/Nodes/slope/blends/slope_test_slope_onetexture.blend new file mode 100644 index 000000000..d1b815b12 Binary files /dev/null and b/games/default/files/Nodes/slope/blends/slope_test_slope_onetexture.blend differ diff --git a/games/default/files/Nodes/slope/blends/slope_test_sphere.blend b/games/default/files/Nodes/slope/blends/slope_test_sphere.blend new file mode 100644 index 000000000..58137fd72 Binary files /dev/null and b/games/default/files/Nodes/slope/blends/slope_test_sphere.blend differ diff --git a/games/default/files/Nodes/slope/blends/slope_test_sphere_onetexture.blend b/games/default/files/Nodes/slope/blends/slope_test_sphere_onetexture.blend new file mode 100644 index 000000000..2bfbc7d35 Binary files /dev/null and b/games/default/files/Nodes/slope/blends/slope_test_sphere_onetexture.blend differ diff --git a/games/default/files/Nodes/slope/depends.txt b/games/default/files/Nodes/slope/depends.txt new file mode 100644 index 000000000..9bc856fd9 --- /dev/null +++ b/games/default/files/Nodes/slope/depends.txt @@ -0,0 +1,2 @@ +default +color diff --git a/games/default/files/Nodes/slope/init.lua b/games/default/files/Nodes/slope/init.lua new file mode 100644 index 000000000..b2e4abdd8 --- /dev/null +++ b/games/default/files/Nodes/slope/init.lua @@ -0,0 +1,447 @@ +local slope_cbox = { + type = "fixed", + fixed = { + {-0.5, -0.5, -0.5, 0.5, -0.25, 0.5}, + {-0.5, -0.25, -0.25, 0.5, 0, 0.5}, + {-0.5, 0, 0, 0.5, 0.25, 0.5}, + {-0.5, 0.25, 0.25, 0.5, 0.5, 0.5} + } +} + +local slope_cbox_long = { + type = "fixed", + fixed = { + {-0.5, -0.5, -1.5, 0.5, -0.375, 0.5}, -- NodeBox1 + {-0.5, -0.375, -1.25, 0.5, -0.25, 0.5}, -- NodeBox2 + {-0.5, -0.25, -1, 0.5, -0.125, 0.5}, -- NodeBox3 + {-0.5, -0.125, -0.75, 0.5, 0, 0.5}, -- NodeBox4 + {-0.5, 0, -0.5, 0.5, 0.125, 0.5}, -- NodeBox5 + {-0.5, 0.125, -0.25, 0.5, 0.25, 0.5}, -- NodeBox6 + {-0.5, 0.25, 0, 0.5, 0.375, 0.5}, -- NodeBox7 + {-0.5, 0.375, 0.25, 0.5, 0.5, 0.5}, -- NodeBox8 + } +} + +local icorner_cbox = { + type = "fixed", + fixed = { + {-0.5, -0.5, -0.5, 0.5, -0.25, 0.5}, -- NodeBox5 + {-0.5, -0.5, -0.25, 0.5, 0, 0.5}, -- NodeBox6 + {-0.5, -0.5, -0.5, 0.25, 0, 0.5}, -- NodeBox7 + {-0.5, 0, -0.5, 0, 0.25, 0.5}, -- NodeBox8 + {-0.5, 0, 0, 0.5, 0.25, 0.5}, -- NodeBox9 + {-0.5, 0.25, 0.25, 0.5, 0.5, 0.5}, -- NodeBox10 + {-0.5, 0.25, -0.5, -0.25, 0.5, 0.5}, -- NodeBox11 + } +} + +local ocorner_cbox = { + type = "fixed", + fixed = { + {-0.5, -0.5, -0.5, 0.5, -0.25, 0.5}, + {-0.5, -0.25, -0.25, 0.25, 0, 0.5}, + {-0.5, 0, 0, 0, 0.25, 0.5}, + {-0.5, 0.25, 0.25, -0.25, 0.5, 0.5} + } +} + +local short_pyr_cbox = { + type = "fixed", + fixed = { + { -0.5, -0.5, -0.5, 0.5, -0.375, 0.5 }, + { -0.375, -0.375, -0.375, 0.375, -0.25, 0.375}, + { -0.25, -0.25, -0.25, 0.25, -0.125, 0.25}, + { -0.125, -0.125, -0.125, 0.125, 0, 0.125} + } +} + +local tall_pyr_cbox = { + type = "fixed", + fixed = { + { -0.5, -0.5, -0.5, 0.5, -0.25, 0.5 }, + { -0.375, -0.25, -0.375, 0.375, 0, 0.375}, + { -0.25, 0, -0.25, 0.25, 0.25, 0.25}, + { -0.125, 0.25, -0.125, 0.125, 0.5, 0.125} + } +} + +local slope_fronthalf_cbox = { + type = "fixed", + fixed = { + {-0.5, -0.5, -0.5, 0.5, -0.375, 0.5}, -- NodeBox1 + {-0.5, -0.375, -0.25, 0.5, -0.25, 0.5}, -- NodeBox2 + {-0.5, -0.25, 0, 0.5, -0.125, 0.5}, -- NodeBox3 + {-0.5, -0.125, 0.25, 0.5, 0, 0.5}, -- NodeBox4 + } +} + +local slope_backhalf_cbox = { + type = "fixed", + fixed = { + {-0.5, -0.5, -0.5, 0.5, 0.125, 0.5}, -- NodeBox1 + {-0.5, 0.125, -0.25, 0.5, 0.25, 0.5}, -- NodeBox2 + {-0.5, 0.25, 0, 0.5, 0.375, 0.5}, -- NodeBox3 + {-0.5, 0.375, 0.25, 0.5, 0.5, 0.5}, -- NodeBox4 + } +} + + +local source_list = { + {"black", "Darkened", color1, 40, 36, 33}, + {"blue", "Blue", color2, 0, 0, 255}, + {"green", "Green", color3, 0, 255, 0}, + {"white", "White", color4, 245, 245, 245}, + {"orange", "Orange", color5, 255, 97, 3}, + {"red", "Red", color6, 255, 0, 0}, + {"yellow", "Yellow", color7, 255, 255, 0}, + {"pink", "pink", color8, 255, 105, 180} +} + +for i in ipairs(source_list) do + local name = source_list[i][1] + local desc = source_list[i][2] + local colour = source_list[i][3] + local red = source_list[i][4] + local green = source_list[i][5] + local blue = source_list[i][6] + +-- drawtype = "glasslike", + +-- Glass + +minetest.register_node("slope:edge_glass_" .. name, { + description = desc .. "glass edge", + wield_image = "color_handwhite.png^(color_handwhite2.png^[colorize:#"..colour..":70)", + wield_scale = {x=1,y=1,z=0.5}, + inventory_image = "edge.png^[colorize:#"..colour..":70", + drawtype = "mesh", + mesh = "slope_test_quarter_round_onetexture.obj", + tiles = {"whiteglass.png^[colorize:#"..colour..":70"}, + paramtype = "light", + paramtype2 = "facedir", + use_texture_alpha = true, + sunlight_propagates = true, + groups = {cracky=3, oddly_breakable_by_hand=2}, + sounds = default.node_sound_glass_defaults(), + on_place = minetest.rotate_node, + }) + +minetest.register_node("slope:edgecorner_glass_" .. name, { + description = desc .. "edge", + wield_image = "color_handwhite.png^(color_handwhite2.png^[colorize:#"..colour..":70)", + wield_scale = {x=1,y=1,z=0.5}, + inventory_image = "edgecorner.png^[colorize:#"..colour..":70", + drawtype = "mesh", + mesh = "slope_test_quarter_round_corner_onetexture.obj", + tiles = {"whiteglass.png^[colorize:#"..colour..":70"}, + paramtype = "light", + paramtype2 = "facedir", + use_texture_alpha = true, + sunlight_propagates = true, + groups = {cracky=3, oddly_breakable_by_hand=2}, + sounds = default.node_sound_stone_defaults(), + on_place = minetest.rotate_node, + }) + +minetest.register_node("slope:slope_glass_"..name, { + description = desc.. " slope", + wield_image = "color_handwhite.png^(color_handwhite2.png^[colorize:#"..colour..":70)", + wield_scale = {x=1,y=1,z=0.5}, + inventory_image = "triangle.png^[colorize:#"..colour..":70", + drawtype = "mesh", + mesh = "slope_test_slope.obj", + tiles = {"whiteglass.png^[colorize:#"..colour..":70"}, + paramtype = "light", + paramtype2 = "facedir", + use_texture_alpha = true, + sunlight_propagates = true, + groups = {snappy=2, choppy=2, oddly_breakable_by_hand=2}, + sounds = default.node_sound_defaults(), + on_place = minetest.rotate_node, + collision_box = slope_cbox, + selection_box = slope_cbox, + oddly_breakable_by_hand = 1, + dig_immediate = 3, + }) + + minetest.register_node("slope:ocorner_glass_"..name, { + description = desc.." slope (outer corner)", + wield_image = "color_handwhite.png^(color_handwhite2.png^[colorize:#"..colour..":70)", + wield_scale = {x=1,y=1,z=0.5}, + inventory_image = "cornera.png^[colorize:#"..colour..":70", + drawtype = "mesh", + mesh = "slope_test_ocorner.obj", + tiles = {"whiteglass.png^[colorize:#"..colour..":70"}, + paramtype = "light", + paramtype2 = "facedir", + use_texture_alpha = true, + sunlight_propagates = true, + groups = {snappy=2, choppy=2, oddly_breakable_by_hand=2}, + sounds = default.node_sound_wood_defaults(), + on_place = minetest.rotate_node, + collision_box = ocorner_cbox, + selection_box = ocorner_cbox, + oddly_breakable_by_hand = 1, + dig_immediate = 3, + }) + minetest.register_node("slope:icorner_glass_"..name, { + description = desc.." slope (inner corner)", + wield_image = "color_handwhite.png^(color_handwhite2.png^[colorize:#"..colour..":70)", + wield_scale = {x=1,y=1,z=0.5}, + inventory_image = "cornerb.png^[colorize:#"..colour..":70", + drawtype = "mesh", + mesh = "slope_test_icorner.obj", + tiles = {"whiteglass.png^[colorize:#"..colour..":70"}, + paramtype = "light", + paramtype2 = "facedir", + use_texture_alpha = true, + sunlight_propagates = true, + groups = {snappy=2, choppy=2, oddly_breakable_by_hand=2}, + sounds = default.node_sound_defaults(), + on_place = minetest.rotate_node, + collision_box = ocorner_cbox, + selection_box = ocorner_cbox, + oddly_breakable_by_hand = 1, + dig_immediate = 3, + }) + + minetest.register_node("slope:slopelong_glass_"..name, { + description = desc.." long slope", + wield_image = "color_handwhite.png^(color_handwhite2.png^[colorize:#"..colour..":70)", + wield_scale = {x=1,y=1,z=0.5}, + inventory_image = "long.png^[colorize:#"..colour..":70", + drawtype = "mesh", + mesh = "slope_test_slope_long.obj", + tiles = {"whiteglass.png^[colorize:#"..colour..":70"}, + paramtype = "light", + paramtype2 = "facedir", + groups = {snappy=2, choppy=2, oddly_breakable_by_hand=2}, + sounds = default.node_sound_defaults(), + use_texture_alpha = true, + sunlight_propagates = true, + on_place = minetest.rotate_node, + collision_box = slope_cbox_long, + selection_box = slope_cbox_long, + oddly_breakable_by_hand = 1, + dig_immediate = 3, + }) + + minetest.register_node("slope:cylinder_glass_"..name, { + description = desc.." cylinder", + wield_image = "color_handwhite.png^(color_handwhite2.png^[colorize:#"..colour..":70)", + wield_scale = {x=1,y=1,z=0.5}, + inventory_image = "cylinder.png^[colorize:#"..colour..":70", + drawtype = "mesh", + mesh = "slope_test_cylinder.obj", + tiles = {"whiteglass.png^[colorize:#"..colour..":70"}, + paramtype = "light", + paramtype2 = "facedir", + use_texture_alpha = true, + sunlight_propagates = true, + groups = {snappy=2, choppy=2, oddly_breakable_by_hand=2}, + sounds = default.node_sound_defaults(), + on_place = minetest.rotate_node, + oddly_breakable_by_hand = 1, + dig_immediate = 3, + }) + + minetest.register_node("slope:cone_glass_"..name, { + description = desc.." cone", + wield_image = "color_handwhite.png^(color_handwhite2.png^[colorize:#"..colour..":70)", + wield_scale = {x=1,y=1,z=0.5}, + inventory_image = "cone.png^[colorize:#"..colour..":70", + drawtype = "mesh", + mesh = "slope_test_cone_onetexture.obj", + tiles = {"whiteglass.png^[colorize:#"..colour..":70"}, + paramtype = "light", + paramtype2 = "facedir", + use_texture_alpha = true, + sunlight_propagates = true, + groups = {snappy=2, cracky=3, oddly_breakable_by_hand=2}, + sounds = default.node_sound_defaults(), + on_place = minetest.rotate_node, + selection_box = tall_pyr_cbox, + collision_box = tall_pyr_cbox, + oddly_breakable_by_hand = 1, + dig_immediate = 3, + }) + + minetest.register_node("slope:sphere_glass_"..name, { + description = desc.." sphere", + wield_image = "color_handwhite.png^(color_handwhite2.png^[colorize:#"..colour..":70)", + wield_scale = {x=1,y=1,z=0.5}, + inventory_image = "sphere.png^[colorize:#"..colour..":70", + drawtype = "mesh", + mesh = "slope_test_sphere_onetexture.obj", + tiles = {"whiteglass.png^[colorize:#"..colour..":70"}, + paramtype = "light", + paramtype2 = "facedir", + use_texture_alpha = true, + sunlight_propagates = true, + groups = {snappy=2, cracky=3, oddly_breakable_by_hand=2}, + sounds = default.node_sound_defaults(), + oddly_breakable_by_hand = 1, + dig_immediate = 3, + }) + + +-- Normal + + minetest.register_node("slope:edge_" .. name, { + description = desc .. "edge", +wield_image = "color_handwhite.png^(color_handwhite2.png^[colorize:#"..colour..":70)", + wield_scale = {x=1,y=1,z=0.5}, +inventory_image = "edge.png^[colorize:#"..colour..":70", + drawtype = "mesh", + mesh = "slope_test_quarter_round_onetexture.obj", + tiles = {"color_white.png^[colorize:#"..colour..":70"}, + paramtype = "light", + paramtype2 = "facedir", + groups = {cracky=3, oddly_breakable_by_hand=2}, + sounds = default.node_sound_stone_defaults(), + on_place = minetest.rotate_node, + }) + +minetest.register_node("slope:edgecorner_" .. name, { + description = desc .. "edge", +wield_image = "color_handwhite.png^(color_handwhite2.png^[colorize:#"..colour..":70)", + wield_scale = {x=1,y=1,z=0.5}, +inventory_image = "edgecorner.png^[colorize:#"..colour..":70", + drawtype = "mesh", + mesh = "slope_test_quarter_round_corner_onetexture.obj", + tiles = {"color_white.png^[colorize:#"..colour..":70"}, + paramtype = "light", + paramtype2 = "facedir", + groups = {cracky=3, oddly_breakable_by_hand=2}, + sounds = default.node_sound_stone_defaults(), + on_place = minetest.rotate_node, + }) + +minetest.register_node("slope:slope_"..name, { + description = desc.. " slope", +wield_image = "color_handwhite.png^(color_handwhite2.png^[colorize:#"..colour..":70)", + wield_scale = {x=1,y=1,z=0.5}, +inventory_image = "triangle.png^[colorize:#"..colour..":70", + drawtype = "mesh", + mesh = "slope_test_slope.obj", + tiles = {"color_white.png^[colorize:#"..colour..":70"}, + paramtype = "light", + paramtype2 = "facedir", + groups = {snappy=2, choppy=2, oddly_breakable_by_hand=2}, + sounds = default.node_sound_defaults(), + on_place = minetest.rotate_node, + collision_box = slope_cbox, + selection_box = slope_cbox, + oddly_breakable_by_hand = 1, + dig_immediate = 3, + }) + + minetest.register_node("slope:ocorner_"..name, { + description = desc.." slope (outer corner)", +wield_image = "color_handwhite.png^(color_handwhite2.png^[colorize:#"..colour..":70)", + wield_scale = {x=1,y=1,z=0.5}, +inventory_image = "cornera.png^[colorize:#"..colour..":70", + drawtype = "mesh", + mesh = "slope_test_ocorner.obj", + tiles = {"color_white.png^[colorize:#"..colour..":70"}, + paramtype = "light", + paramtype2 = "facedir", + groups = {snappy=2, choppy=2, oddly_breakable_by_hand=2}, + sounds = default.node_sound_wood_defaults(), + on_place = minetest.rotate_node, + collision_box = ocorner_cbox, + selection_box = ocorner_cbox, + oddly_breakable_by_hand = 1, + dig_immediate = 3, + }) + minetest.register_node("slope:icorner_"..name, { + description = desc.." slope (inner corner)", +wield_image = "color_handwhite.png^(color_handwhite2.png^[colorize:#"..colour..":70)", + wield_scale = {x=1,y=1,z=0.5}, +inventory_image = "cornerb.png^[colorize:#"..colour..":70", + drawtype = "mesh", + mesh = "slope_test_icorner.obj", + tiles = {"color_white.png^[colorize:#"..colour..":70"}, + paramtype = "light", + paramtype2 = "facedir", + groups = {snappy=2, choppy=2, oddly_breakable_by_hand=2}, + sounds = default.node_sound_defaults(), + on_place = minetest.rotate_node, + collision_box = ocorner_cbox, + selection_box = ocorner_cbox, + oddly_breakable_by_hand = 1, + dig_immediate = 3, + }) + + minetest.register_node("slope:slopelong_"..name, { + description = desc.." long slope", +wield_image = "color_handwhite.png^(color_handwhite2.png^[colorize:#"..colour..":70)", + wield_scale = {x=1,y=1,z=0.5}, +inventory_image = "long.png^[colorize:#"..colour..":70", + drawtype = "mesh", + mesh = "slope_test_slope_long.obj", + tiles = {"color_white.png^[colorize:#"..colour..":70"}, + paramtype = "light", + paramtype2 = "facedir", + groups = {snappy=2, choppy=2, oddly_breakable_by_hand=2}, + sounds = default.node_sound_defaults(), + on_place = minetest.rotate_node, + collision_box = slope_cbox_long, + selection_box = slope_cbox_long, + oddly_breakable_by_hand = 1, + dig_immediate = 3, + }) + + minetest.register_node("slope:cylinder_"..name, { + description = desc.." cylinder", +wield_image = "color_handwhite.png^(color_handwhite2.png^[colorize:#"..colour..":70)", + wield_scale = {x=1,y=1,z=0.5}, +inventory_image = "cylinder.png^[colorize:#"..colour..":70", + drawtype = "mesh", + mesh = "slope_test_cylinder.obj", + tiles = {"color_white.png^[colorize:#"..colour..":70"}, + paramtype = "light", + paramtype2 = "facedir", + groups = {snappy=2, choppy=2, oddly_breakable_by_hand=2}, + sounds = default.node_sound_defaults(), + on_place = minetest.rotate_node, + oddly_breakable_by_hand = 1, + dig_immediate = 3, + }) + + minetest.register_node("slope:cone_"..name, { + description = desc.." cone", +wield_image = "color_handwhite.png^(color_handwhite2.png^[colorize:#"..colour..":70)", + wield_scale = {x=1,y=1,z=0.5}, +inventory_image = "cone.png^[colorize:#"..colour..":70", + drawtype = "mesh", + mesh = "slope_test_cone_onetexture.obj", + tiles = {"color_white.png^[colorize:#"..colour..":70"}, + paramtype = "light", + paramtype2 = "facedir", + groups = {snappy=2, cracky=3, oddly_breakable_by_hand=2}, + sounds = default.node_sound_defaults(), + on_place = minetest.rotate_node, + selection_box = tall_pyr_cbox, + collision_box = tall_pyr_cbox, + oddly_breakable_by_hand = 1, + dig_immediate = 3, + }) + + minetest.register_node("slope:sphere_"..name, { + description = desc.." sphere", +wield_image = "color_handwhite.png^(color_handwhite2.png^[colorize:#"..colour..":70)", + wield_scale = {x=1,y=1,z=0.5}, +inventory_image = "sphere.png^[colorize:#"..colour..":70", + drawtype = "mesh", + mesh = "slope_test_sphere_onetexture.obj", + tiles = {"color_white.png^[colorize:#"..colour..":70"}, + paramtype = "light", + paramtype2 = "facedir", + groups = {snappy=2, cracky=3, oddly_breakable_by_hand=2}, + sounds = default.node_sound_defaults(), + oddly_breakable_by_hand = 1, + dig_immediate = 3, + }) + +end diff --git a/games/default/files/Nodes/slope/models/slope_test_blob_onetexture.obj b/games/default/files/Nodes/slope/models/slope_test_blob_onetexture.obj new file mode 100644 index 000000000..e949f5bf1 --- /dev/null +++ b/games/default/files/Nodes/slope/models/slope_test_blob_onetexture.obj @@ -0,0 +1,300 @@ +# Blender v2.73 (sub 0) OBJ File: 'slope_test_blob_onetexture.blend' +# www.blender.org +o Cube +v 0.213679 -0.450000 -0.213679 +v -0.213679 -0.450000 0.213680 +v 0.213680 -0.450000 0.213680 +v -0.213679 -0.450000 -0.213679 +v 0.213679 0.450000 -0.213679 +v -0.213679 0.450000 -0.213679 +v 0.213679 0.450000 0.213680 +v 0.500000 -0.000003 0.500000 +v 0.277785 -0.415735 0.277785 +v -0.277785 -0.415735 0.277785 +v 0.353553 -0.353554 0.353553 +v -0.353553 -0.353554 0.353553 +v -0.500000 -0.000002 0.500000 +v 0.415735 -0.277786 0.415735 +v -0.277785 0.415735 0.277785 +v 0.277785 0.415735 0.277785 +v -0.415735 -0.277785 0.415735 +v 0.353554 0.353553 0.353554 +v -0.500000 -0.000002 -0.499983 +v 0.461940 -0.191342 0.461940 +v -0.461940 -0.191342 0.461940 +v -0.353553 0.353553 0.353554 +v 0.490393 -0.097546 0.490393 +v 0.500000 -0.000002 -0.500000 +v 0.490393 0.097545 -0.490392 +v 0.490393 0.097545 0.490393 +v -0.490393 -0.097546 0.490393 +v 0.490393 -0.097545 -0.490393 +v 0.461940 0.191341 0.461940 +v -0.461940 0.191341 0.461940 +v 0.461940 0.191342 -0.461940 +v -0.490393 0.097545 0.490393 +v 0.415735 0.277785 0.415735 +v -0.490393 0.097545 -0.490392 +v -0.415735 0.277785 0.415735 +v 0.461940 -0.191341 -0.461940 +v 0.415735 0.277785 -0.415735 +v -0.461940 0.191341 -0.461940 +v -0.415735 0.277785 -0.415735 +v 0.415735 -0.277785 -0.415735 +v -0.490393 -0.097546 -0.490392 +v 0.353553 0.353553 -0.353553 +v -0.213679 0.450000 0.213680 +v -0.353553 0.353553 -0.353553 +v 0.277785 0.415735 -0.277785 +v -0.461940 -0.191342 -0.461939 +v 0.353554 -0.353553 -0.353554 +v -0.277785 0.415735 -0.277785 +v -0.415735 -0.277785 -0.415734 +v 0.277786 -0.415735 -0.277785 +v -0.353553 -0.353554 -0.353553 +v -0.277785 -0.415735 -0.277784 +vt 0.038487 0.679029 +vt 0.010047 0.589789 +vt 0.990397 0.589790 +vt 0.915772 0.767073 +vt 0.084671 0.767071 +vt 0.961957 0.679029 +vt 0.852473 0.146294 +vt 0.914576 0.232749 +vt 0.084146 0.232744 +vt 0.712776 0.000003 +vt 0.221926 0.061588 +vt 0.285951 0.000000 +vt 0.285945 0.999818 +vt 0.221920 0.938229 +vt 0.712771 0.999818 +vt 0.009578 0.589789 +vt 0.989138 0.589792 +vt 0.960721 0.679031 +vt 0.286638 0.000000 +vt 0.777884 0.061589 +vt 0.222561 0.061589 +vt 0.777608 0.938229 +vt 0.222164 0.938229 +vt 0.146413 0.853527 +vt 0.286255 0.999818 +vt 0.713517 0.999818 +vt 0.776800 0.061592 +vt 0.146251 0.146290 +vt 0.000000 0.499907 +vt 0.989139 0.410032 +vt 0.998734 0.499910 +vt 0.853618 0.146291 +vt 0.915772 0.232746 +vt 0.146826 0.146290 +vt 0.961957 0.320789 +vt 0.084672 0.232745 +vt 0.990397 0.410029 +vt 0.038487 0.320789 +vt 0.776796 0.938230 +vt 0.777790 0.938229 +vt 0.146467 0.853526 +vt 0.853556 0.853527 +vt 0.146825 0.853526 +vt 1.000000 0.499907 +vt 0.010047 0.410028 +vt 0.146246 0.853527 +vt 0.222559 0.938228 +vt 0.777882 0.938230 +vt 0.915737 0.767073 +vt 0.084287 0.767072 +vt 0.038083 0.679029 +vt 0.961941 0.679029 +vt 0.037995 0.679029 +vt 0.960723 0.320792 +vt 0.037998 0.320787 +vt 0.009580 0.410028 +vt 0.990167 0.589790 +vt 0.999772 0.499909 +vt 0.961721 0.679029 +vt 0.084246 0.767072 +vt 0.915526 0.767072 +vt 0.853359 0.853527 +vt 0.914573 0.767074 +vt 0.084142 0.767072 +vt 0.852470 0.853528 +vt 0.777609 0.061590 +vt 0.853360 0.146293 +vt 0.222166 0.061589 +vt 0.146414 0.146291 +vt 0.915527 0.232748 +vt 0.084247 0.232746 +vt 0.961721 0.320791 +vt 0.038052 0.320789 +vt 0.990167 0.410031 +vt 0.713686 0.999818 +vt 0.749950 0.250050 +vt 0.749950 0.749950 +vt 0.250050 0.749950 +vt 0.250050 0.250050 +vt 0.713807 0.000000 +vt 0.286258 0.000000 +vt 0.713519 0.000001 +vt 0.250050 0.250050 +vt 0.749950 0.250050 +vt 0.749950 0.749950 +vt 0.286636 0.999817 +vt 0.777791 0.061589 +vt 0.146467 0.146291 +vt 0.084287 0.232745 +vt 0.915737 0.232746 +vt 0.961941 0.320789 +vt 0.000444 0.499907 +vt 0.713687 0.000000 +vt 0.713805 0.999818 +vn -0.620400 0.479600 0.620400 +vn -0.683900 0.254100 0.683900 +vn 0.683900 0.254100 0.683900 +vn 0.531000 0.660300 0.531000 +vn -0.531000 0.660300 0.531000 +vn 0.620400 0.479600 0.620400 +vn -0.429700 -0.794100 0.429700 +vn -0.531000 -0.660300 0.531000 +vn -0.531000 -0.660300 -0.531000 +vn -0.185700 -0.964900 0.185700 +vn -0.325800 -0.887500 -0.325800 +vn -0.185700 -0.964900 -0.185700 +vn -0.185700 0.964900 -0.185700 +vn -0.325800 0.887500 -0.325800 +vn -0.185700 0.964900 0.185700 +vn -0.683900 0.254000 -0.683900 +vn 0.325800 -0.887500 0.325800 +vn -0.325800 -0.887500 0.325800 +vn 0.325800 0.887500 -0.325800 +vn 0.429700 0.794100 -0.429700 +vn 0.185700 0.964900 -0.185700 +vn -0.429700 -0.794100 -0.429700 +vn -0.707100 0.000000 -0.707100 +vn -0.683900 -0.254100 0.683900 +vn -0.707100 0.000000 0.707100 +vn 0.429700 -0.794100 0.429700 +vn 0.531000 -0.660300 0.531000 +vn 0.620400 -0.479600 0.620400 +vn 0.683900 -0.254100 0.683900 +vn -0.620400 -0.479600 0.620400 +vn -0.325800 0.887500 0.325800 +vn 0.185700 0.964900 0.185700 +vn 0.325800 0.887500 0.325800 +vn 0.429700 0.794100 0.429700 +vn -0.429700 0.794100 0.429700 +vn 0.707100 0.000000 0.707100 +vn -0.429700 0.794100 -0.429700 +vn 0.531000 0.660300 -0.531000 +vn 0.683900 0.254100 -0.683900 +vn 0.707100 0.000000 -0.707100 +vn 0.620400 0.479600 -0.620400 +vn -0.620400 0.479600 -0.620400 +vn -0.620400 -0.479600 -0.620400 +vn -0.683900 -0.254000 -0.683900 +vn 0.683900 -0.254100 -0.683900 +vn -0.531000 0.660300 -0.531000 +vn 0.325800 -0.887500 -0.325800 +vn 0.429700 -0.794100 -0.429700 +vn 0.531000 -0.660300 -0.531000 +vn 0.620400 -0.479600 -0.620400 +vn 0.185700 -0.964900 -0.185700 +vn 0.185700 -0.964900 0.185700 +s 1 +f 30/1/1 32/2/2 26/3/3 +f 33/4/4 35/5/5 29/6/6 +f 12/7/7 17/8/8 49/9/9 +f 2/10/10 52/11/11 4/12/12 +f 6/13/13 48/14/14 43/15/15 +f 34/16/16 32/17/2 30/18/1 +f 2/19/10 9/20/17 10/21/18 +f 48/22/14 45/23/19 42/24/20 +f 5/25/21 45/23/19 6/26/13 +f 10/27/18 12/7/7 51/28/22 +f 19/29/23 27/30/24 13/31/25 +f 9/20/17 11/32/26 10/21/18 +f 11/32/26 14/33/27 12/34/7 +f 14/33/27 20/35/28 17/36/8 +f 20/35/28 23/37/29 21/38/30 +f 43/15/15 48/14/14 15/39/31 +f 7/25/32 16/23/33 45/40/19 +f 18/41/34 42/42/20 45/40/19 +f 29/6/6 30/1/1 26/3/3 +f 22/43/35 33/4/4 18/42/34 +f 26/3/3 32/2/2 8/44/36 +f 8/44/36 27/45/24 23/37/29 +f 11/32/26 12/34/7 10/21/18 +f 14/33/27 17/36/8 12/34/7 +f 20/35/28 21/38/30 17/36/8 +f 23/37/29 27/45/24 21/38/30 +f 10/27/18 52/11/11 2/10/10 +f 15/39/31 48/14/14 44/46/37 +f 22/43/35 35/5/5 33/4/4 +f 15/47/31 22/43/35 16/48/33 +f 37/49/38 42/42/20 18/41/34 +f 33/50/4 29/51/6 37/49/38 +f 8/29/36 25/3/39 26/16/3 +f 24/44/40 25/3/39 8/29/36 +f 29/51/6 26/16/3 31/52/41 +f 26/16/3 25/3/39 31/52/41 +f 29/51/6 31/52/41 37/49/38 +f 38/53/42 34/16/16 30/18/1 +f 19/29/23 32/17/2 34/16/16 +f 13/31/25 32/17/2 19/29/23 +f 17/8/8 21/54/30 46/55/43 +f 21/54/30 27/30/24 41/56/44 +f 8/29/36 28/37/45 24/44/40 +f 34/57/16 25/16/39 19/58/23 +f 38/59/42 31/51/41 34/57/16 +f 31/51/41 25/16/39 34/57/16 +f 37/60/38 38/59/42 39/61/46 +f 37/60/38 31/51/41 38/59/42 +f 44/62/37 42/24/20 37/60/38 +f 38/53/42 30/18/1 35/63/5 +f 39/64/46 35/63/5 22/65/35 +f 52/66/11 51/67/22 50/68/47 +f 51/67/22 47/69/48 50/68/47 +f 51/67/22 49/70/9 47/69/48 +f 49/70/9 40/71/49 47/69/48 +f 49/70/9 46/72/43 40/71/49 +f 46/72/43 36/73/50 40/71/49 +f 19/58/23 28/56/45 41/74/44 +f 46/72/43 41/74/44 36/73/50 +f 41/74/44 28/56/45 36/73/50 +f 22/43/35 18/42/34 16/48/33 +f 5/75/21 7/25/32 45/40/19 +f 2/76/10 4/77/12 1/78/51 3/79/52 +f 44/62/37 48/22/14 42/24/20 +f 35/5/5 30/1/1 29/6/6 +f 3/80/52 9/20/17 2/19/10 +f 45/23/19 48/22/14 6/26/13 +f 1/81/51 52/66/11 50/68/47 +f 39/61/46 44/62/37 37/60/38 +f 52/66/11 1/81/51 4/82/12 +f 24/29/40 28/56/45 19/58/23 +f 7/78/32 5/83/21 6/84/13 43/85/15 +f 24/29/40 19/58/23 25/16/39 +f 15/47/31 16/48/33 43/86/15 +f 22/65/35 44/46/37 39/64/46 +f 39/64/46 38/53/42 35/63/5 +f 41/56/44 27/30/24 19/29/23 +f 46/55/43 21/54/30 41/56/44 +f 49/9/9 17/8/8 46/55/43 +f 51/28/22 12/7/7 49/9/9 +f 52/11/11 10/27/18 51/28/22 +f 9/68/17 50/87/47 11/88/26 +f 50/87/47 47/32/48 11/88/26 +f 11/88/26 47/32/48 14/89/27 +f 47/32/48 40/90/49 14/89/27 +f 14/89/27 40/90/49 20/73/28 +f 40/90/49 36/91/50 20/73/28 +f 23/56/29 28/37/45 8/29/36 +f 20/73/28 36/91/50 23/56/29 +f 36/91/50 28/37/45 23/56/29 +f 13/92/25 8/44/36 32/2/2 +f 50/87/47 9/68/17 1/93/51 +f 13/92/25 27/45/24 8/44/36 +f 16/23/33 18/41/34 45/40/19 +f 22/65/35 15/39/31 44/46/37 +f 9/68/17 3/81/52 1/93/51 +f 33/50/4 37/49/38 18/41/34 +f 43/86/15 16/48/33 7/94/32 diff --git a/games/default/files/Nodes/slope/models/slope_test_cone_onetexture.obj b/games/default/files/Nodes/slope/models/slope_test_cone_onetexture.obj new file mode 100644 index 000000000..aed83e017 --- /dev/null +++ b/games/default/files/Nodes/slope/models/slope_test_cone_onetexture.obj @@ -0,0 +1,283 @@ +# Blender v2.73 (sub 0) OBJ File: 'slope_test_cone_onetexture.blend' +# www.blender.org +o Cone_Cone.003 +v 0.000000 -0.500000 -0.500000 +v 0.000000 0.500000 0.000000 +v 0.049009 -0.500000 -0.497592 +v 0.097545 -0.500000 -0.490393 +v 0.145142 -0.500000 -0.478470 +v 0.191342 -0.500000 -0.461940 +v 0.235698 -0.500000 -0.440961 +v 0.277785 -0.500000 -0.415735 +v 0.317197 -0.500000 -0.386505 +v 0.353553 -0.500000 -0.353553 +v 0.386505 -0.500000 -0.317197 +v 0.415735 -0.500000 -0.277785 +v 0.440961 -0.500000 -0.235698 +v 0.461940 -0.500000 -0.191342 +v 0.478470 -0.500000 -0.145142 +v 0.490393 -0.500000 -0.097545 +v 0.497592 -0.500000 -0.049009 +v 0.500000 -0.500000 0.000000 +v 0.497592 -0.500000 0.049009 +v 0.490393 -0.500000 0.097545 +v 0.478470 -0.500000 0.145142 +v 0.461940 -0.500000 0.191342 +v 0.440961 -0.500000 0.235699 +v 0.415735 -0.500000 0.277785 +v 0.386505 -0.500000 0.317197 +v 0.353553 -0.500000 0.353554 +v 0.317196 -0.500000 0.386505 +v 0.277785 -0.500000 0.415735 +v 0.235698 -0.500000 0.440961 +v 0.191341 -0.500000 0.461940 +v 0.145142 -0.500000 0.478470 +v 0.097545 -0.500000 0.490393 +v 0.049008 -0.500000 0.497592 +v -0.000000 -0.500000 0.500000 +v -0.049009 -0.500000 0.497592 +v -0.097546 -0.500000 0.490393 +v -0.145143 -0.500000 0.478470 +v -0.191342 -0.500000 0.461940 +v -0.235699 -0.500000 0.440960 +v -0.277786 -0.500000 0.415735 +v -0.317197 -0.500000 0.386505 +v -0.353554 -0.500000 0.353553 +v -0.386506 -0.500000 0.317196 +v -0.415735 -0.500000 0.277785 +v -0.440961 -0.500000 0.235698 +v -0.461940 -0.500000 0.191342 +v -0.478470 -0.500000 0.145142 +v -0.490393 -0.500000 0.097545 +v -0.497592 -0.500000 0.049009 +v -0.500000 -0.500000 0.000000 +v -0.497592 -0.500000 -0.049008 +v -0.490393 -0.500000 -0.097545 +v -0.478470 -0.500000 -0.145142 +v -0.461940 -0.500000 -0.191341 +v -0.440961 -0.500000 -0.235698 +v -0.415735 -0.500000 -0.277784 +v -0.386506 -0.500000 -0.317196 +v -0.353554 -0.500000 -0.353553 +v -0.317198 -0.500000 -0.386505 +v -0.277786 -0.500000 -0.415734 +v -0.235700 -0.500000 -0.440960 +v -0.191343 -0.500000 -0.461939 +v -0.145144 -0.500000 -0.478470 +v -0.097547 -0.500000 -0.490392 +v -0.049010 -0.500000 -0.497592 +vt 0.637951 0.000000 +vt 0.499999 1.000000 +vt 0.569310 0.000000 +vt 0.499999 0.000000 +vt 0.430691 0.000000 +vt 0.705263 0.000000 +vt 0.770599 0.000000 +vt 0.833328 0.000000 +vt 0.892848 0.000000 +vt 0.948584 0.000000 +vt 1.000000 0.000000 +vt 0.051417 0.000000 +vt 0.000000 0.000000 +vt 0.107153 0.000000 +vt 0.166672 0.000000 +vt 0.229402 0.000000 +vt 0.294738 0.000000 +vt 0.362051 0.000000 +vt 0.637950 0.000000 +vt 0.362050 0.000000 +vt 0.499878 0.000000 +vt 0.548888 0.002396 +vt 0.597426 0.009584 +vt 0.645026 0.021495 +vt 0.691229 0.038014 +vt 0.735591 0.058982 +vt 0.777684 0.084198 +vt 0.817102 0.113418 +vt 0.853467 0.146361 +vt 0.886428 0.182710 +vt 0.915667 0.222114 +vt 0.940903 0.264195 +vt 0.961893 0.308546 +vt 0.978435 0.354742 +vt 0.990369 0.402336 +vt 0.997580 0.450871 +vt 1.000000 0.499879 +vt 0.997604 0.548888 +vt 0.990415 0.597426 +vt 0.978504 0.645026 +vt 0.961984 0.691229 +vt 0.941016 0.735589 +vt 0.915801 0.777681 +vt 0.886581 0.817099 +vt 0.853639 0.853463 +vt 0.817287 0.886426 +vt 0.777883 0.915664 +vt 0.735805 0.940899 +vt 0.691454 0.961888 +vt 0.645258 0.978431 +vt 0.597663 0.990365 +vt 0.549129 0.997576 +vt 0.500123 0.999996 +vt 0.451114 0.997600 +vt 0.402575 0.990412 +vt 0.354972 0.978501 +vt 0.308768 0.961981 +vt 0.264407 0.941013 +vt 0.222315 0.915798 +vt 0.182897 0.886578 +vt 0.146532 0.853635 +vt 0.113572 0.817287 +vt 0.084334 0.777885 +vt 0.059099 0.735806 +vt 0.038109 0.691456 +vt 0.021568 0.645261 +vt 0.009634 0.597670 +vt 0.002422 0.549137 +vt 0.000002 0.500129 +vt 0.002397 0.451121 +vt 0.009584 0.402582 +vt 0.021495 0.354981 +vt 0.038014 0.308776 +vt 0.058982 0.264413 +vt 0.084197 0.222320 +vt 0.113417 0.182901 +vt 0.146358 0.146537 +vt 0.182708 0.113575 +vt 0.222112 0.084335 +vt 0.264193 0.059099 +vt 0.308544 0.038109 +vt 0.354739 0.021566 +vt 0.402334 0.009632 +vt 0.450869 0.002420 +vn -0.167300 -0.514200 -0.841200 +vn 0.000000 1.000000 0.000000 +vn -0.084000 -0.514200 -0.853500 +vn 0.000000 -0.514200 -0.857700 +vn 0.084000 -0.514200 -0.853500 +vn -0.249000 -0.514200 -0.820700 +vn -0.328200 -0.514200 -0.792400 +vn -0.404300 -0.514200 -0.756400 +vn -0.476500 -0.514200 -0.713100 +vn -0.544100 -0.514200 -0.663000 +vn -0.606500 -0.514200 -0.606500 +vn -0.663000 -0.514200 -0.544100 +vn -0.713100 -0.514200 -0.476500 +vn -0.756400 -0.514200 -0.404300 +vn -0.792400 -0.514200 -0.328200 +vn -0.820700 -0.514200 -0.249000 +vn -0.841200 -0.514200 -0.167300 +vn -0.853500 -0.514200 -0.084000 +vn -0.857700 -0.514200 0.000000 +vn -0.853500 -0.514200 0.084000 +vn -0.841200 -0.514200 0.167300 +vn -0.820700 -0.514200 0.249000 +vn -0.792400 -0.514200 0.328200 +vn -0.756400 -0.514200 0.404300 +vn -0.713100 -0.514200 0.476500 +vn -0.663000 -0.514200 0.544100 +vn -0.606500 -0.514200 0.606500 +vn -0.544100 -0.514200 0.663000 +vn -0.476500 -0.514200 0.713100 +vn -0.404300 -0.514200 0.756400 +vn -0.328200 -0.514200 0.792400 +vn -0.249000 -0.514200 0.820700 +vn -0.167300 -0.514200 0.841200 +vn -0.084000 -0.514200 0.853500 +vn 0.000000 -0.514200 0.857700 +vn 0.084000 -0.514200 0.853500 +vn 0.167300 -0.514200 0.841200 +vn 0.249000 -0.514200 0.820700 +vn 0.328200 -0.514200 0.792400 +vn 0.404300 -0.514200 0.756400 +vn 0.476500 -0.514200 0.713100 +vn 0.544100 -0.514200 0.663000 +vn 0.606500 -0.514200 0.606500 +vn 0.663000 -0.514200 0.544100 +vn 0.713100 -0.514200 0.476500 +vn 0.756400 -0.514200 0.404300 +vn 0.792400 -0.514200 0.328200 +vn 0.820700 -0.514200 0.249000 +vn 0.841200 -0.514200 0.167300 +vn 0.853500 -0.514200 0.084000 +vn 0.857700 -0.514200 0.000000 +vn 0.853500 -0.514200 -0.084000 +vn 0.841200 -0.514200 -0.167300 +vn 0.820700 -0.514200 -0.249000 +vn 0.792400 -0.514200 -0.328200 +vn 0.756400 -0.514200 -0.404300 +vn 0.713100 -0.514200 -0.476500 +vn 0.663000 -0.514200 -0.544100 +vn 0.606500 -0.514200 -0.606500 +vn 0.544100 -0.514200 -0.663000 +vn 0.476500 -0.514200 -0.713100 +vn 0.404300 -0.514200 -0.756400 +vn 0.328200 -0.514200 -0.792400 +vn 0.249000 -0.514200 -0.820700 +vn 0.167300 -0.514200 -0.841200 +s 1 +f 64/1/1 2/2/2 65/3/3 +f 1/4/4 2/2/2 3/5/5 +f 63/6/6 2/2/2 64/1/1 +f 62/7/7 2/2/2 63/6/6 +f 61/8/8 2/2/2 62/7/7 +f 60/9/9 2/2/2 61/8/8 +f 59/10/10 2/2/2 60/9/9 +f 58/11/11 2/2/2 59/10/10 +f 57/12/12 2/2/2 58/13/11 +f 56/14/13 2/2/2 57/12/12 +f 55/15/14 2/2/2 56/14/13 +f 54/16/15 2/2/2 55/15/14 +f 53/17/16 2/2/2 54/16/15 +f 52/18/17 2/2/2 53/17/16 +f 51/5/18 2/2/2 52/18/17 +f 50/4/19 2/2/2 51/5/18 +f 49/3/20 2/2/2 50/4/19 +f 48/19/21 2/2/2 49/3/20 +f 47/6/22 2/2/2 48/19/21 +f 46/7/23 2/2/2 47/6/22 +f 45/8/24 2/2/2 46/7/23 +f 44/9/25 2/2/2 45/8/24 +f 43/10/26 2/2/2 44/9/25 +f 42/11/27 2/2/2 43/10/26 +f 41/12/28 2/2/2 42/13/27 +f 40/14/29 2/2/2 41/12/28 +f 39/15/30 2/2/2 40/14/29 +f 38/16/31 2/2/2 39/15/30 +f 37/17/32 2/2/2 38/16/31 +f 36/20/33 2/2/2 37/17/32 +f 35/5/34 2/2/2 36/20/33 +f 34/4/35 2/2/2 35/5/34 +f 33/3/36 2/2/2 34/4/35 +f 32/19/37 2/2/2 33/3/36 +f 31/6/38 2/2/2 32/19/37 +f 30/7/39 2/2/2 31/6/38 +f 29/8/40 2/2/2 30/7/39 +f 28/9/41 2/2/2 29/8/40 +f 27/10/42 2/2/2 28/9/41 +f 26/11/43 2/2/2 27/10/42 +f 25/12/44 2/2/2 26/13/43 +f 24/14/45 2/2/2 25/12/44 +f 23/15/46 2/2/2 24/14/45 +f 22/16/47 2/2/2 23/15/46 +f 21/17/48 2/2/2 22/16/47 +f 20/18/49 2/2/2 21/17/48 +f 19/5/50 2/2/2 20/18/49 +f 18/4/51 2/2/2 19/5/50 +f 17/3/52 2/2/2 18/4/51 +f 16/19/53 2/2/2 17/3/52 +f 15/6/54 2/2/2 16/19/53 +f 14/7/55 2/2/2 15/6/54 +f 13/8/56 2/2/2 14/7/55 +f 12/9/57 2/2/2 13/8/56 +f 11/10/58 2/2/2 12/9/57 +f 10/11/59 2/2/2 11/10/58 +f 9/12/60 2/2/2 10/13/59 +f 8/14/61 2/2/2 9/12/60 +f 7/15/62 2/2/2 8/14/61 +f 6/16/63 2/2/2 7/15/62 +f 5/17/64 2/2/2 6/16/63 +f 4/20/65 2/2/2 5/17/64 +f 65/3/3 2/2/2 1/4/4 +f 3/5/5 2/2/2 4/20/65 +f 1/21/4 3/22/5 4/23/65 5/24/64 6/25/63 7/26/62 8/27/61 9/28/60 10/29/59 11/30/58 12/31/57 13/32/56 14/33/55 15/34/54 16/35/53 17/36/52 18/37/51 19/38/50 20/39/49 21/40/48 22/41/47 23/42/46 24/43/45 25/44/44 26/45/43 27/46/42 28/47/41 29/48/40 30/49/39 31/50/38 32/51/37 33/52/36 34/53/35 35/54/34 36/55/33 37/56/32 38/57/31 39/58/30 40/59/29 41/60/28 42/61/27 43/62/26 44/63/25 45/64/24 46/65/23 47/66/22 48/67/21 49/68/20 50/69/19 51/70/18 52/71/17 53/72/16 54/73/15 55/74/14 56/75/13 57/76/12 58/77/11 59/78/10 60/79/9 61/80/8 62/81/7 63/82/6 64/83/1 65/84/3 diff --git a/games/default/files/Nodes/slope/models/slope_test_corner_pyramid_short_1_onetexture.obj b/games/default/files/Nodes/slope/models/slope_test_corner_pyramid_short_1_onetexture.obj new file mode 100644 index 000000000..e3828e500 --- /dev/null +++ b/games/default/files/Nodes/slope/models/slope_test_corner_pyramid_short_1_onetexture.obj @@ -0,0 +1,22 @@ +# Blender v2.73 (sub 0) OBJ File: 'slope_test_corner_pyramid_short_1_onetexture.blend' +# www.blender.org +o Cube +v -0.500000 -0.500000 0.500000 +v 0.500000 -0.500000 -0.500000 +v 0.500000 -0.500000 0.500000 +v 0.500000 0.000000 0.500000 +vt 1.000000 0.500000 +vt 0.000000 0.000000 +vt 1.000000 0.000000 +vt 0.000000 0.500000 +vt 0.000000 1.000000 +vt 0.500000 1.000000 +vn 0.000000 0.000000 1.000000 +vn 1.000000 0.000000 0.000000 +vn 0.000000 -1.000000 0.000000 +vn -0.408200 0.816500 -0.408200 +s off +f 4/1/1 1/2/1 3/3/1 +f 2/3/2 4/4/2 3/2/2 +f 3/2/3 1/3/3 2/5/3 +f 1/3/4 4/6/4 2/2/4 diff --git a/games/default/files/Nodes/slope/models/slope_test_corner_pyramid_short_2_onetexture.obj b/games/default/files/Nodes/slope/models/slope_test_corner_pyramid_short_2_onetexture.obj new file mode 100644 index 000000000..68bdc443e --- /dev/null +++ b/games/default/files/Nodes/slope/models/slope_test_corner_pyramid_short_2_onetexture.obj @@ -0,0 +1,26 @@ +# Blender v2.73 (sub 0) OBJ File: 'slope_test_corner_pyramid_short_2_onetexture.blend' +# www.blender.org +o Cube_Cube.002 +v -0.500000 -0.000000 0.500000 +v -0.500000 -0.500000 0.500000 +v 0.500000 -0.500000 0.500000 +v 0.500000 0.500000 0.500000 +v 0.500000 -0.500000 -0.500000 +v 0.500000 -0.000000 -0.500000 +vt 0.000000 0.500000 +vt 0.000000 0.000000 +vt 1.000000 0.000000 +vt 1.000000 1.000000 +vt 0.000000 1.000000 +vt 1.000000 0.500000 +vn 0.000000 -0.000000 1.000000 +vn 1.000000 -0.000000 -0.000000 +vn -0.000000 -1.000000 0.000000 +vn -0.408200 0.816500 -0.408200 +vn -0.707100 0.000000 -0.707100 +s off +f 1/1/1 2/2/1 3/3/1 4/4/1 +f 4/5/2 3/2/2 5/3/2 6/6/2 +f 2/5/3 5/3/3 3/4/3 +f 1/2/4 4/3/4 6/4/4 +f 2/3/5 1/6/5 6/1/5 5/2/5 diff --git a/games/default/files/Nodes/slope/models/slope_test_corner_pyramid_tall_1_onetexture.obj b/games/default/files/Nodes/slope/models/slope_test_corner_pyramid_tall_1_onetexture.obj new file mode 100644 index 000000000..a4a414059 --- /dev/null +++ b/games/default/files/Nodes/slope/models/slope_test_corner_pyramid_tall_1_onetexture.obj @@ -0,0 +1,21 @@ +# Blender v2.73 (sub 0) OBJ File: 'slope_test_corner_pyramid_tall_1_onetexture.blend' +# www.blender.org +o Cube +v -0.500000 -0.500000 0.500000 +v 0.500000 -0.500000 -0.500000 +v 0.500000 -0.500000 0.500000 +v 0.500000 0.500000 0.500000 +vt 1.000000 1.000000 +vt 0.000000 0.000000 +vt 1.000000 0.000000 +vt 0.000000 1.000000 +vt 0.500000 1.000000 +vn 0.000000 0.000000 1.000000 +vn 1.000000 0.000000 0.000000 +vn 0.000000 -1.000000 0.000000 +vn -0.577400 0.577400 -0.577400 +s off +f 4/1/1 1/2/1 3/3/1 +f 2/3/2 4/4/2 3/2/2 +f 3/2/3 1/3/3 2/4/3 +f 1/3/4 4/5/4 2/2/4 diff --git a/games/default/files/Nodes/slope/models/slope_test_corner_pyramid_tall_2_onetexture.obj b/games/default/files/Nodes/slope/models/slope_test_corner_pyramid_tall_2_onetexture.obj new file mode 100644 index 000000000..d5b03b1ba --- /dev/null +++ b/games/default/files/Nodes/slope/models/slope_test_corner_pyramid_tall_2_onetexture.obj @@ -0,0 +1,32 @@ +# Blender v2.73 (sub 0) OBJ File: 'slope_test_corner_pyramid_tall_2_onetexture.blend' +# www.blender.org +o Cube_Cube.002 +v -0.500000 -0.000000 0.500000 +v -0.500000 -0.500000 0.500000 +v 0.500000 -0.500000 0.500000 +v 0.500000 0.500000 0.500000 +v 0.500000 -0.500000 -0.500000 +v 0.500000 -0.000000 -0.500000 +v -0.500000 -0.500000 -0.500000 +v -0.500000 -0.000000 -0.500000 +vt 0.000000 0.500000 +vt 0.000000 0.000000 +vt 1.000000 0.000000 +vt 1.000000 1.000000 +vt 0.000000 1.000000 +vt 1.000000 0.500000 +vn 0.000000 -0.000000 1.000000 +vn 1.000000 -0.000000 -0.000000 +vn 0.000000 0.894400 -0.447200 +vn -1.000000 0.000000 0.000000 +vn -0.447200 0.894400 0.000000 +vn 0.000000 0.000000 -1.000000 +vn -0.000000 -1.000000 -0.000000 +s off +f 1/1/1 2/2/1 3/3/1 4/4/1 +f 4/5/2 3/2/2 5/3/2 6/6/2 +f 8/3/3 4/5/3 6/2/3 +f 1/6/4 8/1/4 7/2/4 2/3/4 +f 4/5/5 8/3/5 1/4/5 +f 6/1/6 5/2/6 7/3/6 8/6/6 +f 5/5/7 3/2/7 2/3/7 7/4/7 diff --git a/games/default/files/Nodes/slope/models/slope_test_cylinder.obj b/games/default/files/Nodes/slope/models/slope_test_cylinder.obj new file mode 100644 index 000000000..e21e79a19 --- /dev/null +++ b/games/default/files/Nodes/slope/models/slope_test_cylinder.obj @@ -0,0 +1,236 @@ +# Blender v2.69 (sub 0) OBJ File: 'slope_test_cylinder.blend' +# www.blender.org +mtllib slope_test_cylinder.mtl +o Cylinder_Cylinder.001 +v 0.000000 -0.500000 -0.500000 +v 0.000000 0.500000 -0.500000 +v 0.097545 -0.500000 -0.490393 +v 0.097545 0.500000 -0.490393 +v 0.191342 -0.500000 -0.461940 +v 0.191342 0.500000 -0.461940 +v 0.277785 -0.500000 -0.415735 +v 0.277785 0.500000 -0.415735 +v 0.353553 -0.500000 -0.353553 +v 0.353553 0.500000 -0.353553 +v 0.415735 -0.500000 -0.277785 +v 0.415735 0.500000 -0.277785 +v 0.461940 -0.500000 -0.191342 +v 0.461940 0.500000 -0.191342 +v 0.490393 -0.500000 -0.097545 +v 0.490393 0.500000 -0.097545 +v 0.500000 -0.500000 -0.000000 +v 0.500000 0.500000 -0.000000 +v 0.490393 -0.500000 0.097545 +v 0.490393 0.500000 0.097545 +v 0.461940 -0.500000 0.191342 +v 0.461940 0.500000 0.191342 +v 0.415735 -0.500000 0.277785 +v 0.415735 0.500000 0.277785 +v 0.353553 -0.500000 0.353553 +v 0.353553 0.500000 0.353553 +v 0.277785 -0.500000 0.415735 +v 0.277785 0.500000 0.415735 +v 0.191342 -0.500000 0.461940 +v 0.191342 0.500000 0.461940 +v 0.097545 -0.500000 0.490393 +v 0.097545 0.500000 0.490393 +v -0.000000 -0.500000 0.500000 +v -0.000000 0.500000 0.500000 +v -0.097545 -0.500000 0.490393 +v -0.097545 0.500000 0.490393 +v -0.191342 -0.500000 0.461940 +v -0.191342 0.500000 0.461940 +v -0.277785 -0.500000 0.415735 +v -0.277785 0.500000 0.415735 +v -0.353554 -0.500000 0.353553 +v -0.353554 0.500000 0.353553 +v -0.415735 -0.500000 0.277785 +v -0.415735 0.500000 0.277785 +v -0.461940 -0.500000 0.191341 +v -0.461940 0.500000 0.191341 +v -0.490393 -0.500000 0.097545 +v -0.490393 0.500000 0.097545 +v -0.500000 -0.500000 -0.000000 +v -0.500000 0.500000 -0.000000 +v -0.490393 -0.500000 -0.097546 +v -0.490393 0.500000 -0.097546 +v -0.461940 -0.500000 -0.191342 +v -0.461940 0.500000 -0.191342 +v -0.415734 -0.500000 -0.277786 +v -0.415734 0.500000 -0.277786 +v -0.353553 -0.500000 -0.353554 +v -0.353553 0.500000 -0.353554 +v -0.277785 -0.500000 -0.415735 +v -0.277785 0.500000 -0.415735 +v -0.191341 -0.500000 -0.461940 +v -0.191341 0.500000 -0.461940 +v -0.097544 -0.500000 -0.490393 +v -0.097544 0.500000 -0.490393 +vt 0.749998 0.500017 +vt 0.749997 0.749983 +vt 0.781246 0.749983 +vt 0.781247 0.500017 +vt 0.812495 0.749984 +vt 0.812496 0.500017 +vt 0.843744 0.749984 +vt 0.843744 0.500017 +vt 0.874993 0.749984 +vt 0.874993 0.500017 +vt 0.906242 0.749984 +vt 0.906242 0.500017 +vt 0.937491 0.749984 +vt 0.937491 0.500017 +vt 0.968740 0.749984 +vt 0.968740 0.500017 +vt 0.999989 0.749984 +vt 0.999989 0.500017 +vt 0.000002 0.500024 +vt 0.000000 0.749972 +vt 0.031247 0.749972 +vt 0.031249 0.500024 +vt 0.062493 0.749972 +vt 0.062495 0.500025 +vt 0.093740 0.749973 +vt 0.093742 0.500025 +vt 0.124986 0.749973 +vt 0.124989 0.500025 +vt 0.156233 0.749973 +vt 0.156235 0.500025 +vt 0.187479 0.749974 +vt 0.187482 0.500025 +vt 0.218726 0.749974 +vt 0.218729 0.500025 +vt 0.249973 0.749975 +vt 0.249976 0.500026 +vt 0.281220 0.749975 +vt 0.281222 0.500026 +vt 0.312467 0.749976 +vt 0.312469 0.500026 +vt 0.343714 0.749976 +vt 0.343716 0.500026 +vt 0.374961 0.749976 +vt 0.374963 0.500026 +vt 0.406208 0.749977 +vt 0.406209 0.500026 +vt 0.437455 0.749977 +vt 0.437457 0.500026 +vt 0.468702 0.749977 +vt 0.468703 0.500026 +vt 0.499950 0.749978 +vt 0.499950 0.500026 +vt 0.500011 0.500018 +vt 0.500011 0.749981 +vt 0.531259 0.749981 +vt 0.531259 0.500018 +vt 0.562507 0.749981 +vt 0.562507 0.500018 +vt 0.593755 0.749982 +vt 0.593756 0.500018 +vt 0.625003 0.749982 +vt 0.625004 0.500018 +vt 0.656252 0.749982 +vt 0.656253 0.500017 +vt 0.687500 0.749983 +vt 0.687501 0.500017 +vt 0.100620 0.752432 +vt 0.125004 0.750032 +vt 0.149386 0.752435 +vt 0.172832 0.759549 +vt 0.194439 0.771100 +vt 0.213378 0.786645 +vt 0.228920 0.805586 +vt 0.240469 0.827194 +vt 0.247579 0.850641 +vt 0.249979 0.875024 +vt 0.247576 0.899407 +vt 0.240462 0.922853 +vt 0.228911 0.944460 +vt 0.213367 0.963399 +vt 0.194426 0.978941 +vt 0.172817 0.990489 +vt 0.149371 0.997600 +vt 0.124987 1.000000 +vt 0.100604 0.997597 +vt 0.077159 0.990483 +vt 0.055551 0.978932 +vt 0.036613 0.963387 +vt 0.021071 0.944447 +vt 0.009522 0.922838 +vt 0.002412 0.899392 +vt 0.000011 0.875009 +vt 0.002415 0.850626 +vt 0.009528 0.827180 +vt 0.021079 0.805572 +vt 0.036624 0.786633 +vt 0.055565 0.771091 +vt 0.077174 0.759543 +vt 0.718750 0.500017 +vt 0.718749 0.749983 +vt 0.124977 0.500000 +vt 0.100598 0.497595 +vt 0.077156 0.490481 +vt 0.055553 0.478929 +vt 0.036619 0.463386 +vt 0.021080 0.444447 +vt 0.009535 0.422840 +vt 0.002427 0.399396 +vt 0.000030 0.375016 +vt 0.002434 0.350637 +vt 0.009549 0.327195 +vt 0.021100 0.305592 +vt 0.036644 0.286658 +vt 0.055583 0.271119 +vt 0.077190 0.259575 +vt 0.100634 0.252467 +vt 0.125014 0.250069 +vt 0.149393 0.252474 +vt 0.172835 0.259589 +vt 0.194438 0.271140 +vt 0.213372 0.286684 +vt 0.228911 0.305624 +vt 0.240455 0.327231 +vt 0.247563 0.350674 +vt 0.249961 0.375054 +vt 0.247556 0.399433 +vt 0.240441 0.422874 +vt 0.228890 0.444477 +vt 0.213346 0.463411 +vt 0.194407 0.478950 +vt 0.172800 0.490495 +vt 0.149357 0.497602 +usemtl None +s 1 +f 1/1 2/2 4/3 3/4 +f 3/4 4/3 6/5 5/6 +f 5/6 6/5 8/7 7/8 +f 7/8 8/7 10/9 9/10 +f 9/10 10/9 12/11 11/12 +f 11/12 12/11 14/13 13/14 +f 13/14 14/13 16/15 15/16 +f 15/16 16/15 18/17 17/18 +f 17/19 18/20 20/21 19/22 +f 19/22 20/21 22/23 21/24 +f 21/24 22/23 24/25 23/26 +f 23/26 24/25 26/27 25/28 +f 25/28 26/27 28/29 27/30 +f 27/30 28/29 30/31 29/32 +f 29/32 30/31 32/33 31/34 +f 31/34 32/33 34/35 33/36 +f 33/36 34/35 36/37 35/38 +f 35/38 36/37 38/39 37/40 +f 37/40 38/39 40/41 39/42 +f 39/42 40/41 42/43 41/44 +f 41/44 42/43 44/45 43/46 +f 43/46 44/45 46/47 45/48 +f 45/48 46/47 48/49 47/50 +f 47/50 48/49 50/51 49/52 +f 49/53 50/54 52/55 51/56 +f 51/56 52/55 54/57 53/58 +f 53/58 54/57 56/59 55/60 +f 55/60 56/59 58/61 57/62 +f 57/62 58/61 60/63 59/64 +f 59/64 60/63 62/65 61/66 +f 4/67 2/68 64/69 62/70 60/71 58/72 56/73 54/74 52/75 50/76 48/77 46/78 44/79 42/80 40/81 38/82 36/83 34/84 32/85 30/86 28/87 26/88 24/89 22/90 20/91 18/92 16/93 14/94 12/95 10/96 8/97 6/98 +f 63/99 64/100 2/2 1/1 +f 61/66 62/65 64/100 63/99 +f 1/101 3/102 5/103 7/104 9/105 11/106 13/107 15/108 17/109 19/110 21/111 23/112 25/113 27/114 29/115 31/116 33/117 35/118 37/119 39/120 41/121 43/122 45/123 47/124 49/125 51/126 53/127 55/128 57/129 59/130 61/131 63/132 diff --git a/games/default/files/Nodes/slope/models/slope_test_cylinder_onetexture.obj b/games/default/files/Nodes/slope/models/slope_test_cylinder_onetexture.obj new file mode 100644 index 000000000..262234709 --- /dev/null +++ b/games/default/files/Nodes/slope/models/slope_test_cylinder_onetexture.obj @@ -0,0 +1,238 @@ +# Blender v2.73 (sub 0) OBJ File: 'slope_test_cylinder_onetexture.blend' +# www.blender.org +o Cylinder_Cylinder.001 +v 0.000000 -0.500000 -0.500000 +v 0.000000 0.500000 -0.500000 +v 0.097545 -0.500000 -0.490393 +v 0.097545 0.500000 -0.490393 +v 0.191342 -0.500000 -0.461940 +v 0.191342 0.500000 -0.461940 +v 0.277785 -0.500000 -0.415735 +v 0.277785 0.500000 -0.415735 +v 0.353553 -0.500000 -0.353554 +v 0.353553 0.500000 -0.353554 +v 0.415735 -0.500000 -0.277785 +v 0.415735 0.500000 -0.277785 +v 0.461940 -0.500000 -0.191342 +v 0.461940 0.500000 -0.191342 +v 0.490393 -0.500000 -0.097545 +v 0.490393 0.500000 -0.097545 +v 0.500000 -0.500000 -0.000000 +v 0.500000 0.500000 -0.000000 +v 0.490393 -0.500000 0.097545 +v 0.490393 0.500000 0.097545 +v 0.461940 -0.500000 0.191341 +v 0.461940 0.500000 0.191341 +v 0.415735 -0.500000 0.277785 +v 0.415735 0.500000 0.277785 +v 0.353553 -0.500000 0.353553 +v 0.353553 0.500000 0.353553 +v 0.277785 -0.500000 0.415735 +v 0.277785 0.500000 0.415735 +v 0.191342 -0.500000 0.461940 +v 0.191342 0.500000 0.461940 +v 0.097545 -0.500000 0.490392 +v 0.097545 0.500000 0.490392 +v -0.000000 -0.500000 0.500000 +v -0.000000 0.500000 0.500000 +v -0.097545 -0.500000 0.490392 +v -0.097545 0.500000 0.490392 +v -0.191342 -0.500000 0.461939 +v -0.191342 0.500000 0.461939 +v -0.277785 -0.500000 0.415734 +v -0.277785 0.500000 0.415734 +v -0.353554 -0.500000 0.353553 +v -0.353554 0.500000 0.353553 +v -0.415735 -0.500000 0.277785 +v -0.415735 0.500000 0.277785 +v -0.461940 -0.500000 0.191341 +v -0.461940 0.500000 0.191341 +v -0.490393 -0.500000 0.097545 +v -0.490393 0.500000 0.097545 +v -0.500000 -0.500000 -0.000001 +v -0.500000 0.500000 -0.000001 +v -0.490393 -0.500000 -0.097546 +v -0.490393 0.500000 -0.097546 +v -0.461940 -0.500000 -0.191342 +v -0.461940 0.500000 -0.191342 +v -0.415734 -0.500000 -0.277786 +v -0.415734 0.500000 -0.277786 +v -0.353553 -0.500000 -0.353554 +v -0.353553 0.500000 -0.353554 +v -0.277785 -0.500000 -0.415735 +v -0.277785 0.500000 -0.415735 +v -0.191341 -0.500000 -0.461940 +v -0.191341 0.500000 -0.461940 +v -0.097544 -0.500000 -0.490393 +v -0.097544 0.500000 -0.490393 +vt 0.499996 0.999997 +vt 0.499995 0.000005 +vt 0.562495 0.000004 +vt 0.562496 0.999997 +vt 0.624995 0.000003 +vt 0.624997 0.999997 +vt 0.687496 0.000002 +vt 0.687497 0.999998 +vt 0.749997 0.000001 +vt 0.749997 0.999998 +vt 0.812497 0.000001 +vt 0.812497 0.999998 +vt 0.874997 -0.000000 +vt 0.874997 0.999998 +vt 0.937498 -0.000000 +vt 0.937498 0.999998 +vt 0.999998 -0.000000 +vt 0.999998 0.999998 +vt 0.000005 0.999997 +vt 0.000001 0.000024 +vt 0.062500 0.000023 +vt 0.062505 0.999996 +vt 0.124999 0.000021 +vt 0.125004 0.999996 +vt 0.187498 0.000020 +vt 0.187503 0.999995 +vt 0.249997 0.000018 +vt 0.250003 0.999994 +vt 0.312497 0.000017 +vt 0.312502 0.999994 +vt 0.374997 0.000015 +vt 0.375002 0.999993 +vt 0.437496 0.000014 +vt 0.437501 0.999993 +vt 0.402487 0.009601 +vt 0.597576 0.009614 +vt 0.691371 0.038072 +vt 0.777811 0.084282 +vt 0.853576 0.146469 +vt 0.915753 0.222242 +vt 0.961953 0.308689 +vt 0.990399 0.402487 +vt 1.000000 0.500033 +vt 0.990386 0.597577 +vt 0.961928 0.691370 +vt 0.915717 0.777811 +vt 0.853531 0.853575 +vt 0.777758 0.915753 +vt 0.691312 0.961952 +vt 0.597514 0.990398 +vt 0.402424 0.990386 +vt 0.308630 0.961928 +vt 0.222188 0.915717 +vt 0.146424 0.853531 +vt 0.084248 0.777759 +vt 0.038049 0.691313 +vt 0.009602 0.597515 +vt 0.000000 0.499970 +vt 0.009614 0.402425 +vt 0.038073 0.308630 +vt 0.084283 0.222189 +vt 0.146470 0.146424 +vt 0.222243 0.084248 +vt 0.308689 0.038048 +vt 0.499927 0.999999 +vt 0.084226 0.777725 +vt 0.000000 0.499927 +vt 0.222277 0.084224 +vt 0.500074 0.000000 +vt 0.915777 0.222279 +vt 1.000000 0.500077 +vt 0.777724 0.915775 +vn 0.000000 -0.685700 -0.727900 +vn 0.000000 0.685700 -0.727900 +vn 0.142000 0.685700 -0.713900 +vn 0.142000 -0.685700 -0.713900 +vn 0.278500 0.685700 -0.672500 +vn 0.278500 -0.685700 -0.672500 +vn 0.404400 0.685700 -0.605200 +vn 0.404400 -0.685700 -0.605200 +vn 0.514700 0.685700 -0.514700 +vn 0.514700 -0.685700 -0.514700 +vn 0.605200 0.685700 -0.404400 +vn 0.605200 -0.685700 -0.404400 +vn 0.672500 0.685700 -0.278500 +vn 0.672500 -0.685700 -0.278500 +vn 0.713900 0.685700 -0.142000 +vn 0.713900 -0.685700 -0.142000 +vn 0.727900 0.685700 0.000000 +vn 0.727900 -0.685700 0.000000 +vn 0.713900 0.685700 0.142000 +vn 0.713900 -0.685700 0.142000 +vn 0.672500 0.685700 0.278500 +vn 0.672500 -0.685700 0.278500 +vn 0.605200 0.685700 0.404400 +vn 0.605200 -0.685700 0.404400 +vn 0.514700 0.685700 0.514700 +vn 0.514700 -0.685700 0.514700 +vn 0.404400 0.685700 0.605200 +vn 0.404400 -0.685700 0.605200 +vn 0.278500 0.685700 0.672500 +vn 0.278500 -0.685700 0.672500 +vn 0.142000 0.685700 0.713900 +vn 0.142000 -0.685700 0.713900 +vn 0.000000 0.685700 0.727900 +vn 0.000000 -0.685700 0.727900 +vn -0.142000 0.685700 0.713900 +vn -0.142000 -0.685700 0.713900 +vn -0.278500 0.685700 0.672500 +vn -0.278500 -0.685700 0.672500 +vn -0.404400 0.685700 0.605200 +vn -0.404400 -0.685700 0.605200 +vn -0.514700 0.685700 0.514700 +vn -0.514700 -0.685700 0.514700 +vn -0.605200 0.685700 0.404400 +vn -0.605200 -0.685700 0.404400 +vn -0.672500 0.685700 0.278500 +vn -0.672500 -0.685700 0.278500 +vn -0.713900 0.685700 0.142000 +vn -0.713900 -0.685700 0.142000 +vn -0.727900 0.685700 0.000000 +vn -0.727900 -0.685700 0.000000 +vn -0.713900 0.685700 -0.142000 +vn -0.713900 -0.685700 -0.142000 +vn -0.672500 0.685700 -0.278500 +vn -0.672500 -0.685700 -0.278500 +vn -0.605200 0.685700 -0.404400 +vn -0.605200 -0.685700 -0.404400 +vn -0.514700 0.685700 -0.514700 +vn -0.514700 -0.685700 -0.514700 +vn -0.404400 0.685700 -0.605200 +vn -0.404400 -0.685700 -0.605200 +vn -0.278500 0.685700 -0.672500 +vn -0.278500 -0.685700 -0.672500 +vn -0.142000 0.685700 -0.713900 +vn -0.142000 -0.685700 -0.713900 +s 1 +f 1/1/1 2/2/2 4/3/3 3/4/4 +f 3/4/4 4/3/3 6/5/5 5/6/6 +f 5/6/6 6/5/5 8/7/7 7/8/8 +f 7/8/8 8/7/7 10/9/9 9/10/10 +f 9/10/10 10/9/9 12/11/11 11/12/12 +f 11/12/12 12/11/11 14/13/13 13/14/14 +f 13/14/14 14/13/13 16/15/15 15/16/16 +f 15/16/16 16/15/15 18/17/17 17/18/18 +f 17/19/18 18/20/17 20/21/19 19/22/20 +f 19/22/20 20/21/19 22/23/21 21/24/22 +f 21/24/22 22/23/21 24/25/23 23/26/24 +f 23/26/24 24/25/23 26/27/25 25/28/26 +f 25/28/26 26/27/25 28/29/27 27/30/28 +f 27/30/28 28/29/27 30/31/29 29/32/30 +f 29/32/30 30/31/29 32/33/31 31/34/32 +f 31/34/32 32/33/31 34/2/33 33/1/34 +f 33/1/34 34/2/33 36/3/35 35/4/36 +f 35/4/36 36/3/35 38/5/37 37/6/38 +f 37/6/38 38/5/37 40/7/39 39/8/40 +f 39/8/40 40/7/39 42/9/41 41/10/42 +f 41/10/42 42/9/41 44/11/43 43/12/44 +f 43/12/44 44/11/43 46/13/45 45/14/46 +f 45/14/46 46/13/45 48/15/47 47/16/48 +f 47/16/48 48/15/47 50/17/49 49/18/50 +f 49/19/50 50/20/49 52/21/51 51/22/52 +f 51/22/52 52/21/51 54/23/53 53/24/54 +f 53/24/54 54/23/53 56/25/55 55/26/56 +f 55/26/56 56/25/55 58/27/57 57/28/58 +f 57/28/58 58/27/57 60/29/59 59/30/60 +f 59/30/60 60/29/59 62/31/61 61/32/62 +f 4/35/3 2/2/2 64/36/63 62/37/61 60/38/59 58/39/57 56/40/55 54/41/53 52/42/51 50/43/49 48/44/47 46/45/45 44/46/43 42/47/41 40/48/39 38/49/37 36/50/35 34/1/33 32/51/31 30/52/29 28/53/27 26/54/25 24/55/23 22/56/21 20/57/19 18/58/17 16/59/15 14/60/13 12/61/11 10/62/9 8/63/7 6/64/5 +f 63/34/64 64/33/63 2/2/2 1/1/1 +f 61/32/62 62/31/61 64/33/63 63/34/64 +f 1/65/1 3/51/4 5/52/6 7/53/8 9/54/10 11/66/12 13/56/14 15/57/16 17/67/18 19/59/20 21/60/22 23/61/24 25/62/26 27/68/28 29/64/30 31/35/32 33/69/34 35/36/36 37/37/38 39/38/40 41/39/42 43/70/44 45/41/46 47/42/48 49/71/50 51/44/52 53/45/54 55/46/56 57/47/58 59/72/60 61/49/62 63/50/64 diff --git a/games/default/files/Nodes/slope/models/slope_test_icorner.obj b/games/default/files/Nodes/slope/models/slope_test_icorner.obj new file mode 100644 index 000000000..8cf7cd3db --- /dev/null +++ b/games/default/files/Nodes/slope/models/slope_test_icorner.obj @@ -0,0 +1,48 @@ +# Blender v2.69 (sub 0) OBJ File: 'slope_test_icorner.blend' +# www.blender.org +mtllib slope_test_icorner.mtl +o Cube_Cube.000 +v 0.500000 0.500000 0.500000 +v -0.500000 0.500000 0.500000 +v -0.500000 -0.500000 0.500000 +v 0.500000 -0.500000 0.500000 +v -0.500000 -0.500000 -0.500000 +v 0.500000 0.500000 -0.500000 +v 0.500000 -0.500000 0.500000 +v 0.500000 -0.500000 -0.500000 +v -0.500000 -0.500000 -0.500000 +vt 0.546875 0.984375 +vt 0.296875 0.984375 +vt 0.296875 0.734375 +vt 0.546875 0.734375 +vt 0.828125 0.421875 +vt 0.578125 0.171875 +vt 0.828125 0.171875 +vt 0.546875 0.703125 +vt 0.296875 0.703125 +vt 0.546875 0.328125 +vt 0.578125 0.703125 +vt 0.578125 0.453125 +vt 0.828125 0.453125 +vt 0.828125 0.984375 +vt 0.578125 0.984375 +vt 0.578125 0.734375 +vt 0.828125 0.734375 +vt 0.015625 0.734375 +vt 0.265625 0.734375 +vt 0.265625 0.984375 +vt 0.015625 0.984375 +vt 0.265625 0.703125 +vt 0.015625 0.703125 +vt 0.015625 0.328125 +usemtl None +s off +f 6/1 1/2 7/3 8/4 +f 2/5 5/6 3/7 +f 2/8 1/9 5/10 +f 6/11 8/12 9/13 +f 9/14 8/15 7/16 3/17 +f 3/18 7/19 1/20 2/21 +f 1/22 6/23 9/24 +l 1 4 +l 3 4 diff --git a/games/default/files/Nodes/slope/models/slope_test_icorner_half_short_onetexture.obj b/games/default/files/Nodes/slope/models/slope_test_icorner_half_short_onetexture.obj new file mode 100644 index 000000000..8799020ed --- /dev/null +++ b/games/default/files/Nodes/slope/models/slope_test_icorner_half_short_onetexture.obj @@ -0,0 +1,35 @@ +# Blender v2.73 (sub 0) OBJ File: 'slope_test_icorner_half_short_onetexture.blend' +# www.blender.org +o Cube_Cube.000 +v 0.500000 -0.000000 0.500000 +v -0.500000 -0.000000 0.500000 +v -0.500000 -0.500000 0.500000 +v 0.500000 -0.500000 0.500000 +v -0.500000 -0.500000 -0.500000 +v 0.500000 -0.000000 -0.500000 +v 0.500000 -0.500000 0.500000 +v 0.500000 -0.500000 -0.500000 +v -0.500000 -0.500000 -0.500000 +vt 1.000000 1.000000 +vt 0.000000 1.000000 +vt 0.000000 0.000000 +vt 1.000000 0.000000 +vt 1.000000 0.500000 +vt 0.000000 0.500000 +vn 1.000000 -0.000000 0.000000 +vn -1.000000 0.000000 0.000000 +vn 0.000000 0.894400 -0.447200 +vn 0.000000 -0.000000 -1.000000 +vn -0.000000 -1.000000 -0.000000 +vn -0.000000 -0.000000 1.000000 +vn -0.447200 0.894400 -0.000000 +s off +f 6/1/1 1/2/1 7/3/1 8/4/1 +f 2/5/2 5/3/2 3/4/2 +f 2/1/3 1/2/3 5/4/3 +f 6/6/4 8/3/4 9/4/4 +f 9/2/5 8/3/5 7/4/5 3/1/5 +f 3/3/6 7/4/6 1/5/6 2/6/6 +f 1/2/7 6/3/7 9/4/7 +l 1 4 +l 3 4 diff --git a/games/default/files/Nodes/slope/models/slope_test_icorner_half_tall_onetexture.obj b/games/default/files/Nodes/slope/models/slope_test_icorner_half_tall_onetexture.obj new file mode 100644 index 000000000..66431c54d --- /dev/null +++ b/games/default/files/Nodes/slope/models/slope_test_icorner_half_tall_onetexture.obj @@ -0,0 +1,36 @@ +# Blender v2.73 (sub 0) OBJ File: 'slope_test_icorner_half_tall_onetexture.blend' +# www.blender.org +o Cube_Cube.000 +v 0.500000 0.500000 0.500000 +v -0.500000 0.500000 0.500000 +v -0.500000 -0.500000 0.500000 +v 0.500000 -0.500000 0.500000 +v -0.500000 0.000000 -0.500000 +v 0.500000 0.500000 -0.500000 +v 0.500000 -0.500000 0.500000 +v 0.500000 -0.500000 -0.500000 +v -0.500000 0.000000 -0.500000 +v -0.500000 -0.500000 -0.500000 +vt 1.000000 1.000000 +vt 0.000000 1.000000 +vt 0.000000 0.000000 +vt 1.000000 0.000000 +vt 1.000000 0.500000 +vt 0.000000 0.500000 +vn 1.000000 -0.000000 0.000000 +vn 0.000000 0.894400 -0.447200 +vn -0.000000 -0.000000 1.000000 +vn -0.447200 0.894400 -0.000000 +vn -0.000000 -1.000000 -0.000000 +vn 0.000000 -0.000000 -1.000000 +vn -1.000000 0.000000 0.000000 +s off +f 6/1/1 1/2/1 7/3/1 8/4/1 +f 2/1/2 1/2/2 5/4/2 +f 3/3/3 7/4/3 1/1/3 2/2/3 +f 1/2/4 6/3/4 9/4/4 +f 3/1/5 10/2/5 8/3/5 7/4/5 +f 8/3/6 10/4/6 5/5/6 6/2/6 +f 3/4/7 2/1/7 5/6/7 10/3/7 +l 1 4 +l 3 4 diff --git a/games/default/files/Nodes/slope/models/slope_test_icorner_onetexture.obj b/games/default/files/Nodes/slope/models/slope_test_icorner_onetexture.obj new file mode 100644 index 000000000..49b7d683c --- /dev/null +++ b/games/default/files/Nodes/slope/models/slope_test_icorner_onetexture.obj @@ -0,0 +1,33 @@ +# Blender v2.73 (sub 0) OBJ File: 'slope_test_icorner_onetexture.blend' +# www.blender.org +o Cube_Cube.000 +v 0.500000 0.500000 0.500000 +v -0.500000 0.500000 0.500000 +v -0.500000 -0.500000 0.500000 +v 0.500000 -0.500000 0.500000 +v -0.500000 -0.500000 -0.500000 +v 0.500000 0.500000 -0.500000 +v 0.500000 -0.500000 0.500000 +v 0.500000 -0.500000 -0.500000 +v -0.500000 -0.500000 -0.500000 +vt 1.000000 1.000000 +vt 0.000000 1.000000 +vt 0.000000 0.000000 +vt 1.000000 0.000000 +vn 1.000000 -0.000000 0.000000 +vn -1.000000 0.000000 0.000000 +vn 0.000000 0.707100 -0.707100 +vn 0.000000 -0.000000 -1.000000 +vn -0.000000 -1.000000 -0.000000 +vn -0.000000 -0.000000 1.000000 +vn -0.707100 0.707100 -0.000000 +s off +f 6/1/1 1/2/1 7/3/1 8/4/1 +f 2/1/2 5/3/2 3/4/2 +f 2/1/3 1/2/3 5/4/3 +f 6/2/4 8/3/4 9/4/4 +f 9/1/5 8/2/5 7/3/5 3/4/5 +f 3/3/6 7/4/6 1/1/6 2/2/6 +f 1/1/7 6/2/7 9/3/7 +l 1 4 +l 3 4 diff --git a/games/default/files/Nodes/slope/models/slope_test_ocorner.obj b/games/default/files/Nodes/slope/models/slope_test_ocorner.obj new file mode 100644 index 000000000..6d94562be --- /dev/null +++ b/games/default/files/Nodes/slope/models/slope_test_ocorner.obj @@ -0,0 +1,32 @@ +# Blender v2.69 (sub 0) OBJ File: 'slope_test_ocorner.blend' +# www.blender.org +mtllib slope_test_ocorner.mtl +o Cube_Cube.002 +v 0.500000 0.500000 0.500000 +v -0.500000 -0.500000 0.500000 +v 0.500000 -0.500000 0.500000 +v -0.500000 -0.500000 -0.500000 +v 0.500000 -0.500000 -0.500000 +vt 0.578125 0.734375 +vt 0.828125 0.734375 +vt 0.828125 0.984375 +vt 0.578125 0.984375 +vt 0.296875 0.703125 +vt 0.296875 0.453125 +vt 0.546875 0.453125 +vt 0.546875 0.984375 +vt 0.296875 0.734375 +vt 0.546875 0.734375 +vt 0.265625 0.578125 +vt 0.015625 0.203125 +vt 0.265625 0.203125 +vt 0.015625 0.984375 +vt 0.015625 0.609375 +vt 0.265625 0.609375 +usemtl None +s off +f 3/1 2/2 4/3 5/4 +f 1/5 3/6 5/7 +f 1/8 2/9 3/10 +f 1/11 4/12 2/13 +f 1/14 5/15 4/16 diff --git a/games/default/files/Nodes/slope/models/slope_test_ocorner_onetexture.obj b/games/default/files/Nodes/slope/models/slope_test_ocorner_onetexture.obj new file mode 100644 index 000000000..231d7056b --- /dev/null +++ b/games/default/files/Nodes/slope/models/slope_test_ocorner_onetexture.obj @@ -0,0 +1,23 @@ +# Blender v2.73 (sub 0) OBJ File: 'slope_test_ocorner_onetexture.blend' +# www.blender.org +o Cube_Cube.002 +v 0.500000 0.500000 0.500000 +v -0.500000 -0.500000 0.500000 +v 0.500000 -0.500000 0.500000 +v -0.500000 -0.500000 -0.500000 +v 0.500000 -0.500000 -0.500000 +vt 1.000000 1.000000 +vt 0.000000 1.000000 +vt 0.000000 0.000000 +vt 1.000000 0.000000 +vn 0.000000 -1.000000 -0.000000 +vn 1.000000 0.000000 0.000000 +vn 0.000000 -0.000000 1.000000 +vn -0.707100 0.707100 0.000000 +vn 0.000000 0.707100 -0.707100 +s off +f 3/1/1 2/2/1 4/3/1 5/4/1 +f 1/2/2 3/3/2 5/4/2 +f 1/1/3 2/3/3 3/4/3 +f 1/1/4 4/3/4 2/4/4 +f 1/2/5 5/3/5 4/4/5 diff --git a/games/default/files/Nodes/slope/models/slope_test_ocorner_short_onetexture.obj b/games/default/files/Nodes/slope/models/slope_test_ocorner_short_onetexture.obj new file mode 100644 index 000000000..69a4cef2f --- /dev/null +++ b/games/default/files/Nodes/slope/models/slope_test_ocorner_short_onetexture.obj @@ -0,0 +1,25 @@ +# Blender v2.73 (sub 0) OBJ File: 'slope_test_ocorner_short_onetexture.blend' +# www.blender.org +o Cube +v -0.500000 -0.500000 0.500000 +v -0.500000 -0.500000 -0.500000 +v 0.500000 -0.500000 -0.500000 +v 0.500000 -0.500000 0.500000 +v 0.500000 0.000000 0.500000 +vt 1.000000 1.000000 +vt 0.000000 1.000000 +vt 0.000000 0.000000 +vt 1.000000 0.000000 +vt 1.000000 0.500000 +vt 0.000000 0.500000 +vn 0.000000 -1.000000 0.000000 +vn 0.000000 0.000000 1.000000 +vn 1.000000 0.000000 0.000000 +vn 0.000000 0.894400 -0.447200 +vn -0.447200 0.894400 0.000000 +s off +f 1/1/1 2/2/1 3/3/1 4/4/1 +f 5/5/2 1/3/2 4/4/2 +f 3/4/3 5/6/3 4/3/3 +f 2/4/4 5/2/4 3/3/4 +f 1/4/5 5/1/5 2/3/5 diff --git a/games/default/files/Nodes/slope/models/slope_test_pyramid_onetexture.obj b/games/default/files/Nodes/slope/models/slope_test_pyramid_onetexture.obj new file mode 100644 index 000000000..b305af2f8 --- /dev/null +++ b/games/default/files/Nodes/slope/models/slope_test_pyramid_onetexture.obj @@ -0,0 +1,24 @@ +# Blender v2.73 (sub 0) OBJ File: 'slope_test_pyramid_onetexture.blend' +# www.blender.org +o Cube +v 0.500000 -0.500000 -0.500000 +v 0.500000 -0.500000 0.500000 +v -0.500000 -0.500000 0.500000 +v -0.500000 -0.500000 -0.500000 +v -0.000000 0.500000 -0.000000 +vt 1.000000 1.000000 +vt 0.000000 1.000000 +vt 0.000000 0.000000 +vt 1.000000 0.000000 +vt 0.500000 1.000000 +vn 0.000000 -1.000000 0.000000 +vn -0.894400 0.447200 -0.000000 +vn 0.000000 0.447200 -0.894400 +vn 0.894400 0.447200 0.000000 +vn -0.000000 0.447200 0.894400 +s off +f 1/1/1 2/2/1 3/3/1 4/4/1 +f 3/4/2 5/5/2 4/3/2 +f 5/5/3 1/3/3 4/4/3 +f 1/4/4 5/5/4 2/3/4 +f 2/4/5 5/5/5 3/3/5 diff --git a/games/default/files/Nodes/slope/models/slope_test_pyramid_short_onetexture.obj b/games/default/files/Nodes/slope/models/slope_test_pyramid_short_onetexture.obj new file mode 100644 index 000000000..a618dcf57 --- /dev/null +++ b/games/default/files/Nodes/slope/models/slope_test_pyramid_short_onetexture.obj @@ -0,0 +1,24 @@ +# Blender v2.73 (sub 0) OBJ File: 'slope_test_pyramid_short_onetexture.blend' +# www.blender.org +o Cube +v 0.500000 -0.500000 -0.500000 +v 0.500000 -0.500000 0.500000 +v -0.500000 -0.500000 0.500000 +v -0.500000 -0.500000 -0.500000 +v -0.000000 0.000000 -0.000000 +vt 1.000000 0.500000 +vt 0.000000 0.500000 +vt 0.000000 0.000000 +vt 1.000000 0.000000 +vt 0.500000 0.500000 +vn 0.000000 -1.000000 0.000000 +vn -0.707100 0.707100 -0.000000 +vn 0.000000 0.707100 -0.707100 +vn 0.707100 0.707100 0.000000 +vn -0.000000 0.707100 0.707100 +s off +f 1/1/1 2/2/1 3/3/1 4/4/1 +f 3/4/2 5/5/2 4/3/2 +f 5/5/3 1/3/3 4/4/3 +f 1/4/4 5/5/4 2/3/4 +f 2/4/5 5/5/5 3/3/5 diff --git a/games/default/files/Nodes/slope/models/slope_test_quarter_round.obj b/games/default/files/Nodes/slope/models/slope_test_quarter_round.obj new file mode 100644 index 000000000..f9af8f4e9 --- /dev/null +++ b/games/default/files/Nodes/slope/models/slope_test_quarter_round.obj @@ -0,0 +1,146 @@ +# Blender v2.73 (sub 0) OBJ File: 'slope_test_quarter_round.blend' +# www.blender.org +o Cylinder +v -0.500000 -0.500000 0.500000 +v -0.500000 -0.500000 -0.500000 +v 0.500000 -0.500000 -0.500000 +v 0.500000 -0.500000 0.500000 +v -0.500000 -0.500000 0.500000 +v 0.500000 -0.500000 0.500000 +v -0.500000 0.490393 -0.097545 +v -0.500000 0.490393 -0.097545 +v -0.500000 0.461940 -0.191342 +v -0.500000 0.415735 -0.277785 +v -0.500000 0.353553 -0.353553 +v -0.500000 0.500000 0.500000 +v -0.500000 0.277785 -0.415735 +v -0.500000 0.191342 -0.461940 +v -0.500000 0.097545 -0.490393 +v -0.500000 -0.500000 0.500000 +v -0.500000 -0.500000 -0.500000 +v -0.500000 0.500000 0.500000 +v -0.500000 0.000000 -0.500000 +v -0.500000 0.500000 -0.000000 +v -0.500000 0.000000 0.000000 +v 0.500000 0.500000 0.500000 +v 0.500000 0.500000 0.000000 +v -0.500000 0.500000 -0.000000 +v -0.500000 0.000000 -0.500000 +v 0.500000 0.500000 0.500000 +v -0.500000 0.500000 0.500000 +v 0.500000 -0.500000 -0.500000 +v -0.500000 -0.500000 -0.500000 +v 0.500000 -0.000000 -0.500000 +v 0.500000 0.097545 -0.490393 +v -0.500000 0.097545 -0.490393 +v 0.500000 0.191342 -0.461940 +v -0.500000 0.191342 -0.461940 +v 0.500000 0.277785 -0.415735 +v -0.500000 0.277785 -0.415735 +v 0.500000 0.353553 -0.353553 +v -0.500000 0.353553 -0.353553 +v 0.500000 0.415735 -0.277785 +v -0.500000 0.415735 -0.277785 +v 0.500000 0.461940 -0.191342 +v -0.500000 0.461940 -0.191342 +v 0.500000 0.490393 -0.097545 +v 0.500000 0.490393 -0.097545 +v 0.500000 0.461940 -0.191342 +v 0.500000 0.415735 -0.277785 +v 0.500000 0.353553 -0.353553 +v 0.500000 0.277785 -0.415735 +v 0.500000 0.191342 -0.461940 +v 0.500000 0.097545 -0.490393 +v 0.500000 -0.000000 -0.500000 +v 0.500000 -0.500000 -0.500000 +v 0.500000 -0.500000 0.500000 +v 0.500000 0.500000 0.500000 +v 0.500000 0.500000 0.000000 +v 0.500000 -0.000000 -0.000000 +vt 0.666666 0.333330 +vt 0.666666 0.499994 +vt 0.333332 0.499994 +vt 0.333332 0.333330 +vt 0.666666 0.833334 +vt 0.333333 0.833334 +vt 0.333333 0.790329 +vt 0.666666 0.790329 +vt 0.666666 0.542999 +vt 0.333332 0.542999 +vt 0.333332 0.000000 +vt 0.666665 0.000000 +vt 0.333332 1.000000 +vt 0.666666 1.000000 +vt 0.769551 0.653972 +vt 0.740737 0.638570 +vt 0.715481 0.617843 +vt 0.833332 0.499994 +vt 0.694754 0.592588 +vt 0.679352 0.563774 +vt 0.833332 0.666658 +vt 0.800817 0.663456 +vt 0.669868 0.532509 +vt 0.999998 0.333330 +vt 0.999998 0.666658 +vt 0.666666 0.747118 +vt 0.333333 0.747118 +vt 0.333333 0.705361 +vt 0.666666 0.705361 +vt 0.333333 0.666665 +vt 0.666666 0.666665 +vt 0.305244 0.592588 +vt 0.284517 0.617844 +vt 0.166666 0.499994 +vt 0.320646 0.563774 +vt 0.259261 0.638571 +vt 0.230446 0.653973 +vt 0.166666 0.666659 +vt -0.000000 0.666659 +vt -0.000000 0.333330 +vt 0.333332 0.627968 +vt 0.666666 0.627967 +vt 0.199181 0.663457 +vt 0.330130 0.532509 +vt 0.333332 0.586211 +vt 0.666666 0.586211 +vt 0.999997 -0.000002 +vn -0.000000 0.000000 -1.000000 +vn -0.000000 0.049100 -0.998800 +vn 0.000000 0.998800 -0.049100 +vn 0.000000 0.980800 -0.195100 +vn -0.000000 0.195100 -0.980800 +vn -0.000000 -1.000000 0.000000 +vn 0.000000 1.000000 -0.000000 +vn -1.000000 0.000000 0.000000 +vn 0.000000 0.923900 -0.382700 +vn -0.000000 0.831500 -0.555600 +vn -0.000000 0.707100 -0.707100 +vn 1.000000 -0.000000 -0.000000 +vn -0.000000 0.555600 -0.831500 +vn -0.000000 0.382700 -0.923900 +vn -0.000000 0.000000 1.000000 +s 1 +f 29/1/1 25/2/2 30/3/2 28/4/1 +f 24/5/3 23/6/3 43/7/4 7/8/4 +f 32/9/5 31/10/5 30/3/2 25/2/2 +f 2/1/6 3/4/6 4/11/6 1/12/6 +f 26/13/7 23/6/3 24/5/3 27/14/7 +f 9/15/8 10/16/8 11/17/8 21/18/8 +f 11/17/8 13/19/8 14/20/8 21/18/8 +f 20/21/8 8/22/8 9/15/8 21/18/8 +f 14/20/8 15/23/8 19/2/8 21/18/8 +f 17/1/8 16/24/8 21/18/8 19/2/8 +f 16/24/8 18/25/8 20/21/8 21/18/8 +f 42/26/9 41/27/9 39/28/10 40/29/10 +f 40/29/10 39/28/10 37/30/11 38/31/11 +f 48/32/12 47/33/12 56/34/12 49/35/12 +f 46/36/12 45/37/12 56/34/12 47/33/12 +f 56/34/12 55/38/12 54/39/12 53/40/12 +f 53/40/12 52/4/12 51/3/12 56/34/12 +f 38/31/11 37/30/11 35/41/13 36/42/13 +f 44/43/12 55/38/12 56/34/12 45/37/12 +f 50/44/12 49/35/12 56/34/12 51/3/12 +f 36/42/13 35/41/13 33/45/14 34/46/14 +f 34/46/14 33/45/14 31/10/5 32/9/5 +f 7/8/4 43/7/4 41/27/9 42/26/9 +f 12/1/15 5/12/15 6/47/15 22/24/15 diff --git a/games/default/files/Nodes/slope/models/slope_test_quarter_round_corner.obj b/games/default/files/Nodes/slope/models/slope_test_quarter_round_corner.obj new file mode 100644 index 000000000..5fecd60bc --- /dev/null +++ b/games/default/files/Nodes/slope/models/slope_test_quarter_round_corner.obj @@ -0,0 +1,229 @@ +# Blender v2.73 (sub 0) OBJ File: 'slope_test_quarter_round_corner.blend' +# www.blender.org +o corner1_Cylinder +v 0.415732 0.277783 0.499997 +v 0.461936 0.191340 0.499997 +v 0.415735 0.277783 -0.415732 +v 0.461940 0.191340 -0.461937 +v 0.490389 0.097544 0.499997 +v 0.353551 0.353551 0.499997 +v 0.353555 0.353551 -0.353551 +v 0.499996 -0.000000 0.499997 +v 0.277783 0.415732 0.499997 +v 0.490393 0.097544 -0.490389 +v 0.277787 0.415732 -0.277784 +v 0.191340 0.461936 0.499997 +v 0.415735 0.277783 -0.415732 +v 0.191344 0.461937 -0.191341 +v 0.097544 0.490389 0.499997 +v 0.097547 0.490391 -0.097545 +v -0.000000 0.499996 0.499997 +v -0.499997 -0.499997 0.499997 +v 0.000000 0.499998 0.000000 +v 0.415732 0.277783 0.499997 +v 0.000000 0.499998 0.000000 +v -0.499997 0.499997 -0.000030 +v -0.499997 0.499997 0.499997 +v -0.000000 0.499996 0.499997 +v 0.499997 -0.000000 -0.499996 +v 0.500000 -0.500000 -0.500000 +v 0.499997 -0.499997 0.499997 +v -0.499997 -0.499997 0.499997 +v -0.499997 0.499997 0.499997 +v -0.499997 0.499997 -0.000030 +v -0.499997 0.415735 -0.277785 +v -0.499997 0.461940 -0.191342 +v -0.499997 0.490393 -0.097545 +v -0.500000 -0.500000 -0.500000 +v -0.499998 -0.033351 0.033348 +v -0.499998 0.000014 -0.499999 +v -0.499997 0.353553 -0.353554 +v -0.499998 0.097545 -0.490393 +v -0.499997 0.277785 -0.415735 +v -0.499998 0.191342 -0.461940 +v 0.461936 0.191340 0.499997 +v 0.490389 0.097544 0.499997 +v 0.353551 0.353551 0.499997 +v 0.499996 -0.000000 0.499997 +v 0.277783 0.415732 0.499997 +v 0.191340 0.461936 0.499997 +v -0.499997 -0.499997 0.499997 +v 0.097544 0.490389 0.499997 +v -0.000000 0.499996 0.499997 +v -0.499997 0.499997 0.499997 +v -0.033351 -0.033351 0.499997 +v 0.499997 -0.499997 0.499997 +v -0.500000 -0.500000 -0.500000 +v 0.500000 -0.500000 -0.500000 +v 0.499997 -0.499997 0.499997 +v 0.461940 0.191340 -0.461937 +v 0.353555 0.353551 -0.353551 +v 0.490393 0.097544 -0.490389 +v 0.277787 0.415732 -0.277784 +v 0.191344 0.461937 -0.191341 +v 0.097547 0.490391 -0.097545 +v -0.499997 0.499997 -0.000030 +v -0.499997 0.415735 -0.277785 +v -0.499997 0.461940 -0.191342 +v -0.499997 0.490393 -0.097545 +v -0.500000 -0.500000 -0.500000 +v 0.000000 0.499998 0.000000 +v -0.499998 0.000014 -0.499999 +v -0.499997 0.353553 -0.353554 +v -0.499998 0.097545 -0.490393 +v -0.499997 0.277785 -0.415735 +v -0.499998 0.191342 -0.461940 +v 0.499997 -0.000000 -0.499996 +v 0.500000 -0.500000 -0.500000 +vt 0.666667 0.000000 +vt 1.000000 0.000000 +vt 1.000000 0.333333 +vt 0.666667 0.333333 +vt 0.663187 0.199102 +vt 0.653707 0.230355 +vt 0.488677 0.155488 +vt 0.020902 0.772440 +vt 0.326077 0.772441 +vt 0.305355 0.814256 +vt 0.020902 0.811976 +vt 0.220037 0.933634 +vt 0.187529 0.979095 +vt 0.020900 0.979093 +vt 0.020901 0.933632 +vt 0.350958 0.689785 +vt 0.341476 0.731382 +vt 0.020902 0.731381 +vt 0.020902 0.689784 +vt 0.280104 0.854844 +vt 0.251296 0.895723 +vt 0.020901 0.894563 +vt 0.020901 0.854667 +vt 0.020902 0.645689 +vt 0.354160 0.645691 +vt 0.750000 0.916667 +vt 0.750000 0.750000 +vt 0.916667 0.750000 +vt 0.916667 0.916667 +vt 0.666388 0.166600 +vt 0.666388 0.000001 +vt 0.333190 0.000001 +vt 0.532291 0.329998 +vt 0.499789 0.333199 +vt 0.563544 0.320518 +vt 0.592347 0.305122 +vt 0.617593 0.284404 +vt 0.638311 0.259158 +vt 0.333190 0.333200 +vt 0.687567 0.645691 +vt 0.354234 0.479024 +vt 0.687567 0.479024 +vt 0.687418 0.731380 +vt 0.366843 0.731382 +vt 0.357360 0.689785 +vt 0.687418 0.689783 +vt 0.382241 0.772441 +vt 0.687418 0.772439 +vt 0.687419 0.894564 +vt 0.457022 0.895723 +vt 0.428214 0.854844 +vt 0.687418 0.854666 +vt 0.687419 0.933633 +vt 0.488281 0.933634 +vt 0.687418 0.811975 +vt 0.402963 0.814255 +vt 0.687318 0.979082 +vt 0.520790 0.979095 +vt 0.687417 0.645695 +vt 0.020900 0.479024 +vt 0.000000 0.000000 +vt 0.177707 0.155483 +vt 0.000000 0.166600 +vt 0.166585 0.333190 +vt 0.134094 0.329990 +vt 0.102842 0.320510 +vt 0.074039 0.305115 +vt 0.048794 0.284396 +vt 0.028076 0.259151 +vt 0.012681 0.230349 +vt 0.003201 0.199096 +vn -0.000000 -1.000000 0.000000 +vn 0.000000 -0.000000 1.000000 +vn 0.831500 0.555600 0.000000 +vn 0.849300 0.528000 0.000000 +vn 0.734500 0.678600 0.000000 +vn 0.707100 0.707100 0.000000 +vn 0.242700 0.970100 0.000000 +vn 0.098000 0.995200 0.000000 +vn 0.195100 0.980800 0.000000 +vn 0.983200 0.182600 0.000000 +vn 0.932700 0.360500 0.000000 +vn 0.923900 0.382700 0.000000 +vn 0.980800 0.195100 0.000000 +vn 0.591700 0.806100 0.000000 +vn 0.425800 0.904800 0.000000 +vn 0.382700 0.923900 0.000000 +vn 0.555600 0.831500 0.000000 +vn 0.998800 0.049100 0.000000 +vn 0.998900 0.047500 0.000000 +vn -0.000000 1.000000 0.000000 +vn 0.000000 0.049100 -0.998800 +vn 0.000000 0.047500 -0.998900 +vn 0.000000 0.000000 -1.000000 +vn 0.000000 0.382700 -0.923900 +vn 0.000000 0.360500 -0.932700 +vn 0.000000 0.182700 -0.983200 +vn 0.000000 0.195100 -0.980800 +vn 0.000000 0.528000 -0.849300 +vn 0.000000 0.555600 -0.831500 +vn 0.000000 0.923900 -0.382700 +vn 0.000000 0.904800 -0.425800 +vn 0.000000 0.806100 -0.591700 +vn 0.000000 0.831500 -0.555600 +vn 0.000000 0.980800 -0.195100 +vn 0.000000 0.970100 -0.242600 +vn 0.000000 0.707100 -0.707100 +vn 0.000000 0.678600 -0.734500 +vn 0.000000 0.995200 -0.098000 +vn 1.000000 0.000000 0.000000 +vn -1.000000 0.000000 0.000000 +s 1 +f 55/1/1 18/2/1 53/3/1 54/4/1 +f 42/5/2 41/6/2 51/7/2 +f 1/8/3 3/9/4 7/10/5 6/11/6 +f 16/12/7 19/13/8 17/14/8 15/15/9 +f 10/16/10 4/17/11 2/18/12 5/19/13 +f 11/20/14 14/21/15 12/22/16 9/23/17 +f 9/23/17 6/11/6 7/10/5 11/20/14 +f 4/17/11 3/9/4 1/8/3 2/18/12 +f 10/16/10 5/19/13 8/24/18 25/25/19 +f 24/26/20 21/27/20 22/28/20 23/29/20 +f 44/30/2 42/5/2 51/7/2 +f 52/31/2 44/30/2 51/7/2 47/32/2 +f 48/33/2 49/34/2 51/7/2 +f 46/35/2 48/33/2 51/7/2 +f 45/36/2 46/35/2 51/7/2 +f 43/37/2 45/36/2 51/7/2 +f 20/38/2 43/37/2 51/7/2 +f 50/39/2 47/32/2 51/7/2 49/34/2 +f 41/6/2 20/38/2 51/7/2 +f 68/40/21 73/25/22 74/41/23 66/42/23 +f 72/43/24 56/44/25 58/45/26 70/46/27 +f 13/47/28 56/44/25 72/43/24 71/48/29 +f 64/49/30 60/50/31 59/51/32 63/52/33 +f 65/53/34 61/54/35 60/50/31 64/49/30 +f 69/55/36 57/56/37 13/47/28 71/48/29 +f 12/22/16 14/21/15 16/12/7 15/15/9 +f 65/53/34 62/57/38 67/58/38 61/54/35 +f 63/52/33 59/51/32 57/56/37 69/55/36 +f 70/46/27 58/45/26 73/25/22 68/59/21 +f 8/24/18 27/60/39 26/41/39 25/25/19 +f 34/61/40 28/32/40 35/62/40 36/63/40 +f 30/64/40 33/65/40 35/62/40 +f 33/65/40 32/66/40 35/62/40 +f 32/66/40 31/67/40 35/62/40 +f 31/67/40 37/68/40 35/62/40 +f 37/68/40 39/69/40 35/62/40 +f 39/69/40 40/70/40 35/62/40 +f 40/70/40 38/71/40 35/62/40 +f 38/71/40 36/63/40 35/62/40 +f 29/39/40 30/64/40 35/62/40 28/32/40 diff --git a/games/default/files/Nodes/slope/models/slope_test_quarter_round_corner_onetexture.obj b/games/default/files/Nodes/slope/models/slope_test_quarter_round_corner_onetexture.obj new file mode 100644 index 000000000..a468ddfa2 --- /dev/null +++ b/games/default/files/Nodes/slope/models/slope_test_quarter_round_corner_onetexture.obj @@ -0,0 +1,207 @@ +# Blender v2.73 (sub 0) OBJ File: 'slope_test_quarter_round_corner_onetexture.blend' +# www.blender.org +o corner1_Cylinder +v 0.415732 0.277783 0.499997 +v 0.461936 0.191340 0.499997 +v 0.415735 0.277783 -0.415732 +v 0.461940 0.191340 -0.461937 +v 0.490389 0.097544 0.499997 +v 0.353551 0.353551 0.499997 +v 0.353555 0.353551 -0.353551 +v 0.499996 -0.000000 0.499997 +v 0.277783 0.415732 0.499997 +v 0.490393 0.097544 -0.490389 +v 0.277787 0.415732 -0.277784 +v 0.191340 0.461936 0.499997 +v 0.191344 0.461937 -0.191341 +v 0.097544 0.490389 0.499997 +v 0.097547 0.490391 -0.097545 +v -0.000000 0.499996 0.499997 +v -0.499997 0.499997 0.499997 +v -0.499997 0.499997 -0.000030 +v -0.499997 0.415735 -0.277785 +v -0.499997 0.461940 -0.191342 +v -0.499997 0.490393 -0.097545 +v -0.500000 -0.500000 -0.500000 +v -0.499997 -0.499997 0.499997 +v 0.000000 0.499998 0.000000 +v -0.499998 0.000014 -0.499999 +v -0.499997 0.353553 -0.353554 +v -0.499998 0.097545 -0.490393 +v -0.499997 0.277785 -0.415735 +v -0.499998 0.191342 -0.461940 +v 0.499997 -0.000000 -0.499996 +v 0.500000 -0.500000 -0.500000 +v 0.499997 -0.499997 0.499997 +v -0.499997 -0.499997 0.499997 +v -0.499997 0.499997 0.499997 +v -0.499997 0.499997 -0.000030 +v -0.499997 0.415735 -0.277785 +v -0.499997 0.461940 -0.191342 +v -0.499997 0.490393 -0.097545 +v -0.500000 -0.500000 -0.500000 +v -0.499998 0.000014 -0.499999 +v -0.499997 0.353553 -0.353554 +v -0.499998 0.097545 -0.490393 +v -0.499997 0.277785 -0.415735 +v -0.499998 0.191342 -0.461940 +v -0.499998 -0.033351 0.033348 +v -0.500000 -0.500000 -0.500000 +v 0.500000 -0.500000 -0.500000 +v 0.499997 -0.499997 0.499997 +v 0.415732 0.277783 0.499997 +v 0.461936 0.191340 0.499997 +v 0.490389 0.097544 0.499997 +v 0.353551 0.353551 0.499997 +v 0.499996 -0.000000 0.499997 +v 0.277783 0.415732 0.499997 +v 0.191340 0.461936 0.499997 +v -0.499997 -0.499997 0.499997 +v 0.097544 0.490389 0.499997 +v -0.000000 0.499996 0.499997 +v -0.499997 0.499997 0.499997 +v -0.033351 -0.033351 0.499997 +v 0.499997 -0.499997 0.499997 +vt 1.000000 0.500100 +vt 0.990395 0.597625 +vt 0.466756 0.466756 +vt 1.000000 0.000200 +vt 0.000201 0.000201 +vt 0.597626 0.990394 +vt 0.500101 1.000000 +vt 0.691404 0.961947 +vt 0.777830 0.915751 +vt 0.853583 0.853583 +vt 0.915752 0.777829 +vt 0.000201 1.000000 +vt 0.961948 0.691403 +vt -0.000000 0.000000 +vt 1.000000 0.000000 +vt 1.000000 1.000000 +vt -0.000000 1.000000 +vt 0.533443 0.466757 +vt 0.000202 0.500115 +vt 0.402575 0.990397 +vt 0.308797 0.961949 +vt 0.222371 0.915753 +vt 0.146617 0.853584 +vt 0.084449 0.777831 +vt 0.038253 0.691405 +vt 0.009806 0.597626 +vt 0.999996 0.125448 +vt 0.222353 0.125462 +vt 0.146597 0.000612 +vt 0.999995 0.000594 +vt 0.000178 0.874582 +vt 0.915751 0.874577 +vt 0.853580 0.999436 +vt 0.000178 0.999439 +vt 0.999808 0.625427 +vt 0.009599 0.625446 +vt -0.000005 0.500594 +vt 0.999807 0.500594 +vt 0.597441 0.374574 +vt 0.499912 0.499435 +vt 0.000000 0.499434 +vt 0.000000 0.374576 +vt 0.999999 0.375154 +vt 1.000000 0.499969 +vt 0.500093 0.500015 +vt 0.402562 0.375164 +vt 0.999812 0.999983 +vt 0.146415 1.000000 +vt 0.084244 0.875149 +vt 0.999811 0.875131 +vt 0.990396 0.624861 +vt 0.961947 0.749719 +vt 0.000178 0.749724 +vt 0.000178 0.624866 +vt 0.777649 0.124857 +vt 0.691221 0.249715 +vt 0.000001 0.249719 +vt 0.000001 0.124861 +vt 0.308782 0.250314 +vt 0.999998 0.250301 +vt 0.853403 -0.000000 +vt 0.038047 0.750298 +vt 0.999809 0.750280 +vt 0.000177 0.500008 +vt 0.000000 0.500000 +vt 0.500000 1.000000 +vt 0.500000 0.500000 +vn 0.000000 -0.000000 1.000000 +vn -0.000000 -1.000000 0.000000 +vn -1.000000 0.000000 0.000000 +vn 0.000000 0.831500 -0.555600 +vn 0.325800 0.887500 -0.325800 +vn 0.429700 0.794100 -0.429700 +vn 0.000000 0.707100 -0.707100 +vn 0.831500 0.555600 0.000000 +vn 0.531000 0.660300 -0.531000 +vn 0.707100 0.707100 0.000000 +vn 0.000000 0.195100 -0.980800 +vn 0.683900 0.254100 -0.683900 +vn 0.705500 0.067100 -0.705500 +vn 0.000000 0.049100 -0.998800 +vn 0.123100 0.984700 -0.123100 +vn 0.036800 0.998600 -0.036800 +vn 0.049100 0.998800 0.000000 +vn 0.195100 0.980800 0.000000 +vn 0.000000 0.980800 -0.195100 +vn 0.000000 0.998800 -0.049100 +vn 0.000000 0.555600 -0.831500 +vn 0.620400 0.479600 -0.620400 +vn 0.923900 0.382700 0.000000 +vn 0.980800 0.195100 0.000000 +vn 0.223300 0.948800 -0.223200 +vn 0.382700 0.923900 0.000000 +vn 0.555600 0.831500 0.000000 +vn 0.000000 0.923900 -0.382700 +vn 0.000000 0.382700 -0.923900 +vn 0.998800 0.049100 0.000000 +vn 0.707100 0.000000 -0.707100 +vn 0.000000 0.000000 -1.000000 +vn -0.000000 1.000000 0.000000 +vn 1.000000 0.000000 0.000000 +s off +f 53/1/1 51/2/1 60/3/1 +f 61/4/1 53/1/1 60/3/1 56/5/1 +f 57/6/1 58/7/1 60/3/1 +f 55/8/1 57/6/1 60/3/1 +f 54/9/1 55/8/1 60/3/1 +f 52/10/1 54/9/1 60/3/1 +f 49/11/1 52/10/1 60/3/1 +f 59/12/1 56/5/1 60/3/1 58/7/1 +f 50/13/1 49/11/1 60/3/1 +f 48/14/2 23/15/2 46/16/2 47/17/2 +f 39/5/3 33/4/3 45/18/3 40/19/3 +f 35/7/3 38/20/3 45/18/3 +f 38/20/3 37/21/3 45/18/3 +f 37/21/3 36/22/3 45/18/3 +f 36/22/3 41/23/3 45/18/3 +f 41/23/3 43/24/3 45/18/3 +f 43/24/3 44/25/3 45/18/3 +f 44/25/3 42/26/3 45/18/3 +f 42/26/3 40/19/3 45/18/3 +f 34/16/3 35/7/3 45/18/3 33/4/3 +f 51/2/1 50/13/1 60/3/1 +s 1 +f 19/27/4 11/28/5 7/29/6 26/30/7 +f 1/31/8 3/32/9 7/33/6 6/34/10 +f 27/35/11 10/36/12 30/37/13 25/38/14 +f 15/39/15 24/40/16 16/41/17 14/42/18 +f 21/43/19 18/44/20 24/45/16 15/46/15 +f 26/47/7 7/48/6 3/49/9 28/50/21 +f 10/51/12 4/52/22 2/53/23 5/54/24 +f 11/55/5 13/56/25 12/57/26 9/58/27 +f 21/43/19 15/46/15 13/59/25 20/60/28 +f 20/60/28 13/59/25 11/28/5 19/27/4 +f 9/58/27 6/14/10 7/61/6 11/55/5 +f 4/52/22 3/32/9 1/31/8 2/53/23 +f 3/49/9 4/62/22 29/63/29 28/50/21 +f 10/51/12 5/54/24 8/64/30 30/44/13 +f 29/63/29 4/62/22 10/36/12 27/35/11 +f 25/44/14 30/65/13 31/14/31 22/15/32 +f 16/66/17 24/67/16 18/44/20 17/16/33 +f 8/65/30 32/14/34 31/15/31 30/44/13 +f 12/57/26 13/56/25 15/39/15 14/42/18 diff --git a/games/default/files/Nodes/slope/models/slope_test_quarter_round_onetexture.obj b/games/default/files/Nodes/slope/models/slope_test_quarter_round_onetexture.obj new file mode 100644 index 000000000..bb82040fa --- /dev/null +++ b/games/default/files/Nodes/slope/models/slope_test_quarter_round_onetexture.obj @@ -0,0 +1,132 @@ +# Blender v2.73 (sub 0) OBJ File: 'slope_test_quarter_round_onetexture.blend' +# www.blender.org +o Cylinder +v -0.500000 0.490393 -0.097545 +v 0.500000 0.490393 -0.097545 +v -0.500000 0.461940 -0.191342 +v 0.500000 0.461940 -0.191342 +v -0.500000 0.415735 -0.277785 +v 0.500000 0.415735 -0.277785 +v -0.500000 0.353553 -0.353553 +v 0.500000 0.353553 -0.353553 +v -0.500000 0.277785 -0.415735 +v 0.500000 0.277785 -0.415735 +v -0.500000 0.191342 -0.461940 +v 0.500000 0.191342 -0.461940 +v -0.500000 0.097545 -0.490393 +v 0.500000 0.097545 -0.490393 +v 0.500000 -0.000000 -0.500000 +v 0.500000 0.490393 -0.097545 +v -0.500000 -0.500000 0.500000 +v -0.500000 -0.500000 -0.500000 +v 0.500000 -0.500000 -0.500000 +v -0.500000 0.500000 0.500000 +v 0.500000 0.500000 0.500000 +v -0.500000 0.000000 -0.500000 +v -0.500000 0.500000 -0.000000 +v 0.500000 0.500000 0.000000 +v -0.500000 0.490393 -0.097545 +v -0.500000 0.461940 -0.191342 +v -0.500000 0.415735 -0.277785 +v -0.500000 0.353553 -0.353553 +v -0.500000 0.277785 -0.415735 +v -0.500000 0.191342 -0.461940 +v -0.500000 0.097545 -0.490393 +v -0.500000 0.000000 0.000000 +v -0.500000 -0.500000 0.500000 +v -0.500000 -0.500000 -0.500000 +v -0.500000 0.500000 0.500000 +v -0.500000 0.000000 -0.500000 +v -0.500000 0.500000 -0.000000 +v 0.500000 0.461940 -0.191342 +v 0.500000 0.415735 -0.277785 +v 0.500000 0.353553 -0.353553 +v 0.500000 0.277785 -0.415735 +v 0.500000 0.191342 -0.461940 +v 0.500000 0.097545 -0.490393 +v 0.500000 -0.000000 -0.500000 +v 0.500000 -0.000000 -0.000000 +v 0.500000 -0.500000 -0.500000 +v 0.500000 -0.500000 0.500000 +v 0.500000 0.500000 0.500000 +v 0.500000 0.500000 0.000000 +v -0.500000 -0.500000 -0.500000 +v 0.500000 -0.500000 -0.500000 +v 0.500000 -0.500000 0.500000 +v -0.500000 -0.500000 0.500000 +v 0.500000 -0.500000 0.500000 +v -0.500000 0.500000 0.500000 +v 0.500000 0.500000 0.500000 +vt 1.000000 0.000000 +vt 1.000000 0.500000 +vt 0.500001 0.500000 +vt 0.500001 1.000000 +vt 0.000003 1.000000 +vt 0.000003 0.000000 +vt 0.597546 0.990393 +vt 0.691342 0.961940 +vt 1.000000 1.000000 +vt 0.990393 0.597545 +vt 0.961940 0.691341 +vt 0.777786 0.915735 +vt 0.853554 0.853553 +vt 0.915735 0.777785 +vt 0.146446 0.853552 +vt 0.084265 0.777783 +vt 0.038060 0.691340 +vt 0.308658 0.961938 +vt 0.222214 0.915733 +vt 0.000000 0.499999 +vt 0.402454 0.990391 +vt 0.009607 0.597544 +vt 1.000000 0.375000 +vt 0.000000 0.375000 +vt 0.000000 0.250000 +vt 1.000000 0.250000 +vt 0.000000 0.125000 +vt 1.000000 0.125000 +vt 0.000000 0.875000 +vt 1.000000 0.875000 +vt 0.000000 0.750000 +vt 1.000000 0.750000 +vt 0.000000 0.625000 +vt 1.000000 0.625000 +vn 1.000000 -0.000000 0.000000 +vn -0.000000 0.000000 1.000000 +vn -0.000000 -1.000000 0.000000 +vn -1.000000 0.000000 0.000000 +vn 0.000000 0.980800 -0.195100 +vn 0.000000 0.923900 -0.382700 +vn -0.000000 0.831500 -0.555600 +vn -0.000000 0.707100 -0.707100 +vn -0.000000 0.555600 -0.831500 +vn -0.000000 0.382700 -0.923900 +vn -0.000000 0.195100 -0.980800 +vn 0.000000 1.000000 -0.000000 +vn 0.000000 0.998800 -0.049100 +vn -0.000000 0.049100 -0.998800 +vn -0.000000 0.000000 -1.000000 +s off +f 46/1/1 44/2/1 45/3/1 49/4/1 48/5/1 47/6/1 +f 16/7/1 49/4/1 45/3/1 38/8/1 +f 55/5/2 53/6/2 54/1/2 56/9/2 +f 43/10/1 42/11/1 45/3/1 44/2/1 +f 39/12/1 38/8/1 45/3/1 40/13/1 +f 41/14/1 40/13/1 45/3/1 42/11/1 +f 50/9/3 51/5/3 52/6/3 17/1/3 +f 28/15/4 29/16/4 30/17/4 32/3/4 +f 26/18/4 27/19/4 28/15/4 32/3/4 +f 35/9/4 37/4/4 32/3/4 36/20/4 34/6/4 33/1/4 +f 37/4/4 25/21/4 26/18/4 32/3/4 +f 30/17/4 31/22/4 36/20/4 32/3/4 +s 1 +f 1/23/5 2/24/5 4/25/6 3/26/6 +f 3/26/6 4/25/6 6/27/7 5/28/7 +f 5/28/7 6/27/7 8/6/8 7/1/8 +f 7/9/8 8/5/8 10/29/9 9/30/9 +f 9/30/9 10/29/9 12/31/10 11/32/10 +f 11/32/10 12/31/10 14/33/11 13/34/11 +f 21/5/12 24/20/13 23/2/13 20/9/12 +f 13/34/11 14/33/11 15/20/14 22/2/14 +f 23/2/13 24/20/13 2/24/5 1/23/5 +f 18/1/15 22/2/14 15/20/14 19/6/15 diff --git a/games/default/files/Nodes/slope/models/slope_test_slope.obj b/games/default/files/Nodes/slope/models/slope_test_slope.obj new file mode 100644 index 000000000..97b8bb121 --- /dev/null +++ b/games/default/files/Nodes/slope/models/slope_test_slope.obj @@ -0,0 +1,35 @@ +# Blender v2.69 (sub 0) OBJ File: 'slope_test_slope.blend' +# www.blender.org +mtllib slope_test_slope.mtl +o Cube_Cube.002 +v 0.500000 0.500000 0.500000 +v -0.500000 0.500000 0.500000 +v -0.500000 -0.500000 0.500000 +v 0.500000 -0.500000 0.500000 +v -0.500000 -0.500000 -0.500000 +v 0.500000 -0.500000 -0.500000 +vt 0.546875 0.984375 +vt 0.296875 0.984375 +vt 0.296875 0.734375 +vt 0.546875 0.734375 +vt 0.578125 0.734375 +vt 0.828125 0.734375 +vt 0.828125 0.984375 +vt 0.578125 0.984375 +vt 0.546875 0.703125 +vt 0.296875 0.453125 +vt 0.546875 0.453125 +vt 0.578125 0.703125 +vt 0.578125 0.453125 +vt 0.828125 0.453125 +vt 0.265625 0.984375 +vt 0.015625 0.984375 +vt 0.015625 0.609375 +vt 0.265625 0.609375 +usemtl None +s off +f 1/1 2/2 3/3 4/4 +f 4/5 3/6 5/7 6/8 +f 2/9 5/10 3/11 +f 1/12 4/13 6/14 +f 2/15 1/16 6/17 5/18 diff --git a/games/default/files/Nodes/slope/models/slope_test_slope_long.obj b/games/default/files/Nodes/slope/models/slope_test_slope_long.obj new file mode 100644 index 000000000..25c11e93d --- /dev/null +++ b/games/default/files/Nodes/slope/models/slope_test_slope_long.obj @@ -0,0 +1,75 @@ +# Blender v2.69 (sub 0) OBJ File: 'slope_test_slope_long.blend' +# www.blender.org +mtllib slope_test_slope_long.mtl +o Cube +v -0.500000 -0.500000 -1.500000 +v 0.500000 -0.500000 -1.500000 +v 0.500000 -0.500000 0.500000 +v -0.500000 -0.500000 0.500000 +v 0.500000 0.500000 0.500000 +v -0.500000 0.500000 0.500000 +v 0.000000 -0.500000 -1.500000 +v -0.500000 -0.500000 -0.500000 +v 0.500000 -0.500000 -0.500000 +v -0.000000 -0.500000 0.500000 +v 0.500000 0.000000 0.500000 +v -0.500000 0.000000 0.500000 +v 0.500000 0.000000 -0.500000 +v -0.000000 0.500000 0.500000 +v -0.500000 0.000000 -0.500000 +v 0.000000 -0.500000 -0.500000 +v 0.000000 0.000000 -0.500000 +v -0.000000 0.000000 0.500000 +vt 0.375000 0.625000 +vt 0.250000 0.625000 +vt 0.250000 0.250000 +vt 0.375000 0.250000 +vt 0.125000 0.625000 +vt 0.125000 1.000000 +vt 0.000000 1.000000 +vt 0.000000 0.625000 +vt 0.625000 0.375000 +vt 0.625000 0.250000 +vt 0.750000 0.250000 +vt 0.750000 0.375000 +vt 1.000000 0.750000 +vt 0.750000 0.875000 +vt 0.750000 0.750000 +vt 0.750000 0.625000 +vt 1.000000 0.625000 +vt 0.500000 0.625000 +vt 0.500000 0.250000 +vt 0.500000 1.000000 +vt 0.375000 1.000000 +vt 0.250000 1.000000 +vt 0.125000 0.250000 +vt 0.000000 0.250000 +vt 0.625000 0.500000 +vt 0.750000 0.500000 +vt 0.500000 0.500000 +vt 0.500000 0.375000 +vt 0.500000 0.875000 +vt 0.500000 0.750000 +vt 1.000000 0.500000 +usemtl Material +s off +f 16/1 9/2 3/3 10/4 +f 17/5 14/6 5/7 13/8 +f 18/9 14/10 6/11 12/12 +f 2/13 13/14 9/15 +f 6/13 15/16 12/17 +f 8/18 16/1 10/4 4/19 +f 1/20 7/21 16/1 8/18 +f 7/21 2/22 9/2 16/1 +f 7/23 17/5 13/8 2/24 +f 1/3 15/2 17/5 7/23 +f 15/2 6/22 14/6 17/5 +f 10/25 18/9 12/12 4/26 +f 3/27 11/28 18/9 10/25 +f 11/28 5/19 14/10 18/9 +f 9/15 11/29 3/30 +f 9/15 13/14 11/29 +f 13/14 5/20 11/29 +f 12/17 8/26 4/31 +f 12/17 15/16 8/26 +f 15/16 1/27 8/26 diff --git a/games/default/files/Nodes/slope/models/slope_test_slope_long_backhalf_onetexture.obj b/games/default/files/Nodes/slope/models/slope_test_slope_long_backhalf_onetexture.obj new file mode 100644 index 000000000..32eb01aad --- /dev/null +++ b/games/default/files/Nodes/slope/models/slope_test_slope_long_backhalf_onetexture.obj @@ -0,0 +1,30 @@ +# Blender v2.73 (sub 0) OBJ File: 'slope_test_slope_long_backhalf_onetexture.blend' +# www.blender.org +o Cube +v -0.500000 -0.500000 0.500000 +v -0.500000 -0.500000 -0.500000 +v 0.500000 -0.500000 -0.500000 +v 0.500000 -0.500000 0.500000 +v -0.500000 0.500000 0.500000 +v -0.500000 0.000000 -0.500000 +v 0.500000 0.000000 -0.500000 +v 0.500000 0.500000 0.500000 +vt 1.000000 1.000000 +vt 0.000000 0.500000 +vt 0.000000 0.000000 +vt 1.000000 0.000000 +vt 1.000000 0.500000 +vt 0.000000 1.000000 +vn -1.000000 0.000000 0.000000 +vn 0.000000 0.000000 -1.000000 +vn 1.000000 0.000000 0.000000 +vn 0.000000 0.000000 1.000000 +vn 0.000000 -1.000000 0.000000 +vn 0.000000 0.894400 -0.447200 +s off +f 5/1/1 6/2/1 2/3/1 1/4/1 +f 6/5/2 7/2/2 3/3/2 2/4/2 +f 7/5/3 8/6/3 4/3/3 3/4/3 +f 8/1/4 5/6/4 1/3/4 4/4/4 +f 1/4/5 2/1/5 3/6/5 4/3/5 +f 8/6/6 7/3/6 6/4/6 5/1/6 diff --git a/games/default/files/Nodes/slope/models/slope_test_slope_long_fronthalf_onetexture.obj b/games/default/files/Nodes/slope/models/slope_test_slope_long_fronthalf_onetexture.obj new file mode 100644 index 000000000..9c0d88d00 --- /dev/null +++ b/games/default/files/Nodes/slope/models/slope_test_slope_long_fronthalf_onetexture.obj @@ -0,0 +1,26 @@ +# Blender v2.73 (sub 0) OBJ File: 'slope_test_slope_long_fronthalf_onetexture.blend' +# www.blender.org +o Cube_Cube.002 +v 0.500000 -0.000000 0.500000 +v -0.500000 -0.000000 0.500000 +v -0.500000 -0.500000 0.500000 +v 0.500000 -0.500000 0.500000 +v -0.500000 -0.500000 -0.500000 +v 0.500000 -0.500000 -0.500000 +vt 1.000000 0.500000 +vt 0.000000 0.500000 +vt 0.000000 0.000000 +vt 1.000000 0.000000 +vt 1.000000 1.000000 +vt 0.000000 1.000000 +vn 0.000000 -0.000000 1.000000 +vn 0.000000 -1.000000 -0.000000 +vn -1.000000 0.000000 0.000000 +vn 1.000000 0.000000 0.000000 +vn 0.000000 0.894400 -0.447200 +s off +f 1/1/1 2/2/1 3/3/1 4/4/1 +f 4/3/2 3/4/2 5/5/2 6/6/2 +f 2/1/3 5/3/3 3/4/3 +f 1/2/4 4/3/4 6/4/4 +f 2/5/5 1/6/5 6/3/5 5/4/5 diff --git a/games/default/files/Nodes/slope/models/slope_test_slope_long_onetexture.obj b/games/default/files/Nodes/slope/models/slope_test_slope_long_onetexture.obj new file mode 100644 index 000000000..dc1fd7b68 --- /dev/null +++ b/games/default/files/Nodes/slope/models/slope_test_slope_long_onetexture.obj @@ -0,0 +1,56 @@ +# Blender v2.73 (sub 0) OBJ File: 'slope_test_slope_long_onetexture.blend' +# www.blender.org +o Cube +v -0.500000 -0.500000 -1.500000 +v 0.500000 -0.500000 -1.500000 +v 0.500000 -0.500000 0.500000 +v -0.500000 -0.500000 0.500000 +v 0.500000 0.500000 0.500000 +v -0.500000 0.500000 0.500000 +v 0.000000 -0.500000 -1.500000 +v -0.500000 -0.500000 -0.500000 +v 0.500000 -0.500000 -0.500000 +v -0.000000 -0.500000 0.500000 +v 0.500000 0.000000 0.500000 +v -0.500000 0.000000 0.500000 +v 0.500000 0.000000 -0.500000 +v -0.000000 0.500000 0.500000 +v -0.500000 0.000000 -0.500000 +v 0.000000 -0.500000 -0.500000 +v 0.000000 0.000000 -0.500000 +v -0.000000 0.000000 0.500000 +vt 0.500000 1.000000 +vt 0.000000 1.000000 +vt 0.000000 0.000000 +vt 0.500000 0.000000 +vt 1.000000 0.000000 +vt 1.000000 1.000000 +vt 0.500000 0.500000 +vt 1.000000 0.500000 +vt 0.000000 0.500000 +vn 0.000000 -1.000000 0.000000 +vn 0.000000 0.894400 -0.447200 +vn -0.000000 -0.000000 1.000000 +vn 1.000000 0.000000 0.000000 +vn -1.000000 0.000000 -0.000000 +s off +f 16/1/1 9/2/1 3/3/1 10/4/1 +f 17/1/2 14/4/2 5/5/2 13/6/2 +f 18/7/3 14/4/3 6/5/3 12/8/3 +f 2/5/4 13/9/4 9/3/4 +f 6/6/5 15/9/5 12/8/5 +f 8/6/1 16/1/1 10/4/1 4/5/1 +f 1/6/1 7/1/1 16/4/1 8/5/1 +f 7/1/1 2/2/1 9/3/1 16/4/1 +f 7/4/2 17/1/2 13/2/2 2/3/2 +f 1/5/2 15/6/2 17/1/2 7/4/2 +f 15/2/2 6/3/2 14/4/2 17/1/2 +f 10/1/3 18/7/3 12/8/3 4/6/3 +f 3/2/3 11/9/3 18/7/3 10/1/3 +f 11/9/3 5/3/3 14/4/3 18/7/3 +f 9/5/4 11/9/4 3/3/4 +f 9/5/4 13/8/4 11/9/4 +f 13/8/4 5/2/4 11/9/4 +f 12/8/5 8/3/5 4/5/5 +f 12/8/5 15/9/5 8/3/5 +f 15/8/5 1/3/5 8/5/5 diff --git a/games/default/files/Nodes/slope/models/slope_test_slope_onetexture.obj b/games/default/files/Nodes/slope/models/slope_test_slope_onetexture.obj new file mode 100644 index 000000000..f6f486078 --- /dev/null +++ b/games/default/files/Nodes/slope/models/slope_test_slope_onetexture.obj @@ -0,0 +1,24 @@ +# Blender v2.73 (sub 0) OBJ File: 'slope_test_slope_onetexture.blend' +# www.blender.org +o Cube_Cube.002 +v 0.500000 0.500000 0.500000 +v -0.500000 0.500000 0.500000 +v -0.500000 -0.500000 0.500000 +v 0.500000 -0.500000 0.500000 +v -0.500000 -0.500000 -0.500000 +v 0.500000 -0.500000 -0.500000 +vt 1.000000 1.000000 +vt 0.000000 1.000000 +vt 0.000000 0.000000 +vt 1.000000 0.000000 +vn 0.000000 -0.000000 1.000000 +vn 0.000000 -1.000000 -0.000000 +vn -1.000000 0.000000 0.000000 +vn 1.000000 0.000000 0.000000 +vn 0.000000 0.707100 -0.707100 +s off +f 1/1/1 2/2/1 3/3/1 4/4/1 +f 4/3/2 3/4/2 5/1/2 6/2/2 +f 2/1/3 5/3/3 3/4/3 +f 1/2/4 4/3/4 6/4/4 +f 2/1/5 1/2/5 6/3/5 5/4/5 diff --git a/games/default/files/Nodes/slope/models/slope_test_sphere.obj b/games/default/files/Nodes/slope/models/slope_test_sphere.obj new file mode 100644 index 000000000..5b6d51b6e --- /dev/null +++ b/games/default/files/Nodes/slope/models/slope_test_sphere.obj @@ -0,0 +1,2231 @@ +# Blender v2.73 (sub 0) OBJ File: 'globe.blend' +# www.blender.org +o Sphere +v -0.097545 0.490393 0.000000 +v -0.191342 0.461940 0.000000 +v -0.277785 0.415735 0.000000 +v -0.353553 0.353553 0.000000 +v -0.415735 0.277785 0.000000 +v -0.461940 0.191342 0.000000 +v -0.490393 0.097545 0.000000 +v -0.500000 0.000000 0.000000 +v -0.490393 -0.097545 0.000000 +v -0.461940 -0.191342 0.000000 +v -0.415735 -0.277785 0.000000 +v -0.353553 -0.353553 0.000000 +v -0.277785 -0.415735 0.000000 +v -0.191342 -0.461940 0.000000 +v -0.097545 -0.490393 0.000000 +v -0.095671 0.490393 -0.019030 +v -0.187665 0.461940 -0.037329 +v -0.272448 0.415735 -0.054193 +v -0.346760 0.353553 -0.068975 +v -0.407747 0.277785 -0.081106 +v -0.453064 0.191342 -0.090120 +v -0.480970 0.097545 -0.095671 +v -0.490393 0.000000 -0.097545 +v -0.480970 -0.097545 -0.095671 +v -0.453064 -0.191342 -0.090120 +v -0.407747 -0.277785 -0.081106 +v -0.346760 -0.353553 -0.068975 +v -0.272448 -0.415735 -0.054193 +v -0.187665 -0.461940 -0.037329 +v -0.095671 -0.490393 -0.019030 +v -0.090120 0.490393 -0.037329 +v -0.176777 0.461940 -0.073223 +v -0.256640 0.415735 -0.106304 +v -0.326641 0.353553 -0.135299 +v -0.384089 0.277785 -0.159095 +v -0.426777 0.191342 -0.176777 +v -0.453064 0.097545 -0.187665 +v -0.461940 0.000000 -0.191342 +v -0.453064 -0.097545 -0.187665 +v -0.426777 -0.191342 -0.176777 +v -0.384089 -0.277785 -0.159095 +v -0.326641 -0.353553 -0.135299 +v -0.256640 -0.415735 -0.106304 +v -0.176777 -0.461940 -0.073223 +v -0.090120 -0.490393 -0.037329 +v -0.081106 0.490393 -0.054193 +v -0.159095 0.461940 -0.106304 +v -0.230970 0.415735 -0.154329 +v -0.293969 0.353553 -0.196424 +v -0.345671 0.277785 -0.230970 +v -0.384089 0.191342 -0.256640 +v -0.407746 0.097545 -0.272448 +v -0.415735 0.000000 -0.277785 +v -0.407746 -0.097545 -0.272448 +v -0.384089 -0.191342 -0.256640 +v -0.345671 -0.277785 -0.230970 +v -0.293969 -0.353553 -0.196424 +v -0.230970 -0.415735 -0.154329 +v -0.159095 -0.461940 -0.106304 +v -0.081106 -0.490393 -0.054193 +v -0.068975 0.490393 -0.068975 +v -0.135299 0.461940 -0.135299 +v -0.196424 0.415735 -0.196424 +v -0.250000 0.353553 -0.250000 +v -0.293969 0.277785 -0.293969 +v -0.326641 0.191342 -0.326641 +v -0.346760 0.097545 -0.346760 +v -0.353553 0.000000 -0.353554 +v -0.346760 -0.097545 -0.346760 +v -0.326641 -0.191342 -0.326641 +v -0.293969 -0.277785 -0.293969 +v -0.250000 -0.353553 -0.250000 +v -0.196424 -0.415735 -0.196424 +v -0.135299 -0.461940 -0.135299 +v -0.068975 -0.490393 -0.068975 +v -0.054193 0.490393 -0.081106 +v -0.106304 0.461940 -0.159095 +v -0.154329 0.415735 -0.230970 +v -0.196424 0.353553 -0.293969 +v -0.230970 0.277785 -0.345671 +v -0.256640 0.191342 -0.384089 +v -0.272447 0.097545 -0.407747 +v -0.277785 0.000000 -0.415735 +v -0.272447 -0.097545 -0.407747 +v -0.256640 -0.191342 -0.384089 +v -0.230970 -0.277785 -0.345671 +v -0.196424 -0.353553 -0.293969 +v -0.154329 -0.415735 -0.230970 +v -0.106304 -0.461940 -0.159095 +v -0.054193 -0.490393 -0.081106 +v -0.037329 0.490393 -0.090120 +v -0.073223 0.461940 -0.176777 +v -0.106304 0.415735 -0.256640 +v -0.135299 0.353553 -0.326641 +v -0.159095 0.277785 -0.384089 +v -0.176777 0.191342 -0.426777 +v -0.187665 0.097545 -0.453064 +v -0.191342 0.000000 -0.461940 +v -0.187665 -0.097545 -0.453064 +v -0.176777 -0.191342 -0.426777 +v -0.159095 -0.277785 -0.384089 +v -0.135299 -0.353553 -0.326641 +v -0.106304 -0.415735 -0.256640 +v -0.073223 -0.461940 -0.176777 +v -0.037329 -0.490393 -0.090120 +v -0.019030 0.490393 -0.095671 +v -0.037329 0.461940 -0.187665 +v -0.054193 0.415735 -0.272448 +v -0.068975 0.353553 -0.346760 +v -0.081106 0.277785 -0.407747 +v -0.090120 0.191342 -0.453064 +v -0.095671 0.097545 -0.480970 +v -0.097545 0.000000 -0.490393 +v -0.095671 -0.097545 -0.480970 +v -0.090120 -0.191342 -0.453064 +v -0.081106 -0.277785 -0.407747 +v -0.068975 -0.353553 -0.346760 +v -0.054193 -0.415735 -0.272448 +v -0.037329 -0.461940 -0.187665 +v -0.019030 -0.490393 -0.095671 +v 0.000000 0.490393 -0.097545 +v 0.000000 0.461940 -0.191342 +v 0.000000 0.415735 -0.277785 +v 0.000000 0.353553 -0.353553 +v 0.000000 0.277785 -0.415735 +v 0.000000 0.191342 -0.461940 +v 0.000000 0.097545 -0.490393 +v 0.000000 0.000000 -0.500000 +v 0.000000 -0.097545 -0.490393 +v 0.000000 -0.191342 -0.461940 +v 0.000000 -0.277785 -0.415735 +v 0.000000 -0.353553 -0.353553 +v 0.000000 -0.415735 -0.277785 +v 0.000000 -0.461940 -0.191342 +v 0.000000 -0.490393 -0.097545 +v 0.019030 0.490393 -0.095671 +v 0.037329 0.461940 -0.187665 +v 0.054193 0.415735 -0.272448 +v 0.068975 0.353553 -0.346760 +v 0.081106 0.277785 -0.407747 +v 0.090120 0.191342 -0.453064 +v 0.095671 0.097545 -0.480970 +v 0.097545 0.000000 -0.490393 +v 0.095671 -0.097545 -0.480970 +v 0.090120 -0.191342 -0.453064 +v 0.081106 -0.277785 -0.407747 +v 0.068975 -0.353553 -0.346760 +v 0.054193 -0.415735 -0.272448 +v 0.037329 -0.461940 -0.187665 +v 0.019030 -0.490393 -0.095671 +v 0.037329 0.490393 -0.090120 +v 0.073224 0.461940 -0.176777 +v 0.106304 0.415735 -0.256640 +v 0.135299 0.353553 -0.326641 +v 0.159095 0.277785 -0.384089 +v 0.176777 0.191342 -0.426777 +v 0.187665 0.097545 -0.453064 +v 0.191342 0.000000 -0.461940 +v 0.187665 -0.097545 -0.453064 +v 0.176777 -0.191342 -0.426777 +v 0.159095 -0.277785 -0.384089 +v 0.135299 -0.353553 -0.326641 +v 0.106304 -0.415735 -0.256640 +v 0.073223 -0.461940 -0.176777 +v 0.037329 -0.490393 -0.090120 +v 0.054193 0.490393 -0.081106 +v 0.106304 0.461940 -0.159095 +v 0.154329 0.415735 -0.230970 +v 0.196424 0.353553 -0.293969 +v 0.230970 0.277785 -0.345671 +v 0.256640 0.191342 -0.384089 +v 0.272448 0.097545 -0.407747 +v 0.277785 0.000000 -0.415735 +v 0.272448 -0.097545 -0.407747 +v 0.256640 -0.191342 -0.384089 +v 0.230970 -0.277785 -0.345671 +v 0.196424 -0.353553 -0.293969 +v 0.154329 -0.415735 -0.230970 +v 0.106304 -0.461940 -0.159095 +v 0.054193 -0.490393 -0.081106 +v 0.068975 0.490393 -0.068975 +v 0.135299 0.461940 -0.135299 +v 0.196424 0.415735 -0.196424 +v 0.250000 0.353553 -0.250000 +v 0.293969 0.277785 -0.293969 +v 0.326641 0.191342 -0.326641 +v 0.346760 0.097545 -0.346760 +v 0.353554 0.000000 -0.353553 +v 0.346760 -0.097545 -0.346760 +v 0.326641 -0.191342 -0.326641 +v 0.293969 -0.277785 -0.293969 +v 0.250000 -0.353553 -0.250000 +v 0.196424 -0.415735 -0.196424 +v 0.135299 -0.461940 -0.135299 +v 0.068975 -0.490393 -0.068975 +v 0.081106 0.490393 -0.054193 +v 0.159095 0.461940 -0.106304 +v 0.230970 0.415735 -0.154329 +v 0.293969 0.353553 -0.196424 +v 0.345671 0.277785 -0.230970 +v 0.384089 0.191342 -0.256640 +v 0.407747 0.097545 -0.272447 +v 0.415735 0.000000 -0.277785 +v 0.407747 -0.097545 -0.272447 +v 0.384089 -0.191342 -0.256640 +v 0.345671 -0.277785 -0.230970 +v 0.293969 -0.353553 -0.196424 +v 0.230970 -0.415735 -0.154329 +v 0.159095 -0.461940 -0.106304 +v 0.081106 -0.490393 -0.054193 +v 0.090120 0.490393 -0.037329 +v 0.176777 0.461940 -0.073223 +v 0.256640 0.415735 -0.106304 +v 0.326641 0.353553 -0.135299 +v 0.384089 0.277785 -0.159095 +v 0.426777 0.191342 -0.176777 +v 0.453064 0.097545 -0.187665 +v 0.461940 0.000000 -0.191342 +v 0.453064 -0.097545 -0.187665 +v 0.426777 -0.191342 -0.176777 +v 0.384089 -0.277785 -0.159095 +v 0.326641 -0.353553 -0.135299 +v 0.256640 -0.415735 -0.106304 +v 0.176777 -0.461940 -0.073223 +v 0.090120 -0.490393 -0.037329 +v 0.095671 0.490393 -0.019030 +v 0.187665 0.461940 -0.037329 +v 0.272448 0.415735 -0.054193 +v 0.346760 0.353553 -0.068975 +v 0.407747 0.277785 -0.081106 +v 0.453064 0.191342 -0.090120 +v 0.480970 0.097545 -0.095671 +v 0.490393 0.000000 -0.097545 +v 0.480970 -0.097545 -0.095671 +v 0.453064 -0.191342 -0.090120 +v 0.407747 -0.277785 -0.081106 +v 0.346760 -0.353553 -0.068975 +v 0.272448 -0.415735 -0.054193 +v 0.187665 -0.461940 -0.037329 +v 0.095671 -0.490393 -0.019030 +v 0.097545 0.490393 0.000000 +v 0.191342 0.461940 -0.000000 +v 0.277785 0.415735 -0.000000 +v 0.353554 0.353553 0.000000 +v 0.415735 0.277785 0.000000 +v 0.461940 0.191342 -0.000000 +v 0.490393 0.097545 0.000000 +v 0.500000 0.000000 0.000000 +v 0.490393 -0.097545 0.000000 +v 0.461940 -0.191342 -0.000000 +v 0.415735 -0.277785 0.000000 +v 0.353554 -0.353553 0.000000 +v 0.277785 -0.415735 0.000000 +v 0.191342 -0.461940 -0.000000 +v 0.097545 -0.490393 -0.000000 +v 0.095671 0.490393 0.019030 +v 0.187665 0.461940 0.037329 +v 0.272448 0.415735 0.054193 +v 0.346760 0.353553 0.068975 +v 0.407747 0.277785 0.081106 +v 0.453064 0.191342 0.090120 +v 0.480970 0.097545 0.095671 +v 0.490393 0.000000 0.097545 +v 0.480970 -0.097545 0.095671 +v 0.453064 -0.191342 0.090120 +v 0.407747 -0.277785 0.081106 +v 0.346760 -0.353553 0.068975 +v 0.272448 -0.415735 0.054193 +v 0.187665 -0.461940 0.037329 +v 0.095671 -0.490393 0.019030 +v 0.090120 0.490393 0.037329 +v 0.176777 0.461940 0.073223 +v 0.256640 0.415735 0.106304 +v 0.326641 0.353553 0.135299 +v 0.384089 0.277785 0.159095 +v 0.426777 0.191342 0.176777 +v 0.453064 0.097545 0.187665 +v 0.461940 0.000000 0.191342 +v 0.453064 -0.097545 0.187665 +v 0.426777 -0.191342 0.176777 +v 0.384089 -0.277785 0.159095 +v 0.326641 -0.353553 0.135299 +v 0.256640 -0.415735 0.106304 +v 0.176777 -0.461940 0.073223 +v 0.090120 -0.490393 0.037329 +v 0.081106 0.490393 0.054193 +v 0.159095 0.461940 0.106304 +v 0.230970 0.415735 0.154329 +v 0.293969 0.353553 0.196424 +v 0.345671 0.277785 0.230970 +v 0.384089 0.191342 0.256640 +v 0.407747 0.097545 0.272448 +v 0.415735 0.000000 0.277785 +v 0.407747 -0.097545 0.272448 +v 0.384089 -0.191342 0.256640 +v 0.345671 -0.277785 0.230970 +v 0.293969 -0.353553 0.196424 +v 0.230970 -0.415735 0.154329 +v 0.159095 -0.461940 0.106304 +v 0.081106 -0.490393 0.054193 +v 0.068975 0.490393 0.068975 +v 0.135299 0.461940 0.135299 +v 0.196424 0.415735 0.196424 +v 0.250000 0.353553 0.250000 +v 0.293969 0.277785 0.293969 +v 0.326641 0.191342 0.326641 +v 0.346760 0.097545 0.346760 +v 0.353553 0.000000 0.353553 +v 0.346760 -0.097545 0.346760 +v 0.326641 -0.191342 0.326641 +v 0.293969 -0.277785 0.293969 +v 0.250000 -0.353553 0.250000 +v 0.196424 -0.415735 0.196424 +v 0.135299 -0.461940 0.135299 +v 0.068975 -0.490393 0.068975 +v 0.054193 0.490393 0.081106 +v 0.106304 0.461940 0.159095 +v 0.154329 0.415735 0.230970 +v 0.196424 0.353553 0.293969 +v 0.230970 0.277785 0.345671 +v 0.256640 0.191342 0.384089 +v 0.272448 0.097545 0.407746 +v 0.277785 0.000000 0.415735 +v 0.272448 -0.097545 0.407746 +v 0.256640 -0.191342 0.384089 +v 0.230970 -0.277785 0.345671 +v 0.196424 -0.353553 0.293969 +v 0.154329 -0.415735 0.230970 +v 0.106304 -0.461940 0.159095 +v 0.054193 -0.490393 0.081106 +v 0.037329 0.490393 0.090120 +v 0.073223 0.461940 0.176777 +v 0.106304 0.415735 0.256640 +v 0.135299 0.353553 0.326641 +v 0.159095 0.277785 0.384089 +v 0.176777 0.191342 0.426777 +v 0.187665 0.097545 0.453064 +v 0.191342 0.000000 0.461940 +v 0.187665 -0.097545 0.453064 +v 0.176777 -0.191342 0.426777 +v 0.159095 -0.277785 0.384089 +v 0.135299 -0.353553 0.326641 +v 0.106304 -0.415735 0.256640 +v 0.073223 -0.461940 0.176777 +v 0.037329 -0.490393 0.090120 +v 0.019030 0.490393 0.095671 +v 0.037329 0.461940 0.187665 +v 0.054193 0.415735 0.272448 +v 0.068975 0.353553 0.346760 +v 0.081106 0.277785 0.407746 +v 0.090120 0.191342 0.453064 +v 0.095671 0.097545 0.480970 +v 0.097545 0.000000 0.490393 +v 0.095671 -0.097545 0.480970 +v 0.090120 -0.191342 0.453064 +v 0.081106 -0.277785 0.407746 +v 0.068975 -0.353553 0.346760 +v 0.054193 -0.415735 0.272447 +v 0.037329 -0.461940 0.187665 +v 0.019030 -0.490393 0.095671 +v 0.000000 0.490393 0.097545 +v 0.000000 0.461940 0.191342 +v 0.000000 0.415735 0.277785 +v 0.000000 0.353553 0.353553 +v 0.000000 0.277785 0.415735 +v 0.000000 0.191342 0.461940 +v 0.000000 0.097545 0.490392 +v 0.000000 0.000000 0.500000 +v 0.000000 -0.097545 0.490392 +v 0.000000 -0.191342 0.461940 +v 0.000000 -0.277785 0.415735 +v 0.000000 -0.353553 0.353553 +v 0.000000 -0.415735 0.277785 +v 0.000000 -0.461940 0.191342 +v 0.000000 -0.490393 0.097545 +v -0.019030 0.490393 0.095671 +v -0.037329 0.461940 0.187665 +v -0.054193 0.415735 0.272448 +v -0.068975 0.353553 0.346760 +v -0.081106 0.277785 0.407746 +v -0.090120 0.191342 0.453064 +v -0.095671 0.097545 0.480970 +v -0.097545 0.000000 0.490393 +v -0.095671 -0.097545 0.480970 +v -0.090120 -0.191342 0.453064 +v -0.081106 -0.277785 0.407746 +v -0.068975 -0.353553 0.346760 +v -0.054193 -0.415735 0.272447 +v -0.037329 -0.461940 0.187665 +v -0.019030 -0.490393 0.095671 +v -0.037329 0.490393 0.090120 +v -0.073223 0.461940 0.176777 +v -0.106304 0.415735 0.256640 +v -0.135299 0.353553 0.326641 +v -0.159095 0.277785 0.384089 +v -0.176777 0.191342 0.426777 +v -0.187665 0.097545 0.453063 +v -0.191342 0.000000 0.461940 +v -0.187665 -0.097545 0.453063 +v -0.176777 -0.191342 0.426777 +v -0.159095 -0.277785 0.384089 +v -0.135299 -0.353553 0.326641 +v -0.106304 -0.415735 0.256640 +v -0.073223 -0.461940 0.176777 +v -0.037329 -0.490393 0.090120 +v -0.054193 0.490393 0.081106 +v -0.106304 0.461940 0.159095 +v -0.154329 0.415735 0.230970 +v -0.196424 0.353553 0.293969 +v -0.230970 0.277785 0.345671 +v -0.256640 0.191342 0.384089 +v -0.272447 0.097545 0.407746 +v -0.277785 0.000000 0.415735 +v -0.272447 -0.097545 0.407746 +v -0.256640 -0.191342 0.384089 +v -0.230970 -0.277785 0.345671 +v -0.196424 -0.353553 0.293969 +v -0.154329 -0.415735 0.230970 +v -0.106304 -0.461940 0.159095 +v -0.054193 -0.490393 0.081106 +v -0.068975 0.490393 0.068975 +v -0.135299 0.461940 0.135299 +v -0.196424 0.415735 0.196424 +v -0.250000 0.353553 0.250000 +v -0.293969 0.277785 0.293969 +v -0.326641 0.191342 0.326641 +v -0.346760 0.097545 0.346760 +v -0.353553 0.000000 0.353553 +v -0.346760 -0.097545 0.346760 +v -0.326641 -0.191342 0.326641 +v -0.293969 -0.277785 0.293969 +v -0.250000 -0.353553 0.250000 +v -0.196424 -0.415735 0.196424 +v -0.135299 -0.461940 0.135299 +v -0.068975 -0.490393 0.068975 +v -0.081106 0.490393 0.054193 +v -0.159095 0.461940 0.106304 +v -0.230970 0.415735 0.154329 +v -0.293969 0.353553 0.196424 +v -0.345671 0.277785 0.230970 +v -0.384089 0.191342 0.256640 +v -0.407746 0.097545 0.272447 +v -0.415735 0.000000 0.277785 +v -0.407746 -0.097545 0.272447 +v -0.384089 -0.191342 0.256640 +v -0.345671 -0.277785 0.230970 +v -0.293969 -0.353553 0.196424 +v -0.230970 -0.415735 0.154329 +v -0.159095 -0.461940 0.106304 +v -0.081106 -0.490393 0.054193 +v -0.090120 0.490393 0.037329 +v -0.176776 0.461940 0.073223 +v -0.256640 0.415735 0.106304 +v -0.326641 0.353553 0.135299 +v -0.384089 0.277785 0.159095 +v -0.426776 0.191342 0.176777 +v -0.453063 0.097545 0.187665 +v -0.461939 0.000000 0.191342 +v -0.453063 -0.097545 0.187665 +v -0.426776 -0.191342 0.176777 +v -0.384089 -0.277785 0.159095 +v -0.326641 -0.353553 0.135299 +v -0.256640 -0.415735 0.106304 +v -0.176776 -0.461940 0.073223 +v -0.090120 -0.490393 0.037329 +v -0.095671 0.490393 0.019030 +v -0.187665 0.461940 0.037329 +v -0.272447 0.415735 0.054193 +v -0.346760 0.353553 0.068975 +v -0.407746 0.277785 0.081106 +v -0.453063 0.191342 0.090120 +v -0.480969 0.097545 0.095671 +v -0.490392 0.000000 0.097545 +v -0.480969 -0.097545 0.095671 +v -0.453063 -0.191342 0.090120 +v -0.407746 -0.277785 0.081106 +v -0.346760 -0.353553 0.068975 +v -0.272447 -0.415735 0.054193 +v -0.187665 -0.461940 0.037329 +v -0.095671 -0.490393 0.019030 +v -0.013167 -0.495196 0.000000 +v -0.005039 0.495196 0.012165 +v -0.013167 0.495196 0.000000 +v -0.012914 0.495196 -0.002569 +v -0.012914 -0.495196 -0.002569 +v -0.012165 0.495196 -0.005039 +v -0.012165 -0.495196 -0.005039 +v -0.010948 0.495196 -0.007315 +v -0.010948 -0.495196 -0.007315 +v -0.009311 0.495196 -0.009311 +v -0.009311 -0.495196 -0.009311 +v -0.007315 0.495196 -0.010948 +v -0.007315 -0.495196 -0.010948 +v -0.005039 0.495196 -0.012165 +v -0.005039 -0.495196 -0.012165 +v -0.002569 0.495196 -0.012914 +v -0.002569 -0.495196 -0.012914 +v 0.000000 0.495196 -0.013167 +v 0.000000 -0.495196 -0.013167 +v 0.002569 0.495196 -0.012914 +v 0.002569 -0.495196 -0.012914 +v 0.005039 0.495196 -0.012165 +v 0.005039 -0.495196 -0.012165 +v 0.007316 0.495196 -0.010948 +v 0.007316 -0.495196 -0.010948 +v 0.009311 0.495196 -0.009311 +v 0.009311 -0.495196 -0.009311 +v 0.010948 0.495196 -0.007315 +v 0.010948 -0.495196 -0.007315 +v 0.012165 0.495196 -0.005039 +v 0.012165 -0.495196 -0.005039 +v 0.012915 0.495196 -0.002569 +v 0.012915 -0.495196 -0.002569 +v 0.013168 0.495196 0.000000 +v 0.013168 -0.495196 0.000000 +v 0.012915 0.495196 0.002569 +v 0.012915 -0.495196 0.002569 +v 0.012165 0.495196 0.005039 +v 0.012165 -0.495196 0.005039 +v 0.010948 0.495196 0.007315 +v 0.010948 -0.495196 0.007315 +v 0.009311 0.495196 0.009311 +v 0.009311 -0.495196 0.009311 +v 0.007316 0.495196 0.010948 +v 0.007316 -0.495196 0.010948 +v 0.005039 0.495196 0.012165 +v 0.005039 -0.495196 0.012165 +v 0.002569 0.495196 0.012914 +v 0.002569 -0.495196 0.012914 +v 0.000000 0.495196 0.013167 +v 0.000000 -0.495196 0.013167 +v -0.002569 0.495196 0.012914 +v -0.002569 -0.495196 0.012914 +v -0.005039 -0.495196 0.012165 +v -0.007315 0.495196 0.010948 +v -0.007315 -0.495196 0.010948 +v -0.009311 0.495196 0.009311 +v -0.009311 -0.495196 0.009311 +v -0.010948 0.495196 0.007315 +v -0.010948 -0.495196 0.007315 +v -0.012165 0.495196 0.005039 +v -0.012165 -0.495196 0.005039 +v -0.012914 0.495196 0.002569 +v -0.012914 -0.495196 0.002569 +vt 0.218905 0.855469 +vt 0.218905 0.917969 +vt 0.186567 0.917969 +vt 0.186567 0.855469 +vt 0.218905 0.003906 +vt 0.218905 0.035156 +vt 0.186567 0.035156 +vt 0.186567 0.003906 +vt 0.218905 0.964844 +vt 0.218905 0.996094 +vt 0.186567 0.996094 +vt 0.186567 0.964844 +vt 0.218905 0.082031 +vt 0.218905 0.144531 +vt 0.186567 0.144531 +vt 0.186567 0.082031 +vt 0.218905 0.218750 +vt 0.218905 0.308594 +vt 0.186567 0.308594 +vt 0.186567 0.218750 +vt 0.218905 0.402344 +vt 0.218905 0.500000 +vt 0.186567 0.500000 +vt 0.186567 0.402344 +vt 0.218905 0.597656 +vt 0.218905 0.691406 +vt 0.186567 0.691406 +vt 0.186567 0.597656 +vt 0.218905 0.781250 +vt 0.186567 0.781250 +vt 0.156716 0.402344 +vt 0.156716 0.308594 +vt 0.156716 0.597656 +vt 0.156716 0.500000 +vt 0.156716 0.781250 +vt 0.156716 0.691406 +vt 0.156716 0.917969 +vt 0.156716 0.855469 +vt 0.156716 0.035156 +vt 0.156716 0.003906 +vt 0.156716 0.996094 +vt 0.156716 0.964844 +vt 0.156716 0.144531 +vt 0.156716 0.082031 +vt 0.156716 0.218750 +vt 0.124378 0.402344 +vt 0.124378 0.308594 +vt 0.124378 0.597656 +vt 0.124378 0.500000 +vt 0.124378 0.781250 +vt 0.124378 0.691406 +vt 0.124378 0.917969 +vt 0.124378 0.855469 +vt 0.124378 0.035156 +vt 0.124378 0.003906 +vt 0.124378 0.996094 +vt 0.124378 0.964844 +vt 0.124378 0.144531 +vt 0.124378 0.082031 +vt 0.124378 0.218750 +vt 0.094527 0.402344 +vt 0.094527 0.308594 +vt 0.094527 0.597656 +vt 0.094527 0.500000 +vt 0.094527 0.781250 +vt 0.094527 0.691406 +vt 0.094527 0.917969 +vt 0.094527 0.855469 +vt 0.094527 0.035156 +vt 0.094527 0.003906 +vt 0.094527 0.996094 +vt 0.094527 0.964844 +vt 0.094527 0.144531 +vt 0.094527 0.082031 +vt 0.094527 0.218750 +vt 0.062189 0.402344 +vt 0.062189 0.308594 +vt 0.062189 0.597656 +vt 0.062189 0.500000 +vt 0.062189 0.781250 +vt 0.062189 0.691406 +vt 0.062189 0.917969 +vt 0.062189 0.855469 +vt 0.062189 0.035156 +vt 0.062189 0.003906 +vt 0.062189 0.996094 +vt 0.062189 0.964844 +vt 0.062189 0.144531 +vt 0.062189 0.082031 +vt 0.062189 0.218750 +vt 0.032338 0.402344 +vt 0.032338 0.308594 +vt 0.032338 0.597656 +vt 0.032338 0.500000 +vt 0.032338 0.781250 +vt 0.032338 0.691406 +vt 0.032338 0.917969 +vt 0.032338 0.855469 +vt 0.032338 0.035156 +vt 0.032338 0.003906 +vt 0.032338 0.996094 +vt 0.032338 0.964844 +vt 0.032338 0.144531 +vt 0.032338 0.082031 +vt 0.032338 0.218750 +vt 0.000000 0.402344 +vt 0.000000 0.308594 +vt 0.000000 0.597656 +vt 0.000000 0.500000 +vt 0.000000 0.781250 +vt 0.000000 0.691406 +vt 0.000000 0.917969 +vt 0.000000 0.855469 +vt 0.000000 0.035156 +vt 0.000000 0.003906 +vt 0.000000 0.996094 +vt 0.000000 0.964844 +vt 0.000000 0.144531 +vt 0.000000 0.082031 +vt 0.000000 0.218750 +vt 1.000000 0.308594 +vt 1.000000 0.402344 +vt 0.967662 0.402344 +vt 0.967662 0.308594 +vt 1.000000 0.500000 +vt 1.000000 0.597656 +vt 0.967662 0.597656 +vt 0.967662 0.500000 +vt 1.000000 0.691406 +vt 1.000000 0.781250 +vt 0.967662 0.781250 +vt 0.967662 0.691406 +vt 1.000000 0.855469 +vt 1.000000 0.917969 +vt 0.967662 0.917969 +vt 0.967662 0.855469 +vt 1.000000 0.003906 +vt 1.000000 0.035156 +vt 0.967662 0.035156 +vt 0.967662 0.003906 +vt 1.000000 0.964844 +vt 1.000000 0.996094 +vt 0.967662 0.996094 +vt 0.967662 0.964844 +vt 1.000000 0.082031 +vt 1.000000 0.144531 +vt 0.967662 0.144531 +vt 0.967662 0.082031 +vt 1.000000 0.218750 +vt 0.967662 0.218750 +vt 0.937811 0.402344 +vt 0.937811 0.308594 +vt 0.937811 0.597656 +vt 0.937811 0.500000 +vt 0.937811 0.781250 +vt 0.937811 0.691406 +vt 0.937811 0.917969 +vt 0.937811 0.855469 +vt 0.937811 0.035156 +vt 0.937811 0.003906 +vt 0.937811 0.996094 +vt 0.937811 0.964844 +vt 0.937811 0.144531 +vt 0.937811 0.082031 +vt 0.937811 0.218750 +vt 0.905473 0.402344 +vt 0.905473 0.308594 +vt 0.905473 0.597656 +vt 0.905473 0.500000 +vt 0.905473 0.781250 +vt 0.905473 0.691406 +vt 0.905473 0.917969 +vt 0.905473 0.855469 +vt 0.905473 0.035156 +vt 0.905473 0.003906 +vt 0.905473 0.996094 +vt 0.905473 0.964844 +vt 0.905473 0.144531 +vt 0.905473 0.082031 +vt 0.905473 0.218750 +vt 0.875622 0.402344 +vt 0.875622 0.308594 +vt 0.875622 0.597656 +vt 0.875622 0.500000 +vt 0.875622 0.781250 +vt 0.875622 0.691406 +vt 0.875622 0.917969 +vt 0.875622 0.855469 +vt 0.875622 0.035156 +vt 0.875622 0.003906 +vt 0.875622 0.996094 +vt 0.875622 0.964844 +vt 0.875622 0.144531 +vt 0.875622 0.082031 +vt 0.875622 0.218750 +vt 0.843284 0.402344 +vt 0.843284 0.308594 +vt 0.843284 0.597656 +vt 0.843284 0.500000 +vt 0.843284 0.781250 +vt 0.843284 0.691406 +vt 0.843284 0.917969 +vt 0.843284 0.855469 +vt 0.843284 0.035156 +vt 0.843284 0.003906 +vt 0.843284 0.996094 +vt 0.843284 0.964844 +vt 0.843284 0.144531 +vt 0.843284 0.082031 +vt 0.843284 0.218750 +vt 0.813433 0.402344 +vt 0.813433 0.308594 +vt 0.813433 0.597656 +vt 0.813433 0.500000 +vt 0.813433 0.781250 +vt 0.813433 0.691406 +vt 0.813433 0.917969 +vt 0.813433 0.855469 +vt 0.813433 0.035156 +vt 0.813433 0.003906 +vt 0.813433 0.996094 +vt 0.813433 0.964844 +vt 0.813433 0.144531 +vt 0.813433 0.082031 +vt 0.813433 0.218750 +vt 0.781095 0.402344 +vt 0.781095 0.308594 +vt 0.781095 0.597656 +vt 0.781095 0.500000 +vt 0.781095 0.781250 +vt 0.781095 0.691406 +vt 0.781095 0.917969 +vt 0.781095 0.855469 +vt 0.781095 0.035156 +vt 0.781095 0.003906 +vt 0.781095 0.996094 +vt 0.781095 0.964844 +vt 0.781095 0.144531 +vt 0.781095 0.082031 +vt 0.781095 0.218750 +vt 0.748756 0.402344 +vt 0.748756 0.308594 +vt 0.748756 0.597656 +vt 0.748756 0.500000 +vt 0.748756 0.781250 +vt 0.748756 0.691406 +vt 0.748756 0.917969 +vt 0.748756 0.855469 +vt 0.748756 0.035156 +vt 0.748756 0.003906 +vt 0.748756 0.996094 +vt 0.748756 0.964844 +vt 0.748756 0.144531 +vt 0.748756 0.082031 +vt 0.748756 0.218750 +vt 0.718905 0.402344 +vt 0.718905 0.308594 +vt 0.718905 0.597656 +vt 0.718905 0.500000 +vt 0.718905 0.781250 +vt 0.718905 0.691406 +vt 0.718905 0.917969 +vt 0.718905 0.855469 +vt 0.718905 0.035156 +vt 0.718905 0.003906 +vt 0.718905 0.996094 +vt 0.718905 0.964844 +vt 0.718905 0.144531 +vt 0.718905 0.082031 +vt 0.718905 0.218750 +vt 0.686567 0.402344 +vt 0.686567 0.308594 +vt 0.686567 0.597656 +vt 0.686567 0.500000 +vt 0.686567 0.781250 +vt 0.686567 0.691406 +vt 0.686567 0.917969 +vt 0.686567 0.855469 +vt 0.686567 0.035156 +vt 0.686567 0.003906 +vt 0.686567 0.996094 +vt 0.686567 0.964844 +vt 0.686567 0.144531 +vt 0.686567 0.082031 +vt 0.686567 0.218750 +vt 0.656716 0.402344 +vt 0.656716 0.308594 +vt 0.656716 0.597656 +vt 0.656716 0.500000 +vt 0.656716 0.781250 +vt 0.656716 0.691406 +vt 0.656716 0.917969 +vt 0.656716 0.855469 +vt 0.656716 0.035156 +vt 0.656716 0.003906 +vt 0.656716 0.996094 +vt 0.656716 0.964844 +vt 0.656716 0.144531 +vt 0.656716 0.082031 +vt 0.656716 0.218750 +vt 0.624378 0.402344 +vt 0.624378 0.308594 +vt 0.624378 0.597656 +vt 0.624378 0.500000 +vt 0.624378 0.781250 +vt 0.624378 0.691406 +vt 0.624378 0.917969 +vt 0.624378 0.855469 +vt 0.624378 0.035156 +vt 0.624378 0.003906 +vt 0.624378 0.996094 +vt 0.624378 0.964844 +vt 0.624378 0.144531 +vt 0.624378 0.082031 +vt 0.624378 0.218750 +vt 0.594527 0.402344 +vt 0.594527 0.308594 +vt 0.594527 0.597656 +vt 0.594527 0.500000 +vt 0.594527 0.781250 +vt 0.594527 0.691406 +vt 0.594527 0.917969 +vt 0.594527 0.855469 +vt 0.594527 0.035156 +vt 0.594527 0.003906 +vt 0.594527 0.996094 +vt 0.594527 0.964844 +vt 0.594527 0.144531 +vt 0.594527 0.082031 +vt 0.594527 0.218750 +vt 0.562189 0.402344 +vt 0.562189 0.308594 +vt 0.562189 0.597656 +vt 0.562189 0.500000 +vt 0.562189 0.781250 +vt 0.562189 0.691406 +vt 0.562189 0.917969 +vt 0.562189 0.855469 +vt 0.562189 0.035156 +vt 0.562189 0.003906 +vt 0.562189 0.996094 +vt 0.562189 0.964844 +vt 0.562189 0.144531 +vt 0.562189 0.082031 +vt 0.562189 0.218750 +vt 0.532338 0.402344 +vt 0.532338 0.308594 +vt 0.532338 0.597656 +vt 0.532338 0.500000 +vt 0.532338 0.781250 +vt 0.532338 0.691406 +vt 0.532338 0.917969 +vt 0.532338 0.855469 +vt 0.532338 0.035156 +vt 0.532338 0.003906 +vt 0.532338 0.996094 +vt 0.532338 0.964844 +vt 0.532338 0.144531 +vt 0.532338 0.082031 +vt 0.532338 0.218750 +vt 0.500000 0.402344 +vt 0.500000 0.308594 +vt 0.500000 0.597656 +vt 0.500000 0.500000 +vt 0.500000 0.781250 +vt 0.500000 0.691406 +vt 0.500000 0.917969 +vt 0.500000 0.855469 +vt 0.500000 0.035156 +vt 0.500000 0.003906 +vt 0.500000 0.996094 +vt 0.500000 0.964844 +vt 0.500000 0.144531 +vt 0.500000 0.082031 +vt 0.500000 0.218750 +vt 0.467662 0.402344 +vt 0.467662 0.308594 +vt 0.467662 0.597656 +vt 0.467662 0.500000 +vt 0.467662 0.781250 +vt 0.467662 0.691406 +vt 0.467662 0.917969 +vt 0.467662 0.855469 +vt 0.467662 0.035156 +vt 0.467662 0.003906 +vt 0.467662 0.996094 +vt 0.467662 0.964844 +vt 0.467662 0.144531 +vt 0.467662 0.082031 +vt 0.467662 0.218750 +vt 0.437811 0.402344 +vt 0.437811 0.308594 +vt 0.437811 0.597656 +vt 0.437811 0.500000 +vt 0.437811 0.781250 +vt 0.437811 0.691406 +vt 0.437811 0.917969 +vt 0.437811 0.855469 +vt 0.437811 0.035156 +vt 0.437811 0.003906 +vt 0.437811 0.996094 +vt 0.437811 0.964844 +vt 0.437811 0.144531 +vt 0.437811 0.082031 +vt 0.437811 0.218750 +vt 0.405473 0.402344 +vt 0.405473 0.308594 +vt 0.405473 0.597656 +vt 0.405473 0.500000 +vt 0.405473 0.781250 +vt 0.405473 0.691406 +vt 0.405473 0.917969 +vt 0.405473 0.855469 +vt 0.405473 0.035156 +vt 0.405473 0.003906 +vt 0.405473 0.996094 +vt 0.405473 0.964844 +vt 0.405473 0.144531 +vt 0.405473 0.082031 +vt 0.405473 0.218750 +vt 0.375622 0.402344 +vt 0.375622 0.308594 +vt 0.375622 0.597656 +vt 0.375622 0.500000 +vt 0.375622 0.781250 +vt 0.375622 0.691406 +vt 0.375622 0.917969 +vt 0.375622 0.855469 +vt 0.375622 0.035156 +vt 0.375622 0.003906 +vt 0.375622 0.996094 +vt 0.375622 0.964844 +vt 0.375622 0.144531 +vt 0.375622 0.082031 +vt 0.375622 0.218750 +vt 0.343284 0.402344 +vt 0.343284 0.308594 +vt 0.343284 0.597656 +vt 0.343284 0.500000 +vt 0.343284 0.781250 +vt 0.343284 0.691406 +vt 0.343284 0.917969 +vt 0.343284 0.855469 +vt 0.343284 0.035156 +vt 0.343284 0.003906 +vt 0.343284 0.996094 +vt 0.343284 0.964844 +vt 0.343284 0.144531 +vt 0.343284 0.082031 +vt 0.343284 0.218750 +vt 0.313433 0.402344 +vt 0.313433 0.308594 +vt 0.313433 0.597656 +vt 0.313433 0.500000 +vt 0.313433 0.781250 +vt 0.313433 0.691406 +vt 0.313433 0.917969 +vt 0.313433 0.855469 +vt 0.313433 0.035156 +vt 0.313433 0.003906 +vt 0.313433 0.996094 +vt 0.313433 0.964844 +vt 0.313433 0.144531 +vt 0.313433 0.082031 +vt 0.313433 0.218750 +vt 0.281095 0.402344 +vt 0.281095 0.308594 +vt 0.281095 0.597656 +vt 0.281095 0.500000 +vt 0.281095 0.781250 +vt 0.281095 0.691406 +vt 0.281095 0.917969 +vt 0.281095 0.855469 +vt 0.281095 0.035156 +vt 0.281095 0.003906 +vt 0.281095 0.996094 +vt 0.281095 0.964844 +vt 0.281095 0.144531 +vt 0.281095 0.082031 +vt 0.281095 0.218750 +vt 0.251244 0.402344 +vt 0.251244 0.308594 +vt 0.251244 0.597656 +vt 0.251244 0.500000 +vt 0.251244 0.781250 +vt 0.251244 0.691406 +vt 0.251244 0.917969 +vt 0.251244 0.855469 +vt 0.251244 0.035156 +vt 0.251244 0.003906 +vt 0.251244 0.996094 +vt 0.251244 0.964844 +vt 0.251244 0.144531 +vt 0.251244 0.082031 +vt 0.251244 0.218750 +vt 0.218905 0.000000 +vt 0.186567 0.000000 +vt 0.156716 0.000000 +vt 0.124378 0.000000 +vt 0.094527 0.000000 +vt 0.062189 0.000000 +vt 0.032338 0.000000 +vt 0.000000 0.000000 +vt 1.000000 0.000000 +vt 0.967662 0.000000 +vt 0.937811 0.000000 +vt 0.905473 0.000000 +vt 0.875622 0.000000 +vt 0.843284 0.000000 +vt 0.813433 0.000000 +vt 0.781094 0.000000 +vt 0.748756 0.000000 +vt 0.718905 0.000000 +vt 0.686567 0.000000 +vt 0.656716 0.000000 +vt 0.624378 0.000000 +vt 0.594527 0.000000 +vt 0.562189 0.000000 +vt 0.532338 0.000000 +vt 0.500000 0.000000 +vt 0.467662 0.000000 +vt 0.437811 0.000000 +vt 0.405473 0.000000 +vt 0.375622 0.000000 +vt 0.343284 0.000000 +vt 0.313433 0.000000 +vt 0.281095 0.000000 +vt 0.251244 0.000000 +vt 0.251244 1.000000 +vt 0.218905 1.000000 +vt 0.281095 1.000000 +vt 0.313433 1.000000 +vt 0.343284 1.000000 +vt 0.375622 1.000000 +vt 0.405473 1.000000 +vt 0.437811 1.000000 +vt 0.467662 1.000000 +vt 0.500000 1.000000 +vt 0.532338 1.000000 +vt 0.562189 1.000000 +vt 0.594527 1.000000 +vt 0.624378 1.000000 +vt 0.656716 1.000000 +vt 0.686567 1.000000 +vt 0.718905 1.000000 +vt 0.748756 1.000000 +vt 0.781095 1.000000 +vt 0.813433 1.000000 +vt 0.843284 1.000000 +vt 0.875622 1.000000 +vt 0.905473 1.000000 +vt 0.937811 1.000000 +vt 0.967662 1.000000 +vt 1.000000 1.000000 +vt 0.032338 1.000000 +vt 0.000000 1.000000 +vt 0.062189 1.000000 +vt 0.094527 1.000000 +vt 0.124378 1.000000 +vt 0.156716 1.000000 +vt 0.186567 1.000000 +vt 1.248756 0.998102 +vt 1.281095 0.998102 +vt 1.313433 0.998102 +vt 1.343284 0.998102 +vt 1.375622 0.998102 +vt 1.405473 0.998102 +vt 1.437811 0.998102 +vt 0.467662 0.998102 +vt 0.500000 0.998102 +vt 0.532338 0.998102 +vt 0.562189 0.998102 +vt 0.594527 0.998102 +vt 0.624378 0.998102 +vt 0.656716 0.998102 +vt 0.686567 0.998102 +vt 0.718905 0.998102 +vt 0.748756 0.998102 +vt 0.781094 0.998102 +vt 0.813433 0.998102 +vt 0.843284 0.998102 +vt 0.875622 0.998102 +vt 0.905473 0.998102 +vt 0.937811 0.998102 +vt 0.967662 0.998102 +vt 1.000000 0.998102 +vt 1.032338 0.998102 +vt 1.062189 0.998102 +vt 1.094527 0.998102 +vt 1.124378 0.998102 +vt 1.156716 0.998102 +vt 1.186567 0.998102 +vt 1.218905 0.998102 +vt 1.248756 0.001739 +vt 1.218905 0.001739 +vt 1.186567 0.001739 +vt 1.156716 0.001739 +vt 1.124378 0.001739 +vt 1.094527 0.001739 +vt 1.062189 0.001739 +vt 1.032338 0.001739 +vt 1.000000 0.001739 +vt 0.967662 0.001739 +vt 0.937811 0.001739 +vt 0.905473 0.001739 +vt 0.875622 0.001739 +vt 0.843283 0.001739 +vt 0.813433 0.001739 +vt 0.781094 0.001739 +vt 0.748756 0.001739 +vt 0.718905 0.001739 +vt 0.686567 0.001739 +vt 0.656716 0.001739 +vt 0.624378 0.001739 +vt 0.594527 0.001739 +vt 0.562189 0.001739 +vt 0.532338 0.001739 +vt 0.500000 0.001739 +vt 0.467662 0.001739 +vt 1.437811 0.001739 +vt 1.405473 0.001739 +vt 1.375622 0.001739 +vt 1.343284 0.001739 +vt 1.313433 0.001739 +vt 1.281095 0.001739 +vn -0.710100 0.704000 0.000000 +vn -0.559800 0.828600 0.000000 +vn -0.549000 0.828600 -0.109200 +vn -0.696500 0.704000 -0.138500 +vn -0.182000 -0.983300 0.000000 +vn -0.387900 -0.921700 0.000000 +vn -0.380400 -0.921700 -0.075700 +vn -0.178400 -0.983300 -0.035500 +vn -0.387900 0.921700 0.000000 +vn -0.182000 0.983300 0.000000 +vn -0.178400 0.983300 -0.035500 +vn -0.380400 0.921700 -0.075700 +vn -0.559800 -0.828600 0.000000 +vn -0.710100 -0.704000 0.000000 +vn -0.696500 -0.704000 -0.138500 +vn -0.549000 -0.828600 -0.109200 +vn -0.833300 -0.552800 0.000000 +vn -0.924700 -0.380500 0.000000 +vn -0.907000 -0.380500 -0.180400 +vn -0.817300 -0.552800 -0.162600 +vn -0.981000 -0.193900 0.000000 +vn -1.000000 0.000000 0.000000 +vn -0.980800 0.000000 -0.195100 +vn -0.962200 -0.193900 -0.191400 +vn -0.981000 0.193900 0.000000 +vn -0.924700 0.380500 0.000000 +vn -0.907000 0.380500 -0.180400 +vn -0.962200 0.193900 -0.191400 +vn -0.833300 0.552800 0.000000 +vn -0.817300 0.552800 -0.162600 +vn -0.906300 -0.193900 -0.375400 +vn -0.854400 -0.380500 -0.353900 +vn -0.906300 0.193900 -0.375400 +vn -0.923900 0.000000 -0.382700 +vn -0.769900 0.552800 -0.318900 +vn -0.854400 0.380500 -0.353900 +vn -0.517100 0.828600 -0.214200 +vn -0.656100 0.704000 -0.271700 +vn -0.358300 -0.921700 -0.148400 +vn -0.168100 -0.983300 -0.069600 +vn -0.168100 0.983300 -0.069600 +vn -0.358300 0.921700 -0.148400 +vn -0.656100 -0.704000 -0.271700 +vn -0.517100 -0.828600 -0.214200 +vn -0.769900 -0.552800 -0.318900 +vn -0.815700 -0.193900 -0.545000 +vn -0.768900 -0.380500 -0.513700 +vn -0.815700 0.193900 -0.545000 +vn -0.831400 0.000000 -0.555600 +vn -0.692900 0.552800 -0.463000 +vn -0.768900 0.380500 -0.513700 +vn -0.465400 0.828600 -0.311000 +vn -0.590400 0.704000 -0.394500 +vn -0.322500 -0.921700 -0.215500 +vn -0.151300 -0.983300 -0.101100 +vn -0.151300 0.983300 -0.101100 +vn -0.322500 0.921700 -0.215500 +vn -0.590400 -0.704000 -0.394500 +vn -0.465400 -0.828600 -0.311000 +vn -0.692900 -0.552800 -0.463000 +vn -0.693700 -0.193900 -0.693700 +vn -0.653900 -0.380500 -0.653900 +vn -0.693700 0.193900 -0.693700 +vn -0.707100 0.000000 -0.707100 +vn -0.589300 0.552800 -0.589300 +vn -0.653900 0.380500 -0.653900 +vn -0.395800 0.828600 -0.395800 +vn -0.502100 0.704000 -0.502100 +vn -0.274300 -0.921700 -0.274300 +vn -0.128600 -0.983300 -0.128600 +vn -0.128600 0.983300 -0.128600 +vn -0.274300 0.921700 -0.274300 +vn -0.502100 -0.704000 -0.502100 +vn -0.395800 -0.828600 -0.395800 +vn -0.589300 -0.552800 -0.589300 +vn -0.545000 -0.193900 -0.815700 +vn -0.513700 -0.380500 -0.768900 +vn -0.545000 0.193900 -0.815700 +vn -0.555600 0.000000 -0.831400 +vn -0.463000 0.552800 -0.692900 +vn -0.513700 0.380500 -0.768900 +vn -0.311000 0.828600 -0.465400 +vn -0.394500 0.704000 -0.590400 +vn -0.215500 -0.921700 -0.322500 +vn -0.101100 -0.983300 -0.151300 +vn -0.101100 0.983300 -0.151300 +vn -0.215500 0.921700 -0.322500 +vn -0.394500 -0.704000 -0.590400 +vn -0.311000 -0.828600 -0.465400 +vn -0.463000 -0.552800 -0.692900 +vn -0.375400 -0.193900 -0.906300 +vn -0.353900 -0.380500 -0.854400 +vn -0.375400 0.193900 -0.906300 +vn -0.382700 0.000000 -0.923900 +vn -0.318900 0.552800 -0.769900 +vn -0.353900 0.380500 -0.854400 +vn -0.214200 0.828600 -0.517100 +vn -0.271700 0.704000 -0.656100 +vn -0.148400 -0.921700 -0.358300 +vn -0.069600 -0.983300 -0.168100 +vn -0.069600 0.983300 -0.168100 +vn -0.148400 0.921700 -0.358300 +vn -0.271700 -0.704000 -0.656100 +vn -0.214200 -0.828600 -0.517100 +vn -0.318900 -0.552800 -0.769900 +vn -0.191400 -0.193900 -0.962200 +vn -0.180400 -0.380500 -0.907000 +vn -0.191400 0.193900 -0.962200 +vn -0.195100 0.000000 -0.980800 +vn -0.162600 0.552800 -0.817300 +vn -0.180400 0.380500 -0.907000 +vn -0.109200 0.828600 -0.549000 +vn -0.138500 0.704000 -0.696500 +vn -0.075700 -0.921700 -0.380400 +vn -0.035500 -0.983300 -0.178400 +vn -0.035500 0.983300 -0.178400 +vn -0.075700 0.921700 -0.380400 +vn -0.138500 -0.704000 -0.696500 +vn -0.109200 -0.828600 -0.549000 +vn -0.162600 -0.552800 -0.817300 +vn 0.000000 -0.193900 -0.981000 +vn 0.000000 -0.380500 -0.924700 +vn 0.000000 0.193900 -0.981000 +vn 0.000000 0.000000 -1.000000 +vn 0.000000 0.552800 -0.833300 +vn 0.000000 0.380500 -0.924700 +vn 0.000000 0.828600 -0.559800 +vn 0.000000 0.704000 -0.710100 +vn 0.000000 -0.921700 -0.387900 +vn 0.000000 -0.983300 -0.182000 +vn 0.000000 0.983300 -0.182000 +vn 0.000000 0.921700 -0.387900 +vn 0.000000 -0.704000 -0.710100 +vn 0.000000 -0.828600 -0.559800 +vn 0.000000 -0.552800 -0.833300 +vn 0.191400 -0.193900 -0.962200 +vn 0.180400 -0.380500 -0.907000 +vn 0.191400 0.193900 -0.962200 +vn 0.195100 0.000000 -0.980800 +vn 0.162600 0.552800 -0.817300 +vn 0.180400 0.380500 -0.907000 +vn 0.109200 0.828600 -0.549000 +vn 0.138500 0.704000 -0.696500 +vn 0.075700 -0.921700 -0.380400 +vn 0.035500 -0.983300 -0.178400 +vn 0.035500 0.983300 -0.178400 +vn 0.075700 0.921700 -0.380400 +vn 0.138500 -0.704000 -0.696500 +vn 0.109200 -0.828600 -0.549000 +vn 0.162600 -0.552800 -0.817300 +vn 0.375400 -0.193900 -0.906300 +vn 0.353900 -0.380500 -0.854400 +vn 0.375400 0.193900 -0.906300 +vn 0.382700 0.000000 -0.923900 +vn 0.318900 0.552800 -0.769900 +vn 0.353900 0.380500 -0.854400 +vn 0.214200 0.828600 -0.517100 +vn 0.271700 0.704000 -0.656100 +vn 0.148400 -0.921700 -0.358300 +vn 0.069600 -0.983300 -0.168100 +vn 0.069600 0.983300 -0.168100 +vn 0.148400 0.921700 -0.358300 +vn 0.271700 -0.704000 -0.656100 +vn 0.214200 -0.828600 -0.517100 +vn 0.318900 -0.552800 -0.769900 +vn 0.545000 -0.193900 -0.815700 +vn 0.513700 -0.380500 -0.768900 +vn 0.545000 0.193900 -0.815700 +vn 0.555600 0.000000 -0.831400 +vn 0.463000 0.552800 -0.692900 +vn 0.513700 0.380500 -0.768900 +vn 0.311000 0.828600 -0.465400 +vn 0.394500 0.704000 -0.590400 +vn 0.215500 -0.921700 -0.322500 +vn 0.101100 -0.983300 -0.151300 +vn 0.101100 0.983300 -0.151300 +vn 0.215500 0.921700 -0.322500 +vn 0.394500 -0.704000 -0.590400 +vn 0.311000 -0.828600 -0.465400 +vn 0.463000 -0.552800 -0.692900 +vn 0.693700 -0.193900 -0.693700 +vn 0.653900 -0.380500 -0.653900 +vn 0.693700 0.193900 -0.693700 +vn 0.707100 0.000000 -0.707100 +vn 0.589300 0.552800 -0.589300 +vn 0.653900 0.380500 -0.653900 +vn 0.395800 0.828600 -0.395800 +vn 0.502100 0.704000 -0.502100 +vn 0.274300 -0.921700 -0.274300 +vn 0.128600 -0.983300 -0.128600 +vn 0.128600 0.983300 -0.128600 +vn 0.274300 0.921700 -0.274300 +vn 0.502100 -0.704000 -0.502100 +vn 0.395800 -0.828600 -0.395800 +vn 0.589300 -0.552800 -0.589300 +vn 0.815700 -0.193900 -0.545000 +vn 0.768900 -0.380500 -0.513700 +vn 0.815700 0.193900 -0.545000 +vn 0.831400 0.000000 -0.555600 +vn 0.692900 0.552800 -0.463000 +vn 0.768900 0.380500 -0.513700 +vn 0.465400 0.828600 -0.311000 +vn 0.590400 0.704000 -0.394500 +vn 0.322500 -0.921700 -0.215500 +vn 0.151300 -0.983300 -0.101100 +vn 0.151300 0.983300 -0.101100 +vn 0.322500 0.921700 -0.215500 +vn 0.590400 -0.704000 -0.394500 +vn 0.465400 -0.828600 -0.311000 +vn 0.692900 -0.552800 -0.463000 +vn 0.906300 -0.193900 -0.375400 +vn 0.854400 -0.380500 -0.353900 +vn 0.906300 0.193900 -0.375400 +vn 0.923900 0.000000 -0.382700 +vn 0.769900 0.552800 -0.318900 +vn 0.854400 0.380500 -0.353900 +vn 0.517100 0.828600 -0.214200 +vn 0.656100 0.704000 -0.271700 +vn 0.358300 -0.921700 -0.148400 +vn 0.168100 -0.983300 -0.069600 +vn 0.168100 0.983300 -0.069600 +vn 0.358300 0.921700 -0.148400 +vn 0.656100 -0.704000 -0.271700 +vn 0.517100 -0.828600 -0.214200 +vn 0.769900 -0.552800 -0.318900 +vn 0.962200 -0.193900 -0.191400 +vn 0.907000 -0.380500 -0.180400 +vn 0.962200 0.193900 -0.191400 +vn 0.980800 0.000000 -0.195100 +vn 0.817300 0.552800 -0.162600 +vn 0.907000 0.380500 -0.180400 +vn 0.549000 0.828600 -0.109200 +vn 0.696500 0.704000 -0.138500 +vn 0.380400 -0.921700 -0.075700 +vn 0.178400 -0.983300 -0.035500 +vn 0.178400 0.983300 -0.035500 +vn 0.380400 0.921700 -0.075700 +vn 0.696500 -0.704000 -0.138500 +vn 0.549000 -0.828600 -0.109200 +vn 0.817300 -0.552800 -0.162600 +vn 0.981000 -0.193900 0.000000 +vn 0.924700 -0.380500 0.000000 +vn 0.981000 0.193900 0.000000 +vn 1.000000 0.000000 0.000000 +vn 0.833300 0.552800 0.000000 +vn 0.924700 0.380500 0.000000 +vn 0.559800 0.828600 0.000000 +vn 0.710100 0.704000 0.000000 +vn 0.387900 -0.921700 0.000000 +vn 0.182000 -0.983300 0.000000 +vn 0.182000 0.983300 0.000000 +vn 0.387900 0.921700 0.000000 +vn 0.710100 -0.704000 0.000000 +vn 0.559800 -0.828600 0.000000 +vn 0.833300 -0.552800 0.000000 +vn 0.962200 -0.193900 0.191400 +vn 0.907000 -0.380500 0.180400 +vn 0.962200 0.193900 0.191400 +vn 0.980800 0.000000 0.195100 +vn 0.817300 0.552800 0.162600 +vn 0.907000 0.380500 0.180400 +vn 0.549000 0.828600 0.109200 +vn 0.696500 0.704000 0.138500 +vn 0.380400 -0.921700 0.075700 +vn 0.178400 -0.983300 0.035500 +vn 0.178400 0.983300 0.035500 +vn 0.380400 0.921700 0.075700 +vn 0.696500 -0.704000 0.138500 +vn 0.549000 -0.828600 0.109200 +vn 0.817300 -0.552800 0.162600 +vn 0.906300 -0.193900 0.375400 +vn 0.854400 -0.380500 0.353900 +vn 0.906300 0.193900 0.375400 +vn 0.923900 0.000000 0.382700 +vn 0.769900 0.552800 0.318900 +vn 0.854400 0.380500 0.353900 +vn 0.517100 0.828600 0.214200 +vn 0.656100 0.704000 0.271700 +vn 0.358300 -0.921700 0.148400 +vn 0.168100 -0.983300 0.069600 +vn 0.168100 0.983300 0.069600 +vn 0.358300 0.921700 0.148400 +vn 0.656100 -0.704000 0.271700 +vn 0.517100 -0.828600 0.214200 +vn 0.769900 -0.552800 0.318900 +vn 0.815700 -0.193900 0.545000 +vn 0.768900 -0.380500 0.513700 +vn 0.815700 0.193900 0.545000 +vn 0.831400 0.000000 0.555600 +vn 0.692900 0.552800 0.463000 +vn 0.768900 0.380500 0.513700 +vn 0.465400 0.828600 0.311000 +vn 0.590400 0.704000 0.394500 +vn 0.322500 -0.921700 0.215500 +vn 0.151300 -0.983300 0.101100 +vn 0.151300 0.983300 0.101100 +vn 0.322500 0.921700 0.215500 +vn 0.590400 -0.704000 0.394500 +vn 0.465400 -0.828600 0.311000 +vn 0.692900 -0.552800 0.463000 +vn 0.693700 -0.193900 0.693700 +vn 0.653900 -0.380500 0.653900 +vn 0.693700 0.193900 0.693700 +vn 0.707100 0.000000 0.707100 +vn 0.589300 0.552800 0.589300 +vn 0.653900 0.380500 0.653900 +vn 0.395800 0.828600 0.395800 +vn 0.502100 0.704000 0.502100 +vn 0.274300 -0.921700 0.274300 +vn 0.128600 -0.983300 0.128600 +vn 0.128600 0.983300 0.128600 +vn 0.274300 0.921700 0.274300 +vn 0.502100 -0.704000 0.502100 +vn 0.395800 -0.828600 0.395800 +vn 0.589300 -0.552800 0.589300 +vn 0.545000 -0.193900 0.815700 +vn 0.513700 -0.380500 0.768900 +vn 0.545000 0.193900 0.815700 +vn 0.555600 0.000000 0.831400 +vn 0.463000 0.552800 0.692900 +vn 0.513700 0.380500 0.768900 +vn 0.311000 0.828600 0.465400 +vn 0.394500 0.704000 0.590400 +vn 0.215500 -0.921700 0.322500 +vn 0.101100 -0.983300 0.151300 +vn 0.101100 0.983300 0.151300 +vn 0.215500 0.921700 0.322500 +vn 0.394500 -0.704000 0.590400 +vn 0.311000 -0.828600 0.465400 +vn 0.463000 -0.552800 0.692900 +vn 0.375400 -0.193900 0.906300 +vn 0.353900 -0.380500 0.854400 +vn 0.375400 0.193900 0.906300 +vn 0.382700 0.000000 0.923900 +vn 0.318900 0.552800 0.769900 +vn 0.353900 0.380500 0.854400 +vn 0.214200 0.828600 0.517100 +vn 0.271700 0.704000 0.656100 +vn 0.148400 -0.921700 0.358300 +vn 0.069600 -0.983300 0.168100 +vn 0.069600 0.983300 0.168100 +vn 0.148400 0.921700 0.358300 +vn 0.271700 -0.704000 0.656100 +vn 0.214200 -0.828600 0.517100 +vn 0.318900 -0.552800 0.769900 +vn 0.191400 -0.193900 0.962200 +vn 0.180400 -0.380500 0.907000 +vn 0.191400 0.193900 0.962200 +vn 0.195100 0.000000 0.980800 +vn 0.162600 0.552800 0.817300 +vn 0.180400 0.380500 0.907000 +vn 0.109200 0.828600 0.549000 +vn 0.138500 0.704000 0.696500 +vn 0.075700 -0.921700 0.380400 +vn 0.035500 -0.983300 0.178400 +vn 0.035500 0.983300 0.178400 +vn 0.075700 0.921700 0.380400 +vn 0.138500 -0.704000 0.696500 +vn 0.109200 -0.828600 0.549000 +vn 0.162600 -0.552800 0.817300 +vn 0.000000 -0.193900 0.981000 +vn 0.000000 -0.380500 0.924700 +vn 0.000000 0.193900 0.981000 +vn 0.000000 0.000000 1.000000 +vn 0.000000 0.552800 0.833300 +vn 0.000000 0.380500 0.924700 +vn 0.000000 0.828600 0.559800 +vn 0.000000 0.704000 0.710100 +vn 0.000000 -0.921700 0.387900 +vn 0.000000 -0.983300 0.182000 +vn 0.000000 0.983300 0.182000 +vn 0.000000 0.921700 0.387900 +vn 0.000000 -0.704000 0.710100 +vn 0.000000 -0.828600 0.559800 +vn 0.000000 -0.552800 0.833300 +vn -0.191400 -0.193900 0.962200 +vn -0.180400 -0.380500 0.907000 +vn -0.191400 0.193900 0.962200 +vn -0.195100 0.000000 0.980800 +vn -0.162600 0.552800 0.817300 +vn -0.180400 0.380500 0.907000 +vn -0.109200 0.828600 0.549000 +vn -0.138500 0.704000 0.696500 +vn -0.075700 -0.921700 0.380400 +vn -0.035500 -0.983300 0.178400 +vn -0.035500 0.983300 0.178400 +vn -0.075700 0.921700 0.380400 +vn -0.138500 -0.704000 0.696500 +vn -0.109200 -0.828600 0.549000 +vn -0.162600 -0.552800 0.817300 +vn -0.375400 -0.193900 0.906300 +vn -0.353900 -0.380500 0.854400 +vn -0.375400 0.193900 0.906300 +vn -0.382700 0.000000 0.923900 +vn -0.318900 0.552800 0.769900 +vn -0.353900 0.380500 0.854400 +vn -0.214200 0.828600 0.517100 +vn -0.271700 0.704000 0.656100 +vn -0.148400 -0.921700 0.358300 +vn -0.069600 -0.983300 0.168100 +vn -0.069600 0.983300 0.168100 +vn -0.148400 0.921700 0.358300 +vn -0.271700 -0.704000 0.656100 +vn -0.214200 -0.828600 0.517100 +vn -0.318900 -0.552800 0.769900 +vn -0.545000 -0.193900 0.815700 +vn -0.513700 -0.380500 0.768900 +vn -0.545000 0.193900 0.815700 +vn -0.555600 0.000000 0.831400 +vn -0.463000 0.552800 0.692900 +vn -0.513700 0.380500 0.768900 +vn -0.311000 0.828600 0.465400 +vn -0.394500 0.704000 0.590400 +vn -0.215500 -0.921700 0.322500 +vn -0.101100 -0.983300 0.151300 +vn -0.101100 0.983300 0.151300 +vn -0.215500 0.921700 0.322500 +vn -0.394500 -0.704000 0.590400 +vn -0.311000 -0.828600 0.465400 +vn -0.463000 -0.552800 0.692900 +vn -0.693700 -0.193900 0.693700 +vn -0.653900 -0.380500 0.653900 +vn -0.693700 0.193900 0.693700 +vn -0.707100 0.000000 0.707100 +vn -0.589300 0.552800 0.589300 +vn -0.653900 0.380500 0.653900 +vn -0.395800 0.828600 0.395800 +vn -0.502100 0.704000 0.502100 +vn -0.274300 -0.921700 0.274300 +vn -0.128600 -0.983300 0.128600 +vn -0.128600 0.983300 0.128600 +vn -0.274300 0.921700 0.274300 +vn -0.502100 -0.704000 0.502100 +vn -0.395800 -0.828600 0.395800 +vn -0.589300 -0.552800 0.589300 +vn -0.815700 -0.193900 0.545000 +vn -0.768900 -0.380500 0.513700 +vn -0.815700 0.193900 0.545000 +vn -0.831400 0.000000 0.555600 +vn -0.692900 0.552800 0.463000 +vn -0.768900 0.380500 0.513700 +vn -0.465400 0.828600 0.311000 +vn -0.590400 0.704000 0.394500 +vn -0.322500 -0.921700 0.215500 +vn -0.151300 -0.983300 0.101100 +vn -0.151300 0.983300 0.101100 +vn -0.322500 0.921700 0.215500 +vn -0.590400 -0.704000 0.394500 +vn -0.465400 -0.828600 0.311000 +vn -0.692900 -0.552800 0.463000 +vn -0.906300 -0.193900 0.375400 +vn -0.854400 -0.380500 0.353900 +vn -0.906300 0.193900 0.375400 +vn -0.923900 0.000000 0.382700 +vn -0.769900 0.552800 0.318900 +vn -0.854400 0.380500 0.353900 +vn -0.517100 0.828600 0.214200 +vn -0.656100 0.704000 0.271700 +vn -0.358300 -0.921700 0.148400 +vn -0.168100 -0.983300 0.069600 +vn -0.168100 0.983300 0.069600 +vn -0.358300 0.921700 0.148400 +vn -0.656100 -0.704000 0.271700 +vn -0.517100 -0.828600 0.214200 +vn -0.769900 -0.552800 0.318900 +vn -0.962200 -0.193900 0.191400 +vn -0.907000 -0.380500 0.180400 +vn -0.962200 0.193900 0.191400 +vn -0.980800 0.000000 0.195100 +vn -0.817300 0.552800 0.162600 +vn -0.907000 0.380500 0.180400 +vn -0.549000 0.828600 0.109200 +vn -0.696500 0.704000 0.138500 +vn -0.380400 -0.921700 0.075700 +vn -0.178400 -0.983300 0.035500 +vn -0.178400 0.983300 0.035500 +vn -0.380400 0.921700 0.075700 +vn -0.696500 -0.704000 0.138500 +vn -0.549000 -0.828600 0.109200 +vn -0.817300 -0.552800 0.162600 +vn -0.030200 -0.999500 0.000000 +vn -0.029600 -0.999500 -0.005900 +vn -0.027900 -0.999500 -0.011500 +vn -0.025100 -0.999500 -0.016800 +vn -0.021300 -0.999500 -0.021300 +vn -0.016800 -0.999500 -0.025100 +vn -0.011500 -0.999500 -0.027900 +vn -0.005900 -0.999500 -0.029600 +vn 0.000000 -0.999500 -0.030200 +vn 0.005900 -0.999500 -0.029600 +vn 0.011500 -0.999500 -0.027900 +vn 0.016800 -0.999500 -0.025100 +vn 0.021300 -0.999500 -0.021300 +vn 0.025100 -0.999500 -0.016800 +vn 0.027900 -0.999500 -0.011500 +vn 0.029600 -0.999500 -0.005900 +vn 0.030200 -0.999500 0.000000 +vn 0.029600 -0.999500 0.005900 +vn 0.027900 -0.999500 0.011500 +vn 0.025100 -0.999500 0.016800 +vn 0.021300 -0.999500 0.021300 +vn 0.016800 -0.999500 0.025100 +vn 0.011500 -0.999500 0.027900 +vn 0.005900 -0.999500 0.029600 +vn 0.000000 -0.999500 0.030200 +vn -0.005900 -0.999500 0.029600 +vn -0.011500 -0.999500 0.027900 +vn -0.016800 -0.999500 0.025100 +vn -0.021300 -0.999500 0.021300 +vn -0.025100 -0.999500 0.016800 +vn -0.027900 -0.999500 0.011500 +vn -0.029600 -0.999500 0.005900 +vn -0.029600 0.999500 0.005900 +vn -0.030200 0.999500 0.000000 +vn -0.027900 0.999500 0.011500 +vn -0.025100 0.999500 0.016800 +vn -0.021300 0.999500 0.021300 +vn -0.016800 0.999500 0.025100 +vn -0.011500 0.999500 0.027900 +vn -0.005900 0.999500 0.029600 +vn 0.000000 0.999500 0.030200 +vn 0.005900 0.999500 0.029600 +vn 0.011500 0.999500 0.027900 +vn 0.016800 0.999500 0.025100 +vn 0.021300 0.999500 0.021300 +vn 0.025100 0.999500 0.016800 +vn 0.027900 0.999500 0.011500 +vn 0.029600 0.999500 0.005900 +vn 0.030200 0.999500 0.000000 +vn 0.029600 0.999500 -0.005900 +vn 0.027900 0.999500 -0.011500 +vn 0.025100 0.999500 -0.016800 +vn 0.021300 0.999500 -0.021300 +vn 0.016800 0.999500 -0.025100 +vn 0.011500 0.999500 -0.027900 +vn 0.005900 0.999500 -0.029600 +vn 0.000000 0.999500 -0.030200 +vn -0.005900 0.999500 -0.029600 +vn -0.011500 0.999500 -0.027900 +vn -0.016800 0.999500 -0.025100 +vn -0.021300 0.999500 -0.021300 +vn -0.025100 0.999500 -0.016800 +vn -0.027900 0.999500 -0.011500 +vn -0.029600 0.999500 -0.005900 +s 1 +f 4/1/1 3/2/2 18/3/3 19/4/4 +f 15/5/5 14/6/6 29/7/7 30/8/8 +f 2/9/9 1/10/10 16/11/11 17/12/12 +f 13/13/13 12/14/14 27/15/15 28/16/16 +f 11/17/17 10/18/18 25/19/19 26/20/20 +f 9/21/21 8/22/22 23/23/23 24/24/24 +f 7/25/25 6/26/26 21/27/27 22/28/28 +f 5/29/29 4/1/1 19/4/4 20/30/30 +f 3/2/2 2/9/9 17/12/12 18/3/3 +f 14/6/6 13/13/13 28/16/16 29/7/7 +f 12/14/14 11/17/17 26/20/20 27/15/15 +f 10/18/18 9/21/21 24/24/24 25/19/19 +f 8/22/22 7/25/25 22/28/28 23/23/23 +f 6/26/26 5/29/29 20/30/30 21/27/27 +f 25/19/19 24/24/24 39/31/31 40/32/32 +f 23/23/23 22/28/28 37/33/33 38/34/34 +f 21/27/27 20/30/30 35/35/35 36/36/36 +f 19/4/4 18/3/3 33/37/37 34/38/38 +f 30/8/8 29/7/7 44/39/39 45/40/40 +f 17/12/12 16/11/11 31/41/41 32/42/42 +f 28/16/16 27/15/15 42/43/43 43/44/44 +f 26/20/20 25/19/19 40/32/32 41/45/45 +f 24/24/24 23/23/23 38/34/34 39/31/31 +f 22/28/28 21/27/27 36/36/36 37/33/33 +f 20/30/30 19/4/4 34/38/38 35/35/35 +f 18/3/3 17/12/12 32/42/42 33/37/37 +f 29/7/7 28/16/16 43/44/44 44/39/39 +f 27/15/15 26/20/20 41/45/45 42/43/43 +f 40/32/32 39/31/31 54/46/46 55/47/47 +f 38/34/34 37/33/33 52/48/48 53/49/49 +f 36/36/36 35/35/35 50/50/50 51/51/51 +f 34/38/38 33/37/37 48/52/52 49/53/53 +f 45/40/40 44/39/39 59/54/54 60/55/55 +f 32/42/42 31/41/41 46/56/56 47/57/57 +f 43/44/44 42/43/43 57/58/58 58/59/59 +f 41/45/45 40/32/32 55/47/47 56/60/60 +f 39/31/31 38/34/34 53/49/49 54/46/46 +f 37/33/33 36/36/36 51/51/51 52/48/48 +f 35/35/35 34/38/38 49/53/53 50/50/50 +f 33/37/37 32/42/42 47/57/57 48/52/52 +f 44/39/39 43/44/44 58/59/59 59/54/54 +f 42/43/43 41/45/45 56/60/60 57/58/58 +f 55/47/47 54/46/46 69/61/61 70/62/62 +f 53/49/49 52/48/48 67/63/63 68/64/64 +f 51/51/51 50/50/50 65/65/65 66/66/66 +f 49/53/53 48/52/52 63/67/67 64/68/68 +f 60/55/55 59/54/54 74/69/69 75/70/70 +f 47/57/57 46/56/56 61/71/71 62/72/72 +f 58/59/59 57/58/58 72/73/73 73/74/74 +f 56/60/60 55/47/47 70/62/62 71/75/75 +f 54/46/46 53/49/49 68/64/64 69/61/61 +f 52/48/48 51/51/51 66/66/66 67/63/63 +f 50/50/50 49/53/53 64/68/68 65/65/65 +f 48/52/52 47/57/57 62/72/72 63/67/67 +f 59/54/54 58/59/59 73/74/74 74/69/69 +f 57/58/58 56/60/60 71/75/75 72/73/73 +f 70/62/62 69/61/61 84/76/76 85/77/77 +f 68/64/64 67/63/63 82/78/78 83/79/79 +f 66/66/66 65/65/65 80/80/80 81/81/81 +f 64/68/68 63/67/67 78/82/82 79/83/83 +f 75/70/70 74/69/69 89/84/84 90/85/85 +f 62/72/72 61/71/71 76/86/86 77/87/87 +f 73/74/74 72/73/73 87/88/88 88/89/89 +f 71/75/75 70/62/62 85/77/77 86/90/90 +f 69/61/61 68/64/64 83/79/79 84/76/76 +f 67/63/63 66/66/66 81/81/81 82/78/78 +f 65/65/65 64/68/68 79/83/83 80/80/80 +f 63/67/67 62/72/72 77/87/87 78/82/82 +f 74/69/69 73/74/74 88/89/89 89/84/84 +f 72/73/73 71/75/75 86/90/90 87/88/88 +f 85/77/77 84/76/76 99/91/91 100/92/92 +f 83/79/79 82/78/78 97/93/93 98/94/94 +f 81/81/81 80/80/80 95/95/95 96/96/96 +f 79/83/83 78/82/82 93/97/97 94/98/98 +f 90/85/85 89/84/84 104/99/99 105/100/100 +f 77/87/87 76/86/86 91/101/101 92/102/102 +f 88/89/89 87/88/88 102/103/103 103/104/104 +f 86/90/90 85/77/77 100/92/92 101/105/105 +f 84/76/76 83/79/79 98/94/94 99/91/91 +f 82/78/78 81/81/81 96/96/96 97/93/93 +f 80/80/80 79/83/83 94/98/98 95/95/95 +f 78/82/82 77/87/87 92/102/102 93/97/97 +f 89/84/84 88/89/89 103/104/104 104/99/99 +f 87/88/88 86/90/90 101/105/105 102/103/103 +f 100/92/92 99/91/91 114/106/106 115/107/107 +f 98/94/94 97/93/93 112/108/108 113/109/109 +f 96/96/96 95/95/95 110/110/110 111/111/111 +f 94/98/98 93/97/97 108/112/112 109/113/113 +f 105/100/100 104/99/99 119/114/114 120/115/115 +f 92/102/102 91/101/101 106/116/116 107/117/117 +f 103/104/104 102/103/103 117/118/118 118/119/119 +f 101/105/105 100/92/92 115/107/107 116/120/120 +f 99/91/91 98/94/94 113/109/109 114/106/106 +f 97/93/93 96/96/96 111/111/111 112/108/108 +f 95/95/95 94/98/98 109/113/113 110/110/110 +f 93/97/97 92/102/102 107/117/117 108/112/112 +f 104/99/99 103/104/104 118/119/119 119/114/114 +f 102/103/103 101/105/105 116/120/120 117/118/118 +f 115/121/107 114/122/106 129/123/121 130/124/122 +f 113/125/109 112/126/108 127/127/123 128/128/124 +f 111/129/111 110/130/110 125/131/125 126/132/126 +f 109/133/113 108/134/112 123/135/127 124/136/128 +f 120/137/115 119/138/114 134/139/129 135/140/130 +f 107/141/117 106/142/116 121/143/131 122/144/132 +f 118/145/119 117/146/118 132/147/133 133/148/134 +f 116/149/120 115/121/107 130/124/122 131/150/135 +f 114/122/106 113/125/109 128/128/124 129/123/121 +f 112/126/108 111/129/111 126/132/126 127/127/123 +f 110/130/110 109/133/113 124/136/128 125/131/125 +f 108/134/112 107/141/117 122/144/132 123/135/127 +f 119/138/114 118/145/119 133/148/134 134/139/129 +f 117/146/118 116/149/120 131/150/135 132/147/133 +f 130/124/122 129/123/121 144/151/136 145/152/137 +f 128/128/124 127/127/123 142/153/138 143/154/139 +f 126/132/126 125/131/125 140/155/140 141/156/141 +f 124/136/128 123/135/127 138/157/142 139/158/143 +f 135/140/130 134/139/129 149/159/144 150/160/145 +f 122/144/132 121/143/131 136/161/146 137/162/147 +f 133/148/134 132/147/133 147/163/148 148/164/149 +f 131/150/135 130/124/122 145/152/137 146/165/150 +f 129/123/121 128/128/124 143/154/139 144/151/136 +f 127/127/123 126/132/126 141/156/141 142/153/138 +f 125/131/125 124/136/128 139/158/143 140/155/140 +f 123/135/127 122/144/132 137/162/147 138/157/142 +f 134/139/129 133/148/134 148/164/149 149/159/144 +f 132/147/133 131/150/135 146/165/150 147/163/148 +f 145/152/137 144/151/136 159/166/151 160/167/152 +f 143/154/139 142/153/138 157/168/153 158/169/154 +f 141/156/141 140/155/140 155/170/155 156/171/156 +f 139/158/143 138/157/142 153/172/157 154/173/158 +f 150/160/145 149/159/144 164/174/159 165/175/160 +f 137/162/147 136/161/146 151/176/161 152/177/162 +f 148/164/149 147/163/148 162/178/163 163/179/164 +f 146/165/150 145/152/137 160/167/152 161/180/165 +f 144/151/136 143/154/139 158/169/154 159/166/151 +f 142/153/138 141/156/141 156/171/156 157/168/153 +f 140/155/140 139/158/143 154/173/158 155/170/155 +f 138/157/142 137/162/147 152/177/162 153/172/157 +f 149/159/144 148/164/149 163/179/164 164/174/159 +f 147/163/148 146/165/150 161/180/165 162/178/163 +f 160/167/152 159/166/151 174/181/166 175/182/167 +f 158/169/154 157/168/153 172/183/168 173/184/169 +f 156/171/156 155/170/155 170/185/170 171/186/171 +f 154/173/158 153/172/157 168/187/172 169/188/173 +f 165/175/160 164/174/159 179/189/174 180/190/175 +f 152/177/162 151/176/161 166/191/176 167/192/177 +f 163/179/164 162/178/163 177/193/178 178/194/179 +f 161/180/165 160/167/152 175/182/167 176/195/180 +f 159/166/151 158/169/154 173/184/169 174/181/166 +f 157/168/153 156/171/156 171/186/171 172/183/168 +f 155/170/155 154/173/158 169/188/173 170/185/170 +f 153/172/157 152/177/162 167/192/177 168/187/172 +f 164/174/159 163/179/164 178/194/179 179/189/174 +f 162/178/163 161/180/165 176/195/180 177/193/178 +f 175/182/167 174/181/166 189/196/181 190/197/182 +f 173/184/169 172/183/168 187/198/183 188/199/184 +f 171/186/171 170/185/170 185/200/185 186/201/186 +f 169/188/173 168/187/172 183/202/187 184/203/188 +f 180/190/175 179/189/174 194/204/189 195/205/190 +f 167/192/177 166/191/176 181/206/191 182/207/192 +f 178/194/179 177/193/178 192/208/193 193/209/194 +f 176/195/180 175/182/167 190/197/182 191/210/195 +f 174/181/166 173/184/169 188/199/184 189/196/181 +f 172/183/168 171/186/171 186/201/186 187/198/183 +f 170/185/170 169/188/173 184/203/188 185/200/185 +f 168/187/172 167/192/177 182/207/192 183/202/187 +f 179/189/174 178/194/179 193/209/194 194/204/189 +f 177/193/178 176/195/180 191/210/195 192/208/193 +f 190/197/182 189/196/181 204/211/196 205/212/197 +f 188/199/184 187/198/183 202/213/198 203/214/199 +f 186/201/186 185/200/185 200/215/200 201/216/201 +f 184/203/188 183/202/187 198/217/202 199/218/203 +f 195/205/190 194/204/189 209/219/204 210/220/205 +f 182/207/192 181/206/191 196/221/206 197/222/207 +f 193/209/194 192/208/193 207/223/208 208/224/209 +f 191/210/195 190/197/182 205/212/197 206/225/210 +f 189/196/181 188/199/184 203/214/199 204/211/196 +f 187/198/183 186/201/186 201/216/201 202/213/198 +f 185/200/185 184/203/188 199/218/203 200/215/200 +f 183/202/187 182/207/192 197/222/207 198/217/202 +f 194/204/189 193/209/194 208/224/209 209/219/204 +f 192/208/193 191/210/195 206/225/210 207/223/208 +f 205/212/197 204/211/196 219/226/211 220/227/212 +f 203/214/199 202/213/198 217/228/213 218/229/214 +f 201/216/201 200/215/200 215/230/215 216/231/216 +f 199/218/203 198/217/202 213/232/217 214/233/218 +f 210/220/205 209/219/204 224/234/219 225/235/220 +f 197/222/207 196/221/206 211/236/221 212/237/222 +f 208/224/209 207/223/208 222/238/223 223/239/224 +f 206/225/210 205/212/197 220/227/212 221/240/225 +f 204/211/196 203/214/199 218/229/214 219/226/211 +f 202/213/198 201/216/201 216/231/216 217/228/213 +f 200/215/200 199/218/203 214/233/218 215/230/215 +f 198/217/202 197/222/207 212/237/222 213/232/217 +f 209/219/204 208/224/209 223/239/224 224/234/219 +f 207/223/208 206/225/210 221/240/225 222/238/223 +f 220/227/212 219/226/211 234/241/226 235/242/227 +f 218/229/214 217/228/213 232/243/228 233/244/229 +f 216/231/216 215/230/215 230/245/230 231/246/231 +f 214/233/218 213/232/217 228/247/232 229/248/233 +f 225/235/220 224/234/219 239/249/234 240/250/235 +f 212/237/222 211/236/221 226/251/236 227/252/237 +f 223/239/224 222/238/223 237/253/238 238/254/239 +f 221/240/225 220/227/212 235/242/227 236/255/240 +f 219/226/211 218/229/214 233/244/229 234/241/226 +f 217/228/213 216/231/216 231/246/231 232/243/228 +f 215/230/215 214/233/218 229/248/233 230/245/230 +f 213/232/217 212/237/222 227/252/237 228/247/232 +f 224/234/219 223/239/224 238/254/239 239/249/234 +f 222/238/223 221/240/225 236/255/240 237/253/238 +f 235/242/227 234/241/226 249/256/241 250/257/242 +f 233/244/229 232/243/228 247/258/243 248/259/244 +f 231/246/231 230/245/230 245/260/245 246/261/246 +f 229/248/233 228/247/232 243/262/247 244/263/248 +f 240/250/235 239/249/234 254/264/249 255/265/250 +f 227/252/237 226/251/236 241/266/251 242/267/252 +f 238/254/239 237/253/238 252/268/253 253/269/254 +f 236/255/240 235/242/227 250/257/242 251/270/255 +f 234/241/226 233/244/229 248/259/244 249/256/241 +f 232/243/228 231/246/231 246/261/246 247/258/243 +f 230/245/230 229/248/233 244/263/248 245/260/245 +f 228/247/232 227/252/237 242/267/252 243/262/247 +f 239/249/234 238/254/239 253/269/254 254/264/249 +f 237/253/238 236/255/240 251/270/255 252/268/253 +f 250/257/242 249/256/241 264/271/256 265/272/257 +f 248/259/244 247/258/243 262/273/258 263/274/259 +f 246/261/246 245/260/245 260/275/260 261/276/261 +f 244/263/248 243/262/247 258/277/262 259/278/263 +f 255/265/250 254/264/249 269/279/264 270/280/265 +f 242/267/252 241/266/251 256/281/266 257/282/267 +f 253/269/254 252/268/253 267/283/268 268/284/269 +f 251/270/255 250/257/242 265/272/257 266/285/270 +f 249/256/241 248/259/244 263/274/259 264/271/256 +f 247/258/243 246/261/246 261/276/261 262/273/258 +f 245/260/245 244/263/248 259/278/263 260/275/260 +f 243/262/247 242/267/252 257/282/267 258/277/262 +f 254/264/249 253/269/254 268/284/269 269/279/264 +f 252/268/253 251/270/255 266/285/270 267/283/268 +f 265/272/257 264/271/256 279/286/271 280/287/272 +f 263/274/259 262/273/258 277/288/273 278/289/274 +f 261/276/261 260/275/260 275/290/275 276/291/276 +f 259/278/263 258/277/262 273/292/277 274/293/278 +f 270/280/265 269/279/264 284/294/279 285/295/280 +f 257/282/267 256/281/266 271/296/281 272/297/282 +f 268/284/269 267/283/268 282/298/283 283/299/284 +f 266/285/270 265/272/257 280/287/272 281/300/285 +f 264/271/256 263/274/259 278/289/274 279/286/271 +f 262/273/258 261/276/261 276/291/276 277/288/273 +f 260/275/260 259/278/263 274/293/278 275/290/275 +f 258/277/262 257/282/267 272/297/282 273/292/277 +f 269/279/264 268/284/269 283/299/284 284/294/279 +f 267/283/268 266/285/270 281/300/285 282/298/283 +f 280/287/272 279/286/271 294/301/286 295/302/287 +f 278/289/274 277/288/273 292/303/288 293/304/289 +f 276/291/276 275/290/275 290/305/290 291/306/291 +f 274/293/278 273/292/277 288/307/292 289/308/293 +f 285/295/280 284/294/279 299/309/294 300/310/295 +f 272/297/282 271/296/281 286/311/296 287/312/297 +f 283/299/284 282/298/283 297/313/298 298/314/299 +f 281/300/285 280/287/272 295/302/287 296/315/300 +f 279/286/271 278/289/274 293/304/289 294/301/286 +f 277/288/273 276/291/276 291/306/291 292/303/288 +f 275/290/275 274/293/278 289/308/293 290/305/290 +f 273/292/277 272/297/282 287/312/297 288/307/292 +f 284/294/279 283/299/284 298/314/299 299/309/294 +f 282/298/283 281/300/285 296/315/300 297/313/298 +f 295/302/287 294/301/286 309/316/301 310/317/302 +f 293/304/289 292/303/288 307/318/303 308/319/304 +f 291/306/291 290/305/290 305/320/305 306/321/306 +f 289/308/293 288/307/292 303/322/307 304/323/308 +f 300/310/295 299/309/294 314/324/309 315/325/310 +f 287/312/297 286/311/296 301/326/311 302/327/312 +f 298/314/299 297/313/298 312/328/313 313/329/314 +f 296/315/300 295/302/287 310/317/302 311/330/315 +f 294/301/286 293/304/289 308/319/304 309/316/301 +f 292/303/288 291/306/291 306/321/306 307/318/303 +f 290/305/290 289/308/293 304/323/308 305/320/305 +f 288/307/292 287/312/297 302/327/312 303/322/307 +f 299/309/294 298/314/299 313/329/314 314/324/309 +f 297/313/298 296/315/300 311/330/315 312/328/313 +f 310/317/302 309/316/301 324/331/316 325/332/317 +f 308/319/304 307/318/303 322/333/318 323/334/319 +f 306/321/306 305/320/305 320/335/320 321/336/321 +f 304/323/308 303/322/307 318/337/322 319/338/323 +f 315/325/310 314/324/309 329/339/324 330/340/325 +f 302/327/312 301/326/311 316/341/326 317/342/327 +f 313/329/314 312/328/313 327/343/328 328/344/329 +f 311/330/315 310/317/302 325/332/317 326/345/330 +f 309/316/301 308/319/304 323/334/319 324/331/316 +f 307/318/303 306/321/306 321/336/321 322/333/318 +f 305/320/305 304/323/308 319/338/323 320/335/320 +f 303/322/307 302/327/312 317/342/327 318/337/322 +f 314/324/309 313/329/314 328/344/329 329/339/324 +f 312/328/313 311/330/315 326/345/330 327/343/328 +f 325/332/317 324/331/316 339/346/331 340/347/332 +f 323/334/319 322/333/318 337/348/333 338/349/334 +f 321/336/321 320/335/320 335/350/335 336/351/336 +f 319/338/323 318/337/322 333/352/337 334/353/338 +f 330/340/325 329/339/324 344/354/339 345/355/340 +f 317/342/327 316/341/326 331/356/341 332/357/342 +f 328/344/329 327/343/328 342/358/343 343/359/344 +f 326/345/330 325/332/317 340/347/332 341/360/345 +f 324/331/316 323/334/319 338/349/334 339/346/331 +f 322/333/318 321/336/321 336/351/336 337/348/333 +f 320/335/320 319/338/323 334/353/338 335/350/335 +f 318/337/322 317/342/327 332/357/342 333/352/337 +f 329/339/324 328/344/329 343/359/344 344/354/339 +f 327/343/328 326/345/330 341/360/345 342/358/343 +f 340/347/332 339/346/331 354/361/346 355/362/347 +f 338/349/334 337/348/333 352/363/348 353/364/349 +f 336/351/336 335/350/335 350/365/350 351/366/351 +f 334/353/338 333/352/337 348/367/352 349/368/353 +f 345/355/340 344/354/339 359/369/354 360/370/355 +f 332/357/342 331/356/341 346/371/356 347/372/357 +f 343/359/344 342/358/343 357/373/358 358/374/359 +f 341/360/345 340/347/332 355/362/347 356/375/360 +f 339/346/331 338/349/334 353/364/349 354/361/346 +f 337/348/333 336/351/336 351/366/351 352/363/348 +f 335/350/335 334/353/338 349/368/353 350/365/350 +f 333/352/337 332/357/342 347/372/357 348/367/352 +f 344/354/339 343/359/344 358/374/359 359/369/354 +f 342/358/343 341/360/345 356/375/360 357/373/358 +f 355/362/347 354/361/346 369/376/361 370/377/362 +f 353/364/349 352/363/348 367/378/363 368/379/364 +f 351/366/351 350/365/350 365/380/365 366/381/366 +f 349/368/353 348/367/352 363/382/367 364/383/368 +f 360/370/355 359/369/354 374/384/369 375/385/370 +f 347/372/357 346/371/356 361/386/371 362/387/372 +f 358/374/359 357/373/358 372/388/373 373/389/374 +f 356/375/360 355/362/347 370/377/362 371/390/375 +f 354/361/346 353/364/349 368/379/364 369/376/361 +f 352/363/348 351/366/351 366/381/366 367/378/363 +f 350/365/350 349/368/353 364/383/368 365/380/365 +f 348/367/352 347/372/357 362/387/372 363/382/367 +f 359/369/354 358/374/359 373/389/374 374/384/369 +f 357/373/358 356/375/360 371/390/375 372/388/373 +f 370/377/362 369/376/361 384/391/376 385/392/377 +f 368/379/364 367/378/363 382/393/378 383/394/379 +f 366/381/366 365/380/365 380/395/380 381/396/381 +f 364/383/368 363/382/367 378/397/382 379/398/383 +f 375/385/370 374/384/369 389/399/384 390/400/385 +f 362/387/372 361/386/371 376/401/386 377/402/387 +f 373/389/374 372/388/373 387/403/388 388/404/389 +f 371/390/375 370/377/362 385/392/377 386/405/390 +f 369/376/361 368/379/364 383/394/379 384/391/376 +f 367/378/363 366/381/366 381/396/381 382/393/378 +f 365/380/365 364/383/368 379/398/383 380/395/380 +f 363/382/367 362/387/372 377/402/387 378/397/382 +f 374/384/369 373/389/374 388/404/389 389/399/384 +f 372/388/373 371/390/375 386/405/390 387/403/388 +f 385/392/377 384/391/376 399/406/391 400/407/392 +f 383/394/379 382/393/378 397/408/393 398/409/394 +f 381/396/381 380/395/380 395/410/395 396/411/396 +f 379/398/383 378/397/382 393/412/397 394/413/398 +f 390/400/385 389/399/384 404/414/399 405/415/400 +f 377/402/387 376/401/386 391/416/401 392/417/402 +f 388/404/389 387/403/388 402/418/403 403/419/404 +f 386/405/390 385/392/377 400/407/392 401/420/405 +f 384/391/376 383/394/379 398/409/394 399/406/391 +f 382/393/378 381/396/381 396/411/396 397/408/393 +f 380/395/380 379/398/383 394/413/398 395/410/395 +f 378/397/382 377/402/387 392/417/402 393/412/397 +f 389/399/384 388/404/389 403/419/404 404/414/399 +f 387/403/388 386/405/390 401/420/405 402/418/403 +f 400/407/392 399/406/391 414/421/406 415/422/407 +f 398/409/394 397/408/393 412/423/408 413/424/409 +f 396/411/396 395/410/395 410/425/410 411/426/411 +f 394/413/398 393/412/397 408/427/412 409/428/413 +f 405/415/400 404/414/399 419/429/414 420/430/415 +f 392/417/402 391/416/401 406/431/416 407/432/417 +f 403/419/404 402/418/403 417/433/418 418/434/419 +f 401/420/405 400/407/392 415/422/407 416/435/420 +f 399/406/391 398/409/394 413/424/409 414/421/406 +f 397/408/393 396/411/396 411/426/411 412/423/408 +f 395/410/395 394/413/398 409/428/413 410/425/410 +f 393/412/397 392/417/402 407/432/417 408/427/412 +f 404/414/399 403/419/404 418/434/419 419/429/414 +f 402/418/403 401/420/405 416/435/420 417/433/418 +f 415/422/407 414/421/406 429/436/421 430/437/422 +f 413/424/409 412/423/408 427/438/423 428/439/424 +f 411/426/411 410/425/410 425/440/425 426/441/426 +f 409/428/413 408/427/412 423/442/427 424/443/428 +f 420/430/415 419/429/414 434/444/429 435/445/430 +f 407/432/417 406/431/416 421/446/431 422/447/432 +f 418/434/419 417/433/418 432/448/433 433/449/434 +f 416/435/420 415/422/407 430/437/422 431/450/435 +f 414/421/406 413/424/409 428/439/424 429/436/421 +f 412/423/408 411/426/411 426/441/426 427/438/423 +f 410/425/410 409/428/413 424/443/428 425/440/425 +f 408/427/412 407/432/417 422/447/432 423/442/427 +f 419/429/414 418/434/419 433/449/434 434/444/429 +f 417/433/418 416/435/420 431/450/435 432/448/433 +f 430/437/422 429/436/421 444/451/436 445/452/437 +f 428/439/424 427/438/423 442/453/438 443/454/439 +f 426/441/426 425/440/425 440/455/440 441/456/441 +f 424/443/428 423/442/427 438/457/442 439/458/443 +f 435/445/430 434/444/429 449/459/444 450/460/445 +f 422/447/432 421/446/431 436/461/446 437/462/447 +f 433/449/434 432/448/433 447/463/448 448/464/449 +f 431/450/435 430/437/422 445/452/437 446/465/450 +f 429/436/421 428/439/424 443/454/439 444/451/436 +f 427/438/423 426/441/426 441/456/441 442/453/438 +f 425/440/425 424/443/428 439/458/443 440/455/440 +f 423/442/427 422/447/432 437/462/447 438/457/442 +f 434/444/429 433/449/434 448/464/449 449/459/444 +f 432/448/433 431/450/435 446/465/450 447/463/448 +f 445/452/437 444/451/436 459/466/451 460/467/452 +f 443/454/439 442/453/438 457/468/453 458/469/454 +f 441/456/441 440/455/440 455/470/455 456/471/456 +f 439/458/443 438/457/442 453/472/457 454/473/458 +f 450/460/445 449/459/444 464/474/459 465/475/460 +f 437/462/447 436/461/446 451/476/461 452/477/462 +f 448/464/449 447/463/448 462/478/463 463/479/464 +f 446/465/450 445/452/437 460/467/452 461/480/465 +f 444/451/436 443/454/439 458/469/454 459/466/451 +f 442/453/438 441/456/441 456/471/456 457/468/453 +f 440/455/440 439/458/443 454/473/458 455/470/455 +f 438/457/442 437/462/447 452/477/462 453/472/457 +f 449/459/444 448/464/449 463/479/464 464/474/459 +f 447/463/448 446/465/450 461/480/465 462/478/463 +f 460/467/452 459/466/451 474/481/466 475/482/467 +f 458/469/454 457/468/453 472/483/468 473/484/469 +f 456/471/456 455/470/455 470/485/470 471/486/471 +f 454/473/458 453/472/457 468/487/472 469/488/473 +f 465/475/460 464/474/459 479/489/474 480/490/475 +f 452/477/462 451/476/461 466/491/476 467/492/477 +f 463/479/464 462/478/463 477/493/478 478/494/479 +f 461/480/465 460/467/452 475/482/467 476/495/480 +f 459/466/451 458/469/454 473/484/469 474/481/466 +f 457/468/453 456/471/456 471/486/471 472/483/468 +f 455/470/455 454/473/458 469/488/473 470/485/470 +f 453/472/457 452/477/462 467/492/477 468/487/472 +f 464/474/459 463/479/464 478/494/479 479/489/474 +f 462/478/463 461/480/465 476/495/480 477/493/478 +f 481/496/481 15/5/5 30/8/8 485/497/482 +f 485/497/482 30/8/8 45/40/40 487/498/483 +f 487/498/483 45/40/40 60/55/55 489/499/484 +f 489/499/484 60/55/55 75/70/70 491/500/485 +f 491/500/485 75/70/70 90/85/85 493/501/486 +f 493/501/486 90/85/85 105/100/100 495/502/487 +f 495/502/487 105/100/100 120/115/115 497/503/488 +f 497/504/488 120/137/115 135/140/130 499/505/489 +f 499/505/489 135/140/130 150/160/145 501/506/490 +f 501/506/490 150/160/145 165/175/160 503/507/491 +f 503/507/491 165/175/160 180/190/175 505/508/492 +f 505/508/492 180/190/175 195/205/190 507/509/493 +f 507/509/493 195/205/190 210/220/205 509/510/494 +f 509/510/494 210/220/205 225/235/220 511/511/495 +f 511/511/495 225/235/220 240/250/235 513/512/496 +f 513/512/496 240/250/235 255/265/250 515/513/497 +f 515/513/497 255/265/250 270/280/265 517/514/498 +f 517/514/498 270/280/265 285/295/280 519/515/499 +f 519/515/499 285/295/280 300/310/295 521/516/500 +f 521/516/500 300/310/295 315/325/310 523/517/501 +f 523/517/501 315/325/310 330/340/325 525/518/502 +f 525/518/502 330/340/325 345/355/340 527/519/503 +f 527/519/503 345/355/340 360/370/355 529/520/504 +f 529/520/504 360/370/355 375/385/370 531/521/505 +f 531/521/505 375/385/370 390/400/385 533/522/506 +f 533/522/506 390/400/385 405/415/400 534/523/507 +f 534/523/507 405/415/400 420/430/415 536/524/508 +f 536/524/508 420/430/415 435/445/430 538/525/509 +f 538/525/509 435/445/430 450/460/445 540/526/510 +f 540/526/510 450/460/445 465/475/460 542/527/511 +f 542/527/511 465/475/460 480/490/475 544/528/512 +f 475/482/467 474/481/466 9/21/21 10/18/18 +f 473/484/469 472/483/468 7/25/25 8/22/22 +f 471/486/471 470/485/470 5/29/29 6/26/26 +f 469/488/473 468/487/472 3/2/2 4/1/1 +f 480/490/475 479/489/474 14/6/6 15/5/5 +f 467/492/477 466/491/476 1/10/10 2/9/9 +f 478/494/479 477/493/478 12/14/14 13/13/13 +f 476/495/480 475/482/467 10/18/18 11/17/17 +f 474/481/466 473/484/469 8/22/22 9/21/21 +f 472/483/468 471/486/471 6/26/26 7/25/25 +f 470/485/470 469/488/473 4/1/1 5/29/29 +f 544/528/512 480/490/475 15/5/5 481/496/481 +f 468/487/472 467/492/477 2/9/9 3/2/2 +f 479/489/474 478/494/479 13/13/13 14/6/6 +f 477/493/478 476/495/480 11/17/17 12/14/14 +f 466/491/476 543/529/513 483/530/514 1/10/10 +f 451/476/461 541/531/515 543/529/513 466/491/476 +f 436/461/446 539/532/516 541/531/515 451/476/461 +f 421/446/431 537/533/517 539/532/516 436/461/446 +f 406/431/416 535/534/518 537/533/517 421/446/431 +f 391/416/401 482/535/519 535/534/518 406/431/416 +f 376/401/386 532/536/520 482/535/519 391/416/401 +f 361/386/371 530/537/521 532/536/520 376/401/386 +f 346/371/356 528/538/522 530/537/521 361/386/371 +f 331/356/341 526/539/523 528/538/522 346/371/356 +f 316/341/326 524/540/524 526/539/523 331/356/341 +f 301/326/311 522/541/525 524/540/524 316/341/326 +f 286/311/296 520/542/526 522/541/525 301/326/311 +f 271/296/281 518/543/527 520/542/526 286/311/296 +f 256/281/266 516/544/528 518/543/527 271/296/281 +f 241/266/251 514/545/529 516/544/528 256/281/266 +f 226/251/236 512/546/530 514/545/529 241/266/251 +f 211/236/221 510/547/531 512/546/530 226/251/236 +f 196/221/206 508/548/532 510/547/531 211/236/221 +f 181/206/191 506/549/533 508/548/532 196/221/206 +f 166/191/176 504/550/534 506/549/533 181/206/191 +f 151/176/161 502/551/535 504/550/534 166/191/176 +f 136/161/146 500/552/536 502/551/535 151/176/161 +f 121/143/131 498/553/537 500/552/536 136/161/146 +f 106/142/116 496/554/538 498/553/537 121/143/131 +f 91/101/101 494/555/539 496/556/538 106/116/116 +f 76/86/86 492/557/540 494/555/539 91/101/101 +f 61/71/71 490/558/541 492/557/540 76/86/86 +f 46/56/56 488/559/542 490/558/541 61/71/71 +f 31/41/41 486/560/543 488/559/542 46/56/56 +f 16/11/11 484/561/544 486/560/543 31/41/41 +f 1/10/10 483/530/514 484/561/544 16/11/11 +f 543/562/513 541/563/515 539/564/516 537/565/517 535/566/518 482/567/519 532/568/520 530/569/521 528/570/522 526/571/523 524/572/524 522/573/525 520/574/526 518/575/527 516/576/528 514/577/529 512/578/530 510/579/531 508/580/532 506/581/533 504/582/534 502/583/535 500/584/536 498/585/537 496/586/538 494/587/539 492/588/540 490/589/541 488/590/542 486/591/543 484/592/544 483/593/514 +f 544/594/512 481/595/481 485/596/482 487/597/483 489/598/484 491/599/485 493/600/486 495/601/487 497/602/488 499/603/489 501/604/490 503/605/491 505/606/492 507/607/493 509/608/494 511/609/495 513/610/496 515/611/497 517/612/498 519/613/499 521/614/500 523/615/501 525/616/502 527/617/503 529/618/504 531/619/505 533/620/506 534/621/507 536/622/508 538/623/509 540/624/510 542/625/511 diff --git a/games/default/files/Nodes/slope/models/slope_test_sphere_onetexture.obj b/games/default/files/Nodes/slope/models/slope_test_sphere_onetexture.obj new file mode 100644 index 000000000..772b5707c --- /dev/null +++ b/games/default/files/Nodes/slope/models/slope_test_sphere_onetexture.obj @@ -0,0 +1,1927 @@ +# Blender v2.73 (sub 0) OBJ File: 'globe.blend' +# www.blender.org +o Sphere +v -0.097545 0.490393 0.000000 +v -0.191342 0.461940 0.000000 +v -0.277785 0.415735 0.000000 +v -0.353553 0.353553 0.000000 +v -0.415735 0.277785 0.000000 +v -0.461940 0.191342 0.000000 +v -0.490393 0.097545 0.000000 +v -0.500000 0.000000 0.000000 +v -0.490393 -0.097545 0.000000 +v -0.461940 -0.191342 0.000000 +v -0.415735 -0.277785 0.000000 +v -0.353553 -0.353553 0.000000 +v -0.277785 -0.415735 0.000000 +v -0.191342 -0.461940 0.000000 +v -0.097545 -0.490393 0.000000 +v -0.095671 0.490393 -0.019030 +v -0.187665 0.461940 -0.037329 +v -0.272448 0.415735 -0.054193 +v -0.346760 0.353553 -0.068975 +v -0.407747 0.277785 -0.081106 +v -0.453064 0.191342 -0.090120 +v -0.480970 0.097545 -0.095671 +v -0.490393 0.000000 -0.097545 +v -0.480970 -0.097545 -0.095671 +v -0.453064 -0.191342 -0.090120 +v -0.407747 -0.277785 -0.081106 +v -0.346760 -0.353553 -0.068975 +v -0.272448 -0.415735 -0.054193 +v -0.187665 -0.461940 -0.037329 +v -0.095671 -0.490393 -0.019030 +v -0.090120 0.490393 -0.037329 +v -0.176777 0.461940 -0.073223 +v -0.256640 0.415735 -0.106304 +v -0.326641 0.353553 -0.135299 +v -0.384089 0.277785 -0.159095 +v -0.426777 0.191342 -0.176777 +v -0.453064 0.097545 -0.187665 +v -0.461940 0.000000 -0.191342 +v -0.453064 -0.097545 -0.187665 +v -0.426777 -0.191342 -0.176777 +v -0.384089 -0.277785 -0.159095 +v -0.326641 -0.353553 -0.135299 +v -0.256640 -0.415735 -0.106304 +v -0.176777 -0.461940 -0.073223 +v -0.090120 -0.490393 -0.037329 +v -0.081106 0.490393 -0.054193 +v -0.159095 0.461940 -0.106304 +v -0.230970 0.415735 -0.154329 +v -0.293969 0.353553 -0.196424 +v -0.345671 0.277785 -0.230970 +v -0.384089 0.191342 -0.256640 +v -0.407746 0.097545 -0.272448 +v -0.415735 0.000000 -0.277785 +v -0.407746 -0.097545 -0.272448 +v -0.384089 -0.191342 -0.256640 +v -0.345671 -0.277785 -0.230970 +v -0.293969 -0.353553 -0.196424 +v -0.230970 -0.415735 -0.154329 +v -0.159095 -0.461940 -0.106304 +v -0.081106 -0.490393 -0.054193 +v -0.068975 0.490393 -0.068975 +v -0.135299 0.461940 -0.135299 +v -0.196424 0.415735 -0.196424 +v -0.250000 0.353553 -0.250000 +v -0.293969 0.277785 -0.293969 +v -0.326641 0.191342 -0.326641 +v -0.346760 0.097545 -0.346760 +v -0.353553 0.000000 -0.353554 +v -0.346760 -0.097545 -0.346760 +v -0.326641 -0.191342 -0.326641 +v -0.293969 -0.277785 -0.293969 +v -0.250000 -0.353553 -0.250000 +v -0.196424 -0.415735 -0.196424 +v -0.135299 -0.461940 -0.135299 +v -0.068975 -0.490393 -0.068975 +v -0.054193 0.490393 -0.081106 +v -0.106304 0.461940 -0.159095 +v -0.154329 0.415735 -0.230970 +v -0.196424 0.353553 -0.293969 +v -0.230970 0.277785 -0.345671 +v -0.256640 0.191342 -0.384089 +v -0.272447 0.097545 -0.407747 +v -0.277785 0.000000 -0.415735 +v -0.272447 -0.097545 -0.407747 +v -0.256640 -0.191342 -0.384089 +v -0.230970 -0.277785 -0.345671 +v -0.196424 -0.353553 -0.293969 +v -0.154329 -0.415735 -0.230970 +v -0.106304 -0.461940 -0.159095 +v -0.054193 -0.490393 -0.081106 +v -0.037329 0.490393 -0.090120 +v -0.073223 0.461940 -0.176777 +v -0.106304 0.415735 -0.256640 +v -0.135299 0.353553 -0.326641 +v -0.159095 0.277785 -0.384089 +v -0.176777 0.191342 -0.426777 +v -0.187665 0.097545 -0.453064 +v -0.191342 0.000000 -0.461940 +v -0.187665 -0.097545 -0.453064 +v -0.176777 -0.191342 -0.426777 +v -0.159095 -0.277785 -0.384089 +v -0.135299 -0.353553 -0.326641 +v -0.106304 -0.415735 -0.256640 +v -0.073223 -0.461940 -0.176777 +v -0.037329 -0.490393 -0.090120 +v -0.019030 0.490393 -0.095671 +v -0.037329 0.461940 -0.187665 +v -0.054193 0.415735 -0.272448 +v -0.068975 0.353553 -0.346760 +v -0.081106 0.277785 -0.407747 +v -0.090120 0.191342 -0.453064 +v -0.095671 0.097545 -0.480970 +v -0.097545 0.000000 -0.490393 +v -0.095671 -0.097545 -0.480970 +v -0.090120 -0.191342 -0.453064 +v -0.081106 -0.277785 -0.407747 +v -0.068975 -0.353553 -0.346760 +v -0.054193 -0.415735 -0.272448 +v -0.037329 -0.461940 -0.187665 +v -0.019030 -0.490393 -0.095671 +v 0.000000 0.490393 -0.097545 +v 0.000000 0.461940 -0.191342 +v 0.000000 0.415735 -0.277785 +v 0.000000 0.353553 -0.353553 +v 0.000000 0.277785 -0.415735 +v 0.000000 0.191342 -0.461940 +v 0.000000 0.097545 -0.490393 +v 0.000000 0.000000 -0.500000 +v 0.000000 -0.097545 -0.490393 +v 0.000000 -0.191342 -0.461940 +v 0.000000 -0.277785 -0.415735 +v 0.000000 -0.353553 -0.353553 +v 0.000000 -0.415735 -0.277785 +v 0.000000 -0.461940 -0.191342 +v 0.000000 -0.490393 -0.097545 +v 0.019030 0.490393 -0.095671 +v 0.037329 0.461940 -0.187665 +v 0.054193 0.415735 -0.272448 +v 0.068975 0.353553 -0.346760 +v 0.081106 0.277785 -0.407747 +v 0.090120 0.191342 -0.453064 +v 0.095671 0.097545 -0.480970 +v 0.097545 0.000000 -0.490393 +v 0.095671 -0.097545 -0.480970 +v 0.090120 -0.191342 -0.453064 +v 0.081106 -0.277785 -0.407747 +v 0.068975 -0.353553 -0.346760 +v 0.054193 -0.415735 -0.272448 +v 0.037329 -0.461940 -0.187665 +v 0.019030 -0.490393 -0.095671 +v 0.037329 0.490393 -0.090120 +v 0.073224 0.461940 -0.176777 +v 0.106304 0.415735 -0.256640 +v 0.135299 0.353553 -0.326641 +v 0.159095 0.277785 -0.384089 +v 0.176777 0.191342 -0.426777 +v 0.187665 0.097545 -0.453064 +v 0.191342 0.000000 -0.461940 +v 0.187665 -0.097545 -0.453064 +v 0.176777 -0.191342 -0.426777 +v 0.159095 -0.277785 -0.384089 +v 0.135299 -0.353553 -0.326641 +v 0.106304 -0.415735 -0.256640 +v 0.073223 -0.461940 -0.176777 +v 0.037329 -0.490393 -0.090120 +v 0.054193 0.490393 -0.081106 +v 0.106304 0.461940 -0.159095 +v 0.154329 0.415735 -0.230970 +v 0.196424 0.353553 -0.293969 +v 0.230970 0.277785 -0.345671 +v 0.256640 0.191342 -0.384089 +v 0.272448 0.097545 -0.407747 +v 0.277785 0.000000 -0.415735 +v 0.272448 -0.097545 -0.407747 +v 0.256640 -0.191342 -0.384089 +v 0.230970 -0.277785 -0.345671 +v 0.196424 -0.353553 -0.293969 +v 0.154329 -0.415735 -0.230970 +v 0.106304 -0.461940 -0.159095 +v 0.054193 -0.490393 -0.081106 +v 0.068975 0.490393 -0.068975 +v 0.135299 0.461940 -0.135299 +v 0.196424 0.415735 -0.196424 +v 0.250000 0.353553 -0.250000 +v 0.293969 0.277785 -0.293969 +v 0.326641 0.191342 -0.326641 +v 0.346760 0.097545 -0.346760 +v 0.353554 0.000000 -0.353553 +v 0.346760 -0.097545 -0.346760 +v 0.326641 -0.191342 -0.326641 +v 0.293969 -0.277785 -0.293969 +v 0.250000 -0.353553 -0.250000 +v 0.196424 -0.415735 -0.196424 +v 0.135299 -0.461940 -0.135299 +v 0.068975 -0.490393 -0.068975 +v 0.081106 0.490393 -0.054193 +v 0.159095 0.461940 -0.106304 +v 0.230970 0.415735 -0.154329 +v 0.293969 0.353553 -0.196424 +v 0.345671 0.277785 -0.230970 +v 0.384089 0.191342 -0.256640 +v 0.407747 0.097545 -0.272447 +v 0.415735 0.000000 -0.277785 +v 0.407747 -0.097545 -0.272447 +v 0.384089 -0.191342 -0.256640 +v 0.345671 -0.277785 -0.230970 +v 0.293969 -0.353553 -0.196424 +v 0.230970 -0.415735 -0.154329 +v 0.159095 -0.461940 -0.106304 +v 0.081106 -0.490393 -0.054193 +v 0.090120 0.490393 -0.037329 +v 0.176777 0.461940 -0.073223 +v 0.256640 0.415735 -0.106304 +v 0.326641 0.353553 -0.135299 +v 0.384089 0.277785 -0.159095 +v 0.426777 0.191342 -0.176777 +v 0.453064 0.097545 -0.187665 +v 0.461940 0.000000 -0.191342 +v 0.453064 -0.097545 -0.187665 +v 0.426777 -0.191342 -0.176777 +v 0.384089 -0.277785 -0.159095 +v 0.326641 -0.353553 -0.135299 +v 0.256640 -0.415735 -0.106304 +v 0.176777 -0.461940 -0.073223 +v 0.090120 -0.490393 -0.037329 +v 0.095671 0.490393 -0.019030 +v 0.187665 0.461940 -0.037329 +v 0.272448 0.415735 -0.054193 +v 0.346760 0.353553 -0.068975 +v 0.407747 0.277785 -0.081106 +v 0.453064 0.191342 -0.090120 +v 0.480970 0.097545 -0.095671 +v 0.490393 0.000000 -0.097545 +v 0.480970 -0.097545 -0.095671 +v 0.453064 -0.191342 -0.090120 +v 0.407747 -0.277785 -0.081106 +v 0.346760 -0.353553 -0.068975 +v 0.272448 -0.415735 -0.054193 +v 0.187665 -0.461940 -0.037329 +v 0.095671 -0.490393 -0.019030 +v 0.097545 0.490393 0.000000 +v 0.191342 0.461940 -0.000000 +v 0.277785 0.415735 -0.000000 +v 0.353554 0.353553 0.000000 +v 0.415735 0.277785 0.000000 +v 0.461940 0.191342 -0.000000 +v 0.490393 0.097545 0.000000 +v 0.500000 0.000000 0.000000 +v 0.490393 -0.097545 0.000000 +v 0.461940 -0.191342 -0.000000 +v 0.415735 -0.277785 0.000000 +v 0.353554 -0.353553 0.000000 +v 0.277785 -0.415735 0.000000 +v 0.191342 -0.461940 -0.000000 +v 0.097545 -0.490393 -0.000000 +v 0.095671 0.490393 0.019030 +v 0.187665 0.461940 0.037329 +v 0.272448 0.415735 0.054193 +v 0.346760 0.353553 0.068975 +v 0.407747 0.277785 0.081106 +v 0.453064 0.191342 0.090120 +v 0.480970 0.097545 0.095671 +v 0.490393 0.000000 0.097545 +v 0.480970 -0.097545 0.095671 +v 0.453064 -0.191342 0.090120 +v 0.407747 -0.277785 0.081106 +v 0.346760 -0.353553 0.068975 +v 0.272448 -0.415735 0.054193 +v 0.187665 -0.461940 0.037329 +v 0.095671 -0.490393 0.019030 +v 0.090120 0.490393 0.037329 +v 0.176777 0.461940 0.073223 +v 0.256640 0.415735 0.106304 +v 0.326641 0.353553 0.135299 +v 0.384089 0.277785 0.159095 +v 0.426777 0.191342 0.176777 +v 0.453064 0.097545 0.187665 +v 0.461940 0.000000 0.191342 +v 0.453064 -0.097545 0.187665 +v 0.426777 -0.191342 0.176777 +v 0.384089 -0.277785 0.159095 +v 0.326641 -0.353553 0.135299 +v 0.256640 -0.415735 0.106304 +v 0.176777 -0.461940 0.073223 +v 0.090120 -0.490393 0.037329 +v 0.081106 0.490393 0.054193 +v 0.159095 0.461940 0.106304 +v 0.230970 0.415735 0.154329 +v 0.293969 0.353553 0.196424 +v 0.345671 0.277785 0.230970 +v 0.384089 0.191342 0.256640 +v 0.407747 0.097545 0.272448 +v 0.415735 0.000000 0.277785 +v 0.407747 -0.097545 0.272448 +v 0.384089 -0.191342 0.256640 +v 0.345671 -0.277785 0.230970 +v 0.293969 -0.353553 0.196424 +v 0.230970 -0.415735 0.154329 +v 0.159095 -0.461940 0.106304 +v 0.081106 -0.490393 0.054193 +v 0.068975 0.490393 0.068975 +v 0.135299 0.461940 0.135299 +v 0.196424 0.415735 0.196424 +v 0.250000 0.353553 0.250000 +v 0.293969 0.277785 0.293969 +v 0.326641 0.191342 0.326641 +v 0.346760 0.097545 0.346760 +v 0.353553 0.000000 0.353553 +v 0.346760 -0.097545 0.346760 +v 0.326641 -0.191342 0.326641 +v 0.293969 -0.277785 0.293969 +v 0.250000 -0.353553 0.250000 +v 0.196424 -0.415735 0.196424 +v 0.135299 -0.461940 0.135299 +v 0.068975 -0.490393 0.068975 +v 0.054193 0.490393 0.081106 +v 0.106304 0.461940 0.159095 +v 0.154329 0.415735 0.230970 +v 0.196424 0.353553 0.293969 +v 0.230970 0.277785 0.345671 +v 0.256640 0.191342 0.384089 +v 0.272448 0.097545 0.407746 +v 0.277785 0.000000 0.415735 +v 0.272448 -0.097545 0.407746 +v 0.256640 -0.191342 0.384089 +v 0.230970 -0.277785 0.345671 +v 0.196424 -0.353553 0.293969 +v 0.154329 -0.415735 0.230970 +v 0.106304 -0.461940 0.159095 +v 0.054193 -0.490393 0.081106 +v 0.037329 0.490393 0.090120 +v 0.073223 0.461940 0.176777 +v 0.106304 0.415735 0.256640 +v 0.135299 0.353553 0.326641 +v 0.159095 0.277785 0.384089 +v 0.176777 0.191342 0.426777 +v 0.187665 0.097545 0.453064 +v 0.191342 0.000000 0.461940 +v 0.187665 -0.097545 0.453064 +v 0.176777 -0.191342 0.426777 +v 0.159095 -0.277785 0.384089 +v 0.135299 -0.353553 0.326641 +v 0.106304 -0.415735 0.256640 +v 0.073223 -0.461940 0.176777 +v 0.037329 -0.490393 0.090120 +v 0.019030 0.490393 0.095671 +v 0.037329 0.461940 0.187665 +v 0.054193 0.415735 0.272448 +v 0.068975 0.353553 0.346760 +v 0.081106 0.277785 0.407746 +v 0.090120 0.191342 0.453064 +v 0.095671 0.097545 0.480970 +v 0.097545 0.000000 0.490393 +v 0.095671 -0.097545 0.480970 +v 0.090120 -0.191342 0.453064 +v 0.081106 -0.277785 0.407746 +v 0.068975 -0.353553 0.346760 +v 0.054193 -0.415735 0.272447 +v 0.037329 -0.461940 0.187665 +v 0.019030 -0.490393 0.095671 +v 0.000000 0.490393 0.097545 +v 0.000000 0.461940 0.191342 +v 0.000000 0.415735 0.277785 +v 0.000000 0.353553 0.353553 +v 0.000000 0.277785 0.415735 +v 0.000000 0.191342 0.461940 +v 0.000000 0.097545 0.490392 +v 0.000000 0.000000 0.500000 +v 0.000000 -0.097545 0.490392 +v 0.000000 -0.191342 0.461940 +v 0.000000 -0.277785 0.415735 +v 0.000000 -0.353553 0.353553 +v 0.000000 -0.415735 0.277785 +v 0.000000 -0.461940 0.191342 +v 0.000000 -0.490393 0.097545 +v -0.019030 0.490393 0.095671 +v -0.037329 0.461940 0.187665 +v -0.054193 0.415735 0.272448 +v -0.068975 0.353553 0.346760 +v -0.081106 0.277785 0.407746 +v -0.090120 0.191342 0.453064 +v -0.095671 0.097545 0.480970 +v -0.097545 0.000000 0.490393 +v -0.095671 -0.097545 0.480970 +v -0.090120 -0.191342 0.453064 +v -0.081106 -0.277785 0.407746 +v -0.068975 -0.353553 0.346760 +v -0.054193 -0.415735 0.272447 +v -0.037329 -0.461940 0.187665 +v -0.019030 -0.490393 0.095671 +v -0.037329 0.490393 0.090120 +v -0.073223 0.461940 0.176777 +v -0.106304 0.415735 0.256640 +v -0.135299 0.353553 0.326641 +v -0.159095 0.277785 0.384089 +v -0.176777 0.191342 0.426777 +v -0.187665 0.097545 0.453063 +v -0.191342 0.000000 0.461940 +v -0.187665 -0.097545 0.453063 +v -0.176777 -0.191342 0.426777 +v -0.159095 -0.277785 0.384089 +v -0.135299 -0.353553 0.326641 +v -0.106304 -0.415735 0.256640 +v -0.073223 -0.461940 0.176777 +v -0.037329 -0.490393 0.090120 +v -0.054193 0.490393 0.081106 +v -0.106304 0.461940 0.159095 +v -0.154329 0.415735 0.230970 +v -0.196424 0.353553 0.293969 +v -0.230970 0.277785 0.345671 +v -0.256640 0.191342 0.384089 +v -0.272447 0.097545 0.407746 +v -0.277785 0.000000 0.415735 +v -0.272447 -0.097545 0.407746 +v -0.256640 -0.191342 0.384089 +v -0.230970 -0.277785 0.345671 +v -0.196424 -0.353553 0.293969 +v -0.154329 -0.415735 0.230970 +v -0.106304 -0.461940 0.159095 +v -0.054193 -0.490393 0.081106 +v -0.068975 0.490393 0.068975 +v -0.135299 0.461940 0.135299 +v -0.196424 0.415735 0.196424 +v -0.250000 0.353553 0.250000 +v -0.293969 0.277785 0.293969 +v -0.326641 0.191342 0.326641 +v -0.346760 0.097545 0.346760 +v -0.353553 0.000000 0.353553 +v -0.346760 -0.097545 0.346760 +v -0.326641 -0.191342 0.326641 +v -0.293969 -0.277785 0.293969 +v -0.250000 -0.353553 0.250000 +v -0.196424 -0.415735 0.196424 +v -0.135299 -0.461940 0.135299 +v -0.068975 -0.490393 0.068975 +v -0.081106 0.490393 0.054193 +v -0.159095 0.461940 0.106304 +v -0.230970 0.415735 0.154329 +v -0.293969 0.353553 0.196424 +v -0.345671 0.277785 0.230970 +v -0.384089 0.191342 0.256640 +v -0.407746 0.097545 0.272447 +v -0.415735 0.000000 0.277785 +v -0.407746 -0.097545 0.272447 +v -0.384089 -0.191342 0.256640 +v -0.345671 -0.277785 0.230970 +v -0.293969 -0.353553 0.196424 +v -0.230970 -0.415735 0.154329 +v -0.159095 -0.461940 0.106304 +v -0.081106 -0.490393 0.054193 +v -0.090120 0.490393 0.037329 +v -0.176776 0.461940 0.073223 +v -0.256640 0.415735 0.106304 +v -0.326641 0.353553 0.135299 +v -0.384089 0.277785 0.159095 +v -0.426776 0.191342 0.176777 +v -0.453063 0.097545 0.187665 +v -0.461939 0.000000 0.191342 +v -0.453063 -0.097545 0.187665 +v -0.426776 -0.191342 0.176777 +v -0.384089 -0.277785 0.159095 +v -0.326641 -0.353553 0.135299 +v -0.256640 -0.415735 0.106304 +v -0.176776 -0.461940 0.073223 +v -0.090120 -0.490393 0.037329 +v -0.095671 0.490393 0.019030 +v -0.187665 0.461940 0.037329 +v -0.272447 0.415735 0.054193 +v -0.346760 0.353553 0.068975 +v -0.407746 0.277785 0.081106 +v -0.453063 0.191342 0.090120 +v -0.480969 0.097545 0.095671 +v -0.490392 0.000000 0.097545 +v -0.480969 -0.097545 0.095671 +v -0.453063 -0.191342 0.090120 +v -0.407746 -0.277785 0.081106 +v -0.346760 -0.353553 0.068975 +v -0.272447 -0.415735 0.054193 +v -0.187665 -0.461940 0.037329 +v -0.095671 -0.490393 0.019030 +v -0.013167 -0.495196 0.000000 +v -0.005039 0.495196 0.012165 +v -0.013167 0.495196 0.000000 +v -0.012914 0.495196 -0.002569 +v -0.012914 -0.495196 -0.002569 +v -0.012165 0.495196 -0.005039 +v -0.012165 -0.495196 -0.005039 +v -0.010948 0.495196 -0.007315 +v -0.010948 -0.495196 -0.007315 +v -0.009311 0.495196 -0.009311 +v -0.009311 -0.495196 -0.009311 +v -0.007315 0.495196 -0.010948 +v -0.007315 -0.495196 -0.010948 +v -0.005039 0.495196 -0.012165 +v -0.005039 -0.495196 -0.012165 +v -0.002569 0.495196 -0.012914 +v -0.002569 -0.495196 -0.012914 +v 0.000000 0.495196 -0.013167 +v 0.000000 -0.495196 -0.013167 +v 0.002569 0.495196 -0.012914 +v 0.002569 -0.495196 -0.012914 +v 0.005039 0.495196 -0.012165 +v 0.005039 -0.495196 -0.012165 +v 0.007316 0.495196 -0.010948 +v 0.007316 -0.495196 -0.010948 +v 0.009311 0.495196 -0.009311 +v 0.009311 -0.495196 -0.009311 +v 0.010948 0.495196 -0.007315 +v 0.010948 -0.495196 -0.007315 +v 0.012165 0.495196 -0.005039 +v 0.012165 -0.495196 -0.005039 +v 0.012915 0.495196 -0.002569 +v 0.012915 -0.495196 -0.002569 +v 0.013168 0.495196 0.000000 +v 0.013168 -0.495196 0.000000 +v 0.012915 0.495196 0.002569 +v 0.012915 -0.495196 0.002569 +v 0.012165 0.495196 0.005039 +v 0.012165 -0.495196 0.005039 +v 0.010948 0.495196 0.007315 +v 0.010948 -0.495196 0.007315 +v 0.009311 0.495196 0.009311 +v 0.009311 -0.495196 0.009311 +v 0.007316 0.495196 0.010948 +v 0.007316 -0.495196 0.010948 +v 0.005039 0.495196 0.012165 +v 0.005039 -0.495196 0.012165 +v 0.002569 0.495196 0.012914 +v 0.002569 -0.495196 0.012914 +v 0.000000 0.495196 0.013167 +v 0.000000 -0.495196 0.013167 +v -0.002569 0.495196 0.012914 +v -0.002569 -0.495196 0.012914 +v -0.005039 -0.495196 0.012165 +v -0.007315 0.495196 0.010948 +v -0.007315 -0.495196 0.010948 +v -0.009311 0.495196 0.009311 +v -0.009311 -0.495196 0.009311 +v -0.010948 0.495196 0.007315 +v -0.010948 -0.495196 0.007315 +v -0.012165 0.495196 0.005039 +v -0.012165 -0.495196 0.005039 +v -0.012914 0.495196 0.002569 +v -0.012914 -0.495196 0.002569 +vt 0.437500 0.750000 +vt 0.437500 0.812500 +vt 0.375000 0.812500 +vt 0.375000 0.750000 +vt 0.437500 0.062500 +vt 0.437500 0.125000 +vt 0.375000 0.125000 +vt 0.375000 0.062500 +vt 0.437500 0.875000 +vt 0.437500 0.937500 +vt 0.375000 0.937500 +vt 0.375000 0.875000 +vt 0.437500 0.187500 +vt 0.437500 0.250000 +vt 0.375000 0.250000 +vt 0.375000 0.187500 +vt 0.437500 0.312500 +vt 0.437500 0.375000 +vt 0.375000 0.375000 +vt 0.375000 0.312500 +vt 0.437500 0.437500 +vt 0.437500 0.500000 +vt 0.375000 0.500000 +vt 0.375000 0.437500 +vt 0.437500 0.562500 +vt 0.437500 0.625000 +vt 0.375000 0.625000 +vt 0.375000 0.562500 +vt 0.437500 0.687500 +vt 0.375000 0.687500 +vt 0.312500 0.437500 +vt 0.312500 0.375000 +vt 0.312500 0.562500 +vt 0.312500 0.500000 +vt 0.312500 0.687500 +vt 0.312500 0.625000 +vt 0.312500 0.812500 +vt 0.312500 0.750000 +vt 0.312500 0.125000 +vt 0.312500 0.062500 +vt 0.312500 0.937500 +vt 0.312500 0.875000 +vt 0.312500 0.250000 +vt 0.312500 0.187500 +vt 0.312500 0.312500 +vt 0.250000 0.437500 +vt 0.250000 0.375000 +vt 0.250000 0.562500 +vt 0.250000 0.500000 +vt 0.250000 0.687500 +vt 0.250000 0.625000 +vt 0.250000 0.812500 +vt 0.250000 0.750000 +vt 0.250000 0.125000 +vt 0.250000 0.062500 +vt 0.250000 0.937500 +vt 0.250000 0.875000 +vt 0.250000 0.250000 +vt 0.250000 0.187500 +vt 0.250000 0.312500 +vt 0.187500 0.437500 +vt 0.187500 0.375000 +vt 0.187500 0.562500 +vt 0.187500 0.500000 +vt 0.187500 0.687500 +vt 0.187500 0.625000 +vt 0.187500 0.812500 +vt 0.187500 0.750000 +vt 0.187500 0.125000 +vt 0.187500 0.062500 +vt 0.187500 0.937500 +vt 0.187500 0.875000 +vt 0.187500 0.250000 +vt 0.187500 0.187500 +vt 0.187500 0.312500 +vt 0.125000 0.437500 +vt 0.125000 0.375000 +vt 0.125000 0.562500 +vt 0.125000 0.500000 +vt 0.125000 0.687500 +vt 0.125000 0.625000 +vt 0.125000 0.812500 +vt 0.125000 0.750000 +vt 0.125000 0.125000 +vt 0.125000 0.062500 +vt 0.125000 0.937500 +vt 0.125000 0.875000 +vt 0.125000 0.250000 +vt 0.125000 0.187500 +vt 0.125000 0.312500 +vt 0.062500 0.437500 +vt 0.062500 0.375000 +vt 0.062500 0.562500 +vt 0.062500 0.500000 +vt 0.062500 0.687500 +vt 0.062500 0.625000 +vt 0.062500 0.812500 +vt 0.062500 0.750000 +vt 0.062500 0.125000 +vt 0.062500 0.062500 +vt 0.062500 0.937500 +vt 0.062500 0.875000 +vt 0.062500 0.250000 +vt 0.062500 0.187500 +vt 0.062500 0.312500 +vt 0.000000 0.437500 +vt 0.000000 0.375000 +vt 0.000000 0.562500 +vt 0.000000 0.500000 +vt 0.000000 0.687500 +vt 0.000000 0.625000 +vt 0.000000 0.812500 +vt 0.000000 0.750000 +vt 0.000000 0.125000 +vt 0.000000 0.062500 +vt 0.000000 0.937500 +vt 0.000000 0.875000 +vt 0.000000 0.250000 +vt 0.000000 0.187500 +vt 0.000000 0.312500 +vt 1.000000 0.375000 +vt 1.000000 0.437500 +vt 0.937500 0.437500 +vt 0.937500 0.375000 +vt 1.000000 0.500000 +vt 1.000000 0.562500 +vt 0.937500 0.562500 +vt 0.937500 0.500000 +vt 1.000000 0.625000 +vt 1.000000 0.687500 +vt 0.937500 0.687500 +vt 0.937500 0.625000 +vt 1.000000 0.750000 +vt 1.000000 0.812500 +vt 0.937500 0.812500 +vt 0.937500 0.750000 +vt 1.000000 0.062500 +vt 1.000000 0.125000 +vt 0.937500 0.125000 +vt 0.937500 0.062500 +vt 1.000000 0.875000 +vt 1.000000 0.937500 +vt 0.937500 0.937500 +vt 0.937500 0.875000 +vt 1.000000 0.187500 +vt 1.000000 0.250000 +vt 0.937500 0.250000 +vt 0.937500 0.187500 +vt 1.000000 0.312500 +vt 0.937500 0.312500 +vt 0.875000 0.437500 +vt 0.875000 0.375000 +vt 0.875000 0.562500 +vt 0.875000 0.500000 +vt 0.875000 0.687500 +vt 0.875000 0.625000 +vt 0.875000 0.812500 +vt 0.875000 0.750000 +vt 0.875000 0.125000 +vt 0.875000 0.062500 +vt 0.875000 0.937500 +vt 0.875000 0.875000 +vt 0.875000 0.250000 +vt 0.875000 0.187500 +vt 0.875000 0.312500 +vt 0.812500 0.437500 +vt 0.812500 0.375000 +vt 0.812500 0.562500 +vt 0.812500 0.500000 +vt 0.812500 0.687500 +vt 0.812500 0.625000 +vt 0.812500 0.812500 +vt 0.812500 0.750000 +vt 0.812500 0.125000 +vt 0.812500 0.062500 +vt 0.812500 0.937500 +vt 0.812500 0.875000 +vt 0.812500 0.250000 +vt 0.812500 0.187500 +vt 0.812500 0.312500 +vt 0.750000 0.437500 +vt 0.750000 0.375000 +vt 0.750000 0.562500 +vt 0.750000 0.500000 +vt 0.750000 0.687500 +vt 0.750000 0.625000 +vt 0.750000 0.812500 +vt 0.750000 0.750000 +vt 0.750000 0.125000 +vt 0.750000 0.062500 +vt 0.750000 0.937500 +vt 0.750000 0.875000 +vt 0.750000 0.250000 +vt 0.750000 0.187500 +vt 0.750000 0.312500 +vt 0.687500 0.437500 +vt 0.687500 0.375000 +vt 0.687500 0.562500 +vt 0.687500 0.500000 +vt 0.687500 0.687500 +vt 0.687500 0.625000 +vt 0.687500 0.812500 +vt 0.687500 0.750000 +vt 0.687500 0.125000 +vt 0.687500 0.062500 +vt 0.687500 0.937500 +vt 0.687500 0.875000 +vt 0.687500 0.250000 +vt 0.687500 0.187500 +vt 0.687500 0.312500 +vt 0.625000 0.437500 +vt 0.625000 0.375000 +vt 0.625000 0.562500 +vt 0.625000 0.500000 +vt 0.625000 0.687500 +vt 0.625000 0.625000 +vt 0.625000 0.812500 +vt 0.625000 0.750000 +vt 0.625000 0.125000 +vt 0.625000 0.062500 +vt 0.625000 0.937500 +vt 0.625000 0.875000 +vt 0.625000 0.250000 +vt 0.625000 0.187500 +vt 0.625000 0.312500 +vt 0.562500 0.437500 +vt 0.562500 0.375000 +vt 0.562500 0.562500 +vt 0.562500 0.500000 +vt 0.562500 0.687500 +vt 0.562500 0.625000 +vt 0.562500 0.812500 +vt 0.562500 0.750000 +vt 0.562500 0.125000 +vt 0.562500 0.062500 +vt 0.562500 0.937500 +vt 0.562500 0.875000 +vt 0.562500 0.250000 +vt 0.562500 0.187500 +vt 0.562500 0.312500 +vt 0.500000 0.437500 +vt 0.500000 0.375000 +vt 0.500000 0.562500 +vt 0.500000 0.500000 +vt 0.500000 0.687500 +vt 0.500000 0.625000 +vt 0.500000 0.812500 +vt 0.500000 0.750000 +vt 0.500000 0.125000 +vt 0.500000 0.062500 +vt 0.500000 0.937500 +vt 0.500000 0.875000 +vt 0.500000 0.250000 +vt 0.500000 0.187500 +vt 0.500000 0.312500 +vt 0.437500 0.000000 +vt 0.375000 0.000000 +vt 0.312500 0.000000 +vt 0.250000 0.000000 +vt 0.187500 0.000000 +vt 0.125000 0.000000 +vt 0.062500 0.000000 +vt 0.000000 0.000000 +vt 1.000000 0.000000 +vt 0.937500 0.000000 +vt 0.875000 0.000000 +vt 0.812500 0.000000 +vt 0.750000 0.000000 +vt 0.687500 0.000000 +vt 0.625000 0.000000 +vt 0.562500 0.000000 +vt 0.500000 0.000000 +vt 0.500000 1.000000 +vt 0.437500 1.000000 +vt 0.562500 1.000000 +vt 0.625000 1.000000 +vt 0.687500 1.000000 +vt 0.750000 1.000000 +vt 0.812500 1.000000 +vt 0.875000 1.000000 +vt 0.937500 1.000000 +vt 1.000000 1.000000 +vt 0.062500 1.000000 +vt -0.000000 1.000000 +vt 0.125000 1.000000 +vt 0.187500 1.000000 +vt 0.250000 1.000000 +vt 0.312500 1.000000 +vt 0.375000 1.000000 +vt 0.031303 0.999906 +vt 0.037377 0.999307 +vt 0.043218 0.997535 +vt 0.048601 0.994658 +vt 0.053319 0.990786 +vt 0.057192 0.986068 +vt 0.060069 0.980685 +vt 0.061841 0.974844 +vt 0.062439 0.968769 +vt 0.061841 0.962695 +vt 0.060069 0.956854 +vt 0.057192 0.951471 +vt 0.053319 0.946753 +vt 0.048601 0.942881 +vt 0.043218 0.940004 +vt 0.037377 0.938232 +vt 0.031303 0.937633 +vt 0.025229 0.938232 +vt 0.019388 0.940004 +vt 0.014005 0.942881 +vt 0.009286 0.946753 +vt 0.005414 0.951471 +vt 0.002537 0.956854 +vt 0.000765 0.962695 +vt 0.000167 0.968770 +vt 0.000765 0.974844 +vt 0.002537 0.980685 +vt 0.005414 0.986068 +vt 0.009286 0.990786 +vt 0.014005 0.994658 +vt 0.019388 0.997535 +vt 0.025229 0.999307 +vn -0.710100 0.704000 0.000000 +vn -0.559800 0.828600 0.000000 +vn -0.549000 0.828600 -0.109200 +vn -0.696500 0.704000 -0.138500 +vn -0.182000 -0.983300 0.000000 +vn -0.387900 -0.921700 0.000000 +vn -0.380400 -0.921700 -0.075700 +vn -0.178400 -0.983300 -0.035500 +vn -0.387900 0.921700 0.000000 +vn -0.182000 0.983300 0.000000 +vn -0.178400 0.983300 -0.035500 +vn -0.380400 0.921700 -0.075700 +vn -0.559800 -0.828600 0.000000 +vn -0.710100 -0.704000 0.000000 +vn -0.696500 -0.704000 -0.138500 +vn -0.549000 -0.828600 -0.109200 +vn -0.833300 -0.552800 0.000000 +vn -0.924700 -0.380500 0.000000 +vn -0.907000 -0.380500 -0.180400 +vn -0.817300 -0.552800 -0.162600 +vn -0.981000 -0.193900 0.000000 +vn -1.000000 0.000000 0.000000 +vn -0.980800 0.000000 -0.195100 +vn -0.962200 -0.193900 -0.191400 +vn -0.981000 0.193900 0.000000 +vn -0.924700 0.380500 0.000000 +vn -0.907000 0.380500 -0.180400 +vn -0.962200 0.193900 -0.191400 +vn -0.833300 0.552800 0.000000 +vn -0.817300 0.552800 -0.162600 +vn -0.906300 -0.193900 -0.375400 +vn -0.854400 -0.380500 -0.353900 +vn -0.906300 0.193900 -0.375400 +vn -0.923900 0.000000 -0.382700 +vn -0.769900 0.552800 -0.318900 +vn -0.854400 0.380500 -0.353900 +vn -0.517100 0.828600 -0.214200 +vn -0.656100 0.704000 -0.271700 +vn -0.358300 -0.921700 -0.148400 +vn -0.168100 -0.983300 -0.069600 +vn -0.168100 0.983300 -0.069600 +vn -0.358300 0.921700 -0.148400 +vn -0.656100 -0.704000 -0.271700 +vn -0.517100 -0.828600 -0.214200 +vn -0.769900 -0.552800 -0.318900 +vn -0.815700 -0.193900 -0.545000 +vn -0.768900 -0.380500 -0.513700 +vn -0.815700 0.193900 -0.545000 +vn -0.831400 0.000000 -0.555600 +vn -0.692900 0.552800 -0.463000 +vn -0.768900 0.380500 -0.513700 +vn -0.465400 0.828600 -0.311000 +vn -0.590400 0.704000 -0.394500 +vn -0.322500 -0.921700 -0.215500 +vn -0.151300 -0.983300 -0.101100 +vn -0.151300 0.983300 -0.101100 +vn -0.322500 0.921700 -0.215500 +vn -0.590400 -0.704000 -0.394500 +vn -0.465400 -0.828600 -0.311000 +vn -0.692900 -0.552800 -0.463000 +vn -0.693700 -0.193900 -0.693700 +vn -0.653900 -0.380500 -0.653900 +vn -0.693700 0.193900 -0.693700 +vn -0.707100 0.000000 -0.707100 +vn -0.589300 0.552800 -0.589300 +vn -0.653900 0.380500 -0.653900 +vn -0.395800 0.828600 -0.395800 +vn -0.502100 0.704000 -0.502100 +vn -0.274300 -0.921700 -0.274300 +vn -0.128600 -0.983300 -0.128600 +vn -0.128600 0.983300 -0.128600 +vn -0.274300 0.921700 -0.274300 +vn -0.502100 -0.704000 -0.502100 +vn -0.395800 -0.828600 -0.395800 +vn -0.589300 -0.552800 -0.589300 +vn -0.545000 -0.193900 -0.815700 +vn -0.513700 -0.380500 -0.768900 +vn -0.545000 0.193900 -0.815700 +vn -0.555600 0.000000 -0.831400 +vn -0.463000 0.552800 -0.692900 +vn -0.513700 0.380500 -0.768900 +vn -0.311000 0.828600 -0.465400 +vn -0.394500 0.704000 -0.590400 +vn -0.215500 -0.921700 -0.322500 +vn -0.101100 -0.983300 -0.151300 +vn -0.101100 0.983300 -0.151300 +vn -0.215500 0.921700 -0.322500 +vn -0.394500 -0.704000 -0.590400 +vn -0.311000 -0.828600 -0.465400 +vn -0.463000 -0.552800 -0.692900 +vn -0.375400 -0.193900 -0.906300 +vn -0.353900 -0.380500 -0.854400 +vn -0.375400 0.193900 -0.906300 +vn -0.382700 0.000000 -0.923900 +vn -0.318900 0.552800 -0.769900 +vn -0.353900 0.380500 -0.854400 +vn -0.214200 0.828600 -0.517100 +vn -0.271700 0.704000 -0.656100 +vn -0.148400 -0.921700 -0.358300 +vn -0.069600 -0.983300 -0.168100 +vn -0.069600 0.983300 -0.168100 +vn -0.148400 0.921700 -0.358300 +vn -0.271700 -0.704000 -0.656100 +vn -0.214200 -0.828600 -0.517100 +vn -0.318900 -0.552800 -0.769900 +vn -0.191400 -0.193900 -0.962200 +vn -0.180400 -0.380500 -0.907000 +vn -0.191400 0.193900 -0.962200 +vn -0.195100 0.000000 -0.980800 +vn -0.162600 0.552800 -0.817300 +vn -0.180400 0.380500 -0.907000 +vn -0.109200 0.828600 -0.549000 +vn -0.138500 0.704000 -0.696500 +vn -0.075700 -0.921700 -0.380400 +vn -0.035500 -0.983300 -0.178400 +vn -0.035500 0.983300 -0.178400 +vn -0.075700 0.921700 -0.380400 +vn -0.138500 -0.704000 -0.696500 +vn -0.109200 -0.828600 -0.549000 +vn -0.162600 -0.552800 -0.817300 +vn 0.000000 -0.193900 -0.981000 +vn 0.000000 -0.380500 -0.924700 +vn 0.000000 0.193900 -0.981000 +vn 0.000000 0.000000 -1.000000 +vn 0.000000 0.552800 -0.833300 +vn 0.000000 0.380500 -0.924700 +vn 0.000000 0.828600 -0.559800 +vn 0.000000 0.704000 -0.710100 +vn 0.000000 -0.921700 -0.387900 +vn 0.000000 -0.983300 -0.182000 +vn 0.000000 0.983300 -0.182000 +vn 0.000000 0.921700 -0.387900 +vn 0.000000 -0.704000 -0.710100 +vn 0.000000 -0.828600 -0.559800 +vn 0.000000 -0.552800 -0.833300 +vn 0.191400 -0.193900 -0.962200 +vn 0.180400 -0.380500 -0.907000 +vn 0.191400 0.193900 -0.962200 +vn 0.195100 0.000000 -0.980800 +vn 0.162600 0.552800 -0.817300 +vn 0.180400 0.380500 -0.907000 +vn 0.109200 0.828600 -0.549000 +vn 0.138500 0.704000 -0.696500 +vn 0.075700 -0.921700 -0.380400 +vn 0.035500 -0.983300 -0.178400 +vn 0.035500 0.983300 -0.178400 +vn 0.075700 0.921700 -0.380400 +vn 0.138500 -0.704000 -0.696500 +vn 0.109200 -0.828600 -0.549000 +vn 0.162600 -0.552800 -0.817300 +vn 0.375400 -0.193900 -0.906300 +vn 0.353900 -0.380500 -0.854400 +vn 0.375400 0.193900 -0.906300 +vn 0.382700 0.000000 -0.923900 +vn 0.318900 0.552800 -0.769900 +vn 0.353900 0.380500 -0.854400 +vn 0.214200 0.828600 -0.517100 +vn 0.271700 0.704000 -0.656100 +vn 0.148400 -0.921700 -0.358300 +vn 0.069600 -0.983300 -0.168100 +vn 0.069600 0.983300 -0.168100 +vn 0.148400 0.921700 -0.358300 +vn 0.271700 -0.704000 -0.656100 +vn 0.214200 -0.828600 -0.517100 +vn 0.318900 -0.552800 -0.769900 +vn 0.545000 -0.193900 -0.815700 +vn 0.513700 -0.380500 -0.768900 +vn 0.545000 0.193900 -0.815700 +vn 0.555600 0.000000 -0.831400 +vn 0.463000 0.552800 -0.692900 +vn 0.513700 0.380500 -0.768900 +vn 0.311000 0.828600 -0.465400 +vn 0.394500 0.704000 -0.590400 +vn 0.215500 -0.921700 -0.322500 +vn 0.101100 -0.983300 -0.151300 +vn 0.101100 0.983300 -0.151300 +vn 0.215500 0.921700 -0.322500 +vn 0.394500 -0.704000 -0.590400 +vn 0.311000 -0.828600 -0.465400 +vn 0.463000 -0.552800 -0.692900 +vn 0.693700 -0.193900 -0.693700 +vn 0.653900 -0.380500 -0.653900 +vn 0.693700 0.193900 -0.693700 +vn 0.707100 0.000000 -0.707100 +vn 0.589300 0.552800 -0.589300 +vn 0.653900 0.380500 -0.653900 +vn 0.395800 0.828600 -0.395800 +vn 0.502100 0.704000 -0.502100 +vn 0.274300 -0.921700 -0.274300 +vn 0.128600 -0.983300 -0.128600 +vn 0.128600 0.983300 -0.128600 +vn 0.274300 0.921700 -0.274300 +vn 0.502100 -0.704000 -0.502100 +vn 0.395800 -0.828600 -0.395800 +vn 0.589300 -0.552800 -0.589300 +vn 0.815700 -0.193900 -0.545000 +vn 0.768900 -0.380500 -0.513700 +vn 0.815700 0.193900 -0.545000 +vn 0.831400 0.000000 -0.555600 +vn 0.692900 0.552800 -0.463000 +vn 0.768900 0.380500 -0.513700 +vn 0.465400 0.828600 -0.311000 +vn 0.590400 0.704000 -0.394500 +vn 0.322500 -0.921700 -0.215500 +vn 0.151300 -0.983300 -0.101100 +vn 0.151300 0.983300 -0.101100 +vn 0.322500 0.921700 -0.215500 +vn 0.590400 -0.704000 -0.394500 +vn 0.465400 -0.828600 -0.311000 +vn 0.692900 -0.552800 -0.463000 +vn 0.906300 -0.193900 -0.375400 +vn 0.854400 -0.380500 -0.353900 +vn 0.906300 0.193900 -0.375400 +vn 0.923900 0.000000 -0.382700 +vn 0.769900 0.552800 -0.318900 +vn 0.854400 0.380500 -0.353900 +vn 0.517100 0.828600 -0.214200 +vn 0.656100 0.704000 -0.271700 +vn 0.358300 -0.921700 -0.148400 +vn 0.168100 -0.983300 -0.069600 +vn 0.168100 0.983300 -0.069600 +vn 0.358300 0.921700 -0.148400 +vn 0.656100 -0.704000 -0.271700 +vn 0.517100 -0.828600 -0.214200 +vn 0.769900 -0.552800 -0.318900 +vn 0.962200 -0.193900 -0.191400 +vn 0.907000 -0.380500 -0.180400 +vn 0.962200 0.193900 -0.191400 +vn 0.980800 0.000000 -0.195100 +vn 0.817300 0.552800 -0.162600 +vn 0.907000 0.380500 -0.180400 +vn 0.549000 0.828600 -0.109200 +vn 0.696500 0.704000 -0.138500 +vn 0.380400 -0.921700 -0.075700 +vn 0.178400 -0.983300 -0.035500 +vn 0.178400 0.983300 -0.035500 +vn 0.380400 0.921700 -0.075700 +vn 0.696500 -0.704000 -0.138500 +vn 0.549000 -0.828600 -0.109200 +vn 0.817300 -0.552800 -0.162600 +vn 0.981000 -0.193900 0.000000 +vn 0.924700 -0.380500 0.000000 +vn 0.981000 0.193900 0.000000 +vn 1.000000 0.000000 0.000000 +vn 0.833300 0.552800 0.000000 +vn 0.924700 0.380500 0.000000 +vn 0.559800 0.828600 0.000000 +vn 0.710100 0.704000 0.000000 +vn 0.387900 -0.921700 0.000000 +vn 0.182000 -0.983300 0.000000 +vn 0.182000 0.983300 0.000000 +vn 0.387900 0.921700 0.000000 +vn 0.710100 -0.704000 0.000000 +vn 0.559800 -0.828600 0.000000 +vn 0.833300 -0.552800 0.000000 +vn 0.962200 -0.193900 0.191400 +vn 0.907000 -0.380500 0.180400 +vn 0.962200 0.193900 0.191400 +vn 0.980800 0.000000 0.195100 +vn 0.817300 0.552800 0.162600 +vn 0.907000 0.380500 0.180400 +vn 0.549000 0.828600 0.109200 +vn 0.696500 0.704000 0.138500 +vn 0.380400 -0.921700 0.075700 +vn 0.178400 -0.983300 0.035500 +vn 0.178400 0.983300 0.035500 +vn 0.380400 0.921700 0.075700 +vn 0.696500 -0.704000 0.138500 +vn 0.549000 -0.828600 0.109200 +vn 0.817300 -0.552800 0.162600 +vn 0.906300 -0.193900 0.375400 +vn 0.854400 -0.380500 0.353900 +vn 0.906300 0.193900 0.375400 +vn 0.923900 0.000000 0.382700 +vn 0.769900 0.552800 0.318900 +vn 0.854400 0.380500 0.353900 +vn 0.517100 0.828600 0.214200 +vn 0.656100 0.704000 0.271700 +vn 0.358300 -0.921700 0.148400 +vn 0.168100 -0.983300 0.069600 +vn 0.168100 0.983300 0.069600 +vn 0.358300 0.921700 0.148400 +vn 0.656100 -0.704000 0.271700 +vn 0.517100 -0.828600 0.214200 +vn 0.769900 -0.552800 0.318900 +vn 0.815700 -0.193900 0.545000 +vn 0.768900 -0.380500 0.513700 +vn 0.815700 0.193900 0.545000 +vn 0.831400 0.000000 0.555600 +vn 0.692900 0.552800 0.463000 +vn 0.768900 0.380500 0.513700 +vn 0.465400 0.828600 0.311000 +vn 0.590400 0.704000 0.394500 +vn 0.322500 -0.921700 0.215500 +vn 0.151300 -0.983300 0.101100 +vn 0.151300 0.983300 0.101100 +vn 0.322500 0.921700 0.215500 +vn 0.590400 -0.704000 0.394500 +vn 0.465400 -0.828600 0.311000 +vn 0.692900 -0.552800 0.463000 +vn 0.693700 -0.193900 0.693700 +vn 0.653900 -0.380500 0.653900 +vn 0.693700 0.193900 0.693700 +vn 0.707100 0.000000 0.707100 +vn 0.589300 0.552800 0.589300 +vn 0.653900 0.380500 0.653900 +vn 0.395800 0.828600 0.395800 +vn 0.502100 0.704000 0.502100 +vn 0.274300 -0.921700 0.274300 +vn 0.128600 -0.983300 0.128600 +vn 0.128600 0.983300 0.128600 +vn 0.274300 0.921700 0.274300 +vn 0.502100 -0.704000 0.502100 +vn 0.395800 -0.828600 0.395800 +vn 0.589300 -0.552800 0.589300 +vn 0.545000 -0.193900 0.815700 +vn 0.513700 -0.380500 0.768900 +vn 0.545000 0.193900 0.815700 +vn 0.555600 0.000000 0.831400 +vn 0.463000 0.552800 0.692900 +vn 0.513700 0.380500 0.768900 +vn 0.311000 0.828600 0.465400 +vn 0.394500 0.704000 0.590400 +vn 0.215500 -0.921700 0.322500 +vn 0.101100 -0.983300 0.151300 +vn 0.101100 0.983300 0.151300 +vn 0.215500 0.921700 0.322500 +vn 0.394500 -0.704000 0.590400 +vn 0.311000 -0.828600 0.465400 +vn 0.463000 -0.552800 0.692900 +vn 0.375400 -0.193900 0.906300 +vn 0.353900 -0.380500 0.854400 +vn 0.375400 0.193900 0.906300 +vn 0.382700 0.000000 0.923900 +vn 0.318900 0.552800 0.769900 +vn 0.353900 0.380500 0.854400 +vn 0.214200 0.828600 0.517100 +vn 0.271700 0.704000 0.656100 +vn 0.148400 -0.921700 0.358300 +vn 0.069600 -0.983300 0.168100 +vn 0.069600 0.983300 0.168100 +vn 0.148400 0.921700 0.358300 +vn 0.271700 -0.704000 0.656100 +vn 0.214200 -0.828600 0.517100 +vn 0.318900 -0.552800 0.769900 +vn 0.191400 -0.193900 0.962200 +vn 0.180400 -0.380500 0.907000 +vn 0.191400 0.193900 0.962200 +vn 0.195100 0.000000 0.980800 +vn 0.162600 0.552800 0.817300 +vn 0.180400 0.380500 0.907000 +vn 0.109200 0.828600 0.549000 +vn 0.138500 0.704000 0.696500 +vn 0.075700 -0.921700 0.380400 +vn 0.035500 -0.983300 0.178400 +vn 0.035500 0.983300 0.178400 +vn 0.075700 0.921700 0.380400 +vn 0.138500 -0.704000 0.696500 +vn 0.109200 -0.828600 0.549000 +vn 0.162600 -0.552800 0.817300 +vn 0.000000 -0.193900 0.981000 +vn 0.000000 -0.380500 0.924700 +vn 0.000000 0.193900 0.981000 +vn 0.000000 0.000000 1.000000 +vn 0.000000 0.552800 0.833300 +vn 0.000000 0.380500 0.924700 +vn 0.000000 0.828600 0.559800 +vn 0.000000 0.704000 0.710100 +vn 0.000000 -0.921700 0.387900 +vn 0.000000 -0.983300 0.182000 +vn 0.000000 0.983300 0.182000 +vn 0.000000 0.921700 0.387900 +vn 0.000000 -0.704000 0.710100 +vn 0.000000 -0.828600 0.559800 +vn 0.000000 -0.552800 0.833300 +vn -0.191400 -0.193900 0.962200 +vn -0.180400 -0.380500 0.907000 +vn -0.191400 0.193900 0.962200 +vn -0.195100 0.000000 0.980800 +vn -0.162600 0.552800 0.817300 +vn -0.180400 0.380500 0.907000 +vn -0.109200 0.828600 0.549000 +vn -0.138500 0.704000 0.696500 +vn -0.075700 -0.921700 0.380400 +vn -0.035500 -0.983300 0.178400 +vn -0.035500 0.983300 0.178400 +vn -0.075700 0.921700 0.380400 +vn -0.138500 -0.704000 0.696500 +vn -0.109200 -0.828600 0.549000 +vn -0.162600 -0.552800 0.817300 +vn -0.375400 -0.193900 0.906300 +vn -0.353900 -0.380500 0.854400 +vn -0.375400 0.193900 0.906300 +vn -0.382700 0.000000 0.923900 +vn -0.318900 0.552800 0.769900 +vn -0.353900 0.380500 0.854400 +vn -0.214200 0.828600 0.517100 +vn -0.271700 0.704000 0.656100 +vn -0.148400 -0.921700 0.358300 +vn -0.069600 -0.983300 0.168100 +vn -0.069600 0.983300 0.168100 +vn -0.148400 0.921700 0.358300 +vn -0.271700 -0.704000 0.656100 +vn -0.214200 -0.828600 0.517100 +vn -0.318900 -0.552800 0.769900 +vn -0.545000 -0.193900 0.815700 +vn -0.513700 -0.380500 0.768900 +vn -0.545000 0.193900 0.815700 +vn -0.555600 0.000000 0.831400 +vn -0.463000 0.552800 0.692900 +vn -0.513700 0.380500 0.768900 +vn -0.311000 0.828600 0.465400 +vn -0.394500 0.704000 0.590400 +vn -0.215500 -0.921700 0.322500 +vn -0.101100 -0.983300 0.151300 +vn -0.101100 0.983300 0.151300 +vn -0.215500 0.921700 0.322500 +vn -0.394500 -0.704000 0.590400 +vn -0.311000 -0.828600 0.465400 +vn -0.463000 -0.552800 0.692900 +vn -0.693700 -0.193900 0.693700 +vn -0.653900 -0.380500 0.653900 +vn -0.693700 0.193900 0.693700 +vn -0.707100 0.000000 0.707100 +vn -0.589300 0.552800 0.589300 +vn -0.653900 0.380500 0.653900 +vn -0.395800 0.828600 0.395800 +vn -0.502100 0.704000 0.502100 +vn -0.274300 -0.921700 0.274300 +vn -0.128600 -0.983300 0.128600 +vn -0.128600 0.983300 0.128600 +vn -0.274300 0.921700 0.274300 +vn -0.502100 -0.704000 0.502100 +vn -0.395800 -0.828600 0.395800 +vn -0.589300 -0.552800 0.589300 +vn -0.815700 -0.193900 0.545000 +vn -0.768900 -0.380500 0.513700 +vn -0.815700 0.193900 0.545000 +vn -0.831400 0.000000 0.555600 +vn -0.692900 0.552800 0.463000 +vn -0.768900 0.380500 0.513700 +vn -0.465400 0.828600 0.311000 +vn -0.590400 0.704000 0.394500 +vn -0.322500 -0.921700 0.215500 +vn -0.151300 -0.983300 0.101100 +vn -0.151300 0.983300 0.101100 +vn -0.322500 0.921700 0.215500 +vn -0.590400 -0.704000 0.394500 +vn -0.465400 -0.828600 0.311000 +vn -0.692900 -0.552800 0.463000 +vn -0.906300 -0.193900 0.375400 +vn -0.854400 -0.380500 0.353900 +vn -0.906300 0.193900 0.375400 +vn -0.923900 0.000000 0.382700 +vn -0.769900 0.552800 0.318900 +vn -0.854400 0.380500 0.353900 +vn -0.517100 0.828600 0.214200 +vn -0.656100 0.704000 0.271700 +vn -0.358300 -0.921700 0.148400 +vn -0.168100 -0.983300 0.069600 +vn -0.168100 0.983300 0.069600 +vn -0.358300 0.921700 0.148400 +vn -0.656100 -0.704000 0.271700 +vn -0.517100 -0.828600 0.214200 +vn -0.769900 -0.552800 0.318900 +vn -0.962200 -0.193900 0.191400 +vn -0.907000 -0.380500 0.180400 +vn -0.962200 0.193900 0.191400 +vn -0.980800 0.000000 0.195100 +vn -0.817300 0.552800 0.162600 +vn -0.907000 0.380500 0.180400 +vn -0.549000 0.828600 0.109200 +vn -0.696500 0.704000 0.138500 +vn -0.380400 -0.921700 0.075700 +vn -0.178400 -0.983300 0.035500 +vn -0.178400 0.983300 0.035500 +vn -0.380400 0.921700 0.075700 +vn -0.696500 -0.704000 0.138500 +vn -0.549000 -0.828600 0.109200 +vn -0.817300 -0.552800 0.162600 +vn -0.030200 -0.999500 0.000000 +vn -0.029600 -0.999500 -0.005900 +vn -0.027900 -0.999500 -0.011500 +vn -0.025100 -0.999500 -0.016800 +vn -0.021300 -0.999500 -0.021300 +vn -0.016800 -0.999500 -0.025100 +vn -0.011500 -0.999500 -0.027900 +vn -0.005900 -0.999500 -0.029600 +vn 0.000000 -0.999500 -0.030200 +vn 0.005900 -0.999500 -0.029600 +vn 0.011500 -0.999500 -0.027900 +vn 0.016800 -0.999500 -0.025100 +vn 0.021300 -0.999500 -0.021300 +vn 0.025100 -0.999500 -0.016800 +vn 0.027900 -0.999500 -0.011500 +vn 0.029600 -0.999500 -0.005900 +vn 0.030200 -0.999500 0.000000 +vn 0.029600 -0.999500 0.005900 +vn 0.027900 -0.999500 0.011500 +vn 0.025100 -0.999500 0.016800 +vn 0.021300 -0.999500 0.021300 +vn 0.016800 -0.999500 0.025100 +vn 0.011500 -0.999500 0.027900 +vn 0.005900 -0.999500 0.029600 +vn 0.000000 -0.999500 0.030200 +vn -0.005900 -0.999500 0.029600 +vn -0.011500 -0.999500 0.027900 +vn -0.016800 -0.999500 0.025100 +vn -0.021300 -0.999500 0.021300 +vn -0.025100 -0.999500 0.016800 +vn -0.027900 -0.999500 0.011500 +vn -0.029600 -0.999500 0.005900 +vn -0.029600 0.999500 0.005900 +vn -0.030200 0.999500 0.000000 +vn -0.027900 0.999500 0.011500 +vn -0.025100 0.999500 0.016800 +vn -0.021300 0.999500 0.021300 +vn -0.016800 0.999500 0.025100 +vn -0.011500 0.999500 0.027900 +vn -0.005900 0.999500 0.029600 +vn 0.000000 0.999500 0.030200 +vn 0.005900 0.999500 0.029600 +vn 0.011500 0.999500 0.027900 +vn 0.016800 0.999500 0.025100 +vn 0.021300 0.999500 0.021300 +vn 0.025100 0.999500 0.016800 +vn 0.027900 0.999500 0.011500 +vn 0.029600 0.999500 0.005900 +vn 0.030200 0.999500 0.000000 +vn 0.029600 0.999500 -0.005900 +vn 0.027900 0.999500 -0.011500 +vn 0.025100 0.999500 -0.016800 +vn 0.021300 0.999500 -0.021300 +vn 0.016800 0.999500 -0.025100 +vn 0.011500 0.999500 -0.027900 +vn 0.005900 0.999500 -0.029600 +vn 0.000000 0.999500 -0.030200 +vn -0.005900 0.999500 -0.029600 +vn -0.011500 0.999500 -0.027900 +vn -0.016800 0.999500 -0.025100 +vn -0.021300 0.999500 -0.021300 +vn -0.025100 0.999500 -0.016800 +vn -0.027900 0.999500 -0.011500 +vn -0.029600 0.999500 -0.005900 +s 1 +f 4/1/1 3/2/2 18/3/3 19/4/4 +f 15/5/5 14/6/6 29/7/7 30/8/8 +f 2/9/9 1/10/10 16/11/11 17/12/12 +f 13/13/13 12/14/14 27/15/15 28/16/16 +f 11/17/17 10/18/18 25/19/19 26/20/20 +f 9/21/21 8/22/22 23/23/23 24/24/24 +f 7/25/25 6/26/26 21/27/27 22/28/28 +f 5/29/29 4/1/1 19/4/4 20/30/30 +f 3/2/2 2/9/9 17/12/12 18/3/3 +f 14/6/6 13/13/13 28/16/16 29/7/7 +f 12/14/14 11/17/17 26/20/20 27/15/15 +f 10/18/18 9/21/21 24/24/24 25/19/19 +f 8/22/22 7/25/25 22/28/28 23/23/23 +f 6/26/26 5/29/29 20/30/30 21/27/27 +f 25/19/19 24/24/24 39/31/31 40/32/32 +f 23/23/23 22/28/28 37/33/33 38/34/34 +f 21/27/27 20/30/30 35/35/35 36/36/36 +f 19/4/4 18/3/3 33/37/37 34/38/38 +f 30/8/8 29/7/7 44/39/39 45/40/40 +f 17/12/12 16/11/11 31/41/41 32/42/42 +f 28/16/16 27/15/15 42/43/43 43/44/44 +f 26/20/20 25/19/19 40/32/32 41/45/45 +f 24/24/24 23/23/23 38/34/34 39/31/31 +f 22/28/28 21/27/27 36/36/36 37/33/33 +f 20/30/30 19/4/4 34/38/38 35/35/35 +f 18/3/3 17/12/12 32/42/42 33/37/37 +f 29/7/7 28/16/16 43/44/44 44/39/39 +f 27/15/15 26/20/20 41/45/45 42/43/43 +f 40/32/32 39/31/31 54/46/46 55/47/47 +f 38/34/34 37/33/33 52/48/48 53/49/49 +f 36/36/36 35/35/35 50/50/50 51/51/51 +f 34/38/38 33/37/37 48/52/52 49/53/53 +f 45/40/40 44/39/39 59/54/54 60/55/55 +f 32/42/42 31/41/41 46/56/56 47/57/57 +f 43/44/44 42/43/43 57/58/58 58/59/59 +f 41/45/45 40/32/32 55/47/47 56/60/60 +f 39/31/31 38/34/34 53/49/49 54/46/46 +f 37/33/33 36/36/36 51/51/51 52/48/48 +f 35/35/35 34/38/38 49/53/53 50/50/50 +f 33/37/37 32/42/42 47/57/57 48/52/52 +f 44/39/39 43/44/44 58/59/59 59/54/54 +f 42/43/43 41/45/45 56/60/60 57/58/58 +f 55/47/47 54/46/46 69/61/61 70/62/62 +f 53/49/49 52/48/48 67/63/63 68/64/64 +f 51/51/51 50/50/50 65/65/65 66/66/66 +f 49/53/53 48/52/52 63/67/67 64/68/68 +f 60/55/55 59/54/54 74/69/69 75/70/70 +f 47/57/57 46/56/56 61/71/71 62/72/72 +f 58/59/59 57/58/58 72/73/73 73/74/74 +f 56/60/60 55/47/47 70/62/62 71/75/75 +f 54/46/46 53/49/49 68/64/64 69/61/61 +f 52/48/48 51/51/51 66/66/66 67/63/63 +f 50/50/50 49/53/53 64/68/68 65/65/65 +f 48/52/52 47/57/57 62/72/72 63/67/67 +f 59/54/54 58/59/59 73/74/74 74/69/69 +f 57/58/58 56/60/60 71/75/75 72/73/73 +f 70/62/62 69/61/61 84/76/76 85/77/77 +f 68/64/64 67/63/63 82/78/78 83/79/79 +f 66/66/66 65/65/65 80/80/80 81/81/81 +f 64/68/68 63/67/67 78/82/82 79/83/83 +f 75/70/70 74/69/69 89/84/84 90/85/85 +f 62/72/72 61/71/71 76/86/86 77/87/87 +f 73/74/74 72/73/73 87/88/88 88/89/89 +f 71/75/75 70/62/62 85/77/77 86/90/90 +f 69/61/61 68/64/64 83/79/79 84/76/76 +f 67/63/63 66/66/66 81/81/81 82/78/78 +f 65/65/65 64/68/68 79/83/83 80/80/80 +f 63/67/67 62/72/72 77/87/87 78/82/82 +f 74/69/69 73/74/74 88/89/89 89/84/84 +f 72/73/73 71/75/75 86/90/90 87/88/88 +f 85/77/77 84/76/76 99/91/91 100/92/92 +f 83/79/79 82/78/78 97/93/93 98/94/94 +f 81/81/81 80/80/80 95/95/95 96/96/96 +f 79/83/83 78/82/82 93/97/97 94/98/98 +f 90/85/85 89/84/84 104/99/99 105/100/100 +f 77/87/87 76/86/86 91/101/101 92/102/102 +f 88/89/89 87/88/88 102/103/103 103/104/104 +f 86/90/90 85/77/77 100/92/92 101/105/105 +f 84/76/76 83/79/79 98/94/94 99/91/91 +f 82/78/78 81/81/81 96/96/96 97/93/93 +f 80/80/80 79/83/83 94/98/98 95/95/95 +f 78/82/82 77/87/87 92/102/102 93/97/97 +f 89/84/84 88/89/89 103/104/104 104/99/99 +f 87/88/88 86/90/90 101/105/105 102/103/103 +f 100/92/92 99/91/91 114/106/106 115/107/107 +f 98/94/94 97/93/93 112/108/108 113/109/109 +f 96/96/96 95/95/95 110/110/110 111/111/111 +f 94/98/98 93/97/97 108/112/112 109/113/113 +f 105/100/100 104/99/99 119/114/114 120/115/115 +f 92/102/102 91/101/101 106/116/116 107/117/117 +f 103/104/104 102/103/103 117/118/118 118/119/119 +f 101/105/105 100/92/92 115/107/107 116/120/120 +f 99/91/91 98/94/94 113/109/109 114/106/106 +f 97/93/93 96/96/96 111/111/111 112/108/108 +f 95/95/95 94/98/98 109/113/113 110/110/110 +f 93/97/97 92/102/102 107/117/117 108/112/112 +f 104/99/99 103/104/104 118/119/119 119/114/114 +f 102/103/103 101/105/105 116/120/120 117/118/118 +f 115/121/107 114/122/106 129/123/121 130/124/122 +f 113/125/109 112/126/108 127/127/123 128/128/124 +f 111/129/111 110/130/110 125/131/125 126/132/126 +f 109/133/113 108/134/112 123/135/127 124/136/128 +f 120/137/115 119/138/114 134/139/129 135/140/130 +f 107/141/117 106/142/116 121/143/131 122/144/132 +f 118/145/119 117/146/118 132/147/133 133/148/134 +f 116/149/120 115/121/107 130/124/122 131/150/135 +f 114/122/106 113/125/109 128/128/124 129/123/121 +f 112/126/108 111/129/111 126/132/126 127/127/123 +f 110/130/110 109/133/113 124/136/128 125/131/125 +f 108/134/112 107/141/117 122/144/132 123/135/127 +f 119/138/114 118/145/119 133/148/134 134/139/129 +f 117/146/118 116/149/120 131/150/135 132/147/133 +f 130/124/122 129/123/121 144/151/136 145/152/137 +f 128/128/124 127/127/123 142/153/138 143/154/139 +f 126/132/126 125/131/125 140/155/140 141/156/141 +f 124/136/128 123/135/127 138/157/142 139/158/143 +f 135/140/130 134/139/129 149/159/144 150/160/145 +f 122/144/132 121/143/131 136/161/146 137/162/147 +f 133/148/134 132/147/133 147/163/148 148/164/149 +f 131/150/135 130/124/122 145/152/137 146/165/150 +f 129/123/121 128/128/124 143/154/139 144/151/136 +f 127/127/123 126/132/126 141/156/141 142/153/138 +f 125/131/125 124/136/128 139/158/143 140/155/140 +f 123/135/127 122/144/132 137/162/147 138/157/142 +f 134/139/129 133/148/134 148/164/149 149/159/144 +f 132/147/133 131/150/135 146/165/150 147/163/148 +f 145/152/137 144/151/136 159/166/151 160/167/152 +f 143/154/139 142/153/138 157/168/153 158/169/154 +f 141/156/141 140/155/140 155/170/155 156/171/156 +f 139/158/143 138/157/142 153/172/157 154/173/158 +f 150/160/145 149/159/144 164/174/159 165/175/160 +f 137/162/147 136/161/146 151/176/161 152/177/162 +f 148/164/149 147/163/148 162/178/163 163/179/164 +f 146/165/150 145/152/137 160/167/152 161/180/165 +f 144/151/136 143/154/139 158/169/154 159/166/151 +f 142/153/138 141/156/141 156/171/156 157/168/153 +f 140/155/140 139/158/143 154/173/158 155/170/155 +f 138/157/142 137/162/147 152/177/162 153/172/157 +f 149/159/144 148/164/149 163/179/164 164/174/159 +f 147/163/148 146/165/150 161/180/165 162/178/163 +f 160/167/152 159/166/151 174/181/166 175/182/167 +f 158/169/154 157/168/153 172/183/168 173/184/169 +f 156/171/156 155/170/155 170/185/170 171/186/171 +f 154/173/158 153/172/157 168/187/172 169/188/173 +f 165/175/160 164/174/159 179/189/174 180/190/175 +f 152/177/162 151/176/161 166/191/176 167/192/177 +f 163/179/164 162/178/163 177/193/178 178/194/179 +f 161/180/165 160/167/152 175/182/167 176/195/180 +f 159/166/151 158/169/154 173/184/169 174/181/166 +f 157/168/153 156/171/156 171/186/171 172/183/168 +f 155/170/155 154/173/158 169/188/173 170/185/170 +f 153/172/157 152/177/162 167/192/177 168/187/172 +f 164/174/159 163/179/164 178/194/179 179/189/174 +f 162/178/163 161/180/165 176/195/180 177/193/178 +f 175/182/167 174/181/166 189/196/181 190/197/182 +f 173/184/169 172/183/168 187/198/183 188/199/184 +f 171/186/171 170/185/170 185/200/185 186/201/186 +f 169/188/173 168/187/172 183/202/187 184/203/188 +f 180/190/175 179/189/174 194/204/189 195/205/190 +f 167/192/177 166/191/176 181/206/191 182/207/192 +f 178/194/179 177/193/178 192/208/193 193/209/194 +f 176/195/180 175/182/167 190/197/182 191/210/195 +f 174/181/166 173/184/169 188/199/184 189/196/181 +f 172/183/168 171/186/171 186/201/186 187/198/183 +f 170/185/170 169/188/173 184/203/188 185/200/185 +f 168/187/172 167/192/177 182/207/192 183/202/187 +f 179/189/174 178/194/179 193/209/194 194/204/189 +f 177/193/178 176/195/180 191/210/195 192/208/193 +f 190/197/182 189/196/181 204/211/196 205/212/197 +f 188/199/184 187/198/183 202/213/198 203/214/199 +f 186/201/186 185/200/185 200/215/200 201/216/201 +f 184/203/188 183/202/187 198/217/202 199/218/203 +f 195/205/190 194/204/189 209/219/204 210/220/205 +f 182/207/192 181/206/191 196/221/206 197/222/207 +f 193/209/194 192/208/193 207/223/208 208/224/209 +f 191/210/195 190/197/182 205/212/197 206/225/210 +f 189/196/181 188/199/184 203/214/199 204/211/196 +f 187/198/183 186/201/186 201/216/201 202/213/198 +f 185/200/185 184/203/188 199/218/203 200/215/200 +f 183/202/187 182/207/192 197/222/207 198/217/202 +f 194/204/189 193/209/194 208/224/209 209/219/204 +f 192/208/193 191/210/195 206/225/210 207/223/208 +f 205/212/197 204/211/196 219/226/211 220/227/212 +f 203/214/199 202/213/198 217/228/213 218/229/214 +f 201/216/201 200/215/200 215/230/215 216/231/216 +f 199/218/203 198/217/202 213/232/217 214/233/218 +f 210/220/205 209/219/204 224/234/219 225/235/220 +f 197/222/207 196/221/206 211/236/221 212/237/222 +f 208/224/209 207/223/208 222/238/223 223/239/224 +f 206/225/210 205/212/197 220/227/212 221/240/225 +f 204/211/196 203/214/199 218/229/214 219/226/211 +f 202/213/198 201/216/201 216/231/216 217/228/213 +f 200/215/200 199/218/203 214/233/218 215/230/215 +f 198/217/202 197/222/207 212/237/222 213/232/217 +f 209/219/204 208/224/209 223/239/224 224/234/219 +f 207/223/208 206/225/210 221/240/225 222/238/223 +f 220/227/212 219/226/211 234/241/226 235/242/227 +f 218/229/214 217/228/213 232/243/228 233/244/229 +f 216/231/216 215/230/215 230/245/230 231/246/231 +f 214/233/218 213/232/217 228/247/232 229/248/233 +f 225/235/220 224/234/219 239/249/234 240/250/235 +f 212/237/222 211/236/221 226/251/236 227/252/237 +f 223/239/224 222/238/223 237/253/238 238/254/239 +f 221/240/225 220/227/212 235/242/227 236/255/240 +f 219/226/211 218/229/214 233/244/229 234/241/226 +f 217/228/213 216/231/216 231/246/231 232/243/228 +f 215/230/215 214/233/218 229/248/233 230/245/230 +f 213/232/217 212/237/222 227/252/237 228/247/232 +f 224/234/219 223/239/224 238/254/239 239/249/234 +f 222/238/223 221/240/225 236/255/240 237/253/238 +f 235/242/227 234/241/226 249/21/241 250/18/242 +f 233/244/229 232/243/228 247/25/243 248/22/244 +f 231/246/231 230/245/230 245/29/245 246/26/246 +f 229/248/233 228/247/232 243/2/247 244/1/248 +f 240/250/235 239/249/234 254/6/249 255/5/250 +f 227/252/237 226/251/236 241/10/251 242/9/252 +f 238/254/239 237/253/238 252/14/253 253/13/254 +f 236/255/240 235/242/227 250/18/242 251/17/255 +f 234/241/226 233/244/229 248/22/244 249/21/241 +f 232/243/228 231/246/231 246/26/246 247/25/243 +f 230/245/230 229/248/233 244/1/248 245/29/245 +f 228/247/232 227/252/237 242/9/252 243/2/247 +f 239/249/234 238/254/239 253/13/254 254/6/249 +f 237/253/238 236/255/240 251/17/255 252/14/253 +f 250/18/242 249/21/241 264/24/256 265/19/257 +f 248/22/244 247/25/243 262/28/258 263/23/259 +f 246/26/246 245/29/245 260/30/260 261/27/261 +f 244/1/248 243/2/247 258/3/262 259/4/263 +f 255/5/250 254/6/249 269/7/264 270/8/265 +f 242/9/252 241/10/251 256/11/266 257/12/267 +f 253/13/254 252/14/253 267/15/268 268/16/269 +f 251/17/255 250/18/242 265/19/257 266/20/270 +f 249/21/241 248/22/244 263/23/259 264/24/256 +f 247/25/243 246/26/246 261/27/261 262/28/258 +f 245/29/245 244/1/248 259/4/263 260/30/260 +f 243/2/247 242/9/252 257/12/267 258/3/262 +f 254/6/249 253/13/254 268/16/269 269/7/264 +f 252/14/253 251/17/255 266/20/270 267/15/268 +f 265/19/257 264/24/256 279/31/271 280/32/272 +f 263/23/259 262/28/258 277/33/273 278/34/274 +f 261/27/261 260/30/260 275/35/275 276/36/276 +f 259/4/263 258/3/262 273/37/277 274/38/278 +f 270/8/265 269/7/264 284/39/279 285/40/280 +f 257/12/267 256/11/266 271/41/281 272/42/282 +f 268/16/269 267/15/268 282/43/283 283/44/284 +f 266/20/270 265/19/257 280/32/272 281/45/285 +f 264/24/256 263/23/259 278/34/274 279/31/271 +f 262/28/258 261/27/261 276/36/276 277/33/273 +f 260/30/260 259/4/263 274/38/278 275/35/275 +f 258/3/262 257/12/267 272/42/282 273/37/277 +f 269/7/264 268/16/269 283/44/284 284/39/279 +f 267/15/268 266/20/270 281/45/285 282/43/283 +f 280/32/272 279/31/271 294/46/286 295/47/287 +f 278/34/274 277/33/273 292/48/288 293/49/289 +f 276/36/276 275/35/275 290/50/290 291/51/291 +f 274/38/278 273/37/277 288/52/292 289/53/293 +f 285/40/280 284/39/279 299/54/294 300/55/295 +f 272/42/282 271/41/281 286/56/296 287/57/297 +f 283/44/284 282/43/283 297/58/298 298/59/299 +f 281/45/285 280/32/272 295/47/287 296/60/300 +f 279/31/271 278/34/274 293/49/289 294/46/286 +f 277/33/273 276/36/276 291/51/291 292/48/288 +f 275/35/275 274/38/278 289/53/293 290/50/290 +f 273/37/277 272/42/282 287/57/297 288/52/292 +f 284/39/279 283/44/284 298/59/299 299/54/294 +f 282/43/283 281/45/285 296/60/300 297/58/298 +f 295/47/287 294/46/286 309/61/301 310/62/302 +f 293/49/289 292/48/288 307/63/303 308/64/304 +f 291/51/291 290/50/290 305/65/305 306/66/306 +f 289/53/293 288/52/292 303/67/307 304/68/308 +f 300/55/295 299/54/294 314/69/309 315/70/310 +f 287/57/297 286/56/296 301/71/311 302/72/312 +f 298/59/299 297/58/298 312/73/313 313/74/314 +f 296/60/300 295/47/287 310/62/302 311/75/315 +f 294/46/286 293/49/289 308/64/304 309/61/301 +f 292/48/288 291/51/291 306/66/306 307/63/303 +f 290/50/290 289/53/293 304/68/308 305/65/305 +f 288/52/292 287/57/297 302/72/312 303/67/307 +f 299/54/294 298/59/299 313/74/314 314/69/309 +f 297/58/298 296/60/300 311/75/315 312/73/313 +f 310/62/302 309/61/301 324/76/316 325/77/317 +f 308/64/304 307/63/303 322/78/318 323/79/319 +f 306/66/306 305/65/305 320/80/320 321/81/321 +f 304/68/308 303/67/307 318/82/322 319/83/323 +f 315/70/310 314/69/309 329/84/324 330/85/325 +f 302/72/312 301/71/311 316/86/326 317/87/327 +f 313/74/314 312/73/313 327/88/328 328/89/329 +f 311/75/315 310/62/302 325/77/317 326/90/330 +f 309/61/301 308/64/304 323/79/319 324/76/316 +f 307/63/303 306/66/306 321/81/321 322/78/318 +f 305/65/305 304/68/308 319/83/323 320/80/320 +f 303/67/307 302/72/312 317/87/327 318/82/322 +f 314/69/309 313/74/314 328/89/329 329/84/324 +f 312/73/313 311/75/315 326/90/330 327/88/328 +f 325/77/317 324/76/316 339/91/331 340/92/332 +f 323/79/319 322/78/318 337/93/333 338/94/334 +f 321/81/321 320/80/320 335/95/335 336/96/336 +f 319/83/323 318/82/322 333/97/337 334/98/338 +f 330/85/325 329/84/324 344/99/339 345/100/340 +f 317/87/327 316/86/326 331/101/341 332/102/342 +f 328/89/329 327/88/328 342/103/343 343/104/344 +f 326/90/330 325/77/317 340/92/332 341/105/345 +f 324/76/316 323/79/319 338/94/334 339/91/331 +f 322/78/318 321/81/321 336/96/336 337/93/333 +f 320/80/320 319/83/323 334/98/338 335/95/335 +f 318/82/322 317/87/327 332/102/342 333/97/337 +f 329/84/324 328/89/329 343/104/344 344/99/339 +f 327/88/328 326/90/330 341/105/345 342/103/343 +f 340/92/332 339/91/331 354/106/346 355/107/347 +f 338/94/334 337/93/333 352/108/348 353/109/349 +f 336/96/336 335/95/335 350/110/350 351/111/351 +f 334/98/338 333/97/337 348/112/352 349/113/353 +f 345/100/340 344/99/339 359/114/354 360/115/355 +f 332/102/342 331/101/341 346/116/356 347/117/357 +f 343/104/344 342/103/343 357/118/358 358/119/359 +f 341/105/345 340/92/332 355/107/347 356/120/360 +f 339/91/331 338/94/334 353/109/349 354/106/346 +f 337/93/333 336/96/336 351/111/351 352/108/348 +f 335/95/335 334/98/338 349/113/353 350/110/350 +f 333/97/337 332/102/342 347/117/357 348/112/352 +f 344/99/339 343/104/344 358/119/359 359/114/354 +f 342/103/343 341/105/345 356/120/360 357/118/358 +f 355/121/347 354/122/346 369/123/361 370/124/362 +f 353/125/349 352/126/348 367/127/363 368/128/364 +f 351/129/351 350/130/350 365/131/365 366/132/366 +f 349/133/353 348/134/352 363/135/367 364/136/368 +f 360/137/355 359/138/354 374/139/369 375/140/370 +f 347/141/357 346/142/356 361/143/371 362/144/372 +f 358/145/359 357/146/358 372/147/373 373/148/374 +f 356/149/360 355/121/347 370/124/362 371/150/375 +f 354/122/346 353/125/349 368/128/364 369/123/361 +f 352/126/348 351/129/351 366/132/366 367/127/363 +f 350/130/350 349/133/353 364/136/368 365/131/365 +f 348/134/352 347/141/357 362/144/372 363/135/367 +f 359/138/354 358/145/359 373/148/374 374/139/369 +f 357/146/358 356/149/360 371/150/375 372/147/373 +f 370/124/362 369/123/361 384/151/376 385/152/377 +f 368/128/364 367/127/363 382/153/378 383/154/379 +f 366/132/366 365/131/365 380/155/380 381/156/381 +f 364/136/368 363/135/367 378/157/382 379/158/383 +f 375/140/370 374/139/369 389/159/384 390/160/385 +f 362/144/372 361/143/371 376/161/386 377/162/387 +f 373/148/374 372/147/373 387/163/388 388/164/389 +f 371/150/375 370/124/362 385/152/377 386/165/390 +f 369/123/361 368/128/364 383/154/379 384/151/376 +f 367/127/363 366/132/366 381/156/381 382/153/378 +f 365/131/365 364/136/368 379/158/383 380/155/380 +f 363/135/367 362/144/372 377/162/387 378/157/382 +f 374/139/369 373/148/374 388/164/389 389/159/384 +f 372/147/373 371/150/375 386/165/390 387/163/388 +f 385/152/377 384/151/376 399/166/391 400/167/392 +f 383/154/379 382/153/378 397/168/393 398/169/394 +f 381/156/381 380/155/380 395/170/395 396/171/396 +f 379/158/383 378/157/382 393/172/397 394/173/398 +f 390/160/385 389/159/384 404/174/399 405/175/400 +f 377/162/387 376/161/386 391/176/401 392/177/402 +f 388/164/389 387/163/388 402/178/403 403/179/404 +f 386/165/390 385/152/377 400/167/392 401/180/405 +f 384/151/376 383/154/379 398/169/394 399/166/391 +f 382/153/378 381/156/381 396/171/396 397/168/393 +f 380/155/380 379/158/383 394/173/398 395/170/395 +f 378/157/382 377/162/387 392/177/402 393/172/397 +f 389/159/384 388/164/389 403/179/404 404/174/399 +f 387/163/388 386/165/390 401/180/405 402/178/403 +f 400/167/392 399/166/391 414/181/406 415/182/407 +f 398/169/394 397/168/393 412/183/408 413/184/409 +f 396/171/396 395/170/395 410/185/410 411/186/411 +f 394/173/398 393/172/397 408/187/412 409/188/413 +f 405/175/400 404/174/399 419/189/414 420/190/415 +f 392/177/402 391/176/401 406/191/416 407/192/417 +f 403/179/404 402/178/403 417/193/418 418/194/419 +f 401/180/405 400/167/392 415/182/407 416/195/420 +f 399/166/391 398/169/394 413/184/409 414/181/406 +f 397/168/393 396/171/396 411/186/411 412/183/408 +f 395/170/395 394/173/398 409/188/413 410/185/410 +f 393/172/397 392/177/402 407/192/417 408/187/412 +f 404/174/399 403/179/404 418/194/419 419/189/414 +f 402/178/403 401/180/405 416/195/420 417/193/418 +f 415/182/407 414/181/406 429/196/421 430/197/422 +f 413/184/409 412/183/408 427/198/423 428/199/424 +f 411/186/411 410/185/410 425/200/425 426/201/426 +f 409/188/413 408/187/412 423/202/427 424/203/428 +f 420/190/415 419/189/414 434/204/429 435/205/430 +f 407/192/417 406/191/416 421/206/431 422/207/432 +f 418/194/419 417/193/418 432/208/433 433/209/434 +f 416/195/420 415/182/407 430/197/422 431/210/435 +f 414/181/406 413/184/409 428/199/424 429/196/421 +f 412/183/408 411/186/411 426/201/426 427/198/423 +f 410/185/410 409/188/413 424/203/428 425/200/425 +f 408/187/412 407/192/417 422/207/432 423/202/427 +f 419/189/414 418/194/419 433/209/434 434/204/429 +f 417/193/418 416/195/420 431/210/435 432/208/433 +f 430/197/422 429/196/421 444/211/436 445/212/437 +f 428/199/424 427/198/423 442/213/438 443/214/439 +f 426/201/426 425/200/425 440/215/440 441/216/441 +f 424/203/428 423/202/427 438/217/442 439/218/443 +f 435/205/430 434/204/429 449/219/444 450/220/445 +f 422/207/432 421/206/431 436/221/446 437/222/447 +f 433/209/434 432/208/433 447/223/448 448/224/449 +f 431/210/435 430/197/422 445/212/437 446/225/450 +f 429/196/421 428/199/424 443/214/439 444/211/436 +f 427/198/423 426/201/426 441/216/441 442/213/438 +f 425/200/425 424/203/428 439/218/443 440/215/440 +f 423/202/427 422/207/432 437/222/447 438/217/442 +f 434/204/429 433/209/434 448/224/449 449/219/444 +f 432/208/433 431/210/435 446/225/450 447/223/448 +f 445/212/437 444/211/436 459/226/451 460/227/452 +f 443/214/439 442/213/438 457/228/453 458/229/454 +f 441/216/441 440/215/440 455/230/455 456/231/456 +f 439/218/443 438/217/442 453/232/457 454/233/458 +f 450/220/445 449/219/444 464/234/459 465/235/460 +f 437/222/447 436/221/446 451/236/461 452/237/462 +f 448/224/449 447/223/448 462/238/463 463/239/464 +f 446/225/450 445/212/437 460/227/452 461/240/465 +f 444/211/436 443/214/439 458/229/454 459/226/451 +f 442/213/438 441/216/441 456/231/456 457/228/453 +f 440/215/440 439/218/443 454/233/458 455/230/455 +f 438/217/442 437/222/447 452/237/462 453/232/457 +f 449/219/444 448/224/449 463/239/464 464/234/459 +f 447/223/448 446/225/450 461/240/465 462/238/463 +f 460/227/452 459/226/451 474/241/466 475/242/467 +f 458/229/454 457/228/453 472/243/468 473/244/469 +f 456/231/456 455/230/455 470/245/470 471/246/471 +f 454/233/458 453/232/457 468/247/472 469/248/473 +f 465/235/460 464/234/459 479/249/474 480/250/475 +f 452/237/462 451/236/461 466/251/476 467/252/477 +f 463/239/464 462/238/463 477/253/478 478/254/479 +f 461/240/465 460/227/452 475/242/467 476/255/480 +f 459/226/451 458/229/454 473/244/469 474/241/466 +f 457/228/453 456/231/456 471/246/471 472/243/468 +f 455/230/455 454/233/458 469/248/473 470/245/470 +f 453/232/457 452/237/462 467/252/477 468/247/472 +f 464/234/459 463/239/464 478/254/479 479/249/474 +f 462/238/463 461/240/465 476/255/480 477/253/478 +f 481/256/481 15/5/5 30/8/8 485/257/482 +f 485/257/482 30/8/8 45/40/40 487/258/483 +f 487/258/483 45/40/40 60/55/55 489/259/484 +f 489/259/484 60/55/55 75/70/70 491/260/485 +f 491/260/485 75/70/70 90/85/85 493/261/486 +f 493/261/486 90/85/85 105/100/100 495/262/487 +f 495/262/487 105/100/100 120/115/115 497/263/488 +f 497/264/488 120/137/115 135/140/130 499/265/489 +f 499/265/489 135/140/130 150/160/145 501/266/490 +f 501/266/490 150/160/145 165/175/160 503/267/491 +f 503/267/491 165/175/160 180/190/175 505/268/492 +f 505/268/492 180/190/175 195/205/190 507/269/493 +f 507/269/493 195/205/190 210/220/205 509/270/494 +f 509/270/494 210/220/205 225/235/220 511/271/495 +f 511/271/495 225/235/220 240/250/235 513/272/496 +f 513/272/496 240/250/235 255/5/250 515/256/497 +f 515/256/497 255/5/250 270/8/265 517/257/498 +f 517/257/498 270/8/265 285/40/280 519/258/499 +f 519/258/499 285/40/280 300/55/295 521/259/500 +f 521/259/500 300/55/295 315/70/310 523/260/501 +f 523/260/501 315/70/310 330/85/325 525/261/502 +f 525/261/502 330/85/325 345/100/340 527/262/503 +f 527/262/503 345/100/340 360/115/355 529/263/504 +f 529/264/504 360/137/355 375/140/370 531/265/505 +f 531/265/505 375/140/370 390/160/385 533/266/506 +f 533/266/506 390/160/385 405/175/400 534/267/507 +f 534/267/507 405/175/400 420/190/415 536/268/508 +f 536/268/508 420/190/415 435/205/430 538/269/509 +f 538/269/509 435/205/430 450/220/445 540/270/510 +f 540/270/510 450/220/445 465/235/460 542/271/511 +f 542/271/511 465/235/460 480/250/475 544/272/512 +f 475/242/467 474/241/466 9/21/21 10/18/18 +f 473/244/469 472/243/468 7/25/25 8/22/22 +f 471/246/471 470/245/470 5/29/29 6/26/26 +f 469/248/473 468/247/472 3/2/2 4/1/1 +f 480/250/475 479/249/474 14/6/6 15/5/5 +f 467/252/477 466/251/476 1/10/10 2/9/9 +f 478/254/479 477/253/478 12/14/14 13/13/13 +f 476/255/480 475/242/467 10/18/18 11/17/17 +f 474/241/466 473/244/469 8/22/22 9/21/21 +f 472/243/468 471/246/471 6/26/26 7/25/25 +f 470/245/470 469/248/473 4/1/1 5/29/29 +f 544/272/512 480/250/475 15/5/5 481/256/481 +f 468/247/472 467/252/477 2/9/9 3/2/2 +f 479/249/474 478/254/479 13/13/13 14/6/6 +f 477/253/478 476/255/480 11/17/17 12/14/14 +f 466/251/476 543/273/513 483/274/514 1/10/10 +f 451/236/461 541/275/515 543/273/513 466/251/476 +f 436/221/446 539/276/516 541/275/515 451/236/461 +f 421/206/431 537/277/517 539/276/516 436/221/446 +f 406/191/416 535/278/518 537/277/517 421/206/431 +f 391/176/401 482/279/519 535/278/518 406/191/416 +f 376/161/386 532/280/520 482/279/519 391/176/401 +f 361/143/371 530/281/521 532/280/520 376/161/386 +f 346/142/356 528/282/522 530/281/521 361/143/371 +f 331/101/341 526/283/523 528/284/522 346/116/356 +f 316/86/326 524/285/524 526/283/523 331/101/341 +f 301/71/311 522/286/525 524/285/524 316/86/326 +f 286/56/296 520/287/526 522/286/525 301/71/311 +f 271/41/281 518/288/527 520/287/526 286/56/296 +f 256/11/266 516/289/528 518/288/527 271/41/281 +f 241/10/251 514/274/529 516/289/528 256/11/266 +f 226/251/236 512/273/530 514/274/529 241/10/251 +f 211/236/221 510/275/531 512/273/530 226/251/236 +f 196/221/206 508/276/532 510/275/531 211/236/221 +f 181/206/191 506/277/533 508/276/532 196/221/206 +f 166/191/176 504/278/534 506/277/533 181/206/191 +f 151/176/161 502/279/535 504/278/534 166/191/176 +f 136/161/146 500/280/536 502/279/535 151/176/161 +f 121/143/131 498/281/537 500/280/536 136/161/146 +f 106/142/116 496/282/538 498/281/537 121/143/131 +f 91/101/101 494/283/539 496/284/538 106/116/116 +f 76/86/86 492/285/540 494/283/539 91/101/101 +f 61/71/71 490/286/541 492/285/540 76/86/86 +f 46/56/56 488/287/542 490/286/541 61/71/71 +f 31/41/41 486/288/543 488/287/542 46/56/56 +f 16/11/11 484/289/544 486/288/543 31/41/41 +f 1/10/10 483/274/514 484/289/544 16/11/11 +f 543/290/513 541/291/515 539/292/516 537/293/517 535/294/518 482/295/519 532/296/520 530/297/521 528/298/522 526/299/523 524/300/524 522/301/525 520/302/526 518/303/527 516/304/528 514/305/529 512/306/530 510/307/531 508/308/532 506/309/533 504/310/534 502/311/535 500/312/536 498/313/537 496/314/538 494/315/539 492/316/540 490/317/541 488/318/542 486/319/543 484/320/544 483/321/514 +f 544/290/512 481/291/481 485/292/482 487/293/483 489/294/484 491/295/485 493/296/486 495/297/487 497/298/488 499/299/489 501/300/490 503/301/491 505/302/492 507/303/493 509/304/494 511/305/495 513/306/496 515/307/497 517/308/498 519/309/499 521/310/500 523/311/501 525/312/502 527/313/503 529/314/504 531/315/505 533/316/506 534/317/507 536/318/508 538/319/509 540/320/510 542/321/511 diff --git a/games/default/files/Nodes/slope/textures/slope_test_cylinder.png b/games/default/files/Nodes/slope/textures/slope_test_cylinder.png new file mode 100644 index 000000000..8b26cec59 Binary files /dev/null and b/games/default/files/Nodes/slope/textures/slope_test_cylinder.png differ diff --git a/games/default/files/Nodes/slope/textures/slope_test_icorner.png b/games/default/files/Nodes/slope/textures/slope_test_icorner.png new file mode 100644 index 000000000..71b253eac Binary files /dev/null and b/games/default/files/Nodes/slope/textures/slope_test_icorner.png differ diff --git a/games/default/files/Nodes/slope/textures/slope_test_icorner.xcf b/games/default/files/Nodes/slope/textures/slope_test_icorner.xcf new file mode 100644 index 000000000..c4359db3a Binary files /dev/null and b/games/default/files/Nodes/slope/textures/slope_test_icorner.xcf differ diff --git a/games/default/files/Nodes/slope/textures/slope_test_ocorner.png b/games/default/files/Nodes/slope/textures/slope_test_ocorner.png new file mode 100644 index 000000000..9887ba364 Binary files /dev/null and b/games/default/files/Nodes/slope/textures/slope_test_ocorner.png differ diff --git a/games/default/files/Nodes/slope/textures/slope_test_ocorner.xcf b/games/default/files/Nodes/slope/textures/slope_test_ocorner.xcf new file mode 100644 index 000000000..289702aed Binary files /dev/null and b/games/default/files/Nodes/slope/textures/slope_test_ocorner.xcf differ diff --git a/games/default/files/Nodes/slope/textures/slope_test_quarter_round.png b/games/default/files/Nodes/slope/textures/slope_test_quarter_round.png new file mode 100644 index 000000000..6eae739f0 Binary files /dev/null and b/games/default/files/Nodes/slope/textures/slope_test_quarter_round.png differ diff --git a/games/default/files/Nodes/slope/textures/slope_test_quarter_round_corner.png b/games/default/files/Nodes/slope/textures/slope_test_quarter_round_corner.png new file mode 100644 index 000000000..f366f240d Binary files /dev/null and b/games/default/files/Nodes/slope/textures/slope_test_quarter_round_corner.png differ diff --git a/games/default/files/Nodes/slope/textures/slope_test_slope.png b/games/default/files/Nodes/slope/textures/slope_test_slope.png new file mode 100644 index 000000000..39c5856cf Binary files /dev/null and b/games/default/files/Nodes/slope/textures/slope_test_slope.png differ diff --git a/games/default/files/Nodes/slope/textures/slope_test_slope.xcf b/games/default/files/Nodes/slope/textures/slope_test_slope.xcf new file mode 100644 index 000000000..9421ccc99 Binary files /dev/null and b/games/default/files/Nodes/slope/textures/slope_test_slope.xcf differ diff --git a/games/default/files/Nodes/slope/textures/slope_test_slope_long.png b/games/default/files/Nodes/slope/textures/slope_test_slope_long.png new file mode 100644 index 000000000..3791639b9 Binary files /dev/null and b/games/default/files/Nodes/slope/textures/slope_test_slope_long.png differ diff --git a/games/default/files/Nodes/slope/textures/slope_test_sphere.png b/games/default/files/Nodes/slope/textures/slope_test_sphere.png new file mode 100644 index 000000000..c6c813638 Binary files /dev/null and b/games/default/files/Nodes/slope/textures/slope_test_sphere.png differ diff --git a/games/default/files/Nodes/stairs/README.txt b/games/default/files/Nodes/stairs/README.txt new file mode 100644 index 000000000..d32cd71b9 --- /dev/null +++ b/games/default/files/Nodes/stairs/README.txt @@ -0,0 +1,16 @@ +Minetest Game mod: stairs +========================= +See license.txt for license information. + +Authors of source code +---------------------- +Originally by Kahrl (LGPL 2.1) and +celeron55, Perttu Ahola (LGPL 2.1) +Various Minetest developers and contributors (LGPL 2.1) + +Authors of media (models) +------------------------- +Jean-Patrick G. (kilbith) (CC BY-SA 3.0): + stairs_stair.obj + + diff --git a/games/default/files/Nodes/stairs/depends.txt b/games/default/files/Nodes/stairs/depends.txt new file mode 100644 index 000000000..9430a5a24 --- /dev/null +++ b/games/default/files/Nodes/stairs/depends.txt @@ -0,0 +1 @@ +color \ No newline at end of file diff --git a/games/default/files/Nodes/stairs/init.lua b/games/default/files/Nodes/stairs/init.lua new file mode 100644 index 000000000..825c031f7 --- /dev/null +++ b/games/default/files/Nodes/stairs/init.lua @@ -0,0 +1,370 @@ +-- Minetest 0.4 mod: stairs +-- See README.txt for licensing and other information. + + +-- Global namespace for functions + +stairs = {} + + +-- Register aliases for new pine node names + +minetest.register_alias("stairs:stair_pinewood", "stairs:stair_pine_wood") +minetest.register_alias("stairs:slab_pinewood", "stairs:slab_pine_wood") + + +-- Get setting for replace ABM + +local replace = minetest.settings:get_bool("enable_stairs_replace_abm") + +local function rotate_and_place(itemstack, placer, pointed_thing) + local p0 = pointed_thing.under + local p1 = pointed_thing.above + local param2 = 0 + + local placer_pos = placer:getpos() + if placer_pos then + param2 = minetest.dir_to_facedir(vector.subtract(p1, placer_pos)) + end + + local finepos = minetest.pointed_thing_to_face_pos(placer, pointed_thing) + local fpos = finepos.y % 1 + + if p0.y - 1 == p1.y or (fpos > 0 and fpos < 0.5) + or (fpos < -0.5 and fpos > -0.999999999) then + param2 = param2 + 20 + if param2 == 21 then + param2 = 23 + elseif param2 == 23 then + param2 = 21 + end + end + return minetest.item_place(itemstack, placer, pointed_thing, param2) +end + +-- Register stairs. +-- Node will be called stairs:stair_ + +function stairs.register_stair(subname, recipeitem, groups, images, description, sounds, html, wieldcolors) + groups.stair = 1 + minetest.register_node(":stairs:stair_" .. subname, { + description = description, + wield_image = wieldcolors, + wield_scale = {x=1,y=1,z=0.5}, + drawtype = "mesh", + inventory_image = "stairs.png^[colorize:#".. html ..":70", + mesh = "stairs_stair.obj", + tiles = images, + paramtype = "light", + paramtype2 = "facedir", + is_ground_content = false, + groups = groups, + sounds = sounds, + selection_box = { + type = "fixed", + fixed = { + {-0.5, -0.5, -0.5, 0.5, 0, 0.5}, + {-0.5, 0, 0, 0.5, 0.5, 0.5}, + }, + }, + collision_box = { + type = "fixed", + fixed = { + {-0.5, -0.5, -0.5, 0.5, 0, 0.5}, + {-0.5, 0, 0, 0.5, 0.5, 0.5}, + }, + }, + on_place = function(itemstack, placer, pointed_thing) + if pointed_thing.type ~= "node" then + return itemstack + end + + return rotate_and_place(itemstack, placer, pointed_thing) + end, + }) + + -- for replace ABM + if replace then + minetest.register_node(":stairs:stair_" .. subname .. "upside_down", { + replace_name = "stairs:stair_" .. subname, + groups = {slabs_replace = 1}, + }) + end + + if recipeitem then + minetest.register_craft({ + output = 'stairs:stair_' .. subname .. ' 8', + recipe = { + {recipeitem, "", ""}, + {recipeitem, recipeitem, ""}, + {recipeitem, recipeitem, recipeitem}, + }, + }) + + -- Flipped recipe for the silly minecrafters + minetest.register_craft({ + output = 'stairs:stair_' .. subname .. ' 8', + recipe = { + {"", "", recipeitem}, + {"", recipeitem, recipeitem}, + {recipeitem, recipeitem, recipeitem}, + }, + }) + + -- Fuel + local baseburntime = minetest.get_craft_result({ + method = "fuel", + width = 1, + items = {recipeitem} + }).time + if baseburntime > 0 then + minetest.register_craft({ + type = "fuel", + recipe = 'stairs:stair_' .. subname, + burntime = math.floor(baseburntime * 0.75), + }) + end + end +end + + +-- Slab facedir to placement 6d matching table +local slab_trans_dir = {[0] = 8, 0, 2, 1, 3, 4} + +-- Register slabs. +-- Node will be called stairs:slab_ + +function stairs.register_slab(subname, recipeitem, groups, images, description, sounds, html, wieldcolors) + groups.slab = 1 + minetest.register_node(":stairs:slab_" .. subname, { + description = description, + wield_image = wieldcolors, + wield_scale = {x=1,y=1,z=0.5}, + inventory_image = "slabs.png^[colorize:#".. html ..":70", + drawtype = "nodebox", + tiles = images, + paramtype = "light", + paramtype2 = "facedir", + is_ground_content = false, + groups = groups, + sounds = sounds, + node_box = { + type = "fixed", + fixed = {-0.5, -0.5, -0.5, 0.5, 0, 0.5}, + }, + on_place = function(itemstack, placer, pointed_thing) + local under = minetest.get_node(pointed_thing.under) + local wield_item = itemstack:get_name() + local creative_enabled = (creative and creative.is_enabled_for + and creative.is_enabled_for(placer:get_player_name())) + + if under and under.name:find("stairs:slab_") then + -- place slab using under node orientation + local dir = minetest.dir_to_facedir(vector.subtract( + pointed_thing.above, pointed_thing.under), true) + + local p2 = under.param2 + + -- combine two slabs if possible + if slab_trans_dir[math.floor(p2 / 4)] == dir + and wield_item == under.name then + + if not recipeitem then + return itemstack + end + local player_name = placer:get_player_name() + if minetest.is_protected(pointed_thing.under, player_name) and not + minetest.check_player_privs(placer, "protection_bypass") then + minetest.record_protection_violation(pointed_thing.under, + player_name) + return + end + minetest.set_node(pointed_thing.under, {name = recipeitem, param2 = p2}) + if not creative_enabled then + itemstack:take_item() + end + return itemstack + end + + -- Placing a slab on an upside down slab should make it right-side up. + if p2 >= 20 and dir == 8 then + p2 = p2 - 20 + -- same for the opposite case: slab below normal slab + elseif p2 <= 3 and dir == 4 then + p2 = p2 + 20 + end + + -- else attempt to place node with proper param2 + minetest.item_place_node(ItemStack(wield_item), placer, pointed_thing, p2) + if not creative_enabled then + itemstack:take_item() + end + return itemstack + else + return rotate_and_place(itemstack, placer, pointed_thing) + end + end, + }) + + -- for replace ABM + if replace then + minetest.register_node(":stairs:slab_" .. subname .. "upside_down", { + replace_name = "stairs:slab_".. subname, + groups = {slabs_replace = 1}, + }) + end + + if recipeitem then + minetest.register_craft({ + output = 'stairs:slab_' .. subname .. ' 6', + recipe = { + {recipeitem, recipeitem, recipeitem}, + }, + }) + + -- Fuel + local baseburntime = minetest.get_craft_result({ + method = "fuel", + width = 1, + items = {recipeitem} + }).time + if baseburntime > 0 then + minetest.register_craft({ + type = "fuel", + recipe = 'stairs:slab_' .. subname, + burntime = math.floor(baseburntime * 0.5), + }) + end + end +end + + +-- Optionally replace old "upside_down" nodes with new param2 versions. +-- Disabled by default. + +if replace then + minetest.register_abm({ + label = "Slab replace", + nodenames = {"group:slabs_replace"}, + interval = 16, + chance = 1, + action = function(pos, node) + node.name = minetest.registered_nodes[node.name].replace_name + node.param2 = node.param2 + 20 + if node.param2 == 21 then + node.param2 = 23 + elseif node.param2 == 23 then + node.param2 = 21 + end + minetest.set_node(pos, node) + end, + }) +end + + +-- Stair/slab registration function. +-- Nodes will be called stairs:{stair,slab}_ + +function stairs.register_stair_and_slab(subname, recipeitem, + groups, images, desc_stair, desc_slab, sounds, html, wieldcolors) + stairs.register_stair(subname, recipeitem, groups, images, desc_stair, sounds, html, wieldcolors) + stairs.register_slab(subname, recipeitem, groups, images, desc_slab, sounds, html, wieldcolors) +end + +-- Register default stairs and slabs + +stairs.register_stair_and_slab( + "blue", + "color:blue", + {choppy = 2, oddly_breakable_by_hand = 2, flammable = 2}, + {"color_white2.png^[colorize:#"..color2..":70"}, + "Blue Stair", + "Blue Slab", + default.node_sound_wood_defaults(), + color2, + "color_handwhite.png^(color_handwhite2.png^[colorize:#"..color2..":70)" +) + +stairs.register_stair_and_slab( + "red", + "color:red", + {choppy = 2, oddly_breakable_by_hand = 2, flammable = 2}, + {"color_white2.png^[colorize:#"..color6..":70"}, + "Red Stair", + "Red Slab", + default.node_sound_wood_defaults(), + color6, + "color_handwhite.png^(color_handwhite2.png^[colorize:#"..color6..":70)" +) + +stairs.register_stair_and_slab( + "white", + "color:white", + {choppy = 2, oddly_breakable_by_hand = 2, flammable = 2}, + {"color_white2.png^[colorize:#"..color4..":70"}, + "White Stair", + "White Slab", + default.node_sound_wood_defaults(), + color4, + "color_handwhite.png^(color_handwhite2.png^[colorize:#"..color4..":70)" +) + +stairs.register_stair_and_slab( + "black", + "color:black", + {choppy = 2, oddly_breakable_by_hand = 2, flammable = 2}, + {"color_white2.png^[colorize:#"..color1..":70"}, + "Black Stair", + "Black Slab", + default.node_sound_wood_defaults(), + color1, + "color_handwhite.png^(color_handwhite2.png^[colorize:#"..color1..":70)" +) + +stairs.register_stair_and_slab( + "green", + "color:green", + {choppy = 2, oddly_breakable_by_hand = 2, flammable = 2}, + {"color_white2.png^[colorize:#"..color3..":70"}, + "Green Stair", + "Green Slab", + default.node_sound_wood_defaults(), + color3, + "color_handwhite.png^(color_handwhite2.png^[colorize:#"..color3..":70)" +) + +stairs.register_stair_and_slab( + "yellow", + "color:yellow", + {choppy = 2, oddly_breakable_by_hand = 2, flammable = 2}, + {"color_white2.png^[colorize:#"..color7..":70"}, + "Yellow Stair", + "Yellow Slab", + default.node_sound_wood_defaults(), + color7, + "color_handwhite.png^(color_handwhite2.png^[colorize:#"..color7..":70)" +) + +stairs.register_stair_and_slab( + "orange", + "color:orange", + {choppy = 2, oddly_breakable_by_hand = 2, flammable = 2}, + {"color_white2.png^[colorize:#"..color5..":70"}, + "Orange Stair", + "Orange Slab", + default.node_sound_wood_defaults(), + color5, + "color_handwhite.png^(color_handwhite2.png^[colorize:#"..color5..":70)" +) + +stairs.register_stair_and_slab( + "pink", + "color:pink", + {choppy = 2, oddly_breakable_by_hand = 2, flammable = 2}, + {"color_white2.png^[colorize:#"..color8..":70"}, + "Pink Stair", + "Pink Slab", + default.node_sound_wood_defaults(), + color8, + "color_handwhite.png^(color_handwhite2.png^[colorize:#"..color8..":70)" +) diff --git a/games/default/files/Nodes/stairs/license.txt b/games/default/files/Nodes/stairs/license.txt new file mode 100644 index 000000000..8f16bbd7b --- /dev/null +++ b/games/default/files/Nodes/stairs/license.txt @@ -0,0 +1,51 @@ +License of source code +---------------------- + +GNU Lesser General Public License, version 2.1 +Copyright (C) 2011-2016 Kahrl +Copyright (C) 2011-2016 celeron55, Perttu Ahola +Copyright (C) 2012-2016 Various Minetest developers and contributors + +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 2.1 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: +https://www.gnu.org/licenses/old-licenses/lgpl-2.1.html + + +Licenses of media (models) +-------------------------- + +Attribution-ShareAlike 3.0 Unported (CC BY-SA 3.0) +Copyright (C) 2015-2016 Jean-Patrick G. (kilbith) + +You are free to: +Share — copy and redistribute the material in any medium or format. +Adapt — remix, transform, and build upon the material for any purpose, even commercially. +The licensor cannot revoke these freedoms as long as you follow the license terms. + +Under the following terms: + +Attribution — You must give appropriate credit, provide a link to the license, and +indicate if changes were made. You may do so in any reasonable manner, but not in any way +that suggests the licensor endorses you or your use. + +ShareAlike — If you remix, transform, or build upon the material, you must distribute +your contributions under the same license as the original. + +No additional restrictions — You may not apply legal terms or technological measures that +legally restrict others from doing anything the license permits. + +Notices: + +You do not have to comply with the license for elements of the material in the public +domain or where your use is permitted by an applicable exception or limitation. +No warranties are given. The license may not give you all of the permissions necessary +for your intended use. For example, other rights such as publicity, privacy, or moral +rights may limit how you use the material. + +For more details: +http://creativecommons.org/licenses/by-sa/3.0/ diff --git a/games/default/files/Nodes/stairs/models/stairs_stair.obj b/games/default/files/Nodes/stairs/models/stairs_stair.obj new file mode 100644 index 000000000..58acfa871 --- /dev/null +++ b/games/default/files/Nodes/stairs/models/stairs_stair.obj @@ -0,0 +1,77 @@ +# Blender v2.79 (sub 6) OBJ File: '' +# www.blender.org +o Cube_Cube.001 +v -0.500000 -0.500000 0.500000 +v -0.500000 0.500000 0.500000 +v -0.500000 -0.500000 -0.500000 +v 0.500000 -0.500000 0.500000 +v 0.500000 0.500000 0.500000 +v 0.500000 -0.500000 -0.500000 +v -0.500000 0.000000 0.500000 +v -0.500000 0.000000 -0.500000 +v 0.500000 0.000000 -0.500000 +v 0.500000 0.000000 0.500000 +v -0.500000 -0.500000 0.000000 +v -0.500000 0.500000 0.000000 +v 0.500000 -0.500000 0.000000 +v 0.500000 0.500000 0.000000 +v 0.500000 0.000000 0.000000 +v -0.500000 0.000000 0.000000 +vt 0.500000 0.500000 +vt 0.500000 1.000000 +vt 0.000000 1.000000 +vt 0.000000 0.500000 +vt 1.000000 0.500000 +vt 1.000000 1.000000 +vt 0.000000 1.000000 +vt 0.000000 0.500000 +vt 1.000000 0.500000 +vt 0.000000 0.500000 +vt 0.000000 0.000000 +vt 1.000000 0.000000 +vt 1.000000 0.500000 +vt 0.000000 0.500000 +vt 0.000000 1.000000 +vt 1.000000 1.000000 +vt 0.500000 1.000000 +vt 0.500000 0.500000 +vt 0.000000 1.000000 +vt 1.000000 1.000000 +vt 0.000000 0.500000 +vt 1.000000 0.500000 +vt 1.000000 0.000000 +vt 0.000000 0.000000 +vt 0.500000 0.000000 +vt 0.000000 0.000000 +vt 0.000000 0.000000 +vt 0.000000 0.500000 +vt 1.000000 0.500000 +vt 1.000000 0.000000 +vt 0.500000 0.000000 +vt 1.000000 0.500000 +vt 1.000000 0.000000 +vt 0.000000 1.000000 +vt 1.000000 1.000000 +vn 1.0000 0.0000 0.0000 +vn 0.0000 0.0000 1.0000 +vn 0.0000 1.0000 0.0000 +vn 0.0000 0.0000 -1.0000 +vn -1.0000 0.0000 0.0000 +vn 0.0000 -1.0000 0.0000 +g Cube_Cube.001_Top +s off +f 15/1/1 14/2/1 5/3/1 10/4/1 +f 10/5/2 5/6/2 2/7/2 7/8/2 +f 14/9/3 12/10/3 2/11/3 5/12/3 +f 15/13/4 16/14/4 12/15/4 14/16/4 +f 7/8/5 2/7/5 12/17/5 16/18/5 +g Cube_Cube.001_Bottom +f 8/19/3 16/14/3 15/13/3 9/20/3 +f 11/21/6 13/22/6 4/23/6 1/24/6 +f 4/23/2 10/5/2 7/8/2 1/24/2 +f 13/25/1 15/1/1 10/4/1 4/26/1 +f 3/27/4 8/28/4 9/29/4 6/30/4 +f 11/31/5 16/18/5 8/32/5 3/33/5 +f 1/24/5 7/8/5 16/18/5 11/31/5 +f 6/30/1 9/29/1 15/1/1 13/25/1 +f 3/34/6 6/35/6 13/22/6 11/21/6 diff --git a/games/default/files/Nodes/water/depends.txt b/games/default/files/Nodes/water/depends.txt new file mode 100644 index 000000000..22ed7be9e --- /dev/null +++ b/games/default/files/Nodes/water/depends.txt @@ -0,0 +1,2 @@ +default +color \ No newline at end of file diff --git a/games/default/files/Nodes/water/description.txt b/games/default/files/Nodes/water/description.txt new file mode 100644 index 000000000..b29356e04 --- /dev/null +++ b/games/default/files/Nodes/water/description.txt @@ -0,0 +1 @@ +Adds coloured water. \ No newline at end of file diff --git a/games/default/files/Nodes/water/init.lua b/games/default/files/Nodes/water/init.lua new file mode 100644 index 000000000..49503e541 --- /dev/null +++ b/games/default/files/Nodes/water/init.lua @@ -0,0 +1,115 @@ + +local source_list = { + {"black", "Darkened", color1, 40, 36, 33}, + {"blue", "Blue", color2, 0, 0, 255}, + {"green", "Green", color3, 0, 255, 0}, + {"white", "White", color4, 245, 245, 245}, + {"orange", "Orange", color5, 255, 97, 3}, + {"red", "Red", color6, 255, 0, 0}, + {"yellow", "Yellow", color7, 255, 255, 0}, + {"pink", "pink", color8, 255, 105, 180} +} + +for i in ipairs(source_list) do + local name = source_list[i][1] + local description = source_list[i][2] + local colour = source_list[i][3] + local red = source_list[i][4] + local green = source_list[i][5] + local blue = source_list[i][6] + + minetest.register_node("water:"..name.."_water_source", { + description = description.." Water Source", + drawtype = "liquid", + tiles = { + { + name = "color_white.png^[colorize:#"..colour..":70", + animation = { + type = "vertical_frames", + aspect_w = 16, + aspect_h = 16, + length = 2.0, + }, + }, + }, + special_tiles = { + { + name = "color_white.png^[colorize:#"..colour..":70", + animation = { + type = "vertical_frames", + aspect_w = 16, + aspect_h = 16, + length = 2.0, + }, + backface_culling = false, + }, + }, + alpha = 200, + paramtype = "light", + walkable = false, + pointable = false, + diggable = false, + buildable_to = true, + is_ground_content = false, + wield_image = "color_handwhite.png^(color_handwhite2.png^[colorize:#"..colour..":70)", + wield_scale = {x=1,y=1,z=0.5}, + inventory_image = "waters.png^[colorize:#"..colour..":70", + drop = "", + drowning = 1, + liquidtype = "source", + liquid_alternative_flowing = "water:"..name.."_water_flowing", + liquid_alternative_source = "water:"..name.."_water_source", + liquid_viscosity = 1, + post_effect_color = {a = 50, r = red, g = green, b = blue}, + groups = {water = 3, liquid = 3, puts_out_fire = 1, cools_lava = 1}, + sounds = default.node_sound_water_defaults(), + }) + + minetest.register_node("water:"..name.."_water_flowing", { + description = description.." Flowing Water", + drawtype = "flowingliquid", + tiles = {"color_white.png^[colorize:#"..colour}, + special_tiles = { + { + name = "color_white.png^[colorize:#"..colour..":70", + backface_culling = false, + animation = { + type = "vertical_frames", + aspect_w = 16, + aspect_h = 16, + length = 2.0, + }, + }, + { + name = "color_white.png^[colorize:#"..colour..":70", + backface_culling = true, + animation = { + type = "vertical_frames", + aspect_w = 16, + aspect_h = 16, + length = 2.0, + }, + }, + }, + alpha = 200, + inventory_image = "waters.png^[colorize:#"..colour..":70", + paramtype = "light", + paramtype2 = "flowingliquid", + walkable = false, + pointable = false, + diggable = false, + buildable_to = true, + is_ground_content = false, + drop = "", + drowning = 1, + liquidtype = "flowing", + liquid_alternative_flowing = "water:"..name.."_water_flowing", + liquid_alternative_source = "water:"..name.."_water_source", + liquid_viscosity = 1, + post_effect_color = {a = 50, r = red, g = green, b = blue}, + groups = {water = 3, liquid = 3, puts_out_fire = 1, + not_in_creative_inventory = 1, cools_lava = 1}, + sounds = default.node_sound_water_defaults(), + }) + +end diff --git a/games/default/files/Nodes/water/license.txt b/games/default/files/Nodes/water/license.txt new file mode 100644 index 000000000..15e03563d --- /dev/null +++ b/games/default/files/Nodes/water/license.txt @@ -0,0 +1,39 @@ + +Textures: +rs_water.png +Based on default_water.png by Cisoun from minetest_game (CC BY-SA 3.0). + +rs_water_flowing_animated.png and rs_water_source_animated.png +Based on textures by RealBadAngel from minetest_game (CC BY-SA 3.0). + + +Code: +License: MIT (https://opensource.org/licenses/MIT) +By Shara RedCat + + + + +--- + +The MIT License (MIT) + +Copyright (c) 2017 Shara RedCat + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in +all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +THE SOFTWARE. \ No newline at end of file diff --git a/games/default/files/Nodes/water/mod.conf b/games/default/files/Nodes/water/mod.conf new file mode 100644 index 000000000..cbfe8f977 --- /dev/null +++ b/games/default/files/Nodes/water/mod.conf @@ -0,0 +1 @@ +name = water diff --git a/games/default/files/Other/awards/LICENSE.txt b/games/default/files/Other/awards/LICENSE.txt new file mode 100644 index 000000000..b9bc22e47 --- /dev/null +++ b/games/default/files/Other/awards/LICENSE.txt @@ -0,0 +1,19 @@ +Copyright (c) 2013-8 rubenwardy + +Permission is hereby granted, free of charge, to any person obtaining a copy of +this software and associated documentation files (the "Software"), to deal in +the Software without restriction, including without limitation the rights to +use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies +of the Software, and to permit persons to whom the Software is furnished to do +so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL +THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING +FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER +DEALINGS IN THE SOFTWARE. diff --git a/games/default/files/Other/awards/README.md b/games/default/files/Other/awards/README.md new file mode 100644 index 000000000..e570f0e63 --- /dev/null +++ b/games/default/files/Other/awards/README.md @@ -0,0 +1,295 @@ +# Awards + +Adds awards/achievements to Minetest (plus a very good API). + +by [rubenwardy](https://rubenwardy.com), licensed under MIT. +With thanks to Wuzzy, kaeza, and MrIbby. + +Majority of awards are back ported from Calinou's old fork in Carbone, under same license. + + +# Introduction + +## Awards and Triggers + +An award is a single unlockable unit, registered like so: + +```lua +awards.register_award("mymod:award", { + description = "My Example Award", +}) +``` + +Awards are unlocked either using `awards.unlock()` or by a trigger being +fullfilled. A trigger is a condition which unlocks an award. Triggers are +registered at the same time as an award is registered: + +```lua +awards.register_award("mymod:award", { + description = "My Example Award", + trigger = { + type = "dig", + node = "default:stone", + target = 10, + }, +}) +``` + +The above trigger type is an example of a counted_key trigger: +rather than a single counter there's a counter per key - in this +case the key is the value of the `node` field. If you leave out +the key in a `counted_key` trigger, then the total will be used +instead. For example, here is an award which unlocks after you've +placed 10 nodes of any type: + +```lua +awards.register_award("mymod:award", { + description = "Place 10 nodes!", + trigger = { + type = "place", + target = 10, + }, +}) +``` + +You can also register an *Unlock Function*, which can return the name of an +award to unlock it: + +```lua +awards.register_award("mymod:award", { + title = "Lava Miner", + description = "Mine any block while being very close to lava.", +}) + +awards.register_on_dig(function(player, data) + local pos = player:get_pos() + if pos and (minetest.find_node_near(pos, 1, "default:lava_source") or + minetest.find_node_near(pos, 1, "default:lava_flowing")) then + return "mymod:award" + end + return nil +end) +``` + +The above is a bad example as you don't actually need the stats data given. +It would be better to register a `dignode` callback and call `awards.unlock()` +if the condition is met. + +## Trigger Types + +The trigger type is used to determine which event will cause the trigger will be +fulfilled. The awards mod comes with a number of predefined types, documented +in [Builtin Trigger Types](#builtin-trigger-types). + +Trigger types are registered like so: + +```lua +awards.register_trigger("chat", { + type = "counted", + progress = "@1/@2 chat messages", + auto_description = { "Send a chat message", "Chat @1 times" }, +}) + +minetest.register_on_chat_message(function(name, message) + local player = minetest.get_player_by_name(name) + if not player or string.find(message, "/") then + return + end + awards.notify_chat(player) +end) +``` + +A trigger type has a type as well, which determines how the data is stored and +also how the trigger is fulfilled. + +**Trigger Type Types:** + +* **custom** requires you handle the calling of awards.unlock() yourself. You also + need to implement on_register() yourself. You'll also probably want to implement + `on_register()` to catch awards registered with your trigger type. +* **counted** stores a single counter for each player which is incremented by calling + `trigger:notify(player)`. Good for homogenous actions like number of chat messages, + joins, and the like. +* **counted_key** stores a table of counters each indexed by a key. There is also + a total field (`__total`) which stores the sum of all counters. A counter is + incremented by calling `trigger:notify(player, key)`. This is good for things like + placing nodes or crafting items, where the key will be the item or node name. + If `key` is an item, then you should also add `key_is_item = true` to the + trigger type definition. + +As said, you could use a custom trigger if none of the other ones match your needs. +Here's an example. + +```lua +awards.register_trigger("foo", { + type = "custom", + progress = "@1/@2 foos", + auto_description = { "Do a foo", "Foo @1 times" }, +}) + +minetest.register_on_foo(function() + for _, trigger in pairs(awards.on.foo) do + -- trigger is either a trigger tables or + -- or an unlock function. + + -- some complex logic + if condition then + awards.unlock(trigger) + end + end +end) + +``` + +## Award Difficulty + +Difficulty is used to determine how awards are sorted in awards lists. + +If the award trigger is counted, ie: the trigger requires a `target` property, +then the difficulty multipler is timesd by `target` to get the overall difficulty. +If the award isn't a counted type then the difficulty multiplier is used as the +overal difficulty. Award difficulty affects how awards are sorted in a list - +more difficult awards are further down the list. + +In real terms, `difficulty` is a relative difficulty to do one unit of the trigger +if its counted, otherwise it's the relative difficulty of completely doing the +award (if not-counted). For the `dig` trigger type, 1 unit would be 1 node dug. + + +Actual code used to calculate award difficulty: + +```lua +local difficulty = def.difficulty or 1 +if def.trigger and def.trigger.target then + difficulty = difficulty * def.trigger.target +end +``` + + +# API + +* awards.register_award(name, def), the def table has the following fields: + * `title` - title of the award (defaults to name) + * `description` - longer description of the award, displayed in Awards tab + * `difficulty` - see [Award Difficulty](#award-difficulty). + * `requires` - list of awards that need to be unlocked before this one + is visible. + * `prizes` - list of items to give when you earn the award + * `secret` - boolean if this award is secret (i.e. showed on awards list) + * `sound` - `SimpleSoundSpec` table to play on unlock. + `false` to disable unlock sound. + * `icon` - the icon image, use default otherwise. + * `background` - the background image, use default otherwise. + * `trigger` - trigger definition, see [Builtin Trigger Types](#builtin-trigger-types). + * `on_unlock(name, def)` - callback on unlock. +* awards.register_trigger(name, def), the def table has the following fields: + * `type` - see [Trigger Types](#trigger-types). + * `progress` - used to format progress, defaults to "%1/%2". + * `auto_description` - a table of two elements. Each element is a format string. Element 1 is singular, element 2 is plural. Used for the award description (not title) if none is given. + * `on_register(award_def)` - called when an award registers with this type. + * "counted_key" only: + * `auto_description_total` - Used if the trigger is for the total. + * `get_key(self, def)` - get key for particular award, return nil for a total. + * `key_is_item` - true if the key is an item name. On notify(), + any watched groups will also be notified as `group:groupname` keys. +* awards.register_on_unlock(func(name, def)) + * name is the player name + * def is the award def. + * return true to cancel HUD +* awards.unlock(name, award) + * gives an award to a player + * name is the player name + +## Builtin Trigger Types + +Callbacks (register a function to be run) + +* dig type: Dig a node. + * node: the dug node type. If nil, all dug nodes are counted +* place type: Place a node. + * node: the placed node type. If nil, all placed nodes are counted +* craft type: Craft something. + * item: the crafted item type. If nil, all crafted items are counted +* death type: Die. + * reason: the death reason, one of the types in PlayerHPChangeReason (see lua_api.txt) + or nil for total deaths. +* chat type: Write a chat message. +* join type: Join the server. +* eat type: Eat an item. + * item: the eaten item type. If nil, all eaten items are counted + +(for all types) target - how many times to dig/place/craft/etc. + +Each type has a register function like so: + +* awards.register_on_TRIGGERTYPE(func(player, data)) + * data is the player stats data + * return award name or null + +### dig + +```lua +trigger = { + type = "dig", + node = "default:dirt", -- item, alias, or group + target = 50, +} +``` + +### place + +```lua +trigger = { + type = "place", + node = "default:dirt", -- item, alias, or group + target = 50, +} +``` + +### craft + +```lua +trigger = { + type = "craft", + item = "default:dirt", -- item, alias, or group + target = 50, +} +``` + +### death + +```lua +trigger = { + type = "death", + reason = "fall", + target = 5, +} +``` + +### chat + +```lua +trigger = { + type = "chat", + target = 100, +} +``` + +### join + +```lua +trigger = { + type = "join", + target = 100, +} +``` + +### eat + +```lua +trigger = { + type = "eat", + item = "default:apple", + target = 100, +} +``` diff --git a/games/default/files/Other/awards/depends.txt b/games/default/files/Other/awards/depends.txt new file mode 100644 index 000000000..c8f3f2dbc --- /dev/null +++ b/games/default/files/Other/awards/depends.txt @@ -0,0 +1,14 @@ +intllib? +sfinv? +unified_inventory? +default? +stairs? +farming? +dye? +beds? +wool? +vessels? +moreblocks? +fire? +flowers? +nyancat? diff --git a/games/default/files/Other/awards/init.lua b/games/default/files/Other/awards/init.lua new file mode 100644 index 000000000..98f054a09 --- /dev/null +++ b/games/default/files/Other/awards/init.lua @@ -0,0 +1,36 @@ +-- Copyright (c) 2013-18 rubenwardy. MIT. + +-- The global award namespace +awards = { + show_mode = "hud", + registered_triggers = {}, +} + +-- Internationalization support. +awards.gettext, awards.ngettext = dofile(minetest.get_modpath("awards").."/src/intllib.lua") + +-- Load files +dofile(minetest.get_modpath("awards").."/src/data.lua") +dofile(minetest.get_modpath("awards").."/src/api_awards.lua") +dofile(minetest.get_modpath("awards").."/src/api_triggers.lua") +dofile(minetest.get_modpath("awards").."/src/chat_commands.lua") +dofile(minetest.get_modpath("awards").."/src/gui.lua") +dofile(minetest.get_modpath("awards").."/src/triggers.lua") +dofile(minetest.get_modpath("awards").."/src/awards.lua") + +awards.load() +minetest.register_on_shutdown(awards.save) + + +-- Backwards compatibility +awards.give_achievement = awards.unlock +awards.getFormspec = awards.get_formspec +awards.showto = awards.show_to +awards.register_onDig = awards.register_on_dig +awards.register_onPlace = awards.register_on_place +awards.register_onDeath = awards.register_on_death +awards.register_onChat = awards.register_on_chat +awards.register_onJoin = awards.register_on_join +awards.register_onCraft = awards.register_on_craft +awards.def = awards.registered_awards +awards.register_achievement = awards.register_award diff --git a/games/default/files/Other/awards/locale/de.po b/games/default/files/Other/awards/locale/de.po new file mode 100644 index 000000000..38dbf2dbb --- /dev/null +++ b/games/default/files/Other/awards/locale/de.po @@ -0,0 +1,824 @@ +# German translations for PACKAGE package. +# Copyright (C) 2017 THE PACKAGE'S COPYRIGHT HOLDER +# This file is distributed under the same license as the PACKAGE package. +# Wuzzy2, 2017. +# +msgid "" +msgstr "" +"Project-Id-Version: PACKAGE VERSION\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2017-02-21 05:35-0300\n" +"PO-Revision-Date: 2017-02-21 04:19-0300\n" +"Last-Translator: Wuzzy2\n" +"Language-Team: German\n" +"Language: de\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" + +#: api.lua +msgid "Secret Achievement Unlocked:" +msgstr "Geheime Auszeichnung erhalten:" + +#: api.lua +msgid "Achievement Unlocked:" +msgstr "Auszeichnung erhalten:" + +#: api.lua +#, lua-format +msgid "Secret Achievement Unlocked: %s" +msgstr "Geheime Auszeichnung erhalten: %s" + +#: api.lua +#, lua-format +msgid "Achievement Unlocked: %s" +msgstr "Auszeichnung erhalten: %s" + +#: api.lua +msgid "Secret Achievement Unlocked!" +msgstr "Geheime Auszeichnung erhalten!" + +#: api.lua +msgid "Achievement Unlocked!" +msgstr "Auszeichnung erhalten:" + +#: api.lua +msgid "Error: No awards available." +msgstr "Fehler: Keine Auszeichnungen vorhanden." + +#: api.lua +msgid "OK" +msgstr "OK" + +#: api.lua +msgid "(Secret Award)" +msgstr "(Geheime Auszeichnung)" + +#: api.lua +msgid "Unlock this award to find out what it is." +msgstr "Verdienen Sie sich diese Auszeichnung, um herauszufinden, was sie ist." + +#: api.lua +#, lua-format +msgid "%s (got)" +msgstr "%s (erhalten)" + +#: api.lua +msgid "You've disabled awards. Type /awards enable to reenable." +msgstr "" +"Sie haben die Auszeichnungen deaktiviert. Geben Sie »/awards enable« ein, um " +"sie wieder zu aktivieren." + +#: api.lua +msgid "You have not unlocked any awards." +msgstr "Sie haben noch keine Auszeichnungen." + +#: api.lua +#, lua-format +msgid "%s’s awards:" +msgstr "%ss Auszeichnungen:" + +#: api.lua chat_commands.lua +#, lua-format +msgid "%s: %s" +msgstr "%s: %s" + +#: sfinv.lua unified_inventory.lua +msgid "Awards" +msgstr "Auszeichnungen" + +#: triggers.lua +msgid "@1/@2 dug" +msgstr "@1/@2 abgebaut" + +#. Translators: @1 is count, @2 is description. +#: triggers.lua +msgid "Mine: @2" +msgid_plural "Mine: @1×@2" +msgstr[0] "Bauen Sie einen Block ab: @2" +msgstr[1] "Bauen Sie Blöcke ab: @1×@2" + +#: triggers.lua +msgid "Mine @1 block." +msgid_plural "Mine @1 blocks." +msgstr[0] "" +msgstr[1] "" + +#: triggers.lua +msgid "@1/@2 placed" +msgstr "@1/@2 platziert" + +#. Translators: @1 is count, @2 is description. +#: triggers.lua +msgid "Place: @2" +msgid_plural "Place: @1×@2" +msgstr[0] "Platzieren Sie einen Block: @2" +msgstr[1] "Platzieren Sie Blöcke: @1×@2" + +#: triggers.lua +msgid "Place a block." +msgid_plural "Place @1 blocks." +msgstr[0] "" +msgstr[1] "" + +#: triggers.lua +msgid "@1/@2 eaten" +msgstr "@1/@2 gegessen" + +#. Translators: @1 is count, @2 is description. +#: triggers.lua +msgid "Eat: @2" +msgid_plural "Eat: @1×@2" +msgstr[0] "Essen Sie: @2" +msgstr[1] "Essen Sie: @1×@2" + +#: triggers.lua +msgid "Eat an item." +msgid_plural "Eat @1 items." +msgstr[0] "" +msgstr[1] "" + +#: triggers.lua +msgid "@1/@2 deaths" +msgstr "@1/@2 Tode" + +#: triggers.lua +msgid "Die." +msgid_plural "Die @1 times." +msgstr[0] "Sterben Sie." +msgstr[1] "Sterben Sie @1 mal." + +#: triggers.lua +msgid "@1/@2 chat messages" +msgstr "" + +#: triggers.lua +msgid "Write something in chat." +msgid_plural "Write @1 chat messages." +msgstr[0] "" +msgstr[1] "" + +#: triggers.lua +msgid "@1/@2 game joins" +msgstr "@1/@2 Spielen beigetreten" + +#: triggers.lua +msgid "Join the game." +msgid_plural "Join the game @1 times." +msgstr[0] "Treten Sie dem Spiel bei." +msgstr[1] "Treten Sie dem Spiel @1 mal bei." + +#: triggers.lua +msgid "@1/@2 crafted" +msgstr "@1/@2 gefertigt" + +#. Translators: @1 is count, @2 is description. +#: triggers.lua +msgid "Craft: @2" +msgid_plural "Craft: @1×@2" +msgstr[0] "Fertigen Sie an: @2" +msgstr[1] "Fertigen Sie an: @1×@2" + +#: triggers.lua +msgid "Craft an item." +msgid_plural "Craft @1 items." +msgstr[0] "" +msgstr[1] "" + +#: init.lua +msgid "Saint-Maclou" +msgstr "Saint-Maclou" + +#: init.lua +msgid "Place 20 coal checkers." +msgstr "Platzieren Sie 20 Kohlenschachbrettmuster." + +#: init.lua +msgid "Castorama" +msgstr "Gießmeister" + +#: init.lua +msgid "Place 20 iron checkers." +msgstr "Platzieren Sie 20 Eisenschachbrettmuster." + +#: init.lua +msgid "Sam the Trapper" +msgstr "Sam der Fallensteller" + +#: init.lua +msgid "Place 2 trap stones." +msgstr "Platzieren Sie 2 Fallensteine." + +#: init.lua +msgid "Backpacker" +msgstr "Rucksacktourist" + +#: init.lua +msgid "Craft 4 large bags." +msgstr "Fertigen Sie 4 große Taschen." + +#: init.lua +msgid "Pyromaniac" +msgstr "Pyromane" + +#: init.lua +msgid "Craft 8 times flint and steel." +msgstr "Fertigen Sie 8 mal einen Feuerstein und Stahl an." + +#: init.lua +msgid "Firefighter" +msgstr "Feuerwehr" + +#: init.lua +msgid "Put out 1000 fires." +msgstr "Löschen Sie 1000 Flammen." + +#: init.lua +msgid "Light It Up" +msgstr "Licht an!" + +#: init.lua +msgid "Place 100 torches." +msgstr "Platzieren Sie 100 Fackeln." + +#: init.lua +msgid "Well Lit" +msgstr "Gut ausgeleuchtet" + +#: init.lua +msgid "Place 1,000 torches." +msgstr "Platzieren Sie 1000 Fackeln." + +#: init.lua +msgid "Really Well Lit" +msgstr "Sehr gute Beleuchtung" + +#: init.lua +msgid "Craft 10 mese lamps." +msgstr "Fertigen Sie 10 Meselampen." + +#: init.lua +msgid "Outpost" +msgstr "Außenposten" + +#: init.lua +msgid "Craft 200 stone bricks." +msgstr "Fertigen Sie 200 Steinziegel." + +#: init.lua +msgid "Watchtower" +msgstr "Wachturm" + +#: init.lua +msgid "Craft 800 stone bricks." +msgstr "Fertigen Sie 800 Steinziegel an." + +#: init.lua +msgid "Fortress" +msgstr "Burg" + +#: init.lua +msgid "Craft 3,200 stone bricks." +msgstr "Fertigen Sie 3200 Steinziegel." + +#: init.lua +msgid "Desert Dweller" +msgstr "Wüstenbewohner" + +#: init.lua +msgid "Craft 400 desert stone bricks." +msgstr "Fertigen Sie 400 Wüstensteinziegel." + +#: init.lua +msgid "Pharaoh" +msgstr "Pharao" + +#: init.lua +msgid "Craft 100 sandstone bricks." +msgstr "Fertigen Sie 100 Sandsteinziegel." + +#: init.lua +msgid "Little Library" +msgstr "Kleine Bücherei" + +#: init.lua +msgid "Craft 7 bookshelves." +msgstr "Fertigen Sie 7 Bücherregale." + +#: init.lua +msgid "Lava and Water" +msgstr "Lava und Wasser" + +#: init.lua +msgid "Mine your first obsidian." +msgstr "Bauen Sie Ihr erstes Obsidian ab." + +#: init.lua +msgid "Obsessed with Obsidian" +msgstr "Von Obsidian besessen" + +#: init.lua +msgid "Mine 50 obsidian." +msgstr "Bauen Sie 50 Obsidian ab." + +#: init.lua +msgid "Lava Miner" +msgstr "Lavagräber" + +#: init.lua +msgid "Mine any block while being very close to lava." +msgstr "" +"Bauen Sie einen beliebigen Block ab, während Sie sehr nahe an der Lava " +"stehen." + +#: init.lua +msgid "On The Way" +msgstr "Auf dem Weg" + +#: init.lua +msgid "Place 100 rails." +msgstr "Platzieren Sie 100 Gleise." + +#: init.lua +msgid "First Day in the Woods" +msgstr "Erster Tag im Wald" + +#: init.lua +msgid "Dig 6 tree blocks." +msgstr "Bauen Sie 6 Baumblöcke ab." + +#: init.lua +msgid "Lumberjack" +msgstr "Holzfäller" + +#: init.lua +msgid "Dig 36 tree blocks." +msgstr "Bauen Sie 36 Baumblöcke ab." + +#: init.lua +msgid "Semi-pro Lumberjack" +msgstr "Fortgeschrittener Holzfäller" + +#: init.lua +msgid "Dig 216 tree blocks." +msgstr "Bauen Sie 216 Baumblöcke ab." + +#: init.lua +msgid "Professional Lumberjack" +msgstr "Profiholzfäller" + +#: init.lua +msgid "Dig 1,296 tree blocks." +msgstr "Bauen Sie 1296 Baumblöcke ab." + +#: init.lua +msgid "Junglebaby" +msgstr "Dschungelbaby" + +#: init.lua +msgid "Dig 100 jungle tree blocks." +msgstr "Bauen Sie 100 Dschungelbaumblöcke ab." + +#: init.lua +msgid "Jungleman" +msgstr "Dschungelmann" + +#: init.lua +msgid "Dig 1,000 jungle tree blocks." +msgstr "Bauen Sie 1000 Dschungelbaumblöcke ab." + +#: init.lua +msgid "First Mese Find" +msgstr "Erster Mesefund" + +#: init.lua +msgid "Mine your first mese ore." +msgstr "Bauen Sie Ihr erstes Meseerz ab." + +#: init.lua +msgid "Mese Mastery" +msgstr "Mesemeister" + +#: init.lua +msgid "Mine a mese block." +msgstr "Bauen Sie einen Meseblock ab." + +#: init.lua +msgid "You’re a copper" +msgstr "Du Kupfer!" + +#: init.lua +msgid "Dig 1,000 copper ores." +msgstr "Bauen Sie 1000 Kupfererze ab." + +#: init.lua +msgid "A Cat in a Pop-Tart?!" +msgstr "Eine Katze im Pop-Tart?!" + +#: init.lua +msgid "Mine a nyan cat." +msgstr "Bauen Sie eine Nyan Cat ab." + +#: init.lua +msgid "Mini Miner" +msgstr "Berganfänger" + +#: init.lua +msgid "Dig 100 stone blocks." +msgstr "Bauen Sie 100 Steinblöcke ab." + +#: init.lua +msgid "Hardened Miner" +msgstr "Abhehärteter Bergarbeiter" + +#: init.lua +msgid "Dig 1,000 stone blocks." +msgstr "Bauen Sie 1000 Steine ab." + +#: init.lua +msgid "Master Miner" +msgstr "Profibergarbeiter" + +#: init.lua +msgid "Dig 10,000 stone blocks." +msgstr "Bauen Sie 10000 Steine ab." + +#: init.lua +msgid "Marchand De Sable" +msgstr "" + +#: init.lua +msgid "Dig 1,000 sand." +msgstr "Bauen Sie 1000 Sand ab." + +#: init.lua +msgid "Crafter of Sticks" +msgstr "Stockmacher" + +#: init.lua +msgid "Craft 100 sticks." +msgstr "Fertigen Sie 100 Stöcke." + +#: init.lua +msgid "Jungle Discoverer" +msgstr "Dschungelerkunder" + +#: init.lua +msgid "Mine your first jungle grass." +msgstr "Bauen Sie Ihr erstes Dschungelgras ab." + +#: init.lua +msgid "Grasslands Discoverer" +msgstr "Prärieerkunder" + +#: init.lua +msgid "Mine some grass." +msgstr "Bauen Sie etwas Gras ab." + +#: init.lua +msgid "Savannah Discoverer" +msgstr "Savannenerkunder" + +#: init.lua +msgid "Mine some dry grass." +msgstr "Bauen Sie etwas trockenes Gras ab." + +#: init.lua +msgid "Desert Discoverer" +msgstr "Wüstenerkunder" + +#: init.lua +msgid "Mine your first cactus." +msgstr "Bauen Sie Ihren ersten Kaktus ab." + +#: init.lua +msgid "Far Lands" +msgstr "Ferne Lande" + +#: init.lua +msgid "Mine your first dry shrub." +msgstr "Bauen Sie Ihren ersten vertrockneten Strauch ab." + +#: init.lua +msgid "Glacier Discoverer" +msgstr "Gletschererkunder" + +#: init.lua +msgid "Mine your first ice." +msgstr "Bauen Sie Ihr erstes Eis ab." + +#: init.lua +msgid "Very Simple Snow Man" +msgstr "Sehr simpler Schneemann" + +#: init.lua +msgid "Place two snow blocks." +msgstr "Platzieren Sie zwei Schneeblöcke." + +#: init.lua +msgid "First Gold Find" +msgstr "Erster Goldfund" + +#: init.lua +msgid "Mine your first gold ore." +msgstr "Bauen Sie Ihr erstes Golderz ab." + +#: init.lua +msgid "Gold Rush" +msgstr "Goldrausch" + +#: init.lua +msgid "Mine 45 gold ores." +msgstr "Bauen Sie 18 Diamanterze ab." + +#: init.lua +msgid "Wow, I am Diamonds!" +msgstr "Wow, ich bin Diamanten!" + +#: init.lua +msgid "Mine your first diamond ore." +msgstr "Bauen Sie Ihr erstes Diamanterz ab." + +#: init.lua +msgid "Girl's Best Friend" +msgstr "Bester Freund der Mädchen" + +#: init.lua +msgid "Mine 18 diamond ores." +msgstr "Bauen Sie 18 Diamanterze ab." + +#: init.lua +msgid "Hardest Block on Earth" +msgstr "Härtester Block der Welt" + +#: init.lua +msgid "Craft a diamond block." +msgstr "Fertigen Sie einen Diamantblock an." + +#: init.lua +msgid "In the Dungeon" +msgstr "Im Verlies" + +#: init.lua +msgid "Mine a mossy cobblestone." +msgstr "Bauen Sie ein bemoostes Kopfsteinpflaster ab." + +#: init.lua +msgid "Smelter" +msgstr "Schmelzer" + +#: init.lua +msgid "Craft 10 furnaces." +msgstr "Fertigen Sie 10 Öfen." + +#: init.lua +msgid "Treasurer" +msgstr "Schatzmeister" + +#: init.lua +msgid "Craft 15 chests." +msgstr "Fertigen Sie 15 Truhen." + +#: init.lua +msgid "Bankier" +msgstr "Bankier" + +#: init.lua +msgid "Craft 30 locked chests." +msgstr "Fertigen Sie 30 abgeschlossene Truhen." + +#: init.lua +msgid "Bricker" +msgstr "Ziegler" + +#: init.lua +msgid "Craft 200 brick blocks." +msgstr "Fertigen Sie 200 Ziegelblöcke." + +#: init.lua +msgid "House of Obsidian" +msgstr "Haus aus Obsidian" + +#: init.lua +msgid "Craft 100 obsidian bricks." +msgstr "Fertigen Sie 100 Obsidianziegel." + +#: init.lua +msgid "Build a Cave" +msgstr "Höhlenbauer" + +#: init.lua +msgid "Place 100 stone." +msgstr "Platzieren Sie 100 Steine." + +#: init.lua +msgid "Long Ladder" +msgstr "Lange Leiter" + +#: init.lua +msgid "Place 400 wooden ladders." +msgstr "Platzieren Sie 400 Holzleitern." + +#: init.lua +msgid "Industrial Age" +msgstr "Industriezeitalter" + +#: init.lua +msgid "Place 40 steel ladders." +msgstr "Platzieren Sie 40 Stahlleitern." + +#: init.lua +msgid "Yummy!" +msgstr "Lecker!" + +#: init.lua +msgid "Eat 80 apples." +msgstr "Essen Sie 80 Äpfel." + +#: init.lua +msgid "Glasser" +msgstr "Glasmacher" + +#: init.lua +msgid "Craft 14 vessels shelves." +msgstr "Fertigen Sie 14 Gefäßregale." + +#: init.lua +msgid "Farming Skills Acquired" +msgstr "Landwirtschaft erlernt" + +#: init.lua +msgid "Harvest a fully grown wheat plant." +msgstr "Ernten Sie eine voll ausgewachsene Getreidepflanze." + +#: init.lua +msgid "Field Worker" +msgstr "Feldarbeiter" + +#: init.lua +msgid "Harvest 25 fully grown wheat plants." +msgstr "Ernten Sie 25 voll ausgewachsene Getreidepflanzen." + +#: init.lua +msgid "Aspiring Farmer" +msgstr "Aufstrebender Bauer" + +#: init.lua +msgid "Harvest 125 fully grown wheat plants." +msgstr "Ernten Sie 125 voll ausgewachsene Getreidepflanzen." + +#: init.lua +msgid "Wheat Magnate" +msgstr "Getreidemagnat" + +#: init.lua +msgid "Harvest 625 fully grown wheat plants." +msgstr "Ernten Sie 625 voll ausgewachsene Getreidepflanzen." + +#: init.lua +msgid "Baker" +msgstr "Bäcker" + +#: init.lua +msgid "Eat 10 loaves of bread." +msgstr "Essen Sie 10 Brote." + +#: init.lua +msgid "Wool Over Your Eyes" +msgstr "Wollige Augen" + +#: init.lua +msgid "Craft 250 white wool." +msgstr "Fertigen Sie 250 weiße Wolle." + +#: init.lua +msgid "Hotelier" +msgstr "Hotelier" + +#: init.lua +msgid "Craft 15 fancy beds." +msgstr "Fertigen Sie 15 schicke Betten." + +#: init.lua +msgid "Filthy Rich" +msgstr "Stinkreich" + +#: init.lua +msgid "Craft 24 gold block stairs." +msgstr "Fertigen Sie 24 Goldblockstufen." + +#: init.lua +msgid "Roses Are Red" +msgstr "Rosen sind rot" + +#: init.lua +msgid "Craft 400 red dyes." +msgstr "Fertigen Sie 400 rote Farbstoffe." + +#: init.lua +msgid "Dandelions are Yellow" +msgstr "Löwenzahn ist gelb" + +#: init.lua +msgid "Craft 400 yellow dyes." +msgstr "Fertigen Sie 400 gelbe Farbstoffe." + +#: init.lua +msgid "Geraniums are Blue" +msgstr "Geranien sind blau" + +#: init.lua +msgid "Craft 400 blue dyes." +msgstr "Fertigen Sie 400 blaue Farbstoffe." + +#: init.lua +msgid "White Color Stock" +msgstr "Weißer Farbstoffvorrat" + +#: init.lua +msgid "Craft 100 white dyes." +msgstr "Fertigen Sie 100 weiße Farbstoffe." + +#: init.lua +msgid "Tasty Mushrooms" +msgstr "Leckere Pilze" + +#: init.lua +msgid "Eat 3 brown mushrooms." +msgstr "Essen Sie 3 braune Pilze." + +#: init.lua +msgid "Mushroom Lover" +msgstr "Pilzfreund" + +#: init.lua +msgid "Eat 33 brown mushrooms." +msgstr "Essen Sie 33 braune Pilze." + +#: init.lua +msgid "Underground Mushroom Farmer" +msgstr "Unterirdischer Pilzbauer" + +#: init.lua +msgid "Eat 333 brown mushrooms." +msgstr "Essen Sie 333 braune Pilze." + +#: init.lua +msgid "Builder" +msgstr "Bauarbeiter" + +#: init.lua +msgid "Constructor" +msgstr "Konstrukteur" + +#: init.lua +msgid "Architect" +msgstr "Architekt" + +#: init.lua +msgid "Master Architect" +msgstr "Meisterarchitekt" + +#: chat_commands.lua +msgid "[c|clear|disable|enable]" +msgstr "[c|clear|disable|enable]" + +#: chat_commands.lua +msgid "Show, clear, disable or enable your achievements" +msgstr "Zeigen, löschen, deaktivieren oder aktivieren Sie Ihre Auszeichnungen" + +#: chat_commands.lua +msgid "" +"All your awards and statistics have been cleared. You can now start again." +msgstr "" +"All Ihre Auszeichnugen und Statistiken wurden zurückgesetzt. Sie können nun " +"von vorne anfangen." + +#: chat_commands.lua +msgid "You have disabled your achievements." +msgstr "Sie haben Ihre Auszeichnungen deaktiviert." + +#: chat_commands.lua +msgid "You have enabled your achievements." +msgstr "Sie haben Ihre Auszeichnungen aktiviert." + +#: chat_commands.lua +msgid "" +msgstr "" + +#: chat_commands.lua +msgid "Show details of an achievement" +msgstr "Details einer Auszeichnung anzeigen" + +#: chat_commands.lua +msgid "Achievement not found." +msgstr "Auszeichnung nicht gefunden." + +#: chat_commands.lua +msgid "" +msgstr "" + +#: chat_commands.lua +msgid "Get the achievements statistics for the given player or yourself" +msgstr "Die Statistik der Auszeichnungen eines Spielers zeigen" diff --git a/games/default/files/Other/awards/locale/es.po b/games/default/files/Other/awards/locale/es.po new file mode 100644 index 000000000..a2d595843 --- /dev/null +++ b/games/default/files/Other/awards/locale/es.po @@ -0,0 +1,825 @@ +# Spanish translations for PACKAGE package +# Traducciones al español para el paquete PACKAGE. +# Copyright (C) 2017 THE PACKAGE'S COPYRIGHT HOLDER +# This file is distributed under the same license as the PACKAGE package. +# Diego Martínez , 2017. +# +msgid "" +msgstr "" +"Project-Id-Version: PACKAGE VERSION\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2017-02-21 05:35-0300\n" +"PO-Revision-Date: 2017-02-20 22:17-0300\n" +"Last-Translator: Diego Martínez \n" +"Language-Team: Spanish\n" +"Language: es\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" + +#: api.lua +msgid "Secret Achievement Unlocked:" +msgstr "Logro secreto desbloqueado:" + +#: api.lua +msgid "Achievement Unlocked:" +msgstr "Logro desbloqueado:" + +#: api.lua +#, lua-format +msgid "Secret Achievement Unlocked: %s" +msgstr "Logro secreto desbloqueado: %s" + +#: api.lua +#, lua-format +msgid "Achievement Unlocked: %s" +msgstr "Logro desbloqueado: %s" + +#: api.lua +msgid "Secret Achievement Unlocked!" +msgstr "Logro secreto desbloqueado!" + +#: api.lua +msgid "Achievement Unlocked!" +msgstr "Logro desbloqueado!" + +#: api.lua +msgid "Error: No awards available." +msgstr "Error: No hay logros disponibles." + +#: api.lua +msgid "OK" +msgstr "Aceptar" + +#: api.lua +msgid "(Secret Award)" +msgstr "(Logro secreto)" + +#: api.lua +msgid "Unlock this award to find out what it is." +msgstr "Desbloquea éste logro para saber qué es." + +#: api.lua +#, lua-format +msgid "%s (got)" +msgstr "%s (obtenido)" + +#: api.lua +msgid "You've disabled awards. Type /awards enable to reenable." +msgstr "" +"Has deshabilitado los logros. Escribe \"/awards enable\" para reactivar." + +#: api.lua +msgid "You have not unlocked any awards." +msgstr "No has desbloqueado ningún logro." + +#: api.lua +#, lua-format +msgid "%s’s awards:" +msgstr "Logros de %s:" + +#: api.lua chat_commands.lua +#, lua-format +msgid "%s: %s" +msgstr "%s: %s" + +#: sfinv.lua unified_inventory.lua +msgid "Awards" +msgstr "Logros" + +#: triggers.lua +msgid "@1/@2 dug" +msgstr "@1/@2 excavados" + +#. Translators: @1 is count, @2 is description. +#: triggers.lua +msgid "Mine: @2" +msgid_plural "Mine: @1×@2" +msgstr[0] "Excavar: @2" +msgstr[1] "Excavar: @1×@2" + +#: triggers.lua +msgid "Mine @1 block." +msgid_plural "Mine @1 blocks." +msgstr[0] "Excavar un bloque." +msgstr[1] "Excavar @1 bloques." + +#: triggers.lua +msgid "@1/@2 placed" +msgstr "@1/@2 colocados" + +#. Translators: @1 is count, @2 is description. +#: triggers.lua +msgid "Place: @2" +msgid_plural "Place: @1×@2" +msgstr[0] "Colocar: @2" +msgstr[1] "Colocar: @1×@2" + +#: triggers.lua +msgid "Place a block." +msgid_plural "Place @1 blocks." +msgstr[0] "Colocar un bloque." +msgstr[1] "Colocar @1 bloques." + +#: triggers.lua +msgid "@1/@2 eaten" +msgstr "@1/@2 comidos" + +#. Translators: @1 is count, @2 is description. +#: triggers.lua +msgid "Eat: @2" +msgid_plural "Eat: @1×@2" +msgstr[0] "Comer: @2" +msgstr[1] "Comer: @1×@2" + +#: triggers.lua +msgid "Eat an item." +msgid_plural "Eat @1 items." +msgstr[0] "Comer un objeto." +msgstr[1] "Comer @1 objetos." + +#: triggers.lua +msgid "@1/@2 deaths" +msgstr "@1/@2 muertes" + +#: triggers.lua +msgid "Die." +msgid_plural "Die @1 times." +msgstr[0] "Morir." +msgstr[1] "Morir @1 veces." + +#: triggers.lua +msgid "@1/@2 chat messages" +msgstr "@1/@2 conversaciones" + +#: triggers.lua +msgid "Write something in chat." +msgid_plural "Write @1 chat messages." +msgstr[0] "Escribir algo." +msgstr[1] "Escribir @1 mensajes." + +#: triggers.lua +msgid "@1/@2 game joins" +msgstr "@1/@2 veces unido" + +#: triggers.lua +msgid "Join the game." +msgid_plural "Join the game @1 times." +msgstr[0] "Unirse al juego." +msgstr[1] "Unirse al juego @1 veces." + +#: triggers.lua +msgid "@1/@2 crafted" +msgstr "@1/@2 elaborado" + +#. Translators: @1 is count, @2 is description. +#: triggers.lua +msgid "Craft: @2" +msgid_plural "Craft: @1×@2" +msgstr[0] "Elaborar: @2" +msgstr[1] "Elaborar: %1×@2" + +#: triggers.lua +msgid "Craft an item." +msgid_plural "Craft @1 items." +msgstr[0] "Elaborar un objeto." +msgstr[1] "Elaborar @1 objetos." + +#: init.lua +msgid "Saint-Maclou" +msgstr "Saint-Maclou" + +#: init.lua +msgid "Place 20 coal checkers." +msgstr "Colocar 20 baldosas de ajedrez de carbón." + +#: init.lua +msgid "Castorama" +msgstr "Castorama" + +#: init.lua +msgid "Place 20 iron checkers." +msgstr "Colocar 20 baldosas de ajedrez de hierro." + +#: init.lua +msgid "Sam the Trapper" +msgstr "Sam el Atrapador" + +#: init.lua +msgid "Place 2 trap stones." +msgstr "Colocar 2 piedras trampa." + +#: init.lua +msgid "Backpacker" +msgstr "Mochilero" + +#: init.lua +msgid "Craft 4 large bags." +msgstr "Elaborar 4 bolsas grandes." + +#: init.lua +msgid "Pyromaniac" +msgstr "Piromaníaco" + +#: init.lua +msgid "Craft 8 times flint and steel." +msgstr "Elaborar pedernal y hierro 8 veces." + +#: init.lua +msgid "Firefighter" +msgstr "Bombero" + +#: init.lua +msgid "Put out 1000 fires." +msgstr "Apagar 1000 incendios." + +#: init.lua +msgid "Light It Up" +msgstr "Ilumínalo" + +#: init.lua +msgid "Place 100 torches." +msgstr "Colocar 100 antorchas." + +#: init.lua +msgid "Well Lit" +msgstr "Bien Iluminado" + +#: init.lua +msgid "Place 1,000 torches." +msgstr "Colocar 1.000 antorchas." + +#: init.lua +msgid "Really Well Lit" +msgstr "Realmente Bien Iluminado" + +#: init.lua +msgid "Craft 10 mese lamps." +msgstr "Elaborar 10 lámparas de MESE." + +#: init.lua +msgid "Outpost" +msgstr "Puesto de avanzada" + +#: init.lua +msgid "Craft 200 stone bricks." +msgstr "Elaborar 200 ladrillos de piedra." + +#: init.lua +msgid "Watchtower" +msgstr "Torre del vigía" + +#: init.lua +msgid "Craft 800 stone bricks." +msgstr "Elaborar 800 ladrillos de piedra." + +#: init.lua +msgid "Fortress" +msgstr "Fortaleza" + +#: init.lua +msgid "Craft 3,200 stone bricks." +msgstr "Elaborar 3.200 ladrillos de piedra." + +#: init.lua +msgid "Desert Dweller" +msgstr "Morador Desértico" + +#: init.lua +msgid "Craft 400 desert stone bricks." +msgstr "Elaborar 400 ladrillos de piedra desértica." + +#: init.lua +msgid "Pharaoh" +msgstr "Faraón" + +#: init.lua +msgid "Craft 100 sandstone bricks." +msgstr "Elaborar 200 ladrillos de arenisca." + +#: init.lua +msgid "Little Library" +msgstr "Pequeña Biblioteca" + +#: init.lua +msgid "Craft 7 bookshelves." +msgstr "Elaborar 7 libreros." + +#: init.lua +msgid "Lava and Water" +msgstr "Lava y Agua" + +#: init.lua +msgid "Mine your first obsidian." +msgstr "Excavar tu primera obsidiana." + +#: init.lua +msgid "Obsessed with Obsidian" +msgstr "Obsesionado con la Obsidiana" + +#: init.lua +msgid "Mine 50 obsidian." +msgstr "Excavar 50 obsidianas." + +#: init.lua +msgid "Lava Miner" +msgstr "Minero de Lava" + +#: init.lua +msgid "Mine any block while being very close to lava." +msgstr "Excavar un bloque cerca de lava." + +#: init.lua +msgid "On The Way" +msgstr "En Camino" + +#: init.lua +msgid "Place 100 rails." +msgstr "Colocar 100 rieles." + +#: init.lua +msgid "First Day in the Woods" +msgstr "Primer Día en el Bosque" + +#: init.lua +msgid "Dig 6 tree blocks." +msgstr "Cortar 6 árboles." + +#: init.lua +msgid "Lumberjack" +msgstr "Leñador" + +#: init.lua +msgid "Dig 36 tree blocks." +msgstr "Cortar 36 árboles." + +#: init.lua +msgid "Semi-pro Lumberjack" +msgstr "Leñador semi-profesional" + +#: init.lua +msgid "Dig 216 tree blocks." +msgstr "Cortar 216 árboles." + +#: init.lua +msgid "Professional Lumberjack" +msgstr "Leñador profesional" + +#: init.lua +msgid "Dig 1,296 tree blocks." +msgstr "Cortar 1.296 árboles." + +#: init.lua +msgid "Junglebaby" +msgstr "Bebé de la Selva" + +#: init.lua +msgid "Dig 100 jungle tree blocks." +msgstr "Cortar 100 árboles selváticos." + +#: init.lua +msgid "Jungleman" +msgstr "Hombre de la Selva" + +#: init.lua +msgid "Dig 1,000 jungle tree blocks." +msgstr "Cortar 1.000 árboles selváticos." + +#: init.lua +msgid "First Mese Find" +msgstr "Primer Encuentro de MESE" + +#: init.lua +msgid "Mine your first mese ore." +msgstr "Excava tu primer mineral de MESE." + +#: init.lua +msgid "Mese Mastery" +msgstr "Maestría de MESE" + +#: init.lua +msgid "Mine a mese block." +msgstr "Excava tu primer bloque de MESE." + +#: init.lua +msgid "You’re a copper" +msgstr "Eres un cobre" + +#: init.lua +msgid "Dig 1,000 copper ores." +msgstr "Excavar 1.000 minerales de cobre" + +#: init.lua +msgid "A Cat in a Pop-Tart?!" +msgstr "¡¿Un Gato en un Pop-Tart?!" + +#: init.lua +msgid "Mine a nyan cat." +msgstr "Excavar un Gato Nyan." + +#: init.lua +msgid "Mini Miner" +msgstr "Mini Minero" + +#: init.lua +msgid "Dig 100 stone blocks." +msgstr "Excavar 100 bloques de piedra." + +#: init.lua +msgid "Hardened Miner" +msgstr "Minero Curtido" + +#: init.lua +msgid "Dig 1,000 stone blocks." +msgstr "Excavar 1.000 bloques de piedra." + +#: init.lua +msgid "Master Miner" +msgstr "Minero Maestro" + +#: init.lua +msgid "Dig 10,000 stone blocks." +msgstr "Excavar 10.000 bloques de piedra." + +#: init.lua +msgid "Marchand De Sable" +msgstr "Marchand De Sable" + +#: init.lua +msgid "Dig 1,000 sand." +msgstr "Cavar 1.000 bloques de arena." + +#: init.lua +msgid "Crafter of Sticks" +msgstr "Elaborador de Varitas" + +#: init.lua +msgid "Craft 100 sticks." +msgstr "Elaborar 100 varitas." + +#: init.lua +msgid "Jungle Discoverer" +msgstr "Descubridor de Selva" + +#: init.lua +msgid "Mine your first jungle grass." +msgstr "Cortar tu primer pasto de selva." + +#: init.lua +msgid "Grasslands Discoverer" +msgstr "Descubridor de Praderas" + +#: init.lua +msgid "Mine some grass." +msgstr "Cortar un poco de pasto." + +#: init.lua +msgid "Savannah Discoverer" +msgstr "Descubridor de Savana" + +#: init.lua +msgid "Mine some dry grass." +msgstr "Cortar un poco de pasto seco." + +#: init.lua +msgid "Desert Discoverer" +msgstr "Descubridor del Desierto" + +#: init.lua +msgid "Mine your first cactus." +msgstr "Cortar tu primer cácto." + +#: init.lua +msgid "Far Lands" +msgstr "Tierras Lejanas" + +#: init.lua +msgid "Mine your first dry shrub." +msgstr "Cortar tu primer arbusto seco" + +#: init.lua +msgid "Glacier Discoverer" +msgstr "Descubridor del Glaciar" + +#: init.lua +msgid "Mine your first ice." +msgstr "Romper tu primer bloque de hielo." + +#: init.lua +msgid "Very Simple Snow Man" +msgstr "Muñeco de Nieve Muy Simple" + +#: init.lua +msgid "Place two snow blocks." +msgstr "Colocar dos bloques de nieve." + +#: init.lua +msgid "First Gold Find" +msgstr "Primer Encuentro de Oro" + +#: init.lua +msgid "Mine your first gold ore." +msgstr "Excavar tu primer pepita de oro." + +#: init.lua +msgid "Gold Rush" +msgstr "Fiebre del Oro" + +#: init.lua +msgid "Mine 45 gold ores." +msgstr "Excavar 45 pepitas de oro." + +#: init.lua +msgid "Wow, I am Diamonds!" +msgstr "¡Guau, Soy Diamantes!" + +#: init.lua +msgid "Mine your first diamond ore." +msgstr "Excava tu primer diamante." + +#: init.lua +msgid "Girl's Best Friend" +msgstr "El Mejor Amigo de Las Mujeres" + +#: init.lua +msgid "Mine 18 diamond ores." +msgstr "Excava 10 diamantes." + +#: init.lua +msgid "Hardest Block on Earth" +msgstr "El Bloque Más Duro Sobre La Tierra" + +#: init.lua +msgid "Craft a diamond block." +msgstr "Elaborar un bloque de diamante." + +#: init.lua +msgid "In the Dungeon" +msgstr "En Las Mazmorras" + +#: init.lua +msgid "Mine a mossy cobblestone." +msgstr "Excavar unos adoquines musgosos." + +#: init.lua +msgid "Smelter" +msgstr "Fundidor" + +#: init.lua +msgid "Craft 10 furnaces." +msgstr "Elaborar 10 hornos." + +#: init.lua +msgid "Treasurer" +msgstr "Tesorero" + +#: init.lua +msgid "Craft 15 chests." +msgstr "Elaborar 15 cofres." + +#: init.lua +msgid "Bankier" +msgstr "Banquero" + +#: init.lua +msgid "Craft 30 locked chests." +msgstr "Elaborar 30 bloques cerrados." + +#: init.lua +msgid "Bricker" +msgstr "Ladrillero" + +#: init.lua +msgid "Craft 200 brick blocks." +msgstr "Elaborar 200 bloques de ladrillo." + +#: init.lua +msgid "House of Obsidian" +msgstr "Casa de Obsidiana" + +#: init.lua +msgid "Craft 100 obsidian bricks." +msgstr "Elaborar 100 ladrillos de obsidiana." + +#: init.lua +msgid "Build a Cave" +msgstr "Construye Una Cueva" + +#: init.lua +msgid "Place 100 stone." +msgstr "Coloca 100 piedras." + +#: init.lua +msgid "Long Ladder" +msgstr "Escalerilla Larga" + +#: init.lua +msgid "Place 400 wooden ladders." +msgstr "Coloca 400 escalerillas de madera." + +#: init.lua +msgid "Industrial Age" +msgstr "Era Industrial" + +#: init.lua +msgid "Place 40 steel ladders." +msgstr "Coloca 40 escalerillas de acero." + +#: init.lua +msgid "Yummy!" +msgstr "¡Qué Rico!" + +#: init.lua +msgid "Eat 80 apples." +msgstr "Come 80 manzanas." + +# Intentionally marked as fuzzy. +#: init.lua +#, fuzzy +msgid "Glasser" +msgstr "Vidriero" + +#: init.lua +msgid "Craft 14 vessels shelves." +msgstr "Elabora 14 estanterías para botellas." + +#: init.lua +msgid "Farming Skills Acquired" +msgstr "Habilidades de Granja Adquiridas" + +#: init.lua +msgid "Harvest a fully grown wheat plant." +msgstr "Cosecha una plantas de trigo madura." + +#: init.lua +msgid "Field Worker" +msgstr "Trabajador de Campo" + +#: init.lua +msgid "Harvest 25 fully grown wheat plants." +msgstr "Cosecha 25 plantas de trigo maduras." + +#: init.lua +msgid "Aspiring Farmer" +msgstr "Aspirante a Granjero" + +#: init.lua +msgid "Harvest 125 fully grown wheat plants." +msgstr "Cosecha 125 plantas de trigo maduras." + +#: init.lua +msgid "Wheat Magnate" +msgstr "Magnate del Maíz" + +#: init.lua +msgid "Harvest 625 fully grown wheat plants." +msgstr "Cosecha 625 plantas de trigo maduras." + +#: init.lua +msgid "Baker" +msgstr "Panadero" + +#: init.lua +msgid "Eat 10 loaves of bread." +msgstr "Come 10 rebanadas de pan." + +#: init.lua +msgid "Wool Over Your Eyes" +msgstr "Lana Sobre Tus Ojos" + +#: init.lua +msgid "Craft 250 white wool." +msgstr "Elabora 250 bloques de lana blanca." + +#: init.lua +msgid "Hotelier" +msgstr "Hotelero" + +#: init.lua +msgid "Craft 15 fancy beds." +msgstr "Elabora 15 camas de lujo." + +#: init.lua +msgid "Filthy Rich" +msgstr "Sucio Rico" + +#: init.lua +msgid "Craft 24 gold block stairs." +msgstr "Elabora 24 escaleras de bloque de oro." + +#: init.lua +msgid "Roses Are Red" +msgstr "Las Rosas Son Rojas" + +#: init.lua +msgid "Craft 400 red dyes." +msgstr "Elabora 400 colorantes rojos." + +#: init.lua +msgid "Dandelions are Yellow" +msgstr "Los Dientes de León Son Amarillos" + +#: init.lua +msgid "Craft 400 yellow dyes." +msgstr "Elabora 400 colorantes amarillos." + +#: init.lua +msgid "Geraniums are Blue" +msgstr "Los Geranios Son Azules" + +#: init.lua +msgid "Craft 400 blue dyes." +msgstr "Elabora 400 colorantes azules." + +#: init.lua +msgid "White Color Stock" +msgstr "Reserva de Color Blanco" + +#: init.lua +msgid "Craft 100 white dyes." +msgstr "Elabora 100 colorantes blancos." + +#: init.lua +msgid "Tasty Mushrooms" +msgstr "Ricos Hongos" + +#: init.lua +msgid "Eat 3 brown mushrooms." +msgstr "Come 3 hongos marrones." + +#: init.lua +msgid "Mushroom Lover" +msgstr "Amante de los Hongos" + +#: init.lua +msgid "Eat 33 brown mushrooms." +msgstr "Come 33 hongos marrones." + +#: init.lua +msgid "Underground Mushroom Farmer" +msgstr "Granjero de Hongos Subterráneo" + +#: init.lua +msgid "Eat 333 brown mushrooms." +msgstr "Come 333 hongos marrones." + +# Nota: "Builder" y "Constructor" se traducen a "Constructor", +# así que lo traduje de ésta manera para diferenciar. +#: init.lua +msgid "Builder" +msgstr "Hacedor" + +#: init.lua +msgid "Constructor" +msgstr "Constructor" + +#: init.lua +msgid "Architect" +msgstr "Arquitecto" + +#: init.lua +msgid "Master Architect" +msgstr "Maestro Arquitecto" + +#: chat_commands.lua +msgid "[c|clear|disable|enable]" +msgstr "[c|clear|disable|enable]" + +#: chat_commands.lua +msgid "Show, clear, disable or enable your achievements" +msgstr "Mostrar, limpiar, deshabilitar o habilitar tus logros" + +#: chat_commands.lua +msgid "" +"All your awards and statistics have been cleared. You can now start again." +msgstr "" +"Todos tus logros y estadísticas han sido borrados. Puedes iniciar nuevamente." + +#: chat_commands.lua +msgid "You have disabled your achievements." +msgstr "Has deshabilitado tus logros." + +#: chat_commands.lua +msgid "You have enabled your achievements." +msgstr "Has habilitado tus logros." + +#: chat_commands.lua +msgid "" +msgstr "" + +#: chat_commands.lua +msgid "Show details of an achievement" +msgstr "Muestra los detalles de un logro" + +#: chat_commands.lua +msgid "Achievement not found." +msgstr "Logro no encontrado." + +#: chat_commands.lua +msgid "" +msgstr "" + +#: chat_commands.lua +msgid "Get the achievements statistics for the given player or yourself" +msgstr "Obtener las estadísticas y logros del jugador dado" diff --git a/games/default/files/Other/awards/locale/fr.po b/games/default/files/Other/awards/locale/fr.po new file mode 100644 index 000000000..e173437c6 --- /dev/null +++ b/games/default/files/Other/awards/locale/fr.po @@ -0,0 +1,818 @@ +# French translations for PACKAGE package. +# Copyright (C) 2017 THE PACKAGE'S COPYRIGHT HOLDER +# This file is distributed under the same license as the PACKAGE package. +# xisd, 2017. +# +msgid "" +msgstr "" +"Project-Id-Version: PACKAGE VERSION\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2017-02-21 05:50-0300\n" +"PO-Revision-Date: 2017-02-21 05:50-0300\n" +"Last-Translator: xisd\n" +"Language-Team: French\n" +"Language: fr\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Plural-Forms: nplurals=2; plural=(n > 1);\n" + +#: api.lua +msgid "Secret Achievement Unlocked:" +msgstr "Réussite Secrète Débloquée :" + +#: api.lua +msgid "Achievement Unlocked:" +msgstr "Réussite Débloquée :" + +#: api.lua +#, lua-format +msgid "Secret Achievement Unlocked: %s" +msgstr "Réussite Secrète Débloquée : %s" + +#: api.lua +#, lua-format +msgid "Achievement Unlocked: %s" +msgstr "Réussite Débloquée : %s" + +#: api.lua +msgid "Secret Achievement Unlocked!" +msgstr "Réussite Secrète Débloquée !" + +#: api.lua +msgid "Achievement Unlocked!" +msgstr "Réussite Débloquée !" + +#: api.lua +msgid "Error: No awards available." +msgstr "Erreur : Aucun trophée disponible" + +#: api.lua +msgid "OK" +msgstr "OK" + +#: api.lua +msgid "(Secret Award)" +msgstr "(Trophée Secret)" + +#: api.lua +msgid "Unlock this award to find out what it is." +msgstr "Débloque ce trophée pour découvrir ce que c'est." + +#: api.lua +#, lua-format +msgid "%s (got)" +msgstr "%s (obtenu)" + +#: api.lua +msgid "You've disabled awards. Type /awards enable to reenable." +msgstr "Vous avez désactivé les trophées. Tapez '/awards enable' pour les réactiver." + +#: api.lua +msgid "You have not unlocked any awards." +msgstr "Vous n'avez encore débloqué aucun trophée." + +#: api.lua +#, lua-format +msgid "%s’s awards:" +msgstr "Les trophées de %s :" + +#: api.lua chat_commands.lua +#, lua-format +msgid "%s: %s" +msgstr "%s : %s" + +#: sfinv.lua unified_inventory.lua +msgid "Awards" +msgstr "Trophées" + +#: triggers.lua +msgid "@1/@2 dug" +msgstr "@1/@2 creusés" + +#. Translators: @1 is count, @2 is description. +#: triggers.lua +msgid "Mine: @2" +msgid_plural "Mine: @1×@2" +msgstr[0] "Mine : @2" +msgstr[1] "Mine : @1×@2" + +#: triggers.lua +msgid "Mine @1 block." +msgid_plural "Mine @1 blocks." +msgstr[0] "Creuse @1 bloc." +msgstr[1] "Creuse @1 blocs." + +#: triggers.lua +msgid "@1/@2 placed" +msgstr "@1/@2 placés" + +#. Translators: @1 is count, @2 is description. +#: triggers.lua +msgid "Place: @2" +msgid_plural "Place: @1×@2" +msgstr[0] "Place : @2" +msgstr[1] "Place : @1×@2" + +#: triggers.lua +msgid "Place a block." +msgid_plural "Place @1 blocks." +msgstr[0] "Place un bloc." +msgstr[1] "Place @1 blocs." + +#: triggers.lua +msgid "@1/@2 eaten" +msgstr "@1/@2 Mangés" + +#. Translators: @1 is count, @2 is description. +#: triggers.lua +msgid "Eat: @2" +msgid_plural "Eat: @1×@2" +msgstr[0] "Mange : @2" +msgstr[1] "Mange : @1×@2" + +#: triggers.lua +msgid "Eat an item." +msgid_plural "Eat @1 items." +msgstr[0] "Mange quelque chose." +msgstr[1] "Mange @1 aliments." + +#: triggers.lua +msgid "@1/@2 deaths" +msgstr "@1/@2 morts" + +#: triggers.lua +msgid "Die." +msgid_plural "Die @1 times." +msgstr[0] "Mort·e." +msgstr[1] "Mort·e %d fois." + +#: triggers.lua +msgid "@1/@2 chat messages" +msgstr "@1/@2 messages du chat" + +#: triggers.lua +msgid "Write something in chat." +msgid_plural "Write @1 chat messages." +msgstr[0] "Écrit quelque chose dans le chat." +msgstr[1] "Écrit @1 messages dans le chat." + +#: triggers.lua +msgid "@1/@2 game joins" +msgstr "@1/@2 connexions" + +#: triggers.lua +msgid "Join the game." +msgid_plural "Join the game @1 times." +msgstr[0] "Connecte toi au jeu." +msgstr[1] "Connecte toi au jeu @1 fois." + +#: triggers.lua +msgid "@1/@2 crafted" +msgstr "@1/@2 craftés" + +#. Translators: @1 is count, @2 is description. +#: triggers.lua +msgid "Craft: @2" +msgid_plural "Craft: @1×@2" +msgstr[0] "Fabrique : @2" +msgstr[1] "Fabrique : @1×@2" + +#: triggers.lua +msgid "Craft an item." +msgid_plural "Craft @1 items." +msgstr[0] "Confectionne un objet." +msgstr[1] "Confectionne @1 objets." + +#: init.lua +msgid "Saint-Maclou" +msgstr "Saint-Maclou" + +#: init.lua +msgid "Place 20 coal checkers." +msgstr "Place 20 damiers de charbon." + +#: init.lua +msgid "Castorama" +msgstr "Castorama" + +#: init.lua +msgid "Place 20 iron checkers." +msgstr "Place 20 damiers de fer." + +#: init.lua +msgid "Sam the Trapper" +msgstr "Sam le Trappeur" + +#: init.lua +msgid "Place 2 trap stones." +msgstr "Place 2 pièges de pierre." + +#: init.lua +msgid "Backpacker" +msgstr "Randonneu·r·se" + +#: init.lua +msgid "Craft 4 large bags." +msgstr "Confectionne 4 grands sacs" + +#: init.lua +msgid "Pyromaniac" +msgstr "Pyromane" + +#: init.lua +msgid "Craft 8 times flint and steel." +msgstr "Fabrique 8 silex et aciers." + +#: init.lua +msgid "Firefighter" +msgstr "Pompier" + +#: init.lua +msgid "Put out 1000 fires." +msgstr "Éteint 1000 feux." + +#: init.lua +msgid "Light It Up" +msgstr "Eclairé·e" + +#: init.lua +msgid "Place 100 torches." +msgstr "Place 100 torches." + +#: init.lua +msgid "Well Lit" +msgstr "Bien Éclairé" + +#: init.lua +msgid "Place 1,000 torches." +msgstr "Place 1000 torches." + +#: init.lua +msgid "Really Well Lit" +msgstr "Vraiment Bien Éclairé" + +#: init.lua +msgid "Craft 10 mese lamps." +msgstr "Fabrique 10 lampes de mese." + +#: init.lua +msgid "Outpost" +msgstr "Poste Avancé" + +#: init.lua +msgid "Craft 200 stone bricks." +msgstr "Confectionne 200 briques de pierre." + +#: init.lua +msgid "Watchtower" +msgstr "Tour de Garde" + +#: init.lua +msgid "Craft 800 stone bricks." +msgstr "Confectionne 800 briques de pierre." + +#: init.lua +msgid "Fortress" +msgstr "Forteresse" + +#: init.lua +msgid "Craft 3,200 stone bricks." +msgstr "Confectionne 3200 briques de pierre." + +#: init.lua +msgid "Desert Dweller" +msgstr "Habitant·e du Désert" + +#: init.lua +msgid "Craft 400 desert stone bricks." +msgstr "Confectionne 400 briques de pierre du désert." + +#: init.lua +msgid "Pharaoh" +msgstr "Pharaon" + +#: init.lua +msgid "Craft 100 sandstone bricks." +msgstr "Confectionne 100 briques de roche de sable." + +#: init.lua +msgid "Little Library" +msgstr "Petite Bibliothèque" + +#: init.lua +msgid "Craft 7 bookshelves." +msgstr "Fabrique 7 bibliothèques." + +#: init.lua +msgid "Lava and Water" +msgstr "La Lave et l'Eau" + +#: init.lua +msgid "Mine your first obsidian." +msgstr "Mine ton premier bloc d'obsidienne." + +#: init.lua +msgid "Obsessed with Obsidian" +msgstr "Obsédé·e par l'obsidienne" + +#: init.lua +msgid "Mine 50 obsidian." +msgstr "Mine 50 pierres d'obsidienne." + +#: init.lua +msgid "Lava Miner" +msgstr "Mineu·r·se de lave" + +#: init.lua +msgid "Mine any block while being very close to lava." +msgstr "Mine n'importe quel bloc à proximité de la lave." + +#: init.lua +msgid "On The Way" +msgstr "Sur La Voie" + +#: init.lua +msgid "Place 100 rails." +msgstr "Place 100 rails." + +#: init.lua +msgid "First Day in the Woods" +msgstr "Premier Jour dans les Bois" + +#: init.lua +msgid "Dig 6 tree blocks." +msgstr "Creuse 6 blocs d'arbre." + +#: init.lua +msgid "Lumberjack" +msgstr "Bûcheron·ne" + +#: init.lua +msgid "Dig 36 tree blocks." +msgstr "Creuse 36 blocs d'arbre." + +#: init.lua +msgid "Semi-pro Lumberjack" +msgstr "Bûcheron.ne. Semi-Professionnel.le." + +#: init.lua +msgid "Dig 216 tree blocks." +msgstr "Creuse 216 blocs d'arbre." + +#: init.lua +msgid "Professional Lumberjack" +msgstr "Bûcheron·ne Professionnel·le" + +#: init.lua +msgid "Dig 1,296 tree blocks." +msgstr "Creuse 1296 blocs d'arbre." + +#: init.lua +msgid "Junglebaby" +msgstr "Enfant de la Jungle" + +#: init.lua +msgid "Dig 100 jungle tree blocks." +msgstr "Creuse 100 blocs d'arbres de jungle." + +#: init.lua +msgid "Jungleman" +msgstr "Personne de la Jungle" + +#: init.lua +msgid "Dig 1,000 jungle tree blocks." +msgstr "Creuse 1000 blocs d'arbre de jungle." + +#: init.lua +msgid "First Mese Find" +msgstr "Première Pépite : Mese" + +#: init.lua +msgid "Mine your first mese ore." +msgstr "Mine ton premier minerai de mese." + +#: init.lua +msgid "Mese Mastery" +msgstr "Maîtrise de Mese" + +#: init.lua +msgid "Mine a mese block." +msgstr "Mine un bloc de mese." + +#: init.lua +msgid "You’re a copper" +msgstr "Faîtes Jouer les Cuivres" + +#: init.lua +msgid "Dig 1,000 copper ores." +msgstr "Creuse 1000 minerais de cuivre." + +#: init.lua +msgid "A Cat in a Pop-Tart?!" +msgstr "Un Chat dans un Pop-Tart ?!" + +#: init.lua +msgid "Mine a nyan cat." +msgstr "Mine un nyan cat." + +#: init.lua +msgid "Mini Miner" +msgstr "Mini Mineu·r·se" + +#: init.lua +msgid "Dig 100 stone blocks." +msgstr "Creuse 100 blocs de pierre." + +#: init.lua +msgid "Hardened Miner" +msgstr "Mineu·r·se Endurci·e" + +#: init.lua +msgid "Dig 1,000 stone blocks." +msgstr "Creuse 1000 blocs de pierre." + +#: init.lua +msgid "Master Miner" +msgstr "Maître·sse Mineu·r·se" + +#: init.lua +msgid "Dig 10,000 stone blocks." +msgstr "Creuse 10000 blocs de pierre." + +#: init.lua +msgid "Marchand De Sable" +msgstr "Marchand·e De Sable" + +#: init.lua +msgid "Dig 1,000 sand." +msgstr "Creuse 1000 blocs de sable." + +#: init.lua +msgid "Crafter of Sticks" +msgstr "Fabriquant·e de Bâtons." + +#: init.lua +msgid "Craft 100 sticks." +msgstr "Confectionne 100 bâtons." + +#: init.lua +msgid "Jungle Discoverer" +msgstr "Explorat·eur·rice de la Jungle" + +#: init.lua +msgid "Mine your first jungle grass." +msgstr "Ramasse ta première herbe de jungle." + +#: init.lua +msgid "Grasslands Discoverer" +msgstr "Découvreu·r·se de prairies" + +#: init.lua +msgid "Mine some grass." +msgstr "Ramasse de l'herbe." + +#: init.lua +msgid "Savannah Discoverer" +msgstr "Explorat·eur·rice de la Savanne" + +#: init.lua +msgid "Mine some dry grass." +msgstr "Ramasse de l'herbe sèche." + +#: init.lua +msgid "Desert Discoverer" +msgstr "Expolrat·eur·rice du Désert." + +#: init.lua +msgid "Mine your first cactus." +msgstr "Mine ton premier catus." + +#: init.lua +msgid "Far Lands" +msgstr "Terres Lointaines" + +#: init.lua +msgid "Mine your first dry shrub." +msgstr "Coupe ton premier arbuste sec." + +#: init.lua +msgid "Glacier Discoverer" +msgstr "Découvreu·r·se de glacier" + +#: init.lua +msgid "Mine your first ice." +msgstr "Creuse ton premier bloc de glace." + +#: init.lua +msgid "Very Simple Snow Man" +msgstr "Bonhomme de Neige Rudimentaire" + +#: init.lua +msgid "Place two snow blocks." +msgstr "Place deux blocs de neige." + +#: init.lua +msgid "First Gold Find" +msgstr "Première Pépite : Or" + +#: init.lua +msgid "Mine your first gold ore." +msgstr "Mine ton premier minerai d'or." + +#: init.lua +msgid "Gold Rush" +msgstr "Ruée vers l'Or" + +#: init.lua +msgid "Mine 45 gold ores." +msgstr "Mine 45 minerais d'or." + +#: init.lua +msgid "Wow, I am Diamonds!" +msgstr "Wow, Je suis Diamants!" + +#: init.lua +msgid "Mine your first diamond ore." +msgstr "Mine ton premier diamant." + +#: init.lua +#, fuzzy +msgid "Girl's Best Friend" +msgstr "Girl's Best Friend" + +#: init.lua +msgid "Mine 18 diamond ores." +msgstr "Mine 18 diamants." + +#: init.lua +msgid "Hardest Block on Earth" +msgstr "Le Bloc le Plus Dur du Monde" + +#: init.lua +msgid "Craft a diamond block." +msgstr "Confectionne un bloc de diamant." + +#: init.lua +msgid "In the Dungeon" +msgstr "Dans le Donjon" + +#: init.lua +msgid "Mine a mossy cobblestone." +msgstr "Mine un bloc de pavés moussus." + +#: init.lua +msgid "Smelter" +msgstr "Fondeu·r·se" + +#: init.lua +msgid "Craft 10 furnaces." +msgstr "Construis 10 fours." + +#: init.lua +msgid "Treasurer" +msgstr "Trésori·er·ère" + +#: init.lua +msgid "Craft 15 chests." +msgstr "Fabrique 15 coffres." + +#: init.lua +msgid "Bankier" +msgstr "Banqui·er·ère" + +#: init.lua +msgid "Craft 30 locked chests." +msgstr "Fabrique 30 coffres Verrouillés." + +#: init.lua +msgid "Bricker" +msgstr "Briqueu·r·se" + +#: init.lua +msgid "Craft 200 brick blocks." +msgstr "Confectionne 200 blocs de brique." + +#: init.lua +msgid "House of Obsidian" +msgstr "La Maison de L'Obsidienne" + +#: init.lua +msgid "Craft 100 obsidian bricks." +msgstr "Confectionne 100 briques d'obsidienne." + +#: init.lua +msgid "Build a Cave" +msgstr "Construis une grotte" + +#: init.lua +msgid "Place 100 stone." +msgstr "Place 100 pierres." + +#: init.lua +msgid "Long Ladder" +msgstr "Longue Echelle" + +#: init.lua +msgid "Place 400 wooden ladders." +msgstr "Place 400 échelles en bois." + +#: init.lua +msgid "Industrial Age" +msgstr "Âge Industriel" + +#: init.lua +msgid "Place 40 steel ladders." +msgstr "Place 40 échelles métalliques." + +#: init.lua +msgid "Yummy!" +msgstr "Miam !" + +#: init.lua +msgid "Eat 80 apples." +msgstr "Mange 80 pommes." + +#: init.lua +msgid "Glasser" +msgstr "Verri·er·ère" + +#: init.lua +msgid "Craft 14 vessels shelves." +msgstr "Fabrique 14 vaisseliers." + +#: init.lua +msgid "Farming Skills Acquired" +msgstr "Compétences Paysannes Acquises" + +#: init.lua +msgid "Harvest a fully grown wheat plant." +msgstr "Récolte un plant de blé à maturité." + +#: init.lua +msgid "Field Worker" +msgstr "Travailleu·r·se Agricole" + +#: init.lua +msgid "Harvest 25 fully grown wheat plants." +msgstr "Récolte 25 plants de blé à maturité." + +#: init.lua +msgid "Aspiring Farmer" +msgstr "Apprenti·e Fermi·er·ère" + +#: init.lua +msgid "Harvest 125 fully grown wheat plants." +msgstr "Récolte 125 plants de blé à maturité." + +#: init.lua +msgid "Wheat Magnate" +msgstr "Magnat·e du Blé" + +#: init.lua +msgid "Harvest 625 fully grown wheat plants." +msgstr "Récolte 625 plants de blé à maturité." + +#: init.lua +msgid "Baker" +msgstr "Boulang·er·ère" + +#: init.lua +msgid "Eat 10 loaves of bread." +msgstr "Mange 10 miches de pain." + +#: init.lua +msgid "Wool Over Your Eyes" +msgstr "De la Laines dans Tes Yeux" + +#: init.lua +msgid "Craft 250 white wool." +msgstr "Confectionne 250 blocs de laine blanche." + +#: init.lua +msgid "Hotelier" +msgstr "Hoteli·er·ère" + +#: init.lua +msgid "Craft 15 fancy beds." +msgstr "Construis 15 lits chics." + +#: init.lua +msgid "Filthy Rich" +msgstr "Richissime" + +#: init.lua +msgid "Craft 24 gold block stairs." +msgstr "Construis 24 escaliers en or." + +#: init.lua +msgid "Roses Are Red" +msgstr "Les Roses Sont Rouges" + +#: init.lua +msgid "Craft 400 red dyes." +msgstr "Prépare 400 teintures rouges." + +#: init.lua +msgid "Dandelions are Yellow" +msgstr "Les Pissenlits sont Jaunes." + +#: init.lua +msgid "Craft 400 yellow dyes." +msgstr "Prépare 400 teintures jaunes." + +#: init.lua +msgid "Geraniums are Blue" +msgstr "Les Geraniums Sont Bleus" + +#: init.lua +msgid "Craft 400 blue dyes." +msgstr "Prépare 400 teintures bleues." + +#: init.lua +msgid "White Color Stock" +msgstr "Chaussettes Blanches" + +#: init.lua +msgid "Craft 100 white dyes." +msgstr "Prépare 100 teintures blanches." + +#: init.lua +msgid "Tasty Mushrooms" +msgstr "Délicieux Champignons" + +#: init.lua +msgid "Eat 3 brown mushrooms." +msgstr "Mange 3 champignons marrons." + +#: init.lua +msgid "Mushroom Lover" +msgstr "Adorat·eur·rice de Champignons" + +#: init.lua +msgid "Eat 33 brown mushrooms." +msgstr "Mange 33 champignons marrons." + +#: init.lua +msgid "Underground Mushroom Farmer" +msgstr "Culture de Champignons en Cave" + +#: init.lua +msgid "Eat 333 brown mushrooms." +msgstr "Mange 333 champignons marrons." + +#: init.lua +msgid "Builder" +msgstr "Bâtisseu·r·se" + +#: init.lua +msgid "Constructor" +msgstr "Construct·eur·rice" + +#: init.lua +msgid "Architect" +msgstr "Architecte" + +#: init.lua +msgid "Master Architect" +msgstr "Maître·sse Architecte" + +#: chat_commands.lua +msgid "[c|clear|disable|enable]" +msgstr "[c|clear|disable|enable]" + +#: chat_commands.lua +msgid "Show, clear, disable or enable your achievements" +msgstr "Affiche, réinitialise, désactive ou active vos réussites." + +#: chat_commands.lua +msgid "All your awards and statistics have been cleared. You can now start again." +msgstr "Tous vos trophées et statistiques ont été réinitialisés. Vous pouvez recommencer à nouveau." + +#: chat_commands.lua +msgid "You have disabled your achievements." +msgstr "Vous avez désactivé vos réussites." + +#: chat_commands.lua +msgid "You have enabled your achievements." +msgstr "Vous avez activé vos réussites." + +#: chat_commands.lua +msgid "" +msgstr "" + +#: chat_commands.lua +msgid "Show details of an achievement" +msgstr "Afficher les détails d'une réussite" + +#: chat_commands.lua +msgid "Achievement not found." +msgstr "Réussite non trouvée." + +#: chat_commands.lua +msgid "" +msgstr "" + +#: chat_commands.lua +msgid "Get the achievements statistics for the given player or yourself" +msgstr "Obtenez les statistiques des réussites d'un joueur donné ou de vous-même" diff --git a/games/default/files/Other/awards/locale/pt.po b/games/default/files/Other/awards/locale/pt.po new file mode 100644 index 000000000..e28b9090c --- /dev/null +++ b/games/default/files/Other/awards/locale/pt.po @@ -0,0 +1,819 @@ +# Portuguese translations for Awards package. +# Copyright (C) 2018 +# This file is distributed under the same license as the Awards package. +# FIRST AUTHOR borgesdossantosbruno@gmail.com, 2018. +# BrunoMine, 2018 +# +msgid "" +msgstr "" +"Project-Id-Version: \n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2017-02-21 05:50-0300\n" +"PO-Revision-Date: 2018-08-01 16:16-0300\n" +"Language-Team: \n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" +"X-Generator: Poedit 2.0.6\n" +"Last-Translator: BrunoMine\n" +"Language: pt\n" + +#: api.lua +msgid "Secret Achievement Unlocked:" +msgstr "Conquista Secreta Desbloqueada:" + +#: api.lua +msgid "Achievement Unlocked:" +msgstr "Conquista Desbloqueada:" + +#: api.lua +#, lua-format +msgid "Secret Achievement Unlocked: %s" +msgstr "Conquista Secreta Desbloqueada: %s" + +#: api.lua +#, lua-format +msgid "Achievement Unlocked: %s" +msgstr "Conquista Desbloqueada: %s" + +#: api.lua +msgid "Secret Achievement Unlocked!" +msgstr "Conquista Secreta Desbloqueada!" + +#: api.lua +msgid "Achievement Unlocked!" +msgstr "Conquista Desbloqueada!" + +#: api.lua +msgid "Error: No awards available." +msgstr "Erro: Nenhuma conquista encontrada." + +#: api.lua +msgid "OK" +msgstr "OK" + +#: api.lua +msgid "(Secret Award)" +msgstr "(Conquista Secreta)" + +#: api.lua +msgid "Unlock this award to find out what it is." +msgstr "Desbloqueie essa conquista para descobrir o que significa." + +#: api.lua +#, lua-format +msgid "%s (got)" +msgstr "%s (obtido)" + +#: api.lua +msgid "You've disabled awards. Type /awards enable to reenable." +msgstr "Desabilitaste as conquistas. Digite /awards enable para reabilitar." + +#: api.lua +msgid "You have not unlocked any awards." +msgstr "Nenhuma conquista desbloqueada ainda." + +#: api.lua +#, lua-format +msgid "%s’s awards:" +msgstr "%s das conquistas:" + +#: api.lua chat_commands.lua +#, lua-format +msgid "%s: %s" +msgstr "%s: %s" + +#: sfinv.lua unified_inventory.lua +msgid "Awards" +msgstr "Conquistas" + +#: triggers.lua +msgid "@1/@2 dug" +msgstr "@1 de @2 obtidos" + +#. Translators: @1 is count, @2 is description. +#: triggers.lua +msgid "Mine: @2" +msgid_plural "Mine: @1×@2" +msgstr[0] "Cavar: @2" +msgstr[1] "Minar: @1×@2" + +#: triggers.lua +msgid "Mine @1 block." +msgid_plural "Mine @1 blocks." +msgstr[0] "Cavar um bloco." +msgstr[1] "Cavar @1 blocos." + +#: triggers.lua +msgid "@1/@2 placed" +msgstr "@1 de @2 colocados" + +#. Translators: @1 is count, @2 is description. +#: triggers.lua +msgid "Place: @2" +msgid_plural "Place: @1×@2" +msgstr[0] "Colocar: @2" +msgstr[1] "Place: @1×@2" + +#: triggers.lua +msgid "Place a block." +msgid_plural "Place @1 blocks." +msgstr[0] "Colocar um bloco." +msgstr[1] "Colocar @1 blocos." + +#: triggers.lua +msgid "@1/@2 eaten" +msgstr "@1 de @2 consumidos" + +#. Translators: @1 is count, @2 is description. +#: triggers.lua +msgid "Eat: @2" +msgid_plural "Eat: @1×@2" +msgstr[0] "Consumir: @2" +msgstr[1] "Consumir: @1×@2" + +#: triggers.lua +msgid "Eat an item." +msgid_plural "Eat @1 items." +msgstr[0] "Consumir um item." +msgstr[1] "Consumir @1 itens." + +#: triggers.lua +msgid "@1/@2 deaths" +msgstr "@1 de @2 mortes" + +#: triggers.lua +msgid "Die." +msgid_plural "Die @1 times." +msgstr[0] "Morrer." +msgstr[1] "Morrer @1 vezes." + +#: triggers.lua +msgid "@1/@2 chat messages" +msgstr "@1 de @2" + +#: triggers.lua +msgid "Write something in chat." +msgid_plural "Write @1 chat messages." +msgstr[0] "Escrever algo no bate papo." +msgstr[1] "Escrever @1 mensagens no bate papo." + +#: triggers.lua +msgid "@1/@2 game joins" +msgstr "@1 de @2" + +#: triggers.lua +msgid "Join the game." +msgid_plural "Join the game @1 times." +msgstr[0] "Entre no jogo." +msgstr[1] "Entre no jogo @1 vezes." + +#: triggers.lua +msgid "@1/@2 crafted" +msgstr "@1 de @2 feitos" + +#. Translators: @1 is count, @2 is description. +#: triggers.lua +msgid "Craft: @2" +msgid_plural "Craft: @1×@2" +msgstr[0] "Fazer @2" +msgstr[1] "Montar @2 @1 vezes" + +#: triggers.lua +msgid "Craft an item." +msgid_plural "Craft @1 items." +msgstr[0] "Fazer um item." +msgstr[1] "Fazer @1 itens." + +#: init.lua +msgid "Saint-Maclou" +msgstr "Saint-Maclou" + +#: init.lua +msgid "Place 20 coal checkers." +msgstr "" + +#: init.lua +msgid "Castorama" +msgstr "" + +#: init.lua +msgid "Place 20 iron checkers." +msgstr "" + +#: init.lua +msgid "Sam the Trapper" +msgstr "" + +#: init.lua +msgid "Place 2 trap stones." +msgstr "" + +#: init.lua +msgid "Backpacker" +msgstr "" + +#: init.lua +msgid "Craft 4 large bags." +msgstr "" + +#: init.lua +msgid "Pyromaniac" +msgstr "Piromaníaco" + +#: init.lua +msgid "Craft 8 times flint and steel." +msgstr "Montar acendedor de Ferro e Pederneira 8 vezes." + +#: init.lua +msgid "Firefighter" +msgstr "Bombeiro" + +#: init.lua +msgid "Put out 1000 fires." +msgstr "Apagar fogo 1000 vezes." + +#: init.lua +msgid "Light It Up" +msgstr "Ilumine Isso" + +#: init.lua +msgid "Place 100 torches." +msgstr "Colocar 100 tochas." + +#: init.lua +msgid "Well Lit" +msgstr "Bem Iluminado" + +#: init.lua +msgid "Place 1,000 torches." +msgstr "Colocar 1.000 tochas." + +#: init.lua +msgid "Really Well Lit" +msgstr "Realmente Bem Iluminado" + +#: init.lua +msgid "Craft 10 mese lamps." +msgstr "Fazer 10 lâmpadas de mese." + +#: init.lua +msgid "Outpost" +msgstr "Posto Avançado" + +#: init.lua +msgid "Craft 200 stone bricks." +msgstr "Fazer 200 tijolos de pedra." + +#: init.lua +msgid "Watchtower" +msgstr "Sentinela" + +#: init.lua +msgid "Craft 800 stone bricks." +msgstr "Fazer 800 tijolos de pedra." + +#: init.lua +msgid "Fortress" +msgstr "Fortaleza" + +#: init.lua +msgid "Craft 3,200 stone bricks." +msgstr "Fazer 3.200 tijolos de pedra." + +#: init.lua +msgid "Desert Dweller" +msgstr "Morador do Deserto" + +#: init.lua +msgid "Craft 400 desert stone bricks." +msgstr "Fazer 400 Tijolos de pedra do deserto." + +#: init.lua +msgid "Pharaoh" +msgstr "Faraó" + +#: init.lua +msgid "Craft 100 sandstone bricks." +msgstr "Fazer 100 tijolos de arenito." + +#: init.lua +msgid "Little Library" +msgstr "Pequena Biblioteca" + +#: init.lua +msgid "Craft 7 bookshelves." +msgstr "Fazer 7 estantes de livros." + +#: init.lua +msgid "Lava and Water" +msgstr "Lava e Água" + +#: init.lua +msgid "Mine your first obsidian." +msgstr "Cavar sua primeira obsidiana." + +#: init.lua +msgid "Obsessed with Obsidian" +msgstr "Obcecado por Obsidiana" + +#: init.lua +msgid "Mine 50 obsidian." +msgstr "Minerar 50 obsidianas." + +#: init.lua +msgid "Lava Miner" +msgstr "Minerador de Lava" + +#: init.lua +msgid "Mine any block while being very close to lava." +msgstr "Minerar qualquer bloco enquanto estiver mergulhado em lava." + +#: init.lua +msgid "On The Way" +msgstr "No Caminho" + +#: init.lua +msgid "Place 100 rails." +msgstr "Colocar 100 trilhos." + +#: init.lua +msgid "First Day in the Woods" +msgstr "Primeiro dia na Floresta" + +#: init.lua +msgid "Dig 6 tree blocks." +msgstr "Cortar 6 blocos de árvore." + +#: init.lua +msgid "Lumberjack" +msgstr "Lenhador" + +#: init.lua +msgid "Dig 36 tree blocks." +msgstr "Cortar 36 blocos de árvore." + +#: init.lua +msgid "Semi-pro Lumberjack" +msgstr "Lenhador Semi-Profissional" + +#: init.lua +msgid "Dig 216 tree blocks." +msgstr "Cortar 216 blocos de árvore." + +#: init.lua +msgid "Professional Lumberjack" +msgstr "Lenhador Profissional" + +#: init.lua +msgid "Dig 1,296 tree blocks." +msgstr "Cortar 1.296 blocos de árvore." + +#: init.lua +msgid "Junglebaby" +msgstr "Bebê Selvagem" + +#: init.lua +msgid "Dig 100 jungle tree blocks." +msgstr "Cortar 100 blocos de árvore selvagem." + +#: init.lua +msgid "Jungleman" +msgstr "Homem Selvagem" + +#: init.lua +msgid "Dig 1,000 jungle tree blocks." +msgstr "Cortar 1.000 blocos de árvore selvagem." + +#: init.lua +msgid "First Mese Find" +msgstr "Primeiro Mese" + +#: init.lua +msgid "Mine your first mese ore." +msgstr "Cavar seu primeiro mese." + +#: init.lua +msgid "Mese Mastery" +msgstr "Mestre do Mese" + +#: init.lua +msgid "Mine a mese block." +msgstr "Cavar um bloco de mese." + +#: init.lua +msgid "You’re a copper" +msgstr "Sou um Cobre" + +#: init.lua +msgid "Dig 1,000 copper ores." +msgstr "Minerar 1.000 cobres." + +#: init.lua +msgid "A Cat in a Pop-Tart?!" +msgstr "Um Gato em um Pop-Tart?!" + +#: init.lua +msgid "Mine a nyan cat." +msgstr "Capturar um gato nyan." + +#: init.lua +msgid "Mini Miner" +msgstr "Mini Minerador" + +#: init.lua +msgid "Dig 100 stone blocks." +msgstr "Minerar 100 blocos de pedra." + +#: init.lua +msgid "Hardened Miner" +msgstr "Minerador Avançado" + +#: init.lua +msgid "Dig 1,000 stone blocks." +msgstr "Minerar 1.000 blocos de pedra." + +#: init.lua +msgid "Master Miner" +msgstr "Minerador Mestre" + +#: init.lua +msgid "Dig 10,000 stone blocks." +msgstr "Minerar 10.000 blocos de pedra." + +#: init.lua +msgid "Marchand De Sable" +msgstr "Vendedor de Areia" + +#: init.lua +msgid "Dig 1,000 sand." +msgstr "Cavar 1.000 blocos de areia." + +#: init.lua +msgid "Crafter of Sticks" +msgstr "Rachador de Lenha" + +#: init.lua +msgid "Craft 100 sticks." +msgstr "Lenhar 100 gravetos." + +#: init.lua +msgid "Jungle Discoverer" +msgstr "Desbravador Selvagem" + +#: init.lua +msgid "Mine your first jungle grass." +msgstr "Cortar seu primeiro mato selvagem." + +#: init.lua +msgid "Grasslands Discoverer" +msgstr "Descobridor do Gramado" + +#: init.lua +msgid "Mine some grass." +msgstr "Minerar algum mato" + +#: init.lua +msgid "Savannah Discoverer" +msgstr "Descobridor da Savana" + +#: init.lua +msgid "Mine some dry grass." +msgstr "Minerar algum mato seco." + +#: init.lua +msgid "Desert Discoverer" +msgstr "Descobridor do Deserto" + +#: init.lua +msgid "Mine your first cactus." +msgstr "Cortar seu primeiro cacto." + +#: init.lua +msgid "Far Lands" +msgstr "Terras Distantes" + +#: init.lua +msgid "Mine your first dry shrub." +msgstr "Minerar seu primeiro arbusto seco." + +#: init.lua +msgid "Glacier Discoverer" +msgstr "Descobridor Glacial" + +#: init.lua +msgid "Mine your first ice." +msgstr "Quebrar seu primeiro bloco de gelo." + +#: init.lua +msgid "Very Simple Snow Man" +msgstr "Homem de Neve Muito Simples" + +#: init.lua +msgid "Place two snow blocks." +msgstr "Colocar 2 blocos de neve." + +#: init.lua +msgid "First Gold Find" +msgstr "Achei Ouro" + +#: init.lua +msgid "Mine your first gold ore." +msgstr "Minerar sua primeira de ouro." + +#: init.lua +msgid "Gold Rush" +msgstr "Corriga do Ouro" + +#: init.lua +msgid "Mine 45 gold ores." +msgstr "Minerar 45 de ouro." + +#: init.lua +msgid "Wow, I am Diamonds!" +msgstr "Uau, Diamante!" + +#: init.lua +msgid "Mine your first diamond ore." +msgstr "Minerar seu primeiro diamante." + +#: init.lua +msgid "Girl's Best Friend" +msgstr "Melhor Amigo da Menina" + +#: init.lua +msgid "Mine 18 diamond ores." +msgstr "Minere 18 diamantes." + +#: init.lua +msgid "Hardest Block on Earth" +msgstr "O Bloco mais Duro da Terra" + +#: init.lua +msgid "Craft a diamond block." +msgstr "Montar um bloco de diamante." + +#: init.lua +msgid "In the Dungeon" +msgstr "Na Masmorra" + +#: init.lua +msgid "Mine a mossy cobblestone." +msgstr "Minerar um pedregulho com musgo." + +#: init.lua +msgid "Smelter" +msgstr "Fundidor" + +#: init.lua +msgid "Craft 10 furnaces." +msgstr "Montar 10 fornos." + +#: init.lua +msgid "Treasurer" +msgstr "Tesoureiro" + +#: init.lua +msgid "Craft 15 chests." +msgstr "Montar 10 baús." + +#: init.lua +msgid "Bankier" +msgstr "Banqueiro" + +#: init.lua +msgid "Craft 30 locked chests." +msgstr "Montar 30 baús trancados." + +#: init.lua +msgid "Bricker" +msgstr "Tijoleiro" + +#: init.lua +msgid "Craft 200 brick blocks." +msgstr "Fazer 200 blocos de tijolo." + +#: init.lua +msgid "House of Obsidian" +msgstr "Casa de Obsidiana" + +#: init.lua +msgid "Craft 100 obsidian bricks." +msgstr "Montar 100 tijolos de obsidiana." + +#: init.lua +msgid "Build a Cave" +msgstr "Montar uma Caverna" + +#: init.lua +msgid "Place 100 stone." +msgstr "Colocar 100 pedras." + +#: init.lua +msgid "Long Ladder" +msgstr "Longa Escadaria" + +#: init.lua +msgid "Place 400 wooden ladders." +msgstr "Colocar 400 escadas de madeira." + +#: init.lua +msgid "Industrial Age" +msgstr "Era Industrial" + +#: init.lua +msgid "Place 40 steel ladders." +msgstr "Colocar 40 escadas de ferro." + +#: init.lua +msgid "Yummy!" +msgstr "Humm!" + +#: init.lua +msgid "Eat 80 apples." +msgstr "Comer 80 maçãs." + +#: init.lua +msgid "Glasser" +msgstr "Vidraceiro" + +#: init.lua +msgid "Craft 14 vessels shelves." +msgstr "Montar 14 estantes de frascos." + +#: init.lua +msgid "Farming Skills Acquired" +msgstr "Conhecimento de Cultivo Adquirido" + +#: init.lua +msgid "Harvest a fully grown wheat plant." +msgstr "Colher um trigo totalmente crescido." + +#: init.lua +msgid "Field Worker" +msgstr "Trabalhador do Campo" + +#: init.lua +msgid "Harvest 25 fully grown wheat plants." +msgstr "Colher 25 plantas trigos totalmente crescidos." + +#: init.lua +msgid "Aspiring Farmer" +msgstr "Fazendeiro Aspirante" + +#: init.lua +msgid "Harvest 125 fully grown wheat plants." +msgstr "Colher 125 plantas trigos totalmente crescidos." + +#: init.lua +msgid "Wheat Magnate" +msgstr "Magnata do Trigo" + +#: init.lua +msgid "Harvest 625 fully grown wheat plants." +msgstr "Colher 625 plantas trigos totalmente crescidos." + +#: init.lua +msgid "Baker" +msgstr "Padeiro" + +#: init.lua +msgid "Eat 10 loaves of bread." +msgstr "Comer 10 pães." + +#: init.lua +msgid "Wool Over Your Eyes" +msgstr "Lã Sobre Meus Olhos" + +#: init.lua +msgid "Craft 250 white wool." +msgstr "Tecer 250 lãs branca." + +#: init.lua +msgid "Hotelier" +msgstr "Hoteleiro" + +#: init.lua +msgid "Craft 15 fancy beds." +msgstr "Montar 15 camas chiques." + +#: init.lua +msgid "Filthy Rich" +msgstr "Muito Rico" + +#: init.lua +msgid "Craft 24 gold block stairs." +msgstr "Montar 24 escadas de bloco de ouro." + +#: init.lua +msgid "Roses Are Red" +msgstr "Rosas São Vermelhas" + +#: init.lua +msgid "Craft 400 red dyes." +msgstr "Fazer 400 tintas vermelhas." + +#: init.lua +msgid "Dandelions are Yellow" +msgstr "Dentes-de-Leões são Amarelos" + +#: init.lua +msgid "Craft 400 yellow dyes." +msgstr "Fazer 400 tintas amarelas." + +#: init.lua +msgid "Geraniums are Blue" +msgstr "Gerânios são Azuis" + +#: init.lua +msgid "Craft 400 blue dyes." +msgstr "Fazer 400 tintas azuis." + +#: init.lua +msgid "White Color Stock" +msgstr "Estoque de Cor Branca" + +#: init.lua +msgid "Craft 100 white dyes." +msgstr "Fazer 100 tintas brancas." + +#: init.lua +msgid "Tasty Mushrooms" +msgstr "Cogumelos Deliciosos" + +#: init.lua +msgid "Eat 3 brown mushrooms." +msgstr "Comer 3 cogumelos marrons." + +#: init.lua +msgid "Mushroom Lover" +msgstr "Amante de Cogumelo" + +#: init.lua +msgid "Eat 33 brown mushrooms." +msgstr "Comer 33 cogumelos marrons." + +#: init.lua +msgid "Underground Mushroom Farmer" +msgstr "Fazendeiro Subterrâneo de Cogumelos" + +#: init.lua +msgid "Eat 333 brown mushrooms." +msgstr "Comer 333 cogumelos marrons." + +#: init.lua +msgid "Builder" +msgstr "Construtor" + +#: init.lua +msgid "Constructor" +msgstr "Empreiteiro" + +#: init.lua +msgid "Architect" +msgstr "Arquiteto" + +#: init.lua +msgid "Master Architect" +msgstr "Arquiteto Mestre" + +#: chat_commands.lua +msgid "[c|clear|disable|enable]" +msgstr "[c|clear|disable|enable]" + +#: chat_commands.lua +msgid "Show, clear, disable or enable your achievements" +msgstr "Exibir, limpar, desabilitar ou habilitar suas conquistas" + +#: chat_commands.lua +msgid "All your awards and statistics have been cleared. You can now start again." +msgstr "Todas as suas conquistas e estatísticas foram limpas. Agora podes iniciar novamente." + +#: chat_commands.lua +msgid "You have disabled your achievements." +msgstr "Suas conquistas foram desabilitadas." + +#: chat_commands.lua +msgid "You have enabled your achievements." +msgstr "Suas conquistas foram habilitadas." + +#: chat_commands.lua +msgid "" +msgstr "" + +#: chat_commands.lua +msgid "Show details of an achievement" +msgstr "Mostra detalhes de uma conquista" + +#: chat_commands.lua +msgid "Achievement not found." +msgstr "Conquista não encontrada." + +#: chat_commands.lua +msgid "" +msgstr "" + +#: chat_commands.lua +msgid "Get the achievements statistics for the given player or yourself" +msgstr "Ver as estatísticas de conquistas de um jogador ou suas próprias" diff --git a/games/default/files/Other/awards/locale/template.pot b/games/default/files/Other/awards/locale/template.pot new file mode 100644 index 000000000..970ae7ca5 --- /dev/null +++ b/games/default/files/Other/awards/locale/template.pot @@ -0,0 +1,819 @@ +# SOME DESCRIPTIVE TITLE. +# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER +# This file is distributed under the same license as the PACKAGE package. +# FIRST AUTHOR , YEAR. +# +#, fuzzy +msgid "" +msgstr "" +"Project-Id-Version: PACKAGE VERSION\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2017-02-21 05:50-0300\n" +"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" +"Last-Translator: FULL NAME \n" +"Language-Team: LANGUAGE \n" +"Language: \n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Plural-Forms: nplurals=INTEGER; plural=EXPRESSION;\n" + +#: api.lua +msgid "Secret Achievement Unlocked:" +msgstr "" + +#: api.lua +msgid "Achievement Unlocked:" +msgstr "" + +#: api.lua +#, lua-format +msgid "Secret Achievement Unlocked: %s" +msgstr "" + +#: api.lua +#, lua-format +msgid "Achievement Unlocked: %s" +msgstr "" + +#: api.lua +msgid "Secret Achievement Unlocked!" +msgstr "" + +#: api.lua +msgid "Achievement Unlocked!" +msgstr "" + +#: api.lua +msgid "Error: No awards available." +msgstr "" + +#: api.lua +msgid "OK" +msgstr "" + +#: api.lua +msgid "(Secret Award)" +msgstr "" + +#: api.lua +msgid "Unlock this award to find out what it is." +msgstr "" + +#: api.lua +#, lua-format +msgid "%s (got)" +msgstr "" + +#: api.lua +msgid "You've disabled awards. Type /awards enable to reenable." +msgstr "" + +#: api.lua +msgid "You have not unlocked any awards." +msgstr "" + +#: api.lua +#, lua-format +msgid "%s’s awards:" +msgstr "" + +#: api.lua chat_commands.lua +#, lua-format +msgid "%s: %s" +msgstr "" + +#: sfinv.lua unified_inventory.lua +msgid "Awards" +msgstr "" + +#: triggers.lua +msgid "@1/@2 dug" +msgstr "" + +#. Translators: @1 is count, @2 is description. +#: triggers.lua +msgid "Mine: @2" +msgid_plural "Mine: @1×@2" +msgstr[0] "" +msgstr[1] "" + +#: triggers.lua +msgid "Mine @1 block." +msgid_plural "Mine @1 blocks." +msgstr[0] "" +msgstr[1] "" + +#: triggers.lua +msgid "@1/@2 placed" +msgstr "" + +#. Translators: @1 is count, @2 is description. +#: triggers.lua +msgid "Place: @2" +msgid_plural "Place: @1×@2" +msgstr[0] "" +msgstr[1] "" + +#: triggers.lua +msgid "Place a block." +msgid_plural "Place @1 blocks." +msgstr[0] "" +msgstr[1] "" + +#: triggers.lua +msgid "@1/@2 eaten" +msgstr "" + +#. Translators: @1 is count, @2 is description. +#: triggers.lua +msgid "Eat: @2" +msgid_plural "Eat: @1×@2" +msgstr[0] "" +msgstr[1] "" + +#: triggers.lua +msgid "Eat an item." +msgid_plural "Eat @1 items." +msgstr[0] "" +msgstr[1] "" + +#: triggers.lua +msgid "@1/@2 deaths" +msgstr "" + +#: triggers.lua +msgid "Die." +msgid_plural "Die @1 times." +msgstr[0] "" +msgstr[1] "" + +#: triggers.lua +msgid "@1/@2 chat messages" +msgstr "" + +#: triggers.lua +msgid "Write something in chat." +msgid_plural "Write @1 chat messages." +msgstr[0] "" +msgstr[1] "" + +#: triggers.lua +msgid "@1/@2 game joins" +msgstr "" + +#: triggers.lua +msgid "Join the game." +msgid_plural "Join the game @1 times." +msgstr[0] "" +msgstr[1] "" + +#: triggers.lua +msgid "@1/@2 crafted" +msgstr "" + +#. Translators: @1 is count, @2 is description. +#: triggers.lua +msgid "Craft: @2" +msgid_plural "Craft: @1×@2" +msgstr[0] "" +msgstr[1] "" + +#: triggers.lua +msgid "Craft an item." +msgid_plural "Craft @1 items." +msgstr[0] "" +msgstr[1] "" + +#: init.lua +msgid "Saint-Maclou" +msgstr "" + +#: init.lua +msgid "Place 20 coal checkers." +msgstr "" + +#: init.lua +msgid "Castorama" +msgstr "" + +#: init.lua +msgid "Place 20 iron checkers." +msgstr "" + +#: init.lua +msgid "Sam the Trapper" +msgstr "" + +#: init.lua +msgid "Place 2 trap stones." +msgstr "" + +#: init.lua +msgid "Backpacker" +msgstr "" + +#: init.lua +msgid "Craft 4 large bags." +msgstr "" + +#: init.lua +msgid "Pyromaniac" +msgstr "" + +#: init.lua +msgid "Craft 8 times flint and steel." +msgstr "" + +#: init.lua +msgid "Firefighter" +msgstr "" + +#: init.lua +msgid "Put out 1000 fires." +msgstr "" + +#: init.lua +msgid "Light It Up" +msgstr "" + +#: init.lua +msgid "Place 100 torches." +msgstr "" + +#: init.lua +msgid "Well Lit" +msgstr "" + +#: init.lua +msgid "Place 1,000 torches." +msgstr "" + +#: init.lua +msgid "Really Well Lit" +msgstr "" + +#: init.lua +msgid "Craft 10 mese lamps." +msgstr "" + +#: init.lua +msgid "Outpost" +msgstr "" + +#: init.lua +msgid "Craft 200 stone bricks." +msgstr "" + +#: init.lua +msgid "Watchtower" +msgstr "" + +#: init.lua +msgid "Craft 800 stone bricks." +msgstr "" + +#: init.lua +msgid "Fortress" +msgstr "" + +#: init.lua +msgid "Craft 3,200 stone bricks." +msgstr "" + +#: init.lua +msgid "Desert Dweller" +msgstr "" + +#: init.lua +msgid "Craft 400 desert stone bricks." +msgstr "" + +#: init.lua +msgid "Pharaoh" +msgstr "" + +#: init.lua +msgid "Craft 100 sandstone bricks." +msgstr "" + +#: init.lua +msgid "Little Library" +msgstr "" + +#: init.lua +msgid "Craft 7 bookshelves." +msgstr "" + +#: init.lua +msgid "Lava and Water" +msgstr "" + +#: init.lua +msgid "Mine your first obsidian." +msgstr "" + +#: init.lua +msgid "Obsessed with Obsidian" +msgstr "" + +#: init.lua +msgid "Mine 50 obsidian." +msgstr "" + +#: init.lua +msgid "Lava Miner" +msgstr "" + +#: init.lua +msgid "Mine any block while being very close to lava." +msgstr "" + +#: init.lua +msgid "On The Way" +msgstr "" + +#: init.lua +msgid "Place 100 rails." +msgstr "" + +#: init.lua +msgid "First Day in the Woods" +msgstr "" + +#: init.lua +msgid "Dig 6 tree blocks." +msgstr "" + +#: init.lua +msgid "Lumberjack" +msgstr "" + +#: init.lua +msgid "Dig 36 tree blocks." +msgstr "" + +#: init.lua +msgid "Semi-pro Lumberjack" +msgstr "" + +#: init.lua +msgid "Dig 216 tree blocks." +msgstr "" + +#: init.lua +msgid "Professional Lumberjack" +msgstr "" + +#: init.lua +msgid "Dig 1,296 tree blocks." +msgstr "" + +#: init.lua +msgid "Junglebaby" +msgstr "" + +#: init.lua +msgid "Dig 100 jungle tree blocks." +msgstr "" + +#: init.lua +msgid "Jungleman" +msgstr "" + +#: init.lua +msgid "Dig 1,000 jungle tree blocks." +msgstr "" + +#: init.lua +msgid "First Mese Find" +msgstr "" + +#: init.lua +msgid "Mine your first mese ore." +msgstr "" + +#: init.lua +msgid "Mese Mastery" +msgstr "" + +#: init.lua +msgid "Mine a mese block." +msgstr "" + +#: init.lua +msgid "You’re a copper" +msgstr "" + +#: init.lua +msgid "Dig 1,000 copper ores." +msgstr "" + +#: init.lua +msgid "A Cat in a Pop-Tart?!" +msgstr "" + +#: init.lua +msgid "Mine a nyan cat." +msgstr "" + +#: init.lua +msgid "Mini Miner" +msgstr "" + +#: init.lua +msgid "Dig 100 stone blocks." +msgstr "" + +#: init.lua +msgid "Hardened Miner" +msgstr "" + +#: init.lua +msgid "Dig 1,000 stone blocks." +msgstr "" + +#: init.lua +msgid "Master Miner" +msgstr "" + +#: init.lua +msgid "Dig 10,000 stone blocks." +msgstr "" + +#: init.lua +msgid "Marchand De Sable" +msgstr "" + +#: init.lua +msgid "Dig 1,000 sand." +msgstr "" + +#: init.lua +msgid "Crafter of Sticks" +msgstr "" + +#: init.lua +msgid "Craft 100 sticks." +msgstr "" + +#: init.lua +msgid "Jungle Discoverer" +msgstr "" + +#: init.lua +msgid "Mine your first jungle grass." +msgstr "" + +#: init.lua +msgid "Grasslands Discoverer" +msgstr "" + +#: init.lua +msgid "Mine some grass." +msgstr "" + +#: init.lua +msgid "Savannah Discoverer" +msgstr "" + +#: init.lua +msgid "Mine some dry grass." +msgstr "" + +#: init.lua +msgid "Desert Discoverer" +msgstr "" + +#: init.lua +msgid "Mine your first cactus." +msgstr "" + +#: init.lua +msgid "Far Lands" +msgstr "" + +#: init.lua +msgid "Mine your first dry shrub." +msgstr "" + +#: init.lua +msgid "Glacier Discoverer" +msgstr "" + +#: init.lua +msgid "Mine your first ice." +msgstr "" + +#: init.lua +msgid "Very Simple Snow Man" +msgstr "" + +#: init.lua +msgid "Place two snow blocks." +msgstr "" + +#: init.lua +msgid "First Gold Find" +msgstr "" + +#: init.lua +msgid "Mine your first gold ore." +msgstr "" + +#: init.lua +msgid "Gold Rush" +msgstr "" + +#: init.lua +msgid "Mine 45 gold ores." +msgstr "" + +#: init.lua +msgid "Wow, I am Diamonds!" +msgstr "" + +#: init.lua +msgid "Mine your first diamond ore." +msgstr "" + +#: init.lua +msgid "Girl's Best Friend" +msgstr "" + +#: init.lua +msgid "Mine 18 diamond ores." +msgstr "" + +#: init.lua +msgid "Hardest Block on Earth" +msgstr "" + +#: init.lua +msgid "Craft a diamond block." +msgstr "" + +#: init.lua +msgid "In the Dungeon" +msgstr "" + +#: init.lua +msgid "Mine a mossy cobblestone." +msgstr "" + +#: init.lua +msgid "Smelter" +msgstr "" + +#: init.lua +msgid "Craft 10 furnaces." +msgstr "" + +#: init.lua +msgid "Treasurer" +msgstr "" + +#: init.lua +msgid "Craft 15 chests." +msgstr "" + +#: init.lua +msgid "Bankier" +msgstr "" + +#: init.lua +msgid "Craft 30 locked chests." +msgstr "" + +#: init.lua +msgid "Bricker" +msgstr "" + +#: init.lua +msgid "Craft 200 brick blocks." +msgstr "" + +#: init.lua +msgid "House of Obsidian" +msgstr "" + +#: init.lua +msgid "Craft 100 obsidian bricks." +msgstr "" + +#: init.lua +msgid "Build a Cave" +msgstr "" + +#: init.lua +msgid "Place 100 stone." +msgstr "" + +#: init.lua +msgid "Long Ladder" +msgstr "" + +#: init.lua +msgid "Place 400 wooden ladders." +msgstr "" + +#: init.lua +msgid "Industrial Age" +msgstr "" + +#: init.lua +msgid "Place 40 steel ladders." +msgstr "" + +#: init.lua +msgid "Yummy!" +msgstr "" + +#: init.lua +msgid "Eat 80 apples." +msgstr "" + +#: init.lua +msgid "Glasser" +msgstr "" + +#: init.lua +msgid "Craft 14 vessels shelves." +msgstr "" + +#: init.lua +msgid "Farming Skills Acquired" +msgstr "" + +#: init.lua +msgid "Harvest a fully grown wheat plant." +msgstr "" + +#: init.lua +msgid "Field Worker" +msgstr "" + +#: init.lua +msgid "Harvest 25 fully grown wheat plants." +msgstr "" + +#: init.lua +msgid "Aspiring Farmer" +msgstr "" + +#: init.lua +msgid "Harvest 125 fully grown wheat plants." +msgstr "" + +#: init.lua +msgid "Wheat Magnate" +msgstr "" + +#: init.lua +msgid "Harvest 625 fully grown wheat plants." +msgstr "" + +#: init.lua +msgid "Baker" +msgstr "" + +#: init.lua +msgid "Eat 10 loaves of bread." +msgstr "" + +#: init.lua +msgid "Wool Over Your Eyes" +msgstr "" + +#: init.lua +msgid "Craft 250 white wool." +msgstr "" + +#: init.lua +msgid "Hotelier" +msgstr "" + +#: init.lua +msgid "Craft 15 fancy beds." +msgstr "" + +#: init.lua +msgid "Filthy Rich" +msgstr "" + +#: init.lua +msgid "Craft 24 gold block stairs." +msgstr "" + +#: init.lua +msgid "Roses Are Red" +msgstr "" + +#: init.lua +msgid "Craft 400 red dyes." +msgstr "" + +#: init.lua +msgid "Dandelions are Yellow" +msgstr "" + +#: init.lua +msgid "Craft 400 yellow dyes." +msgstr "" + +#: init.lua +msgid "Geraniums are Blue" +msgstr "" + +#: init.lua +msgid "Craft 400 blue dyes." +msgstr "" + +#: init.lua +msgid "White Color Stock" +msgstr "" + +#: init.lua +msgid "Craft 100 white dyes." +msgstr "" + +#: init.lua +msgid "Tasty Mushrooms" +msgstr "" + +#: init.lua +msgid "Eat 3 brown mushrooms." +msgstr "" + +#: init.lua +msgid "Mushroom Lover" +msgstr "" + +#: init.lua +msgid "Eat 33 brown mushrooms." +msgstr "" + +#: init.lua +msgid "Underground Mushroom Farmer" +msgstr "" + +#: init.lua +msgid "Eat 333 brown mushrooms." +msgstr "" + +#: init.lua +msgid "Builder" +msgstr "" + +#: init.lua +msgid "Constructor" +msgstr "" + +#: init.lua +msgid "Architect" +msgstr "" + +#: init.lua +msgid "Master Architect" +msgstr "" + +#: chat_commands.lua +msgid "[c|clear|disable|enable]" +msgstr "" + +#: chat_commands.lua +msgid "Show, clear, disable or enable your achievements" +msgstr "" + +#: chat_commands.lua +msgid "" +"All your awards and statistics have been cleared. You can now start again." +msgstr "" + +#: chat_commands.lua +msgid "You have disabled your achievements." +msgstr "" + +#: chat_commands.lua +msgid "You have enabled your achievements." +msgstr "" + +#: chat_commands.lua +msgid "" +msgstr "" + +#: chat_commands.lua +msgid "Show details of an achievement" +msgstr "" + +#: chat_commands.lua +msgid "Achievement not found." +msgstr "" + +#: chat_commands.lua +msgid "" +msgstr "" + +#: chat_commands.lua +msgid "Get the achievements statistics for the given player or yourself" +msgstr "" diff --git a/games/default/files/Other/awards/mod.conf b/games/default/files/Other/awards/mod.conf new file mode 100644 index 000000000..e3e83d6bc --- /dev/null +++ b/games/default/files/Other/awards/mod.conf @@ -0,0 +1,8 @@ +name = awards +title = Awards +author = rubenwardy +description = Adds awards to Minetest, and an API to register new ones. +optional_depends = intllib,sfinv,unified_inventory,default,stairs,farming,dye,beds,wool,vessels,moreblocks,fire,flowers,nyancat +license = MIT +forum = https://forum.minetest.net/viewtopic.php?t=4870 +version = 3.0.0 diff --git a/games/default/files/Other/awards/screenshot.png b/games/default/files/Other/awards/screenshot.png new file mode 100644 index 000000000..ab9e19e56 Binary files /dev/null and b/games/default/files/Other/awards/screenshot.png differ diff --git a/games/default/files/Other/awards/sounds/awards_got_generic.ogg b/games/default/files/Other/awards/sounds/awards_got_generic.ogg new file mode 100644 index 000000000..88f53216b Binary files /dev/null and b/games/default/files/Other/awards/sounds/awards_got_generic.ogg differ diff --git a/games/default/files/Other/awards/src/api_awards.lua b/games/default/files/Other/awards/src/api_awards.lua new file mode 100644 index 000000000..4147d4348 --- /dev/null +++ b/games/default/files/Other/awards/src/api_awards.lua @@ -0,0 +1,179 @@ +-- Copyright (c) 2013-18 rubenwardy. MIT. + +local S = awards.gettext + +function awards.register_award(name, def) + def.name = name + + -- Add Triggers + if def.trigger and def.trigger.type then + local tdef = awards.registered_triggers[def.trigger.type] + assert(tdef, "Trigger not found: " .. def.trigger.type) + tdef:on_register(def) + end + + function def:can_unlock(data) + if not self.requires then + return true + end + + for i=1, #self.requires do + if not data.unlocked[self.requires[i]] then + return false + end + end + return true + end + + -- Add Award + awards.registered_awards[name] = def + + local tdef = awards.registered_awards[name] + if def.description == nil and tdef.getDefaultDescription then + def.description = tdef:getDefaultDescription() + end +end + + +-- This function is called whenever a target condition is met. +-- It checks if a player already has that award, and if they do not, +-- it gives it to them +---------------------------------------------- +--awards.unlock(name, award) +-- name - the name of the player +-- award - the name of the award to give +function awards.unlock(name, award) + -- Access Player Data + local data = awards.player(name) + local awdef = awards.registered_awards[award] + assert(awdef, "Unable to unlock an award which doesn't exist!") + + if data.disabled or + (data.unlocked[award] and data.unlocked[award] == award) then + return + end + + if not awdef:can_unlock(data) then + minetest.log("warning", "can_unlock returned false in unlock of " .. + award .. " for " .. name) + return + end + + -- Unlock Award + minetest.log("action", name.." has unlocked award "..name) + data.unlocked[award] = award + awards.save() + + -- Give Prizes + if awdef and awdef.prizes then + for i = 1, #awdef.prizes do + local itemstack = ItemStack(awdef.prizes[i]) + if not itemstack:is_empty() then + local receiverref = minetest.get_player_by_name(name) + if receiverref then + receiverref:get_inventory():add_item("main", itemstack) + end + end + end + end + + -- Run callbacks + if awdef.on_unlock and awdef.on_unlock(name, awdef) then + return + end + for _, callback in pairs(awards.on_unlock) do + if callback(name, awdef) then + return + end + end + + -- Get Notification Settings + local title = awdef.title or award + local desc = awdef.description or "" + local background = awdef.background or "awards_bg_default.png" + local icon = awdef.icon or "awards_unknown.png" + local sound = awdef.sound + if sound == nil then + -- Explicit check for nil because sound could be `false` to disable it + sound = {name="awards_got_generic", gain=0.25} + end + + -- Do Notification + if sound then + -- Enforce sound delay to prevent sound spamming + local lastsound = data.lastsound + if lastsound == nil or os.difftime(os.time(), lastsound) >= 1 then + minetest.sound_play(sound, {to_player=name}) + data.lastsound = os.time() + end + end + + if awards.show_mode == "chat" then + local chat_announce + if awdef.secret then + chat_announce = S("Secret Award Unlocked: %s") + else + chat_announce = S("Award Unlocked: %s") + end + -- use the chat console to send it + minetest.chat_send_player(name, string.format(chat_announce, title)) + if desc~="" then + minetest.chat_send_player(name, desc) + end + else + local player = minetest.get_player_by_name(name) + local one = player:hud_add({ + hud_elem_type = "image", + name = "award_bg", + scale = {x = 2, y = 1}, + text = background, + position = {x = 0.5, y = 0.05}, + offset = {x = 0, y = 138}, + alignment = {x = 0, y = -1} + }) + local hud_announce + if awdef.secret then + hud_announce = S("Secret Award Unlocked!") + else + hud_announce = S("Award Unlocked!") + end + local two = player:hud_add({ + hud_elem_type = "text", + name = "award_au", + number = 0xFFFFFF, + scale = {x = 100, y = 20}, + text = hud_announce, + position = {x = 0.5, y = 0.05}, + offset = {x = 0, y = 45}, + alignment = {x = 0, y = -1} + }) + local three = player:hud_add({ + hud_elem_type = "text", + name = "award_title", + number = 0xFFFFFF, + scale = {x = 100, y = 20}, + text = title, + position = {x = 0.5, y = 0.05}, + offset = {x = 0, y = 100}, + alignment = {x = 0, y = -1} + }) + local four = player:hud_add({ + hud_elem_type = "image", + name = "award_icon", + scale = {x = 4, y = 4}, + text = icon, + position = {x = 0.5, y = 0.05}, + offset = {x = -200.5, y = 126}, + alignment = {x = 0, y = -1} + }) + minetest.after(4, function() + local player2 = minetest.get_player_by_name(name) + if player2 then + player2:hud_remove(one) + player2:hud_remove(two) + player2:hud_remove(three) + player2:hud_remove(four) + end + end) + end +end diff --git a/games/default/files/Other/awards/src/api_triggers.lua b/games/default/files/Other/awards/src/api_triggers.lua new file mode 100644 index 000000000..454c79e5a --- /dev/null +++ b/games/default/files/Other/awards/src/api_triggers.lua @@ -0,0 +1,218 @@ +-- Copyright (c) 2013-18 rubenwardy. MIT. + +local S, NS = awards.gettext, awards.ngettext + +awards.registered_awards = {} +awards.on = {} +awards.on_unlock = {} + +local default_def = {} + +function default_def:run_callbacks(player, data, table_func) + for i = 1, #self.on do + local res = nil + local entry = self.on[i] + if type(entry) == "function" then + res = entry(player, data) + elseif type(entry) == "table" and entry.award then + res = table_func(entry) + end + + if res then + awards.unlock(player:get_player_name(), res) + end + end +end + +function awards.register_trigger(tname, tdef) + assert(type(tdef) == "table", + "Passing a callback to register_trigger is not supported in 3.0") + + tdef.name = tname + for key, value in pairs(default_def) do + tdef[key] = value + end + + if tdef.type == "counted" then + local old_reg = tdef.on_register + + function tdef:on_register(def) + local tmp = { + award = def.name, + target = def.trigger.target, + } + tdef.register(tmp) + + function def.getProgress(_, data) + local done = math.min(data[tname] or 0, tmp.target) + return { + perc = done / tmp.target, + label = S(tdef.progress, done, tmp.target), + } + end + + function def.getDefaultDescription(_) + local n = def.trigger.target + return NS(tdef.auto_description[1], tdef.auto_description[2], n, n) + end + + if old_reg then + return old_reg(tdef, def) + end + end + + function tdef.notify(player) + assert(player and player.is_player and player:is_player()) + local name = player:get_player_name() + local data = awards.player(name) + + -- Increment counter + local currentVal = (data[tname] or 0) + 1 + data[tname] = currentVal + + tdef:run_callbacks(player, data, function(entry) + if entry.target and entry.award and currentVal and + currentVal >= entry.target then + return entry.award + end + end) + end + + awards["notify_" .. tname] = tdef.notify + + elseif tdef.type == "counted_key" then + if tdef.key_is_item then + tdef.watched_groups = {} + end + + -- On award register + local old_reg = tdef.on_register + function tdef:on_register(def) + -- Register trigger + local tmp = { + award = def.name, + key = tdef:get_key(def), + target = def.trigger.target, + } + tdef.register(tmp) + + -- If group, add it to watch list + if tdef.key_is_item and tmp.key and tmp.key:sub(1, 6) == "group:" then + tdef.watched_groups[tmp.key:sub(7, #tmp.key)] = true + end + + -- Called to get progress values and labels + function def.getProgress(_, data) + data[tname] = data[tname] or {} + + local done + if tmp.key then + done = data[tname][tmp.key] or 0 + else + done = data[tname].__total or 0 + end + done = math.min(done, tmp.target) + + return { + perc = done / tmp.target, + label = S(tdef.progress, done, tmp.target), + } + end + + -- Build description if none is specificed by the award + function def.getDefaultDescription(_) + local n = def.trigger.target + if tmp.key then + local nname = tmp.key + return NS(tdef.auto_description[1], + tdef.auto_description[2], n, n, nname) + else + return NS(tdef.auto_description_total[1], + tdef.auto_description_total[2], n, n) + end + end + + -- Call on_register in trigger type definition + if old_reg then + return old_reg(tdef, def) + end + end + + function tdef.notify(player, key, n) + n = n or 1 + + if tdef.key_is_item and key:sub(1, 6) ~= "group:" then + local itemdef = minetest.registered_items[key] + if itemdef then + for groupname, _ in pairs(itemdef.groups or {}) do + if tdef.watched_groups[groupname] then + tdef.notify(player, "group:" .. groupname, n) + end + end + end + end + + assert(player and player.is_player and player:is_player() and key) + local name = player:get_player_name() + local data = awards.player(name) + + -- Increment counter + data[tname] = data[tname] or {} + local currentVal = (data[tname][key] or 0) + n + data[tname][key] = currentVal + if key:sub(1, 6) ~= "group:" then + data[tname].__total = (data[tname].__total or 0) + n + end + + tdef:run_callbacks(player, data, function(entry) + local current + if entry.key == key then + current = currentVal + elseif entry.key == nil then + current = data[tname].__total + else + return + end + + if current >= entry.target then + return entry.award + end + end) + end + + awards["notify_" .. tname] = tdef.notify + + elseif tdef.type and tdef.type ~= "custom" then + error("Unrecognised trigger type " .. tdef.type) + end + + awards.registered_triggers[tname] = tdef + + tdef.on = {} + tdef.register = function(func) + table.insert(tdef.on, func) + end + + -- Backwards compat + awards.on[tname] = tdef.on + awards['register_on_' .. tname] = tdef.register + return tdef +end + +function awards.increment_item_counter(data, field, itemname, count) + itemname = minetest.registered_aliases[itemname] or itemname + data[field][itemname] = (data[field][itemname] or 0) + 1 +end + +function awards.get_item_count(data, field, itemname) + itemname = minetest.registered_aliases[itemname] or itemname + return data[field][itemname] or 0 +end + +function awards.get_total_keyed_count(data, field) + return data[field].__total or 0 +end + +function awards.register_on_unlock(func) + table.insert(awards.on_unlock, func) +end diff --git a/games/default/files/Other/awards/src/awards.lua b/games/default/files/Other/awards/src/awards.lua new file mode 100644 index 000000000..e4b81dc8c --- /dev/null +++ b/games/default/files/Other/awards/src/awards.lua @@ -0,0 +1,67 @@ +-- Copyright (c) 2013-18 rubenwardy and Wuzzy. MIT. + +color1 = minetest.setting_get("color1") or "292421" +color2 = minetest.setting_get("color2") or "0000FF" +color3 = minetest.setting_get("color3") or "00FF00" +color4 = minetest.setting_get("color4") or "F5F5F5" +color5 = minetest.setting_get("color5") or "FF6103" +color6 = minetest.setting_get("color6") or "FF0000" +color7 = minetest.setting_get("color7") or "FFFF00" +color8 = minetest.setting_get("color8") or "FF69B4" + +local source_list = { + {"black", "Color1", color1, 40, 36, 33}, + {"blue", "Color2", color2, 0, 0, 255}, + {"green", "Color3", color3, 0, 255, 0}, + {"white", "Color4", color4, 245, 245, 245}, + {"orange", "Color5", color5, 255, 97, 3}, + {"red", "Color6", color6, 255, 0, 0}, + {"yellow", "Color7", color7, 255, 255, 0}, + {"pink", "Color8", color8, 255, 105, 180} +} + +for i in ipairs(source_list) do + local color = source_list[i][1] + local desc = source_list[i][2] + local colour = source_list[i][3] + local red = source_list[i][4] + local green = source_list[i][5] + local blue = source_list[i][6] + +local S = awards.gettext + + awards.register_award("award_" .. color,{ + title = S("First " .. color), + description = S("Place 1 " .. color), + + trigger = { + type = "place", + node = "color:" .. color, + target = 1 + } + }) + +awards.register_award("award_999" .. color,{ + title = S("999 " .. color .. "s Blocks"), + description = S("Place 999 " .. color), + + trigger = { + type = "place", + node = "color:" .. color, + target = 999 + } + }) + +awards.register_award("award_dead" .. color,{ + title = S("Oh nooooo .... My " .. color), + description = S("Dig a " .. color), + + trigger = { + type = "dig", + node = "color:" .. color, + target = 1 + } + }) + + +end diff --git a/games/default/files/Other/awards/src/chat_commands.lua b/games/default/files/Other/awards/src/chat_commands.lua new file mode 100644 index 000000000..9c1580e01 --- /dev/null +++ b/games/default/files/Other/awards/src/chat_commands.lua @@ -0,0 +1,61 @@ +-- Copyright (c) 2013-18 rubenwardy. MIT. + +local S = awards.gettext + +minetest.register_chatcommand("awards", { + params = S("[c|clear|disable|enable]"), + description = S("Show, clear, disable or enable your awards"), + func = function(name, param) + if param == "clear" then + awards.clear_player(name) + minetest.chat_send_player(name, + S("All your awards and statistics have been cleared. You can now start again.")) + elseif param == "disable" then + awards.disable(name) + minetest.chat_send_player(name, S("You have disabled awards.")) + elseif param == "enable" then + awards.enable(name) + minetest.chat_send_player(name, S("You have enabled awards.")) + elseif param == "c" then + awards.show_to(name, name, nil, true) + else + awards.show_to(name, name, nil, false) + end + + if (param == "disable" or param == "enable") and minetest.global_exists("sfinv") then + local player = minetest.get_player_by_name(name) + if player then + sfinv.set_player_inventory_formspec(player) + end + end + end +}) + +minetest.register_chatcommand("awd", { + params = S(""), + description = S("Show details of an award"), + func = function(name, param) + local def = awards.registered_awards[param] + if def then + minetest.chat_send_player(name, string.format(S("%s: %s"), def.title, def.description)) + else + minetest.chat_send_player(name, S("Award not found.")) + end + end +}) + +minetest.register_chatcommand("awpl", { + privs = { + server = true + }, + params = S(""), + description = S("Get the awards statistics for the given player or yourself"), + func = function(name, param) + if not param or param == "" then + param = name + end + minetest.chat_send_player(name, param) + local player = awards.player(param) + minetest.chat_send_player(name, dump(player)) + end +}) diff --git a/games/default/files/Other/awards/src/data.lua b/games/default/files/Other/awards/src/data.lua new file mode 100644 index 000000000..27ae5e306 --- /dev/null +++ b/games/default/files/Other/awards/src/data.lua @@ -0,0 +1,111 @@ + +local storage = minetest.get_mod_storage() +local __player_data + +-- Table Save Load Functions +function awards.save() + storage:set_string("player_data", minetest.write_json(__player_data)) +end + +local function convert_data() + minetest.log("warning", "Importing awards data from previous version") + + local old_players = __player_data + __player_data = {} + for name, data in pairs(old_players) do + while name.name do + name = name.name + end + data.name = name + print("Converting data for " .. name) + + -- Just rename counted + local counted = { + chats = "chat", + deaths = "death", + joins = "join", + } + for from, to in pairs(counted) do + data[to] = data[from] + data[from] = nil + end + + data.death = { + unknown = data.death, + __total = data.death, + } + + -- Convert item db to new format + local counted_items = { + count = "dig", + place = "place", + craft = "craft", + } + for from, to in pairs(counted_items) do + local ret = {} + + local count = 0 + if data[from] then + for modname, items in pairs(data[from]) do + for itemname, value in pairs(items) do + itemname = modname .. ":" .. itemname + local key = minetest.registered_aliases[itemname] or itemname + ret[key] = value + count = count + value + end + end + end + + ret.__total = count + data[from] = nil + data[to] = ret + end + + __player_data[name] = data + end +end + +function awards.load() + local old_save_path = minetest.get_worldpath().."/awards.txt" + local file = io.open(old_save_path, "r") + if file then + local table = minetest.deserialize(file:read("*all")) + if type(table) == "table" then + __player_data = table + convert_data() + else + __player_data = {} + end + file:close() + os.rename(old_save_path, minetest.get_worldpath().."/awards.bk.txt") + awards.save() + else + __player_data = minetest.parse_json(storage:get_string("player_data")) or {} + end +end + +function awards.player(name) + assert(type(name) == "string") + local data = __player_data[name] or {} + __player_data[name] = data + + data.name = data.name or name + data.unlocked = data.unlocked or {} + return data +end + +function awards.player_or_nil(name) + return __player_data[name] +end + +function awards.enable(name) + awards.player(name).disabled = nil +end + +function awards.disable(name) + awards.player(name).disabled = true +end + +function awards.clear_player(name) + __player_data[name] = {} +end diff --git a/games/default/files/Other/awards/src/gui.lua b/games/default/files/Other/awards/src/gui.lua new file mode 100644 index 000000000..948a15262 --- /dev/null +++ b/games/default/files/Other/awards/src/gui.lua @@ -0,0 +1,285 @@ +-- Copyright (c) 2013-18 rubenwardy. MIT. + +local S = awards.gettext + +local function order_awards(name) + local hash_is_unlocked = {} + local retval = {} + + local data = awards.player(name) + if data and data.unlocked then + for awardname, _ in pairs(data.unlocked) do + local def = awards.registered_awards[awardname] + if def then + hash_is_unlocked[awardname] = true + local score = -100000 + + local difficulty = def.difficulty or 1 + if def.trigger and def.trigger.target then + difficulty = difficulty * def.trigger.target + end + score = score + difficulty + + retval[#retval + 1] = { + name = awardname, + def = def, + unlocked = true, + started = true, + score = score, + } + end + end + end + + for _, def in pairs(awards.registered_awards) do + if not hash_is_unlocked[def.name] and def:can_unlock(data) then + local started = false + local score = def.difficulty or 1 + if def.secret then + score = 1000000 + elseif def.trigger and def.trigger.target and def.getProgress then + local progress = def:getProgress(data).perc + score = score * (1 - progress) * def.trigger.target + if progress < 0.001 then + score = score + 100 + else + started = true + end + else + score = 100 + end + + retval[#retval + 1] = { + name = def.name, + def = def, + unlocked = false, + started = started, + score = score, + } + end + end + + table.sort(retval, function(a, b) + return a.score < b.score + end) + return retval +end + +function awards.get_formspec(name, to, sid) + local formspec = "" + local awards_list = order_awards(name) + local data = awards.player(name) + + if #awards_list == 0 then + formspec = formspec .. "label[3.9,1.5;"..minetest.formspec_escape(S("Error: No achivements available.")).."]" + formspec = formspec .. "button_exit[4.2,2.3;3,1;close;"..minetest.formspec_escape(S("OK")).."]" + return formspec + end + sid = awards_list[sid] and sid or 1 + + -- Sidebar + local sitem = awards_list[sid] + local sdef = sitem.def + if sdef and sdef.secret and not sitem.unlocked then + formspec = formspec .. "label[1,2.75;".. + minetest.formspec_escape(S("(Secret Award)")).."]".. + "image[1,0;3,3;awards_unknown.png]" + if sdef and sdef.description then + formspec = formspec .. "textarea[0.25,3.25;4.8,1.7;;".. + minetest.formspec_escape( + S("Unlock this award to find out what it is."))..";]" + end + else + local title = sitem.name + if sdef and sdef.title then + title = sdef.title + end + local status = "%s" + if sitem.unlocked then + status = S("%s (unlocked)") + end + + formspec = formspec .. "textarea[0.5,3.1;4.8,1.45;;" .. + string.format(status, minetest.formspec_escape(title)) .. + ";]" + + if sdef and sdef.icon then + formspec = formspec .. "image[0.6,0;3,3;" .. sdef.icon .. "]" + end + local barwidth = 3.95 + local perc = nil + local label = nil + if sdef.getProgress and data then + local res = sdef:getProgress(data) + perc = res.perc + label = res.label + end + if perc then + if perc > 1 then + perc = 1 + end + formspec = formspec .. "background[0,8.24;" .. barwidth ..",0.4;awards_progress_gray.png;false]" + formspec = formspec .. "background[0,8.24;" .. (barwidth * perc) ..",0.4;awards_progress_green.png;false]" + if label then + formspec = formspec .. "label[1.6,8.15;" .. minetest.formspec_escape(label) .. "]" + end + end + if sdef and sdef.description then + formspec = formspec .. "box[-0.05,3.75;3.9,4.2;#000]" + formspec = formspec .. "textarea[0.25,3.75;3.9,4.2;;" .. + minetest.formspec_escape(sdef.description) .. ";]" + end + end + + -- Create list box + formspec = formspec .. "textlist[4,0;3.8,8.6;awards;" + local first = true + for _, award in pairs(awards_list) do + local def = award.def + if def then + if not first then + formspec = formspec .. "," + end + first = false + + if def.secret and not award.unlocked then + formspec = formspec .. "#707070"..minetest.formspec_escape(S("(Secret Award)")) + else + local title = award.name + if def and def.title then + title = def.title + end + -- title = title .. " [" .. award.score .. "]" + if award.unlocked then + formspec = formspec .. minetest.formspec_escape(title) + elseif award.started then + formspec = formspec .. "#c0c0c0".. minetest.formspec_escape(title) + else + formspec = formspec .. "#a0a0a0".. minetest.formspec_escape(title) + end + end + end + end + return formspec .. ";"..sid.."]" +end + + +function awards.show_to(name, to, sid, text) + if name == "" or name == nil then + name = to + end + local data = awards.player(to) + if name == to and data.disabled then + minetest.chat_send_player(name, S("You've disabled awards. Type /awards enable to reenable.")) + return + end + if text then + local awards_list = order_awards(name) + if #awards_list == 0 then + minetest.chat_send_player(to, S("Error: No award available.")) + return + elseif not data or not data.unlocked then + minetest.chat_send_player(to, S("You have not unlocked any awards.")) + return + end + minetest.chat_send_player(to, string.format(S("%s’s awards:"), name)) + + for str, _ in pairs(data.unlocked) do + local def = awards.registered_awards[str] + if def then + if def.title then + if def.description then + minetest.chat_send_player(to, string.format(S("%s: %s"), def.title, def.description)) + else + minetest.chat_send_player(to, def.title) + end + else + minetest.chat_send_player(to, str) + end + end + end + else + local deco = "" + if minetest.global_exists("default") then + deco = default.gui_bg .. default.gui_bg_img + end + -- Show formspec to user + minetest.show_formspec(to,"awards:awards", + "size[8,8.6]" .. deco .. + awards.get_formspec(name, to, sid)) + end +end + +minetest.register_on_player_receive_fields(function(player, formname, fields) + if formname ~= "awards:awards" then + return false + end + if fields.quit then + return true + end + local name = player:get_player_name() + if fields.awards then + local event = minetest.explode_textlist_event(fields.awards) + if event.type == "CHG" then + awards.show_to(name, name, event.index, false) + end + end + + return true +end) + +if minetest.get_modpath("sfinv") then + sfinv.register_page("awards:awards", { + title = S("Awards"), + on_enter = function(self, player, context) + context.awards_idx = 1 + end, + is_in_nav = function(self, player, context) + local data = awards.player(player:get_player_name()) + return not data.disabled + end, + get = function(self, player, context) + local name = player:get_player_name() + return sfinv.make_formspec(player, context, + awards.get_formspec(name, name, context.awards_idx), + false) + end, + on_player_receive_fields = function(self, player, context, fields) + if fields.awards then + local event = minetest.explode_textlist_event(fields.awards) + if event.type == "CHG" then + context.awards_idx = event.index + sfinv.set_player_inventory_formspec(player, context) + end + end + end + }) + + local function check_and_reshow(name) + local player = minetest.get_player_by_name(name) + if not player then + return + end + + local context = sfinv.get_or_create_context(player) + if context.page ~= "awards:awards" then + return + end + + sfinv.set_player_inventory_formspec(player, context) + end + + awards.register_on_unlock(check_and_reshow) +end + +if minetest.get_modpath("unified_inventory") ~= nil then + unified_inventory.register_button("awards", { + type = "image", + image = "awards_ui_icon.png", + tooltip = S("Awards"), + action = function(player) + local name = player:get_player_name() + awards.show_to(name, name, nil, false) + end, + }) +end diff --git a/games/default/files/Other/awards/src/intllib.lua b/games/default/files/Other/awards/src/intllib.lua new file mode 100644 index 000000000..c7af2c2b0 --- /dev/null +++ b/games/default/files/Other/awards/src/intllib.lua @@ -0,0 +1,44 @@ +-- Fallback functions for when `intllib` is not installed. +-- Code released under Unlicense . + +-- Get the latest version of this file at: +-- https://raw.githubusercontent.com/minetest-mods/intllib/master/lib/intllib.lua + +local function format(str, ...) + local args = { ... } + local function repl(escape, open, num, close) + if escape == "" then + local replacement = tostring(args[tonumber(num)]) + if open == "" then + replacement = replacement..close + end + return replacement + else + return "@"..open..num..close + end + end + return (str:gsub("(@?)@(%(?)(%d+)(%)?)", repl)) +end + +local gettext, ngettext +if minetest.get_modpath("intllib") then + if intllib.make_gettext_pair then + -- New method using gettext. + gettext, ngettext = intllib.make_gettext_pair() + else + -- Old method using text files. + gettext = intllib.Getter() + end +end + +-- Fill in missing functions. + +gettext = gettext or function(msgid, ...) + return format(msgid, ...) +end + +ngettext = ngettext or function(msgid, msgid_plural, n, ...) + return format(n==1 and msgid or msgid_plural, ...) +end + +return gettext, ngettext diff --git a/games/default/files/Other/awards/src/triggers.lua b/games/default/files/Other/awards/src/triggers.lua new file mode 100644 index 000000000..32a0b85b4 --- /dev/null +++ b/games/default/files/Other/awards/src/triggers.lua @@ -0,0 +1,141 @@ +-- AWARDS +-- +-- Copyright (C) 2013-2015 rubenwardy +-- 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 2.1 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. +-- + + +awards.register_trigger("chat", { + type = "counted", + progress = "@1/@2 chat messages", + auto_description = { "Send a chat message", "Chat @1 times" }, +}) +minetest.register_on_chat_message(function(name, message) + local player = minetest.get_player_by_name(name) + if not player or string.find(message, "/") then + return + end + + awards.notify_chat(player) +end) + + +awards.register_trigger("join", { + type = "counted", + progress = "@1/@2 joins", + auto_description = { "Join once", "Join @1 times" }, +}) +minetest.register_on_joinplayer(awards.notify_join) + + +awards.register_trigger("death", { + type = "counted_key", + progress = "@1/@2 deaths", + auto_description = { "Die once of @2", "Die @1 times of @2" }, + auto_description_total = { "Die @1 times.", "Mine @1 times" }, + get_key = function(self, def) + return def.trigger.reason + end, +}) +minetest.register_on_dieplayer(function(player, reason) + if reason then + reason = reason.type + else + reason = "unknown" + end + awards.notify_death(player, reason) +end) + + +awards.register_trigger("dig", { + type = "counted_key", + progress = "@1/@2 dug", + auto_description = { "Mine: @2", "Mine: @1×@2" }, + auto_description_total = { "Mine @1 block.", "Mine @1 blocks." }, + get_key = function(self, def) + return minetest.registered_aliases[def.trigger.node] or def.trigger.node + end, + key_is_item = true, +}) +minetest.register_on_dignode(function(pos, node, player) + if not player or not pos or not node then + return + end + + local node_name = node.name + node_name = minetest.registered_aliases[node_name] or node_name + awards.notify_dig(player, node_name) +end) + + +awards.register_trigger("place", { + type = "counted_key", + progress = "@1/@2 placed", + auto_description = { "Place: @2", "Place: @1×@2" }, + auto_description_total = { "Place @1 block.", "Place @1 blocks." }, + get_key = function(self, def) + return minetest.registered_aliases[def.trigger.node] or def.trigger.node + end, + key_is_item = true, +}) +minetest.register_on_placenode(function(pos, node, player) + if not player or not pos or not node then + return + end + + local node_name = node.name + node_name = minetest.registered_aliases[node_name] or node_name + awards.notify_place(player, node_name) +end) + + +awards.register_trigger("craft", { + type = "counted_key", + progress = "@1/@2 crafted", + auto_description = { "Craft: @2", "Craft: @1×@2" }, + auto_description_total = { "Craft @1 item", "Craft @1 items." }, + get_key = function(self, def) + return minetest.registered_aliases[def.trigger.item] or def.trigger.item + end, + key_is_item = true, +}) +minetest.register_on_craft(function(itemstack, player, old_craft_grid, craft_inv) + if not player or itemstack:is_empty() then + return + end + + local itemname = itemstack:get_name() + itemname = minetest.registered_aliases[itemname] or itemname + awards.notify_craft(player, itemname, itemstack:get_count()) +end) + + +awards.register_trigger("eat", { + type = "counted_key", + progress = "@1/@2 eaten", + auto_description = { "Eat @2", "Eat @1×@2" }, + auto_description_total = { "Eat @1 item", "Eat @1 items." }, + get_key = function(self, def) + return minetest.registered_aliases[def.trigger.item] or def.trigger.item + end, + key_is_item = true, +}) +minetest.register_on_item_eat(function(_, _, itemstack, player, _) + if not player or itemstack:is_empty() then + return + end + + local itemname = itemstack:get_name() + itemname = minetest.registered_aliases[itemname] or itemname + awards.notify_craft(player, itemname, itemstack:get_count()) +end) diff --git a/games/default/files/Other/awards/textures/awards_bg_default.png b/games/default/files/Other/awards/textures/awards_bg_default.png new file mode 100644 index 000000000..df6e3df1f Binary files /dev/null and b/games/default/files/Other/awards/textures/awards_bg_default.png differ diff --git a/games/default/files/Other/awards/textures/awards_bg_mining.png b/games/default/files/Other/awards/textures/awards_bg_mining.png new file mode 100644 index 000000000..f4163c5d8 Binary files /dev/null and b/games/default/files/Other/awards/textures/awards_bg_mining.png differ diff --git a/games/default/files/Other/awards/textures/awards_firefighter.png b/games/default/files/Other/awards/textures/awards_firefighter.png new file mode 100644 index 000000000..7c2236bb4 Binary files /dev/null and b/games/default/files/Other/awards/textures/awards_firefighter.png differ diff --git a/games/default/files/Other/awards/textures/awards_house.png b/games/default/files/Other/awards/textures/awards_house.png new file mode 100644 index 000000000..e23e30d4a Binary files /dev/null and b/games/default/files/Other/awards/textures/awards_house.png differ diff --git a/games/default/files/Other/awards/textures/awards_level1.png b/games/default/files/Other/awards/textures/awards_level1.png new file mode 100644 index 000000000..8f628f338 Binary files /dev/null and b/games/default/files/Other/awards/textures/awards_level1.png differ diff --git a/games/default/files/Other/awards/textures/awards_level2.png b/games/default/files/Other/awards/textures/awards_level2.png new file mode 100644 index 000000000..9f9564fac Binary files /dev/null and b/games/default/files/Other/awards/textures/awards_level2.png differ diff --git a/games/default/files/Other/awards/textures/awards_level3.png b/games/default/files/Other/awards/textures/awards_level3.png new file mode 100644 index 000000000..8931454ad Binary files /dev/null and b/games/default/files/Other/awards/textures/awards_level3.png differ diff --git a/games/default/files/Other/awards/textures/awards_level4.png b/games/default/files/Other/awards/textures/awards_level4.png new file mode 100644 index 000000000..68e393f04 Binary files /dev/null and b/games/default/files/Other/awards/textures/awards_level4.png differ diff --git a/games/default/files/Other/awards/textures/awards_level5.png b/games/default/files/Other/awards/textures/awards_level5.png new file mode 100644 index 000000000..d0a05bcc9 Binary files /dev/null and b/games/default/files/Other/awards/textures/awards_level5.png differ diff --git a/games/default/files/Other/awards/textures/awards_level6.png b/games/default/files/Other/awards/textures/awards_level6.png new file mode 100644 index 000000000..5c6482fdf Binary files /dev/null and b/games/default/files/Other/awards/textures/awards_level6.png differ diff --git a/games/default/files/Other/awards/textures/awards_level7.png b/games/default/files/Other/awards/textures/awards_level7.png new file mode 100644 index 000000000..5e318d81f Binary files /dev/null and b/games/default/files/Other/awards/textures/awards_level7.png differ diff --git a/games/default/files/Other/awards/textures/awards_mese.png b/games/default/files/Other/awards/textures/awards_mese.png new file mode 100644 index 000000000..3fc800ec3 Binary files /dev/null and b/games/default/files/Other/awards/textures/awards_mese.png differ diff --git a/games/default/files/Other/awards/textures/awards_miniminer.png b/games/default/files/Other/awards/textures/awards_miniminer.png new file mode 100644 index 000000000..45c72384e Binary files /dev/null and b/games/default/files/Other/awards/textures/awards_miniminer.png differ diff --git a/games/default/files/Other/awards/textures/awards_novicebuilder.png b/games/default/files/Other/awards/textures/awards_novicebuilder.png new file mode 100644 index 000000000..f24d843ca Binary files /dev/null and b/games/default/files/Other/awards/textures/awards_novicebuilder.png differ diff --git a/games/default/files/Other/awards/textures/awards_progress_gray.png b/games/default/files/Other/awards/textures/awards_progress_gray.png new file mode 100644 index 000000000..a5fc6cb35 Binary files /dev/null and b/games/default/files/Other/awards/textures/awards_progress_gray.png differ diff --git a/games/default/files/Other/awards/textures/awards_progress_green.png b/games/default/files/Other/awards/textures/awards_progress_green.png new file mode 100644 index 000000000..54b4e5d5a Binary files /dev/null and b/games/default/files/Other/awards/textures/awards_progress_green.png differ diff --git a/games/default/files/Other/awards/textures/awards_template.png b/games/default/files/Other/awards/textures/awards_template.png new file mode 100644 index 000000000..b29045480 Binary files /dev/null and b/games/default/files/Other/awards/textures/awards_template.png differ diff --git a/games/default/files/Other/awards/textures/awards_ui_bags.png b/games/default/files/Other/awards/textures/awards_ui_bags.png new file mode 100644 index 000000000..4d6eb5711 Binary files /dev/null and b/games/default/files/Other/awards/textures/awards_ui_bags.png differ diff --git a/games/default/files/Other/awards/textures/awards_ui_icon.png b/games/default/files/Other/awards/textures/awards_ui_icon.png new file mode 100644 index 000000000..239ad71ec Binary files /dev/null and b/games/default/files/Other/awards/textures/awards_ui_icon.png differ diff --git a/games/default/files/Other/awards/textures/awards_unknown.png b/games/default/files/Other/awards/textures/awards_unknown.png new file mode 100644 index 000000000..b29045480 Binary files /dev/null and b/games/default/files/Other/awards/textures/awards_unknown.png differ diff --git a/games/default/files/Other/awards/tools/updatepo.sh b/games/default/files/Other/awards/tools/updatepo.sh new file mode 100644 index 000000000..74332e012 --- /dev/null +++ b/games/default/files/Other/awards/tools/updatepo.sh @@ -0,0 +1,22 @@ +#! /bin/bash + +# To create a new translation: +# msginit --locale=ll_CC -o locale/ll_CC.po -i locale/template.pot + +cd "$(dirname "${BASH_SOURCE[0]}")/.."; + +# Extract translatable strings. +xgettext --from-code=UTF-8 \ + --keyword=S \ + --keyword=NS:1,2 \ + --keyword=N_ \ + --add-comments='Translators:' \ + --add-location=file \ + -o locale/template.pot \ + $(find . -name '*.lua') + +# Update translations. +find locale -name '*.po' | while read -r file; do + echo $file + msgmerge --update $file locale/template.pot; +done diff --git a/games/default/files/Other/formspecs/README.txt b/games/default/files/Other/formspecs/README.txt new file mode 100644 index 000000000..e69de29bb diff --git a/games/default/files/Other/formspecs/description.txt b/games/default/files/Other/formspecs/description.txt new file mode 100644 index 000000000..22f944843 --- /dev/null +++ b/games/default/files/Other/formspecs/description.txt @@ -0,0 +1,3 @@ +ActiveFormspecs is a self-contained API that provides secure session tracking, session-based state tables, and localized event handling of formspecs for individual mods as well as entire subgames + +For more information: https://forum.minetest.net/viewtopic.php?f=9&t=19303 diff --git a/games/default/files/Other/formspecs/init.lua b/games/default/files/Other/formspecs/init.lua new file mode 100644 index 000000000..43f2079e7 --- /dev/null +++ b/games/default/files/Other/formspecs/init.lua @@ -0,0 +1,420 @@ +-------------------------------------------------------- +-- Minetest :: ActiveFormspecs Mod v2.4 (formspecs) +-- +-- See README.txt for licensing and release notes. +-- Copyright (c) 2016-2018, Leslie Ellen Krause +-- +-- ./games/just_test_tribute/mods/formspecs/init.lua +-------------------------------------------------------- + +print( "Loading ActiveFormspecs Mod" ) + +minetest.FORMSPEC_SIGEXIT = "true" -- player clicked exit button or pressed esc key (boolean for backward compatibility) +minetest.FORMSPEC_SIGQUIT = 1 -- player logged off +minetest.FORMSPEC_SIGKILL = 2 -- player was killed +minetest.FORMSPEC_SIGTERM = 3 -- server is shutting down +minetest.FORMSPEC_SIGPROC = 4 -- procedural closure +minetest.FORMSPEC_SIGTIME = 5 -- timeout reached + +local afs = { } -- obtain localized, protected namespace + +afs.forms = { } +afs.timers = { } +afs.session_id = 0 +afs.session_seed = math.random( 0, 65535 ) + +afs.stats = { active = 0, opened = 0, closed = 0 } + +afs.stats.on_open = function ( self ) + self.active = self.active + 1 + self.opened = self.opened + 1 +end + +afs.stats.on_close = function ( self ) + self.active = self.active - 1 + self.closed = self.closed + 1 +end + +----------------------------------------------------------------- +-- trigger callbacks at set intervals within timer queue +----------------------------------------------------------------- + +do + -- localize needed object references for efficiency + local get_us_time = minetest.get_us_time + local timers = afs.timers + local t_cur = get_us_time( ) + local t_off = -t_cur + + -- step monotonic clock with graceful 32-bit overflow + local step_clock = function( ) + local t_new = get_us_time( ) + + if t_new < t_cur then + t_off = t_off + 4294967290 + end + + t_cur = t_new + return t_off + t_new + end + afs.get_uptime = function( ) + return ( t_off + t_cur ) / 1000000 + end + + minetest.register_globalstep( function( dtime ) + local curtime = step_clock( ) / 1000000 + local idx = #timers + + -- iterate through table in reverse order to allow removal + while idx > 0 do + local self = timers[ idx ] + + if curtime >= self.exptime then + self.counter = self.counter + 1 + self.overrun = curtime - self.exptime + self.exptime = curtime + self.form.timeout + + self.form.newtime = math.floor( curtime ) + self.form.on_close( self.form.meta, self.form.player, { quit = minetest.FORMSPEC_SIGTIME } ) + + self.overrun = 0.0 + end + idx = idx - 1 + end + end ) +end + +----------------------------------------------------------------- +-- override node registrations for attached formspecs +----------------------------------------------------------------- + +local on_rightclick = function( pos, node, player ) + -- should be passing meta to on_open( ) and on_close( ) as first param? + -- local meta = { pos = pos, node = node } + local formspec = minetest.registered_nodes[ node.name ].on_open( pos, player ) + + if formspec then + local player_name = player:get_player_name( ) + minetest.create_form( pos, player_name, formspec, minetest.registered_nodes[ node.name ].on_close ) + afs.forms[ player_name ].origin = node.name + end +end + +local old_register_node = minetest.register_node +local old_override_item = minetest.override_item + +minetest.register_node = function ( name, def ) + if def.on_open and not def.on_rightclick then + def.on_rightclick = on_rightclick + end + old_register_node( name, def ) +end + +minetest.override_item = function ( name, def ) + if minetest.registered_nodes[ name ] and def.on_open then + def.on_rightclick = on_rightclick + end + old_override_item( name, def ) +end + +----------------------------------------------------------------- +-- trigger callbacks during formspec events +----------------------------------------------------------------- + +minetest.register_on_player_receive_fields( function( player, formname, fields ) + local player_name = player:get_player_name( ) + local form = afs.forms[ player_name ] + + -- perform a basic sanity check, since these shouldn't technically occur + if not form or player ~= form.player or formname ~= form.name then return end + + form.newtime = os.time( ) + form.on_close( form.meta, form.player, fields ) + + -- end current session when closing formspec + if fields.quit then + minetest.get_form_timer( player_name ).stop( ) + + afs.stats:on_close( ) + afs.forms[ player_name ] = nil + end +end ) + +----------------------------------------------------------------- +-- expose timer functionality within a helper object +----------------------------------------------------------------- + +minetest.get_form_timer = function ( player_name, form_name ) + local self = { } + local form = afs.forms[ player_name ] + + if not form or form_name and form_name ~= form.name then return end + + self.start = function ( timeout ) + if not form.timeout and timeout >= 0.5 then + local curtime = afs.get_uptime( ) + + form.timeout = timeout + table.insert( afs.timers, { form = form, counter = 0, oldtime = curtime, exptime = curtime + timeout, overrun = 0.0 } ) + end + end + self.stop = function ( ) + if not form.timeout then return end + + form.timeout = nil + + for i, v in ipairs( afs.timers ) do + if v.form == form then + table.remove( afs.timers, i ) + return + end + end + end + self.get_state = function ( ) + if not form.timeout then return end + + for i, v in ipairs( afs.timers ) do + local curtime = afs.get_uptime( ) + + if v.form == form then + return { elapsed = curtime - v.oldtime, remain = v.exptime - curtime, overrun = v.overrun, counter = v.counter } + end + end + end + + return self +end + +----------------------------------------------------------------- +-- open detached formspec with session-based state table +----------------------------------------------------------------- + +minetest.create_form = function ( meta, player_name, formspec, on_close ) + -- short circuit whenever required params are missing + if not player_name or not formspec or not on_close then return end + + if type( player_name ) ~= "string" then + player_name = player_name:get_player_name( ) + end + + local form = afs.forms[ player_name ] + + -- trigger previous callback before formspec closure + if form then + minetest.get_form_timer( player_name, form.name ).stop( ) + form.on_close( form.meta, form.player, { quit = minetest.FORMSPEC_SIGPROC } ) + afs.stats:on_close( ) + end + + -- start new session when opening formspec + afs.session_id = afs.session_id + 1 + + form = { } + form.id = afs.session_id + form.name = minetest.get_password_hash( player_name, afs.session_seed + afs.session_id ) + form.player = minetest.get_player_by_name( player_name ) + form.origin = string.match( debug.getinfo( 2 ).source, "^@.*[/\\]mods[/\\](.-)[/\\]" ) or "?" + form.on_close = on_close + form.meta = meta or { } + form.oldtime = math.floor( afs.get_uptime( ) ) + form.newtime = form.oldtime + + -- hidden elements only provide default, initial values + -- for state table and are always stripped afterward + formspec = string.gsub( formspec, "hidden%[(.-);(.-)%]", function( key, value ) + if form.meta[ key ] == nil then + local data, type = string.match( value, "^(.-);(.-)$" ) + + -- parse according to specified data type + if type == "string" or type == "" then + form.meta[ key ] = data + elseif type == "number" then + form.meta[ key ] = tonumber( data ) + elseif type == "boolean" then + form.meta[ key ] = ( { ["1"] = true, ["0"] = false, ["true"] = true, ["false"] = false } )[ data ] + elseif type == nil then + form.meta[ key ] = value -- default to string, if no data type specified + end + end + return "" -- strip hidden elements prior to showing formspec + end ) + + afs.forms[ player_name ] = form + afs.stats:on_open( ) + minetest.show_formspec( player_name, form.name, formspec ) + + return form.name +end + +minetest.update_form = function ( player, formspec ) + local pname = type( player ) == "string" and player or player:get_player_name( ) + local form = afs.forms[ pname ] + + if form then + minetest.show_formspec( pname, form.name, formspec ) + end +end + +minetest.destroy_form = function ( player ) + local pname = type( player ) == "string" and player or player:get_player_name( ) + local form = afs.forms[ pname ] + + if form then + minetest.close_formspec( pname, form.name ) + minetest.get_form_timer( pname ):stop( ) + + form.on_close( form.meta, form.player, { quit = minetest.FORMSPEC_SIGPROC } ) + + afs.stats:on_close( ) + afs.forms[ pname ] = nil + end +end + +----------------------------------------------------------------- +-- trigger callbacks after unexpected formspec closure +----------------------------------------------------------------- + +minetest.register_on_leaveplayer( function( player, is_timeout ) + local pname = player:get_player_name( ) + local form = afs.forms[ pname ] + + if form then + minetest.get_form_timer( pname, form.name ).stop( ) + + form.newtime = os.time( ) + form.on_close( form.meta, form.player, { quit = minetest.FORMSPEC_SIGQUIT } ) + + afs.stats:on_close( ) + afs.forms[ pname ] = nil + end +end ) + +minetest.register_on_dieplayer( function( player ) + local pname = player:get_player_name( ) + local form = afs.forms[ pname ] + + if form then + minetest.get_form_timer( pname, form.name ).stop( ) + + form.newtime = os.time( ) + form.on_close( form.meta, form.player, { quit = minetest.FORMSPEC_SIGKILL } ) + + afs.stats:on_close( ) + afs.forms[ pname ] = nil + end +end ) + +minetest.register_on_shutdown( function( ) + for _, form in pairs( afs.forms ) do + minetest.get_form_timer( form.player:get_player_name( ), form.name ).stop( ) + + form.newtime = os.time( ) + form.on_close( form.meta, form.player, { quit = minetest.FORMSPEC_SIGTERM } ) + + afs.stats:on_close( ) + end + afs.forms = { } +end ) + +----------------------------------------------------------------- +-- display realtime information about form sessions +----------------------------------------------------------------- + +minetest.register_chatcommand( "fs", { + description = "Display realtime information about form sessions", + privs = { server = true }, + func = function( pname, param ) + local page_idx = 1 + local page_size = 10 + local sorted_forms + + local get_sorted_forms = function( ) + local f = { } + for k, v in pairs( afs.forms ) do + table.insert( f, v ) + end + table.sort( f, function( a, b ) return a.id < b.id end ) + return f + end + local get_formspec = function( ) + local uptime = math.floor( afs.get_uptime( ) ) + + local formspec = "size[9.5,7.5]" + .. default.gui_bg + .. default.gui_bg_img + + .. "label[0.1,6.7;ActiveFormspecs v2.4]" + .. string.format( "label[0.1,0.0;%s]label[0.1,0.5;%d min %02d sec]", + minetest.colorize( "#888888", "uptime:" ), math.floor( uptime / 60 ), uptime % 60 ) + .. string.format( "label[5.6,0.0;%s]label[5.6,0.5;%d]", + minetest.colorize( "#888888", "active" ), afs.stats.active ) + .. string.format( "label[6.9,0.0;%s]label[6.9,0.5;%d]", + minetest.colorize( "#888888", "opened" ), afs.stats.opened ) + .. string.format( "label[8.2,0.0;%s]label[8.2,0.5;%d]", + minetest.colorize( "#888888", "closed" ), afs.stats.closed ) + + .. string.format( "label[0.5,1.5;%s]label[3.5,1.5;%s]label[6.9,1.5;%s]label[8.2,1.5;%s]", + minetest.colorize( "#888888", "player" ), + minetest.colorize( "#888888", "origin" ), + minetest.colorize( "#888888", "idletime" ), + minetest.colorize( "#888888", "lifetime" ) + ) + + .. "box[0,1.2;9.2,0.1;#111111]" + .. "box[0,6.2;9.2,0.1;#111111]" + + local num = 0 + for idx = ( page_idx - 1 ) * page_size + 1, math.min( page_idx * page_size, #sorted_forms ) do + local form = sorted_forms[ idx ] + + local player_name = form.player:get_player_name( ) + local lifetime = uptime - form.oldtime + local idletime = uptime - form.newtime + + local vert = 2.0 + num * 0.5 + + formspec = formspec + .. string.format( "button[0.1,%0.1f;0.5,0.3;del:%s;x]", vert + 0.1, player_name ) + .. string.format( "label[0.5,%0.1f;%s]", vert, player_name ) + .. string.format( "label[3.5,%0.1f;%s]", vert, form.origin ) + .. string.format( "label[6.9,%0.1f;%dm %02ds]", vert, math.floor( idletime / 60 ), idletime % 60 ) + .. string.format( "label[8.2,%0.1f;%dm %02ds]", vert, math.floor( lifetime / 60 ), lifetime % 60 ) + num = num + 1 + end + + formspec = formspec + .. "button[6.4,6.5;1,1;prev;<<]" + .. string.format( "label[7.4,6.7;%d of %d]", page_idx, math.max( 1, math.ceil( #sorted_forms / page_size ) ) ) + .. "button[8.4,6.5;1,1;next;>>]" + + return formspec + end + local on_close = function( meta, player, fields ) + if fields.quit == minetest.FORMSPEC_SIGTIME then + sorted_forms = get_sorted_forms( ) + minetest.update_form( pname, get_formspec( ) ) + + elseif fields.prev and page_idx > 1 then + page_idx = page_idx - 1 + minetest.update_form( pname, get_formspec( ) ) + + elseif fields.next and page_idx < #sorted_forms / page_size then + page_idx = page_idx + 1 + minetest.update_form( pname, get_formspec( ) ) + + else + local player_name = string.match( next( fields, nil ), "del:(.+)" ) + if player_name and afs.forms[ player_name ] then + minetest.destroy_form( player_name ) + end + end + end + + sorted_forms = get_sorted_forms( ) + + minetest.create_form( nil, pname, get_formspec( ), on_close ) + minetest.get_form_timer( pname ).start( 1 ) + + return true + end, +} ) diff --git a/games/default/files/Other/formspecs/mod.conf b/games/default/files/Other/formspecs/mod.conf new file mode 100644 index 000000000..30b2874ff --- /dev/null +++ b/games/default/files/Other/formspecs/mod.conf @@ -0,0 +1,4 @@ +name = formspecs +title = ActiveFormspecs +author = sorcerykid +license = MIT diff --git a/games/default/files/Other/formspecs/samples.lua b/games/default/files/Other/formspecs/samples.lua new file mode 100644 index 000000000..145366027 --- /dev/null +++ b/games/default/files/Other/formspecs/samples.lua @@ -0,0 +1,96 @@ +------------------------------------------------------------------------------------------- +-- How to try this example: +-- 1) Move this file into a new "afs_test" directory under mods and rename it "init.lua". +-- 2) Create a "depends.txt" file in the new directory with the following lines of text: +-- nyancat +-- formspecs +-- 3) Launch your Minetest server and enable the "afs_test" mod. Then, login as usual! +------------------------------------------------------------------------------------------- + +minetest.register_privilege( "uptime", "View the uptime of the server interactively" ) + +local get_nyancat_formspec = function( meta ) + local uptime = minetest.get_server_uptime( ) + local formspec = "size[4,3]" + .. default.gui_bg_img + .. string.format( "label[0.5,0.5;%s %0.1f %s]", + minetest.colorize( "#FFFF00", "Server Uptime:" ), + meta.is_minutes == true and uptime / 60 or uptime, + meta.is_minutes == true and "mins" or "secs" + ) + .. "checkbox[0.5,1;is_minutes;Show Minutes;" .. tostring( meta.is_minutes ) .. "]" + .. "button[0.5,2;2.5,1;update;Refresh]" + .. "hidden[view_count;1;number]" + .. "hidden[view_limit;10;number]" -- limit the number of refreshes! + return formspec +end + +minetest.override_item( "nyancat:nyancat", { + description = "System Monitor", + + on_open = function( meta, player ) + local player_name = player:get_player_name( ) + + if meta.is_minutes == nil then meta.is_minutes = true end + + if minetest.check_player_privs( player, "uptime" ) then + return get_nyancat_formspec( meta ) + else + minetest.chat_send_player( player_name, "Your privileges are insufficient." ) + end + end, + on_close = function( meta, player, fields ) + local player_name = player:get_player_name( ) + + if not minetest.check_player_privs( player, "uptime" ) then return end + + if fields.update then + if meta.view_count == meta.view_limit then + minetest.destroy_form( player_name ) + minetest.chat_send_player( player_name, "You've exceeded the refresh limit." ) + else + meta.view_count = meta.view_count + 1 + minetest.update_form( player_name, get_nyancat_formspec( meta ) ) + end + + elseif fields.is_minutes then + meta.is_minutes = fields.is_minutes == "true" + minetest.update_form( player_name, get_nyancat_formspec( meta ) ) + end + end +} ) + +minetest.register_chatcommand( "uptime", { + description = "View the uptime of the server interactively", + func = function( player_name, param ) + local is_refresh = true + + local get_formspec = function( ) + local uptime = minetest.get_server_uptime( ) + + local formspec = "size[4,2]" + .. default.gui_bg_img + .. string.format( "label[0.5,0.5;%s %d secs]", + minetest.colorize( "#FFFF00", "Server Uptime:" ), uptime + ) + .. "checkbox[0.5,1;is_refresh;Auto Refresh;" .. tostring( is_refresh ) .. "]" + return formspec + end + local on_close = function( meta, player, fields ) + if fields.quit == minetest.FORMSPEC_SIGTIME then + minetest.update_form( player_name, get_formspec( ) ) + + elseif fields.is_refresh then + is_refresh = fields.is_refresh == "true" + if is_refresh == true then + minetest.get_form_timer( player_name ).start( 1 ) + else + minetest.get_form_timer( player_name ).stop( ) + end + end + end + + minetest.create_form( nil, player_name, get_formspec( ), on_close ) + minetest.get_form_timer( player_name ).start( 1 ) + end +} ) diff --git a/games/default/files/Other/modpack.txt b/games/default/files/Other/modpack.txt new file mode 100644 index 000000000..e69de29bb diff --git a/games/default/files/Other/music/depends.txt b/games/default/files/Other/music/depends.txt new file mode 100644 index 000000000..fdf44a0d0 --- /dev/null +++ b/games/default/files/Other/music/depends.txt @@ -0,0 +1 @@ +vote? diff --git a/games/default/files/Other/music/init.lua b/games/default/files/Other/music/init.lua new file mode 100644 index 000000000..c78f6dec3 --- /dev/null +++ b/games/default/files/Other/music/init.lua @@ -0,0 +1,106 @@ + +music={} + + +music.pause_between_songs=minetest.settings:get("music.pause_between_songs") or 10 + +--end config + +music.modpath=minetest.get_modpath("music") +if not music.modpath then + error("music mod folder has to be named 'music'!") +end +--{name, length, gain~1} +music.songs = {} +local sfile, sfileerr=io.open(music.modpath..DIR_DELIM.."songs.txt") +if not sfile then error("Error opening songs.txt: "..sfileerr) end +for line in sfile:lines() do + if line~="" and line[1]~="#" then + local name, timeMinsStr, timeSecsStr, gainStr, title = string.match(line, "^(%S+)%s+(%d+):([%d%.]+)%s+([%d%.]+)%s*(.*)$") + local timeMins, timeSecs, gain = tonumber(timeMinsStr), tonumber(timeSecsStr), tonumber(gainStr) + if title=="" then title = name end + if name and timeMins and timeSecs and gain then + music.songs[#music.songs+1]={name=name, length=timeMins*60+timeSecs, lengthhr=timeMinsStr..":"..timeSecsStr, gain=gain, title=title} + else + minetest.log("warning", "[music] Misformatted song entry in songs.txt: "..line) + end + end +end +sfile:close() + +if #music.songs==0 then + print("[music]no songs registered, not doing anything") + return +end + +music.storage = minetest.get_mod_storage() + +music.handles={} + +music.playing=false +music.id_playing=nil +music.song_time_left=nil +music.time_next=10 --sekunden +music.id_last_played=nil + +minetest.register_globalstep(function(dtime) + if music.playing then + if music.song_time_left<=0 then + music.stop_song() + music.time_next=music.pause_between_songs + else + music.song_time_left=music.song_time_left-dtime + end + elseif music.time_next then + if music.time_next<=0 then + music.next_song() + else + music.time_next=music.time_next-dtime + end + end +end) +music.play_song=function(id) + if music.playing then + music.stop_song() + end + local song=music.songs[id] + if not song then return end + for _,player in ipairs(minetest.get_connected_players()) do + local pname=player:get_player_name() + local pvolume=tonumber(music.storage:get_string("vol_"..pname)) + if not pvolume then pvolume=1 end + if pvolume>0 then + local handle = minetest.sound_play(song.name, {to_player=pname, gain=song.gain*pvolume}) + if handle then + music.handles[pname]=handle + end + end + end + music.playing=id + --adding 2 seconds as security + music.song_time_left = song.length + 2 +end +music.stop_song=function() + for pname, handle in pairs(music.handles) do + minetest.sound_stop(handle) + end + music.id_last_played=music.playing + music.playing=nil + music.handles={} + music.time_next=nil +end + +music.next_song=function() + local next + repeat + next=math.random(1,#music.songs) + until #music.songs==1 or next~=music.id_last_played + music.play_song(next) +end + +music.song_human_readable=function(id) + if not tonumber(id) then return "" end + local song=music.songs[id] + if not song then return "" end + return id..": "..song.title.." ["..song.lengthhr.."]" +end \ No newline at end of file diff --git a/games/default/files/Other/music/mod.conf b/games/default/files/Other/music/mod.conf new file mode 100644 index 000000000..f4c3a02c5 --- /dev/null +++ b/games/default/files/Other/music/mod.conf @@ -0,0 +1 @@ +name = music diff --git a/games/default/files/Other/music/readme.txt b/games/default/files/Other/music/readme.txt new file mode 100644 index 000000000..023a54933 --- /dev/null +++ b/games/default/files/Other/music/readme.txt @@ -0,0 +1,44 @@ + +### music Mod for Minetest +(c) 2017 orwell96 +This mod is licensed under the LGPL 2.1 license. + +Adds an easy but powerful background music backend. + +## Usage: + +For all players: +/mvolume +Set your individual music volume or disable background music (/mvolume 0). Saved across server restarts. +/music_list: list available music + +With music privilege: +/music_play : play a song +/music_stop: stop the current song. Unless /music_play or /music_next are invoked, no more music is played +/music_next [time]: Play the next song after [time] seconds, immediately if omitted. + +## Votes: +This mod integrates with the [vote] mod by rubenwardy (https://github.com/minetest-mods/vote) +/vote_music_next - vote to start next song +/vote_music_play - Vote to play certain sing + +## Music credits: + +StrangelyBeautifulShort 3:01 0.7 +AvalonShort 2:58 1.4 +EtherealShort 3:04 0.7 +FarawayShort 3:05 0.7 +-> Music from [ambience] mod +-> Author is Amethystium . + +eastern_feeling 3:51 1.0 +-> created by Jordach. It can be found in the BFD subgame. License is GPLv3 (license of BFD). + +bensound_deepblue 4:48 1.0 +bensound_ofeliasdream 4:59 1.0 +bensound_slowmotion 3:26 1.0 +-> (c) bensound (AFAIK public domain) + +rainymemory 2:10 1.0 +anonnp4014 2:30 1.6 +-> (c) Deemo collection (game music collection) diff --git a/games/default/files/Other/music/settingtypes.txt b/games/default/files/Other/music/settingtypes.txt new file mode 100644 index 000000000..72b8008e5 --- /dev/null +++ b/games/default/files/Other/music/settingtypes.txt @@ -0,0 +1,3 @@ +# How many seconds MPD waits before starting the next song +music_pause_between_songs (Pause between songs) int 30 0 3600 + diff --git a/games/default/files/Other/music/songs.txt b/games/default/files/Other/music/songs.txt new file mode 100644 index 000000000..ac9d70a68 --- /dev/null +++ b/games/default/files/Other/music/songs.txt @@ -0,0 +1,2 @@ +#File Name Time Gain Title +rainymemory 2:10 1.0 Rainy Memory diff --git a/games/default/files/Other/music/sounds/rainymemory.ogg b/games/default/files/Other/music/sounds/rainymemory.ogg new file mode 100644 index 000000000..bf5de805b Binary files /dev/null and b/games/default/files/Other/music/sounds/rainymemory.ogg differ diff --git a/games/default/files/Other/nokill/init.lua b/games/default/files/Other/nokill/init.lua new file mode 100644 index 000000000..c39f38389 --- /dev/null +++ b/games/default/files/Other/nokill/init.lua @@ -0,0 +1,34 @@ +-- Prevent certain players from killing / PvP + +minetest.register_privilege("nokill", "Per-player hit prevention") + +-- The admin always has all privileges, including the hit prevention +-- so we track the admin as a special case +local ADMIN = minetest.setting_get("name") + +local ALLOWPUNCH = false +local DENYPUNCH = true + +minetest.register_on_punchplayer(function(target, hitter, time_from_last_punch, tool_capabilities, dir, damage) + if not hitter:is_player() then + return ALLOWPUNCH + end + + local hittername = hitter:get_player_name() + + local preventkill = minetest.check_player_privs(hitter:get_player_name(), {nokill=true}) + local isplayer = target:is_player() + + return isplayer and preventkill and hittername ~= ADMIN +end) + +--[[ Truth study + + PLAYER NOKILL-on DENY + true true true + false true false + true false false + false false false + + Operation: AND +--]] diff --git a/games/default/files/Other/screwdriver/README.txt b/games/default/files/Other/screwdriver/README.txt new file mode 100644 index 000000000..9d39c58c9 --- /dev/null +++ b/games/default/files/Other/screwdriver/README.txt @@ -0,0 +1,13 @@ +Minetest Game mod: screwdriver +============================== +See license.txt for license information. + +License of source code +---------------------- +Originally by RealBadAngel, Maciej Kasatkin (LGPL 2.1) +Various Minetest developers and contributors (LGPL 2.1) + +License of media (textures) +--------------------------- +Created by Gambit (CC BY-SA 3.0): + screwdriver.png diff --git a/games/default/files/Other/screwdriver/init.lua b/games/default/files/Other/screwdriver/init.lua new file mode 100644 index 000000000..035af5e74 --- /dev/null +++ b/games/default/files/Other/screwdriver/init.lua @@ -0,0 +1,171 @@ +screwdriver = {} + +screwdriver.ROTATE_FACE = 1 +screwdriver.ROTATE_AXIS = 2 +screwdriver.disallow = function(pos, node, user, mode, new_param2) + return false +end +screwdriver.rotate_simple = function(pos, node, user, mode, new_param2) + if mode ~= screwdriver.ROTATE_FACE then + return false + end +end + +-- For attached wallmounted nodes: returns true if rotation is valid +-- simplified version of minetest:builtin/game/falling.lua#L148. +local function check_attached_node(pos, rotation) + local d = minetest.wallmounted_to_dir(rotation) + local p2 = vector.add(pos, d) + local n = minetest.get_node(p2).name + local def2 = minetest.registered_nodes[n] + if def2 and not def2.walkable then + return false + end + return true +end + +screwdriver.rotate = {} + +local facedir_tbl = { + [screwdriver.ROTATE_FACE] = { + [0] = 1, [1] = 2, [2] = 3, [3] = 0, + [4] = 5, [5] = 6, [6] = 7, [7] = 4, + [8] = 9, [9] = 10, [10] = 11, [11] = 8, + [12] = 13, [13] = 14, [14] = 15, [15] = 12, + [16] = 17, [17] = 18, [18] = 19, [19] = 16, + [20] = 21, [21] = 22, [22] = 23, [23] = 20, + }, + [screwdriver.ROTATE_AXIS] = { + [0] = 4, [1] = 4, [2] = 4, [3] = 4, + [4] = 8, [5] = 8, [6] = 8, [7] = 8, + [8] = 12, [9] = 12, [10] = 12, [11] = 12, + [12] = 16, [13] = 16, [14] = 16, [15] = 16, + [16] = 20, [17] = 20, [18] = 20, [19] = 20, + [20] = 0, [21] = 0, [22] = 0, [23] = 0, + }, +} + +screwdriver.rotate.facedir = function(pos, node, mode) + local rotation = node.param2 % 32 -- get first 5 bits + local other = node.param2 - rotation + rotation = facedir_tbl[mode][rotation] or 0 + return rotation + other +end + +screwdriver.rotate.colorfacedir = screwdriver.rotate.facedir + +local wallmounted_tbl = { + [screwdriver.ROTATE_FACE] = {[2] = 5, [3] = 4, [4] = 2, [5] = 3, [1] = 0, [0] = 1}, + [screwdriver.ROTATE_AXIS] = {[2] = 5, [3] = 4, [4] = 2, [5] = 1, [1] = 0, [0] = 3} +} + +screwdriver.rotate.wallmounted = function(pos, node, mode) + local rotation = node.param2 % 8 -- get first 3 bits + local other = node.param2 - rotation + rotation = wallmounted_tbl[mode][rotation] or 0 + if minetest.get_item_group(node.name, "attached_node") ~= 0 then + -- find an acceptable orientation + for i = 1, 5 do + if not check_attached_node(pos, rotation) then + rotation = wallmounted_tbl[mode][rotation] or 0 + else + break + end + end + end + return rotation + other +end + +screwdriver.rotate.colorwallmounted = screwdriver.rotate.wallmounted + +-- Handles rotation +screwdriver.handler = function(itemstack, user, pointed_thing, mode, uses) + if pointed_thing.type ~= "node" then + return + end + + local pos = pointed_thing.under + + if minetest.is_protected(pos, user:get_player_name()) then + minetest.record_protection_violation(pos, user:get_player_name()) + return + end + + local node = minetest.get_node(pos) + local ndef = minetest.registered_nodes[node.name] + if not ndef then + return itemstack + end + -- can we rotate this paramtype2? + local fn = screwdriver.rotate[ndef.paramtype2] + if not fn and not ndef.on_rotate then + return itemstack + end + + local should_rotate = true + local new_param2 + if fn then + new_param2 = fn(pos, node, mode) + else + new_param2 = node.param2 + end + + -- Node provides a handler, so let the handler decide instead if the node can be rotated + if ndef.on_rotate then + -- Copy pos and node because callback can modify it + local result = ndef.on_rotate(vector.new(pos), + {name = node.name, param1 = node.param1, param2 = node.param2}, + user, mode, new_param2) + if result == false then -- Disallow rotation + return itemstack + elseif result == true then + should_rotate = false + end + elseif ndef.on_rotate == false then + return itemstack + elseif ndef.can_dig and not ndef.can_dig(pos, user) then + return itemstack + end + + if should_rotate and new_param2 ~= node.param2 then + node.param2 = new_param2 + minetest.swap_node(pos, node) + minetest.check_for_falling(pos) + end + + if not (creative and creative.is_enabled_for + and creative.is_enabled_for(user:get_player_name())) then + itemstack:add_wear(65535 / ((uses or 200) - 1)) + end + + return itemstack +end + +-- Screwdriver +minetest.register_tool("screwdriver:screwdriver", { + description = "Rotate Tool (left-click rotates face, right-click rotates axis)", + inventory_image = "rotate2.png", + wield_image ="none.png", + on_use = function(itemstack, user, pointed_thing) + screwdriver.handler(itemstack, user, pointed_thing, screwdriver.ROTATE_FACE, 200) + return itemstack + end, + on_place = function(itemstack, user, pointed_thing) + screwdriver.handler(itemstack, user, pointed_thing, screwdriver.ROTATE_AXIS, 200) + return itemstack + end, +}) + + +minetest.register_craft({ + output = "screwdriver:screwdriver", + recipe = { + {"default:steel_ingot"}, + {"group:stick"} + } +}) + +minetest.register_alias("screwdriver:screwdriver1", "screwdriver:screwdriver") +minetest.register_alias("screwdriver:screwdriver2", "screwdriver:screwdriver") +minetest.register_alias("screwdriver:screwdriver3", "screwdriver:screwdriver") +minetest.register_alias("screwdriver:screwdriver4", "screwdriver:screwdriver") diff --git a/games/default/files/Other/screwdriver/license.txt b/games/default/files/Other/screwdriver/license.txt new file mode 100644 index 000000000..d9b721bb9 --- /dev/null +++ b/games/default/files/Other/screwdriver/license.txt @@ -0,0 +1,50 @@ +License of source code +---------------------- + +GNU Lesser General Public License, version 2.1 +Copyright (C) 2013-2016 RealBadAngel, Maciej Kasatkin +Copyright (C) 2013-2016 Various Minetest developers and contributors + +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 2.1 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: +https://www.gnu.org/licenses/old-licenses/lgpl-2.1.html + + +Licenses of media (textures) +---------------------------- + +Attribution-ShareAlike 3.0 Unported (CC BY-SA 3.0) +Copyright (C) 2013-2016 Gambit + +You are free to: +Share — copy and redistribute the material in any medium or format. +Adapt — remix, transform, and build upon the material for any purpose, even commercially. +The licensor cannot revoke these freedoms as long as you follow the license terms. + +Under the following terms: + +Attribution — You must give appropriate credit, provide a link to the license, and +indicate if changes were made. You may do so in any reasonable manner, but not in any way +that suggests the licensor endorses you or your use. + +ShareAlike — If you remix, transform, or build upon the material, you must distribute +your contributions under the same license as the original. + +No additional restrictions — You may not apply legal terms or technological measures that +legally restrict others from doing anything the license permits. + +Notices: + +You do not have to comply with the license for elements of the material in the public +domain or where your use is permitted by an applicable exception or limitation. +No warranties are given. The license may not give you all of the permissions necessary +for your intended use. For example, other rights such as publicity, privacy, or moral +rights may limit how you use the material. + +For more details: +http://creativecommons.org/licenses/by-sa/3.0/ diff --git a/games/default/files/Other/worldedge/README.md b/games/default/files/Other/worldedge/README.md new file mode 100644 index 000000000..cebff04b3 --- /dev/null +++ b/games/default/files/Other/worldedge/README.md @@ -0,0 +1,13 @@ +worldedge +========= + +A Minetest Mod that teleports you to the other side of the map when you reach its edge. +This gives the illusion that that world is round and you can walk all the way around. + +You can change the worlds edge by changing the first variable in init.lua + local edge = 30000 + +License of code: DWYWPL + +Written by Amaz +Modified by Don diff --git a/games/default/files/Other/worldedge/depends.txt b/games/default/files/Other/worldedge/depends.txt new file mode 100644 index 000000000..e69de29bb diff --git a/games/default/files/Other/worldedge/description.txt b/games/default/files/Other/worldedge/description.txt new file mode 100644 index 000000000..167221328 --- /dev/null +++ b/games/default/files/Other/worldedge/description.txt @@ -0,0 +1 @@ +Allows you to limit the size of your world. diff --git a/games/default/files/Other/worldedge/init.lua b/games/default/files/Other/worldedge/init.lua new file mode 100644 index 000000000..2dd3291a8 --- /dev/null +++ b/games/default/files/Other/worldedge/init.lua @@ -0,0 +1,147 @@ +-------------- +-- TODO: Check for terrain height + +-- Defines the edge of a world +local edge = tonumber(minetest.settings:get("world_edge")) or 30000 +-- Radius which should be checked for a good teleportation place +local radius = 2 +-------------- + +if minetest.settings:get_bool("log_mods") then + minetest.log("action", "World edge: " .. edge) +end + +local count = 0 +local waiting_list = {} +--[[ Explanation of waiting_list table + Index = Player name + Value = { + player = Player to teleport + pos = Destination + obj = Attacked entity + notified = When the player must wait longer... + } +]] + +minetest.register_globalstep(function(dtime) + count = count + dtime + if count < 3 then + return + end + count = 0 + + for k, v in pairs(waiting_list) do + if v.player and v.player:is_player() then + local pos = get_surface_pos(v.pos) + if pos then + v.obj:setpos(pos) + minetest.after(0.2, function(p, o) + p:set_detach() + o:remove() + end, v.player, v.obj) + waiting_list[k] = nil + elseif not v.notified then + v.notified = true + minetest.chat_send_player(k, "Sorry, we have not found a free place yet. Please be patient.") + end + else + v.obj:remove() + waiting_list[k] = nil + end + end + + local newedge = edge - 5 + -- Check if the players are near the edge and teleport them + local players = minetest.get_connected_players() + for i, player in ipairs(players) do + local name = player:get_player_name() + if not waiting_list[name] then + local pos = vector.round(player:getpos()) + local newpos = nil + if pos.x >= edge then + newpos = {x = -newedge, y = 10, z = pos.z} + elseif pos.x <= -edge then + newpos = {x = newedge, y = 10, z = pos.z} + end + + if pos.z >= edge then + newpos = {x = pos.x, y = 10, z = -newedge} + elseif pos.z <= -edge then + newpos = {x = pos.x, y = 10, z = newedge} + end + + -- Teleport the player + if newpos then + minetest.chat_send_player(name, "Please wait a few seconds. We will teleport you soon.") + local obj = minetest.add_entity(newpos, "worldedge:lock") + player:set_attach(obj, "", {x=0, y=0, z=0}, {x=0, y=0, z=0}) + waiting_list[name] = { + player = player, + pos = newpos, + obj = obj + } + obj:setpos(newpos) + end + end + end +end) + +function get_surface_pos(pos) + local minp = { + x = pos.x - radius - 1, + y = -10, + z = pos.z - radius - 1 + } + local maxp = { + x = pos.x + radius - 1, + y = 50, + z = pos.z + radius - 1 + } + + local c_air = minetest.get_content_id("air") + local c_ignore = minetest.get_content_id("ignore") + + local vm = minetest.get_voxel_manip() + local emin, emax = vm:read_from_map(minp, maxp) + local area = VoxelArea:new{MinEdge = emin, MaxEdge = emax} + local data = vm:get_data() + + local seen_air = false + local deepest_place = vector.new(pos) + deepest_place.y = 50 + + for x = minp.x, maxp.x do + for z = minp.z, maxp.z do + local solid = 0 + for y = deepest_place.y, -10, -1 do + local node = data[area:index(x, y, z)] + if y < deepest_place.y and node == c_air then + deepest_place = vector.new(x, y, z) + seen_air = true + end + if solid > 5 then + -- Do not find caves! + break + end + if node ~= c_air and node ~= c_ignore then + solid = solid + 1 + end + end + end + end + + if seen_air then + return deepest_place + else + return false + end +end + +minetest.register_entity("worldedge:lock", { + initial_properties = { + is_visible = false + }, + on_activate = function(staticdata, dtime_s) + --self.object:set_armor_groups({immortal = 1}) + end +}) diff --git a/games/default/files/Other/worldedge/licence.txt b/games/default/files/Other/worldedge/licence.txt new file mode 100644 index 000000000..f50419b04 --- /dev/null +++ b/games/default/files/Other/worldedge/licence.txt @@ -0,0 +1,13 @@ +DO WHAT YOU WANT TO PUBLIC LICENSE +or abbreviated DWYWPL + +December 2nd 2015 +License Copyright (C) 2015 Michael Tomaino (PlatinumArts@gmail.com) +www.sandboxgamemaker.com/DWYWPL/ + +DO WHAT YOU WANT TO PUBLIC LICENSE +TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION + +1. You are allowed to do whatever you want to with what content is using this license. +2. This content is provided 'as-is', without any express or implied warranty. In no event +will the authors be held liable for any damages arising from the use of this content. diff --git a/games/default/files/Other/worldedge/mod.conf b/games/default/files/Other/worldedge/mod.conf new file mode 100644 index 000000000..ed5ed809b --- /dev/null +++ b/games/default/files/Other/worldedge/mod.conf @@ -0,0 +1 @@ +name = worldedge diff --git a/games/default/files/Other/worldedge/screenshot.png b/games/default/files/Other/worldedge/screenshot.png new file mode 100644 index 000000000..4c5a208e7 Binary files /dev/null and b/games/default/files/Other/worldedge/screenshot.png differ diff --git a/games/default/files/Player/character_creator/TextureTutorial.png b/games/default/files/Player/character_creator/TextureTutorial.png new file mode 100644 index 000000000..80da43a99 Binary files /dev/null and b/games/default/files/Player/character_creator/TextureTutorial.png differ diff --git a/games/default/files/Player/character_creator/depends.txt b/games/default/files/Player/character_creator/depends.txt new file mode 100644 index 000000000..b3d8d7cea --- /dev/null +++ b/games/default/files/Player/character_creator/depends.txt @@ -0,0 +1,5 @@ +3d_armor? +multiskin? +inventory_plus? +unified_inventory? +skinsdb? diff --git a/games/default/files/Player/character_creator/description.txt b/games/default/files/Player/character_creator/description.txt new file mode 100644 index 000000000..86979574c --- /dev/null +++ b/games/default/files/Player/character_creator/description.txt @@ -0,0 +1 @@ +Allows the creation of customized character skins inside the game. \ No newline at end of file diff --git a/games/default/files/Player/character_creator/init.lua b/games/default/files/Player/character_creator/init.lua new file mode 100644 index 000000000..a8ae2829c --- /dev/null +++ b/games/default/files/Player/character_creator/init.lua @@ -0,0 +1,390 @@ +character_creator = {} +character_creator.skins = dofile(minetest.get_modpath("character_creator") .. "/skins.lua") + +local skinsdb +if minetest.get_modpath("skinsdb") and minetest.global_exists("skins") then + skinsdb = skins +end + +local skin_default = { + gender = "Male", + height = 4, + width = 4, + face = "eyesblack.png", + skin = "skinwhite.png", + tshirt = "shirtwhite.png", + shoes = "hairblack.png", + pants = "pantsblue.png", +} + +local skins = character_creator.skins +local skins_array = {} + +minetest.after(0, function() + local function associative_to_array(associative) + local array = {} + for key in pairs(associative) do + table.insert(array, key) + end + return array + end + + skins_array = { + skin = associative_to_array(skins.skin), + tshirt = associative_to_array(skins.tshirt), + shoes = associative_to_array(skins.shoes), + pants = associative_to_array(skins.pants), + face = associative_to_array(skins.face), + + } +end) + +-- Saved skins_array indexes in this +local skin_indexes = {} + +local function show_formspec(player) +local indexes = skin_indexes[player] + +local formspec = "size[8,7.5]" + +.. default.gui_bg +.. default.gui_bg_img +.. "" + + -- Skin + +-- .. "image_button[3.5,1;1,1;gui_hotbar_selected.png^".. skins_array.skin[indexes.skin]..";skin;]" +-- .. "image_button[1.5,1;1,1;gui_hotbar_selected.png^gauche.png;skin_back;]" +-- .. "image_button[5.5,1;1,1;gui_hotbar_selected.png^droite.png;skin_next;]" + + -- Eyes + +.. "image_button[3.5,1.5;1,1;gui_hotbar_selected.png^".. skins_array.face[indexes.face]..";face;]" +.. "image_button[1.5,1.5;1,1;gui_hotbar_selected.png^gauche.png;face_back;]" +.. "image_button[5.5,1.5;1,1;gui_hotbar_selected.png^droite.png;face_next;]" + + -- T-Shirt + +.. "image_button[3.5,2.5;1,1;gui_hotbar_selected.png^".. skins_array.tshirt[indexes.tshirt]..";tshirt;]" +.. "image_button[1.5,2.5;1,1;gui_hotbar_selected.png^gauche.png;tshirt_back;]" +.. "image_button[5.5,2.5;1,1;gui_hotbar_selected.png^droite.png;tshirt_next;]" + + -- Pants + +.. "image_button[3.5,3.5;1,1;gui_hotbar_selected.png^".. skins_array.pants[indexes.pants]..";pants;]" +.. "image_button[1.5,3.5;1,1;gui_hotbar_selected.png^gauche.png;pants_back;]" +.. "image_button[5.5,3.5;1,1;gui_hotbar_selected.png^droite.png;pants_next;]" + + -- Shoes + +.. "image_button[3.5,4.5;1,1;gui_hotbar_selected.png^".. skins_array.shoes[indexes.shoes]..";shoes;]" +.. "image_button[1.5,4.5;1,1;gui_hotbar_selected.png^gauche.png;shoes_back;]" +.. "image_button[5.5,4.5;1,1;gui_hotbar_selected.png^droite.png;shoes_next;]" + + -- Done + +.. "image_button_exit[1.0,6.5;2,1;gui_hotbar_selected.png;main;Back to Game]" + + minetest.show_formspec(player:get_player_name(), "character_creator", formspec) +end + +local function load_skin(player) + skin_indexes[player] = {} + + player:set_attribute("character_creator:gender", skin_default.gender) + player:set_attribute("character_creator:width", skin_default.width) + player:set_attribute("character_creator:height", skin_default.height) + + local function load_data(data_name) + + local key = player:get_attribute("character_creator:" .. data_name) + local index = table.indexof(skins_array[data_name], key) + if index == -1 then + index = table.indexof(skins_array[data_name], skin_default[data_name]) + end + + local indexes = skin_indexes[player] + indexes[data_name] = index + end + + load_data("skin") + load_data("tshirt") + load_data("shoes") + load_data("pants") + load_data("face") + +end + +local function save_skin(player) + local function save_data(data_name) + local indexes = skin_indexes[player] + local index = indexes[data_name] + local key = skins_array[data_name][index] + player:set_attribute("character_creator:" .. data_name, key) + end + + save_data("skin") + save_data("tshirt") + save_data("shoes") + save_data("pants") + save_data("face") + +end + +local function get_texture(player) + local indexes = skin_indexes[player] + local texture = "" + local gender = player:get_attribute("character_creator:gender") + + local skin_key = skins_array.skin[indexes.skin] + local skin = skins.skin[skin_key] + texture = texture .. skin + + local tshirt_key = skins_array.tshirt[indexes.tshirt] + local tshirt = skins.tshirt[tshirt_key] + texture = texture .. "^" .. tshirt + + local pants_key = skins_array.pants[indexes.pants] + local pants = skins.pants[pants_key] + texture = texture .. "^" .. pants + + local shoes_key = skins_array.shoes[indexes.shoes] + local shoes = skins.shoes[shoes_key] + texture = texture .. "^" .. shoes + +local face_key = skins_array.face[indexes.face] + local face = skins.face[face_key] + texture = texture .. "^" .. face + + return texture +end + +local function change_skin(player) + local texture = get_texture(player) + + local width = tonumber(player:get_attribute("character_creator:width")) + local height = tonumber(player:get_attribute("character_creator:height")) + + player:set_properties({ + visual_size = { + x = width, + y = height + } + }) + + local name = player:get_player_name() + + if minetest.get_modpath("multiskin") then + multiskin.layers[name].skin = texture + armor:set_player_armor(player) + multiskin:set_player_textures(player, {textures = {texture}}) + elseif minetest.get_modpath("3d_armor") then + armor.textures[name].skin = texture + armor:set_player_armor(player) + else + player:set_properties({textures = {texture}}) + end + + save_skin(player) +end + +if skinsdb then + --change skin redefinition for skinsdb + function change_skin(player) + local playername = player:get_player_name() + local skinname = "character_creator:"..playername + local skin_obj = skinsdb.get(skinname) or skinsdb.new(skinname) + skin_obj:set_meta("format", "1.0") + skin_obj:set_meta("visual_size_x", tonumber(player:get_attribute("character_creator:width"))) + skin_obj:set_meta("visual_size_y", tonumber(player:get_attribute("character_creator:height"))) + skin_obj:apply_skin_to_player(player) + skinsdb.assign_player_skin(player, "character_creator:"..playername) + save_skin(player) + end +end + +minetest.register_on_joinplayer(function(player) + load_skin(player) + if skinsdb then + local playername = player:get_player_name() + local skinname = "character_creator:"..playername + local skin_obj = skinsdb.get(skinname) or skinsdb.new(skinname) + -- redefinitions + function skin_obj:set_skin(player) + if not player or not skin_indexes[player] then + return -- not loaded or disconnected + end + change_skin(player) + show_formspec(player) + end + function skin_obj:get_texture() + return get_texture(minetest.get_player_by_name(self:get_meta("playername"))) + end + + -- set data + skin_obj:set_preview("inventory_plus_character_creator.png") + skin_obj:set_meta("name","Character Creator") + --skin_obj:set_meta("author", "???") + skin_obj:set_meta("license", "MIT / CC-BY-SA 3.0 Unported") + skin_obj:set_meta("playername",playername) + --check if active and start the update (avoid race condition for both register_on_joinplayer) + if skinsdb.get_player_skin(player):get_key() == skinname then + minetest.after(0, change_skin, player) + end + else + minetest.after(0, change_skin, player) + end +end) + +minetest.register_on_leaveplayer(function(player) + if skinsdb then + local skinname = "character_creator:"..player:get_player_name() + skinsdb.meta[skinname] = nil + end + skin_indexes[player] = nil +end) + +local skin_temp = {} +minetest.register_on_player_receive_fields(function(player, formname, fields) + if formname ~= "character_creator" then + return + end + + local indexes = skin_indexes[player] + if not skin_temp[player] then + skin_temp[player] = { + gender = player:get_attribute("character_creator:gender"), + width = player:get_attribute("character_creator:width"), + height = player:get_attribute("character_creator:height"), + indexes = table.copy(indexes) + } + end + + -- Gender + do + if fields.male then + player:set_attribute("character_creator:gender", "Male") + player:set_attribute("character_creator:width", 4) + player:set_attribute("character_creator:height", 4) + end + + if fields.female then + player:set_attribute("character_creator:gender", "Female") + player:set_attribute("character_creator:width", 4) + player:set_attribute("character_creator:height", 4) + end + end + + -- Height + do + local height = tonumber(player:get_attribute("character_creator:height")) + + if fields.taller and height < 1.25 then + player:set_attribute("character_creator:height", height + 0.05) + end + + if fields.shorter and height > 0.75 then + player:set_attribute("character_creator:height", height - 0.05) + end + end + + -- Width + do + local width = tonumber(player:get_attribute("character_creator:width")) + + if fields.wider and width < 1.25 then + player:set_attribute("character_creator:width", width + 0.05) + end + + if fields.thinner and width > 0.75 then + player:set_attribute("character_creator:width", width - 0.05) + end + end + + -- Switch skin + do + local function switch_skin(data_name, next_index) + local index = indexes[data_name] + next_index + local max = #skins_array[data_name] + + if index == 0 then + index = max + elseif index == (max + 1) then + index = 1 + end + + indexes[data_name] = index + end + + for field in pairs(fields) do + if field:find("_back$") then + local data_name = field:match("(.+)_back$") + switch_skin(data_name, -1) + elseif field:find("_next$") then + local data_name = field:match("(.+)_next$") + switch_skin(data_name, 1) + end + end + end + + -- Close or update + do + local quit = false + + if fields.cancel then + local temp = skin_temp[player] + player:set_attribute("character_creator:gender", temp.gender) + player:set_attribute("character_creator:width", temp.width) + player:set_attribute("character_creator:height", temp.height) + skin_indexes[player] = table.copy(temp.indexes) + skin_temp[player] = nil + quit = true + elseif fields.quit then + skin_temp[player] = nil + quit = true + end + + if not quit then + show_formspec(player) + end + end + change_skin(player) +end) + +minetest.register_chatcommand("skin", { + func = function(name) + minetest.after(0.5, function() + local player = minetest.get_player_by_name(name) + if player then + show_formspec(player) + end + end) + end +}) + +minetest.register_chatcommand("say", { + params = "", + description = "Send text to chat", + privs = {talk = true}, + func = function( _ , text) + minetest.chat_send_all(text) + return true, "Text was sent successfully" + end, +}) + +if minetest.global_exists("unified_inventory") then + unified_inventory.register_button("character_creator", { + type = "image", + image = "inventory_plus_character_creator.png", + action = show_formspec + }) +elseif minetest.global_exists("inventory_plus") then + minetest.register_on_joinplayer(function(player) + inventory_plus.register_button(player, "character_creator", "Skin") + end) + minetest.register_on_player_receive_fields(function(player, _, fields) + if fields.character_creator then + show_formspec(player) + end + end) + end diff --git a/games/default/files/Player/character_creator/license.txt b/games/default/files/Player/character_creator/license.txt new file mode 100644 index 000000000..3fe225cd5 --- /dev/null +++ b/games/default/files/Player/character_creator/license.txt @@ -0,0 +1,52 @@ +License of source code +---------------------- + +MIT License + +Copyright (c) 2017 Rui + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. + + +License of textures +-------------------------------------- + +Attribution-ShareAlike 3.0 Unported (CC BY-SA 3.0) + +Copyright (C) 2017 Voxelands http://www.voxelands.com/ +Copyright (C) 2017 darkrose +Copyright (C) 2017 sdzen + +You are free to: +Share - copy and redistribute the material in any medium or format +Adapt - remix, transform, and build upon the material +for any purpose, even commercially. +The licensor cannot revoke these freedoms as long as you follow the license terms. + +Under the following terms: +Attribution - You must give appropriate credit, provide a link to the license, and indicate if changes were made. You may do so in any reasonable manner, but not in any way that suggests the licensor endorses you or your use. +ShareAlike - If you remix, transform, or build upon the material, you must distribute your contributions under the same license as the original. +No additional restrictions - You may not apply legal terms or technological measures that legally restrict others from doing anything the license permits. + +Notices: +You do not have to comply with the license for elements of the material in the public domain or where your use is permitted by an applicable exception or limitation. +No warranties are given. The license may not give you all of the permissions necessary for your intended use. For example, other rights such as publicity, privacy, or moral rights may limit how you use the material. + +For more details: +http://creativecommons.org/licenses/by-sa/3.0/ \ No newline at end of file diff --git a/games/default/files/Player/character_creator/mod.conf b/games/default/files/Player/character_creator/mod.conf new file mode 100644 index 000000000..a01ea61ec --- /dev/null +++ b/games/default/files/Player/character_creator/mod.conf @@ -0,0 +1 @@ +name = character_creator \ No newline at end of file diff --git a/games/default/files/Player/character_creator/readme.md b/games/default/files/Player/character_creator/readme.md new file mode 100644 index 000000000..20b73b085 --- /dev/null +++ b/games/default/files/Player/character_creator/readme.md @@ -0,0 +1,5 @@ +This mod is attributed to the Voxelands project. + +Voxelands creators: +sdzen +darkrose \ No newline at end of file diff --git a/games/default/files/Player/character_creator/skins.lua b/games/default/files/Player/character_creator/skins.lua new file mode 100644 index 000000000..c49857fe3 --- /dev/null +++ b/games/default/files/Player/character_creator/skins.lua @@ -0,0 +1,61 @@ +return { + + skin = { + + ["skinwhite.png"] = "cc_skin_white.png", + + }, + +face = { + +["eyeswhite.png"] = "eyes_white.png", +["eyesblack.png"] = "eyes_black.png", +["eyesred.png"] = "eyes_red.png", +["eyesblue.png"] = "eyes_blue.png", +["eyesyellow.png"] = "eyes_yellow.png", +["eyesorange.png"] = "eyes_orange.png", +["eyesgreen.png"] = "eyes_green.png", +["eyespink.png"] = "eyes_pink.png", + + }, + +tshirt = { + +["shirtblack.png"] = "shirt_black.png", +["shirtblue.png"] = "shirt_blue.png", +["shirtgreen.png"] = "shirt_green.png", +["shirtwhite.png"] = "shirt_white.png", +["shirtorange.png"] = "shirt_orange.png", +["shirtred.png"] = "shirt_red.png", +["shirtyellow.png"] = "shirt_yellow.png", +["shirtpink.png"] = "shirt_pink.png", + + }, + +pants = { + +["pantswhite.png"] = "pants_white.png", +["pantsblack.png"] = "pants_black.png", +["pantsred.png"] = "pants_red.png", +["pantsblue.png"] = "pants_blue.png", +["pantsyellow.png"] = "pants_yellow.png", +["pantsorange.png"] = "pants_orange.png", +["pantsgreen.png"] = "pants_green.png", +["pantspink.png"] = "pants_pink.png", + + }, + +shoes = { + +["hairwhite.png"] = "hair_white.png", +["hairblack.png"] = "hair_black.png", +["hairred.png"] = "hair_red.png", +["hairblue.png"] = "hair_blue.png", +["hairyellow.png"] = "hair_yellow.png", +["hairorange.png"] = "hair_orange.png", +["hairgreen.png"] = "hair_green.png", +["hairpink.png"] = "hair_pink.png", + + }, + +} diff --git a/games/default/files/Player/character_creator/textures/cc_skin_black.png b/games/default/files/Player/character_creator/textures/cc_skin_black.png new file mode 100644 index 000000000..9defc939b Binary files /dev/null and b/games/default/files/Player/character_creator/textures/cc_skin_black.png differ diff --git a/games/default/files/Player/character_creator/textures/cc_skin_white.png b/games/default/files/Player/character_creator/textures/cc_skin_white.png new file mode 100644 index 000000000..cd7441b7e Binary files /dev/null and b/games/default/files/Player/character_creator/textures/cc_skin_white.png differ diff --git a/games/default/files/Player/character_creator/textures/eyes_black.png b/games/default/files/Player/character_creator/textures/eyes_black.png new file mode 100644 index 000000000..fd623a2f3 Binary files /dev/null and b/games/default/files/Player/character_creator/textures/eyes_black.png differ diff --git a/games/default/files/Player/character_creator/textures/eyes_blue.png b/games/default/files/Player/character_creator/textures/eyes_blue.png new file mode 100644 index 000000000..f75375299 Binary files /dev/null and b/games/default/files/Player/character_creator/textures/eyes_blue.png differ diff --git a/games/default/files/Player/character_creator/textures/eyes_green.png b/games/default/files/Player/character_creator/textures/eyes_green.png new file mode 100644 index 000000000..38a779072 Binary files /dev/null and b/games/default/files/Player/character_creator/textures/eyes_green.png differ diff --git a/games/default/files/Player/character_creator/textures/eyes_orange.png b/games/default/files/Player/character_creator/textures/eyes_orange.png new file mode 100644 index 000000000..9d276636a Binary files /dev/null and b/games/default/files/Player/character_creator/textures/eyes_orange.png differ diff --git a/games/default/files/Player/character_creator/textures/eyes_pink.png b/games/default/files/Player/character_creator/textures/eyes_pink.png new file mode 100644 index 000000000..9e12c3c94 Binary files /dev/null and b/games/default/files/Player/character_creator/textures/eyes_pink.png differ diff --git a/games/default/files/Player/character_creator/textures/eyes_red.png b/games/default/files/Player/character_creator/textures/eyes_red.png new file mode 100644 index 000000000..2b3fb7e97 Binary files /dev/null and b/games/default/files/Player/character_creator/textures/eyes_red.png differ diff --git a/games/default/files/Player/character_creator/textures/eyes_white.png b/games/default/files/Player/character_creator/textures/eyes_white.png new file mode 100644 index 000000000..e272f5412 Binary files /dev/null and b/games/default/files/Player/character_creator/textures/eyes_white.png differ diff --git a/games/default/files/Player/character_creator/textures/eyes_yellow.png b/games/default/files/Player/character_creator/textures/eyes_yellow.png new file mode 100644 index 000000000..320546ad9 Binary files /dev/null and b/games/default/files/Player/character_creator/textures/eyes_yellow.png differ diff --git a/games/default/files/Player/character_creator/textures/eyesblack.png b/games/default/files/Player/character_creator/textures/eyesblack.png new file mode 100644 index 000000000..8d7146f76 Binary files /dev/null and b/games/default/files/Player/character_creator/textures/eyesblack.png differ diff --git a/games/default/files/Player/character_creator/textures/eyesblue.png b/games/default/files/Player/character_creator/textures/eyesblue.png new file mode 100644 index 000000000..b9afe15f7 Binary files /dev/null and b/games/default/files/Player/character_creator/textures/eyesblue.png differ diff --git a/games/default/files/Player/character_creator/textures/eyesgreen.png b/games/default/files/Player/character_creator/textures/eyesgreen.png new file mode 100644 index 000000000..3f3cdecf6 Binary files /dev/null and b/games/default/files/Player/character_creator/textures/eyesgreen.png differ diff --git a/games/default/files/Player/character_creator/textures/eyesorange.png b/games/default/files/Player/character_creator/textures/eyesorange.png new file mode 100644 index 000000000..275d12675 Binary files /dev/null and b/games/default/files/Player/character_creator/textures/eyesorange.png differ diff --git a/games/default/files/Player/character_creator/textures/eyespink.png b/games/default/files/Player/character_creator/textures/eyespink.png new file mode 100644 index 000000000..81856f9f8 Binary files /dev/null and b/games/default/files/Player/character_creator/textures/eyespink.png differ diff --git a/games/default/files/Player/character_creator/textures/eyesred.png b/games/default/files/Player/character_creator/textures/eyesred.png new file mode 100644 index 000000000..d6d3b6606 Binary files /dev/null and b/games/default/files/Player/character_creator/textures/eyesred.png differ diff --git a/games/default/files/Player/character_creator/textures/eyeswhite.png b/games/default/files/Player/character_creator/textures/eyeswhite.png new file mode 100644 index 000000000..48cb587aa Binary files /dev/null and b/games/default/files/Player/character_creator/textures/eyeswhite.png differ diff --git a/games/default/files/Player/character_creator/textures/eyesyellow.png b/games/default/files/Player/character_creator/textures/eyesyellow.png new file mode 100644 index 000000000..9a9858e95 Binary files /dev/null and b/games/default/files/Player/character_creator/textures/eyesyellow.png differ diff --git a/games/default/files/Player/character_creator/textures/hair_black.png b/games/default/files/Player/character_creator/textures/hair_black.png new file mode 100644 index 000000000..53650fea0 Binary files /dev/null and b/games/default/files/Player/character_creator/textures/hair_black.png differ diff --git a/games/default/files/Player/character_creator/textures/hair_blue.png b/games/default/files/Player/character_creator/textures/hair_blue.png new file mode 100644 index 000000000..382c8dffc Binary files /dev/null and b/games/default/files/Player/character_creator/textures/hair_blue.png differ diff --git a/games/default/files/Player/character_creator/textures/hair_green.png b/games/default/files/Player/character_creator/textures/hair_green.png new file mode 100644 index 000000000..1c2d56e13 Binary files /dev/null and b/games/default/files/Player/character_creator/textures/hair_green.png differ diff --git a/games/default/files/Player/character_creator/textures/hair_orange.png b/games/default/files/Player/character_creator/textures/hair_orange.png new file mode 100644 index 000000000..e77c65d11 Binary files /dev/null and b/games/default/files/Player/character_creator/textures/hair_orange.png differ diff --git a/games/default/files/Player/character_creator/textures/hair_pink.png b/games/default/files/Player/character_creator/textures/hair_pink.png new file mode 100644 index 000000000..1fe916cf2 Binary files /dev/null and b/games/default/files/Player/character_creator/textures/hair_pink.png differ diff --git a/games/default/files/Player/character_creator/textures/hair_red.png b/games/default/files/Player/character_creator/textures/hair_red.png new file mode 100644 index 000000000..ab59c9cd2 Binary files /dev/null and b/games/default/files/Player/character_creator/textures/hair_red.png differ diff --git a/games/default/files/Player/character_creator/textures/hair_white.png b/games/default/files/Player/character_creator/textures/hair_white.png new file mode 100644 index 000000000..33a81a387 Binary files /dev/null and b/games/default/files/Player/character_creator/textures/hair_white.png differ diff --git a/games/default/files/Player/character_creator/textures/hair_yellow.png b/games/default/files/Player/character_creator/textures/hair_yellow.png new file mode 100644 index 000000000..0ff1639dc Binary files /dev/null and b/games/default/files/Player/character_creator/textures/hair_yellow.png differ diff --git a/games/default/files/Player/character_creator/textures/hairblack.png b/games/default/files/Player/character_creator/textures/hairblack.png new file mode 100644 index 000000000..de0df0b3e Binary files /dev/null and b/games/default/files/Player/character_creator/textures/hairblack.png differ diff --git a/games/default/files/Player/character_creator/textures/hairblue.png b/games/default/files/Player/character_creator/textures/hairblue.png new file mode 100644 index 000000000..fe05db9be Binary files /dev/null and b/games/default/files/Player/character_creator/textures/hairblue.png differ diff --git a/games/default/files/Player/character_creator/textures/hairgreen.png b/games/default/files/Player/character_creator/textures/hairgreen.png new file mode 100644 index 000000000..63e7b8f69 Binary files /dev/null and b/games/default/files/Player/character_creator/textures/hairgreen.png differ diff --git a/games/default/files/Player/character_creator/textures/hairorange.png b/games/default/files/Player/character_creator/textures/hairorange.png new file mode 100644 index 000000000..eca39529d Binary files /dev/null and b/games/default/files/Player/character_creator/textures/hairorange.png differ diff --git a/games/default/files/Player/character_creator/textures/hairpink.png b/games/default/files/Player/character_creator/textures/hairpink.png new file mode 100644 index 000000000..c258a3cb7 Binary files /dev/null and b/games/default/files/Player/character_creator/textures/hairpink.png differ diff --git a/games/default/files/Player/character_creator/textures/hairred.png b/games/default/files/Player/character_creator/textures/hairred.png new file mode 100644 index 000000000..cc65f1d92 Binary files /dev/null and b/games/default/files/Player/character_creator/textures/hairred.png differ diff --git a/games/default/files/Player/character_creator/textures/hairwhite.png b/games/default/files/Player/character_creator/textures/hairwhite.png new file mode 100644 index 000000000..436876542 Binary files /dev/null and b/games/default/files/Player/character_creator/textures/hairwhite.png differ diff --git a/games/default/files/Player/character_creator/textures/hairyellow.png b/games/default/files/Player/character_creator/textures/hairyellow.png new file mode 100644 index 000000000..b650df6de Binary files /dev/null and b/games/default/files/Player/character_creator/textures/hairyellow.png differ diff --git a/games/default/files/Player/character_creator/textures/inventory_plus_character_creator.png b/games/default/files/Player/character_creator/textures/inventory_plus_character_creator.png new file mode 100644 index 000000000..07f7b0e2b Binary files /dev/null and b/games/default/files/Player/character_creator/textures/inventory_plus_character_creator.png differ diff --git a/games/default/files/Player/character_creator/textures/none.png b/games/default/files/Player/character_creator/textures/none.png new file mode 100644 index 000000000..07f7b0e2b Binary files /dev/null and b/games/default/files/Player/character_creator/textures/none.png differ diff --git a/games/default/files/Player/character_creator/textures/pants.png b/games/default/files/Player/character_creator/textures/pants.png new file mode 100644 index 000000000..1b48492bc Binary files /dev/null and b/games/default/files/Player/character_creator/textures/pants.png differ diff --git a/games/default/files/Player/character_creator/textures/pants_black.png b/games/default/files/Player/character_creator/textures/pants_black.png new file mode 100644 index 000000000..ebe082a1c Binary files /dev/null and b/games/default/files/Player/character_creator/textures/pants_black.png differ diff --git a/games/default/files/Player/character_creator/textures/pants_blue.png b/games/default/files/Player/character_creator/textures/pants_blue.png new file mode 100644 index 000000000..cd0f83c57 Binary files /dev/null and b/games/default/files/Player/character_creator/textures/pants_blue.png differ diff --git a/games/default/files/Player/character_creator/textures/pants_green.png b/games/default/files/Player/character_creator/textures/pants_green.png new file mode 100644 index 000000000..8aca30167 Binary files /dev/null and b/games/default/files/Player/character_creator/textures/pants_green.png differ diff --git a/games/default/files/Player/character_creator/textures/pants_orange.png b/games/default/files/Player/character_creator/textures/pants_orange.png new file mode 100644 index 000000000..965fa89fb Binary files /dev/null and b/games/default/files/Player/character_creator/textures/pants_orange.png differ diff --git a/games/default/files/Player/character_creator/textures/pants_pink.png b/games/default/files/Player/character_creator/textures/pants_pink.png new file mode 100644 index 000000000..2d4a0c450 Binary files /dev/null and b/games/default/files/Player/character_creator/textures/pants_pink.png differ diff --git a/games/default/files/Player/character_creator/textures/pants_red.png b/games/default/files/Player/character_creator/textures/pants_red.png new file mode 100644 index 000000000..ef4db0a36 Binary files /dev/null and b/games/default/files/Player/character_creator/textures/pants_red.png differ diff --git a/games/default/files/Player/character_creator/textures/pants_white.png b/games/default/files/Player/character_creator/textures/pants_white.png new file mode 100644 index 000000000..ef73426a8 Binary files /dev/null and b/games/default/files/Player/character_creator/textures/pants_white.png differ diff --git a/games/default/files/Player/character_creator/textures/pants_yellow.png b/games/default/files/Player/character_creator/textures/pants_yellow.png new file mode 100644 index 000000000..f72a02704 Binary files /dev/null and b/games/default/files/Player/character_creator/textures/pants_yellow.png differ diff --git a/games/default/files/Player/character_creator/textures/pantsblack.png b/games/default/files/Player/character_creator/textures/pantsblack.png new file mode 100644 index 000000000..250c6cfed Binary files /dev/null and b/games/default/files/Player/character_creator/textures/pantsblack.png differ diff --git a/games/default/files/Player/character_creator/textures/pantsblue.png b/games/default/files/Player/character_creator/textures/pantsblue.png new file mode 100644 index 000000000..add0de824 Binary files /dev/null and b/games/default/files/Player/character_creator/textures/pantsblue.png differ diff --git a/games/default/files/Player/character_creator/textures/pantsgreen.png b/games/default/files/Player/character_creator/textures/pantsgreen.png new file mode 100644 index 000000000..59453b3ec Binary files /dev/null and b/games/default/files/Player/character_creator/textures/pantsgreen.png differ diff --git a/games/default/files/Player/character_creator/textures/pantsorange.png b/games/default/files/Player/character_creator/textures/pantsorange.png new file mode 100644 index 000000000..9f6528dbc Binary files /dev/null and b/games/default/files/Player/character_creator/textures/pantsorange.png differ diff --git a/games/default/files/Player/character_creator/textures/pantspink.png b/games/default/files/Player/character_creator/textures/pantspink.png new file mode 100644 index 000000000..134d029af Binary files /dev/null and b/games/default/files/Player/character_creator/textures/pantspink.png differ diff --git a/games/default/files/Player/character_creator/textures/pantsred.png b/games/default/files/Player/character_creator/textures/pantsred.png new file mode 100644 index 000000000..2f0e21755 Binary files /dev/null and b/games/default/files/Player/character_creator/textures/pantsred.png differ diff --git a/games/default/files/Player/character_creator/textures/pantswhite.png b/games/default/files/Player/character_creator/textures/pantswhite.png new file mode 100644 index 000000000..1b48492bc Binary files /dev/null and b/games/default/files/Player/character_creator/textures/pantswhite.png differ diff --git a/games/default/files/Player/character_creator/textures/pantsyellow.png b/games/default/files/Player/character_creator/textures/pantsyellow.png new file mode 100644 index 000000000..e37ae5571 Binary files /dev/null and b/games/default/files/Player/character_creator/textures/pantsyellow.png differ diff --git a/games/default/files/Player/character_creator/textures/shirt_black.png b/games/default/files/Player/character_creator/textures/shirt_black.png new file mode 100644 index 000000000..ff0872451 Binary files /dev/null and b/games/default/files/Player/character_creator/textures/shirt_black.png differ diff --git a/games/default/files/Player/character_creator/textures/shirt_blue.png b/games/default/files/Player/character_creator/textures/shirt_blue.png new file mode 100644 index 000000000..6f1ce6e0d Binary files /dev/null and b/games/default/files/Player/character_creator/textures/shirt_blue.png differ diff --git a/games/default/files/Player/character_creator/textures/shirt_green.png b/games/default/files/Player/character_creator/textures/shirt_green.png new file mode 100644 index 000000000..48ddc17a3 Binary files /dev/null and b/games/default/files/Player/character_creator/textures/shirt_green.png differ diff --git a/games/default/files/Player/character_creator/textures/shirt_orange.png b/games/default/files/Player/character_creator/textures/shirt_orange.png new file mode 100644 index 000000000..a48611d31 Binary files /dev/null and b/games/default/files/Player/character_creator/textures/shirt_orange.png differ diff --git a/games/default/files/Player/character_creator/textures/shirt_pink.png b/games/default/files/Player/character_creator/textures/shirt_pink.png new file mode 100644 index 000000000..7fbc23c9c Binary files /dev/null and b/games/default/files/Player/character_creator/textures/shirt_pink.png differ diff --git a/games/default/files/Player/character_creator/textures/shirt_red.png b/games/default/files/Player/character_creator/textures/shirt_red.png new file mode 100644 index 000000000..cb87321b6 Binary files /dev/null and b/games/default/files/Player/character_creator/textures/shirt_red.png differ diff --git a/games/default/files/Player/character_creator/textures/shirt_white.png b/games/default/files/Player/character_creator/textures/shirt_white.png new file mode 100644 index 000000000..1c2d6e3b4 Binary files /dev/null and b/games/default/files/Player/character_creator/textures/shirt_white.png differ diff --git a/games/default/files/Player/character_creator/textures/shirt_yellow.png b/games/default/files/Player/character_creator/textures/shirt_yellow.png new file mode 100644 index 000000000..14f6e5e25 Binary files /dev/null and b/games/default/files/Player/character_creator/textures/shirt_yellow.png differ diff --git a/games/default/files/Player/character_creator/textures/shirtblack.png b/games/default/files/Player/character_creator/textures/shirtblack.png new file mode 100644 index 000000000..8ab434990 Binary files /dev/null and b/games/default/files/Player/character_creator/textures/shirtblack.png differ diff --git a/games/default/files/Player/character_creator/textures/shirtblue.png b/games/default/files/Player/character_creator/textures/shirtblue.png new file mode 100644 index 000000000..fcee9c629 Binary files /dev/null and b/games/default/files/Player/character_creator/textures/shirtblue.png differ diff --git a/games/default/files/Player/character_creator/textures/shirtgreen.png b/games/default/files/Player/character_creator/textures/shirtgreen.png new file mode 100644 index 000000000..9b4684e28 Binary files /dev/null and b/games/default/files/Player/character_creator/textures/shirtgreen.png differ diff --git a/games/default/files/Player/character_creator/textures/shirtorange.png b/games/default/files/Player/character_creator/textures/shirtorange.png new file mode 100644 index 000000000..752d7276d Binary files /dev/null and b/games/default/files/Player/character_creator/textures/shirtorange.png differ diff --git a/games/default/files/Player/character_creator/textures/shirtpink.png b/games/default/files/Player/character_creator/textures/shirtpink.png new file mode 100644 index 000000000..5fe316415 Binary files /dev/null and b/games/default/files/Player/character_creator/textures/shirtpink.png differ diff --git a/games/default/files/Player/character_creator/textures/shirtred.png b/games/default/files/Player/character_creator/textures/shirtred.png new file mode 100644 index 000000000..a414684ce Binary files /dev/null and b/games/default/files/Player/character_creator/textures/shirtred.png differ diff --git a/games/default/files/Player/character_creator/textures/shirtwhite.png b/games/default/files/Player/character_creator/textures/shirtwhite.png new file mode 100644 index 000000000..37ca8bee5 Binary files /dev/null and b/games/default/files/Player/character_creator/textures/shirtwhite.png differ diff --git a/games/default/files/Player/character_creator/textures/shirtyellow.png b/games/default/files/Player/character_creator/textures/shirtyellow.png new file mode 100644 index 000000000..0fe38efa0 Binary files /dev/null and b/games/default/files/Player/character_creator/textures/shirtyellow.png differ diff --git a/games/default/files/Player/character_creator/textures/skinblue.png b/games/default/files/Player/character_creator/textures/skinblue.png new file mode 100644 index 000000000..58a189e93 Binary files /dev/null and b/games/default/files/Player/character_creator/textures/skinblue.png differ diff --git a/games/default/files/Player/character_creator/textures/skingreen.png b/games/default/files/Player/character_creator/textures/skingreen.png new file mode 100644 index 000000000..579ba549b Binary files /dev/null and b/games/default/files/Player/character_creator/textures/skingreen.png differ diff --git a/games/default/files/Player/character_creator/textures/skinorange.png b/games/default/files/Player/character_creator/textures/skinorange.png new file mode 100644 index 000000000..15e87eb9a Binary files /dev/null and b/games/default/files/Player/character_creator/textures/skinorange.png differ diff --git a/games/default/files/Player/character_creator/textures/skinpink.png b/games/default/files/Player/character_creator/textures/skinpink.png new file mode 100644 index 000000000..de28261c2 Binary files /dev/null and b/games/default/files/Player/character_creator/textures/skinpink.png differ diff --git a/games/default/files/Player/character_creator/textures/skinred.png b/games/default/files/Player/character_creator/textures/skinred.png new file mode 100644 index 000000000..9110ecf44 Binary files /dev/null and b/games/default/files/Player/character_creator/textures/skinred.png differ diff --git a/games/default/files/Player/character_creator/textures/skinwhite.png b/games/default/files/Player/character_creator/textures/skinwhite.png new file mode 100644 index 000000000..b4a1e5466 Binary files /dev/null and b/games/default/files/Player/character_creator/textures/skinwhite.png differ diff --git a/games/default/files/Player/character_creator/textures/skinyellow.png b/games/default/files/Player/character_creator/textures/skinyellow.png new file mode 100644 index 000000000..644c86375 Binary files /dev/null and b/games/default/files/Player/character_creator/textures/skinyellow.png differ diff --git a/games/default/files/Player/nodrop/README.txt b/games/default/files/Player/nodrop/README.txt new file mode 100644 index 000000000..cbd240fee --- /dev/null +++ b/games/default/files/Player/nodrop/README.txt @@ -0,0 +1,8 @@ +Minetest Game mod: give_initial_stuff +===================================== +See license.txt for license information. + +Authors of source code +---------------------- +Perttu Ahola (celeron55) (MIT) +Various Minetest developers and contributors (MIT) diff --git a/games/default/files/flowers/depends.txt b/games/default/files/Player/nodrop/depends.txt similarity index 100% rename from games/default/files/flowers/depends.txt rename to games/default/files/Player/nodrop/depends.txt diff --git a/games/default/files/Player/nodrop/init.lua b/games/default/files/Player/nodrop/init.lua new file mode 100644 index 000000000..7b7903043 --- /dev/null +++ b/games/default/files/Player/nodrop/init.lua @@ -0,0 +1,5 @@ +function minetest.item_drop(itemstack, dropper, pos) + +return itemstack + +end \ No newline at end of file diff --git a/games/default/files/Player/nodrop/license.txt b/games/default/files/Player/nodrop/license.txt new file mode 100644 index 000000000..8134c920e --- /dev/null +++ b/games/default/files/Player/nodrop/license.txt @@ -0,0 +1,25 @@ +License of source code +---------------------- + +The MIT License (MIT) +Copyright (C) 2012-2016 Perttu Ahola (celeron55) +Copyright (C) 2012-2016 Various Minetest developers and contributors + +Permission is hereby granted, free of charge, to any person obtaining a copy of this +software and associated documentation files (the "Software"), to deal in the Software +without restriction, including without limitation the rights to use, copy, modify, merge, +publish, distribute, sublicense, and/or sell copies of the Software, and to permit +persons to whom the Software is furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all copies or +substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, +INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR +PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE +FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR +OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER +DEALINGS IN THE SOFTWARE. + +For more details: +https://opensource.org/licenses/MIT diff --git a/games/default/files/Player/sethome/README.txt b/games/default/files/Player/sethome/README.txt new file mode 100644 index 000000000..6f0a282bb --- /dev/null +++ b/games/default/files/Player/sethome/README.txt @@ -0,0 +1,7 @@ +Minetest Game mod: sethome +========================== +See license.txt for license information. + +Authors of source code +---------------------- +sfan5 (MIT) diff --git a/games/default/files/Player/sethome/init.lua b/games/default/files/Player/sethome/init.lua new file mode 100644 index 000000000..13a33e57d --- /dev/null +++ b/games/default/files/Player/sethome/init.lua @@ -0,0 +1,97 @@ + +sethome = {} + +local homes_file = minetest.get_worldpath() .. "/homes" +local homepos = {} + +local function loadhomes() + local input = io.open(homes_file, "r") + if not input then + return -- no longer an error + end + + -- Iterate over all stored positions in the format "x y z player" for each line + for pos, name in input:read("*a"):gmatch("(%S+ %S+ %S+)%s([%w_-]+)[\r\n]") do + homepos[name] = minetest.string_to_pos(pos) + end + input:close() +end + +loadhomes() + +sethome.set = function(name, pos) + local player = minetest.get_player_by_name(name) + if not player or not pos then + return false + end + player:set_attribute("sethome:home", minetest.pos_to_string(pos)) + + -- remove `name` from the old storage file + local data = {} + local output = io.open(homes_file, "w") + if output then + homepos[name] = nil + for i, v in pairs(homepos) do + table.insert(data, string.format("%.1f %.1f %.1f %s\n", v.x, v.y, v.z, i)) + end + output:write(table.concat(data)) + io.close(output) + return true + end + return true -- if the file doesn't exist - don't return an error. +end + +sethome.get = function(name) + local player = minetest.get_player_by_name(name) + local pos = minetest.string_to_pos(player:get_attribute("sethome:home")) + if pos then + return pos + end + + -- fetch old entry from storage table + pos = homepos[name] + if pos then + return vector.new(pos) + else + return nil + end +end + +sethome.go = function(name) + local pos = sethome.get(name) + local player = minetest.get_player_by_name(name) + if player and pos then + player:setpos(pos) + return true + end + return false +end + +minetest.register_privilege("home", { + description = "Can use /sethome and /home", + give_to_singleplayer = false +}) + +minetest.register_chatcommand("home", { + description = "Teleport you to your home point", + privs = {home = true}, + func = function(name) + if sethome.go(name) then + return true, "Teleported to home!" + end + return false, "Set a home using /sethome" + end, +}) + +minetest.register_chatcommand("sethome", { + description = "Set your home point", + privs = {home = true}, + func = function(name) + name = name or "" -- fallback to blank name if nil + local player = minetest.get_player_by_name(name) + if player and sethome.set(name, player:getpos()) then + return true, "Home set!" + end + return false, "Player not found!" + end, +}) diff --git a/games/default/files/sethome/license.txt b/games/default/files/Player/sethome/license.txt similarity index 100% rename from games/default/files/sethome/license.txt rename to games/default/files/Player/sethome/license.txt diff --git a/games/default/files/Trees/modpack.txt b/games/default/files/Trees/modpack.txt new file mode 100644 index 000000000..e69de29bb diff --git a/games/default/files/Trees/trees/README.md b/games/default/files/Trees/trees/README.md new file mode 100644 index 000000000..29cb7f48e --- /dev/null +++ b/games/default/files/Trees/trees/README.md @@ -0,0 +1,2 @@ +# trees +Trees obj mod diff --git a/games/default/files/furniture/depends.txt b/games/default/files/Trees/trees/depends.txt similarity index 100% rename from games/default/files/furniture/depends.txt rename to games/default/files/Trees/trees/depends.txt diff --git a/games/default/files/Trees/trees/init.lua b/games/default/files/Trees/trees/init.lua new file mode 100644 index 000000000..39f2a5650 --- /dev/null +++ b/games/default/files/Trees/trees/init.lua @@ -0,0 +1,173 @@ +color1 = minetest.setting_get("color1") or "292421" +color2 = minetest.setting_get("color2") or "0000FF" +color3 = minetest.setting_get("color3") or "00FF00" +color4 = minetest.setting_get("color4") or "F5F5F5" +color5 = minetest.setting_get("color5") or "FF6103" +color6 = minetest.setting_get("color6") or "FF0000" +color7 = minetest.setting_get("color7") or "FFFF00" +color8 = minetest.setting_get("color8") or "FF69B4" + +local source_list = { + {"black", "Color1", color1, 40, 36, 33}, + {"blue", "Color2", color2, 0, 0, 255}, + {"green", "Color3", color3, 0, 255, 0}, + {"white", "Color4", color4, 245, 245, 245}, + {"orange", "Color5", color5, 255, 97, 3}, + {"red", "Color6", color6, 255, 0, 0}, + {"yellow", "Color7", color7, 255, 255, 0}, + {"pink", "Color8", color8, 255, 105, 180} +} + +for i in ipairs(source_list) do + local name = source_list[i][1] + local desc = source_list[i][2] + local colour = source_list[i][3] + local red = source_list[i][4] + local green = source_list[i][5] + local blue = source_list[i][6] + +minetest.register_node("trees:big_cactus_" .. name, { + description = desc .. " color", + paramtype = "light", + drawtype = "mesh", + mesh = "cactus.obj", + visual_scale = 4, + wield_image = "color_handwhite.png^(color_handwhite2.png^[colorize:#"..colour..":70)", + wield_scale = {x=1,y=1,z=0.5}, + inventory_image = "color_white.png^[colorize:#"..colour..":70", + +tiles = { +"color_white.png^[colorize:#"..colour..":70", +}, + +selection_box = { +type = "fixed", +fixed = { 0.40, -0.5, 0, -4.75, 13, -5.25}, +}, + +collision_box = { +type = "fixed", +fixed = { 0.40, -0.5, 0, -4.75, 13, -5.25}, +}, + + is_ground_content = true, + groups = {snappy = 2, choppy = 2, wool = 2}, + sounds = default.node_sound_defaults(), + oddly_breakable_by_hand = 1, + dig_immediate = 3, + + }) + +minetest.register_node("trees:big_" .. name, { + description = desc .. " color", + + paramtype = "light", + drawtype = "mesh", + mesh = "tree.obj", +visual_scale = 4, +wield_image = "color_handwhite.png^(color_handwhite2.png^[colorize:#"..colour..":70)", +wield_scale = {x=1,y=1,z=0.5}, +inventory_image = "bigtrees.png^[colorize:#"..colour..":70", + +tiles = { +"color_white.png^[colorize:#"..colour..":70", +"color_white.png", +"color_white.png", +"color_white.png", +"color_white.png^[colorize:#"..colour..":70", +}, + +selection_box = { +type = "fixed", +fixed = { 0.40, -0.5, 0, -4.75, 13, -5.25}, +}, + +collision_box = { +type = "fixed", +fixed = { 0.40, -0.5, 0, -4.75, 13, -5.25}, +}, + + is_ground_content = true, + groups = {snappy = 2, choppy = 2, wool = 2}, + sounds = default.node_sound_defaults(), + oddly_breakable_by_hand = 1, + dig_immediate = 3, + + }) + +minetest.register_node("trees:normal_" .. name, { + description = desc .. " color", + + paramtype = "light", + drawtype = "mesh", + mesh = "tree.obj", +visual_scale = 2, +wield_image = "color_handwhite.png^(color_handwhite2.png^[colorize:#"..colour..":70)", +wield_scale = {x=1,y=1,z=0.5}, +inventory_image = "normaltrees.png^[colorize:#"..colour..":70", + +tiles = { +"color_white.png^[colorize:#"..colour..":70", +"color_white.png", +"color_white.png", +"color_white.png", +"color_white.png^[colorize:#"..colour..":70", +}, + +selection_box = { +type = "fixed", +fixed = { 0.2, -0.5, 0, -2.4, 6.5, -2.5}, +}, + +collision_box = { +type = "fixed", +fixed = { 0.2, -0.5, 0, -2.4, 6.5, -2.5}, +}, + + is_ground_content = true, + groups = {snappy = 2, choppy = 2, wool = 2}, + sounds = default.node_sound_defaults(), + oddly_breakable_by_hand = 1, + dig_immediate = 3, + + }) + +minetest.register_node("trees:small_" .. name, { + description = desc .. " color", + + paramtype = "light", + drawtype = "mesh", + mesh = "tree.obj", +visual_scale = 1, +wield_image = "color_handwhite.png^(color_handwhite2.png^[colorize:#"..colour..":70)", +wield_scale = {x=1,y=1,z=0.5}, + inventory_image = "smalltrees.png^[colorize:#"..colour..":70", + +tiles = { +"color_white.png^[colorize:#"..colour..":70", +"color_white.png", +"color_white.png", +"color_white.png", +"color_white.png^[colorize:#"..colour..":70", +}, + +selection_box = { +type = "fixed", +fixed = { 0.1, -0.5, 0, -1.2, 3.25, -1.25}, +}, + +collision_box = { +type = "fixed", +fixed = { 0.1, -0.5, 0, -1.2, 3.25, -1.25}, +}, + + is_ground_content = true, + groups = {snappy = 2, choppy = 2, wool = 2}, + sounds = default.node_sound_defaults(), + oddly_breakable_by_hand = 1, + dig_immediate = 3, + + }) + + +end diff --git a/games/default/files/Trees/trees/license.txt b/games/default/files/Trees/trees/license.txt new file mode 100644 index 000000000..dfbd2411d --- /dev/null +++ b/games/default/files/Trees/trees/license.txt @@ -0,0 +1,38 @@ +License for Textures Peak : CCO + +color_yellow.png +color_orange.png +color_blue.png +color_green.png +color_pink.png +color_red.png +color_white.png +color_black.png + +https://creativecommons.org/publicdomain/zero/1.0/deed.fr + +License of source code +---------------------- + +The MIT License (MIT) +Copyright (C) 2012-2016 Perttu Ahola (celeron55) +Copyright (C) 2012-2016 Various Minetest developers and contributors + +Permission is hereby granted, free of charge, to any person obtaining a copy of this +software and associated documentation files (the "Software"), to deal in the Software +without restriction, including without limitation the rights to use, copy, modify, merge, +publish, distribute, sublicense, and/or sell copies of the Software, and to permit +persons to whom the Software is furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all copies or +substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, +INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR +PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE +FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR +OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER +DEALINGS IN THE SOFTWARE. + +For more details: +https://opensource.org/licenses/MIT diff --git a/games/default/files/Trees/trees/models/License.txt b/games/default/files/Trees/trees/models/License.txt new file mode 100644 index 000000000..64765124a --- /dev/null +++ b/games/default/files/Trees/trees/models/License.txt @@ -0,0 +1,20 @@ + +######################################################################### + + by Kenney Vleugels for Kenney (www.kenney.nl) + + ------------------------------ + + License (Creative Commons Zero, CC0) + http://creativecommons.org/publicdomain/zero/1.0/ + + You may use these graphics in personal and commercial projects. + Credit (Kenney or www.kenney.nl) would be nice but is not mandatory. + + ------------------------------ + + Donate: http://donate.kenney.nl/ + Request: http://request.kenney.nl/ + + +######################################################################### \ No newline at end of file diff --git a/games/default/files/Trees/trees/models/cactus.obj b/games/default/files/Trees/trees/models/cactus.obj new file mode 100644 index 000000000..0fe2a8ba5 --- /dev/null +++ b/games/default/files/Trees/trees/models/cactus.obj @@ -0,0 +1,9065 @@ +# This file uses centimeters as units for non-parametric coordinates. + +mtllib lowpoyltree.mtl +g default +v 0.089377 1.173243 -0.029040 +v 0.076029 1.173243 -0.055238 +v 0.055238 1.173243 -0.076029 +v 0.029040 1.173243 -0.089377 +v -0.000000 1.173243 -0.093976 +v -0.029040 1.173243 -0.089377 +v -0.055238 1.173243 -0.076029 +v -0.076028 1.173243 -0.055238 +v -0.089377 1.173243 -0.029040 +v -0.093976 1.173243 0.000000 +v -0.089377 1.173243 0.029040 +v -0.076028 1.173243 0.055238 +v -0.055238 1.173243 0.076028 +v -0.029040 1.173243 0.089377 +v -0.000000 1.173243 0.093976 +v 0.029040 1.173243 0.089377 +v 0.055238 1.173243 0.076028 +v 0.076028 1.173243 0.055238 +v 0.089377 1.173243 0.029040 +v 0.093976 1.173243 -0.000000 +v 0.089377 2.124738 -0.029040 +v 0.076029 2.124738 -0.055238 +v 0.055238 2.124738 -0.076029 +v 0.029040 2.124738 -0.089377 +v 0.000000 2.124738 -0.093976 +v -0.029040 2.124738 -0.089377 +v -0.055238 2.124738 -0.076029 +v -0.076028 2.124738 -0.055238 +v -0.089377 2.124738 -0.029040 +v -0.093976 2.124738 -0.000000 +v -0.089377 2.124738 0.029040 +v -0.076028 2.124738 0.055238 +v -0.055238 2.124738 0.076028 +v -0.029040 2.124738 0.089377 +v -0.000000 2.124738 0.093976 +v 0.029040 2.124738 0.089377 +v 0.055238 2.124738 0.076028 +v 0.076028 2.124738 0.055238 +v 0.089377 2.124738 0.029040 +v 0.093976 2.124738 -0.000000 +v 0.000000 1.173101 -0.000000 +v -0.000000 2.125081 -0.000000 +v 0.099798 1.292607 -0.032426 +v 0.104934 1.292607 -0.000000 +v 0.099798 1.292607 0.032426 +v 0.084893 1.292607 0.061679 +v 0.061679 1.292607 0.084893 +v 0.032426 1.292607 0.099798 +v -0.000000 1.292607 0.104934 +v -0.032426 1.292607 0.099798 +v -0.061679 1.292607 0.084893 +v -0.084893 1.292607 0.061679 +v -0.099798 1.292607 0.032426 +v -0.104934 1.292607 0.000000 +v -0.099798 1.292607 -0.032426 +v -0.084893 1.292607 -0.061679 +v -0.061679 1.292607 -0.084893 +v -0.032426 1.292607 -0.099798 +v -0.000000 1.292607 -0.104934 +v 0.032426 1.292607 -0.099798 +v 0.061679 1.292607 -0.084894 +v 0.084894 1.292607 -0.061679 +v -0.084893 2.004165 -0.061679 +v -0.061679 2.004165 -0.084893 +v -0.032426 2.004165 -0.099798 +v 0.000000 2.004165 -0.104934 +v 0.032426 2.004165 -0.099798 +v 0.061679 2.004165 -0.084894 +v 0.084894 2.004165 -0.061679 +v 0.099798 2.004165 -0.032426 +v 0.104934 2.004165 -0.000000 +v 0.099798 2.004165 0.032426 +v 0.084893 2.004165 0.061679 +v 0.061679 2.004165 0.084893 +v 0.032426 2.004165 0.099798 +v -0.000000 2.004165 0.104934 +v -0.032426 2.004165 0.099798 +v -0.061679 2.004165 0.084893 +v -0.084893 2.004165 0.061679 +v -0.099798 2.004165 0.032426 +v -0.104934 2.004165 0.000000 +v -0.099798 2.004165 -0.032426 +v -0.032426 2.123708 -0.099798 +v 0.000000 2.123708 -0.104934 +v 0.032426 2.123708 -0.099798 +v 0.061679 2.123708 -0.084893 +v 0.084894 2.123708 -0.061679 +v 0.099798 2.123708 -0.032426 +v 0.104934 2.123708 -0.000000 +v 0.099798 2.123708 0.032426 +v 0.084893 2.123708 0.061679 +v 0.061679 2.123708 0.084893 +v 0.032426 2.123708 0.099798 +v -0.000000 2.123708 0.104934 +v -0.032426 2.123708 0.099798 +v -0.061679 2.123708 0.084893 +v -0.084893 2.123708 0.061679 +v -0.099798 2.123708 0.032426 +v -0.104934 2.123708 0.000000 +v -0.099798 2.123708 -0.032426 +v 0.082271 1.173305 -0.041919 +v 0.099798 1.173669 -0.032426 +v 0.084894 1.173669 -0.061679 +v 0.093490 1.292607 -0.047635 +v 0.065291 1.173305 -0.065291 +v 0.061679 1.173669 -0.084894 +v 0.074194 1.292607 -0.074194 +v 0.041919 1.173305 -0.082271 +v 0.032426 1.173669 -0.099798 +v 0.047635 1.292607 -0.093490 +v 0.014444 1.173305 -0.091198 +v 0.000000 1.173669 -0.104934 +v 0.016414 1.292607 -0.103634 +v -0.014444 1.173305 -0.091198 +v -0.032426 1.173669 -0.099798 +v -0.016414 1.292607 -0.103634 +v -0.041919 1.173305 -0.082271 +v -0.061679 1.173669 -0.084893 +v -0.047635 1.292607 -0.093490 +v -0.065291 1.173305 -0.065291 +v -0.084893 1.173669 -0.061679 +v -0.074194 1.292607 -0.074194 +v -0.082271 1.173305 -0.041919 +v -0.099798 1.173669 -0.032426 +v -0.093490 1.292607 -0.047635 +v -0.091198 1.173305 -0.014444 +v -0.104934 1.173669 0.000000 +v -0.103634 1.292607 -0.016414 +v -0.091198 1.173305 0.014444 +v -0.099798 1.173669 0.032426 +v -0.103634 1.292607 0.016414 +v -0.082271 1.173305 0.041919 +v -0.084893 1.173669 0.061679 +v -0.093490 1.292607 0.047635 +v -0.065291 1.173305 0.065291 +v -0.061679 1.173669 0.084893 +v -0.074194 1.292607 0.074194 +v -0.041919 1.173305 0.082271 +v -0.032426 1.173669 0.099798 +v -0.047635 1.292607 0.093490 +v -0.014444 1.173305 0.091198 +v -0.000000 1.173669 0.104934 +v -0.016414 1.292607 0.103634 +v 0.014444 1.173305 0.091198 +v 0.032426 1.173669 0.099798 +v 0.016414 1.292607 0.103634 +v 0.041919 1.173305 0.082271 +v 0.061679 1.173669 0.084893 +v 0.047635 1.292607 0.093490 +v 0.065291 1.173305 0.065291 +v 0.084893 1.173669 0.061679 +v 0.074194 1.292607 0.074194 +v 0.082271 1.173305 0.041919 +v 0.099798 1.173669 0.032426 +v 0.093490 1.292607 0.047635 +v 0.091198 1.173305 0.014444 +v 0.104934 1.173669 -0.000000 +v 0.103634 1.292607 0.016414 +v 0.091198 1.173305 -0.014444 +v 0.103634 1.292607 -0.016414 +v 0.055119 1.173101 -0.040046 +v 0.064797 1.173101 -0.021054 +v 0.040046 1.173101 -0.055119 +v 0.021054 1.173101 -0.064797 +v 0.000000 1.173101 -0.068131 +v -0.021054 1.173101 -0.064797 +v -0.040046 1.173101 -0.055119 +v -0.055119 1.173101 -0.040046 +v -0.064797 1.173101 -0.021054 +v -0.068131 1.173101 0.000000 +v -0.064797 1.173101 0.021054 +v -0.055119 1.173101 0.040046 +v -0.040046 1.173101 0.055119 +v -0.021054 1.173101 0.064797 +v -0.000000 1.173101 0.068131 +v 0.021054 1.173101 0.064797 +v 0.040046 1.173101 0.055119 +v 0.055119 1.173101 0.040046 +v 0.064797 1.173101 0.021054 +v 0.068131 1.173101 -0.000000 +v 0.082271 2.124587 -0.041919 +v 0.064797 2.125082 -0.021054 +v 0.055119 2.125082 -0.040046 +v 0.065291 2.124587 -0.065291 +v 0.040046 2.125082 -0.055119 +v 0.041919 2.124587 -0.082271 +v 0.021054 2.125082 -0.064797 +v 0.014444 2.124587 -0.091198 +v 0.000000 2.125082 -0.068131 +v -0.014444 2.124587 -0.091198 +v -0.021054 2.125082 -0.064797 +v -0.041919 2.124587 -0.082271 +v -0.040046 2.125082 -0.055119 +v -0.065291 2.124587 -0.065291 +v -0.055119 2.125082 -0.040046 +v -0.082271 2.124587 -0.041919 +v -0.064797 2.125082 -0.021054 +v -0.091198 2.124587 -0.014444 +v -0.068131 2.125082 0.000000 +v -0.091198 2.124587 0.014444 +v -0.064797 2.125082 0.021054 +v -0.082271 2.124587 0.041919 +v -0.055119 2.125082 0.040046 +v -0.065291 2.124587 0.065291 +v -0.040046 2.125082 0.055119 +v -0.041919 2.124587 0.082271 +v -0.021054 2.125082 0.064797 +v -0.014444 2.124587 0.091198 +v -0.000000 2.125082 0.068131 +v 0.014444 2.124587 0.091198 +v 0.021054 2.125082 0.064797 +v 0.041919 2.124587 0.082271 +v 0.040046 2.125082 0.055119 +v 0.065291 2.124587 0.065291 +v 0.055119 2.125082 0.040046 +v 0.082271 2.124587 0.041919 +v 0.064797 2.125082 0.021054 +v 0.091198 2.124587 0.014444 +v 0.068131 2.125082 -0.000000 +v 0.091198 2.124587 -0.014444 +v 0.104934 1.648285 -0.000000 +v 0.099798 1.648285 -0.032426 +v 0.103634 2.004165 -0.016414 +v 0.099798 1.648285 0.032426 +v 0.103634 2.004165 0.016414 +v 0.084893 1.648285 0.061679 +v 0.093490 2.004165 0.047635 +v 0.061679 1.648285 0.084893 +v 0.074194 2.004165 0.074194 +v 0.032426 1.648285 0.099798 +v 0.047635 2.004165 0.093490 +v -0.000000 1.648285 0.104934 +v 0.016414 2.004165 0.103634 +v -0.032426 1.648285 0.099798 +v -0.016414 2.004165 0.103634 +v -0.061679 1.648285 0.084893 +v -0.047635 2.004165 0.093490 +v -0.084893 1.648285 0.061679 +v -0.074194 2.004165 0.074194 +v -0.099798 1.648285 0.032426 +v -0.093490 2.004165 0.047635 +v -0.104934 1.648285 0.000000 +v -0.103634 2.004165 0.016414 +v -0.099798 1.648285 -0.032426 +v -0.103634 2.004165 -0.016414 +v -0.084893 1.648285 -0.061679 +v -0.093490 2.004165 -0.047635 +v -0.061679 1.648285 -0.084893 +v -0.074194 2.004165 -0.074194 +v -0.032426 1.648285 -0.099798 +v -0.047635 2.004165 -0.093490 +v 0.000000 1.648285 -0.104934 +v -0.016414 2.004165 -0.103634 +v 0.032426 1.648285 -0.099798 +v 0.016414 2.004165 -0.103634 +v 0.061679 1.648285 -0.084893 +v 0.047635 2.004165 -0.093490 +v 0.084894 1.648285 -0.061679 +v 0.074194 2.004165 -0.074194 +v 0.093490 2.004165 -0.047635 +v -0.061679 2.123708 -0.084893 +v -0.084893 2.123708 -0.061679 +v 0.093490 1.173669 -0.047635 +v 0.074194 1.173669 -0.074194 +v 0.047635 1.173669 -0.093490 +v 0.016414 1.173669 -0.103634 +v -0.016414 1.173669 -0.103634 +v -0.047635 1.173669 -0.093490 +v -0.074194 1.173669 -0.074194 +v -0.093490 1.173669 -0.047635 +v -0.103634 1.173669 -0.016414 +v -0.103634 1.173669 0.016414 +v -0.093490 1.173669 0.047635 +v -0.074194 1.173669 0.074194 +v -0.047635 1.173669 0.093490 +v -0.016414 1.173669 0.103634 +v 0.016414 1.173669 0.103634 +v 0.047635 1.173669 0.093490 +v 0.074194 1.173669 0.074194 +v 0.093490 1.173669 0.047635 +v 0.103634 1.173669 0.016414 +v 0.103634 1.173669 -0.016414 +v 0.062327 1.173101 -0.031757 +v 0.049463 1.173101 -0.049463 +v 0.031757 1.173101 -0.062327 +v 0.010943 1.173101 -0.069090 +v -0.010943 1.173101 -0.069090 +v -0.031757 1.173101 -0.062327 +v -0.049463 1.173101 -0.049463 +v -0.062327 1.173101 -0.031757 +v -0.069089 1.173101 -0.010943 +v -0.069089 1.173101 0.010943 +v -0.062327 1.173101 0.031757 +v -0.049463 1.173101 0.049463 +v -0.031757 1.173101 0.062327 +v -0.010943 1.173101 0.069089 +v 0.010943 1.173101 0.069089 +v 0.031757 1.173101 0.062327 +v 0.049463 1.173101 0.049463 +v 0.062327 1.173101 0.031757 +v 0.069089 1.173101 0.010943 +v 0.069089 1.173101 -0.010943 +v 0.062327 2.125082 -0.031757 +v 0.049463 2.125082 -0.049463 +v 0.031757 2.125082 -0.062327 +v 0.010943 2.125082 -0.069090 +v -0.010943 2.125082 -0.069090 +v -0.031757 2.125082 -0.062327 +v -0.049463 2.125082 -0.049463 +v -0.062327 2.125082 -0.031757 +v -0.069089 2.125082 -0.010943 +v -0.069089 2.125082 0.010943 +v -0.062327 2.125082 0.031757 +v -0.049463 2.125082 0.049463 +v -0.031757 2.125082 0.062327 +v -0.010943 2.125082 0.069089 +v 0.010943 2.125082 0.069089 +v 0.031757 2.125082 0.062327 +v 0.049463 2.125082 0.049463 +v 0.062327 2.125082 0.031757 +v 0.069089 2.125082 0.010943 +v 0.069089 2.125082 -0.010943 +v 0.103634 1.648285 -0.016414 +v 0.103634 1.648285 0.016414 +v 0.093490 1.648285 0.047635 +v 0.074194 1.648285 0.074194 +v 0.047635 1.648285 0.093490 +v 0.016414 1.648285 0.103634 +v -0.016414 1.648285 0.103634 +v -0.047635 1.648285 0.093490 +v -0.074194 1.648285 0.074194 +v -0.093490 1.648285 0.047635 +v -0.103634 1.648285 0.016414 +v -0.103634 1.648285 -0.016414 +v -0.093490 1.648285 -0.047635 +v -0.074194 1.648285 -0.074194 +v -0.047635 1.648285 -0.093490 +v -0.016414 1.648285 -0.103634 +v 0.016414 1.648285 -0.103634 +v 0.047635 1.648285 -0.093490 +v 0.074194 1.648285 -0.074194 +v 0.093490 1.648285 -0.047635 +v -0.074194 2.123708 -0.074194 +v -0.047635 2.123708 -0.093490 +v -0.016414 2.123708 -0.103634 +v 0.016414 2.123708 -0.103634 +v 0.047635 2.123708 -0.093490 +v 0.074194 2.123708 -0.074194 +v 0.093490 2.123708 -0.047635 +v 0.103634 2.123708 -0.016414 +v 0.103634 2.123708 0.016414 +v 0.093490 2.123708 0.047635 +v 0.074194 2.123708 0.074194 +v 0.047635 2.123708 0.093490 +v 0.016414 2.123708 0.103634 +v -0.016414 2.123708 0.103634 +v -0.047635 2.123708 0.093490 +v -0.074194 2.123708 0.074194 +v -0.093490 2.123708 0.047635 +v -0.103634 2.123708 0.016414 +v -0.103634 2.123708 -0.016414 +v -0.093490 2.123708 -0.047635 +vt 0.132879 0.001975 +vt 0.148688 0.001975 +vt 0.148688 0.125609 +vt 0.132879 0.125609 +vt 0.163286 0.001975 +vt 0.163286 0.125609 +vt 0.148688 0.495329 +vt 0.132879 0.495329 +vt 0.116235 0.001975 +vt 0.116235 0.125609 +vt 0.176296 0.001975 +vt 0.176296 0.125609 +vt 0.163286 0.495329 +vt 0.148688 0.865259 +vt 0.132879 0.865259 +vt 0.116235 0.495329 +vt 0.099172 0.001975 +vt 0.099172 0.125609 +vt 0.187417 0.001975 +vt 0.187417 0.125609 +vt 0.176296 0.495329 +vt 0.163286 0.865259 +vt 0.148688 0.989521 +vt 0.132879 0.989521 +vt 0.116235 0.865259 +vt 0.099172 0.495329 +vt 0.082110 0.001975 +vt 0.082110 0.125609 +vt 0.196353 0.001975 +vt 0.196353 0.125609 +vt 0.187417 0.495329 +vt 0.176296 0.865259 +vt 0.163286 0.989521 +vt 0.116235 0.989521 +vt 0.099172 0.865259 +vt 0.082110 0.495329 +vt 0.065466 0.001975 +vt 0.065466 0.125609 +vt 0.196353 0.495329 +vt 0.187417 0.865259 +vt 0.176296 0.989521 +vt 0.099172 0.989521 +vt 0.082110 0.865259 +vt 0.065466 0.495329 +vt 0.049656 0.001975 +vt 0.049656 0.125609 +vt 0.196353 0.865259 +vt 0.187417 0.989521 +vt 0.082110 0.989521 +vt 0.065466 0.865259 +vt 0.049656 0.495329 +vt 0.035059 0.001975 +vt 0.035059 0.125609 +vt 0.196353 0.989521 +vt 0.065466 0.989521 +vt 0.049656 0.865259 +vt 0.035059 0.495329 +vt 0.022049 0.001975 +vt 0.022049 0.125609 +vt 0.049656 0.989521 +vt 0.035059 0.865259 +vt 0.022049 0.495329 +vt 0.010927 0.001975 +vt 0.010927 0.125609 +vt 0.035059 0.989521 +vt 0.022049 0.865259 +vt 0.010927 0.495329 +vt 0.001992 0.001975 +vt 0.001992 0.125609 +vt 0.022049 0.989521 +vt 0.010927 0.865259 +vt 0.001992 0.495329 +vt 0.010927 0.989521 +vt 0.001992 0.865259 +vt 0.001992 0.989521 +vt 0.355837 0.001975 +vt 0.371647 0.001975 +vt 0.371647 0.125609 +vt 0.355837 0.125609 +vt 0.388291 0.001975 +vt 0.388291 0.125609 +vt 0.371647 0.495329 +vt 0.355837 0.495329 +vt 0.341240 0.001975 +vt 0.341240 0.125609 +vt 0.405353 0.001975 +vt 0.405353 0.125609 +vt 0.388291 0.495329 +vt 0.371647 0.865259 +vt 0.355837 0.865259 +vt 0.341240 0.495329 +vt 0.328230 0.001975 +vt 0.328230 0.125609 +vt 0.422415 0.001975 +vt 0.422415 0.125609 +vt 0.405353 0.495329 +vt 0.388291 0.865259 +vt 0.371647 0.989521 +vt 0.355837 0.989521 +vt 0.341240 0.865259 +vt 0.328230 0.495329 +vt 0.317108 0.001975 +vt 0.317108 0.125609 +vt 0.439060 0.001975 +vt 0.439060 0.125609 +vt 0.422415 0.495329 +vt 0.405353 0.865259 +vt 0.388291 0.989521 +vt 0.341240 0.989521 +vt 0.328230 0.865259 +vt 0.317108 0.495329 +vt 0.308173 0.001975 +vt 0.308173 0.125609 +vt 0.454869 0.001975 +vt 0.454869 0.125609 +vt 0.439060 0.495329 +vt 0.422415 0.865259 +vt 0.405353 0.989521 +vt 0.328230 0.989521 +vt 0.317108 0.865259 +vt 0.308173 0.495329 +vt 0.469467 0.001975 +vt 0.469467 0.125609 +vt 0.454869 0.495329 +vt 0.439060 0.865259 +vt 0.422415 0.989521 +vt 0.317108 0.989521 +vt 0.308173 0.865259 +vt 0.482476 0.001975 +vt 0.482476 0.125609 +vt 0.469467 0.495329 +vt 0.454869 0.865259 +vt 0.439060 0.989521 +vt 0.308173 0.989521 +vt 0.493598 0.001975 +vt 0.493598 0.125609 +vt 0.482476 0.495329 +vt 0.469467 0.865259 +vt 0.454869 0.989521 +vt 0.502534 0.001975 +vt 0.502534 0.125609 +vt 0.493598 0.495329 +vt 0.482476 0.865259 +vt 0.469467 0.989521 +vt 0.502534 0.495329 +vt 0.493598 0.865259 +vt 0.482476 0.989521 +vt 0.502534 0.865259 +vt 0.493598 0.989521 +vt 0.502534 0.989521 +vt 0.693048 0.018146 +vt 0.679661 0.025533 +vt 0.673719 0.013871 +vt 0.689528 0.007314 +vt 0.701350 0.043697 +vt 0.690224 0.046265 +vt 0.665816 0.032022 +vt 0.659121 0.022807 +vt 0.708220 0.016253 +vt 0.706173 0.003326 +vt 0.711860 0.039235 +vt 0.723235 0.111052 +vt 0.681607 0.053757 +vt 0.655366 0.043183 +vt 0.646112 0.033929 +vt 0.723235 0.013365 +vt 0.723235 0.001975 +vt 0.723235 0.040231 +vt 0.665940 0.069424 +vt 0.671819 0.059636 +vt 0.644205 0.053633 +vt 0.634990 0.046938 +vt 0.738249 0.016253 +vt 0.740297 0.003326 +vt 0.734610 0.039235 +vt 0.745120 0.043697 +vt 0.655880 0.089167 +vt 0.658448 0.078041 +vt 0.637716 0.067478 +vt 0.626054 0.061536 +vt 0.753422 0.018146 +vt 0.756941 0.007314 +vt 0.756245 0.046265 +vt 0.764862 0.053757 +vt 0.652414 0.111052 +vt 0.651418 0.099677 +vt 0.630329 0.080865 +vt 0.619497 0.077345 +vt 0.766809 0.025533 +vt 0.772751 0.013871 +vt 0.780654 0.032022 +vt 0.774650 0.059637 +vt 0.780530 0.069424 +vt 0.655880 0.132937 +vt 0.651418 0.122427 +vt 0.625548 0.111052 +vt 0.628436 0.096037 +vt 0.615509 0.093990 +vt 0.787349 0.022807 +vt 0.791103 0.043184 +vt 0.802265 0.053633 +vt 0.788022 0.078041 +vt 0.790590 0.089167 +vt 0.665940 0.152679 +vt 0.658448 0.144063 +vt 0.630329 0.141239 +vt 0.628436 0.126067 +vt 0.614158 0.111052 +vt 0.800358 0.033929 +vt 0.808754 0.067478 +vt 0.811480 0.046938 +vt 0.816140 0.080865 +vt 0.795052 0.099677 +vt 0.794056 0.111052 +vt 0.681607 0.168347 +vt 0.671820 0.162467 +vt 0.644205 0.168471 +vt 0.637716 0.154626 +vt 0.619497 0.144758 +vt 0.615509 0.128114 +vt 0.820415 0.061536 +vt 0.818033 0.096037 +vt 0.826973 0.077345 +vt 0.820921 0.111052 +vt 0.795052 0.122427 +vt 0.790590 0.132937 +vt 0.701350 0.178407 +vt 0.690224 0.175839 +vt 0.665816 0.190082 +vt 0.655367 0.178920 +vt 0.634990 0.175166 +vt 0.626054 0.160568 +vt 0.830960 0.093990 +vt 0.818033 0.126067 +vt 0.832312 0.111052 +vt 0.816140 0.141239 +vt 0.788022 0.144063 +vt 0.780530 0.152679 +vt 0.723235 0.181873 +vt 0.711860 0.182869 +vt 0.693048 0.203957 +vt 0.679661 0.196571 +vt 0.659121 0.199297 +vt 0.646112 0.188175 +vt 0.830960 0.128114 +vt 0.808754 0.154626 +vt 0.826973 0.144758 +vt 0.802265 0.168470 +vt 0.774650 0.162467 +vt 0.764862 0.168347 +vt 0.745120 0.178407 +vt 0.734610 0.182869 +vt 0.723235 0.208738 +vt 0.708220 0.205850 +vt 0.689528 0.214790 +vt 0.673719 0.208233 +vt 0.820415 0.160568 +vt 0.791103 0.178920 +vt 0.811480 0.175166 +vt 0.780654 0.190082 +vt 0.756245 0.175839 +vt 0.753422 0.203957 +vt 0.738249 0.205850 +vt 0.723235 0.220129 +vt 0.706173 0.218777 +vt 0.800358 0.188175 +vt 0.766809 0.196571 +vt 0.787349 0.199297 +vt 0.756941 0.214790 +vt 0.740297 0.218777 +vt 0.772751 0.208233 +vt 0.981837 0.363384 +vt 0.974450 0.376771 +vt 0.953718 0.366208 +vt 0.956286 0.355082 +vt 0.992669 0.366904 +vt 0.986112 0.382713 +vt 0.967961 0.390616 +vt 0.946227 0.374825 +vt 0.888931 0.333197 +vt 0.960748 0.344572 +vt 0.983730 0.348212 +vt 0.977176 0.397311 +vt 0.996657 0.350259 +vt 0.956800 0.401066 +vt 0.940347 0.384613 +vt 0.959752 0.333197 +vt 0.930559 0.390493 +vt 0.986618 0.333197 +vt 0.966054 0.410320 +vt 0.998008 0.333197 +vt 0.946350 0.412227 +vt 0.956286 0.311313 +vt 0.960748 0.321823 +vt 0.921942 0.397985 +vt 0.910816 0.400552 +vt 0.983730 0.318183 +vt 0.953045 0.421442 +vt 0.996657 0.316135 +vt 0.932505 0.418716 +vt 0.946227 0.291570 +vt 0.953718 0.300187 +vt 0.981837 0.303011 +vt 0.919118 0.426103 +vt 0.900306 0.405014 +vt 0.888931 0.404018 +vt 0.938447 0.430378 +vt 0.992669 0.299491 +vt 0.930559 0.275902 +vt 0.940346 0.281782 +vt 0.967961 0.275779 +vt 0.974450 0.289623 +vt 0.903946 0.427996 +vt 0.922638 0.436935 +vt 0.888931 0.430884 +vt 0.877557 0.405014 +vt 0.867046 0.400552 +vt 0.986112 0.283681 +vt 0.910816 0.265843 +vt 0.921942 0.268410 +vt 0.946350 0.254167 +vt 0.956799 0.265329 +vt 0.977176 0.269084 +vt 0.905993 0.440923 +vt 0.873917 0.427996 +vt 0.888931 0.442274 +vt 0.858744 0.426103 +vt 0.855921 0.397985 +vt 0.847304 0.390493 +vt 0.888931 0.262376 +vt 0.900306 0.261380 +vt 0.919118 0.240292 +vt 0.932505 0.247678 +vt 0.953045 0.244952 +vt 0.966054 0.256074 +vt 0.871869 0.440923 +vt 0.845357 0.418716 +vt 0.855225 0.436935 +vt 0.831513 0.412227 +vt 0.837516 0.384613 +vt 0.831636 0.374825 +vt 0.867046 0.265843 +vt 0.877557 0.261380 +vt 0.888931 0.235511 +vt 0.903946 0.238399 +vt 0.922638 0.229459 +vt 0.938447 0.236017 +vt 0.839415 0.430378 +vt 0.821063 0.401066 +vt 0.824817 0.421442 +vt 0.809901 0.390616 +vt 0.824144 0.366208 +vt 0.821577 0.355082 +vt 0.847304 0.275902 +vt 0.855921 0.268410 +vt 0.858744 0.240292 +vt 0.873917 0.238399 +vt 0.888931 0.224120 +vt 0.905993 0.225472 +vt 0.811808 0.410320 +vt 0.803412 0.376771 +vt 0.800686 0.397311 +vt 0.796026 0.363384 +vt 0.817114 0.344572 +vt 0.818110 0.333197 +vt 0.831636 0.291570 +vt 0.837516 0.281782 +vt 0.831513 0.254167 +vt 0.845357 0.247678 +vt 0.855225 0.229459 +vt 0.871869 0.225472 +vt 0.791751 0.382713 +vt 0.794133 0.348212 +vt 0.785193 0.366904 +vt 0.791245 0.333197 +vt 0.817114 0.321823 +vt 0.821577 0.311313 +vt 0.824144 0.300187 +vt 0.809901 0.275779 +vt 0.821063 0.265329 +vt 0.824817 0.244952 +vt 0.839415 0.236017 +vt 0.781206 0.350259 +vt 0.794133 0.318183 +vt 0.779854 0.333197 +vt 0.796026 0.303011 +vt 0.803412 0.289623 +vt 0.800686 0.269084 +vt 0.811808 0.256074 +vt 0.781206 0.316135 +vt 0.785193 0.299491 +vt 0.791751 0.283681 +vt 0.301961 0.989521 +vt 0.286152 0.989521 +vt 0.286152 0.865887 +vt 0.301961 0.865887 +vt 0.269507 0.989521 +vt 0.269507 0.865887 +vt 0.286152 0.496167 +vt 0.301961 0.496167 +vt 0.252445 0.989521 +vt 0.252445 0.865887 +vt 0.269507 0.496167 +vt 0.286152 0.126237 +vt 0.301961 0.126237 +vt 0.235383 0.989521 +vt 0.235383 0.865887 +vt 0.252445 0.496167 +vt 0.269507 0.126237 +vt 0.286152 0.001975 +vt 0.301961 0.001975 +vt 0.218738 0.989521 +vt 0.218738 0.865887 +vt 0.235383 0.496167 +vt 0.252445 0.126237 +vt 0.269507 0.001975 +vt 0.202929 0.989521 +vt 0.202929 0.865887 +vt 0.218738 0.496167 +vt 0.235383 0.126237 +vt 0.252445 0.001975 +vt 0.202929 0.496167 +vt 0.218738 0.126237 +vt 0.235383 0.001975 +vt 0.202929 0.126237 +vt 0.218738 0.001975 +vt 0.202929 0.001975 +vt 0.508915 0.001975 +vt 0.524724 0.001975 +vt 0.524724 0.125609 +vt 0.508915 0.125609 +vt 0.541369 0.001975 +vt 0.541369 0.125609 +vt 0.524724 0.495329 +vt 0.508915 0.495329 +vt 0.558431 0.001975 +vt 0.558431 0.125609 +vt 0.541369 0.495329 +vt 0.524724 0.865259 +vt 0.508915 0.865259 +vt 0.575493 0.001975 +vt 0.575493 0.125609 +vt 0.558431 0.495329 +vt 0.541369 0.865259 +vt 0.524724 0.989521 +vt 0.508915 0.989521 +vt 0.592137 0.001975 +vt 0.592137 0.125609 +vt 0.575493 0.495329 +vt 0.558431 0.865259 +vt 0.541369 0.989521 +vt 0.607947 0.001975 +vt 0.607947 0.125609 +vt 0.592137 0.495329 +vt 0.575493 0.865259 +vt 0.558431 0.989521 +vt 0.607947 0.495329 +vt 0.592137 0.865259 +vt 0.575493 0.989521 +vt 0.607947 0.865259 +vt 0.592137 0.989521 +vt 0.607947 0.989521 +vn 0.017420 -0.999832 -0.005660 +vn 0.015138 -0.999856 -0.007716 +vn 0.887533 -0.088212 -0.452220 +vn 0.947353 -0.088168 -0.307813 +vn 0.014818 -0.999832 -0.010768 +vn 0.805866 -0.088168 -0.585496 +vn 0.809017 0.000000 -0.587785 +vn 0.891007 0.000000 -0.453990 +vn 0.951057 0.000000 -0.309016 +vn 0.012014 -0.999856 -0.012017 +vn 0.704350 -0.088212 -0.704350 +vn 0.010766 -0.999832 -0.014820 +vn 0.585496 -0.088168 -0.805867 +vn 0.587785 0.000000 -0.809017 +vn 0.707107 0.000000 -0.707107 +vn 0.007713 -0.999856 -0.015140 +vn 0.452221 -0.088212 -0.887533 +vn 0.005660 -0.999832 -0.017422 +vn 0.307813 -0.088168 -0.947353 +vn 0.309017 0.000000 -0.951057 +vn 0.453991 0.000000 -0.891007 +vn 0.002658 -0.999856 -0.016782 +vn 0.155824 -0.088212 -0.983838 +vn -0.000000 -0.999832 -0.018320 +vn 0.000000 -0.088168 -0.996106 +vn -0.000000 0.000000 -1.000000 +vn 0.156434 -0.000000 -0.987688 +vn -0.002658 -0.999856 -0.016781 +vn -0.155825 -0.088212 -0.983838 +vn -0.005660 -0.999832 -0.017420 +vn -0.307814 -0.088168 -0.947353 +vn -0.309017 -0.000000 -0.951056 +vn -0.156435 -0.000000 -0.987688 +vn -0.007713 -0.999856 -0.015143 +vn -0.452221 -0.088212 -0.887533 +vn -0.010766 -0.999832 -0.014822 +vn -0.585496 -0.088168 -0.805866 +vn -0.587786 0.000000 -0.809017 +vn -0.453991 0.000000 -0.891006 +vn -0.012014 -0.999856 -0.012012 +vn -0.704351 -0.088212 -0.704350 +vn -0.014818 -0.999832 -0.010764 +vn -0.805866 -0.088168 -0.585496 +vn -0.809017 0.000000 -0.587785 +vn -0.707107 0.000000 -0.707107 +vn -0.015138 -0.999856 -0.007715 +vn -0.887533 -0.088212 -0.452221 +vn -0.017420 -0.999832 -0.005660 +vn -0.947353 -0.088168 -0.307814 +vn -0.951057 0.000000 -0.309017 +vn -0.891007 0.000000 -0.453990 +vn -0.016781 -0.999856 -0.002657 +vn -0.983838 -0.088212 -0.155824 +vn -0.018316 -0.999832 -0.000001 +vn -0.996106 -0.088168 -0.000000 +vn -1.000000 0.000000 0.000000 +vn -0.987688 0.000000 -0.156434 +vn -0.016781 -0.999856 0.002659 +vn -0.983838 -0.088212 0.155825 +vn -0.017420 -0.999832 0.005665 +vn -0.947353 -0.088168 0.307814 +vn -0.951057 -0.000000 0.309017 +vn -0.987688 -0.000000 0.156434 +vn -0.015138 -0.999856 0.007714 +vn -0.887533 -0.088212 0.452221 +vn -0.014818 -0.999832 0.010764 +vn -0.805866 -0.088168 0.585496 +vn -0.809017 0.000000 0.587785 +vn -0.891007 -0.000000 0.453991 +vn -0.012014 -0.999856 0.012015 +vn -0.704350 -0.088212 0.704351 +vn -0.010766 -0.999832 0.014817 +vn -0.585496 -0.088168 0.805866 +vn -0.587785 0.000000 0.809017 +vn -0.707107 -0.000000 0.707107 +vn -0.007713 -0.999856 0.015137 +vn -0.452221 -0.088212 0.887533 +vn -0.005660 -0.999832 0.017419 +vn -0.307814 -0.088168 0.947353 +vn -0.309017 0.000000 0.951057 +vn -0.453990 0.000000 0.891007 +vn -0.002658 -0.999856 0.016780 +vn -0.155825 -0.088212 0.983838 +vn -0.000000 -0.999832 0.018316 +vn 0.000000 -0.088168 0.996106 +vn 0.000000 -0.000000 1.000000 +vn -0.156435 -0.000000 0.987688 +vn 0.002658 -0.999856 0.016782 +vn 0.155825 -0.088212 0.983838 +vn 0.005660 -0.999832 0.017421 +vn 0.307814 -0.088168 0.947353 +vn 0.309017 -0.000000 0.951057 +vn 0.156435 -0.000000 0.987688 +vn 0.007713 -0.999856 0.015139 +vn 0.452221 -0.088212 0.887533 +vn 0.010766 -0.999832 0.014822 +vn 0.585496 -0.088168 0.805867 +vn 0.587785 0.000000 0.809017 +vn 0.453991 -0.000000 0.891006 +vn 0.012014 -0.999856 0.012014 +vn 0.704350 -0.088212 0.704350 +vn 0.014818 -0.999832 0.010766 +vn 0.805866 -0.088168 0.585496 +vn 0.809017 0.000000 0.587785 +vn 0.707107 0.000000 0.707107 +vn 0.015138 -0.999856 0.007718 +vn 0.887533 -0.088212 0.452221 +vn 0.017420 -0.999832 0.005662 +vn 0.947353 -0.088168 0.307814 +vn 0.951057 0.000000 0.309017 +vn 0.891007 0.000000 0.453991 +vn 0.016781 -0.999856 0.002657 +vn 0.983838 -0.088212 0.155825 +vn 0.018316 -0.999832 -0.000000 +vn 0.996106 -0.088168 0.000001 +vn 1.000000 0.000000 0.000001 +vn 0.987688 0.000000 0.156435 +vn 0.016781 -0.999856 -0.002657 +vn 0.983838 -0.088212 -0.155823 +vn 0.987689 0.000000 -0.156433 +vn 0.002366 -0.999997 -0.001208 +vn 0.001522 -0.999998 -0.001103 +vn 0.001790 -0.999998 -0.000582 +vn 0.000000 -1.000000 0.000000 +vn 0.001878 -0.999996 -0.001873 +vn 0.001106 -0.999998 -0.001521 +vn 0.001206 -0.999996 -0.002370 +vn 0.000582 -0.999998 -0.001793 +vn 0.000415 -0.999997 -0.002624 +vn -0.000000 -0.999998 -0.001882 +vn -0.000415 -0.999996 -0.002622 +vn -0.000582 -0.999998 -0.001788 +vn -0.001206 -0.999996 -0.002367 +vn -0.001106 -0.999998 -0.001521 +vn -0.001878 -0.999996 -0.001875 +vn -0.001522 -0.999998 -0.001104 +vn -0.002366 -0.999997 -0.001205 +vn -0.001790 -0.999998 -0.000581 +vn -0.002623 -0.999996 -0.000415 +vn -0.001882 -0.999998 0.000000 +vn -0.002623 -0.999997 0.000416 +vn -0.001790 -0.999998 0.000583 +vn -0.002366 -0.999996 0.001206 +vn -0.001522 -0.999998 0.001105 +vn -0.001878 -0.999996 0.001879 +vn -0.001106 -0.999998 0.001521 +vn -0.001206 -0.999997 0.002364 +vn -0.000582 -0.999998 0.001788 +vn -0.000415 -0.999996 0.002624 +vn 0.000000 -0.999998 0.001882 +vn 0.000415 -0.999996 0.002623 +vn 0.000582 -0.999998 0.001790 +vn 0.001206 -0.999996 0.002366 +vn 0.001106 -0.999998 0.001521 +vn 0.001878 -0.999997 0.001874 +vn 0.001522 -0.999998 0.001103 +vn 0.002366 -0.999997 0.001206 +vn 0.001790 -0.999998 0.000581 +vn 0.002623 -0.999996 0.000415 +vn 0.001882 -0.999998 0.000000 +vn 0.002623 -0.999996 -0.000415 +vn 0.042098 0.999020 -0.013675 +vn 0.036608 0.999156 -0.018651 +vn 0.005724 0.999979 -0.002925 +vn 0.004329 0.999990 -0.001410 +vn 0.035811 0.999020 -0.026015 +vn 0.003682 0.999990 -0.002680 +vn -0.000000 1.000000 0.000001 +vn 0.029052 0.999156 -0.029055 +vn 0.004543 0.999979 -0.004545 +vn 0.026018 0.999020 -0.035813 +vn 0.002675 0.999990 -0.003683 +vn 0.018653 0.999156 -0.036606 +vn 0.002917 0.999979 -0.005724 +vn 0.013678 0.999020 -0.042098 +vn 0.001406 0.999990 -0.004329 +vn 0.006427 0.999156 -0.040580 +vn 0.001005 0.999979 -0.006347 +vn -0.000000 0.999020 -0.044260 +vn -0.000000 0.999990 -0.004553 +vn -0.006427 0.999156 -0.040580 +vn -0.001005 0.999979 -0.006350 +vn -0.013678 0.999020 -0.042098 +vn -0.001406 0.999990 -0.004331 +vn -0.018653 0.999156 -0.036605 +vn -0.002917 0.999979 -0.005723 +vn -0.026018 0.999020 -0.035809 +vn -0.002675 0.999990 -0.003679 +vn -0.029052 0.999156 -0.029055 +vn -0.004543 0.999979 -0.004539 +vn -0.035811 0.999020 -0.026017 +vn -0.003682 0.999990 -0.002673 +vn -0.036608 0.999156 -0.018650 +vn -0.005724 0.999979 -0.002918 +vn -0.042098 0.999020 -0.013681 +vn -0.004329 0.999990 -0.001402 +vn -0.040580 0.999156 -0.006428 +vn -0.006345 0.999979 -0.000994 +vn -0.044264 0.999020 0.000001 +vn -0.004551 0.999990 0.000008 +vn -0.040580 0.999156 0.006427 +vn -0.006345 0.999979 0.001006 +vn -0.042098 0.999020 0.013683 +vn -0.004328 0.999990 0.001413 +vn -0.036608 0.999156 0.018655 +vn -0.005724 0.999979 0.002926 +vn -0.035811 0.999020 0.026018 +vn -0.003682 0.999990 0.002679 +vn -0.029052 0.999156 0.029054 +vn -0.004543 0.999979 0.004544 +vn -0.026018 0.999020 0.035814 +vn -0.002675 0.999990 0.003684 +vn -0.018653 0.999156 0.036608 +vn -0.002917 0.999979 0.005729 +vn -0.013678 0.999020 0.042097 +vn -0.001406 0.999990 0.004333 +vn -0.006427 0.999156 0.040583 +vn -0.001005 0.999979 0.006348 +vn 0.000000 0.999020 0.044269 +vn 0.000000 0.999990 0.004553 +vn 0.006427 0.999156 0.040581 +vn 0.001005 0.999979 0.006348 +vn 0.013678 0.999020 0.042092 +vn 0.001406 0.999990 0.004330 +vn 0.018653 0.999156 0.036606 +vn 0.002917 0.999979 0.005727 +vn 0.026018 0.999020 0.035808 +vn 0.002675 0.999990 0.003683 +vn 0.029052 0.999156 0.029055 +vn 0.004543 0.999979 0.004545 +vn 0.035811 0.999020 0.026020 +vn 0.003682 0.999990 0.002669 +vn 0.036608 0.999156 0.018655 +vn 0.005724 0.999979 0.002906 +vn 0.042098 0.999020 0.013678 +vn 0.004329 0.999990 0.001400 +vn 0.040580 0.999156 0.006424 +vn 0.006345 0.999979 0.001004 +vn 0.044264 0.999020 -0.000002 +vn 0.004551 0.999990 -0.000001 +vn 0.040580 0.999156 -0.006428 +vn 0.006345 0.999979 -0.001005 +vn 0.987689 -0.000000 -0.156433 +vn 1.000000 0.000000 0.000001 +vn 0.951057 -0.000000 -0.309016 +vn 0.951057 -0.000000 -0.309016 +vn 0.987689 -0.000000 -0.156433 +vn 1.000000 0.000000 0.000001 +vn 0.987688 0.000000 0.156435 +vn 0.951057 -0.000000 0.309017 +vn 0.987688 0.000000 0.156435 +vn 0.951057 -0.000000 0.309017 +vn 0.891007 -0.000000 0.453990 +vn 0.809017 -0.000000 0.587785 +vn 0.891006 0.000000 0.453991 +vn 0.809017 0.000000 0.587785 +vn 0.707107 -0.000000 0.707107 +vn 0.587785 -0.000000 0.809017 +vn 0.707107 0.000000 0.707107 +vn 0.587785 0.000000 0.809017 +vn 0.453991 -0.000000 0.891007 +vn 0.309017 -0.000000 0.951057 +vn 0.453991 -0.000000 0.891006 +vn 0.309017 -0.000000 0.951056 +vn 0.156435 -0.000000 0.987688 +vn 0.000000 0.000000 1.000000 +vn 0.156435 -0.000000 0.987688 +vn 0.000000 0.000000 1.000000 +vn -0.156435 -0.000000 0.987688 +vn -0.309017 -0.000000 0.951057 +vn -0.156434 0.000000 0.987688 +vn -0.309017 -0.000000 0.951057 +vn -0.453991 -0.000000 0.891007 +vn -0.587785 0.000000 0.809017 +vn -0.453991 -0.000000 0.891007 +vn -0.587785 -0.000000 0.809017 +vn -0.707107 -0.000000 0.707107 +vn -0.809017 -0.000000 0.587785 +vn -0.707107 -0.000000 0.707107 +vn -0.809017 0.000000 0.587785 +vn -0.891007 -0.000000 0.453991 +vn -0.951057 0.000000 0.309017 +vn -0.891007 0.000000 0.453991 +vn -0.951057 0.000000 0.309017 +vn -0.987688 0.000000 0.156434 +vn -1.000000 0.000000 -0.000000 +vn -0.987688 0.000000 0.156434 +vn -1.000000 0.000000 0.000000 +vn -0.987688 0.000000 -0.156434 +vn -0.951057 0.000000 -0.309017 +vn -0.987688 0.000000 -0.156434 +vn -0.951057 -0.000000 -0.309017 +vn -0.891007 -0.000000 -0.453991 +vn -0.809017 -0.000000 -0.587785 +vn -0.891007 -0.000000 -0.453991 +vn -0.809017 -0.000000 -0.587785 +vn -0.707107 -0.000000 -0.707107 +vn -0.587786 -0.000000 -0.809017 +vn -0.707107 -0.000000 -0.707107 +vn -0.587786 -0.000000 -0.809017 +vn -0.453991 -0.000000 -0.891006 +vn -0.309017 -0.000000 -0.951057 +vn -0.453991 -0.000000 -0.891006 +vn -0.309017 -0.000000 -0.951056 +vn -0.156435 -0.000000 -0.987688 +vn -0.000000 0.000000 -1.000000 +vn -0.156435 0.000000 -0.987688 +vn 0.000000 0.000000 -1.000000 +vn 0.156434 0.000000 -0.987688 +vn 0.309017 0.000000 -0.951057 +vn 0.156434 0.000000 -0.987688 +vn 0.309017 0.000000 -0.951057 +vn 0.453990 0.000000 -0.891007 +vn 0.587785 -0.000000 -0.809017 +vn 0.453990 -0.000000 -0.891007 +vn 0.587785 -0.000000 -0.809017 +vn 0.707107 0.000000 -0.707107 +vn 0.809017 0.000000 -0.587785 +vn 0.707107 0.000000 -0.707107 +vn 0.809017 0.000000 -0.587785 +vn 0.891007 -0.000000 -0.453990 +vn 0.891007 -0.000000 -0.453990 +vn -0.704400 0.087413 -0.704400 +vn -0.585537 0.087384 -0.805922 +vn -0.805922 0.087384 -0.585537 +vn -0.452253 0.087413 -0.887596 +vn -0.307835 0.087384 -0.947418 +vn -0.155836 0.087413 -0.983908 +vn 0.000000 0.087384 -0.996175 +vn 0.155836 0.087413 -0.983908 +vn 0.307834 0.087384 -0.947419 +vn 0.452252 0.087413 -0.887596 +vn 0.585537 0.087384 -0.805922 +vn 0.704400 0.087413 -0.704400 +vn 0.805922 0.087384 -0.585537 +vn 0.887596 0.087413 -0.452252 +vn 0.947419 0.087384 -0.307834 +vn 0.983908 0.087413 -0.155834 +vn 0.996175 0.087384 0.000001 +vn 0.983908 0.087413 0.155836 +vn 0.947418 0.087384 0.307835 +vn 0.887596 0.087413 0.452253 +vn 0.805922 0.087384 0.585537 +vn 0.704400 0.087413 0.704400 +vn 0.585537 0.087384 0.805922 +vn 0.452253 0.087413 0.887596 +vn 0.307835 0.087384 0.947419 +vn 0.155836 0.087413 0.983908 +vn 0.000000 0.087384 0.996175 +vn -0.155836 0.087413 0.983908 +vn -0.307835 0.087384 0.947419 +vn -0.452253 0.087413 0.887596 +vn -0.585536 0.087384 0.805923 +vn -0.704400 0.087413 0.704401 +vn -0.805922 0.087384 0.585537 +vn -0.887596 0.087413 0.452252 +vn -0.947419 0.087384 0.307835 +vn -0.983908 0.087413 0.155835 +vn -0.996175 0.087384 0.000000 +vn -0.983908 0.087413 -0.155835 +vn -0.947419 0.087384 -0.307835 +vn -0.887596 0.087413 -0.452252 +s 1 +g pCylinder1 +usemtl phong1SG +f 1/151/1 101/152/2 263/153/3 102/154/4 +f 101/152/2 2/157/5 103/158/6 263/153/3 +f 263/2/3 103/5/6 62/6/7 104/3/8 +f 102/1/4 263/2/3 104/3/8 43/4/9 +f 2/157/5 105/164/10 264/165/11 103/158/6 +f 105/164/10 3/171/12 106/172/13 264/165/11 +f 264/11/11 106/19/13 61/20/14 107/12/15 +f 103/5/6 264/11/11 107/12/15 62/6/7 +f 3/171/12 108/179/16 265/180/17 106/172/13 +f 108/179/16 4/187/18 109/188/19 265/180/17 +f 265/393/17 109/394/19 60/395/20 110/396/21 +f 106/19/13 265/29/17 110/30/21 61/20/14 +f 4/187/18 111/197/22 266/198/23 109/188/19 +f 111/197/22 5/196/24 112/208/25 266/198/23 +f 266/397/23 112/401/25 59/402/26 113/398/27 +f 109/394/19 266/397/23 113/398/27 60/395/20 +f 5/196/24 114/207/28 267/220/29 112/208/25 +f 114/207/28 6/206/30 115/219/31 267/220/29 +f 267/406/29 115/412/31 58/413/32 116/407/33 +f 112/401/25 267/406/29 116/407/33 59/402/26 +f 6/206/30 117/218/34 268/232/35 115/219/31 +f 117/218/34 7/217/36 118/231/37 268/232/35 +f 268/112/35 118/102/37 57/103/38 119/113/39 +f 115/412/31 268/417/35 119/418/39 58/413/32 +f 7/217/36 120/230/40 269/244/41 118/231/37 +f 120/230/40 8/229/42 121/243/43 269/244/41 +f 269/92/41 121/84/43 56/85/44 122/93/45 +f 118/102/37 269/92/41 122/93/45 57/103/38 +f 8/229/42 123/242/46 270/256/47 121/243/43 +f 123/242/46 9/241/48 124/255/49 270/256/47 +f 270/76/47 124/77/49 55/78/50 125/79/51 +f 121/84/43 270/76/47 125/79/51 56/85/44 +f 9/241/48 126/254/52 271/265/53 124/255/49 +f 126/254/52 10/253/54 127/264/55 271/265/53 +f 271/80/53 127/86/55 54/87/56 128/81/57 +f 124/77/49 271/80/53 128/81/57 55/78/50 +f 10/253/54 129/263/58 272/270/59 127/264/55 +f 129/263/58 11/262/60 130/269/61 272/270/59 +f 272/94/59 130/104/61 53/105/62 131/95/63 +f 127/86/55 272/94/59 131/95/63 54/87/56 +f 11/262/60 132/267/64 273/271/65 130/269/61 +f 132/267/64 12/260/66 133/268/67 273/271/65 +f 273/114/65 133/122/67 52/123/68 134/115/69 +f 130/104/61 273/114/65 134/115/69 53/105/62 +f 12/260/66 135/258/70 274/266/71 133/268/67 +f 135/258/70 13/248/72 136/259/73 274/266/71 +f 274/129/71 136/135/73 51/136/74 137/130/75 +f 133/122/67 274/129/71 137/130/75 52/123/68 +f 13/248/72 138/246/76 275/257/77 136/259/73 +f 138/246/76 14/236/78 139/247/79 275/257/77 +f 275/428/77 139/429/79 50/430/80 140/431/81 +f 136/135/73 275/140/77 140/141/81 51/136/74 +f 14/236/78 141/234/82 276/245/83 139/247/79 +f 141/234/82 15/224/84 142/235/85 276/245/83 +f 276/432/83 142/436/85 49/437/86 143/433/87 +f 139/429/79 276/432/83 143/433/87 50/430/80 +f 15/224/84 144/222/88 277/233/89 142/235/85 +f 144/222/88 16/212/90 145/223/91 277/233/89 +f 277/441/89 145/447/91 48/448/92 146/442/93 +f 142/436/85 277/441/89 146/442/93 49/437/86 +f 16/212/90 147/210/94 278/221/95 145/223/91 +f 147/210/94 17/201/96 148/211/97 278/221/95 +f 278/68/95 148/63/97 47/64/98 149/69/99 +f 145/447/91 278/452/95 149/453/99 48/448/92 +f 17/201/96 150/200/100 279/209/101 148/211/97 +f 150/200/100 18/191/102 151/199/103 279/209/101 +f 279/58/101 151/52/103 46/53/104 152/59/105 +f 148/63/97 279/58/101 152/59/105 47/64/98 +f 18/191/102 153/189/106 280/190/107 151/199/103 +f 153/189/106 19/181/108 154/182/109 280/190/107 +f 280/45/107 154/37/109 45/38/110 155/46/111 +f 151/52/103 280/45/107 155/46/111 46/53/104 +f 19/181/108 156/173/112 281/174/113 154/182/109 +f 156/173/112 20/166/114 157/167/115 281/174/113 +f 281/27/113 157/17/115 44/18/116 158/28/117 +f 154/37/109 281/27/113 158/28/117 45/38/110 +f 20/166/114 159/159/118 282/160/119 157/167/115 +f 159/159/118 1/151/1 102/154/4 282/160/119 +f 282/9/119 102/1/4 43/4/9 160/10/120 +f 157/17/115 282/9/119 160/10/120 44/18/116 +f 2/157/5 101/152/2 283/156/121 161/163/122 +f 1/151/1 162/155/123 283/156/121 101/152/2 +f 41/162/124 161/163/122 283/156/121 162/155/123 +f 3/171/12 105/164/10 284/170/125 163/169/126 +f 2/157/5 161/163/122 284/170/125 105/164/10 +f 41/162/124 163/169/126 284/170/125 161/163/122 +f 4/187/18 108/179/16 285/178/127 164/177/128 +f 3/171/12 163/169/126 285/178/127 108/179/16 +f 41/162/124 164/177/128 285/178/127 163/169/126 +f 5/196/24 111/197/22 286/186/129 165/185/130 +f 4/187/18 164/177/128 286/186/129 111/197/22 +f 41/162/124 165/185/130 286/186/129 164/177/128 +f 6/206/30 114/207/28 287/195/131 166/194/132 +f 5/196/24 165/185/130 287/195/131 114/207/28 +f 41/162/124 166/194/132 287/195/131 165/185/130 +f 7/217/36 117/218/34 288/205/133 167/204/134 +f 6/206/30 166/194/132 288/205/133 117/218/34 +f 41/162/124 167/204/134 288/205/133 166/194/132 +f 8/229/42 120/230/40 289/216/135 168/215/136 +f 7/217/36 167/204/134 289/216/135 120/230/40 +f 41/162/124 168/215/136 289/216/135 167/204/134 +f 9/241/48 123/242/46 290/228/137 169/227/138 +f 8/229/42 168/215/136 290/228/137 123/242/46 +f 41/162/124 169/227/138 290/228/137 168/215/136 +f 10/253/54 126/254/52 291/240/139 170/239/140 +f 9/241/48 169/227/138 291/240/139 126/254/52 +f 41/162/124 170/239/140 291/240/139 169/227/138 +f 11/262/60 129/263/58 292/252/141 171/251/142 +f 10/253/54 170/239/140 292/252/141 129/263/58 +f 41/162/124 171/251/142 292/252/141 170/239/140 +f 12/260/66 132/267/64 293/261/143 172/250/144 +f 11/262/60 171/251/142 293/261/143 132/267/64 +f 41/162/124 172/250/144 293/261/143 171/251/142 +f 13/248/72 135/258/70 294/249/145 173/238/146 +f 12/260/66 172/250/144 294/249/145 135/258/70 +f 41/162/124 173/238/146 294/249/145 172/250/144 +f 14/236/78 138/246/76 295/237/147 174/226/148 +f 13/248/72 173/238/146 295/237/147 138/246/76 +f 41/162/124 174/226/148 295/237/147 173/238/146 +f 15/224/84 141/234/82 296/225/149 175/214/150 +f 14/236/78 174/226/148 296/225/149 141/234/82 +f 41/162/124 175/214/150 296/225/149 174/226/148 +f 16/212/90 144/222/88 297/213/151 176/203/152 +f 15/224/84 175/214/150 297/213/151 144/222/88 +f 41/162/124 176/203/152 297/213/151 175/214/150 +f 17/201/96 147/210/94 298/202/153 177/193/154 +f 16/212/90 176/203/152 298/202/153 147/210/94 +f 41/162/124 177/193/154 298/202/153 176/203/152 +f 18/191/102 150/200/100 299/192/155 178/184/156 +f 17/201/96 177/193/154 299/192/155 150/200/100 +f 41/162/124 178/184/156 299/192/155 177/193/154 +f 19/181/108 153/189/106 300/183/157 179/176/158 +f 18/191/102 178/184/156 300/183/157 153/189/106 +f 41/162/124 179/176/158 300/183/157 178/184/156 +f 20/166/114 156/173/112 301/175/159 180/168/160 +f 19/181/108 179/176/158 301/175/159 156/173/112 +f 41/162/124 180/168/160 301/175/159 179/176/158 +f 1/151/1 159/159/118 302/161/161 162/155/123 +f 20/166/114 180/168/160 302/161/161 159/159/118 +f 41/162/124 162/155/123 302/161/161 180/168/160 +f 21/272/162 181/273/163 303/274/164 182/275/165 +f 22/278/166 183/279/167 303/274/164 181/273/163 +f 42/280/168 182/275/165 303/274/164 183/279/167 +f 22/278/166 184/285/169 304/286/170 183/279/167 +f 23/292/171 185/288/172 304/286/170 184/285/169 +f 42/280/168 183/279/167 304/286/170 185/288/172 +f 23/292/171 186/300/173 305/295/174 185/288/172 +f 24/304/175 187/296/176 305/295/174 186/300/173 +f 42/280/168 185/288/172 305/295/174 187/296/176 +f 24/304/175 188/313/177 306/305/178 187/296/176 +f 25/315/179 189/306/180 306/305/178 188/313/177 +f 42/280/168 187/296/176 306/305/178 189/306/180 +f 25/315/179 190/325/181 307/316/182 189/306/180 +f 26/327/183 191/317/184 307/316/182 190/325/181 +f 42/280/168 189/306/180 307/316/182 191/317/184 +f 26/327/183 192/337/185 308/328/186 191/317/184 +f 27/339/187 193/329/188 308/328/186 192/337/185 +f 42/280/168 191/317/184 308/328/186 193/329/188 +f 27/339/187 194/349/189 309/340/190 193/329/188 +f 28/351/191 195/341/192 309/340/190 194/349/189 +f 42/280/168 193/329/188 309/340/190 195/341/192 +f 28/351/191 196/361/193 310/352/194 195/341/192 +f 29/363/195 197/353/196 310/352/194 196/361/193 +f 42/280/168 195/341/192 310/352/194 197/353/196 +f 29/363/195 198/373/197 311/364/198 197/353/196 +f 30/375/199 199/365/200 311/364/198 198/373/197 +f 42/280/168 197/353/196 311/364/198 199/365/200 +f 30/375/199 200/384/201 312/376/202 199/365/200 +f 31/386/203 201/377/204 312/376/202 200/384/201 +f 42/280/168 199/365/200 312/376/202 201/377/204 +f 31/386/203 202/387/205 313/378/206 201/377/204 +f 32/379/207 203/366/208 313/378/206 202/387/205 +f 42/280/168 201/377/204 313/378/206 203/366/208 +f 32/379/207 204/380/209 314/367/210 203/366/208 +f 33/368/211 205/354/212 314/367/210 204/380/209 +f 42/280/168 203/366/208 314/367/210 205/354/212 +f 33/368/211 206/369/213 315/355/214 205/354/212 +f 34/356/215 207/342/216 315/355/214 206/369/213 +f 42/280/168 205/354/212 315/355/214 207/342/216 +f 34/356/215 208/357/217 316/343/218 207/342/216 +f 35/344/219 209/330/220 316/343/218 208/357/217 +f 42/280/168 207/342/216 316/343/218 209/330/220 +f 35/344/219 210/345/221 317/331/222 209/330/220 +f 36/332/223 211/319/224 317/331/222 210/345/221 +f 42/280/168 209/330/220 317/331/222 211/319/224 +f 36/332/223 212/333/225 318/320/226 211/319/224 +f 37/321/227 213/309/228 318/320/226 212/333/225 +f 42/280/168 211/319/224 318/320/226 213/309/228 +f 37/321/227 214/322/229 319/310/230 213/309/228 +f 38/311/231 215/301/232 319/310/230 214/322/229 +f 42/280/168 213/309/228 319/310/230 215/301/232 +f 38/311/231 216/312/233 320/302/234 215/301/232 +f 39/303/235 217/293/236 320/302/234 216/312/233 +f 42/280/168 215/301/232 320/302/234 217/293/236 +f 39/303/235 218/297/237 321/294/238 217/293/236 +f 40/289/239 219/287/240 321/294/238 218/297/237 +f 42/280/168 217/293/236 321/294/238 219/287/240 +f 40/289/239 220/282/241 322/281/242 219/287/240 +f 21/272/162 182/275/165 322/281/242 220/282/241 +f 42/280/168 219/287/240 322/281/242 182/275/165 +f 44/18/116 160/10/120 323/16/243 221/26/244 +f 160/10/120 43/4/9 222/8/245 323/16/243 +f 323/16/243 222/8/245 70/15/246 223/25/247 +f 221/26/244 323/16/243 223/25/247 71/35/248 +f 45/38/110 158/28/117 324/36/249 224/44/250 +f 158/28/117 44/18/116 221/26/244 324/36/249 +f 324/36/249 221/26/244 71/35/248 225/43/251 +f 224/44/250 324/36/249 225/43/251 72/50/252 +f 46/53/104 155/46/111 325/51/253 226/57/254 +f 155/46/111 45/38/110 224/44/250 325/51/253 +f 325/51/253 224/44/250 72/50/252 227/56/255 +f 226/57/254 325/51/253 227/56/255 73/61/256 +f 47/64/98 152/59/105 326/62/257 228/67/258 +f 152/59/105 46/53/104 226/57/254 326/62/257 +f 326/62/257 226/57/254 73/61/256 229/66/259 +f 228/67/258 326/62/257 229/66/259 74/71/260 +f 48/448/92 149/453/99 327/457/261 230/454/262 +f 149/69/99 47/64/98 228/67/258 327/72/261 +f 327/72/261 228/67/258 74/71/260 231/74/263 +f 230/454/262 327/457/261 231/460/263 75/458/264 +f 49/437/86 146/442/93 328/449/265 232/443/266 +f 146/442/93 48/448/92 230/454/262 328/449/265 +f 328/449/265 230/454/262 75/458/264 233/455/267 +f 232/443/266 328/449/265 233/455/267 76/450/268 +f 50/430/80 143/433/87 329/438/269 234/434/270 +f 143/433/87 49/437/86 232/443/266 329/438/269 +f 329/438/269 232/443/266 76/450/268 235/444/271 +f 234/434/270 329/438/269 235/444/271 77/439/272 +f 51/136/74 140/141/81 330/145/273 236/142/274 +f 140/431/81 50/430/80 234/434/270 330/435/273 +f 330/435/273 234/434/270 77/439/272 237/440/275 +f 236/142/274 330/145/273 237/148/275 78/146/276 +f 52/123/68 137/130/75 331/137/277 238/131/278 +f 137/130/75 51/136/74 236/142/274 331/137/277 +f 331/137/277 236/142/274 78/146/276 239/143/279 +f 238/131/278 331/137/277 239/143/279 79/138/280 +f 53/105/62 134/115/69 332/124/281 240/116/282 +f 134/115/69 52/123/68 238/131/278 332/124/281 +f 332/124/281 238/131/278 79/138/280 241/132/283 +f 240/116/282 332/124/281 241/132/283 80/125/284 +f 54/87/56 131/95/63 333/106/285 242/96/286 +f 131/95/63 53/105/62 240/116/282 333/106/285 +f 333/106/285 240/116/282 80/125/284 243/117/287 +f 242/96/286 333/106/285 243/117/287 81/107/288 +f 55/78/50 128/81/57 334/88/289 244/82/290 +f 128/81/57 54/87/56 242/96/286 334/88/289 +f 334/88/289 242/96/286 81/107/288 245/97/291 +f 244/82/290 334/88/289 245/97/291 82/89/292 +f 56/85/44 125/79/51 335/83/293 246/91/294 +f 125/79/51 55/78/50 244/82/290 335/83/293 +f 335/83/293 244/82/290 82/89/292 247/90/295 +f 246/91/294 335/83/293 247/90/295 63/100/296 +f 57/103/38 122/93/45 336/101/297 248/111/298 +f 122/93/45 56/85/44 246/91/294 336/101/297 +f 336/101/297 246/91/294 63/100/296 249/110/299 +f 248/111/298 336/101/297 249/110/299 64/120/300 +f 58/413/32 119/418/39 337/422/301 250/419/302 +f 119/113/39 57/103/38 248/111/298 337/121/301 +f 337/121/301 248/111/298 64/120/300 251/128/303 +f 250/419/302 337/422/301 251/425/303 65/423/304 +f 59/402/26 116/407/33 338/414/305 252/408/306 +f 116/407/33 58/413/32 250/419/302 338/414/305 +f 338/414/305 250/419/302 65/423/304 253/420/307 +f 252/408/306 338/414/305 253/420/307 66/415/308 +f 60/395/20 113/398/27 339/403/309 254/399/310 +f 113/398/27 59/402/26 252/408/306 339/403/309 +f 339/403/309 252/408/306 66/415/308 255/409/311 +f 254/399/310 339/403/309 255/409/311 67/404/312 +f 61/20/14 110/30/21 340/39/313 256/31/314 +f 110/396/21 60/395/20 254/399/310 340/400/313 +f 340/400/313 254/399/310 67/404/312 257/405/315 +f 256/31/314 340/39/313 257/47/315 68/40/316 +f 62/6/7 107/12/15 341/21/317 258/13/318 +f 107/12/15 61/20/14 256/31/314 341/21/317 +f 341/21/317 256/31/314 68/40/316 259/32/319 +f 258/13/318 341/21/317 259/32/319 69/22/320 +f 43/4/9 104/3/8 342/7/321 222/8/245 +f 104/3/8 62/6/7 258/13/318 342/7/321 +f 342/7/321 258/13/318 69/22/320 260/14/322 +f 222/8/245 342/7/321 260/14/322 70/15/246 +f 64/120/300 249/110/299 343/119/323 261/127/324 +f 249/110/299 63/100/296 262/109/325 343/119/323 +f 343/360/323 262/362/325 28/351/191 194/349/189 +f 261/350/324 343/360/323 194/349/189 27/339/187 +f 65/423/304 251/425/303 344/427/326 83/426/327 +f 251/128/303 64/120/300 261/127/324 344/134/326 +f 344/348/326 261/350/324 27/339/187 192/337/185 +f 83/338/327 344/348/326 192/337/185 26/327/183 +f 66/415/308 253/420/307 345/424/328 84/421/329 +f 253/420/307 65/423/304 83/426/327 345/424/328 +f 345/336/328 83/338/327 26/327/183 190/325/181 +f 84/326/329 345/336/328 190/325/181 25/315/179 +f 67/404/312 255/409/311 346/416/330 85/410/331 +f 255/409/311 66/415/308 84/421/329 346/416/330 +f 346/324/330 84/326/329 25/315/179 188/313/177 +f 85/314/331 346/324/330 188/313/177 24/304/175 +f 68/40/316 257/47/315 347/54/332 86/48/333 +f 257/405/315 67/404/312 85/410/331 347/411/332 +f 347/307/332 85/314/331 24/304/175 186/300/173 +f 86/298/333 347/307/332 186/300/173 23/292/171 +f 69/22/320 259/32/319 348/41/334 87/33/335 +f 259/32/319 68/40/316 86/48/333 348/41/334 +f 348/290/334 86/298/333 23/292/171 184/285/169 +f 87/283/335 348/290/334 184/285/169 22/278/166 +f 70/15/246 260/14/322 349/23/336 88/24/337 +f 260/14/322 69/22/320 87/33/335 349/23/336 +f 349/277/336 87/283/335 22/278/166 181/273/163 +f 88/276/337 349/277/336 181/273/163 21/272/162 +f 71/35/248 223/25/247 350/34/338 89/42/339 +f 223/25/247 70/15/246 88/24/337 350/34/338 +f 350/284/338 88/276/337 21/272/162 220/282/241 +f 89/291/339 350/284/338 220/282/241 40/289/239 +f 72/50/252 225/43/251 351/49/340 90/55/341 +f 225/43/251 71/35/248 89/42/339 351/49/340 +f 351/299/340 89/291/339 40/289/239 218/297/237 +f 90/308/341 351/299/340 218/297/237 39/303/235 +f 73/61/256 227/56/255 352/60/342 91/65/343 +f 227/56/255 72/50/252 90/55/341 352/60/342 +f 352/318/342 90/308/341 39/303/235 216/312/233 +f 91/323/343 352/318/342 216/312/233 38/311/231 +f 74/71/260 229/66/259 353/70/344 92/73/345 +f 229/66/259 73/61/256 91/65/343 353/70/344 +f 353/335/344 91/323/343 38/311/231 214/322/229 +f 92/334/345 353/335/344 214/322/229 37/321/227 +f 75/458/264 231/460/263 354/462/346 93/461/347 +f 231/74/263 74/71/260 92/73/345 354/75/346 +f 354/347/346 92/334/345 37/321/227 212/333/225 +f 93/346/347 354/347/346 212/333/225 36/332/223 +f 76/450/268 233/455/267 355/459/348 94/456/349 +f 233/455/267 75/458/264 93/461/347 355/459/348 +f 355/359/348 93/346/347 36/332/223 210/345/221 +f 94/358/349 355/359/348 210/345/221 35/344/219 +f 77/439/272 235/444/271 356/451/350 95/445/351 +f 235/444/271 76/450/268 94/456/349 356/451/350 +f 356/371/350 94/358/349 35/344/219 208/357/217 +f 95/370/351 356/371/350 208/357/217 34/356/215 +f 78/146/276 237/148/275 357/150/352 96/149/353 +f 237/440/275 77/439/272 95/445/351 357/446/352 +f 357/382/352 95/370/351 34/356/215 206/369/213 +f 96/381/353 357/382/352 206/369/213 33/368/211 +f 79/138/280 239/143/279 358/147/354 97/144/355 +f 239/143/279 78/146/276 96/149/353 358/147/354 +f 358/389/354 96/381/353 33/368/211 204/380/209 +f 97/388/355 358/389/354 204/380/209 32/379/207 +f 80/125/284 241/132/283 359/139/356 98/133/357 +f 241/132/283 79/138/280 97/144/355 359/139/356 +f 359/392/356 97/388/355 32/379/207 202/387/205 +f 98/391/357 359/392/356 202/387/205 31/386/203 +f 81/107/288 243/117/287 360/126/358 99/118/359 +f 243/117/287 80/125/284 98/133/357 360/126/358 +f 360/390/358 98/391/357 31/386/203 200/384/201 +f 99/385/359 360/390/358 200/384/201 30/375/199 +f 82/89/292 245/97/291 361/108/360 100/98/361 +f 245/97/291 81/107/288 99/118/359 361/108/360 +f 361/383/360 99/385/359 30/375/199 198/373/197 +f 100/374/361 361/383/360 198/373/197 29/363/195 +f 63/100/296 247/90/295 362/99/362 262/109/325 +f 247/90/295 82/89/292 100/98/361 362/99/362 +f 362/372/362 100/374/361 29/363/195 196/361/193 +f 262/362/325 362/372/362 196/361/193 28/351/191 +g default +v 0.801141 1.855444 -0.260306 +v 0.681491 1.855444 -0.495132 +v 0.495132 1.855444 -0.681491 +v 0.260306 1.855444 -0.801141 +v -0.000000 1.855444 -0.842369 +v -0.260306 1.855444 -0.801141 +v -0.495132 1.855444 -0.681491 +v -0.681491 1.855444 -0.495132 +v -0.801141 1.855444 -0.260306 +v -0.842369 1.855444 -0.000000 +v -0.801141 1.855444 0.260306 +v -0.681491 1.855444 0.495132 +v -0.495132 1.855444 0.681491 +v -0.260306 1.855444 0.801140 +v -0.000000 1.855444 0.842369 +v 0.260306 1.855444 0.801140 +v 0.495132 1.855444 0.681491 +v 0.681491 1.855444 0.495132 +v 0.801140 1.855444 0.260306 +v 0.842369 1.855444 -0.000000 +v 0.017837 3.153616 -0.005796 +v 0.015173 3.153616 -0.011024 +v 0.011024 3.153616 -0.015173 +v 0.005795 3.153616 -0.017837 +v -0.000000 3.153616 -0.018755 +v -0.005796 3.153616 -0.017837 +v -0.011024 3.153616 -0.015173 +v -0.015173 3.153616 -0.011024 +v -0.017837 3.153616 -0.005796 +v -0.018755 3.153616 -0.000000 +v -0.017837 3.153616 0.005795 +v -0.015173 3.153616 0.011024 +v -0.011024 3.153616 0.015173 +v -0.005796 3.153616 0.017837 +v -0.000000 3.153616 0.018754 +v 0.005795 3.153616 0.017836 +v 0.011024 3.153616 0.015173 +v 0.015173 3.153616 0.011024 +v 0.017837 3.153616 0.005795 +v 0.018754 3.153616 -0.000000 +v -0.000000 1.855266 -0.000000 +v -0.000000 3.153653 -0.000000 +v 0.135897 2.993765 -0.000000 +v 0.129246 2.993765 0.041994 +v 0.109943 2.993765 0.079878 +v 0.079879 2.993765 0.109943 +v 0.041994 2.993765 0.129246 +v -0.000000 2.993765 0.135897 +v -0.041995 2.993765 0.129246 +v -0.079879 2.993765 0.109943 +v -0.109943 2.993765 0.079878 +v -0.129246 2.993765 0.041994 +v -0.135898 2.993765 -0.000000 +v -0.129246 2.993765 -0.041995 +v -0.109943 2.993765 -0.079879 +v -0.079879 2.993765 -0.109944 +v -0.041995 2.993765 -0.129246 +v -0.000000 2.993765 -0.135898 +v 0.041994 2.993765 -0.129246 +v 0.079879 2.993765 -0.109944 +v 0.109943 2.993765 -0.079879 +v 0.129246 2.993765 -0.041995 +v 0.825634 2.033506 -0.000000 +v 0.785224 2.033506 0.255135 +v 0.667952 2.033506 0.485295 +v 0.485295 2.033506 0.667952 +v 0.255135 2.033506 0.785224 +v -0.000000 2.033506 0.825634 +v -0.255135 2.033506 0.785224 +v -0.485295 2.033506 0.667952 +v -0.667952 2.033506 0.485295 +v -0.785224 2.033506 0.255135 +v -0.825634 2.033506 -0.000000 +v -0.785224 2.033506 -0.255135 +v -0.667952 2.033506 -0.485295 +v -0.485296 2.033506 -0.667952 +v -0.255135 2.033506 -0.785225 +v -0.000000 2.033506 -0.825634 +v 0.255135 2.033506 -0.785225 +v 0.485296 2.033506 -0.667952 +v 0.667952 2.033506 -0.485296 +v 0.785225 2.033506 -0.255135 +v 0.894554 1.858966 0.290658 +v 0.760953 1.858966 0.552865 +v 0.552865 1.858966 0.760953 +v 0.290658 1.858966 0.894554 +v -0.000000 1.858966 0.940590 +v -0.290658 1.858966 0.894554 +v -0.552865 1.858966 0.760953 +v -0.760953 1.858966 0.552865 +v -0.894554 1.858966 0.290658 +v -0.940590 1.858966 -0.000000 +v -0.894554 1.858966 -0.290658 +v -0.760953 1.858966 -0.552865 +v -0.552865 1.858966 -0.760953 +v -0.290658 1.858966 -0.894554 +v -0.000000 1.858966 -0.940590 +v 0.290658 1.858966 -0.894554 +v 0.552865 1.858966 -0.760954 +v 0.760954 1.858966 -0.552865 +v 0.894554 1.858966 -0.290658 +v 0.940590 1.858966 -0.000000 +v 0.552865 1.866511 0.760953 +v 0.290658 1.866511 0.894554 +v -0.000000 1.866511 0.940590 +v -0.290658 1.866511 0.894554 +v -0.552865 1.866511 0.760953 +v -0.760953 1.866511 0.552865 +v -0.894554 1.866511 0.290658 +v -0.940590 1.866511 -0.000000 +v -0.894554 1.866511 -0.290658 +v -0.760953 1.866511 -0.552865 +v -0.552865 1.866511 -0.760953 +v -0.290658 1.866511 -0.894554 +v -0.000000 1.866511 -0.940590 +v 0.290658 1.866511 -0.894554 +v 0.552865 1.866511 -0.760953 +v 0.760953 1.866511 -0.552865 +v 0.894554 1.866511 -0.290658 +v 0.940590 1.866511 -0.000000 +v 0.737447 1.855522 -0.375748 +v 0.894554 1.855977 -0.290658 +v 0.760954 1.855977 -0.552865 +v 0.838008 1.858966 -0.426986 +v 0.585241 1.855522 -0.585241 +v 0.552865 1.855977 -0.760953 +v 0.665047 1.858966 -0.665047 +v 0.375748 1.855522 -0.737447 +v 0.290658 1.855977 -0.894554 +v 0.426986 1.858966 -0.838008 +v 0.129474 1.855522 -0.817466 +v -0.000000 1.855977 -0.940590 +v 0.147129 1.858966 -0.928939 +v -0.129474 1.855522 -0.817466 +v -0.290658 1.855977 -0.894554 +v -0.147129 1.858966 -0.928939 +v -0.375748 1.855522 -0.737447 +v -0.552865 1.855977 -0.760953 +v -0.426986 1.858966 -0.838008 +v -0.585241 1.855522 -0.585241 +v -0.760953 1.855977 -0.552865 +v -0.665047 1.858966 -0.665047 +v -0.737447 1.855522 -0.375748 +v -0.894554 1.855977 -0.290658 +v -0.838007 1.858966 -0.426986 +v -0.817466 1.855522 -0.129474 +v -0.940590 1.855977 -0.000000 +v -0.928938 1.858966 -0.147129 +v -0.817466 1.855522 0.129474 +v -0.894554 1.855977 0.290658 +v -0.928938 1.858966 0.147129 +v -0.737447 1.855522 0.375748 +v -0.760953 1.855977 0.552865 +v -0.838007 1.858966 0.426986 +v -0.585241 1.855522 0.585241 +v -0.552865 1.855977 0.760953 +v -0.665046 1.858966 0.665046 +v -0.375748 1.855522 0.737446 +v -0.290658 1.855977 0.894554 +v -0.426986 1.858966 0.838007 +v -0.129474 1.855522 0.817466 +v -0.000000 1.855977 0.940590 +v -0.147129 1.858966 0.928938 +v 0.129474 1.855522 0.817466 +v 0.290658 1.855977 0.894554 +v 0.147129 1.858966 0.928938 +v 0.375748 1.855522 0.737446 +v 0.552865 1.855977 0.760953 +v 0.426986 1.858966 0.838007 +v 0.585241 1.855522 0.585241 +v 0.760953 1.855977 0.552865 +v 0.665046 1.858966 0.665046 +v 0.737446 1.855522 0.375748 +v 0.894554 1.855977 0.290658 +v 0.838007 1.858966 0.426986 +v 0.817466 1.855522 0.129474 +v 0.940590 1.855977 -0.000000 +v 0.928938 1.858966 0.147129 +v 0.817466 1.855522 -0.129474 +v 0.928938 1.858966 -0.147129 +v 0.494068 1.855267 -0.358962 +v 0.580812 1.855267 -0.188717 +v 0.358962 1.855267 -0.494068 +v 0.188717 1.855267 -0.580812 +v -0.000000 1.855267 -0.610702 +v -0.188717 1.855267 -0.580812 +v -0.358962 1.855267 -0.494068 +v -0.494068 1.855267 -0.358962 +v -0.580812 1.855267 -0.188717 +v -0.610702 1.855267 -0.000000 +v -0.580812 1.855267 0.188717 +v -0.494068 1.855267 0.358962 +v -0.358962 1.855267 0.494068 +v -0.188717 1.855267 0.580812 +v -0.000000 1.855267 0.610702 +v 0.188717 1.855267 0.580812 +v 0.358962 1.855267 0.494068 +v 0.494068 1.855267 0.358962 +v 0.580812 1.855267 0.188717 +v 0.610702 1.855267 -0.000000 +v 0.016419 3.153599 -0.008366 +v 0.012931 3.153653 -0.004202 +v 0.011000 3.153653 -0.007992 +v 0.013030 3.153599 -0.013030 +v 0.007992 3.153653 -0.011000 +v 0.008366 3.153599 -0.016419 +v 0.004201 3.153653 -0.012931 +v 0.002882 3.153599 -0.018200 +v -0.000000 3.153653 -0.013597 +v -0.002883 3.153599 -0.018200 +v -0.004202 3.153653 -0.012931 +v -0.008366 3.153599 -0.016419 +v -0.007992 3.153653 -0.011000 +v -0.013030 3.153599 -0.013030 +v -0.011000 3.153653 -0.007992 +v -0.016419 3.153599 -0.008366 +v -0.012931 3.153653 -0.004202 +v -0.018200 3.153599 -0.002883 +v -0.013597 3.153653 -0.000000 +v -0.018200 3.153599 0.002882 +v -0.012931 3.153653 0.004201 +v -0.016419 3.153599 0.008366 +v -0.011000 3.153653 0.007992 +v -0.013030 3.153599 0.013030 +v -0.007992 3.153653 0.011000 +v -0.008366 3.153599 0.016418 +v -0.004202 3.153653 0.012931 +v -0.002883 3.153599 0.018200 +v -0.000000 3.153653 0.013597 +v 0.002882 3.153599 0.018200 +v 0.004201 3.153653 0.012931 +v 0.008366 3.153599 0.016418 +v 0.007992 3.153653 0.011000 +v 0.013030 3.153599 0.013030 +v 0.011000 3.153653 0.007992 +v 0.016418 3.153599 0.008366 +v 0.012931 3.153653 0.004201 +v 0.018200 3.153599 0.002882 +v 0.013597 3.153653 -0.000000 +v 0.018200 3.153599 -0.002883 +v 0.134214 2.993765 0.021257 +v 0.019916 3.153504 0.006471 +v 0.020941 3.153504 -0.000000 +v 0.121076 2.993765 0.061691 +v 0.016942 3.153504 0.012309 +v 0.096087 2.993765 0.096087 +v 0.012309 3.153504 0.016942 +v 0.061691 2.993765 0.121076 +v 0.006471 3.153504 0.019916 +v 0.021257 2.993765 0.134214 +v -0.000000 3.153504 0.020941 +v -0.021257 2.993765 0.134214 +v -0.006471 3.153504 0.019916 +v -0.061692 2.993765 0.121076 +v -0.012309 3.153504 0.016942 +v -0.096087 2.993765 0.096087 +v -0.016942 3.153504 0.012309 +v -0.121076 2.993765 0.061691 +v -0.019917 3.153504 0.006471 +v -0.134214 2.993765 0.021257 +v -0.020941 3.153504 -0.000000 +v -0.134214 2.993765 -0.021258 +v -0.019917 3.153504 -0.006471 +v -0.121076 2.993765 -0.061692 +v -0.016942 3.153504 -0.012309 +v -0.096087 2.993765 -0.096087 +v -0.012309 3.153504 -0.016942 +v -0.061692 2.993765 -0.121076 +v -0.006471 3.153504 -0.019917 +v -0.021257 2.993765 -0.134214 +v -0.000000 3.153504 -0.020942 +v 0.021257 2.993765 -0.134214 +v 0.006471 3.153504 -0.019917 +v 0.061691 2.993765 -0.121076 +v 0.012309 3.153504 -0.016942 +v 0.096087 2.993765 -0.096087 +v 0.016942 3.153504 -0.012309 +v 0.121076 2.993765 -0.061692 +v 0.019916 3.153504 -0.006471 +v 0.134214 2.993765 -0.021258 +v 0.815406 2.033506 0.129148 +v 0.457235 2.514844 0.148565 +v 0.480765 2.514844 -0.000000 +v 0.735588 2.033506 0.374801 +v 0.388947 2.514844 0.282587 +v 0.583766 2.033506 0.583766 +v 0.282587 2.514844 0.388947 +v 0.374801 2.033506 0.735588 +v 0.148565 2.514844 0.457235 +v 0.129148 2.033506 0.815406 +v -0.000000 2.514844 0.480765 +v -0.129148 2.033506 0.815406 +v -0.148565 2.514844 0.457235 +v -0.374801 2.033506 0.735589 +v -0.282587 2.514844 0.388947 +v -0.583767 2.033506 0.583766 +v -0.388948 2.514844 0.282587 +v -0.735589 2.033506 0.374801 +v -0.457235 2.514844 0.148565 +v -0.815406 2.033506 0.129148 +v -0.480766 2.514844 -0.000000 +v -0.815406 2.033506 -0.129148 +v -0.457235 2.514844 -0.148565 +v -0.735589 2.033506 -0.374801 +v -0.388948 2.514844 -0.282587 +v -0.583767 2.033506 -0.583767 +v -0.282587 2.514844 -0.388948 +v -0.374801 2.033506 -0.735589 +v -0.148565 2.514844 -0.457235 +v -0.129148 2.033506 -0.815407 +v -0.000000 2.514844 -0.480766 +v 0.129148 2.033506 -0.815407 +v 0.148565 2.514844 -0.457235 +v 0.374801 2.033506 -0.735589 +v 0.282587 2.514844 -0.388948 +v 0.583767 2.033506 -0.583767 +v 0.388948 2.514844 -0.282587 +v 0.735589 2.033506 -0.374801 +v 0.457235 2.514844 -0.148565 +v 0.815406 2.033506 -0.129148 +v 0.760953 1.866511 0.552865 +v 0.894554 1.866511 0.290658 +v 0.838008 1.855977 -0.426986 +v 0.665047 1.855977 -0.665047 +v 0.426986 1.855977 -0.838008 +v 0.147129 1.855977 -0.928939 +v -0.147129 1.855977 -0.928939 +v -0.426986 1.855977 -0.838008 +v -0.665047 1.855977 -0.665047 +v -0.838007 1.855977 -0.426986 +v -0.928938 1.855977 -0.147129 +v -0.928938 1.855977 0.147129 +v -0.838007 1.855977 0.426986 +v -0.665046 1.855977 0.665046 +v -0.426986 1.855977 0.838007 +v -0.147129 1.855977 0.928938 +v 0.147129 1.855977 0.928938 +v 0.426986 1.855977 0.838007 +v 0.665046 1.855977 0.665046 +v 0.838007 1.855977 0.426986 +v 0.928938 1.855977 0.147129 +v 0.928938 1.855977 -0.147129 +v 0.558672 1.855267 -0.284658 +v 0.443364 1.855267 -0.443365 +v 0.284657 1.855267 -0.558672 +v 0.098086 1.855267 -0.619292 +v -0.098086 1.855267 -0.619292 +v -0.284657 1.855267 -0.558672 +v -0.443364 1.855267 -0.443364 +v -0.558672 1.855267 -0.284657 +v -0.619292 1.855267 -0.098086 +v -0.619292 1.855267 0.098086 +v -0.558672 1.855267 0.284657 +v -0.443364 1.855267 0.443364 +v -0.284657 1.855267 0.558672 +v -0.098086 1.855267 0.619292 +v 0.098086 1.855267 0.619292 +v 0.284657 1.855267 0.558671 +v 0.443364 1.855267 0.443364 +v 0.558671 1.855267 0.284657 +v 0.619292 1.855267 0.098086 +v 0.619292 1.855267 -0.098086 +v 0.012438 3.153653 -0.006338 +v 0.009871 3.153653 -0.009871 +v 0.006338 3.153653 -0.012439 +v 0.002184 3.153653 -0.013788 +v -0.002184 3.153653 -0.013788 +v -0.006338 3.153653 -0.012438 +v -0.009871 3.153653 -0.009871 +v -0.012438 3.153653 -0.006338 +v -0.013788 3.153653 -0.002184 +v -0.013788 3.153653 0.002184 +v -0.012438 3.153653 0.006337 +v -0.009871 3.153653 0.009871 +v -0.006338 3.153653 0.012438 +v -0.002184 3.153653 0.013788 +v 0.002184 3.153653 0.013788 +v 0.006338 3.153653 0.012438 +v 0.009871 3.153653 0.009871 +v 0.012438 3.153653 0.006337 +v 0.013788 3.153653 0.002184 +v 0.013788 3.153653 -0.002184 +v 0.020682 3.153504 0.003275 +v 0.018657 3.153504 0.009506 +v 0.014807 3.153504 0.014807 +v 0.009506 3.153504 0.018657 +v 0.003276 3.153504 0.020682 +v -0.003276 3.153504 0.020682 +v -0.009507 3.153504 0.018657 +v -0.014807 3.153504 0.014807 +v -0.018658 3.153504 0.009506 +v -0.020682 3.153504 0.003275 +v -0.020682 3.153504 -0.003276 +v -0.018658 3.153504 -0.009507 +v -0.014807 3.153504 -0.014807 +v -0.009507 3.153504 -0.018658 +v -0.003276 3.153504 -0.020682 +v 0.003276 3.153504 -0.020682 +v 0.009506 3.153504 -0.018658 +v 0.014807 3.153504 -0.014807 +v 0.018657 3.153504 -0.009507 +v 0.020682 3.153504 -0.003276 +v 0.474810 2.514844 0.075202 +v 0.428332 2.514844 0.218246 +v 0.339926 2.514844 0.339926 +v 0.218246 2.514844 0.428332 +v 0.075202 2.514844 0.474810 +v -0.075203 2.514844 0.474810 +v -0.218246 2.514844 0.428332 +v -0.339927 2.514844 0.339926 +v -0.428333 2.514844 0.218246 +v -0.474810 2.514844 0.075202 +v -0.474810 2.514844 -0.075203 +v -0.428333 2.514844 -0.218246 +v -0.339927 2.514844 -0.339927 +v -0.218246 2.514844 -0.428333 +v -0.075203 2.514844 -0.474810 +v 0.075202 2.514844 -0.474810 +v 0.218246 2.514844 -0.428333 +v 0.339927 2.514844 -0.339927 +v 0.428333 2.514844 -0.218246 +v 0.474810 2.514844 -0.075203 +v 0.838007 1.866511 0.426986 +v 0.665046 1.866511 0.665046 +v 0.426986 1.866511 0.838007 +v 0.147129 1.866511 0.928938 +v -0.147129 1.866511 0.928938 +v -0.426986 1.866511 0.838007 +v -0.665046 1.866511 0.665046 +v -0.838007 1.866511 0.426986 +v -0.928938 1.866511 0.147129 +v -0.928938 1.866511 -0.147129 +v -0.838007 1.866511 -0.426986 +v -0.665047 1.866511 -0.665047 +v -0.426986 1.866511 -0.838008 +v -0.147129 1.866511 -0.928939 +v 0.147129 1.866511 -0.928939 +v 0.426986 1.866511 -0.838008 +v 0.665047 1.866511 -0.665047 +v 0.838008 1.866511 -0.426986 +v 0.928938 1.866511 -0.147129 +v 0.928938 1.866511 0.147129 +vt 0.576755 0.683172 +vt 0.576755 0.645144 +vt 0.577588 0.645144 +vt 0.577588 0.683172 +vt 0.576755 0.610031 +vt 0.577588 0.610031 +vt 0.579693 0.645144 +vt 0.579693 0.683172 +vt 0.576755 0.723209 +vt 0.577588 0.723209 +vt 0.576755 0.578739 +vt 0.577588 0.578739 +vt 0.579693 0.610031 +vt 0.626275 0.659701 +vt 0.626275 0.693081 +vt 0.579693 0.723209 +vt 0.576755 0.764250 +vt 0.577588 0.764250 +vt 0.576755 0.551986 +vt 0.577588 0.551986 +vt 0.579693 0.578739 +vt 0.626275 0.628879 +vt 0.760542 0.703371 +vt 0.760542 0.722809 +vt 0.626275 0.728225 +vt 0.579693 0.764250 +vt 0.576755 0.805291 +vt 0.577588 0.805291 +vt 0.576755 0.530492 +vt 0.577588 0.530492 +vt 0.579693 0.551986 +vt 0.626275 0.601411 +vt 0.760542 0.685424 +vt 0.894135 0.747042 +vt 0.894135 0.752536 +vt 0.760542 0.743273 +vt 0.626275 0.764250 +vt 0.579693 0.805291 +vt 0.576755 0.845328 +vt 0.577588 0.845328 +vt 0.579693 0.530492 +vt 0.626275 0.577928 +vt 0.760542 0.669429 +vt 0.894135 0.741968 +vt 0.938693 0.761598 +vt 0.938693 0.762445 +vt 0.894135 0.758320 +vt 0.760542 0.764250 +vt 0.626275 0.800275 +vt 0.579693 0.845328 +vt 0.576755 0.883356 +vt 0.577588 0.883356 +vt 0.760542 0.655755 +vt 0.894135 0.737447 +vt 0.938693 0.760816 +vt 0.938693 0.763336 +vt 0.894135 0.764250 +vt 0.760542 0.785228 +vt 0.626275 0.835419 +vt 0.579693 0.883356 +vt 0.576755 0.918469 +vt 0.577588 0.918469 +vt 0.894135 0.733582 +vt 0.938693 0.760120 +vt 0.938693 0.764250 +vt 0.894135 0.770180 +vt 0.760542 0.805691 +vt 0.626275 0.868799 +vt 0.579693 0.918469 +vt 0.576755 0.949762 +vt 0.577588 0.949762 +vt 0.938693 0.759524 +vt 0.938693 0.765164 +vt 0.894135 0.775964 +vt 0.760542 0.825129 +vt 0.626275 0.899621 +vt 0.579693 0.949762 +vt 0.576755 0.976514 +vt 0.577588 0.976514 +vt 0.938693 0.766055 +vt 0.894135 0.781459 +vt 0.760542 0.843076 +vt 0.626275 0.927089 +vt 0.579693 0.976514 +vt 0.576755 0.998008 +vt 0.577588 0.998008 +vt 0.938693 0.766902 +vt 0.894135 0.786532 +vt 0.760542 0.859071 +vt 0.626275 0.950572 +vt 0.579693 0.998008 +vt 0.938693 0.767684 +vt 0.894135 0.791053 +vt 0.760542 0.872745 +vt 0.938693 0.768380 +vt 0.894135 0.794918 +vt 0.938693 0.768976 +vt 0.209045 0.883356 +vt 0.209045 0.845328 +vt 0.209879 0.845328 +vt 0.209879 0.883356 +vt 0.209045 0.805291 +vt 0.209879 0.805291 +vt 0.211984 0.845328 +vt 0.211984 0.883356 +vt 0.209045 0.918469 +vt 0.209879 0.918469 +vt 0.209045 0.764250 +vt 0.209879 0.764250 +vt 0.211984 0.805291 +vt 0.258566 0.835419 +vt 0.258566 0.868799 +vt 0.211984 0.918469 +vt 0.209045 0.949761 +vt 0.209879 0.949761 +vt 0.209045 0.723209 +vt 0.209879 0.723209 +vt 0.211984 0.764250 +vt 0.258566 0.800275 +vt 0.392833 0.805691 +vt 0.392833 0.825129 +vt 0.258566 0.899621 +vt 0.211984 0.949761 +vt 0.209045 0.976514 +vt 0.209879 0.976514 +vt 0.209045 0.683172 +vt 0.209879 0.683172 +vt 0.211984 0.723209 +vt 0.258566 0.764250 +vt 0.392833 0.785227 +vt 0.526425 0.775964 +vt 0.526425 0.781458 +vt 0.392833 0.843076 +vt 0.258566 0.927089 +vt 0.211984 0.976514 +vt 0.209045 0.998008 +vt 0.209879 0.998008 +vt 0.209045 0.645144 +vt 0.209879 0.645144 +vt 0.211984 0.683172 +vt 0.258566 0.728225 +vt 0.392833 0.764250 +vt 0.526425 0.770180 +vt 0.570984 0.766055 +vt 0.570984 0.766902 +vt 0.526425 0.786532 +vt 0.392833 0.859071 +vt 0.258566 0.950572 +vt 0.211984 0.998008 +vt 0.209045 0.610031 +vt 0.209879 0.610031 +vt 0.211984 0.645144 +vt 0.258566 0.693081 +vt 0.392833 0.743273 +vt 0.526425 0.764250 +vt 0.570984 0.765164 +vt 0.570984 0.767684 +vt 0.526425 0.791053 +vt 0.392833 0.872745 +vt 0.209045 0.578739 +vt 0.209879 0.578739 +vt 0.211984 0.610031 +vt 0.258566 0.659701 +vt 0.392833 0.722809 +vt 0.526425 0.758320 +vt 0.570984 0.764250 +vt 0.570984 0.768380 +vt 0.526425 0.794918 +vt 0.209045 0.551986 +vt 0.209879 0.551986 +vt 0.211984 0.578739 +vt 0.258566 0.628879 +vt 0.392833 0.703371 +vt 0.526425 0.752536 +vt 0.570984 0.763336 +vt 0.570984 0.768976 +vt 0.209045 0.530492 +vt 0.209879 0.530492 +vt 0.211984 0.551986 +vt 0.258566 0.601411 +vt 0.392833 0.685424 +vt 0.526425 0.747042 +vt 0.570984 0.762445 +vt 0.211984 0.530492 +vt 0.258566 0.577928 +vt 0.392833 0.669429 +vt 0.526425 0.741968 +vt 0.570984 0.761598 +vt 0.392833 0.655755 +vt 0.526425 0.737447 +vt 0.570984 0.760816 +vt 0.526425 0.733582 +vt 0.570984 0.760120 +vt 0.570984 0.759524 +vt 0.487721 0.191754 +vt 0.469954 0.159552 +vt 0.498005 0.145259 +vt 0.513778 0.183287 +vt 0.426261 0.211723 +vt 0.420085 0.184961 +vt 0.454345 0.126250 +vt 0.476511 0.110146 +vt 0.492274 0.228249 +vt 0.523369 0.223324 +vt 0.436995 0.237004 +vt 0.264246 0.264365 +vt 0.402064 0.164234 +vt 0.427497 0.101115 +vt 0.449758 0.078853 +vt 0.499221 0.264365 +vt 0.526619 0.264365 +vt 0.434599 0.264365 +vt 0.364377 0.126547 +vt 0.387921 0.140691 +vt 0.402361 0.074266 +vt 0.418465 0.052101 +vt 0.492274 0.300481 +vt 0.523369 0.305406 +vt 0.436995 0.291726 +vt 0.426261 0.317007 +vt 0.316888 0.102350 +vt 0.343650 0.108526 +vt 0.369059 0.058658 +vt 0.383352 0.030607 +vt 0.487721 0.336976 +vt 0.513778 0.345443 +vt 0.420085 0.343769 +vt 0.402064 0.364495 +vt 0.264246 0.094013 +vt 0.291607 0.091616 +vt 0.336858 0.040891 +vt 0.345324 0.014834 +vt 0.469953 0.369178 +vt 0.498004 0.383471 +vt 0.454345 0.402480 +vt 0.387921 0.388039 +vt 0.364377 0.402183 +vt 0.211605 0.102350 +vt 0.236886 0.091616 +vt 0.264246 0.029390 +vt 0.300363 0.036337 +vt 0.305288 0.005242 +vt 0.476511 0.418584 +vt 0.427496 0.427615 +vt 0.402361 0.454463 +vt 0.343650 0.420204 +vt 0.316888 0.426380 +vt 0.164116 0.126547 +vt 0.184843 0.108526 +vt 0.191635 0.040891 +vt 0.228130 0.036337 +vt 0.264246 0.001992 +vt 0.449758 0.449876 +vt 0.369059 0.470072 +vt 0.418465 0.476629 +vt 0.336858 0.487839 +vt 0.291607 0.437113 +vt 0.264246 0.434717 +vt 0.126429 0.164234 +vt 0.140572 0.140691 +vt 0.126132 0.074267 +vt 0.159434 0.058658 +vt 0.183169 0.014834 +vt 0.223205 0.005242 +vt 0.383352 0.498123 +vt 0.300363 0.492393 +vt 0.345324 0.513896 +vt 0.264246 0.499340 +vt 0.236886 0.437113 +vt 0.211605 0.426380 +vt 0.102232 0.211723 +vt 0.108408 0.184961 +vt 0.074148 0.126250 +vt 0.100996 0.101115 +vt 0.110028 0.052101 +vt 0.145141 0.030607 +vt 0.305287 0.523488 +vt 0.228130 0.492393 +vt 0.264246 0.526738 +vt 0.191635 0.487839 +vt 0.184843 0.420204 +vt 0.164116 0.402183 +vt 0.093894 0.264365 +vt 0.091498 0.237004 +vt 0.040772 0.191754 +vt 0.058539 0.159552 +vt 0.051982 0.110146 +vt 0.078735 0.078854 +vt 0.223206 0.523488 +vt 0.159434 0.470072 +vt 0.183169 0.513896 +vt 0.126132 0.454463 +vt 0.140572 0.388039 +vt 0.126429 0.364495 +vt 0.102232 0.317007 +vt 0.091498 0.291726 +vt 0.029272 0.264365 +vt 0.036219 0.228249 +vt 0.014715 0.183287 +vt 0.030489 0.145259 +vt 0.145141 0.498123 +vt 0.100996 0.427615 +vt 0.110028 0.476629 +vt 0.074148 0.402480 +vt 0.108408 0.343769 +vt 0.040772 0.336976 +vt 0.036219 0.300481 +vt 0.001874 0.264365 +vt 0.005124 0.223324 +vt 0.078735 0.449876 +vt 0.058539 0.369178 +vt 0.051982 0.418584 +vt 0.014715 0.345443 +vt 0.005124 0.305406 +vt 0.030489 0.383471 +vt 0.692856 0.265982 +vt 0.692460 0.266698 +vt 0.691350 0.266133 +vt 0.691488 0.265537 +vt 0.693436 0.266170 +vt 0.693085 0.267017 +vt 0.692113 0.267440 +vt 0.690949 0.266594 +vt 0.687881 0.264365 +vt 0.691727 0.264974 +vt 0.692957 0.265169 +vt 0.692606 0.267799 +vt 0.693650 0.265279 +vt 0.691515 0.268000 +vt 0.690634 0.267118 +vt 0.691673 0.264365 +vt 0.690110 0.267433 +vt 0.693112 0.264365 +vt 0.692011 0.268495 +vt 0.693722 0.264365 +vt 0.690956 0.268597 +vt 0.691488 0.263193 +vt 0.691727 0.263756 +vt 0.689648 0.267835 +vt 0.689053 0.267972 +vt 0.692957 0.263561 +vt 0.691314 0.269091 +vt 0.693650 0.263451 +vt 0.690214 0.268945 +vt 0.690949 0.262136 +vt 0.691350 0.262597 +vt 0.692856 0.262748 +vt 0.689497 0.269340 +vt 0.688490 0.268211 +vt 0.687881 0.268158 +vt 0.690532 0.269569 +vt 0.693436 0.262560 +vt 0.690110 0.261297 +vt 0.690634 0.261611 +vt 0.692113 0.261290 +vt 0.692460 0.262031 +vt 0.688685 0.269442 +vt 0.689686 0.269921 +vt 0.687881 0.269596 +vt 0.687271 0.268211 +vt 0.686709 0.267972 +vt 0.710162 0.295033 +vt 0.705089 0.298139 +vt 0.693085 0.261713 +vt 0.689053 0.260758 +vt 0.689648 0.260895 +vt 0.690956 0.260133 +vt 0.691515 0.260730 +vt 0.692606 0.260931 +vt 0.688794 0.270134 +vt 0.699595 0.300418 +vt 0.687076 0.269442 +vt 0.687881 0.270206 +vt 0.686264 0.269340 +vt 0.686113 0.267835 +vt 0.685651 0.267433 +vt 0.766707 0.372860 +vt 0.748759 0.383846 +vt 0.687881 0.260572 +vt 0.688490 0.260519 +vt 0.689497 0.259390 +vt 0.690214 0.259785 +vt 0.691314 0.259639 +vt 0.692011 0.260235 +vt 0.693810 0.301803 +vt 0.729322 0.391908 +vt 0.686967 0.270134 +vt 0.687881 0.302273 +vt 0.685547 0.268945 +vt 0.686076 0.269921 +vt 0.684806 0.268597 +vt 0.685127 0.267118 +vt 0.684812 0.266594 +vt 0.823251 0.450687 +vt 0.792430 0.469554 +vt 0.686709 0.260758 +vt 0.687271 0.260519 +vt 0.687881 0.259133 +vt 0.688685 0.259288 +vt 0.689686 0.258809 +vt 0.690532 0.259161 +vt 0.708858 0.396811 +vt 0.759049 0.483399 +vt 0.681951 0.301803 +vt 0.687881 0.398472 +vt 0.685229 0.269569 +vt 0.676166 0.300417 +vt 0.684246 0.268000 +vt 0.684447 0.269091 +vt 0.683648 0.267440 +vt 0.684411 0.266133 +vt 0.684273 0.265537 +vt 0.842100 0.476629 +vt 0.806986 0.498123 +vt 0.685651 0.261297 +vt 0.686113 0.260895 +vt 0.686264 0.259390 +vt 0.687076 0.259288 +vt 0.687881 0.258523 +vt 0.688794 0.258596 +vt 0.699595 0.228312 +vt 0.705089 0.230591 +vt 0.710162 0.233697 +vt 0.723906 0.491818 +vt 0.768958 0.513896 +vt 0.666903 0.396811 +vt 0.687881 0.494671 +vt 0.670672 0.298138 +vt 0.646439 0.391908 +vt 0.683750 0.268495 +vt 0.665599 0.295033 +vt 0.683301 0.266698 +vt 0.683155 0.267799 +vt 0.682905 0.265982 +vt 0.684034 0.264974 +vt 0.684088 0.264365 +vt 0.684812 0.262136 +vt 0.685127 0.261611 +vt 0.684806 0.260133 +vt 0.685547 0.259785 +vt 0.686076 0.258809 +vt 0.686967 0.258596 +vt 0.687881 0.226457 +vt 0.693810 0.226927 +vt 0.729322 0.136821 +vt 0.748759 0.144884 +vt 0.766707 0.155870 +vt 0.728922 0.523488 +vt 0.651856 0.491818 +vt 0.687881 0.526738 +vt 0.627002 0.383846 +vt 0.616712 0.483399 +vt 0.609054 0.372860 +vt 0.682676 0.267017 +vt 0.682804 0.265169 +vt 0.682325 0.266170 +vt 0.682649 0.264365 +vt 0.684034 0.263756 +vt 0.684273 0.263193 +vt 0.684411 0.262597 +vt 0.683648 0.261290 +vt 0.684246 0.260730 +vt 0.684447 0.259639 +vt 0.685229 0.259161 +vt 0.676166 0.228312 +vt 0.681951 0.226927 +vt 0.687881 0.130258 +vt 0.708858 0.131919 +vt 0.759049 0.045331 +vt 0.792430 0.059176 +vt 0.823251 0.078043 +vt 0.646840 0.523488 +vt 0.583332 0.469554 +vt 0.606803 0.513896 +vt 0.552510 0.450687 +vt 0.682112 0.265279 +vt 0.682804 0.263561 +vt 0.682039 0.264365 +vt 0.682905 0.262748 +vt 0.683301 0.262031 +vt 0.683155 0.260931 +vt 0.683750 0.260235 +vt 0.665599 0.233697 +vt 0.670672 0.230591 +vt 0.646439 0.136821 +vt 0.666903 0.131919 +vt 0.687881 0.034059 +vt 0.723906 0.036911 +vt 0.768958 0.014834 +vt 0.806986 0.030607 +vt 0.842099 0.052101 +vt 0.568775 0.498123 +vt 0.533662 0.476629 +vt 0.682112 0.263451 +vt 0.682325 0.262560 +vt 0.682676 0.261713 +vt 0.609054 0.155870 +vt 0.627002 0.144884 +vt 0.616712 0.045331 +vt 0.651856 0.036911 +vt 0.687881 0.001992 +vt 0.728922 0.005242 +vt 0.552510 0.078043 +vt 0.583332 0.059176 +vt 0.606803 0.014834 +vt 0.646840 0.005242 +vt 0.533662 0.052101 +vt 0.568775 0.030607 +vt 0.203275 0.530492 +vt 0.203275 0.568520 +vt 0.202441 0.568520 +vt 0.202441 0.530492 +vt 0.203275 0.608557 +vt 0.202441 0.608557 +vt 0.200336 0.568520 +vt 0.200336 0.530492 +vt 0.203275 0.649598 +vt 0.202441 0.649598 +vt 0.200336 0.608557 +vt 0.203275 0.690639 +vt 0.202441 0.690639 +vt 0.200336 0.649598 +vt 0.203275 0.730675 +vt 0.202441 0.730675 +vt 0.200336 0.690639 +vt 0.203275 0.768703 +vt 0.202441 0.768703 +vt 0.200336 0.730675 +vt 0.200336 0.768703 +vt 0.191628 0.768703 +vt 0.191628 0.730675 +vt 0.192461 0.730675 +vt 0.192461 0.768703 +vt 0.191628 0.690639 +vt 0.192461 0.690639 +vt 0.194566 0.730675 +vt 0.194566 0.768703 +vt 0.191628 0.649598 +vt 0.192461 0.649598 +vt 0.194566 0.690639 +vt 0.191628 0.608557 +vt 0.192461 0.608557 +vt 0.194566 0.649598 +vt 0.191628 0.568520 +vt 0.192461 0.568520 +vt 0.194566 0.608557 +vt 0.191628 0.530492 +vt 0.192461 0.530492 +vt 0.194566 0.568520 +vt 0.194566 0.530492 +vn 0.002434 -0.999997 -0.000790 +vn 0.002115 -0.999997 -0.001077 +vn 0.032307 -0.999343 -0.016461 +vn 0.034423 -0.999345 -0.011185 +vn 0.002070 -0.999997 -0.001504 +vn 0.029282 -0.999345 -0.021275 +vn 0.809016 0.000005 -0.587787 +vn 0.891007 0.000005 -0.453990 +vn 0.951057 0.000002 -0.309015 +vn 0.001678 -0.999997 -0.001678 +vn 0.025639 -0.999343 -0.025639 +vn 0.001504 -0.999997 -0.002070 +vn 0.021275 -0.999345 -0.029282 +vn 0.587787 0.000000 -0.809016 +vn 0.707108 0.000002 -0.707106 +vn 0.001077 -0.999997 -0.002114 +vn 0.016461 -0.999343 -0.032307 +vn 0.000791 -0.999997 -0.002434 +vn 0.011185 -0.999345 -0.034423 +vn 0.309016 0.000000 -0.951057 +vn 0.453990 -0.000000 -0.891007 +vn 0.000371 -0.999997 -0.002345 +vn 0.005672 -0.999343 -0.035813 +vn -0.000000 -0.999997 -0.002559 +vn -0.000000 -0.999345 -0.036193 +vn 0.000000 -0.000001 -1.000000 +vn 0.156434 0.000000 -0.987689 +vn -0.000371 -0.999997 -0.002344 +vn -0.005672 -0.999343 -0.035811 +vn -0.000791 -0.999997 -0.002434 +vn -0.011185 -0.999345 -0.034424 +vn -0.309019 0.000002 -0.951056 +vn -0.156434 -0.000001 -0.987688 +vn -0.001077 -0.999997 -0.002115 +vn -0.016462 -0.999343 -0.032308 +vn -0.001504 -0.999997 -0.002070 +vn -0.021275 -0.999345 -0.029281 +vn -0.587785 -0.000003 -0.809017 +vn -0.453995 0.000000 -0.891005 +vn -0.001678 -0.999997 -0.001678 +vn -0.025639 -0.999343 -0.025639 +vn -0.002070 -0.999997 -0.001505 +vn -0.029282 -0.999345 -0.021276 +vn -0.809016 0.000000 -0.587787 +vn -0.707106 -0.000001 -0.707107 +vn -0.002115 -0.999997 -0.001078 +vn -0.032308 -0.999342 -0.016462 +vn -0.002434 -0.999997 -0.000791 +vn -0.034423 -0.999345 -0.011186 +vn -0.951057 0.000000 -0.309016 +vn -0.891006 0.000000 -0.453992 +vn -0.002344 -0.999997 -0.000371 +vn -0.035813 -0.999343 -0.005672 +vn -0.002559 -0.999997 0.000000 +vn -0.036195 -0.999345 0.000000 +vn -1.000000 0.000000 0.000000 +vn -0.987688 0.000000 -0.156434 +vn -0.002344 -0.999997 0.000371 +vn -0.035813 -0.999343 0.005672 +vn -0.002434 -0.999997 0.000791 +vn -0.034423 -0.999345 0.011185 +vn -0.951057 0.000000 0.309016 +vn -0.987688 0.000000 0.156434 +vn -0.002115 -0.999997 0.001078 +vn -0.032308 -0.999342 0.016462 +vn -0.002070 -0.999997 0.001504 +vn -0.029282 -0.999345 0.021275 +vn -0.809018 -0.000000 0.587784 +vn -0.891007 0.000000 0.453989 +vn -0.001678 -0.999997 0.001678 +vn -0.025639 -0.999343 0.025639 +vn -0.001504 -0.999997 0.002070 +vn -0.021275 -0.999345 0.029282 +vn -0.587786 -0.000000 0.809017 +vn -0.707106 0.000000 0.707107 +vn -0.001077 -0.999997 0.002115 +vn -0.016462 -0.999343 0.032308 +vn -0.000791 -0.999997 0.002434 +vn -0.011185 -0.999345 0.034423 +vn -0.309020 0.000003 0.951056 +vn -0.453994 0.000001 0.891005 +vn -0.000371 -0.999997 0.002344 +vn -0.005672 -0.999343 0.035813 +vn 0.000000 -0.999997 0.002559 +vn -0.000000 -0.999345 0.036196 +vn 0.000000 -0.000003 1.000000 +vn -0.156434 -0.000000 0.987688 +vn 0.000371 -0.999997 0.002344 +vn 0.005672 -0.999342 0.035813 +vn 0.000791 -0.999997 0.002434 +vn 0.011185 -0.999345 0.034424 +vn 0.309020 0.000000 0.951056 +vn 0.156434 -0.000001 0.987688 +vn 0.001077 -0.999997 0.002114 +vn 0.016462 -0.999343 0.032308 +vn 0.001504 -0.999997 0.002070 +vn 0.021275 -0.999345 0.029282 +vn 0.587784 0.000003 0.809018 +vn 0.453994 0.000001 0.891005 +vn 0.001678 -0.999997 0.001678 +vn 0.025640 -0.999343 0.025638 +vn 0.002070 -0.999997 0.001504 +vn 0.029282 -0.999345 0.021274 +vn 0.809017 0.000002 0.587786 +vn 0.707106 0.000004 0.707107 +vn 0.002115 -0.999997 0.001078 +vn 0.032308 -0.999342 0.016462 +vn 0.002434 -0.999997 0.000791 +vn 0.034423 -0.999345 0.011185 +vn 0.951057 0.000000 0.309017 +vn 0.891006 0.000000 0.453991 +vn 0.002344 -0.999997 0.000371 +vn 0.035813 -0.999343 0.005672 +vn 0.002559 -0.999997 0.000000 +vn 0.036195 -0.999345 -0.000000 +vn 1.000000 0.000000 0.000001 +vn 0.987688 0.000000 0.156435 +vn 0.002344 -0.999997 -0.000371 +vn 0.035813 -0.999343 -0.005673 +vn 0.987689 0.000000 -0.156433 +vn 0.000331 -1.000000 -0.000168 +vn 0.000213 -1.000000 -0.000155 +vn 0.000250 -1.000000 -0.000081 +vn 0.000000 -1.000000 -0.000000 +vn 0.000262 -1.000000 -0.000263 +vn 0.000155 -1.000000 -0.000213 +vn 0.000168 -1.000000 -0.000331 +vn 0.000081 -1.000000 -0.000250 +vn 0.000058 -1.000000 -0.000367 +vn -0.000000 -1.000000 -0.000263 +vn -0.000058 -1.000000 -0.000367 +vn -0.000081 -1.000000 -0.000250 +vn -0.000168 -1.000000 -0.000330 +vn -0.000155 -1.000000 -0.000213 +vn -0.000262 -1.000000 -0.000263 +vn -0.000213 -1.000000 -0.000155 +vn -0.000331 -1.000000 -0.000169 +vn -0.000250 -1.000000 -0.000081 +vn -0.000366 -1.000000 -0.000058 +vn -0.000263 -1.000000 0.000000 +vn -0.000366 -1.000000 0.000058 +vn -0.000250 -1.000000 0.000082 +vn -0.000331 -1.000000 0.000169 +vn -0.000213 -1.000000 0.000155 +vn -0.000262 -1.000000 0.000262 +vn -0.000155 -1.000000 0.000213 +vn -0.000168 -1.000000 0.000331 +vn -0.000081 -1.000000 0.000250 +vn -0.000058 -1.000000 0.000366 +vn 0.000000 -1.000000 0.000263 +vn 0.000058 -1.000000 0.000366 +vn 0.000081 -1.000000 0.000250 +vn 0.000168 -1.000000 0.000331 +vn 0.000155 -1.000000 0.000213 +vn 0.000262 -1.000000 0.000262 +vn 0.000213 -1.000000 0.000154 +vn 0.000331 -1.000000 0.000168 +vn 0.000250 -1.000000 0.000081 +vn 0.000366 -1.000000 0.000058 +vn 0.000263 -1.000000 0.000000 +vn 0.000366 -1.000000 -0.000058 +vn 0.022932 0.999709 -0.007438 +vn 0.019936 0.999750 -0.010150 +vn 0.003126 0.999994 -0.001601 +vn 0.002364 0.999997 -0.000717 +vn 0.019508 0.999709 -0.014181 +vn 0.002011 0.999997 -0.001473 +vn 0.000000 1.000000 0.000004 +vn 0.015821 0.999749 -0.015868 +vn 0.002480 0.999994 -0.002501 +vn 0.014172 0.999708 -0.019555 +vn 0.001461 0.999997 -0.002043 +vn 0.010157 0.999749 -0.019971 +vn 0.001592 0.999994 -0.003181 +vn 0.007451 0.999710 -0.022907 +vn 0.000768 0.999997 -0.002378 +vn 0.003500 0.999751 -0.022057 +vn 0.000549 0.999994 -0.003456 +vn -0.000000 0.999710 -0.024067 +vn -0.000000 0.999997 -0.002496 +vn -0.003500 0.999749 -0.022117 +vn -0.000549 0.999994 -0.003505 +vn -0.007451 0.999709 -0.022952 +vn -0.000768 0.999997 -0.002359 +vn -0.010157 0.999749 -0.019953 +vn -0.001592 0.999994 -0.003107 +vn -0.014173 0.999709 -0.019520 +vn -0.001461 0.999997 -0.001999 +vn -0.015821 0.999749 -0.015845 +vn -0.002480 0.999994 -0.002495 +vn -0.019508 0.999709 -0.014203 +vn -0.002011 0.999997 -0.001483 +vn -0.019936 0.999750 -0.010162 +vn -0.003126 0.999994 -0.001601 +vn -0.022932 0.999709 -0.007427 +vn -0.002364 0.999997 -0.000810 +vn -0.022099 0.999750 -0.003462 +vn -0.003465 0.999994 -0.000608 +vn -0.024113 0.999709 -0.000036 +vn -0.002486 0.999997 -0.000004 +vn -0.022099 0.999750 0.003432 +vn -0.003465 0.999994 0.000597 +vn -0.022932 0.999709 0.007457 +vn -0.002364 0.999997 0.000812 +vn -0.019936 0.999750 0.010173 +vn -0.003126 0.999994 0.001594 +vn -0.019508 0.999709 0.014184 +vn -0.002011 0.999997 0.001468 +vn -0.015821 0.999750 0.015821 +vn -0.002480 0.999994 0.002488 +vn -0.014173 0.999709 0.019506 +vn -0.001461 0.999997 0.001987 +vn -0.010157 0.999750 0.019936 +vn -0.001592 0.999994 0.003087 +vn -0.007451 0.999710 0.022921 +vn -0.000768 0.999997 0.002349 +vn -0.003500 0.999749 0.022132 +vn -0.000549 0.999994 0.003513 +vn 0.000000 0.999709 0.024126 +vn 0.000000 0.999997 0.002502 +vn 0.003500 0.999749 0.022137 +vn 0.000549 0.999994 0.003485 +vn 0.007451 0.999709 0.022949 +vn 0.000768 0.999997 0.002381 +vn 0.010157 0.999750 0.019923 +vn 0.001592 0.999994 0.003134 +vn 0.014173 0.999709 0.019498 +vn 0.001461 0.999997 0.002011 +vn 0.015821 0.999750 0.015820 +vn 0.002480 0.999994 0.002481 +vn 0.019508 0.999709 0.014160 +vn 0.002011 0.999997 0.001462 +vn 0.019936 0.999749 0.010186 +vn 0.003126 0.999994 0.001615 +vn 0.022932 0.999709 0.007484 +vn 0.002364 0.999997 0.000785 +vn 0.022099 0.999750 0.003508 +vn 0.003465 0.999994 0.000560 +vn 0.024113 0.999709 0.000030 +vn 0.002486 0.999997 0.000054 +vn 0.022099 0.999750 -0.003463 +vn 0.003465 0.999994 -0.000461 +vn 0.771793 0.584338 0.250768 +vn 0.801540 0.584309 0.126951 +vn 0.800439 0.585856 0.126770 +vn 0.770732 0.585885 0.250421 +vn 0.811510 0.584338 0.000000 +vn 0.810394 0.585885 0.000000 +vn 0.656526 0.584338 0.476993 +vn 0.723081 0.584308 0.368427 +vn 0.722087 0.585855 0.367919 +vn 0.655626 0.585885 0.476334 +vn 0.476993 0.584338 0.656526 +vn 0.573840 0.584309 0.573838 +vn 0.573053 0.585858 0.573045 +vn 0.476333 0.585884 0.655627 +vn 0.250770 0.584338 0.771792 +vn 0.368426 0.584308 0.723081 +vn 0.367916 0.585855 0.722089 +vn 0.250424 0.585886 0.770731 +vn 0.000001 0.584338 0.811510 +vn 0.126952 0.584308 0.801540 +vn 0.126778 0.585856 0.800438 +vn 0.000001 0.585885 0.810394 +vn -0.250770 0.584338 0.771792 +vn -0.126951 0.584308 0.801540 +vn -0.126776 0.585856 0.800438 +vn -0.250424 0.585884 0.770732 +vn -0.476994 0.584338 0.656526 +vn -0.368427 0.584309 0.723080 +vn -0.367918 0.585858 0.722085 +vn -0.476337 0.585888 0.655621 +vn -0.656527 0.584338 0.476992 +vn -0.573839 0.584308 0.573840 +vn -0.573051 0.585856 0.573049 +vn -0.655626 0.585885 0.476334 +vn -0.771793 0.584338 0.250769 +vn -0.723081 0.584309 0.368425 +vn -0.722088 0.585856 0.367914 +vn -0.770732 0.585885 0.250421 +vn -0.811511 0.584338 -0.000000 +vn -0.801541 0.584308 0.126951 +vn -0.800438 0.585856 0.126776 +vn -0.810395 0.585885 -0.000000 +vn -0.771793 0.584338 -0.250768 +vn -0.801541 0.584308 -0.126951 +vn -0.800438 0.585856 -0.126776 +vn -0.770732 0.585885 -0.250421 +vn -0.656526 0.584338 -0.476993 +vn -0.723081 0.584308 -0.368427 +vn -0.722087 0.585855 -0.367919 +vn -0.655626 0.585885 -0.476334 +vn -0.476993 0.584338 -0.656526 +vn -0.573841 0.584309 -0.573838 +vn -0.573053 0.585858 -0.573045 +vn -0.476334 0.585884 -0.655626 +vn -0.250770 0.584338 -0.771792 +vn -0.368427 0.584308 -0.723081 +vn -0.367916 0.585855 -0.722089 +vn -0.250424 0.585885 -0.770731 +vn -0.000000 0.584338 -0.811510 +vn -0.126952 0.584309 -0.801540 +vn -0.126777 0.585856 -0.800437 +vn -0.000001 0.585886 -0.810394 +vn 0.250770 0.584338 -0.771793 +vn 0.126952 0.584309 -0.801540 +vn 0.126776 0.585857 -0.800437 +vn 0.250424 0.585886 -0.770730 +vn 0.476993 0.584338 -0.656526 +vn 0.368426 0.584308 -0.723081 +vn 0.367916 0.585856 -0.722088 +vn 0.476335 0.585886 -0.655623 +vn 0.656527 0.584338 -0.476992 +vn 0.573840 0.584309 -0.573839 +vn 0.573051 0.585859 -0.573047 +vn 0.655626 0.585885 -0.476333 +vn 0.771793 0.584338 -0.250770 +vn 0.723081 0.584308 -0.368426 +vn 0.722089 0.585856 -0.367914 +vn 0.770731 0.585884 -0.250426 +vn 0.801541 0.584309 -0.126951 +vn 0.800438 0.585856 -0.126776 +vn 0.776519 0.577374 0.252306 +vn 0.806447 0.577347 0.127729 +vn 0.802481 0.582984 0.127101 +vn 0.772698 0.583013 0.251064 +vn 0.816480 0.577374 0.000000 +vn 0.812463 0.583013 0.000000 +vn 0.660546 0.577374 0.479915 +vn 0.727506 0.577346 0.370683 +vn 0.723929 0.582984 0.368859 +vn 0.657296 0.583013 0.477554 +vn 0.479915 0.577374 0.660546 +vn 0.577352 0.577347 0.577352 +vn 0.574513 0.582984 0.574512 +vn 0.477553 0.583013 0.657296 +vn 0.252306 0.577374 0.776519 +vn 0.370683 0.577347 0.727506 +vn 0.368859 0.582984 0.723929 +vn 0.251065 0.583013 0.772698 +vn 0.000000 0.577374 0.816480 +vn 0.127729 0.577347 0.806447 +vn 0.127100 0.582984 0.802481 +vn 0.000000 0.583013 0.812463 +vn -0.252306 0.577374 0.776519 +vn -0.127729 0.577347 0.806447 +vn -0.127100 0.582984 0.802481 +vn -0.251065 0.583013 0.772698 +vn -0.479915 0.577374 0.660546 +vn -0.370683 0.577347 0.727506 +vn -0.368860 0.582984 0.723928 +vn -0.477553 0.583013 0.657296 +vn -0.660546 0.577374 0.479915 +vn -0.577352 0.577347 0.577352 +vn -0.574513 0.582984 0.574513 +vn -0.657296 0.583013 0.477553 +vn -0.776519 0.577374 0.252306 +vn -0.727506 0.577346 0.370683 +vn -0.723929 0.582984 0.368859 +vn -0.772698 0.583013 0.251065 +vn -0.816480 0.577374 0.000000 +vn -0.806447 0.577347 0.127729 +vn -0.802481 0.582984 0.127100 +vn -0.812463 0.583013 0.000000 +vn -0.776519 0.577374 -0.252306 +vn -0.806447 0.577347 -0.127729 +vn -0.802481 0.582984 -0.127100 +vn -0.772698 0.583013 -0.251064 +vn -0.660546 0.577374 -0.479915 +vn -0.727506 0.577347 -0.370683 +vn -0.723928 0.582984 -0.368860 +vn -0.657296 0.583013 -0.477553 +vn -0.479915 0.577374 -0.660546 +vn -0.577353 0.577347 -0.577352 +vn -0.574513 0.582984 -0.574512 +vn -0.477554 0.583013 -0.657296 +vn -0.252306 0.577374 -0.776519 +vn -0.370683 0.577347 -0.727506 +vn -0.368860 0.582984 -0.723928 +vn -0.251065 0.583013 -0.772698 +vn -0.000000 0.577374 -0.816480 +vn -0.127729 0.577347 -0.806447 +vn -0.127101 0.582984 -0.802481 +vn -0.000000 0.583013 -0.812463 +vn 0.252306 0.577374 -0.776519 +vn 0.127729 0.577347 -0.806447 +vn 0.127100 0.582984 -0.802481 +vn 0.251064 0.583013 -0.772698 +vn 0.479915 0.577374 -0.660546 +vn 0.370683 0.577347 -0.727506 +vn 0.368859 0.582984 -0.723929 +vn 0.477553 0.583013 -0.657296 +vn 0.660546 0.577374 -0.479915 +vn 0.577352 0.577347 -0.577352 +vn 0.574513 0.582984 -0.574513 +vn 0.657296 0.583013 -0.477553 +vn 0.776519 0.577374 -0.252305 +vn 0.727506 0.577347 -0.370683 +vn 0.723929 0.582984 -0.368859 +vn 0.772698 0.583013 -0.251064 +vn 0.806447 0.577347 -0.127727 +vn 0.802481 0.582984 -0.127099 +vn 0.745059 0.548425 0.379627 +vn 0.676488 0.548448 0.491497 +vn 0.795259 0.548448 0.258395 +vn 0.591282 0.548425 0.591283 +vn 0.491497 0.548448 0.676487 +vn 0.379627 0.548425 0.745059 +vn 0.258395 0.548448 0.795259 +vn 0.130810 0.548425 0.825904 +vn 0.000000 0.548449 0.836184 +vn -0.130810 0.548425 0.825904 +vn -0.258396 0.548448 0.795259 +vn -0.379627 0.548425 0.745059 +vn -0.491497 0.548448 0.676488 +vn -0.591282 0.548425 0.591282 +vn -0.676488 0.548448 0.491497 +vn -0.745059 0.548425 0.379627 +vn -0.795259 0.548448 0.258396 +vn -0.825904 0.548426 0.130810 +vn -0.836184 0.548449 0.000000 +vn -0.825904 0.548426 -0.130810 +vn -0.795259 0.548448 -0.258395 +vn -0.745059 0.548425 -0.379627 +vn -0.676488 0.548448 -0.491496 +vn -0.591283 0.548425 -0.591282 +vn -0.491497 0.548448 -0.676487 +vn -0.379627 0.548426 -0.745059 +vn -0.258395 0.548448 -0.795259 +vn -0.130810 0.548425 -0.825904 +vn 0.000000 0.548448 -0.836184 +vn 0.130810 0.548426 -0.825904 +vn 0.258395 0.548448 -0.795259 +vn 0.379626 0.548425 -0.745060 +vn 0.491497 0.548448 -0.676487 +vn 0.591282 0.548426 -0.591282 +vn 0.676487 0.548449 -0.491497 +vn 0.745059 0.548426 -0.379626 +vn 0.795259 0.548449 -0.258394 +vn 0.825905 0.548425 -0.130809 +vn 0.836185 0.548448 0.000001 +vn 0.825904 0.548425 0.130810 +s 1 +g pCylinder2 +usemtl phong2SG +f 363/657/363 483/658/364 685/659/365 484/660/366 +f 483/658/364 364/663/367 485/664/368 685/659/365 +f 685/464/365 485/467/368 462/468/369 486/465/370 +f 484/463/366 685/464/365 486/465/370 463/466/371 +f 364/663/367 487/670/372 686/671/373 485/664/368 +f 487/670/372 365/677/374 488/678/375 686/671/373 +f 686/473/373 488/481/375 461/482/376 489/474/377 +f 485/467/368 686/473/373 489/474/377 462/468/369 +f 365/677/374 490/685/378 687/686/379 488/678/375 +f 490/685/378 366/693/380 491/694/381 687/686/379 +f 687/971/379 491/972/381 460/973/382 492/974/383 +f 488/481/375 687/491/379 492/492/383 461/482/376 +f 366/693/380 493/703/384 688/704/385 491/694/381 +f 493/703/384 367/702/386 494/714/387 688/704/385 +f 688/975/385 494/979/387 459/980/388 495/976/389 +f 491/972/381 688/975/385 495/976/389 460/973/382 +f 367/702/386 496/713/390 689/726/391 494/714/387 +f 496/713/390 368/712/392 497/725/393 689/726/391 +f 689/982/391 497/985/393 458/986/394 498/983/395 +f 494/979/387 689/982/391 498/983/395 459/980/388 +f 368/712/392 499/724/396 690/738/397 497/725/393 +f 499/724/396 369/723/398 500/737/399 690/738/397 +f 690/598/397 500/586/399 457/587/400 501/599/401 +f 497/985/393 690/988/397 501/989/401 458/986/394 +f 369/723/398 502/736/402 691/750/403 500/737/399 +f 502/736/402 370/735/404 503/749/405 691/750/403 +f 691/576/403 503/568/405 456/569/406 504/577/407 +f 500/586/399 691/576/403 504/577/407 457/587/400 +f 370/735/404 505/748/408 692/762/409 503/749/405 +f 505/748/408 371/747/410 506/761/411 692/762/409 +f 692/560/409 506/561/411 455/562/412 507/563/413 +f 503/568/405 692/560/409 507/563/413 456/569/406 +f 371/747/410 508/760/414 693/771/415 506/761/411 +f 508/760/414 372/759/416 509/770/417 693/771/415 +f 693/564/415 509/570/417 454/571/418 510/565/419 +f 506/561/411 693/564/415 510/565/419 455/562/412 +f 372/759/416 511/769/420 694/776/421 509/770/417 +f 511/769/420 373/768/422 512/775/423 694/776/421 +f 694/578/421 512/588/423 453/589/424 513/579/425 +f 509/570/417 694/578/421 513/579/425 454/571/418 +f 373/768/422 514/773/426 695/777/427 512/775/423 +f 514/773/426 374/766/428 515/774/429 695/777/427 +f 695/600/427 515/612/429 452/613/430 516/601/431 +f 512/588/423 695/600/427 516/601/431 453/589/424 +f 374/766/428 517/764/432 696/772/433 515/774/429 +f 517/764/432 375/754/434 518/765/435 696/772/433 +f 696/622/433 518/631/435 451/632/436 519/623/437 +f 515/612/429 696/622/433 519/623/437 452/613/430 +f 375/754/434 520/752/438 697/763/439 518/765/435 +f 520/752/438 376/742/440 521/753/441 697/763/439 +f 697/992/439 521/993/441 450/994/442 522/995/443 +f 518/631/435 697/639/439 522/640/443 451/632/436 +f 376/742/440 523/740/444 698/751/445 521/753/441 +f 523/740/444 377/730/446 524/741/447 698/751/445 +f 698/996/445 524/1000/447 449/1001/448 525/997/449 +f 521/993/441 698/996/445 525/997/449 450/994/442 +f 377/730/446 526/728/450 699/739/451 524/741/447 +f 526/728/450 378/718/452 527/729/453 699/739/451 +f 699/1003/451 527/1006/453 448/1007/454 528/1004/455 +f 524/1000/447 699/1003/451 528/1004/455 449/1001/448 +f 378/718/452 529/716/456 700/727/457 527/729/453 +f 529/716/456 379/707/458 530/717/459 700/727/457 +f 700/547/457 530/540/459 447/541/460 531/548/461 +f 527/1006/453 700/1009/457 531/1010/461 448/1007/454 +f 379/707/458 532/706/462 701/715/463 530/717/459 +f 532/706/462 380/697/464 533/705/465 701/715/463 +f 701/532/463 533/523/465 446/524/466 534/533/467 +f 530/540/459 701/532/463 534/533/467 447/541/460 +f 380/697/464 535/695/468 702/696/469 533/705/465 +f 535/695/468 381/687/470 536/688/471 702/696/469 +f 702/513/469 536/501/471 445/502/472 537/514/473 +f 533/523/465 702/513/469 537/514/473 446/524/466 +f 381/687/470 538/679/474 703/680/475 536/688/471 +f 538/679/474 382/672/476 539/673/477 703/680/475 +f 703/489/475 539/479/477 464/480/478 540/490/479 +f 536/501/471 703/489/475 540/490/479 445/502/472 +f 382/672/476 541/665/480 704/666/481 539/673/477 +f 541/665/480 363/657/363 484/660/366 704/666/481 +f 704/471/481 484/463/366 463/466/371 542/472/482 +f 539/479/477 704/471/481 542/472/482 464/480/478 +f 364/663/367 483/658/364 705/662/483 543/669/484 +f 363/657/363 544/661/485 705/662/483 483/658/364 +f 403/668/486 543/669/484 705/662/483 544/661/485 +f 365/677/374 487/670/372 706/676/487 545/675/488 +f 364/663/367 543/669/484 706/676/487 487/670/372 +f 403/668/486 545/675/488 706/676/487 543/669/484 +f 366/693/380 490/685/378 707/684/489 546/683/490 +f 365/677/374 545/675/488 707/684/489 490/685/378 +f 403/668/486 546/683/490 707/684/489 545/675/488 +f 367/702/386 493/703/384 708/692/491 547/691/492 +f 366/693/380 546/683/490 708/692/491 493/703/384 +f 403/668/486 547/691/492 708/692/491 546/683/490 +f 368/712/392 496/713/390 709/701/493 548/700/494 +f 367/702/386 547/691/492 709/701/493 496/713/390 +f 403/668/486 548/700/494 709/701/493 547/691/492 +f 369/723/398 499/724/396 710/711/495 549/710/496 +f 368/712/392 548/700/494 710/711/495 499/724/396 +f 403/668/486 549/710/496 710/711/495 548/700/494 +f 370/735/404 502/736/402 711/722/497 550/721/498 +f 369/723/398 549/710/496 711/722/497 502/736/402 +f 403/668/486 550/721/498 711/722/497 549/710/496 +f 371/747/410 505/748/408 712/734/499 551/733/500 +f 370/735/404 550/721/498 712/734/499 505/748/408 +f 403/668/486 551/733/500 712/734/499 550/721/498 +f 372/759/416 508/760/414 713/746/501 552/745/502 +f 371/747/410 551/733/500 713/746/501 508/760/414 +f 403/668/486 552/745/502 713/746/501 551/733/500 +f 373/768/422 511/769/420 714/758/503 553/757/504 +f 372/759/416 552/745/502 714/758/503 511/769/420 +f 403/668/486 553/757/504 714/758/503 552/745/502 +f 374/766/428 514/773/426 715/767/505 554/756/506 +f 373/768/422 553/757/504 715/767/505 514/773/426 +f 403/668/486 554/756/506 715/767/505 553/757/504 +f 375/754/434 517/764/432 716/755/507 555/744/508 +f 374/766/428 554/756/506 716/755/507 517/764/432 +f 403/668/486 555/744/508 716/755/507 554/756/506 +f 376/742/440 520/752/438 717/743/509 556/732/510 +f 375/754/434 555/744/508 717/743/509 520/752/438 +f 403/668/486 556/732/510 717/743/509 555/744/508 +f 377/730/446 523/740/444 718/731/511 557/720/512 +f 376/742/440 556/732/510 718/731/511 523/740/444 +f 403/668/486 557/720/512 718/731/511 556/732/510 +f 378/718/452 526/728/450 719/719/513 558/709/514 +f 377/730/446 557/720/512 719/719/513 526/728/450 +f 403/668/486 558/709/514 719/719/513 557/720/512 +f 379/707/458 529/716/456 720/708/515 559/699/516 +f 378/718/452 558/709/514 720/708/515 529/716/456 +f 403/668/486 559/699/516 720/708/515 558/709/514 +f 380/697/464 532/706/462 721/698/517 560/690/518 +f 379/707/458 559/699/516 721/698/517 532/706/462 +f 403/668/486 560/690/518 721/698/517 559/699/516 +f 381/687/470 535/695/468 722/689/519 561/682/520 +f 380/697/464 560/690/518 722/689/519 535/695/468 +f 403/668/486 561/682/520 722/689/519 560/690/518 +f 382/672/476 538/679/474 723/681/521 562/674/522 +f 381/687/470 561/682/520 723/681/521 538/679/474 +f 403/668/486 562/674/522 723/681/521 561/682/520 +f 363/657/363 541/665/480 724/667/523 544/661/485 +f 382/672/476 562/674/522 724/667/523 541/665/480 +f 403/668/486 544/661/485 724/667/523 562/674/522 +f 383/778/524 563/779/525 725/780/526 564/781/527 +f 384/784/528 565/785/529 725/780/526 563/779/525 +f 404/786/530 564/781/527 725/780/526 565/785/529 +f 384/784/528 566/791/531 726/792/532 565/785/529 +f 385/798/533 567/794/534 726/792/532 566/791/531 +f 404/786/530 565/785/529 726/792/532 567/794/534 +f 385/798/533 568/806/535 727/801/536 567/794/534 +f 386/810/537 569/802/538 727/801/536 568/806/535 +f 404/786/530 567/794/534 727/801/536 569/802/538 +f 386/810/537 570/819/539 728/811/540 569/802/538 +f 387/821/541 571/812/542 728/811/540 570/819/539 +f 404/786/530 569/802/538 728/811/540 571/812/542 +f 387/821/541 572/834/543 729/822/544 571/812/542 +f 388/836/545 573/823/546 729/822/544 572/834/543 +f 404/786/530 571/812/542 729/822/544 573/823/546 +f 388/836/545 574/851/547 730/837/548 573/823/546 +f 389/853/549 575/838/550 730/837/548 574/851/547 +f 404/786/530 573/823/546 730/837/548 575/838/550 +f 389/853/549 576/870/551 731/854/552 575/838/550 +f 390/872/553 577/855/554 731/854/552 576/870/551 +f 404/786/530 575/838/550 731/854/552 577/855/554 +f 390/872/553 578/894/555 732/873/556 577/855/554 +f 391/896/557 579/874/558 732/873/556 578/894/555 +f 404/786/530 577/855/554 732/873/556 579/874/558 +f 391/896/557 580/917/559 733/897/560 579/874/558 +f 392/919/561 581/898/562 733/897/560 580/917/559 +f 404/786/530 579/874/558 733/897/560 581/898/562 +f 392/919/561 582/939/563 734/920/564 581/898/562 +f 393/941/565 583/921/566 734/920/564 582/939/563 +f 404/786/530 581/898/562 734/920/564 583/921/566 +f 393/941/565 584/942/567 735/922/568 583/921/566 +f 394/923/569 585/899/570 735/922/568 584/942/567 +f 404/786/530 583/921/566 735/922/568 585/899/570 +f 394/923/569 586/924/571 736/900/572 585/899/570 +f 395/901/573 587/877/574 736/900/572 586/924/571 +f 404/786/530 585/899/570 736/900/572 587/877/574 +f 395/901/573 588/902/575 737/878/576 587/877/574 +f 396/879/577 589/858/578 737/878/576 588/902/575 +f 404/786/530 587/877/574 737/878/576 589/858/578 +f 396/879/577 590/880/579 738/859/580 589/858/578 +f 397/860/581 591/841/582 738/859/580 590/880/579 +f 404/786/530 589/858/578 738/859/580 591/841/582 +f 397/860/581 592/861/583 739/842/584 591/841/582 +f 398/843/585 593/827/586 739/842/584 592/861/583 +f 404/786/530 591/841/582 739/842/584 593/827/586 +f 398/843/585 594/844/587 740/828/588 593/827/586 +f 399/829/589 595/815/590 740/828/588 594/844/587 +f 404/786/530 593/827/586 740/828/588 595/815/590 +f 399/829/589 596/830/591 741/816/592 595/815/590 +f 400/817/593 597/807/594 741/816/592 596/830/591 +f 404/786/530 595/815/590 741/816/592 597/807/594 +f 400/817/593 598/818/595 742/808/596 597/807/594 +f 401/809/597 599/799/598 742/808/596 598/818/595 +f 404/786/530 597/807/594 742/808/596 599/799/598 +f 401/809/597 600/803/599 743/800/600 599/799/598 +f 402/795/601 601/793/602 743/800/600 600/803/599 +f 404/786/530 599/799/598 743/800/600 601/793/602 +f 402/795/601 602/788/603 744/787/604 601/793/602 +f 383/778/524 564/781/527 744/787/604 602/788/603 +f 404/786/530 601/793/602 744/787/604 564/781/527 +f 406/536/605 603/528/606 745/535/607 604/542/608 +f 603/528/606 405/519/609 605/527/610 745/535/607 +f 745/805/607 605/797/610 402/795/601 600/803/599 +f 604/814/608 745/805/607 600/803/599 401/809/597 +f 407/550/611 606/543/612 746/549/613 607/554/614 +f 606/543/612 406/536/605 604/542/608 746/549/613 +f 746/826/613 604/814/608 401/809/597 598/818/595 +f 607/831/614 746/826/613 598/818/595 400/817/593 +f 408/558/615 608/555/616 747/557/617 609/559/618 +f 608/555/616 407/550/611 607/554/614 747/557/617 +f 747/846/617 607/831/614 400/817/593 596/830/591 +f 609/845/618 747/846/617 596/830/591 399/829/589 +f 409/883/619 610/884/620 748/863/621 611/862/622 +f 610/884/620 408/885/615 609/845/618 748/863/621 +f 748/863/621 609/845/618 399/829/589 594/844/587 +f 611/862/622 748/863/621 594/844/587 398/843/585 +f 410/905/623 612/906/624 749/882/625 613/881/626 +f 612/906/624 409/883/619 611/862/622 749/882/625 +f 749/882/625 611/862/622 398/843/585 592/861/583 +f 613/881/626 749/882/625 592/861/583 397/860/581 +f 411/927/627 614/928/628 750/904/629 615/903/630 +f 614/928/628 410/905/623 613/881/626 750/904/629 +f 750/904/629 613/881/626 397/860/581 590/880/579 +f 615/903/630 750/904/629 590/880/579 396/879/577 +f 412/945/631 616/946/632 751/926/633 617/925/634 +f 616/946/632 411/927/627 615/903/630 751/926/633 +f 751/926/633 615/903/630 396/879/577 588/902/575 +f 617/925/634 751/926/633 588/902/575 395/901/573 +f 413/649/635 618/652/636 752/655/637 619/653/638 +f 618/652/636 412/654/631 617/656/634 752/655/637 +f 752/944/637 617/925/634 395/901/573 586/924/571 +f 619/943/638 752/944/637 586/924/571 394/923/569 +f 414/636/639 620/644/640 753/650/641 621/645/642 +f 620/644/640 413/649/635 619/653/638 753/650/641 +f 753/958/641 619/943/638 394/923/569 584/942/567 +f 621/957/642 753/958/641 584/942/567 393/941/565 +f 415/617/643 622/627/644 754/637/645 623/628/646 +f 622/627/644 414/636/639 621/645/642 754/637/645 +f 754/956/645 621/957/642 393/941/565 582/939/563 +f 623/940/646 754/956/645 582/939/563 392/919/561 +f 416/593/647 624/605/648 755/618/649 625/606/650 +f 624/605/648 415/617/643 623/628/646 755/618/649 +f 755/938/649 623/940/646 392/919/561 580/917/559 +f 625/918/650 755/938/649 580/917/559 391/896/557 +f 417/608/651 626/594/652 756/607/653 627/619/654 +f 626/594/652 416/593/647 625/606/650 756/607/653 +f 756/916/653 625/918/650 391/896/557 578/894/555 +f 627/895/654 756/916/653 578/894/555 390/872/553 +f 418/630/655 628/620/656 757/629/657 629/638/658 +f 628/620/656 417/608/651 627/619/654 757/629/657 +f 757/892/657 627/895/654 390/872/553 576/870/551 +f 629/871/658 757/892/657 576/870/551 389/853/549 +f 419/869/659 630/890/660 758/868/661 631/852/662 +f 630/890/660 418/893/655 629/871/658 758/868/661 +f 758/868/661 629/871/658 389/853/549 574/851/547 +f 631/852/662 758/868/661 574/851/547 388/836/545 +f 420/850/663 632/866/664 759/849/665 633/835/666 +f 632/866/664 419/869/659 631/852/662 759/849/665 +f 759/849/665 631/852/662 388/836/545 572/834/543 +f 633/835/666 759/849/665 572/834/543 387/821/541 +f 421/833/667 634/847/668 760/832/669 635/820/670 +f 634/847/668 420/850/663 633/835/666 760/832/669 +f 760/832/669 633/835/666 387/821/541 570/819/539 +f 635/820/670 760/832/669 570/819/539 386/810/537 +f 422/824/671 636/825/672 761/813/673 637/804/674 +f 636/825/672 421/833/667 635/820/670 761/813/673 +f 761/813/673 635/820/670 386/810/537 568/806/535 +f 637/804/674 761/813/673 568/806/535 385/798/533 +f 423/506/675 638/516/676 762/526/677 639/517/678 +f 638/516/676 422/525/671 637/534/674 762/526/677 +f 762/796/677 637/804/674 385/798/533 566/791/531 +f 639/789/678 762/796/677 566/791/531 384/784/528 +f 424/497/679 640/496/680 763/507/681 641/508/682 +f 640/496/680 423/506/675 639/517/678 763/507/681 +f 763/783/681 639/789/678 384/784/528 563/779/525 +f 641/782/682 763/783/681 563/779/525 383/778/524 +f 405/519/609 642/509/683 764/518/684 605/527/610 +f 642/509/683 424/497/679 641/508/682 764/518/684 +f 764/790/684 641/782/682 383/778/524 602/788/603 +f 605/797/610 764/790/684 602/788/603 402/795/601 +f 426/521/685 643/511/686 765/520/687 644/529/688 +f 643/511/686 425/499/689 645/510/690 765/520/687 +f 765/520/687 645/510/690 405/519/609 603/528/606 +f 644/529/688 765/520/687 603/528/606 406/536/605 +f 427/538/691 646/530/692 766/537/693 647/544/694 +f 646/530/692 426/521/685 644/529/688 766/537/693 +f 766/537/693 644/529/688 406/536/605 606/543/612 +f 647/544/694 766/537/693 606/543/612 407/550/611 +f 428/552/695 648/545/696 767/551/697 649/556/698 +f 648/545/696 427/538/691 647/544/694 767/551/697 +f 767/551/697 647/544/694 407/550/611 608/555/616 +f 649/556/698 767/551/697 608/555/616 408/558/615 +f 429/931/699 650/932/700 768/908/701 651/907/702 +f 650/932/700 428/933/695 649/909/698 768/908/701 +f 768/908/701 649/909/698 408/885/615 610/884/620 +f 651/907/702 768/908/701 610/884/620 409/883/619 +f 430/949/703 652/950/704 769/930/705 653/929/706 +f 652/950/704 429/931/699 651/907/702 769/930/705 +f 769/930/705 651/907/702 409/883/619 612/906/624 +f 653/929/706 769/930/705 612/906/624 410/905/623 +f 431/961/707 654/962/708 770/948/709 655/947/710 +f 654/962/708 430/949/703 653/929/706 770/948/709 +f 770/948/709 653/929/706 410/905/623 614/928/628 +f 655/947/710 770/948/709 614/928/628 411/927/627 +f 432/965/711 656/966/712 771/960/713 657/959/714 +f 656/966/712 431/961/707 655/947/710 771/960/713 +f 771/960/713 655/947/710 411/927/627 616/946/632 +f 657/959/714 771/960/713 616/946/632 412/945/631 +f 433/634/715 658/642/716 772/648/717 659/643/718 +f 658/642/716 432/647/711 657/651/714 772/648/717 +f 772/648/717 657/651/714 412/654/631 618/652/636 +f 659/643/718 772/648/717 618/652/636 413/649/635 +f 434/615/719 660/625/720 773/635/721 661/626/722 +f 660/625/720 433/634/715 659/643/718 773/635/721 +f 773/635/721 659/643/718 413/649/635 620/644/640 +f 661/626/722 773/635/721 620/644/640 414/636/639 +f 435/591/723 662/603/724 774/616/725 663/604/726 +f 662/603/724 434/615/719 661/626/722 774/616/725 +f 774/616/725 661/626/722 414/636/639 622/627/644 +f 663/604/726 774/616/725 622/627/644 415/617/643 +f 436/573/727 664/581/728 775/592/729 665/582/730 +f 664/581/728 435/591/723 663/604/726 775/592/729 +f 775/592/729 663/604/726 415/617/643 624/605/648 +f 665/582/730 775/592/729 624/605/648 416/593/647 +f 437/584/731 666/574/732 776/583/733 667/595/734 +f 666/574/732 436/573/727 665/582/730 776/583/733 +f 776/583/733 665/582/730 416/593/647 626/594/652 +f 667/595/734 776/583/733 626/594/652 417/608/651 +f 438/610/735 668/596/736 777/609/737 669/621/738 +f 668/596/736 437/584/731 667/595/734 777/609/737 +f 777/609/737 667/595/734 417/608/651 628/620/656 +f 669/621/738 777/609/737 628/620/656 418/630/655 +f 439/914/739 670/935/740 778/913/741 671/891/742 +f 670/935/740 438/937/735 669/915/738 778/913/741 +f 778/913/741 669/915/738 418/893/655 630/890/660 +f 671/891/742 778/913/741 630/890/660 419/869/659 +f 440/889/743 672/911/744 779/888/745 673/867/746 +f 672/911/744 439/914/739 671/891/742 779/888/745 +f 779/888/745 671/891/742 419/869/659 632/866/664 +f 673/867/746 779/888/745 632/866/664 420/850/663 +f 441/865/747 674/886/748 780/864/749 675/848/750 +f 674/886/748 440/889/743 673/867/746 780/864/749 +f 780/864/749 673/867/746 420/850/663 634/847/668 +f 675/848/750 780/864/749 634/847/668 421/833/667 +f 442/856/751 676/857/752 781/840/753 677/839/754 +f 676/857/752 441/865/747 675/848/750 781/840/753 +f 781/840/753 675/848/750 421/833/667 636/825/672 +f 677/839/754 781/840/753 636/825/672 422/824/671 +f 443/484/755 678/494/756 782/505/757 679/495/758 +f 678/494/756 442/504/751 677/515/754 782/505/757 +f 782/505/757 677/515/754 422/525/671 638/516/676 +f 679/495/758 782/505/757 638/516/676 423/506/675 +f 444/477/759 680/476/760 783/485/761 681/486/762 +f 680/476/760 443/484/755 679/495/758 783/485/761 +f 783/485/761 679/495/758 423/506/675 640/496/680 +f 681/486/762 783/485/761 640/496/680 424/497/679 +f 425/499/689 682/487/763 784/498/764 645/510/690 +f 682/487/763 444/477/759 681/486/762 784/498/764 +f 784/498/764 681/486/762 424/497/679 642/509/683 +f 645/510/690 784/498/764 642/509/683 405/519/609 +f 446/524/466 537/514/473 785/522/765 683/531/766 +f 537/514/473 445/502/472 684/512/767 785/522/765 +f 785/522/765 684/512/767 426/521/685 646/530/692 +f 683/531/766 785/522/765 646/530/692 427/538/691 +f 447/541/460 534/533/467 786/539/768 465/546/769 +f 534/533/467 446/524/466 683/531/766 786/539/768 +f 786/539/768 683/531/766 427/538/691 648/545/696 +f 465/546/769 786/539/768 648/545/696 428/552/695 +f 448/1007/454 531/1010/461 787/1012/770 466/1011/771 +f 531/548/461 447/541/460 465/546/769 787/553/770 +f 787/952/770 465/953/769 428/933/695 650/932/700 +f 466/951/771 787/952/770 650/932/700 429/931/699 +f 449/1001/448 528/1004/455 788/1008/772 467/1005/773 +f 528/1004/455 448/1007/454 466/1011/771 788/1008/772 +f 788/964/772 466/951/771 429/931/699 652/950/704 +f 467/963/773 788/964/772 652/950/704 430/949/703 +f 450/994/442 525/997/449 789/1002/774 468/998/775 +f 525/997/449 449/1001/448 467/1005/773 789/1002/774 +f 789/968/774 467/963/773 430/949/703 654/962/708 +f 468/967/775 789/968/774 654/962/708 431/961/707 +f 451/632/436 522/640/443 790/646/776 469/641/777 +f 522/995/443 450/994/442 468/998/775 790/999/776 +f 790/970/776 468/967/775 431/961/707 656/966/712 +f 469/969/777 790/970/776 656/966/712 432/965/711 +f 452/613/430 519/623/437 791/633/778 470/624/779 +f 519/623/437 451/632/436 469/641/777 791/633/778 +f 791/633/778 469/641/777 432/647/711 658/642/716 +f 470/624/779 791/633/778 658/642/716 433/634/715 +f 453/589/424 516/601/431 792/614/780 471/602/781 +f 516/601/431 452/613/430 470/624/779 792/614/780 +f 792/614/780 470/624/779 433/634/715 660/625/720 +f 471/602/781 792/614/780 660/625/720 434/615/719 +f 454/571/418 513/579/425 793/590/782 472/580/783 +f 513/579/425 453/589/424 471/602/781 793/590/782 +f 793/590/782 471/602/781 434/615/719 662/603/724 +f 472/580/783 793/590/782 662/603/724 435/591/723 +f 455/562/412 510/565/419 794/572/784 473/566/785 +f 510/565/419 454/571/418 472/580/783 794/572/784 +f 794/572/784 472/580/783 435/591/723 664/581/728 +f 473/566/785 794/572/784 664/581/728 436/573/727 +f 456/569/406 507/563/413 795/567/786 474/575/787 +f 507/563/413 455/562/412 473/566/785 795/567/786 +f 795/567/786 473/566/785 436/573/727 666/574/732 +f 474/575/787 795/567/786 666/574/732 437/584/731 +f 457/587/400 504/577/407 796/585/788 475/597/789 +f 504/577/407 456/569/406 474/575/787 796/585/788 +f 796/585/788 474/575/787 437/584/731 668/596/736 +f 475/597/789 796/585/788 668/596/736 438/610/735 +f 458/986/394 501/989/401 797/991/790 476/990/791 +f 501/599/401 457/587/400 475/597/789 797/611/790 +f 797/954/790 475/955/789 438/937/735 670/935/740 +f 476/936/791 797/954/790 670/935/740 439/914/739 +f 459/980/388 498/983/395 798/987/792 477/984/793 +f 498/983/395 458/986/394 476/990/791 798/987/792 +f 798/934/792 476/936/791 439/914/739 672/911/744 +f 477/912/793 798/934/792 672/911/744 440/889/743 +f 460/973/382 495/976/389 799/981/794 478/977/795 +f 495/976/389 459/980/388 477/984/793 799/981/794 +f 799/910/794 477/912/793 440/889/743 674/886/748 +f 478/887/795 799/910/794 674/886/748 441/865/747 +f 461/482/376 492/492/383 800/503/796 479/493/797 +f 492/974/383 460/973/382 478/977/795 800/978/796 +f 800/876/796 478/887/795 441/865/747 676/857/752 +f 479/875/797 800/876/796 676/857/752 442/856/751 +f 462/468/369 489/474/377 801/483/798 480/475/799 +f 489/474/377 461/482/376 479/493/797 801/483/798 +f 801/483/798 479/493/797 442/504/751 678/494/756 +f 480/475/799 801/483/798 678/494/756 443/484/755 +f 463/466/371 486/465/370 802/469/800 481/470/801 +f 486/465/370 462/468/369 480/475/799 802/469/800 +f 802/469/800 480/475/799 443/484/755 680/476/760 +f 481/470/801 802/469/800 680/476/760 444/477/759 +f 464/480/478 542/472/482 803/478/802 482/488/803 +f 542/472/482 463/466/371 481/470/801 803/478/802 +f 803/478/802 481/470/801 444/477/759 682/487/763 +f 482/488/803 803/478/802 682/487/763 425/499/689 +f 445/502/472 540/490/479 804/500/804 684/512/767 +f 540/490/479 464/480/478 482/488/803 804/500/804 +f 804/500/804 482/488/803 425/499/689 643/511/686 +f 684/512/767 804/500/804 643/511/686 426/521/685 +g default +v 0.642991 2.385013 -0.208920 +v 0.546961 2.385013 -0.397390 +v 0.397390 2.385013 -0.546961 +v 0.208920 2.385013 -0.642991 +v -0.000000 2.385013 -0.676080 +v -0.208920 2.385013 -0.642991 +v -0.397390 2.385013 -0.546960 +v -0.546960 2.385013 -0.397390 +v -0.642990 2.385013 -0.208920 +v -0.676080 2.385013 -0.000000 +v -0.642990 2.385013 0.208920 +v -0.546960 2.385013 0.397390 +v -0.397390 2.385013 0.546960 +v -0.208920 2.385013 0.642990 +v -0.000000 2.385013 0.676080 +v 0.208920 2.385013 0.642990 +v 0.397390 2.385013 0.546960 +v 0.546960 2.385013 0.397390 +v 0.642990 2.385013 0.208920 +v 0.676080 2.385013 -0.000000 +v 0.014315 3.426918 -0.004652 +v 0.012178 3.426918 -0.008848 +v 0.008848 3.426918 -0.012178 +v 0.004651 3.426918 -0.014316 +v -0.000000 3.426918 -0.015052 +v -0.004652 3.426918 -0.014316 +v -0.008848 3.426918 -0.012178 +v -0.012178 3.426918 -0.008848 +v -0.014316 3.426918 -0.004652 +v -0.015052 3.426918 -0.000000 +v -0.014316 3.426918 0.004651 +v -0.012178 3.426918 0.008847 +v -0.008848 3.426918 0.012177 +v -0.004652 3.426918 0.014315 +v -0.000000 3.426918 0.015052 +v 0.004651 3.426918 0.014315 +v 0.008848 3.426918 0.012177 +v 0.012177 3.426918 0.008847 +v 0.014315 3.426918 0.004651 +v 0.015052 3.426918 -0.000000 +v -0.000000 2.384871 -0.000000 +v -0.000000 3.426948 -0.000000 +v 0.109070 3.298622 -0.000000 +v 0.103732 3.298622 0.033704 +v 0.088240 3.298622 0.064110 +v 0.064110 3.298622 0.088240 +v 0.033704 3.298622 0.103732 +v -0.000000 3.298622 0.109070 +v -0.033705 3.298622 0.103732 +v -0.064110 3.298622 0.088240 +v -0.088240 3.298622 0.064110 +v -0.103732 3.298622 0.033704 +v -0.109071 3.298622 -0.000000 +v -0.103732 3.298622 -0.033705 +v -0.088240 3.298622 -0.064110 +v -0.064110 3.298622 -0.088240 +v -0.033705 3.298622 -0.103732 +v -0.000000 3.298622 -0.109071 +v 0.033704 3.298622 -0.103732 +v 0.064110 3.298622 -0.088240 +v 0.088240 3.298622 -0.064110 +v 0.103732 3.298622 -0.033705 +v 0.662648 2.527924 -0.000000 +v 0.630216 2.527924 0.204770 +v 0.536094 2.527924 0.389495 +v 0.389495 2.527924 0.536094 +v 0.204770 2.527924 0.630216 +v -0.000000 2.527924 0.662648 +v -0.204770 2.527924 0.630216 +v -0.389495 2.527924 0.536094 +v -0.536094 2.527924 0.389495 +v -0.630216 2.527924 0.204770 +v -0.662649 2.527924 -0.000000 +v -0.630216 2.527924 -0.204770 +v -0.536094 2.527924 -0.389495 +v -0.389495 2.527924 -0.536094 +v -0.204770 2.527924 -0.630217 +v -0.000000 2.527924 -0.662649 +v 0.204770 2.527924 -0.630217 +v 0.389495 2.527924 -0.536094 +v 0.536094 2.527924 -0.389495 +v 0.630216 2.527924 -0.204770 +v 0.717963 2.387840 0.233280 +v 0.610736 2.387840 0.443726 +v 0.443726 2.387840 0.610736 +v 0.233280 2.387840 0.717963 +v -0.000000 2.387840 0.754911 +v -0.233281 2.387840 0.717963 +v -0.443726 2.387840 0.610736 +v -0.610736 2.387840 0.443726 +v -0.717964 2.387840 0.233280 +v -0.754912 2.387840 -0.000000 +v -0.717964 2.387840 -0.233281 +v -0.610736 2.387840 -0.443726 +v -0.443726 2.387840 -0.610737 +v -0.233281 2.387840 -0.717964 +v -0.000000 2.387840 -0.754912 +v 0.233281 2.387840 -0.717964 +v 0.443726 2.387840 -0.610737 +v 0.610737 2.387840 -0.443726 +v 0.717964 2.387840 -0.233281 +v 0.754911 2.387840 -0.000000 +v 0.443726 2.393896 0.610736 +v 0.233280 2.393896 0.717963 +v -0.000000 2.393896 0.754911 +v -0.233281 2.393896 0.717963 +v -0.443726 2.393896 0.610736 +v -0.610736 2.393896 0.443726 +v -0.717964 2.393896 0.233280 +v -0.754912 2.393896 -0.000000 +v -0.717964 2.393896 -0.233281 +v -0.610736 2.393896 -0.443726 +v -0.443726 2.393896 -0.610736 +v -0.233281 2.393896 -0.717964 +v -0.000000 2.393896 -0.754912 +v 0.233281 2.393896 -0.717964 +v 0.443726 2.393896 -0.610737 +v 0.610737 2.393896 -0.443726 +v 0.717964 2.393896 -0.233281 +v 0.754911 2.393896 -0.000000 +v 0.591870 2.385076 -0.301573 +v 0.717964 2.385441 -0.233281 +v 0.610737 2.385441 -0.443726 +v 0.672580 2.387840 -0.342697 +v 0.469711 2.385076 -0.469711 +v 0.443726 2.385441 -0.610737 +v 0.533762 2.387840 -0.533762 +v 0.301573 2.385076 -0.591870 +v 0.233281 2.385441 -0.717964 +v 0.342696 2.387840 -0.672580 +v 0.103915 2.385076 -0.656093 +v -0.000000 2.385441 -0.754912 +v 0.118085 2.387840 -0.745560 +v -0.103915 2.385076 -0.656093 +v -0.233281 2.385441 -0.717964 +v -0.118085 2.387840 -0.745560 +v -0.301573 2.385076 -0.591870 +v -0.443726 2.385441 -0.610736 +v -0.342697 2.387840 -0.672580 +v -0.469711 2.385076 -0.469711 +v -0.610736 2.385441 -0.443726 +v -0.533762 2.387840 -0.533762 +v -0.591870 2.385076 -0.301573 +v -0.717964 2.385441 -0.233281 +v -0.672580 2.387840 -0.342696 +v -0.656093 2.385076 -0.103915 +v -0.754912 2.385441 -0.000000 +v -0.745560 2.387840 -0.118085 +v -0.656093 2.385076 0.103915 +v -0.717964 2.385441 0.233280 +v -0.745560 2.387840 0.118085 +v -0.591870 2.385076 0.301573 +v -0.610736 2.385441 0.443726 +v -0.672580 2.387840 0.342696 +v -0.469711 2.385076 0.469711 +v -0.443726 2.385441 0.610736 +v -0.533762 2.387840 0.533762 +v -0.301573 2.385076 0.591870 +v -0.233281 2.385441 0.717963 +v -0.342696 2.387840 0.672579 +v -0.103915 2.385076 0.656093 +v -0.000000 2.385441 0.754911 +v -0.118085 2.387840 0.745560 +v 0.103915 2.385076 0.656093 +v 0.233280 2.385441 0.717963 +v 0.118085 2.387840 0.745560 +v 0.301573 2.385076 0.591870 +v 0.443726 2.385441 0.610736 +v 0.342696 2.387840 0.672579 +v 0.469711 2.385076 0.469711 +v 0.610736 2.385441 0.443726 +v 0.533762 2.387840 0.533762 +v 0.591870 2.385076 0.301573 +v 0.717963 2.385441 0.233280 +v 0.672579 2.387840 0.342696 +v 0.656093 2.385076 0.103915 +v 0.754911 2.385441 -0.000000 +v 0.745560 2.387840 0.118085 +v 0.656093 2.385076 -0.103915 +v 0.745560 2.387840 -0.118085 +v 0.396536 2.384871 -0.288101 +v 0.466156 2.384871 -0.151463 +v 0.288100 2.384871 -0.396536 +v 0.151463 2.384871 -0.466156 +v -0.000000 2.384871 -0.490146 +v -0.151463 2.384871 -0.466156 +v -0.288100 2.384871 -0.396536 +v -0.396536 2.384871 -0.288100 +v -0.466156 2.384871 -0.151463 +v -0.490146 2.384871 -0.000000 +v -0.466156 2.384871 0.151463 +v -0.396536 2.384871 0.288100 +v -0.288100 2.384871 0.396536 +v -0.151463 2.384871 0.466156 +v -0.000000 2.384871 0.490145 +v 0.151463 2.384871 0.466156 +v 0.288100 2.384871 0.396536 +v 0.396536 2.384871 0.288100 +v 0.466156 2.384871 0.151463 +v 0.490146 2.384871 -0.000000 +v 0.013177 3.426905 -0.006714 +v 0.010378 3.426948 -0.003372 +v 0.008828 3.426948 -0.006415 +v 0.010458 3.426905 -0.010458 +v 0.006414 3.426948 -0.008829 +v 0.006714 3.426905 -0.013178 +v 0.003372 3.426948 -0.010379 +v 0.002313 3.426905 -0.014607 +v -0.000000 3.426948 -0.010913 +v -0.002314 3.426905 -0.014607 +v -0.003372 3.426948 -0.010379 +v -0.006714 3.426905 -0.013178 +v -0.006414 3.426948 -0.008829 +v -0.010458 3.426905 -0.010458 +v -0.008829 3.426948 -0.006415 +v -0.013178 3.426905 -0.006714 +v -0.010379 3.426948 -0.003372 +v -0.014607 3.426905 -0.002314 +v -0.010913 3.426948 -0.000000 +v -0.014607 3.426905 0.002313 +v -0.010379 3.426948 0.003372 +v -0.013178 3.426905 0.006714 +v -0.008829 3.426948 0.006414 +v -0.010458 3.426905 0.010458 +v -0.006414 3.426948 0.008828 +v -0.006714 3.426905 0.013177 +v -0.003372 3.426948 0.010378 +v -0.002314 3.426905 0.014607 +v -0.000000 3.426948 0.010912 +v 0.002313 3.426905 0.014607 +v 0.003372 3.426948 0.010378 +v 0.006714 3.426905 0.013177 +v 0.006414 3.426948 0.008828 +v 0.010458 3.426905 0.010458 +v 0.008828 3.426948 0.006414 +v 0.013177 3.426905 0.006714 +v 0.010378 3.426948 0.003372 +v 0.014607 3.426905 0.002313 +v 0.010913 3.426948 -0.000000 +v 0.014607 3.426905 -0.002314 +v 0.107719 3.298622 0.017061 +v 0.015985 3.426828 0.005194 +v 0.016807 3.426828 -0.000000 +v 0.097175 3.298622 0.049513 +v 0.013597 3.426828 0.009879 +v 0.077119 3.298622 0.077118 +v 0.009879 3.426828 0.013597 +v 0.049513 3.298622 0.097175 +v 0.005194 3.426828 0.015985 +v 0.017061 3.298622 0.107719 +v -0.000000 3.426828 0.016807 +v -0.017061 3.298622 0.107719 +v -0.005194 3.426828 0.015985 +v -0.049513 3.298622 0.097175 +v -0.009879 3.426828 0.013597 +v -0.077119 3.298622 0.077118 +v -0.013598 3.426828 0.009879 +v -0.097175 3.298622 0.049513 +v -0.015985 3.426828 0.005194 +v -0.107719 3.298622 0.017061 +v -0.016808 3.426828 -0.000000 +v -0.107719 3.298622 -0.017061 +v -0.015985 3.426828 -0.005194 +v -0.097175 3.298622 -0.049513 +v -0.013598 3.426828 -0.009879 +v -0.077119 3.298622 -0.077119 +v -0.009879 3.426828 -0.013598 +v -0.049513 3.298622 -0.097175 +v -0.005194 3.426828 -0.015985 +v -0.017061 3.298622 -0.107720 +v -0.000000 3.426828 -0.016808 +v 0.017061 3.298622 -0.107720 +v 0.005194 3.426828 -0.015985 +v 0.049513 3.298622 -0.097175 +v 0.009879 3.426828 -0.013598 +v 0.077119 3.298622 -0.077119 +v 0.013598 3.426828 -0.009879 +v 0.097175 3.298622 -0.049513 +v 0.015985 3.426828 -0.005194 +v 0.107719 3.298622 -0.017061 +v 0.654440 2.527924 0.103653 +v 0.366974 2.914244 0.119237 +v 0.385859 2.914244 -0.000000 +v 0.590379 2.527924 0.300813 +v 0.312167 2.914244 0.226802 +v 0.468527 2.527924 0.468527 +v 0.226802 2.914244 0.312167 +v 0.300813 2.527924 0.590379 +v 0.119237 2.914244 0.366974 +v 0.103653 2.527924 0.654440 +v -0.000000 2.914244 0.385859 +v -0.103653 2.527924 0.654440 +v -0.119237 2.914244 0.366974 +v -0.300813 2.527924 0.590379 +v -0.226803 2.914244 0.312167 +v -0.468527 2.527924 0.468527 +v -0.312167 2.914244 0.226802 +v -0.590379 2.527924 0.300813 +v -0.366974 2.914244 0.119237 +v -0.654440 2.527924 0.103653 +v -0.385860 2.914244 -0.000000 +v -0.654440 2.527924 -0.103653 +v -0.366974 2.914244 -0.119237 +v -0.590379 2.527924 -0.300813 +v -0.312167 2.914244 -0.226803 +v -0.468527 2.527924 -0.468527 +v -0.226803 2.914244 -0.312167 +v -0.300813 2.527924 -0.590379 +v -0.119237 2.914244 -0.366974 +v -0.103653 2.527924 -0.654440 +v -0.000000 2.914244 -0.385860 +v 0.103653 2.527924 -0.654440 +v 0.119237 2.914244 -0.366974 +v 0.300813 2.527924 -0.590379 +v 0.226803 2.914244 -0.312167 +v 0.468528 2.527924 -0.468528 +v 0.312167 2.914244 -0.226803 +v 0.590379 2.527924 -0.300813 +v 0.366974 2.914244 -0.119237 +v 0.654440 2.527924 -0.103653 +v 0.610736 2.393896 0.443726 +v 0.717963 2.393896 0.233280 +v 0.672580 2.385441 -0.342697 +v 0.533762 2.385441 -0.533762 +v 0.342696 2.385441 -0.672580 +v 0.118085 2.385441 -0.745560 +v -0.118085 2.385441 -0.745560 +v -0.342697 2.385441 -0.672580 +v -0.533762 2.385441 -0.533762 +v -0.672580 2.385441 -0.342696 +v -0.745560 2.385441 -0.118085 +v -0.745560 2.385441 0.118085 +v -0.672580 2.385441 0.342696 +v -0.533762 2.385441 0.533762 +v -0.342696 2.385441 0.672579 +v -0.118085 2.385441 0.745560 +v 0.118085 2.385441 0.745560 +v 0.342696 2.385441 0.672579 +v 0.533762 2.385441 0.533762 +v 0.672579 2.385441 0.342696 +v 0.745560 2.385441 0.118085 +v 0.745560 2.385441 -0.118085 +v 0.448387 2.384871 -0.228464 +v 0.355842 2.384871 -0.355842 +v 0.228464 2.384871 -0.448387 +v 0.078723 2.384871 -0.497040 +v -0.078723 2.384871 -0.497040 +v -0.228464 2.384871 -0.448386 +v -0.355842 2.384871 -0.355842 +v -0.448386 2.384871 -0.228464 +v -0.497040 2.384871 -0.078723 +v -0.497040 2.384871 0.078723 +v -0.448386 2.384871 0.228464 +v -0.355841 2.384871 0.355841 +v -0.228464 2.384871 0.448386 +v -0.078723 2.384871 0.497040 +v 0.078723 2.384871 0.497040 +v 0.228464 2.384871 0.448386 +v 0.355841 2.384871 0.355841 +v 0.448386 2.384871 0.228464 +v 0.497040 2.384871 0.078723 +v 0.497040 2.384871 -0.078723 +v 0.009983 3.426948 -0.005087 +v 0.007922 3.426948 -0.007923 +v 0.005086 3.426948 -0.009983 +v 0.001753 3.426948 -0.011066 +v -0.001753 3.426948 -0.011066 +v -0.005087 3.426948 -0.009983 +v -0.007923 3.426948 -0.007923 +v -0.009983 3.426948 -0.005087 +v -0.011066 3.426948 -0.001753 +v -0.011066 3.426948 0.001752 +v -0.009983 3.426948 0.005086 +v -0.007923 3.426948 0.007922 +v -0.005087 3.426948 0.009983 +v -0.001753 3.426948 0.011066 +v 0.001753 3.426948 0.011066 +v 0.005086 3.426948 0.009983 +v 0.007922 3.426948 0.007922 +v 0.009983 3.426948 0.005086 +v 0.011066 3.426948 0.001752 +v 0.011066 3.426948 -0.001753 +v 0.016599 3.426828 0.002629 +v 0.014974 3.426828 0.007630 +v 0.011884 3.426828 0.011884 +v 0.007630 3.426828 0.014974 +v 0.002629 3.426828 0.016599 +v -0.002629 3.426828 0.016599 +v -0.007630 3.426828 0.014974 +v -0.011884 3.426828 0.011884 +v -0.014974 3.426828 0.007630 +v -0.016599 3.426828 0.002629 +v -0.016599 3.426828 -0.002629 +v -0.014974 3.426828 -0.007630 +v -0.011884 3.426828 -0.011884 +v -0.007630 3.426828 -0.014975 +v -0.002629 3.426828 -0.016599 +v 0.002629 3.426828 -0.016599 +v 0.007630 3.426828 -0.014975 +v 0.011884 3.426828 -0.011884 +v 0.014974 3.426828 -0.007630 +v 0.016599 3.426828 -0.002629 +v 0.381080 2.914244 0.060357 +v 0.343777 2.914244 0.175163 +v 0.272823 2.914244 0.272823 +v 0.175163 2.914244 0.343777 +v 0.060357 2.914244 0.381080 +v -0.060357 2.914244 0.381080 +v -0.175163 2.914244 0.343777 +v -0.272823 2.914244 0.272823 +v -0.343777 2.914244 0.175163 +v -0.381080 2.914244 0.060357 +v -0.381080 2.914244 -0.060357 +v -0.343777 2.914244 -0.175163 +v -0.272823 2.914244 -0.272823 +v -0.175163 2.914244 -0.343777 +v -0.060357 2.914244 -0.381080 +v 0.060357 2.914244 -0.381080 +v 0.175163 2.914244 -0.343777 +v 0.272823 2.914244 -0.272823 +v 0.343777 2.914244 -0.175163 +v 0.381080 2.914244 -0.060357 +v 0.672579 2.393896 0.342696 +v 0.533762 2.393896 0.533762 +v 0.342696 2.393896 0.672579 +v 0.118085 2.393896 0.745560 +v -0.118085 2.393896 0.745560 +v -0.342696 2.393896 0.672579 +v -0.533762 2.393896 0.533762 +v -0.672580 2.393896 0.342696 +v -0.745560 2.393896 0.118085 +v -0.745560 2.393896 -0.118085 +v -0.672580 2.393896 -0.342696 +v -0.533762 2.393896 -0.533762 +v -0.342697 2.393896 -0.672580 +v -0.118085 2.393896 -0.745560 +v 0.118085 2.393896 -0.745560 +v 0.342696 2.393896 -0.672580 +v 0.533762 2.393896 -0.533762 +v 0.672580 2.393896 -0.342697 +v 0.745560 2.393896 -0.118085 +v 0.745560 2.393896 0.118085 +vt 0.576755 0.683172 +vt 0.576755 0.645144 +vt 0.577589 0.645144 +vt 0.577589 0.683172 +vt 0.576755 0.610031 +vt 0.577589 0.610031 +vt 0.579693 0.645144 +vt 0.579693 0.683172 +vt 0.576755 0.723209 +vt 0.577589 0.723209 +vt 0.576755 0.578739 +vt 0.577589 0.578739 +vt 0.579693 0.610031 +vt 0.626275 0.659701 +vt 0.626275 0.693081 +vt 0.579693 0.723209 +vt 0.576755 0.764250 +vt 0.577589 0.764250 +vt 0.576755 0.551986 +vt 0.577589 0.551986 +vt 0.579693 0.578739 +vt 0.626275 0.628879 +vt 0.760542 0.703371 +vt 0.760542 0.722809 +vt 0.626275 0.728225 +vt 0.579693 0.764250 +vt 0.576755 0.805291 +vt 0.577589 0.805291 +vt 0.576755 0.530492 +vt 0.577589 0.530492 +vt 0.579693 0.551986 +vt 0.626275 0.601411 +vt 0.760542 0.685424 +vt 0.894135 0.747042 +vt 0.894135 0.752536 +vt 0.760542 0.743273 +vt 0.626275 0.764250 +vt 0.579693 0.805291 +vt 0.576755 0.845328 +vt 0.577589 0.845328 +vt 0.579693 0.530492 +vt 0.626275 0.577928 +vt 0.760542 0.669429 +vt 0.894135 0.741968 +vt 0.938693 0.761598 +vt 0.938693 0.762445 +vt 0.894135 0.758320 +vt 0.760542 0.764250 +vt 0.626275 0.800275 +vt 0.579693 0.845328 +vt 0.576755 0.883356 +vt 0.577589 0.883356 +vt 0.760542 0.655755 +vt 0.894135 0.737447 +vt 0.938693 0.760816 +vt 0.938693 0.763336 +vt 0.894135 0.764250 +vt 0.760542 0.785227 +vt 0.626275 0.835419 +vt 0.579693 0.883356 +vt 0.576755 0.918469 +vt 0.577589 0.918469 +vt 0.894135 0.733582 +vt 0.938693 0.760120 +vt 0.938693 0.764250 +vt 0.894135 0.770180 +vt 0.760542 0.805691 +vt 0.626275 0.868799 +vt 0.579693 0.918469 +vt 0.576755 0.949762 +vt 0.577589 0.949762 +vt 0.938693 0.759524 +vt 0.938693 0.765164 +vt 0.894135 0.775964 +vt 0.760542 0.825129 +vt 0.626275 0.899621 +vt 0.579693 0.949762 +vt 0.576755 0.976514 +vt 0.577589 0.976514 +vt 0.938693 0.766055 +vt 0.894135 0.781459 +vt 0.760542 0.843076 +vt 0.626275 0.927089 +vt 0.579693 0.976514 +vt 0.576755 0.998008 +vt 0.577589 0.998008 +vt 0.938693 0.766902 +vt 0.894135 0.786532 +vt 0.760542 0.859071 +vt 0.626275 0.950572 +vt 0.579693 0.998008 +vt 0.938693 0.767684 +vt 0.894135 0.791053 +vt 0.760542 0.872745 +vt 0.938693 0.768380 +vt 0.894135 0.794918 +vt 0.938693 0.768976 +vt 0.209046 0.883356 +vt 0.209046 0.845328 +vt 0.209879 0.845328 +vt 0.209879 0.883356 +vt 0.209046 0.805291 +vt 0.209879 0.805291 +vt 0.211984 0.845328 +vt 0.211984 0.883356 +vt 0.209046 0.918469 +vt 0.209879 0.918469 +vt 0.209046 0.764250 +vt 0.209879 0.764250 +vt 0.211984 0.805291 +vt 0.258566 0.835419 +vt 0.258566 0.868799 +vt 0.211984 0.918469 +vt 0.209046 0.949761 +vt 0.209879 0.949761 +vt 0.209046 0.723209 +vt 0.209879 0.723209 +vt 0.211984 0.764250 +vt 0.258566 0.800275 +vt 0.392833 0.805691 +vt 0.392833 0.825129 +vt 0.258566 0.899621 +vt 0.211984 0.949761 +vt 0.209046 0.976514 +vt 0.209879 0.976514 +vt 0.209046 0.683172 +vt 0.209879 0.683172 +vt 0.211984 0.723209 +vt 0.258566 0.764250 +vt 0.392833 0.785227 +vt 0.526426 0.775964 +vt 0.526426 0.781459 +vt 0.392833 0.843076 +vt 0.258566 0.927089 +vt 0.211984 0.976514 +vt 0.209046 0.998008 +vt 0.209879 0.998008 +vt 0.209046 0.645144 +vt 0.209879 0.645144 +vt 0.211984 0.683172 +vt 0.258566 0.728225 +vt 0.392833 0.764250 +vt 0.526426 0.770180 +vt 0.570984 0.766055 +vt 0.570984 0.766902 +vt 0.526426 0.786532 +vt 0.392833 0.859071 +vt 0.258566 0.950572 +vt 0.211984 0.998008 +vt 0.209046 0.610031 +vt 0.209879 0.610031 +vt 0.211984 0.645144 +vt 0.258566 0.693081 +vt 0.392833 0.743273 +vt 0.526426 0.764250 +vt 0.570984 0.765164 +vt 0.570984 0.767684 +vt 0.526426 0.791053 +vt 0.392833 0.872745 +vt 0.209046 0.578739 +vt 0.209879 0.578739 +vt 0.211984 0.610031 +vt 0.258566 0.659701 +vt 0.392833 0.722809 +vt 0.526426 0.758320 +vt 0.570984 0.764250 +vt 0.570984 0.768380 +vt 0.526426 0.794918 +vt 0.209046 0.551986 +vt 0.209879 0.551986 +vt 0.211984 0.578739 +vt 0.258566 0.628879 +vt 0.392833 0.703371 +vt 0.526426 0.752536 +vt 0.570984 0.763336 +vt 0.570984 0.768976 +vt 0.209046 0.530492 +vt 0.209879 0.530492 +vt 0.211984 0.551986 +vt 0.258566 0.601411 +vt 0.392833 0.685424 +vt 0.526426 0.747042 +vt 0.570984 0.762445 +vt 0.211984 0.530492 +vt 0.258566 0.577928 +vt 0.392833 0.669429 +vt 0.526426 0.741968 +vt 0.570984 0.761598 +vt 0.392833 0.655755 +vt 0.526426 0.737447 +vt 0.570984 0.760817 +vt 0.526426 0.733582 +vt 0.570984 0.760120 +vt 0.570984 0.759524 +vt 0.487721 0.191754 +vt 0.469954 0.159552 +vt 0.498005 0.145259 +vt 0.513778 0.183287 +vt 0.426261 0.211723 +vt 0.420085 0.184961 +vt 0.454345 0.126250 +vt 0.476511 0.110146 +vt 0.492274 0.228249 +vt 0.523369 0.223324 +vt 0.436995 0.237004 +vt 0.264246 0.264365 +vt 0.402064 0.164234 +vt 0.427497 0.101115 +vt 0.449758 0.078853 +vt 0.499221 0.264365 +vt 0.526619 0.264365 +vt 0.434599 0.264365 +vt 0.364377 0.126547 +vt 0.387921 0.140691 +vt 0.402361 0.074266 +vt 0.418465 0.052101 +vt 0.492274 0.300481 +vt 0.523369 0.305406 +vt 0.436995 0.291726 +vt 0.426261 0.317007 +vt 0.316888 0.102350 +vt 0.343650 0.108526 +vt 0.369059 0.058658 +vt 0.383352 0.030607 +vt 0.487721 0.336976 +vt 0.513778 0.345443 +vt 0.420085 0.343769 +vt 0.402064 0.364495 +vt 0.264246 0.094013 +vt 0.291607 0.091616 +vt 0.336858 0.040891 +vt 0.345324 0.014833 +vt 0.469953 0.369178 +vt 0.498004 0.383471 +vt 0.454345 0.402479 +vt 0.387921 0.388039 +vt 0.364377 0.402183 +vt 0.211605 0.102350 +vt 0.236886 0.091616 +vt 0.264246 0.029390 +vt 0.300363 0.036337 +vt 0.305287 0.005242 +vt 0.476511 0.418584 +vt 0.427496 0.427615 +vt 0.402361 0.454463 +vt 0.343650 0.420204 +vt 0.316888 0.426380 +vt 0.164116 0.126547 +vt 0.184843 0.108526 +vt 0.191635 0.040891 +vt 0.228130 0.036337 +vt 0.264246 0.001992 +vt 0.449758 0.449876 +vt 0.369059 0.470072 +vt 0.418465 0.476629 +vt 0.336858 0.487839 +vt 0.291607 0.437113 +vt 0.264246 0.434717 +vt 0.126429 0.164234 +vt 0.140572 0.140691 +vt 0.126132 0.074266 +vt 0.159433 0.058658 +vt 0.183169 0.014833 +vt 0.223205 0.005242 +vt 0.383352 0.498123 +vt 0.300363 0.492393 +vt 0.345324 0.513896 +vt 0.264246 0.499339 +vt 0.236886 0.437113 +vt 0.211605 0.426380 +vt 0.102232 0.211723 +vt 0.108408 0.184961 +vt 0.074148 0.126250 +vt 0.100996 0.101115 +vt 0.110028 0.052101 +vt 0.145141 0.030607 +vt 0.305287 0.523488 +vt 0.228130 0.492393 +vt 0.264246 0.526738 +vt 0.191635 0.487839 +vt 0.184843 0.420204 +vt 0.164116 0.402183 +vt 0.093894 0.264365 +vt 0.091498 0.237004 +vt 0.040772 0.191754 +vt 0.058539 0.159552 +vt 0.051982 0.110146 +vt 0.078735 0.078854 +vt 0.223205 0.523488 +vt 0.159433 0.470072 +vt 0.183169 0.513896 +vt 0.126132 0.454463 +vt 0.140572 0.388039 +vt 0.126429 0.364495 +vt 0.102232 0.317007 +vt 0.091498 0.291726 +vt 0.029272 0.264365 +vt 0.036218 0.228249 +vt 0.014715 0.183287 +vt 0.030489 0.145259 +vt 0.145141 0.498123 +vt 0.100996 0.427615 +vt 0.110028 0.476629 +vt 0.074148 0.402479 +vt 0.108408 0.343769 +vt 0.040772 0.336976 +vt 0.036218 0.300481 +vt 0.001874 0.264365 +vt 0.005124 0.223324 +vt 0.078735 0.449876 +vt 0.058539 0.369178 +vt 0.051982 0.418584 +vt 0.014715 0.345443 +vt 0.005124 0.305406 +vt 0.030489 0.383471 +vt 0.692856 0.265982 +vt 0.692461 0.266698 +vt 0.691350 0.266133 +vt 0.691488 0.265537 +vt 0.693436 0.266170 +vt 0.693085 0.267017 +vt 0.692113 0.267440 +vt 0.690949 0.266594 +vt 0.687881 0.264365 +vt 0.691727 0.264974 +vt 0.692957 0.265169 +vt 0.692607 0.267799 +vt 0.693650 0.265279 +vt 0.691515 0.268000 +vt 0.690634 0.267118 +vt 0.691673 0.264365 +vt 0.690110 0.267433 +vt 0.693112 0.264365 +vt 0.692011 0.268495 +vt 0.693722 0.264365 +vt 0.690956 0.268597 +vt 0.691488 0.263193 +vt 0.691727 0.263756 +vt 0.689649 0.267835 +vt 0.689053 0.267972 +vt 0.692957 0.263561 +vt 0.691314 0.269091 +vt 0.693650 0.263451 +vt 0.690214 0.268945 +vt 0.690949 0.262136 +vt 0.691350 0.262597 +vt 0.692856 0.262748 +vt 0.689497 0.269340 +vt 0.688490 0.268211 +vt 0.687881 0.268158 +vt 0.690533 0.269569 +vt 0.693436 0.262560 +vt 0.690110 0.261297 +vt 0.690634 0.261611 +vt 0.692113 0.261290 +vt 0.692461 0.262031 +vt 0.688685 0.269442 +vt 0.689686 0.269921 +vt 0.687881 0.269596 +vt 0.687271 0.268211 +vt 0.686709 0.267972 +vt 0.710162 0.295033 +vt 0.705089 0.298138 +vt 0.693085 0.261713 +vt 0.689053 0.260758 +vt 0.689649 0.260895 +vt 0.690956 0.260133 +vt 0.691515 0.260730 +vt 0.692607 0.260931 +vt 0.688794 0.270134 +vt 0.699595 0.300417 +vt 0.687077 0.269442 +vt 0.687881 0.270206 +vt 0.686264 0.269340 +vt 0.686113 0.267835 +vt 0.685651 0.267433 +vt 0.766707 0.372860 +vt 0.748759 0.383846 +vt 0.687881 0.260572 +vt 0.688490 0.260519 +vt 0.689497 0.259390 +vt 0.690214 0.259785 +vt 0.691314 0.259639 +vt 0.692011 0.260235 +vt 0.693810 0.301803 +vt 0.729322 0.391908 +vt 0.686967 0.270134 +vt 0.687881 0.302273 +vt 0.685547 0.268945 +vt 0.686076 0.269921 +vt 0.684806 0.268597 +vt 0.685127 0.267118 +vt 0.684812 0.266594 +vt 0.823251 0.450687 +vt 0.792430 0.469554 +vt 0.686709 0.260758 +vt 0.687271 0.260519 +vt 0.687881 0.259133 +vt 0.688685 0.259288 +vt 0.689686 0.258809 +vt 0.690533 0.259160 +vt 0.708858 0.396811 +vt 0.759049 0.483399 +vt 0.681951 0.301803 +vt 0.687881 0.398472 +vt 0.685229 0.269569 +vt 0.676167 0.300417 +vt 0.684246 0.268000 +vt 0.684447 0.269091 +vt 0.683648 0.267440 +vt 0.684411 0.266133 +vt 0.684274 0.265537 +vt 0.842100 0.476629 +vt 0.806986 0.498123 +vt 0.685651 0.261297 +vt 0.686113 0.260895 +vt 0.686264 0.259390 +vt 0.687077 0.259288 +vt 0.687881 0.258523 +vt 0.688794 0.258596 +vt 0.699595 0.228312 +vt 0.705089 0.230591 +vt 0.710162 0.233697 +vt 0.723906 0.491818 +vt 0.768958 0.513896 +vt 0.666903 0.396811 +vt 0.687881 0.494671 +vt 0.670672 0.298138 +vt 0.646439 0.391908 +vt 0.683750 0.268495 +vt 0.665599 0.295033 +vt 0.683301 0.266698 +vt 0.683155 0.267799 +vt 0.682905 0.265982 +vt 0.684035 0.264974 +vt 0.684088 0.264365 +vt 0.684812 0.262136 +vt 0.685127 0.261611 +vt 0.684806 0.260133 +vt 0.685547 0.259785 +vt 0.686076 0.258809 +vt 0.686967 0.258596 +vt 0.687881 0.226457 +vt 0.693810 0.226927 +vt 0.729322 0.136821 +vt 0.748759 0.144884 +vt 0.766707 0.155870 +vt 0.728922 0.523488 +vt 0.651856 0.491818 +vt 0.687881 0.526738 +vt 0.627002 0.383846 +vt 0.616712 0.483399 +vt 0.609054 0.372860 +vt 0.682676 0.267017 +vt 0.682804 0.265169 +vt 0.682325 0.266170 +vt 0.682649 0.264365 +vt 0.684035 0.263756 +vt 0.684274 0.263193 +vt 0.684411 0.262597 +vt 0.683648 0.261290 +vt 0.684246 0.260730 +vt 0.684447 0.259639 +vt 0.685229 0.259160 +vt 0.676167 0.228312 +vt 0.681951 0.226927 +vt 0.687881 0.130258 +vt 0.708858 0.131919 +vt 0.759049 0.045331 +vt 0.792430 0.059176 +vt 0.823251 0.078043 +vt 0.646840 0.523488 +vt 0.583332 0.469554 +vt 0.606803 0.513896 +vt 0.552510 0.450687 +vt 0.682112 0.265279 +vt 0.682804 0.263561 +vt 0.682039 0.264365 +vt 0.682905 0.262748 +vt 0.683301 0.262031 +vt 0.683155 0.260931 +vt 0.683750 0.260235 +vt 0.665599 0.233697 +vt 0.670672 0.230591 +vt 0.646439 0.136821 +vt 0.666903 0.131919 +vt 0.687881 0.034058 +vt 0.723906 0.036911 +vt 0.768958 0.014834 +vt 0.806986 0.030607 +vt 0.842100 0.052101 +vt 0.568775 0.498123 +vt 0.533662 0.476629 +vt 0.682112 0.263451 +vt 0.682325 0.262560 +vt 0.682676 0.261713 +vt 0.609054 0.155870 +vt 0.627002 0.144884 +vt 0.616712 0.045331 +vt 0.651856 0.036911 +vt 0.687881 0.001992 +vt 0.728922 0.005242 +vt 0.552510 0.078043 +vt 0.583332 0.059176 +vt 0.606803 0.014834 +vt 0.646840 0.005242 +vt 0.533662 0.052101 +vt 0.568775 0.030607 +vt 0.203275 0.530492 +vt 0.203275 0.568520 +vt 0.202441 0.568520 +vt 0.202441 0.530492 +vt 0.203275 0.608557 +vt 0.202441 0.608557 +vt 0.200336 0.568520 +vt 0.200336 0.530492 +vt 0.203275 0.649598 +vt 0.202441 0.649598 +vt 0.200336 0.608557 +vt 0.203275 0.690639 +vt 0.202441 0.690639 +vt 0.200336 0.649598 +vt 0.203275 0.730675 +vt 0.202441 0.730675 +vt 0.200336 0.690639 +vt 0.203275 0.768703 +vt 0.202441 0.768703 +vt 0.200336 0.730675 +vt 0.200336 0.768703 +vt 0.191627 0.768703 +vt 0.191627 0.730675 +vt 0.192461 0.730675 +vt 0.192461 0.768703 +vt 0.191627 0.690639 +vt 0.192461 0.690639 +vt 0.194566 0.730675 +vt 0.194566 0.768703 +vt 0.191627 0.649598 +vt 0.192461 0.649598 +vt 0.194566 0.690639 +vt 0.191627 0.608557 +vt 0.192461 0.608557 +vt 0.194566 0.649598 +vt 0.191627 0.568520 +vt 0.192461 0.568520 +vt 0.194566 0.608557 +vt 0.191627 0.530492 +vt 0.192461 0.530492 +vt 0.194566 0.568520 +vt 0.194566 0.530492 +vn 0.002434 -0.999997 -0.000791 +vn 0.002115 -0.999997 -0.001077 +vn 0.032307 -0.999343 -0.016463 +vn 0.034423 -0.999345 -0.011185 +vn 0.002070 -0.999997 -0.001504 +vn 0.029282 -0.999345 -0.021276 +vn 0.809022 0.000007 -0.587779 +vn 0.891008 0.000004 -0.453988 +vn 0.951056 0.000000 -0.309018 +vn 0.001678 -0.999997 -0.001679 +vn 0.025639 -0.999343 -0.025640 +vn 0.001504 -0.999997 -0.002070 +vn 0.021274 -0.999345 -0.029283 +vn 0.587785 0.000000 -0.809017 +vn 0.707109 0.000004 -0.707105 +vn 0.001077 -0.999997 -0.002115 +vn 0.016461 -0.999343 -0.032308 +vn 0.000791 -0.999997 -0.002434 +vn 0.011185 -0.999345 -0.034422 +vn 0.309015 0.000000 -0.951057 +vn 0.453992 0.000000 -0.891006 +vn 0.000371 -0.999997 -0.002344 +vn 0.005672 -0.999342 -0.035814 +vn -0.000000 -0.999997 -0.002559 +vn -0.000000 -0.999345 -0.036196 +vn -0.000000 -0.000002 -1.000000 +vn 0.156432 -0.000000 -0.987689 +vn -0.000371 -0.999997 -0.002344 +vn -0.005672 -0.999342 -0.035814 +vn -0.000791 -0.999997 -0.002434 +vn -0.011184 -0.999345 -0.034424 +vn -0.309020 0.000001 -0.951056 +vn -0.156437 -0.000002 -0.987688 +vn -0.001077 -0.999997 -0.002115 +vn -0.016461 -0.999342 -0.032308 +vn -0.001504 -0.999997 -0.002070 +vn -0.021275 -0.999345 -0.029283 +vn -0.587786 -0.000003 -0.809017 +vn -0.453992 0.000000 -0.891006 +vn -0.001678 -0.999997 -0.001679 +vn -0.025639 -0.999342 -0.025642 +vn -0.002070 -0.999997 -0.001505 +vn -0.029282 -0.999345 -0.021276 +vn -0.809015 0.000000 -0.587788 +vn -0.707107 -0.000002 -0.707106 +vn -0.002115 -0.999997 -0.001078 +vn -0.032307 -0.999342 -0.016462 +vn -0.002434 -0.999997 -0.000791 +vn -0.034423 -0.999345 -0.011186 +vn -0.951057 0.000000 -0.309015 +vn -0.891005 0.000000 -0.453994 +vn -0.002344 -0.999997 -0.000371 +vn -0.035812 -0.999343 -0.005672 +vn -0.002559 -0.999997 0.000000 +vn -0.036194 -0.999345 0.000000 +vn -1.000000 0.000000 0.000000 +vn -0.987689 0.000000 -0.156433 +vn -0.002344 -0.999997 0.000370 +vn -0.035812 -0.999343 0.005672 +vn -0.002434 -0.999997 0.000791 +vn -0.034423 -0.999345 0.011186 +vn -0.951057 0.000000 0.309015 +vn -0.987689 0.000000 0.156433 +vn -0.002115 -0.999997 0.001078 +vn -0.032307 -0.999342 0.016463 +vn -0.002070 -0.999997 0.001504 +vn -0.029282 -0.999345 0.021275 +vn -0.809019 0.000000 0.587783 +vn -0.891008 0.000000 0.453988 +vn -0.001678 -0.999997 0.001677 +vn -0.025639 -0.999342 0.025640 +vn -0.001504 -0.999997 0.002071 +vn -0.021274 -0.999345 0.029283 +vn -0.587786 -0.000000 0.809016 +vn -0.707107 -0.000000 0.707107 +vn -0.001077 -0.999997 0.002115 +vn -0.016461 -0.999342 0.032308 +vn -0.000791 -0.999997 0.002434 +vn -0.011185 -0.999345 0.034425 +vn -0.309021 0.000003 0.951055 +vn -0.453991 0.000001 0.891006 +vn -0.000371 -0.999997 0.002344 +vn -0.005672 -0.999342 0.035814 +vn 0.000000 -0.999997 0.002559 +vn -0.000000 -0.999345 0.036195 +vn 0.000000 -0.000004 1.000000 +vn -0.156435 0.000000 0.987688 +vn 0.000371 -0.999997 0.002344 +vn 0.005672 -0.999342 0.035815 +vn 0.000791 -0.999997 0.002434 +vn 0.011184 -0.999345 0.034426 +vn 0.309021 -0.000000 0.951055 +vn 0.156437 -0.000002 0.987688 +vn 0.001077 -0.999997 0.002114 +vn 0.016461 -0.999342 0.032311 +vn 0.001504 -0.999997 0.002071 +vn 0.021274 -0.999345 0.029285 +vn 0.587785 0.000003 0.809018 +vn 0.453991 0.000001 0.891006 +vn 0.001678 -0.999997 0.001678 +vn 0.025639 -0.999342 0.025640 +vn 0.002070 -0.999997 0.001503 +vn 0.029282 -0.999345 0.021275 +vn 0.809013 0.000006 0.587791 +vn 0.707103 0.000004 0.707111 +vn 0.002115 -0.999997 0.001078 +vn 0.032307 -0.999342 0.016463 +vn 0.002434 -0.999997 0.000792 +vn 0.034423 -0.999345 0.011186 +vn 0.951057 0.000000 0.309015 +vn 0.891007 0.000004 0.453990 +vn 0.002344 -0.999997 0.000371 +vn 0.035813 -0.999343 0.005672 +vn 0.002559 -0.999997 -0.000000 +vn 0.036194 -0.999345 -0.000001 +vn 1.000000 0.000004 -0.000000 +vn 0.987689 0.000000 0.156433 +vn 0.002344 -0.999997 -0.000371 +vn 0.035812 -0.999343 -0.005673 +vn 0.987689 0.000004 -0.156433 +vn 0.000331 -1.000000 -0.000170 +vn 0.000213 -1.000000 -0.000156 +vn 0.000250 -1.000000 -0.000082 +vn 0.000000 -1.000000 -0.000000 +vn 0.000262 -1.000000 -0.000263 +vn 0.000155 -1.000000 -0.000213 +vn 0.000168 -1.000000 -0.000330 +vn 0.000081 -1.000000 -0.000250 +vn 0.000058 -1.000000 -0.000367 +vn -0.000000 -1.000000 -0.000263 +vn -0.000058 -1.000000 -0.000366 +vn -0.000081 -1.000000 -0.000250 +vn -0.000168 -1.000000 -0.000330 +vn -0.000155 -1.000000 -0.000213 +vn -0.000262 -1.000000 -0.000263 +vn -0.000213 -1.000000 -0.000155 +vn -0.000331 -1.000000 -0.000168 +vn -0.000250 -1.000000 -0.000081 +vn -0.000366 -1.000000 -0.000058 +vn -0.000263 -1.000000 0.000000 +vn -0.000366 -1.000000 0.000058 +vn -0.000250 -1.000000 0.000081 +vn -0.000331 -1.000000 0.000168 +vn -0.000213 -1.000000 0.000154 +vn -0.000262 -1.000000 0.000261 +vn -0.000155 -1.000000 0.000213 +vn -0.000168 -1.000000 0.000331 +vn -0.000081 -1.000000 0.000250 +vn -0.000058 -1.000000 0.000366 +vn 0.000000 -1.000000 0.000263 +vn 0.000058 -1.000000 0.000366 +vn 0.000081 -1.000000 0.000250 +vn 0.000168 -1.000000 0.000331 +vn 0.000155 -1.000000 0.000213 +vn 0.000262 -1.000000 0.000263 +vn 0.000213 -1.000000 0.000153 +vn 0.000331 -1.000000 0.000166 +vn 0.000250 -1.000000 0.000081 +vn 0.000366 -1.000000 0.000060 +vn 0.000263 -1.000000 0.000001 +vn 0.000366 -1.000000 -0.000058 +vn 0.022916 0.999709 -0.007497 +vn 0.019918 0.999750 -0.010165 +vn 0.003121 0.999994 -0.001584 +vn 0.002361 0.999997 -0.000844 +vn 0.019493 0.999710 -0.014156 +vn 0.002009 0.999997 -0.001454 +vn 0.000000 1.000000 -0.000002 +vn 0.015807 0.999750 -0.015812 +vn 0.002477 0.999994 -0.002475 +vn 0.014162 0.999710 -0.019457 +vn 0.001459 0.999997 -0.001958 +vn 0.010148 0.999751 -0.019881 +vn 0.001590 0.999994 -0.003052 +vn 0.007446 0.999710 -0.022896 +vn 0.000767 0.999997 -0.002333 +vn 0.003497 0.999750 -0.022066 +vn 0.000548 0.999994 -0.003458 +vn -0.000000 0.999709 -0.024110 +vn -0.000000 0.999997 -0.002478 +vn -0.003497 0.999750 -0.022078 +vn -0.000548 0.999994 -0.003445 +vn -0.007446 0.999710 -0.022923 +vn -0.000767 0.999997 -0.002350 +vn -0.010148 0.999751 -0.019895 +vn -0.001590 0.999994 -0.003094 +vn -0.014162 0.999710 -0.019476 +vn -0.001459 0.999997 -0.001999 +vn -0.015807 0.999750 -0.015831 +vn -0.002477 0.999994 -0.002486 +vn -0.019493 0.999709 -0.014186 +vn -0.002009 0.999997 -0.001458 +vn -0.019918 0.999750 -0.010166 +vn -0.003121 0.999994 -0.001595 +vn -0.022916 0.999710 -0.007462 +vn -0.002361 0.999997 -0.000705 +vn -0.022079 0.999750 -0.003477 +vn -0.003460 0.999994 -0.000419 +vn -0.024095 0.999710 -0.000017 +vn -0.002483 0.999997 -0.000008 +vn -0.022079 0.999750 0.003495 +vn -0.003460 0.999994 0.000419 +vn -0.022916 0.999710 0.007454 +vn -0.002361 0.999997 0.000737 +vn -0.019918 0.999750 0.010129 +vn -0.003121 0.999994 0.001647 +vn -0.019493 0.999709 0.014177 +vn -0.002009 0.999997 0.001489 +vn -0.015807 0.999750 0.015812 +vn -0.002477 0.999994 0.002475 +vn -0.014162 0.999711 0.019438 +vn -0.001459 0.999997 0.001974 +vn -0.010148 0.999751 0.019854 +vn -0.001590 0.999994 0.003052 +vn -0.007446 0.999710 0.022923 +vn -0.000767 0.999997 0.002345 +vn -0.003497 0.999750 0.022080 +vn -0.000548 0.999994 0.003476 +vn 0.000000 0.999709 0.024132 +vn 0.000000 0.999997 0.002473 +vn 0.003497 0.999750 0.022095 +vn 0.000548 0.999994 0.003405 +vn 0.007446 0.999709 0.022932 +vn 0.000767 0.999997 0.002316 +vn 0.010148 0.999749 0.019951 +vn 0.001590 0.999994 0.003115 +vn 0.014162 0.999709 0.019510 +vn 0.001459 0.999997 0.001980 +vn 0.015807 0.999750 0.015793 +vn 0.002477 0.999994 0.002402 +vn 0.019493 0.999709 0.014207 +vn 0.002009 0.999997 0.001422 +vn 0.019918 0.999750 0.010203 +vn 0.003121 0.999994 0.001606 +vn 0.022916 0.999710 0.007433 +vn 0.002361 0.999997 0.000824 +vn 0.022079 0.999750 0.003487 +vn 0.003460 0.999994 0.000674 +vn 0.024095 0.999710 -0.000030 +vn 0.002483 0.999997 -0.000004 +vn 0.022079 0.999750 -0.003533 +vn 0.003460 0.999994 -0.000690 +vn 0.771792 0.584338 0.250771 +vn 0.801540 0.584308 0.126952 +vn 0.800438 0.585855 0.126780 +vn 0.770730 0.585883 0.250433 +vn 0.811511 0.584338 0.000002 +vn 0.810395 0.585885 -0.000000 +vn 0.656527 0.584338 0.476992 +vn 0.723081 0.584308 0.368426 +vn 0.722088 0.585855 0.367918 +vn 0.655628 0.585886 0.476330 +vn 0.476993 0.584338 0.656527 +vn 0.573840 0.584309 0.573839 +vn 0.573048 0.585853 0.573055 +vn 0.476331 0.585881 0.655631 +vn 0.250770 0.584338 0.771793 +vn 0.368426 0.584308 0.723081 +vn 0.367916 0.585854 0.722089 +vn 0.250423 0.585882 0.770734 +vn 0.000000 0.584338 0.811511 +vn 0.126952 0.584308 0.801540 +vn 0.126777 0.585854 0.800439 +vn 0.000001 0.585883 0.810395 +vn -0.250770 0.584337 0.771793 +vn -0.126951 0.584308 0.801541 +vn -0.126775 0.585854 0.800439 +vn -0.250423 0.585882 0.770733 +vn -0.476993 0.584338 0.656526 +vn -0.368427 0.584308 0.723081 +vn -0.367915 0.585852 0.722091 +vn -0.476334 0.585883 0.655627 +vn -0.656526 0.584338 0.476993 +vn -0.573840 0.584308 0.573839 +vn -0.573052 0.585857 0.573048 +vn -0.655627 0.585886 0.476330 +vn -0.771792 0.584338 0.250772 +vn -0.723081 0.584308 0.368426 +vn -0.722090 0.585857 0.367910 +vn -0.770732 0.585884 0.250424 +vn -0.811511 0.584338 -0.000000 +vn -0.801541 0.584308 0.126951 +vn -0.800438 0.585855 0.126780 +vn -0.810395 0.585884 -0.000000 +vn -0.771792 0.584338 -0.250771 +vn -0.801541 0.584308 -0.126951 +vn -0.800438 0.585855 -0.126780 +vn -0.770734 0.585886 -0.250415 +vn -0.656527 0.584338 -0.476993 +vn -0.723081 0.584308 -0.368426 +vn -0.722090 0.585857 -0.367910 +vn -0.655628 0.585886 -0.476330 +vn -0.476993 0.584338 -0.656526 +vn -0.573841 0.584309 -0.573838 +vn -0.573054 0.585858 -0.573045 +vn -0.476332 0.585881 -0.655631 +vn -0.250770 0.584338 -0.771792 +vn -0.368427 0.584308 -0.723081 +vn -0.367914 0.585852 -0.722092 +vn -0.250423 0.585883 -0.770733 +vn -0.000000 0.584338 -0.811511 +vn -0.126952 0.584309 -0.801540 +vn -0.126777 0.585855 -0.800438 +vn -0.000001 0.585883 -0.810396 +vn 0.250770 0.584337 -0.771793 +vn 0.126951 0.584308 -0.801541 +vn 0.126775 0.585853 -0.800440 +vn 0.250424 0.585884 -0.770732 +vn 0.476993 0.584338 -0.656527 +vn 0.368427 0.584308 -0.723081 +vn 0.367918 0.585856 -0.722086 +vn 0.476333 0.585884 -0.655627 +vn 0.656526 0.584338 -0.476994 +vn 0.573840 0.584309 -0.573839 +vn 0.573046 0.585853 -0.573057 +vn 0.655622 0.585881 -0.476344 +vn 0.771793 0.584338 -0.250768 +vn 0.723081 0.584309 -0.368425 +vn 0.722091 0.585856 -0.367910 +vn 0.770734 0.585885 -0.250415 +vn 0.801541 0.584308 -0.126952 +vn 0.800438 0.585855 -0.126780 +vn 0.776518 0.577374 0.252307 +vn 0.806446 0.577347 0.127729 +vn 0.802481 0.582984 0.127101 +vn 0.772698 0.583013 0.251065 +vn 0.816480 0.577374 0.000000 +vn 0.812463 0.583013 0.000001 +vn 0.660546 0.577374 0.479914 +vn 0.727506 0.577347 0.370682 +vn 0.723929 0.582984 0.368858 +vn 0.657297 0.583014 0.477553 +vn 0.479915 0.577374 0.660546 +vn 0.577352 0.577347 0.577352 +vn 0.574513 0.582984 0.574513 +vn 0.477553 0.583013 0.657297 +vn 0.252306 0.577374 0.776519 +vn 0.370682 0.577347 0.727506 +vn 0.368859 0.582984 0.723929 +vn 0.251065 0.583013 0.772698 +vn 0.000000 0.577374 0.816480 +vn 0.127729 0.577347 0.806447 +vn 0.127101 0.582984 0.802481 +vn 0.000000 0.583013 0.812463 +vn -0.252306 0.577374 0.776519 +vn -0.127729 0.577347 0.806447 +vn -0.127100 0.582984 0.802481 +vn -0.251065 0.583013 0.772698 +vn -0.479915 0.577374 0.660546 +vn -0.370682 0.577347 0.727506 +vn -0.368860 0.582984 0.723928 +vn -0.477553 0.583013 0.657296 +vn -0.660546 0.577374 0.479915 +vn -0.577352 0.577347 0.577352 +vn -0.574513 0.582984 0.574513 +vn -0.657296 0.583013 0.477554 +vn -0.776519 0.577374 0.252306 +vn -0.727506 0.577347 0.370683 +vn -0.723928 0.582984 0.368860 +vn -0.772698 0.583013 0.251065 +vn -0.816480 0.577374 0.000000 +vn -0.806447 0.577347 0.127729 +vn -0.802481 0.582984 0.127100 +vn -0.812463 0.583013 -0.000000 +vn -0.776519 0.577374 -0.252306 +vn -0.806447 0.577347 -0.127729 +vn -0.802481 0.582984 -0.127100 +vn -0.772698 0.583013 -0.251065 +vn -0.660546 0.577374 -0.479915 +vn -0.727506 0.577347 -0.370683 +vn -0.723928 0.582984 -0.368860 +vn -0.657296 0.583013 -0.477554 +vn -0.479915 0.577374 -0.660546 +vn -0.577352 0.577347 -0.577352 +vn -0.574513 0.582984 -0.574512 +vn -0.477553 0.583013 -0.657296 +vn -0.252306 0.577374 -0.776518 +vn -0.370683 0.577347 -0.727506 +vn -0.368860 0.582984 -0.723928 +vn -0.251065 0.583013 -0.772698 +vn 0.000000 0.577374 -0.816480 +vn -0.127729 0.577347 -0.806447 +vn -0.127101 0.582984 -0.802481 +vn -0.000000 0.583013 -0.812463 +vn 0.252306 0.577374 -0.776519 +vn 0.127729 0.577347 -0.806446 +vn 0.127100 0.582984 -0.802481 +vn 0.251064 0.583013 -0.772698 +vn 0.479915 0.577374 -0.660546 +vn 0.370683 0.577347 -0.727506 +vn 0.368859 0.582984 -0.723929 +vn 0.477553 0.583013 -0.657296 +vn 0.660546 0.577374 -0.479915 +vn 0.577352 0.577347 -0.577352 +vn 0.574513 0.582984 -0.574513 +vn 0.657296 0.583013 -0.477553 +vn 0.776519 0.577374 -0.252305 +vn 0.727506 0.577347 -0.370682 +vn 0.723929 0.582984 -0.368859 +vn 0.772698 0.583013 -0.251064 +vn 0.806447 0.577347 -0.127727 +vn 0.802481 0.582984 -0.127100 +vn 0.745059 0.548425 0.379627 +vn 0.676488 0.548448 0.491497 +vn 0.795259 0.548448 0.258396 +vn 0.591282 0.548425 0.591283 +vn 0.491497 0.548448 0.676488 +vn 0.379627 0.548426 0.745059 +vn 0.258396 0.548448 0.795259 +vn 0.130811 0.548425 0.825905 +vn 0.000000 0.548448 0.836184 +vn -0.130811 0.548426 0.825904 +vn -0.258395 0.548448 0.795259 +vn -0.379626 0.548425 0.745060 +vn -0.491497 0.548448 0.676488 +vn -0.591282 0.548425 0.591282 +vn -0.676488 0.548448 0.491497 +vn -0.745059 0.548425 0.379627 +vn -0.795259 0.548448 0.258396 +vn -0.825905 0.548425 0.130811 +vn -0.836185 0.548448 0.000000 +vn -0.825905 0.548425 -0.130811 +vn -0.795259 0.548448 -0.258395 +vn -0.745059 0.548425 -0.379626 +vn -0.676488 0.548448 -0.491497 +vn -0.591283 0.548425 -0.591282 +vn -0.491497 0.548448 -0.676487 +vn -0.379627 0.548425 -0.745059 +vn -0.258396 0.548449 -0.795258 +vn -0.130811 0.548426 -0.825904 +vn 0.000000 0.548449 -0.836184 +vn 0.130811 0.548426 -0.825904 +vn 0.258395 0.548449 -0.795258 +vn 0.379627 0.548426 -0.745059 +vn 0.491497 0.548448 -0.676488 +vn 0.591282 0.548426 -0.591282 +vn 0.676488 0.548449 -0.491496 +vn 0.745059 0.548426 -0.379626 +vn 0.795259 0.548449 -0.258395 +vn 0.825904 0.548426 -0.130809 +vn 0.836184 0.548448 0.000000 +vn 0.825905 0.548425 0.130810 +s 1 +g pCylinder3 +usemtl phong2SG +f 805/1207/805 925/1208/806 1127/1209/807 926/1210/808 +f 925/1208/806 806/1213/809 927/1214/810 1127/1209/807 +f 1127/1014/807 927/1017/810 904/1018/811 928/1015/812 +f 926/1013/808 1127/1014/807 928/1015/812 905/1016/813 +f 806/1213/809 929/1220/814 1128/1221/815 927/1214/810 +f 929/1220/814 807/1227/816 930/1228/817 1128/1221/815 +f 1128/1023/815 930/1031/817 903/1032/818 931/1024/819 +f 927/1017/810 1128/1023/815 931/1024/819 904/1018/811 +f 807/1227/816 932/1235/820 1129/1236/821 930/1228/817 +f 932/1235/820 808/1243/822 933/1244/823 1129/1236/821 +f 1129/1521/821 933/1522/823 902/1523/824 934/1524/825 +f 930/1031/817 1129/1041/821 934/1042/825 903/1032/818 +f 808/1243/822 935/1253/826 1130/1254/827 933/1244/823 +f 935/1253/826 809/1252/828 936/1264/829 1130/1254/827 +f 1130/1525/827 936/1529/829 901/1530/830 937/1526/831 +f 933/1522/823 1130/1525/827 937/1526/831 902/1523/824 +f 809/1252/828 938/1263/832 1131/1276/833 936/1264/829 +f 938/1263/832 810/1262/834 939/1275/835 1131/1276/833 +f 1131/1532/833 939/1535/835 900/1536/836 940/1533/837 +f 936/1529/829 1131/1532/833 940/1533/837 901/1530/830 +f 810/1262/834 941/1274/838 1132/1288/839 939/1275/835 +f 941/1274/838 811/1273/840 942/1287/841 1132/1288/839 +f 1132/1148/839 942/1136/841 899/1137/842 943/1149/843 +f 939/1535/835 1132/1538/839 943/1539/843 900/1536/836 +f 811/1273/840 944/1286/844 1133/1300/845 942/1287/841 +f 944/1286/844 812/1285/846 945/1299/847 1133/1300/845 +f 1133/1126/845 945/1118/847 898/1119/848 946/1127/849 +f 942/1136/841 1133/1126/845 946/1127/849 899/1137/842 +f 812/1285/846 947/1298/850 1134/1312/851 945/1299/847 +f 947/1298/850 813/1297/852 948/1311/853 1134/1312/851 +f 1134/1110/851 948/1111/853 897/1112/854 949/1113/855 +f 945/1118/847 1134/1110/851 949/1113/855 898/1119/848 +f 813/1297/852 950/1310/856 1135/1321/857 948/1311/853 +f 950/1310/856 814/1309/858 951/1320/859 1135/1321/857 +f 1135/1114/857 951/1120/859 896/1121/860 952/1115/861 +f 948/1111/853 1135/1114/857 952/1115/861 897/1112/854 +f 814/1309/858 953/1319/862 1136/1326/863 951/1320/859 +f 953/1319/862 815/1318/864 954/1325/865 1136/1326/863 +f 1136/1128/863 954/1138/865 895/1139/866 955/1129/867 +f 951/1120/859 1136/1128/863 955/1129/867 896/1121/860 +f 815/1318/864 956/1323/868 1137/1327/869 954/1325/865 +f 956/1323/868 816/1316/870 957/1324/871 1137/1327/869 +f 1137/1150/869 957/1162/871 894/1163/872 958/1151/873 +f 954/1138/865 1137/1150/869 958/1151/873 895/1139/866 +f 816/1316/870 959/1314/874 1138/1322/875 957/1324/871 +f 959/1314/874 817/1304/876 960/1315/877 1138/1322/875 +f 1138/1172/875 960/1181/877 893/1182/878 961/1173/879 +f 957/1162/871 1138/1172/875 961/1173/879 894/1163/872 +f 817/1304/876 962/1302/880 1139/1313/881 960/1315/877 +f 962/1302/880 818/1292/882 963/1303/883 1139/1313/881 +f 1139/1542/881 963/1543/883 892/1544/884 964/1545/885 +f 960/1181/877 1139/1189/881 964/1190/885 893/1182/878 +f 818/1292/882 965/1290/886 1140/1301/887 963/1303/883 +f 965/1290/886 819/1280/888 966/1291/889 1140/1301/887 +f 1140/1546/887 966/1550/889 891/1551/890 967/1547/891 +f 963/1543/883 1140/1546/887 967/1547/891 892/1544/884 +f 819/1280/888 968/1278/892 1141/1289/893 966/1291/889 +f 968/1278/892 820/1268/894 969/1279/895 1141/1289/893 +f 1141/1553/893 969/1556/895 890/1557/896 970/1554/897 +f 966/1550/889 1141/1553/893 970/1554/897 891/1551/890 +f 820/1268/894 971/1266/898 1142/1277/899 969/1279/895 +f 971/1266/898 821/1257/900 972/1267/901 1142/1277/899 +f 1142/1097/899 972/1090/901 889/1091/902 973/1098/903 +f 969/1556/895 1142/1559/899 973/1560/903 890/1557/896 +f 821/1257/900 974/1256/904 1143/1265/905 972/1267/901 +f 974/1256/904 822/1247/906 975/1255/907 1143/1265/905 +f 1143/1082/905 975/1073/907 888/1074/908 976/1083/909 +f 972/1090/901 1143/1082/905 976/1083/909 889/1091/902 +f 822/1247/906 977/1245/910 1144/1246/911 975/1255/907 +f 977/1245/910 823/1237/912 978/1238/913 1144/1246/911 +f 1144/1063/911 978/1051/913 887/1052/914 979/1064/915 +f 975/1073/907 1144/1063/911 979/1064/915 888/1074/908 +f 823/1237/912 980/1229/916 1145/1230/917 978/1238/913 +f 980/1229/916 824/1222/918 981/1223/919 1145/1230/917 +f 1145/1039/917 981/1029/919 906/1030/920 982/1040/921 +f 978/1051/913 1145/1039/917 982/1040/921 887/1052/914 +f 824/1222/918 983/1215/922 1146/1216/923 981/1223/919 +f 983/1215/922 805/1207/805 926/1210/808 1146/1216/923 +f 1146/1021/923 926/1013/808 905/1016/813 984/1022/924 +f 981/1029/919 1146/1021/923 984/1022/924 906/1030/920 +f 806/1213/809 925/1208/806 1147/1212/925 985/1219/926 +f 805/1207/805 986/1211/927 1147/1212/925 925/1208/806 +f 845/1218/928 985/1219/926 1147/1212/925 986/1211/927 +f 807/1227/816 929/1220/814 1148/1226/929 987/1225/930 +f 806/1213/809 985/1219/926 1148/1226/929 929/1220/814 +f 845/1218/928 987/1225/930 1148/1226/929 985/1219/926 +f 808/1243/822 932/1235/820 1149/1234/931 988/1233/932 +f 807/1227/816 987/1225/930 1149/1234/931 932/1235/820 +f 845/1218/928 988/1233/932 1149/1234/931 987/1225/930 +f 809/1252/828 935/1253/826 1150/1242/933 989/1241/934 +f 808/1243/822 988/1233/932 1150/1242/933 935/1253/826 +f 845/1218/928 989/1241/934 1150/1242/933 988/1233/932 +f 810/1262/834 938/1263/832 1151/1251/935 990/1250/936 +f 809/1252/828 989/1241/934 1151/1251/935 938/1263/832 +f 845/1218/928 990/1250/936 1151/1251/935 989/1241/934 +f 811/1273/840 941/1274/838 1152/1261/937 991/1260/938 +f 810/1262/834 990/1250/936 1152/1261/937 941/1274/838 +f 845/1218/928 991/1260/938 1152/1261/937 990/1250/936 +f 812/1285/846 944/1286/844 1153/1272/939 992/1271/940 +f 811/1273/840 991/1260/938 1153/1272/939 944/1286/844 +f 845/1218/928 992/1271/940 1153/1272/939 991/1260/938 +f 813/1297/852 947/1298/850 1154/1284/941 993/1283/942 +f 812/1285/846 992/1271/940 1154/1284/941 947/1298/850 +f 845/1218/928 993/1283/942 1154/1284/941 992/1271/940 +f 814/1309/858 950/1310/856 1155/1296/943 994/1295/944 +f 813/1297/852 993/1283/942 1155/1296/943 950/1310/856 +f 845/1218/928 994/1295/944 1155/1296/943 993/1283/942 +f 815/1318/864 953/1319/862 1156/1308/945 995/1307/946 +f 814/1309/858 994/1295/944 1156/1308/945 953/1319/862 +f 845/1218/928 995/1307/946 1156/1308/945 994/1295/944 +f 816/1316/870 956/1323/868 1157/1317/947 996/1306/948 +f 815/1318/864 995/1307/946 1157/1317/947 956/1323/868 +f 845/1218/928 996/1306/948 1157/1317/947 995/1307/946 +f 817/1304/876 959/1314/874 1158/1305/949 997/1294/950 +f 816/1316/870 996/1306/948 1158/1305/949 959/1314/874 +f 845/1218/928 997/1294/950 1158/1305/949 996/1306/948 +f 818/1292/882 962/1302/880 1159/1293/951 998/1282/952 +f 817/1304/876 997/1294/950 1159/1293/951 962/1302/880 +f 845/1218/928 998/1282/952 1159/1293/951 997/1294/950 +f 819/1280/888 965/1290/886 1160/1281/953 999/1270/954 +f 818/1292/882 998/1282/952 1160/1281/953 965/1290/886 +f 845/1218/928 999/1270/954 1160/1281/953 998/1282/952 +f 820/1268/894 968/1278/892 1161/1269/955 1000/1259/956 +f 819/1280/888 999/1270/954 1161/1269/955 968/1278/892 +f 845/1218/928 1000/1259/956 1161/1269/955 999/1270/954 +f 821/1257/900 971/1266/898 1162/1258/957 1001/1249/958 +f 820/1268/894 1000/1259/956 1162/1258/957 971/1266/898 +f 845/1218/928 1001/1249/958 1162/1258/957 1000/1259/956 +f 822/1247/906 974/1256/904 1163/1248/959 1002/1240/960 +f 821/1257/900 1001/1249/958 1163/1248/959 974/1256/904 +f 845/1218/928 1002/1240/960 1163/1248/959 1001/1249/958 +f 823/1237/912 977/1245/910 1164/1239/961 1003/1232/962 +f 822/1247/906 1002/1240/960 1164/1239/961 977/1245/910 +f 845/1218/928 1003/1232/962 1164/1239/961 1002/1240/960 +f 824/1222/918 980/1229/916 1165/1231/963 1004/1224/964 +f 823/1237/912 1003/1232/962 1165/1231/963 980/1229/916 +f 845/1218/928 1004/1224/964 1165/1231/963 1003/1232/962 +f 805/1207/805 983/1215/922 1166/1217/965 986/1211/927 +f 824/1222/918 1004/1224/964 1166/1217/965 983/1215/922 +f 845/1218/928 986/1211/927 1166/1217/965 1004/1224/964 +f 825/1328/966 1005/1329/967 1167/1330/968 1006/1331/969 +f 826/1334/970 1007/1335/971 1167/1330/968 1005/1329/967 +f 846/1336/972 1006/1331/969 1167/1330/968 1007/1335/971 +f 826/1334/970 1008/1341/973 1168/1342/974 1007/1335/971 +f 827/1348/975 1009/1344/976 1168/1342/974 1008/1341/973 +f 846/1336/972 1007/1335/971 1168/1342/974 1009/1344/976 +f 827/1348/975 1010/1356/977 1169/1351/978 1009/1344/976 +f 828/1360/979 1011/1352/980 1169/1351/978 1010/1356/977 +f 846/1336/972 1009/1344/976 1169/1351/978 1011/1352/980 +f 828/1360/979 1012/1369/981 1170/1361/982 1011/1352/980 +f 829/1371/983 1013/1362/984 1170/1361/982 1012/1369/981 +f 846/1336/972 1011/1352/980 1170/1361/982 1013/1362/984 +f 829/1371/983 1014/1384/985 1171/1372/986 1013/1362/984 +f 830/1386/987 1015/1373/988 1171/1372/986 1014/1384/985 +f 846/1336/972 1013/1362/984 1171/1372/986 1015/1373/988 +f 830/1386/987 1016/1401/989 1172/1387/990 1015/1373/988 +f 831/1403/991 1017/1388/992 1172/1387/990 1016/1401/989 +f 846/1336/972 1015/1373/988 1172/1387/990 1017/1388/992 +f 831/1403/991 1018/1420/993 1173/1404/994 1017/1388/992 +f 832/1422/995 1019/1405/996 1173/1404/994 1018/1420/993 +f 846/1336/972 1017/1388/992 1173/1404/994 1019/1405/996 +f 832/1422/995 1020/1444/997 1174/1423/998 1019/1405/996 +f 833/1446/999 1021/1424/1000 1174/1423/998 1020/1444/997 +f 846/1336/972 1019/1405/996 1174/1423/998 1021/1424/1000 +f 833/1446/999 1022/1467/1001 1175/1447/1002 1021/1424/1000 +f 834/1469/1003 1023/1448/1004 1175/1447/1002 1022/1467/1001 +f 846/1336/972 1021/1424/1000 1175/1447/1002 1023/1448/1004 +f 834/1469/1003 1024/1489/1005 1176/1470/1006 1023/1448/1004 +f 835/1491/1007 1025/1471/1008 1176/1470/1006 1024/1489/1005 +f 846/1336/972 1023/1448/1004 1176/1470/1006 1025/1471/1008 +f 835/1491/1007 1026/1492/1009 1177/1472/1010 1025/1471/1008 +f 836/1473/1011 1027/1449/1012 1177/1472/1010 1026/1492/1009 +f 846/1336/972 1025/1471/1008 1177/1472/1010 1027/1449/1012 +f 836/1473/1011 1028/1474/1013 1178/1450/1014 1027/1449/1012 +f 837/1451/1015 1029/1427/1016 1178/1450/1014 1028/1474/1013 +f 846/1336/972 1027/1449/1012 1178/1450/1014 1029/1427/1016 +f 837/1451/1015 1030/1452/1017 1179/1428/1018 1029/1427/1016 +f 838/1429/1019 1031/1408/1020 1179/1428/1018 1030/1452/1017 +f 846/1336/972 1029/1427/1016 1179/1428/1018 1031/1408/1020 +f 838/1429/1019 1032/1430/1021 1180/1409/1022 1031/1408/1020 +f 839/1410/1023 1033/1391/1024 1180/1409/1022 1032/1430/1021 +f 846/1336/972 1031/1408/1020 1180/1409/1022 1033/1391/1024 +f 839/1410/1023 1034/1411/1025 1181/1392/1026 1033/1391/1024 +f 840/1393/1027 1035/1377/1028 1181/1392/1026 1034/1411/1025 +f 846/1336/972 1033/1391/1024 1181/1392/1026 1035/1377/1028 +f 840/1393/1027 1036/1394/1029 1182/1378/1030 1035/1377/1028 +f 841/1379/1031 1037/1365/1032 1182/1378/1030 1036/1394/1029 +f 846/1336/972 1035/1377/1028 1182/1378/1030 1037/1365/1032 +f 841/1379/1031 1038/1380/1033 1183/1366/1034 1037/1365/1032 +f 842/1367/1035 1039/1357/1036 1183/1366/1034 1038/1380/1033 +f 846/1336/972 1037/1365/1032 1183/1366/1034 1039/1357/1036 +f 842/1367/1035 1040/1368/1037 1184/1358/1038 1039/1357/1036 +f 843/1359/1039 1041/1349/1040 1184/1358/1038 1040/1368/1037 +f 846/1336/972 1039/1357/1036 1184/1358/1038 1041/1349/1040 +f 843/1359/1039 1042/1353/1041 1185/1350/1042 1041/1349/1040 +f 844/1345/1043 1043/1343/1044 1185/1350/1042 1042/1353/1041 +f 846/1336/972 1041/1349/1040 1185/1350/1042 1043/1343/1044 +f 844/1345/1043 1044/1338/1045 1186/1337/1046 1043/1343/1044 +f 825/1328/966 1006/1331/969 1186/1337/1046 1044/1338/1045 +f 846/1336/972 1043/1343/1044 1186/1337/1046 1006/1331/969 +f 848/1086/1047 1045/1078/1048 1187/1085/1049 1046/1092/1050 +f 1045/1078/1048 847/1069/1051 1047/1077/1052 1187/1085/1049 +f 1187/1355/1049 1047/1347/1052 844/1345/1043 1042/1353/1041 +f 1046/1364/1050 1187/1355/1049 1042/1353/1041 843/1359/1039 +f 849/1100/1053 1048/1093/1054 1188/1099/1055 1049/1104/1056 +f 1048/1093/1054 848/1086/1047 1046/1092/1050 1188/1099/1055 +f 1188/1376/1055 1046/1364/1050 843/1359/1039 1040/1368/1037 +f 1049/1381/1056 1188/1376/1055 1040/1368/1037 842/1367/1035 +f 850/1108/1057 1050/1105/1058 1189/1107/1059 1051/1109/1060 +f 1050/1105/1058 849/1100/1053 1049/1104/1056 1189/1107/1059 +f 1189/1396/1059 1049/1381/1056 842/1367/1035 1038/1380/1033 +f 1051/1395/1060 1189/1396/1059 1038/1380/1033 841/1379/1031 +f 851/1433/1061 1052/1434/1062 1190/1413/1063 1053/1412/1064 +f 1052/1434/1062 850/1435/1057 1051/1395/1060 1190/1413/1063 +f 1190/1413/1063 1051/1395/1060 841/1379/1031 1036/1394/1029 +f 1053/1412/1064 1190/1413/1063 1036/1394/1029 840/1393/1027 +f 852/1455/1065 1054/1456/1066 1191/1432/1067 1055/1431/1068 +f 1054/1456/1066 851/1433/1061 1053/1412/1064 1191/1432/1067 +f 1191/1432/1067 1053/1412/1064 840/1393/1027 1034/1411/1025 +f 1055/1431/1068 1191/1432/1067 1034/1411/1025 839/1410/1023 +f 853/1477/1069 1056/1478/1070 1192/1454/1071 1057/1453/1072 +f 1056/1478/1070 852/1455/1065 1055/1431/1068 1192/1454/1071 +f 1192/1454/1071 1055/1431/1068 839/1410/1023 1032/1430/1021 +f 1057/1453/1072 1192/1454/1071 1032/1430/1021 838/1429/1019 +f 854/1495/1073 1058/1496/1074 1193/1476/1075 1059/1475/1076 +f 1058/1496/1074 853/1477/1069 1057/1453/1072 1193/1476/1075 +f 1193/1476/1075 1057/1453/1072 838/1429/1019 1030/1452/1017 +f 1059/1475/1076 1193/1476/1075 1030/1452/1017 837/1451/1015 +f 855/1199/1077 1060/1202/1078 1194/1205/1079 1061/1203/1080 +f 1060/1202/1078 854/1204/1073 1059/1206/1076 1194/1205/1079 +f 1194/1494/1079 1059/1475/1076 837/1451/1015 1028/1474/1013 +f 1061/1493/1080 1194/1494/1079 1028/1474/1013 836/1473/1011 +f 856/1186/1081 1062/1194/1082 1195/1200/1083 1063/1195/1084 +f 1062/1194/1082 855/1199/1077 1061/1203/1080 1195/1200/1083 +f 1195/1508/1083 1061/1493/1080 836/1473/1011 1026/1492/1009 +f 1063/1507/1084 1195/1508/1083 1026/1492/1009 835/1491/1007 +f 857/1167/1085 1064/1177/1086 1196/1187/1087 1065/1178/1088 +f 1064/1177/1086 856/1186/1081 1063/1195/1084 1196/1187/1087 +f 1196/1506/1087 1063/1507/1084 835/1491/1007 1024/1489/1005 +f 1065/1490/1088 1196/1506/1087 1024/1489/1005 834/1469/1003 +f 858/1143/1089 1066/1155/1090 1197/1168/1091 1067/1156/1092 +f 1066/1155/1090 857/1167/1085 1065/1178/1088 1197/1168/1091 +f 1197/1488/1091 1065/1490/1088 834/1469/1003 1022/1467/1001 +f 1067/1468/1092 1197/1488/1091 1022/1467/1001 833/1446/999 +f 859/1158/1093 1068/1144/1094 1198/1157/1095 1069/1169/1096 +f 1068/1144/1094 858/1143/1089 1067/1156/1092 1198/1157/1095 +f 1198/1466/1095 1067/1468/1092 833/1446/999 1020/1444/997 +f 1069/1445/1096 1198/1466/1095 1020/1444/997 832/1422/995 +f 860/1180/1097 1070/1170/1098 1199/1179/1099 1071/1188/1100 +f 1070/1170/1098 859/1158/1093 1069/1169/1096 1199/1179/1099 +f 1199/1442/1099 1069/1445/1096 832/1422/995 1018/1420/993 +f 1071/1421/1100 1199/1442/1099 1018/1420/993 831/1403/991 +f 861/1419/1101 1072/1440/1102 1200/1418/1103 1073/1402/1104 +f 1072/1440/1102 860/1443/1097 1071/1421/1100 1200/1418/1103 +f 1200/1418/1103 1071/1421/1100 831/1403/991 1016/1401/989 +f 1073/1402/1104 1200/1418/1103 1016/1401/989 830/1386/987 +f 862/1400/1105 1074/1416/1106 1201/1399/1107 1075/1385/1108 +f 1074/1416/1106 861/1419/1101 1073/1402/1104 1201/1399/1107 +f 1201/1399/1107 1073/1402/1104 830/1386/987 1014/1384/985 +f 1075/1385/1108 1201/1399/1107 1014/1384/985 829/1371/983 +f 863/1383/1109 1076/1397/1110 1202/1382/1111 1077/1370/1112 +f 1076/1397/1110 862/1400/1105 1075/1385/1108 1202/1382/1111 +f 1202/1382/1111 1075/1385/1108 829/1371/983 1012/1369/981 +f 1077/1370/1112 1202/1382/1111 1012/1369/981 828/1360/979 +f 864/1374/1113 1078/1375/1114 1203/1363/1115 1079/1354/1116 +f 1078/1375/1114 863/1383/1109 1077/1370/1112 1203/1363/1115 +f 1203/1363/1115 1077/1370/1112 828/1360/979 1010/1356/977 +f 1079/1354/1116 1203/1363/1115 1010/1356/977 827/1348/975 +f 865/1056/1117 1080/1066/1118 1204/1076/1119 1081/1067/1120 +f 1080/1066/1118 864/1075/1113 1079/1084/1116 1204/1076/1119 +f 1204/1346/1119 1079/1354/1116 827/1348/975 1008/1341/973 +f 1081/1339/1120 1204/1346/1119 1008/1341/973 826/1334/970 +f 866/1047/1121 1082/1046/1122 1205/1057/1123 1083/1058/1124 +f 1082/1046/1122 865/1056/1117 1081/1067/1120 1205/1057/1123 +f 1205/1333/1123 1081/1339/1120 826/1334/970 1005/1329/967 +f 1083/1332/1124 1205/1333/1123 1005/1329/967 825/1328/966 +f 847/1069/1051 1084/1059/1125 1206/1068/1126 1047/1077/1052 +f 1084/1059/1125 866/1047/1121 1083/1058/1124 1206/1068/1126 +f 1206/1340/1126 1083/1332/1124 825/1328/966 1044/1338/1045 +f 1047/1347/1052 1206/1340/1126 1044/1338/1045 844/1345/1043 +f 868/1071/1127 1085/1061/1128 1207/1070/1129 1086/1079/1130 +f 1085/1061/1128 867/1049/1131 1087/1060/1132 1207/1070/1129 +f 1207/1070/1129 1087/1060/1132 847/1069/1051 1045/1078/1048 +f 1086/1079/1130 1207/1070/1129 1045/1078/1048 848/1086/1047 +f 869/1088/1133 1088/1080/1134 1208/1087/1135 1089/1094/1136 +f 1088/1080/1134 868/1071/1127 1086/1079/1130 1208/1087/1135 +f 1208/1087/1135 1086/1079/1130 848/1086/1047 1048/1093/1054 +f 1089/1094/1136 1208/1087/1135 1048/1093/1054 849/1100/1053 +f 870/1102/1137 1090/1095/1138 1209/1101/1139 1091/1106/1140 +f 1090/1095/1138 869/1088/1133 1089/1094/1136 1209/1101/1139 +f 1209/1101/1139 1089/1094/1136 849/1100/1053 1050/1105/1058 +f 1091/1106/1140 1209/1101/1139 1050/1105/1058 850/1108/1057 +f 871/1481/1141 1092/1482/1142 1210/1458/1143 1093/1457/1144 +f 1092/1482/1142 870/1483/1137 1091/1459/1140 1210/1458/1143 +f 1210/1458/1143 1091/1459/1140 850/1435/1057 1052/1434/1062 +f 1093/1457/1144 1210/1458/1143 1052/1434/1062 851/1433/1061 +f 872/1499/1145 1094/1500/1146 1211/1480/1147 1095/1479/1148 +f 1094/1500/1146 871/1481/1141 1093/1457/1144 1211/1480/1147 +f 1211/1480/1147 1093/1457/1144 851/1433/1061 1054/1456/1066 +f 1095/1479/1148 1211/1480/1147 1054/1456/1066 852/1455/1065 +f 873/1511/1149 1096/1512/1150 1212/1498/1151 1097/1497/1152 +f 1096/1512/1150 872/1499/1145 1095/1479/1148 1212/1498/1151 +f 1212/1498/1151 1095/1479/1148 852/1455/1065 1056/1478/1070 +f 1097/1497/1152 1212/1498/1151 1056/1478/1070 853/1477/1069 +f 874/1515/1153 1098/1516/1154 1213/1510/1155 1099/1509/1156 +f 1098/1516/1154 873/1511/1149 1097/1497/1152 1213/1510/1155 +f 1213/1510/1155 1097/1497/1152 853/1477/1069 1058/1496/1074 +f 1099/1509/1156 1213/1510/1155 1058/1496/1074 854/1495/1073 +f 875/1184/1157 1100/1192/1158 1214/1198/1159 1101/1193/1160 +f 1100/1192/1158 874/1197/1153 1099/1201/1156 1214/1198/1159 +f 1214/1198/1159 1099/1201/1156 854/1204/1073 1060/1202/1078 +f 1101/1193/1160 1214/1198/1159 1060/1202/1078 855/1199/1077 +f 876/1165/1161 1102/1175/1162 1215/1185/1163 1103/1176/1164 +f 1102/1175/1162 875/1184/1157 1101/1193/1160 1215/1185/1163 +f 1215/1185/1163 1101/1193/1160 855/1199/1077 1062/1194/1082 +f 1103/1176/1164 1215/1185/1163 1062/1194/1082 856/1186/1081 +f 877/1141/1165 1104/1153/1166 1216/1166/1167 1105/1154/1168 +f 1104/1153/1166 876/1165/1161 1103/1176/1164 1216/1166/1167 +f 1216/1166/1167 1103/1176/1164 856/1186/1081 1064/1177/1086 +f 1105/1154/1168 1216/1166/1167 1064/1177/1086 857/1167/1085 +f 878/1123/1169 1106/1131/1170 1217/1142/1171 1107/1132/1172 +f 1106/1131/1170 877/1141/1165 1105/1154/1168 1217/1142/1171 +f 1217/1142/1171 1105/1154/1168 857/1167/1085 1066/1155/1090 +f 1107/1132/1172 1217/1142/1171 1066/1155/1090 858/1143/1089 +f 879/1134/1173 1108/1124/1174 1218/1133/1175 1109/1145/1176 +f 1108/1124/1174 878/1123/1169 1107/1132/1172 1218/1133/1175 +f 1218/1133/1175 1107/1132/1172 858/1143/1089 1068/1144/1094 +f 1109/1145/1176 1218/1133/1175 1068/1144/1094 859/1158/1093 +f 880/1160/1177 1110/1146/1178 1219/1159/1179 1111/1171/1180 +f 1110/1146/1178 879/1134/1173 1109/1145/1176 1219/1159/1179 +f 1219/1159/1179 1109/1145/1176 859/1158/1093 1070/1170/1098 +f 1111/1171/1180 1219/1159/1179 1070/1170/1098 860/1180/1097 +f 881/1464/1181 1112/1485/1182 1220/1463/1183 1113/1441/1184 +f 1112/1485/1182 880/1487/1177 1111/1465/1180 1220/1463/1183 +f 1220/1463/1183 1111/1465/1180 860/1443/1097 1072/1440/1102 +f 1113/1441/1184 1220/1463/1183 1072/1440/1102 861/1419/1101 +f 882/1439/1185 1114/1461/1186 1221/1438/1187 1115/1417/1188 +f 1114/1461/1186 881/1464/1181 1113/1441/1184 1221/1438/1187 +f 1221/1438/1187 1113/1441/1184 861/1419/1101 1074/1416/1106 +f 1115/1417/1188 1221/1438/1187 1074/1416/1106 862/1400/1105 +f 883/1415/1189 1116/1436/1190 1222/1414/1191 1117/1398/1192 +f 1116/1436/1190 882/1439/1185 1115/1417/1188 1222/1414/1191 +f 1222/1414/1191 1115/1417/1188 862/1400/1105 1076/1397/1110 +f 1117/1398/1192 1222/1414/1191 1076/1397/1110 863/1383/1109 +f 884/1406/1193 1118/1407/1194 1223/1390/1195 1119/1389/1196 +f 1118/1407/1194 883/1415/1189 1117/1398/1192 1223/1390/1195 +f 1223/1390/1195 1117/1398/1192 863/1383/1109 1078/1375/1114 +f 1119/1389/1196 1223/1390/1195 1078/1375/1114 864/1374/1113 +f 885/1034/1197 1120/1044/1198 1224/1055/1199 1121/1045/1200 +f 1120/1044/1198 884/1054/1193 1119/1065/1196 1224/1055/1199 +f 1224/1055/1199 1119/1065/1196 864/1075/1113 1080/1066/1118 +f 1121/1045/1200 1224/1055/1199 1080/1066/1118 865/1056/1117 +f 886/1027/1201 1122/1026/1202 1225/1035/1203 1123/1036/1204 +f 1122/1026/1202 885/1034/1197 1121/1045/1200 1225/1035/1203 +f 1225/1035/1203 1121/1045/1200 865/1056/1117 1082/1046/1122 +f 1123/1036/1204 1225/1035/1203 1082/1046/1122 866/1047/1121 +f 867/1049/1131 1124/1037/1205 1226/1048/1206 1087/1060/1132 +f 1124/1037/1205 886/1027/1201 1123/1036/1204 1226/1048/1206 +f 1226/1048/1206 1123/1036/1204 866/1047/1121 1084/1059/1125 +f 1087/1060/1132 1226/1048/1206 1084/1059/1125 847/1069/1051 +f 888/1074/908 979/1064/915 1227/1072/1207 1125/1081/1208 +f 979/1064/915 887/1052/914 1126/1062/1209 1227/1072/1207 +f 1227/1072/1207 1126/1062/1209 868/1071/1127 1088/1080/1134 +f 1125/1081/1208 1227/1072/1207 1088/1080/1134 869/1088/1133 +f 889/1091/902 976/1083/909 1228/1089/1210 907/1096/1211 +f 976/1083/909 888/1074/908 1125/1081/1208 1228/1089/1210 +f 1228/1089/1210 1125/1081/1208 869/1088/1133 1090/1095/1138 +f 907/1096/1211 1228/1089/1210 1090/1095/1138 870/1102/1137 +f 890/1557/896 973/1560/903 1229/1562/1212 908/1561/1213 +f 973/1098/903 889/1091/902 907/1096/1211 1229/1103/1212 +f 1229/1502/1212 907/1503/1211 870/1483/1137 1092/1482/1142 +f 908/1501/1213 1229/1502/1212 1092/1482/1142 871/1481/1141 +f 891/1551/890 970/1554/897 1230/1558/1214 909/1555/1215 +f 970/1554/897 890/1557/896 908/1561/1213 1230/1558/1214 +f 1230/1514/1214 908/1501/1213 871/1481/1141 1094/1500/1146 +f 909/1513/1215 1230/1514/1214 1094/1500/1146 872/1499/1145 +f 892/1544/884 967/1547/891 1231/1552/1216 910/1548/1217 +f 967/1547/891 891/1551/890 909/1555/1215 1231/1552/1216 +f 1231/1518/1216 909/1513/1215 872/1499/1145 1096/1512/1150 +f 910/1517/1217 1231/1518/1216 1096/1512/1150 873/1511/1149 +f 893/1182/878 964/1190/885 1232/1196/1218 911/1191/1219 +f 964/1545/885 892/1544/884 910/1548/1217 1232/1549/1218 +f 1232/1520/1218 910/1517/1217 873/1511/1149 1098/1516/1154 +f 911/1519/1219 1232/1520/1218 1098/1516/1154 874/1515/1153 +f 894/1163/872 961/1173/879 1233/1183/1220 912/1174/1221 +f 961/1173/879 893/1182/878 911/1191/1219 1233/1183/1220 +f 1233/1183/1220 911/1191/1219 874/1197/1153 1100/1192/1158 +f 912/1174/1221 1233/1183/1220 1100/1192/1158 875/1184/1157 +f 895/1139/866 958/1151/873 1234/1164/1222 913/1152/1223 +f 958/1151/873 894/1163/872 912/1174/1221 1234/1164/1222 +f 1234/1164/1222 912/1174/1221 875/1184/1157 1102/1175/1162 +f 913/1152/1223 1234/1164/1222 1102/1175/1162 876/1165/1161 +f 896/1121/860 955/1129/867 1235/1140/1224 914/1130/1225 +f 955/1129/867 895/1139/866 913/1152/1223 1235/1140/1224 +f 1235/1140/1224 913/1152/1223 876/1165/1161 1104/1153/1166 +f 914/1130/1225 1235/1140/1224 1104/1153/1166 877/1141/1165 +f 897/1112/854 952/1115/861 1236/1122/1226 915/1116/1227 +f 952/1115/861 896/1121/860 914/1130/1225 1236/1122/1226 +f 1236/1122/1226 914/1130/1225 877/1141/1165 1106/1131/1170 +f 915/1116/1227 1236/1122/1226 1106/1131/1170 878/1123/1169 +f 898/1119/848 949/1113/855 1237/1117/1228 916/1125/1229 +f 949/1113/855 897/1112/854 915/1116/1227 1237/1117/1228 +f 1237/1117/1228 915/1116/1227 878/1123/1169 1108/1124/1174 +f 916/1125/1229 1237/1117/1228 1108/1124/1174 879/1134/1173 +f 899/1137/842 946/1127/849 1238/1135/1230 917/1147/1231 +f 946/1127/849 898/1119/848 916/1125/1229 1238/1135/1230 +f 1238/1135/1230 916/1125/1229 879/1134/1173 1110/1146/1178 +f 917/1147/1231 1238/1135/1230 1110/1146/1178 880/1160/1177 +f 900/1536/836 943/1539/843 1239/1541/1232 918/1540/1233 +f 943/1149/843 899/1137/842 917/1147/1231 1239/1161/1232 +f 1239/1504/1232 917/1505/1231 880/1487/1177 1112/1485/1182 +f 918/1486/1233 1239/1504/1232 1112/1485/1182 881/1464/1181 +f 901/1530/830 940/1533/837 1240/1537/1234 919/1534/1235 +f 940/1533/837 900/1536/836 918/1540/1233 1240/1537/1234 +f 1240/1484/1234 918/1486/1233 881/1464/1181 1114/1461/1186 +f 919/1462/1235 1240/1484/1234 1114/1461/1186 882/1439/1185 +f 902/1523/824 937/1526/831 1241/1531/1236 920/1527/1237 +f 937/1526/831 901/1530/830 919/1534/1235 1241/1531/1236 +f 1241/1460/1236 919/1462/1235 882/1439/1185 1116/1436/1190 +f 920/1437/1237 1241/1460/1236 1116/1436/1190 883/1415/1189 +f 903/1032/818 934/1042/825 1242/1053/1238 921/1043/1239 +f 934/1524/825 902/1523/824 920/1527/1237 1242/1528/1238 +f 1242/1426/1238 920/1437/1237 883/1415/1189 1118/1407/1194 +f 921/1425/1239 1242/1426/1238 1118/1407/1194 884/1406/1193 +f 904/1018/811 931/1024/819 1243/1033/1240 922/1025/1241 +f 931/1024/819 903/1032/818 921/1043/1239 1243/1033/1240 +f 1243/1033/1240 921/1043/1239 884/1054/1193 1120/1044/1198 +f 922/1025/1241 1243/1033/1240 1120/1044/1198 885/1034/1197 +f 905/1016/813 928/1015/812 1244/1019/1242 923/1020/1243 +f 928/1015/812 904/1018/811 922/1025/1241 1244/1019/1242 +f 1244/1019/1242 922/1025/1241 885/1034/1197 1122/1026/1202 +f 923/1020/1243 1244/1019/1242 1122/1026/1202 886/1027/1201 +f 906/1030/920 984/1022/924 1245/1028/1244 924/1038/1245 +f 984/1022/924 905/1016/813 923/1020/1243 1245/1028/1244 +f 1245/1028/1244 923/1020/1243 886/1027/1201 1124/1037/1205 +f 924/1038/1245 1245/1028/1244 1124/1037/1205 867/1049/1131 +f 887/1052/914 982/1040/921 1246/1050/1246 1126/1062/1209 +f 982/1040/921 906/1030/920 924/1038/1245 1246/1050/1246 +f 1246/1050/1246 924/1038/1245 867/1049/1131 1085/1061/1128 +f 1126/1062/1209 1246/1050/1246 1085/1061/1128 868/1071/1127 +g default +v 0.466082 2.922387 -0.151439 +v 0.396473 2.922387 -0.288055 +v 0.288055 2.922387 -0.396474 +v 0.151439 2.922387 -0.466083 +v -0.000000 2.922387 -0.490068 +v -0.151439 2.922387 -0.466083 +v -0.288055 2.922387 -0.396473 +v -0.396473 2.922387 -0.288055 +v -0.466082 2.922387 -0.151439 +v -0.490068 2.922387 -0.000000 +v -0.466082 2.922387 0.151439 +v -0.396473 2.922387 0.288055 +v -0.288055 2.922387 0.396473 +v -0.151439 2.922387 0.466082 +v -0.000000 2.922387 0.490068 +v 0.151439 2.922387 0.466082 +v 0.288055 2.922387 0.396473 +v 0.396473 2.922387 0.288055 +v 0.466082 2.922387 0.151439 +v 0.490068 2.922387 -0.000000 +v 0.010377 3.677629 -0.003372 +v 0.008827 3.677629 -0.006414 +v 0.006413 3.677629 -0.008827 +v 0.003372 3.677629 -0.010377 +v -0.000000 3.677629 -0.010911 +v -0.003372 3.677629 -0.010377 +v -0.006413 3.677629 -0.008827 +v -0.008827 3.677629 -0.006414 +v -0.010377 3.677629 -0.003372 +v -0.010911 3.677629 -0.000000 +v -0.010377 3.677629 0.003371 +v -0.008827 3.677629 0.006413 +v -0.006413 3.677629 0.008827 +v -0.003372 3.677629 0.010377 +v -0.000000 3.677629 0.010911 +v 0.003372 3.677629 0.010377 +v 0.006413 3.677629 0.008827 +v 0.008827 3.677629 0.006413 +v 0.010377 3.677629 0.003371 +v 0.010911 3.677629 -0.000000 +v -0.000000 2.922284 -0.000000 +v -0.000000 3.677651 -0.000000 +v 0.079061 3.584632 -0.000000 +v 0.075192 3.584632 0.024431 +v 0.063962 3.584632 0.046471 +v 0.046471 3.584632 0.063962 +v 0.024431 3.584632 0.075192 +v -0.000000 3.584632 0.079061 +v -0.024431 3.584632 0.075192 +v -0.046471 3.584632 0.063962 +v -0.063962 3.584632 0.046471 +v -0.075192 3.584632 0.024431 +v -0.079062 3.584632 -0.000000 +v -0.075192 3.584632 -0.024431 +v -0.063962 3.584632 -0.046471 +v -0.046471 3.584632 -0.063962 +v -0.024431 3.584632 -0.075192 +v -0.000000 3.584632 -0.079062 +v 0.024431 3.584632 -0.075192 +v 0.046471 3.584632 -0.063962 +v 0.063962 3.584632 -0.046471 +v 0.075192 3.584632 -0.024432 +v 0.480332 3.025979 -0.000000 +v 0.456823 3.025979 0.148431 +v 0.388597 3.025979 0.282332 +v 0.282332 3.025979 0.388596 +v 0.148431 3.025979 0.456823 +v -0.000000 3.025979 0.480332 +v -0.148431 3.025979 0.456823 +v -0.282332 3.025979 0.388596 +v -0.388597 3.025979 0.282332 +v -0.456823 3.025979 0.148431 +v -0.480332 3.025979 -0.000000 +v -0.456823 3.025979 -0.148431 +v -0.388597 3.025979 -0.282332 +v -0.282332 3.025979 -0.388597 +v -0.148431 3.025979 -0.456823 +v -0.000000 3.025979 -0.480332 +v 0.148431 3.025979 -0.456823 +v 0.282332 3.025979 -0.388597 +v 0.388597 3.025979 -0.282332 +v 0.456823 3.025979 -0.148431 +v 0.520428 2.924436 0.169097 +v 0.442702 2.924436 0.321642 +v 0.321642 2.924436 0.442702 +v 0.169097 2.924436 0.520428 +v -0.000000 2.924436 0.547210 +v -0.169097 2.924436 0.520428 +v -0.321642 2.924436 0.442702 +v -0.442702 2.924436 0.321642 +v -0.520428 2.924436 0.169097 +v -0.547210 2.924436 -0.000000 +v -0.520428 2.924436 -0.169097 +v -0.442703 2.924436 -0.321642 +v -0.321642 2.924436 -0.442703 +v -0.169097 2.924436 -0.520428 +v -0.000000 2.924436 -0.547211 +v 0.169097 2.924436 -0.520428 +v 0.321642 2.924436 -0.442703 +v 0.442703 2.924436 -0.321642 +v 0.520428 2.924436 -0.169097 +v 0.547210 2.924436 -0.000000 +v 0.321642 2.928826 0.442702 +v 0.169097 2.928826 0.520428 +v -0.000000 2.928826 0.547210 +v -0.169097 2.928826 0.520428 +v -0.321642 2.928826 0.442702 +v -0.442702 2.928826 0.321642 +v -0.520428 2.928826 0.169097 +v -0.547210 2.928826 -0.000000 +v -0.520428 2.928826 -0.169097 +v -0.442703 2.928826 -0.321642 +v -0.321642 2.928826 -0.442703 +v -0.169097 2.928826 -0.520428 +v -0.000000 2.928826 -0.547211 +v 0.169097 2.928826 -0.520428 +v 0.321642 2.928826 -0.442703 +v 0.442703 2.928826 -0.321642 +v 0.520428 2.928826 -0.169097 +v 0.547210 2.928826 -0.000000 +v 0.429027 2.922433 -0.218600 +v 0.520428 2.922698 -0.169097 +v 0.442703 2.922698 -0.321642 +v 0.487531 2.924436 -0.248409 +v 0.340478 2.922433 -0.340478 +v 0.321642 2.922698 -0.442703 +v 0.386907 2.924436 -0.386907 +v 0.218600 2.922433 -0.429027 +v 0.169097 2.922698 -0.520428 +v 0.248409 2.924436 -0.487531 +v 0.075324 2.922433 -0.475580 +v -0.000000 2.922698 -0.547211 +v 0.085596 2.924436 -0.540432 +v -0.075325 2.922433 -0.475580 +v -0.169097 2.922698 -0.520428 +v -0.085596 2.924436 -0.540432 +v -0.218600 2.922433 -0.429027 +v -0.321642 2.922698 -0.442703 +v -0.248409 2.924436 -0.487531 +v -0.340478 2.922433 -0.340478 +v -0.442703 2.922698 -0.321642 +v -0.386907 2.924436 -0.386907 +v -0.429027 2.922433 -0.218600 +v -0.520428 2.922698 -0.169097 +v -0.487531 2.924436 -0.248409 +v -0.475580 2.922433 -0.075325 +v -0.547210 2.922698 -0.000000 +v -0.540432 2.924436 -0.085596 +v -0.475580 2.922433 0.075324 +v -0.520428 2.922698 0.169097 +v -0.540432 2.924436 0.085596 +v -0.429027 2.922433 0.218600 +v -0.442702 2.922698 0.321642 +v -0.487531 2.924436 0.248409 +v -0.340478 2.922433 0.340477 +v -0.321642 2.922698 0.442702 +v -0.386906 2.924436 0.386906 +v -0.218600 2.922433 0.429027 +v -0.169097 2.922698 0.520428 +v -0.248409 2.924436 0.487530 +v -0.075325 2.922433 0.475580 +v -0.000000 2.922698 0.547210 +v -0.085596 2.924436 0.540432 +v 0.075324 2.922433 0.475580 +v 0.169097 2.922698 0.520428 +v 0.085596 2.924436 0.540432 +v 0.218600 2.922433 0.429027 +v 0.321642 2.922698 0.442702 +v 0.248409 2.924436 0.487530 +v 0.340477 2.922433 0.340477 +v 0.442702 2.922698 0.321642 +v 0.386906 2.924436 0.386906 +v 0.429027 2.922433 0.218600 +v 0.520428 2.922698 0.169097 +v 0.487530 2.924436 0.248409 +v 0.475580 2.922433 0.075324 +v 0.547210 2.922698 -0.000000 +v 0.540432 2.924436 0.085596 +v 0.475580 2.922433 -0.075325 +v 0.540432 2.924436 -0.085596 +v 0.287436 2.922284 -0.208835 +v 0.337901 2.922284 -0.109791 +v 0.208834 2.922284 -0.287436 +v 0.109791 2.922284 -0.337901 +v -0.000000 2.922284 -0.355290 +v -0.109791 2.922284 -0.337901 +v -0.208834 2.922284 -0.287436 +v -0.287436 2.922284 -0.208834 +v -0.337901 2.922284 -0.109791 +v -0.355290 2.922284 -0.000000 +v -0.337901 2.922284 0.109791 +v -0.287436 2.922284 0.208834 +v -0.208834 2.922284 0.287436 +v -0.109791 2.922284 0.337901 +v -0.000000 2.922284 0.355290 +v 0.109791 2.922284 0.337901 +v 0.208834 2.922284 0.287436 +v 0.287436 2.922284 0.208834 +v 0.337901 2.922284 0.109791 +v 0.355290 2.922284 -0.000000 +v 0.009552 3.677620 -0.004867 +v 0.007523 3.677651 -0.002445 +v 0.006399 3.677651 -0.004650 +v 0.007580 3.677620 -0.007581 +v 0.004649 3.677651 -0.006400 +v 0.004867 3.677620 -0.009552 +v 0.002444 3.677651 -0.007523 +v 0.001677 3.677620 -0.010589 +v -0.000000 3.677651 -0.007910 +v -0.001677 3.677620 -0.010589 +v -0.002445 3.677651 -0.007523 +v -0.004867 3.677620 -0.009552 +v -0.004650 3.677651 -0.006400 +v -0.007581 3.677620 -0.007581 +v -0.006400 3.677651 -0.004650 +v -0.009552 3.677620 -0.004867 +v -0.007523 3.677651 -0.002445 +v -0.010588 3.677620 -0.001677 +v -0.007910 3.677651 -0.000000 +v -0.010588 3.677620 0.001677 +v -0.007523 3.677651 0.002444 +v -0.009552 3.677620 0.004867 +v -0.006400 3.677651 0.004649 +v -0.007581 3.677620 0.007580 +v -0.004650 3.677651 0.006399 +v -0.004867 3.677620 0.009552 +v -0.002445 3.677651 0.007523 +v -0.001677 3.677620 0.010588 +v -0.000000 3.677651 0.007910 +v 0.001677 3.677620 0.010588 +v 0.002444 3.677651 0.007523 +v 0.004867 3.677620 0.009552 +v 0.004649 3.677651 0.006399 +v 0.007580 3.677620 0.007580 +v 0.006399 3.677651 0.004649 +v 0.009552 3.677620 0.004867 +v 0.007523 3.677651 0.002444 +v 0.010588 3.677620 0.001677 +v 0.007910 3.677651 -0.000000 +v 0.010588 3.677620 -0.001677 +v 0.078082 3.584632 0.012367 +v 0.011587 3.677564 0.003765 +v 0.012183 3.677564 -0.000000 +v 0.070439 3.584632 0.035890 +v 0.009856 3.677564 0.007161 +v 0.055901 3.584632 0.055901 +v 0.007161 3.677564 0.009856 +v 0.035890 3.584632 0.070439 +v 0.003765 3.677564 0.011587 +v 0.012367 3.584632 0.078082 +v -0.000000 3.677564 0.012183 +v -0.012367 3.584632 0.078082 +v -0.003765 3.677564 0.011587 +v -0.035891 3.584632 0.070439 +v -0.007161 3.677564 0.009856 +v -0.055901 3.584632 0.055901 +v -0.009857 3.677564 0.007161 +v -0.070439 3.584632 0.035890 +v -0.011587 3.677564 0.003765 +v -0.078082 3.584632 0.012367 +v -0.012183 3.677564 -0.000000 +v -0.078082 3.584632 -0.012367 +v -0.011587 3.677564 -0.003765 +v -0.070439 3.584632 -0.035891 +v -0.009857 3.677564 -0.007161 +v -0.055901 3.584632 -0.055901 +v -0.007161 3.677564 -0.009857 +v -0.035891 3.584632 -0.070439 +v -0.003765 3.677564 -0.011587 +v -0.012367 3.584632 -0.078082 +v -0.000000 3.677564 -0.012183 +v 0.012367 3.584632 -0.078082 +v 0.003765 3.677564 -0.011587 +v 0.035890 3.584632 -0.070439 +v 0.007161 3.677564 -0.009857 +v 0.055901 3.584632 -0.055901 +v 0.009856 3.677564 -0.007161 +v 0.070439 3.584632 -0.035891 +v 0.011587 3.677564 -0.003765 +v 0.078082 3.584632 -0.012367 +v 0.474382 3.025979 0.075135 +v 0.266007 3.306009 0.086431 +v 0.279697 3.306009 -0.000000 +v 0.427946 3.025979 0.218049 +v 0.226279 3.306009 0.164402 +v 0.339620 3.025979 0.339620 +v 0.164402 3.306009 0.226279 +v 0.218049 3.025979 0.427946 +v 0.086431 3.306009 0.266007 +v 0.075135 3.025979 0.474382 +v -0.000000 3.306009 0.279697 +v -0.075135 3.025979 0.474382 +v -0.086431 3.306009 0.266007 +v -0.218049 3.025979 0.427946 +v -0.164402 3.306009 0.226279 +v -0.339620 3.025979 0.339620 +v -0.226279 3.306009 0.164402 +v -0.427946 3.025979 0.218049 +v -0.266007 3.306009 0.086431 +v -0.474382 3.025979 0.075135 +v -0.279697 3.306009 -0.000000 +v -0.474382 3.025979 -0.075135 +v -0.266007 3.306009 -0.086431 +v -0.427946 3.025979 -0.218049 +v -0.226279 3.306009 -0.164402 +v -0.339620 3.025979 -0.339620 +v -0.164402 3.306009 -0.226280 +v -0.218049 3.025979 -0.427946 +v -0.086431 3.306009 -0.266008 +v -0.075135 3.025979 -0.474382 +v -0.000000 3.306009 -0.279697 +v 0.075135 3.025979 -0.474382 +v 0.086431 3.306009 -0.266008 +v 0.218049 3.025979 -0.427946 +v 0.164402 3.306009 -0.226280 +v 0.339620 3.025979 -0.339620 +v 0.226279 3.306009 -0.164402 +v 0.427946 3.025979 -0.218050 +v 0.266007 3.306009 -0.086431 +v 0.474382 3.025979 -0.075135 +v 0.442702 2.928826 0.321642 +v 0.520428 2.928826 0.169097 +v 0.487531 2.922698 -0.248409 +v 0.386907 2.922698 -0.386907 +v 0.248409 2.922698 -0.487531 +v 0.085596 2.922698 -0.540432 +v -0.085596 2.922698 -0.540432 +v -0.248409 2.922698 -0.487531 +v -0.386907 2.922698 -0.386907 +v -0.487531 2.922698 -0.248409 +v -0.540432 2.922698 -0.085596 +v -0.540432 2.922698 0.085596 +v -0.487531 2.922698 0.248409 +v -0.386906 2.922698 0.386906 +v -0.248409 2.922698 0.487530 +v -0.085596 2.922698 0.540432 +v 0.085596 2.922698 0.540432 +v 0.248409 2.922698 0.487530 +v 0.386906 2.922698 0.386906 +v 0.487530 2.922698 0.248409 +v 0.540432 2.922698 0.085596 +v 0.540432 2.922698 -0.085596 +v 0.325020 2.922284 -0.165606 +v 0.257938 2.922284 -0.257938 +v 0.165606 2.922284 -0.325021 +v 0.057064 2.922284 -0.360288 +v -0.057064 2.922284 -0.360288 +v -0.165606 2.922284 -0.325020 +v -0.257938 2.922284 -0.257938 +v -0.325020 2.922284 -0.165606 +v -0.360288 2.922284 -0.057064 +v -0.360288 2.922284 0.057064 +v -0.325020 2.922284 0.165606 +v -0.257938 2.922284 0.257937 +v -0.165606 2.922284 0.325020 +v -0.057064 2.922284 0.360288 +v 0.057064 2.922284 0.360288 +v 0.165606 2.922284 0.325020 +v 0.257937 2.922284 0.257937 +v 0.325020 2.922284 0.165606 +v 0.360288 2.922284 0.057064 +v 0.360288 2.922284 -0.057064 +v 0.007236 3.677651 -0.003687 +v 0.005743 3.677651 -0.005743 +v 0.003687 3.677651 -0.007236 +v 0.001270 3.677651 -0.008022 +v -0.001271 3.677651 -0.008022 +v -0.003687 3.677651 -0.007236 +v -0.005743 3.677651 -0.005743 +v -0.007236 3.677651 -0.003687 +v -0.008022 3.677651 -0.001271 +v -0.008022 3.677651 0.001270 +v -0.007236 3.677651 0.003687 +v -0.005743 3.677651 0.005743 +v -0.003687 3.677651 0.007236 +v -0.001271 3.677651 0.008021 +v 0.001270 3.677651 0.008021 +v 0.003687 3.677651 0.007236 +v 0.005743 3.677651 0.005743 +v 0.007236 3.677651 0.003687 +v 0.008021 3.677651 0.001270 +v 0.008021 3.677651 -0.001271 +v 0.012032 3.677564 0.001906 +v 0.010854 3.677564 0.005530 +v 0.008614 3.677564 0.008614 +v 0.005531 3.677564 0.010854 +v 0.001906 3.677564 0.012032 +v -0.001906 3.677564 0.012032 +v -0.005531 3.677564 0.010854 +v -0.008614 3.677564 0.008614 +v -0.010855 3.677564 0.005530 +v -0.012032 3.677564 0.001906 +v -0.012032 3.677564 -0.001906 +v -0.010855 3.677564 -0.005531 +v -0.008614 3.677564 -0.008614 +v -0.005531 3.677564 -0.010855 +v -0.001906 3.677564 -0.012032 +v 0.001906 3.677564 -0.012032 +v 0.005531 3.677564 -0.010855 +v 0.008614 3.677564 -0.008614 +v 0.010854 3.677564 -0.005531 +v 0.012032 3.677564 -0.001906 +v 0.276232 3.306009 0.043751 +v 0.249192 3.306009 0.126970 +v 0.197760 3.306009 0.197760 +v 0.126970 3.306009 0.249192 +v 0.043751 3.306009 0.276232 +v -0.043751 3.306009 0.276232 +v -0.126970 3.306009 0.249192 +v -0.197760 3.306009 0.197760 +v -0.249193 3.306009 0.126970 +v -0.276232 3.306009 0.043751 +v -0.276232 3.306009 -0.043751 +v -0.249193 3.306009 -0.126970 +v -0.197760 3.306009 -0.197760 +v -0.126970 3.306009 -0.249193 +v -0.043751 3.306009 -0.276232 +v 0.043751 3.306009 -0.276232 +v 0.126970 3.306009 -0.249193 +v 0.197760 3.306009 -0.197761 +v 0.249193 3.306009 -0.126970 +v 0.276232 3.306009 -0.043751 +v 0.487530 2.928826 0.248409 +v 0.386906 2.928826 0.386906 +v 0.248409 2.928826 0.487530 +v 0.085596 2.928826 0.540432 +v -0.085596 2.928826 0.540432 +v -0.248409 2.928826 0.487530 +v -0.386906 2.928826 0.386906 +v -0.487531 2.928826 0.248409 +v -0.540432 2.928826 0.085596 +v -0.540432 2.928826 -0.085596 +v -0.487531 2.928826 -0.248409 +v -0.386907 2.928826 -0.386907 +v -0.248409 2.928826 -0.487531 +v -0.085596 2.928826 -0.540432 +v 0.085596 2.928826 -0.540432 +v 0.248409 2.928826 -0.487531 +v 0.386907 2.928826 -0.386907 +v 0.487531 2.928826 -0.248409 +v 0.540432 2.928826 -0.085596 +v 0.540432 2.928826 0.085596 +vt 0.576755 0.683172 +vt 0.576755 0.645144 +vt 0.577588 0.645144 +vt 0.577588 0.683172 +vt 0.576755 0.610031 +vt 0.577588 0.610031 +vt 0.579693 0.645144 +vt 0.579693 0.683172 +vt 0.576755 0.723209 +vt 0.577588 0.723209 +vt 0.576755 0.578738 +vt 0.577588 0.578738 +vt 0.579693 0.610031 +vt 0.626275 0.659701 +vt 0.626275 0.693081 +vt 0.579693 0.723209 +vt 0.576755 0.764250 +vt 0.577588 0.764250 +vt 0.576755 0.551986 +vt 0.577588 0.551986 +vt 0.579693 0.578738 +vt 0.626275 0.628879 +vt 0.760542 0.703371 +vt 0.760542 0.722808 +vt 0.626275 0.728225 +vt 0.579693 0.764250 +vt 0.576755 0.805291 +vt 0.577588 0.805291 +vt 0.576755 0.530492 +vt 0.577588 0.530492 +vt 0.579693 0.551986 +vt 0.626275 0.601411 +vt 0.760542 0.685424 +vt 0.894135 0.747041 +vt 0.894135 0.752536 +vt 0.760542 0.743272 +vt 0.626275 0.764250 +vt 0.579693 0.805291 +vt 0.576755 0.845327 +vt 0.577588 0.845327 +vt 0.579693 0.530492 +vt 0.626275 0.577928 +vt 0.760542 0.669429 +vt 0.894135 0.741968 +vt 0.938693 0.761598 +vt 0.938693 0.762445 +vt 0.894135 0.758320 +vt 0.760542 0.764250 +vt 0.626275 0.800275 +vt 0.579693 0.845327 +vt 0.576755 0.883355 +vt 0.577588 0.883355 +vt 0.760542 0.655755 +vt 0.894135 0.737447 +vt 0.938693 0.760816 +vt 0.938693 0.763336 +vt 0.894135 0.764250 +vt 0.760542 0.785227 +vt 0.626275 0.835418 +vt 0.579693 0.883355 +vt 0.576755 0.918469 +vt 0.577588 0.918469 +vt 0.894135 0.733582 +vt 0.938693 0.760119 +vt 0.938693 0.764250 +vt 0.894135 0.770179 +vt 0.760542 0.805691 +vt 0.626275 0.868799 +vt 0.579693 0.918469 +vt 0.576755 0.949761 +vt 0.577588 0.949761 +vt 0.938693 0.759524 +vt 0.938693 0.765164 +vt 0.894135 0.775964 +vt 0.760542 0.825129 +vt 0.626275 0.899621 +vt 0.579693 0.949761 +vt 0.576755 0.976514 +vt 0.577588 0.976514 +vt 0.938693 0.766055 +vt 0.894135 0.781458 +vt 0.760542 0.843076 +vt 0.626275 0.927089 +vt 0.579693 0.976514 +vt 0.576755 0.998008 +vt 0.577588 0.998008 +vt 0.938693 0.766902 +vt 0.894135 0.786532 +vt 0.760542 0.859071 +vt 0.626275 0.950572 +vt 0.579693 0.998008 +vt 0.938693 0.767684 +vt 0.894135 0.791053 +vt 0.760542 0.872745 +vt 0.938693 0.768380 +vt 0.894135 0.794918 +vt 0.938693 0.768976 +vt 0.209046 0.883356 +vt 0.209046 0.845328 +vt 0.209879 0.845328 +vt 0.209879 0.883356 +vt 0.209046 0.805291 +vt 0.209879 0.805291 +vt 0.211984 0.845328 +vt 0.211984 0.883356 +vt 0.209046 0.918469 +vt 0.209879 0.918469 +vt 0.209046 0.764250 +vt 0.209879 0.764250 +vt 0.211984 0.805291 +vt 0.258566 0.835419 +vt 0.258566 0.868799 +vt 0.211984 0.918469 +vt 0.209046 0.949761 +vt 0.209879 0.949761 +vt 0.209046 0.723209 +vt 0.209879 0.723209 +vt 0.211984 0.764250 +vt 0.258566 0.800275 +vt 0.392833 0.805691 +vt 0.392833 0.825129 +vt 0.258566 0.899621 +vt 0.211984 0.949761 +vt 0.209046 0.976514 +vt 0.209879 0.976514 +vt 0.209046 0.683172 +vt 0.209879 0.683172 +vt 0.211984 0.723209 +vt 0.258566 0.764250 +vt 0.392833 0.785227 +vt 0.526426 0.775964 +vt 0.526426 0.781459 +vt 0.392833 0.843076 +vt 0.258566 0.927089 +vt 0.211984 0.976514 +vt 0.209046 0.998008 +vt 0.209879 0.998008 +vt 0.209046 0.645144 +vt 0.209879 0.645144 +vt 0.211984 0.683172 +vt 0.258566 0.728225 +vt 0.392833 0.764250 +vt 0.526426 0.770180 +vt 0.570984 0.766055 +vt 0.570984 0.766902 +vt 0.526426 0.786532 +vt 0.392833 0.859071 +vt 0.258566 0.950572 +vt 0.211984 0.998008 +vt 0.209046 0.610031 +vt 0.209879 0.610031 +vt 0.211984 0.645144 +vt 0.258566 0.693081 +vt 0.392833 0.743273 +vt 0.526426 0.764250 +vt 0.570984 0.765164 +vt 0.570984 0.767684 +vt 0.526426 0.791053 +vt 0.392833 0.872745 +vt 0.209046 0.578739 +vt 0.209879 0.578739 +vt 0.211984 0.610031 +vt 0.258566 0.659701 +vt 0.392833 0.722809 +vt 0.526426 0.758320 +vt 0.570984 0.764250 +vt 0.570984 0.768380 +vt 0.526426 0.794918 +vt 0.209046 0.551986 +vt 0.209879 0.551986 +vt 0.211984 0.578739 +vt 0.258566 0.628879 +vt 0.392833 0.703371 +vt 0.526426 0.752536 +vt 0.570984 0.763336 +vt 0.570984 0.768976 +vt 0.209046 0.530492 +vt 0.209879 0.530492 +vt 0.211984 0.551986 +vt 0.258566 0.601411 +vt 0.392833 0.685424 +vt 0.526426 0.747042 +vt 0.570984 0.762445 +vt 0.211984 0.530492 +vt 0.258566 0.577928 +vt 0.392833 0.669429 +vt 0.526426 0.741968 +vt 0.570984 0.761598 +vt 0.392833 0.655755 +vt 0.526426 0.737447 +vt 0.570984 0.760816 +vt 0.526426 0.733582 +vt 0.570984 0.760120 +vt 0.570984 0.759524 +vt 0.487721 0.191754 +vt 0.469954 0.159552 +vt 0.498005 0.145259 +vt 0.513778 0.183287 +vt 0.426261 0.211723 +vt 0.420085 0.184961 +vt 0.454345 0.126250 +vt 0.476511 0.110146 +vt 0.492274 0.228249 +vt 0.523369 0.223324 +vt 0.436995 0.237004 +vt 0.264246 0.264365 +vt 0.402064 0.164234 +vt 0.427497 0.101115 +vt 0.449758 0.078854 +vt 0.499221 0.264365 +vt 0.526619 0.264365 +vt 0.434599 0.264365 +vt 0.364377 0.126547 +vt 0.387921 0.140691 +vt 0.402361 0.074266 +vt 0.418465 0.052101 +vt 0.492274 0.300481 +vt 0.523369 0.305406 +vt 0.436995 0.291726 +vt 0.426261 0.317007 +vt 0.316888 0.102350 +vt 0.343650 0.108526 +vt 0.369059 0.058658 +vt 0.383352 0.030607 +vt 0.487721 0.336976 +vt 0.513778 0.345443 +vt 0.420085 0.343769 +vt 0.402064 0.364496 +vt 0.264246 0.094013 +vt 0.291607 0.091616 +vt 0.336858 0.040891 +vt 0.345324 0.014834 +vt 0.469953 0.369178 +vt 0.498004 0.383471 +vt 0.454345 0.402480 +vt 0.387921 0.388039 +vt 0.364377 0.402183 +vt 0.211605 0.102350 +vt 0.236886 0.091616 +vt 0.264246 0.029390 +vt 0.300363 0.036337 +vt 0.305287 0.005242 +vt 0.476511 0.418584 +vt 0.427496 0.427615 +vt 0.402361 0.454463 +vt 0.343650 0.420204 +vt 0.316888 0.426380 +vt 0.164116 0.126547 +vt 0.184843 0.108526 +vt 0.191635 0.040891 +vt 0.228130 0.036337 +vt 0.264246 0.001992 +vt 0.449758 0.449876 +vt 0.369059 0.470072 +vt 0.418465 0.476629 +vt 0.336858 0.487839 +vt 0.291607 0.437113 +vt 0.264246 0.434717 +vt 0.126429 0.164234 +vt 0.140572 0.140691 +vt 0.126132 0.074267 +vt 0.159433 0.058658 +vt 0.183169 0.014834 +vt 0.223205 0.005242 +vt 0.383352 0.498123 +vt 0.300363 0.492393 +vt 0.345324 0.513896 +vt 0.264246 0.499340 +vt 0.236886 0.437113 +vt 0.211605 0.426380 +vt 0.102232 0.211723 +vt 0.108408 0.184961 +vt 0.074148 0.126250 +vt 0.100996 0.101115 +vt 0.110028 0.052101 +vt 0.145141 0.030607 +vt 0.305287 0.523488 +vt 0.228130 0.492393 +vt 0.264246 0.526738 +vt 0.191635 0.487839 +vt 0.184843 0.420204 +vt 0.164116 0.402183 +vt 0.093894 0.264365 +vt 0.091498 0.237004 +vt 0.040772 0.191754 +vt 0.058539 0.159552 +vt 0.051982 0.110146 +vt 0.078735 0.078854 +vt 0.223205 0.523488 +vt 0.159434 0.470072 +vt 0.183169 0.513896 +vt 0.126132 0.454463 +vt 0.140572 0.388039 +vt 0.126429 0.364496 +vt 0.102232 0.317007 +vt 0.091498 0.291726 +vt 0.029272 0.264365 +vt 0.036218 0.228249 +vt 0.014715 0.183287 +vt 0.030488 0.145259 +vt 0.145141 0.498123 +vt 0.100996 0.427615 +vt 0.110028 0.476629 +vt 0.074148 0.402480 +vt 0.108408 0.343769 +vt 0.040772 0.336976 +vt 0.036218 0.300481 +vt 0.001874 0.264365 +vt 0.005124 0.223324 +vt 0.078735 0.449876 +vt 0.058539 0.369178 +vt 0.051982 0.418584 +vt 0.014715 0.345443 +vt 0.005124 0.305406 +vt 0.030488 0.383471 +vt 0.692856 0.265981 +vt 0.692461 0.266698 +vt 0.691350 0.266133 +vt 0.691488 0.265537 +vt 0.693436 0.266170 +vt 0.693085 0.267017 +vt 0.692113 0.267440 +vt 0.690949 0.266594 +vt 0.687881 0.264365 +vt 0.691727 0.264974 +vt 0.692957 0.265169 +vt 0.692607 0.267798 +vt 0.693650 0.265279 +vt 0.691515 0.267999 +vt 0.690634 0.267118 +vt 0.691673 0.264365 +vt 0.690110 0.267433 +vt 0.693112 0.264365 +vt 0.692011 0.268495 +vt 0.693722 0.264365 +vt 0.690956 0.268597 +vt 0.691488 0.263193 +vt 0.691727 0.263756 +vt 0.689649 0.267834 +vt 0.689053 0.267972 +vt 0.692957 0.263561 +vt 0.691314 0.269091 +vt 0.693650 0.263451 +vt 0.690214 0.268945 +vt 0.690949 0.262135 +vt 0.691350 0.262597 +vt 0.692856 0.262748 +vt 0.689497 0.269340 +vt 0.688490 0.268211 +vt 0.687881 0.268158 +vt 0.690532 0.269569 +vt 0.693436 0.262560 +vt 0.690110 0.261296 +vt 0.690634 0.261611 +vt 0.692113 0.261290 +vt 0.692461 0.262031 +vt 0.688685 0.269442 +vt 0.689686 0.269920 +vt 0.687881 0.269596 +vt 0.687271 0.268211 +vt 0.686709 0.267972 +vt 0.710162 0.295033 +vt 0.705089 0.298139 +vt 0.693085 0.261713 +vt 0.689053 0.260758 +vt 0.689649 0.260895 +vt 0.690956 0.260132 +vt 0.691515 0.260730 +vt 0.692607 0.260931 +vt 0.688794 0.270134 +vt 0.699595 0.300417 +vt 0.687077 0.269442 +vt 0.687881 0.270206 +vt 0.686264 0.269340 +vt 0.686113 0.267834 +vt 0.685651 0.267433 +vt 0.766707 0.372860 +vt 0.748759 0.383846 +vt 0.687881 0.260572 +vt 0.688490 0.260519 +vt 0.689497 0.259389 +vt 0.690214 0.259785 +vt 0.691314 0.259639 +vt 0.692011 0.260235 +vt 0.693810 0.301803 +vt 0.729322 0.391908 +vt 0.686967 0.270134 +vt 0.687881 0.302273 +vt 0.685547 0.268945 +vt 0.686076 0.269920 +vt 0.684806 0.268597 +vt 0.685127 0.267118 +vt 0.684812 0.266594 +vt 0.823251 0.450687 +vt 0.792430 0.469554 +vt 0.686709 0.260758 +vt 0.687271 0.260519 +vt 0.687881 0.259133 +vt 0.688685 0.259288 +vt 0.689686 0.258809 +vt 0.690532 0.259160 +vt 0.708858 0.396811 +vt 0.759049 0.483399 +vt 0.681951 0.301803 +vt 0.687881 0.398472 +vt 0.685229 0.269569 +vt 0.676167 0.300417 +vt 0.684246 0.267999 +vt 0.684447 0.269091 +vt 0.683648 0.267440 +vt 0.684411 0.266133 +vt 0.684274 0.265537 +vt 0.842100 0.476629 +vt 0.806986 0.498123 +vt 0.685651 0.261296 +vt 0.686113 0.260895 +vt 0.686264 0.259389 +vt 0.687077 0.259288 +vt 0.687881 0.258523 +vt 0.688794 0.258596 +vt 0.699595 0.228312 +vt 0.705089 0.230591 +vt 0.710162 0.233697 +vt 0.723906 0.491818 +vt 0.768958 0.513896 +vt 0.666903 0.396811 +vt 0.687881 0.494671 +vt 0.670672 0.298138 +vt 0.646439 0.391908 +vt 0.683750 0.268495 +vt 0.665599 0.295033 +vt 0.683301 0.266698 +vt 0.683155 0.267798 +vt 0.682905 0.265981 +vt 0.684035 0.264974 +vt 0.684088 0.264365 +vt 0.684812 0.262135 +vt 0.685127 0.261611 +vt 0.684806 0.260132 +vt 0.685547 0.259785 +vt 0.686076 0.258809 +vt 0.686967 0.258596 +vt 0.687881 0.226457 +vt 0.693810 0.226927 +vt 0.729322 0.136821 +vt 0.748759 0.144884 +vt 0.766707 0.155870 +vt 0.728922 0.523488 +vt 0.651856 0.491818 +vt 0.687881 0.526738 +vt 0.627002 0.383846 +vt 0.616712 0.483399 +vt 0.609054 0.372860 +vt 0.682676 0.267017 +vt 0.682804 0.265169 +vt 0.682325 0.266170 +vt 0.682649 0.264365 +vt 0.684035 0.263756 +vt 0.684274 0.263193 +vt 0.684411 0.262597 +vt 0.683648 0.261290 +vt 0.684246 0.260730 +vt 0.684447 0.259639 +vt 0.685229 0.259160 +vt 0.676167 0.228312 +vt 0.681951 0.226926 +vt 0.687881 0.130258 +vt 0.708858 0.131919 +vt 0.759049 0.045331 +vt 0.792430 0.059176 +vt 0.823251 0.078043 +vt 0.646840 0.523488 +vt 0.583332 0.469554 +vt 0.606803 0.513896 +vt 0.552510 0.450687 +vt 0.682112 0.265279 +vt 0.682804 0.263561 +vt 0.682039 0.264365 +vt 0.682905 0.262748 +vt 0.683301 0.262031 +vt 0.683155 0.260931 +vt 0.683750 0.260235 +vt 0.665599 0.233697 +vt 0.670672 0.230591 +vt 0.646439 0.136821 +vt 0.666903 0.131919 +vt 0.687881 0.034059 +vt 0.723906 0.036911 +vt 0.768958 0.014833 +vt 0.806986 0.030607 +vt 0.842100 0.052101 +vt 0.568775 0.498123 +vt 0.533662 0.476629 +vt 0.682112 0.263451 +vt 0.682325 0.262560 +vt 0.682676 0.261713 +vt 0.609054 0.155870 +vt 0.627002 0.144884 +vt 0.616712 0.045331 +vt 0.651856 0.036911 +vt 0.687881 0.001992 +vt 0.728922 0.005242 +vt 0.552510 0.078043 +vt 0.583332 0.059176 +vt 0.606803 0.014833 +vt 0.646840 0.005242 +vt 0.533662 0.052101 +vt 0.568775 0.030607 +vt 0.203275 0.530492 +vt 0.203275 0.568520 +vt 0.202441 0.568520 +vt 0.202441 0.530492 +vt 0.203275 0.608557 +vt 0.202441 0.608557 +vt 0.200337 0.568520 +vt 0.200337 0.530492 +vt 0.203275 0.649598 +vt 0.202441 0.649598 +vt 0.200337 0.608557 +vt 0.203275 0.690639 +vt 0.202441 0.690639 +vt 0.200337 0.649598 +vt 0.203275 0.730676 +vt 0.202441 0.730676 +vt 0.200337 0.690639 +vt 0.203275 0.768704 +vt 0.202441 0.768704 +vt 0.200337 0.730676 +vt 0.200337 0.768704 +vt 0.191628 0.768703 +vt 0.191628 0.730675 +vt 0.192461 0.730675 +vt 0.192461 0.768703 +vt 0.191628 0.690639 +vt 0.192461 0.690639 +vt 0.194566 0.730675 +vt 0.194566 0.768703 +vt 0.191628 0.649598 +vt 0.192461 0.649598 +vt 0.194566 0.690639 +vt 0.191628 0.608557 +vt 0.192461 0.608557 +vt 0.194566 0.649598 +vt 0.191628 0.568520 +vt 0.192461 0.568520 +vt 0.194566 0.608557 +vt 0.191628 0.530492 +vt 0.192461 0.530492 +vt 0.194566 0.568520 +vt 0.194566 0.530492 +vn 0.002434 -0.999997 -0.000791 +vn 0.002115 -0.999997 -0.001077 +vn 0.032307 -0.999343 -0.016459 +vn 0.034422 -0.999345 -0.011186 +vn 0.002071 -0.999997 -0.001504 +vn 0.029281 -0.999345 -0.021274 +vn 0.809015 0.000004 -0.587787 +vn 0.891004 0.000004 -0.453995 +vn 0.951057 0.000000 -0.309016 +vn 0.001679 -0.999997 -0.001678 +vn 0.025638 -0.999342 -0.025640 +vn 0.001504 -0.999997 -0.002070 +vn 0.021274 -0.999345 -0.029282 +vn 0.587783 0.000000 -0.809019 +vn 0.707107 0.000000 -0.707107 +vn 0.001078 -0.999997 -0.002115 +vn 0.016461 -0.999342 -0.032309 +vn 0.000791 -0.999997 -0.002434 +vn 0.011184 -0.999345 -0.034425 +vn 0.309015 0.000000 -0.951057 +vn 0.453989 0.000000 -0.891007 +vn 0.000371 -0.999997 -0.002345 +vn 0.005672 -0.999342 -0.035814 +vn 0.000000 -0.999997 -0.002558 +vn -0.000000 -0.999345 -0.036196 +vn 0.000000 -0.000002 -1.000000 +vn 0.156432 0.000000 -0.987689 +vn -0.000371 -0.999997 -0.002344 +vn -0.005672 -0.999343 -0.035811 +vn -0.000791 -0.999997 -0.002433 +vn -0.011184 -0.999345 -0.034421 +vn -0.309015 0.000002 -0.951057 +vn -0.156432 -0.000002 -0.987689 +vn -0.001078 -0.999997 -0.002114 +vn -0.016461 -0.999343 -0.032307 +vn -0.001504 -0.999997 -0.002070 +vn -0.021274 -0.999345 -0.029282 +vn -0.587783 -0.000002 -0.809019 +vn -0.453990 0.000001 -0.891007 +vn -0.001679 -0.999997 -0.001677 +vn -0.025639 -0.999343 -0.025638 +vn -0.002071 -0.999997 -0.001503 +vn -0.029281 -0.999345 -0.021274 +vn -0.809013 0.000000 -0.587790 +vn -0.707106 -0.000002 -0.707108 +vn -0.002115 -0.999997 -0.001076 +vn -0.032306 -0.999343 -0.016461 +vn -0.002434 -0.999997 -0.000791 +vn -0.034422 -0.999345 -0.011184 +vn -0.951057 0.000000 -0.309017 +vn -0.891003 0.000000 -0.453997 +vn -0.002345 -0.999997 -0.000374 +vn -0.035812 -0.999342 -0.005672 +vn -0.002559 -0.999997 -0.000001 +vn -0.036193 -0.999345 -0.000000 +vn -1.000000 0.000000 0.000000 +vn -0.987688 -0.000000 -0.156434 +vn -0.002345 -0.999997 0.000372 +vn -0.035812 -0.999342 0.005672 +vn -0.002434 -0.999997 0.000791 +vn -0.034422 -0.999345 0.011186 +vn -0.951057 -0.000000 0.309017 +vn -0.987689 0.000000 0.156433 +vn -0.002115 -0.999997 0.001077 +vn -0.032306 -0.999342 0.016465 +vn -0.002071 -0.999997 0.001504 +vn -0.029281 -0.999345 0.021276 +vn -0.809014 -0.000000 0.587790 +vn -0.891003 -0.000000 0.453997 +vn -0.001679 -0.999997 0.001678 +vn -0.025638 -0.999343 0.025638 +vn -0.001504 -0.999997 0.002071 +vn -0.021274 -0.999345 0.029282 +vn -0.587784 -0.000000 0.809018 +vn -0.707105 0.000000 0.707108 +vn -0.001078 -0.999997 0.002115 +vn -0.016461 -0.999343 0.032306 +vn -0.000791 -0.999997 0.002433 +vn -0.011184 -0.999345 0.034424 +vn -0.309016 0.000000 0.951057 +vn -0.453989 -0.000000 0.891007 +vn -0.000371 -0.999997 0.002344 +vn -0.005672 -0.999342 0.035815 +vn 0.000000 -0.999997 0.002559 +vn -0.000000 -0.999345 0.036194 +vn 0.000000 -0.000000 1.000000 +vn -0.156437 -0.000000 0.987688 +vn 0.000371 -0.999997 0.002344 +vn 0.005672 -0.999342 0.035813 +vn 0.000791 -0.999997 0.002433 +vn 0.011184 -0.999345 0.034425 +vn 0.309020 0.000000 0.951055 +vn 0.156434 -0.000000 0.987688 +vn 0.001078 -0.999997 0.002115 +vn 0.016461 -0.999343 0.032308 +vn 0.001504 -0.999997 0.002071 +vn 0.021274 -0.999345 0.029282 +vn 0.587782 0.000002 0.809019 +vn 0.453989 0.000001 0.891007 +vn 0.001679 -0.999997 0.001678 +vn 0.025638 -0.999343 0.025640 +vn 0.002071 -0.999997 0.001504 +vn 0.029281 -0.999345 0.021278 +vn 0.809018 0.000007 0.587784 +vn 0.707105 0.000005 0.707108 +vn 0.002115 -0.999997 0.001077 +vn 0.032306 -0.999343 0.016462 +vn 0.002434 -0.999997 0.000791 +vn 0.034422 -0.999345 0.011184 +vn 0.951056 -0.000000 0.309017 +vn 0.891007 0.000004 0.453989 +vn 0.002345 -0.999997 0.000372 +vn 0.035812 -0.999343 0.005672 +vn 0.002559 -0.999997 0.000000 +vn 0.036194 -0.999345 -0.000000 +vn 1.000000 0.000000 0.000001 +vn 0.987689 -0.000000 0.156434 +vn 0.002345 -0.999997 -0.000373 +vn 0.035812 -0.999342 -0.005674 +vn 0.987689 -0.000000 -0.156432 +vn 0.000331 -1.000000 -0.000168 +vn 0.000213 -1.000000 -0.000155 +vn 0.000251 -1.000000 -0.000079 +vn -0.000000 -1.000000 0.000000 +vn 0.000263 -1.000000 -0.000262 +vn 0.000155 -1.000000 -0.000212 +vn 0.000169 -1.000000 -0.000330 +vn 0.000081 -1.000000 -0.000251 +vn 0.000058 -1.000000 -0.000368 +vn -0.000000 -1.000000 -0.000264 +vn -0.000058 -1.000000 -0.000368 +vn -0.000081 -1.000000 -0.000251 +vn -0.000169 -1.000000 -0.000331 +vn -0.000155 -1.000000 -0.000214 +vn -0.000263 -1.000000 -0.000264 +vn -0.000213 -1.000000 -0.000156 +vn -0.000331 -1.000000 -0.000170 +vn -0.000251 -1.000000 -0.000080 +vn -0.000367 -1.000000 -0.000056 +vn -0.000263 -1.000000 -0.000000 +vn -0.000367 -1.000000 0.000055 +vn -0.000251 -1.000000 0.000080 +vn -0.000331 -1.000000 0.000170 +vn -0.000213 -1.000000 0.000155 +vn -0.000263 -1.000000 0.000262 +vn -0.000155 -1.000000 0.000214 +vn -0.000169 -1.000000 0.000332 +vn -0.000081 -1.000000 0.000251 +vn -0.000058 -1.000000 0.000367 +vn -0.000000 -1.000000 0.000264 +vn 0.000058 -1.000000 0.000367 +vn 0.000081 -1.000000 0.000250 +vn 0.000169 -1.000000 0.000330 +vn 0.000155 -1.000000 0.000214 +vn 0.000263 -1.000000 0.000264 +vn 0.000213 -1.000000 0.000154 +vn 0.000331 -1.000000 0.000166 +vn 0.000251 -1.000000 0.000081 +vn 0.000367 -1.000000 0.000060 +vn 0.000263 -1.000000 0.000003 +vn 0.000367 -1.000000 -0.000055 +vn 0.022884 0.999710 -0.007480 +vn 0.019880 0.999751 -0.010153 +vn 0.003104 0.999994 -0.001713 +vn 0.002354 0.999997 -0.000773 +vn 0.019467 0.999711 -0.014129 +vn 0.002002 0.999997 -0.001531 +vn -0.000000 1.000000 -0.000006 +vn 0.015776 0.999751 -0.015759 +vn 0.002463 0.999994 -0.002457 +vn 0.014142 0.999710 -0.019503 +vn 0.001455 0.999997 -0.001956 +vn 0.010129 0.999752 -0.019830 +vn 0.001581 0.999994 -0.003045 +vn 0.007435 0.999711 -0.022864 +vn 0.000765 0.999997 -0.002366 +vn 0.003490 0.999752 -0.022002 +vn 0.000545 0.999994 -0.003489 +vn -0.000000 0.999711 -0.024030 +vn -0.000000 0.999997 -0.002525 +vn -0.003490 0.999750 -0.022064 +vn -0.000545 0.999994 -0.003485 +vn -0.007435 0.999710 -0.022902 +vn -0.000765 0.999997 -0.002452 +vn -0.010129 0.999752 -0.019858 +vn -0.001581 0.999994 -0.003184 +vn -0.014143 0.999712 -0.019402 +vn -0.001455 0.999997 -0.002024 +vn -0.015776 0.999751 -0.015777 +vn -0.002463 0.999994 -0.002457 +vn -0.019467 0.999710 -0.014175 +vn -0.002002 0.999997 -0.001455 +vn -0.019880 0.999751 -0.010170 +vn -0.003104 0.999994 -0.001594 +vn -0.022884 0.999710 -0.007464 +vn -0.002354 0.999997 -0.000766 +vn -0.022036 0.999751 -0.003501 +vn -0.003440 0.999994 -0.000558 +vn -0.024062 0.999711 0.000057 +vn -0.002475 0.999997 0.000008 +vn -0.022036 0.999751 0.003592 +vn -0.003440 0.999994 0.000571 +vn -0.022884 0.999710 0.007493 +vn -0.002354 0.999997 0.000760 +vn -0.019880 0.999751 0.010135 +vn -0.003104 0.999994 0.001584 +vn -0.019467 0.999710 0.014175 +vn -0.002002 0.999997 0.001455 +vn -0.015776 0.999751 0.015777 +vn -0.002463 0.999994 0.002457 +vn -0.014143 0.999712 0.019413 +vn -0.001455 0.999997 0.002005 +vn -0.010129 0.999751 0.019902 +vn -0.001581 0.999994 0.003145 +vn -0.007435 0.999710 0.022916 +vn -0.000765 0.999997 0.002404 +vn -0.003490 0.999750 0.022081 +vn -0.000545 0.999994 0.003490 +vn 0.000000 0.999711 0.024058 +vn 0.000000 0.999997 0.002519 +vn 0.003490 0.999752 0.022015 +vn 0.000545 0.999994 0.003472 +vn 0.007435 0.999710 0.022901 +vn 0.000765 0.999997 0.002376 +vn 0.010129 0.999751 0.019903 +vn 0.001581 0.999994 0.003096 +vn 0.014143 0.999709 0.019539 +vn 0.001455 0.999997 0.002001 +vn 0.015776 0.999750 0.015847 +vn 0.002463 0.999994 0.002477 +vn 0.019467 0.999710 0.014175 +vn 0.002002 0.999997 0.001455 +vn 0.019880 0.999751 0.010098 +vn 0.003104 0.999994 0.001553 +vn 0.022884 0.999711 0.007400 +vn 0.002354 0.999997 0.000735 +vn 0.022036 0.999751 0.003474 +vn 0.003440 0.999994 0.000543 +vn 0.024062 0.999711 0.000024 +vn 0.002475 0.999997 0.000079 +vn 0.022036 0.999751 -0.003518 +vn 0.003440 0.999994 -0.000430 +vn 0.771793 0.584338 0.250767 +vn 0.801541 0.584308 0.126950 +vn 0.800438 0.585855 0.126779 +vn 0.770736 0.585887 0.250404 +vn 0.811511 0.584338 0.000002 +vn 0.810395 0.585884 -0.000009 +vn 0.656527 0.584339 0.476991 +vn 0.723081 0.584309 0.368425 +vn 0.722090 0.585857 0.367909 +vn 0.655626 0.585884 0.476334 +vn 0.476993 0.584338 0.656526 +vn 0.573840 0.584309 0.573838 +vn 0.573054 0.585858 0.573044 +vn 0.476333 0.585883 0.655628 +vn 0.250770 0.584338 0.771792 +vn 0.368427 0.584309 0.723080 +vn 0.367917 0.585856 0.722087 +vn 0.250425 0.585886 0.770731 +vn 0.000000 0.584338 0.811510 +vn 0.126952 0.584308 0.801540 +vn 0.126777 0.585854 0.800439 +vn 0.000001 0.585883 0.810396 +vn -0.250770 0.584338 0.771793 +vn -0.126951 0.584309 0.801540 +vn -0.126776 0.585854 0.800439 +vn -0.250423 0.585882 0.770733 +vn -0.476993 0.584338 0.656527 +vn -0.368427 0.584308 0.723081 +vn -0.367916 0.585852 0.722091 +vn -0.476336 0.585885 0.655625 +vn -0.656527 0.584339 0.476991 +vn -0.573840 0.584308 0.573840 +vn -0.573054 0.585858 0.573043 +vn -0.655626 0.585884 0.476334 +vn -0.771792 0.584338 0.250771 +vn -0.723082 0.584310 0.368422 +vn -0.722090 0.585857 0.367909 +vn -0.770734 0.585886 0.250412 +vn -0.811511 0.584338 -0.000000 +vn -0.801540 0.584308 0.126956 +vn -0.800438 0.585855 0.126780 +vn -0.810395 0.585884 0.000000 +vn -0.771792 0.584337 -0.250773 +vn -0.801540 0.584308 -0.126956 +vn -0.800438 0.585855 -0.126779 +vn -0.770735 0.585886 -0.250412 +vn -0.656528 0.584339 -0.476990 +vn -0.723081 0.584309 -0.368425 +vn -0.722090 0.585857 -0.367909 +vn -0.655629 0.585887 -0.476327 +vn -0.476993 0.584338 -0.656526 +vn -0.573840 0.584309 -0.573839 +vn -0.573054 0.585858 -0.573044 +vn -0.476335 0.585885 -0.655625 +vn -0.250770 0.584338 -0.771792 +vn -0.368427 0.584309 -0.723080 +vn -0.367917 0.585856 -0.722087 +vn -0.250424 0.585884 -0.770732 +vn -0.000000 0.584338 -0.811510 +vn -0.126952 0.584309 -0.801540 +vn -0.126778 0.585856 -0.800438 +vn -0.000001 0.585885 -0.810395 +vn 0.250770 0.584337 -0.771793 +vn 0.126951 0.584308 -0.801541 +vn 0.126776 0.585854 -0.800439 +vn 0.250423 0.585883 -0.770733 +vn 0.476993 0.584339 -0.656526 +vn 0.368426 0.584308 -0.723081 +vn 0.367918 0.585857 -0.722086 +vn 0.476334 0.585886 -0.655624 +vn 0.656526 0.584338 -0.476993 +vn 0.573840 0.584309 -0.573839 +vn 0.573047 0.585854 -0.573055 +vn 0.655623 0.585882 -0.476341 +vn 0.771792 0.584338 -0.250770 +vn 0.723081 0.584308 -0.368427 +vn 0.722089 0.585854 -0.367917 +vn 0.770735 0.585885 -0.250412 +vn 0.801541 0.584309 -0.126950 +vn 0.800438 0.585855 -0.126779 +vn 0.776519 0.577374 0.252306 +vn 0.806447 0.577347 0.127729 +vn 0.802481 0.582984 0.127100 +vn 0.772698 0.583013 0.251064 +vn 0.816480 0.577374 -0.000000 +vn 0.812463 0.583013 0.000001 +vn 0.660546 0.577373 0.479916 +vn 0.727506 0.577347 0.370683 +vn 0.723929 0.582984 0.368859 +vn 0.657296 0.583013 0.477553 +vn 0.479915 0.577374 0.660546 +vn 0.577352 0.577347 0.577352 +vn 0.574513 0.582984 0.574513 +vn 0.477553 0.583013 0.657296 +vn 0.252306 0.577374 0.776519 +vn 0.370683 0.577347 0.727506 +vn 0.368859 0.582984 0.723929 +vn 0.251065 0.583013 0.772698 +vn 0.000000 0.577374 0.816480 +vn 0.127729 0.577347 0.806447 +vn 0.127100 0.582984 0.802481 +vn 0.000000 0.583013 0.812463 +vn -0.252306 0.577374 0.776519 +vn -0.127729 0.577347 0.806447 +vn -0.127100 0.582984 0.802481 +vn -0.251065 0.583013 0.772698 +vn -0.479915 0.577374 0.660546 +vn -0.370682 0.577347 0.727506 +vn -0.368859 0.582984 0.723929 +vn -0.477553 0.583013 0.657297 +vn -0.660546 0.577374 0.479915 +vn -0.577352 0.577347 0.577352 +vn -0.574513 0.582984 0.574513 +vn -0.657297 0.583013 0.477553 +vn -0.776519 0.577374 0.252306 +vn -0.727506 0.577346 0.370684 +vn -0.723928 0.582984 0.368859 +vn -0.772698 0.583013 0.251065 +vn -0.816480 0.577374 -0.000000 +vn -0.806447 0.577347 0.127728 +vn -0.802481 0.582984 0.127101 +vn -0.812463 0.583013 -0.000000 +vn -0.776519 0.577374 -0.252306 +vn -0.806447 0.577347 -0.127728 +vn -0.802481 0.582984 -0.127101 +vn -0.772698 0.583013 -0.251066 +vn -0.660547 0.577374 -0.479915 +vn -0.727506 0.577347 -0.370683 +vn -0.723929 0.582984 -0.368859 +vn -0.657297 0.583013 -0.477552 +vn -0.479915 0.577374 -0.660546 +vn -0.577352 0.577347 -0.577352 +vn -0.574513 0.582984 -0.574513 +vn -0.477553 0.583013 -0.657296 +vn -0.252306 0.577374 -0.776519 +vn -0.370683 0.577347 -0.727506 +vn -0.368860 0.582984 -0.723928 +vn -0.251065 0.583013 -0.772698 +vn 0.000000 0.577374 -0.816480 +vn -0.127729 0.577347 -0.806447 +vn -0.127101 0.582984 -0.802481 +vn -0.000000 0.583013 -0.812463 +vn 0.252306 0.577374 -0.776519 +vn 0.127729 0.577347 -0.806446 +vn 0.127101 0.582984 -0.802481 +vn 0.251065 0.583013 -0.772698 +vn 0.479915 0.577374 -0.660546 +vn 0.370683 0.577347 -0.727506 +vn 0.368859 0.582984 -0.723928 +vn 0.477553 0.583013 -0.657296 +vn 0.660546 0.577373 -0.479916 +vn 0.577352 0.577347 -0.577352 +vn 0.574512 0.582984 -0.574513 +vn 0.657296 0.583013 -0.477555 +vn 0.776519 0.577374 -0.252304 +vn 0.727506 0.577346 -0.370684 +vn 0.723928 0.582983 -0.368861 +vn 0.772698 0.583013 -0.251064 +vn 0.806447 0.577347 -0.127727 +vn 0.802481 0.582984 -0.127098 +vn 0.745059 0.548426 0.379627 +vn 0.676487 0.548448 0.491497 +vn 0.795259 0.548448 0.258396 +vn 0.591282 0.548426 0.591282 +vn 0.491497 0.548449 0.676487 +vn 0.379627 0.548426 0.745059 +vn 0.258395 0.548449 0.795258 +vn 0.130810 0.548427 0.825904 +vn 0.000000 0.548449 0.836184 +vn -0.130810 0.548426 0.825904 +vn -0.258395 0.548449 0.795258 +vn -0.379627 0.548426 0.745059 +vn -0.491497 0.548449 0.676486 +vn -0.591282 0.548426 0.591283 +vn -0.676487 0.548448 0.491498 +vn -0.745059 0.548425 0.379627 +vn -0.795259 0.548448 0.258395 +vn -0.825904 0.548426 0.130810 +vn -0.836184 0.548448 0.000000 +vn -0.825905 0.548426 -0.130810 +vn -0.795259 0.548448 -0.258395 +vn -0.745059 0.548425 -0.379626 +vn -0.676488 0.548448 -0.491496 +vn -0.591283 0.548426 -0.591282 +vn -0.491497 0.548449 -0.676487 +vn -0.379627 0.548426 -0.745059 +vn -0.258395 0.548449 -0.795259 +vn -0.130811 0.548427 -0.825904 +vn 0.000000 0.548449 -0.836184 +vn 0.130810 0.548426 -0.825904 +vn 0.258395 0.548449 -0.795259 +vn 0.379626 0.548426 -0.745059 +vn 0.491497 0.548449 -0.676486 +vn 0.591283 0.548427 -0.591281 +vn 0.676487 0.548449 -0.491496 +vn 0.745059 0.548426 -0.379626 +vn 0.795259 0.548449 -0.258393 +vn 0.825905 0.548426 -0.130809 +vn 0.836184 0.548448 0.000000 +vn 0.825904 0.548425 0.130810 +s 1 +g pCylinder4 +usemtl phong2SG +f 1247/1757/1247 1367/1758/1248 1569/1759/1249 1368/1760/1250 +f 1367/1758/1248 1248/1763/1251 1369/1764/1252 1569/1759/1249 +f 1569/1564/1249 1369/1567/1252 1346/1568/1253 1370/1565/1254 +f 1368/1563/1250 1569/1564/1249 1370/1565/1254 1347/1566/1255 +f 1248/1763/1251 1371/1770/1256 1570/1771/1257 1369/1764/1252 +f 1371/1770/1256 1249/1777/1258 1372/1778/1259 1570/1771/1257 +f 1570/1573/1257 1372/1581/1259 1345/1582/1260 1373/1574/1261 +f 1369/1567/1252 1570/1573/1257 1373/1574/1261 1346/1568/1253 +f 1249/1777/1258 1374/1785/1262 1571/1786/1263 1372/1778/1259 +f 1374/1785/1262 1250/1793/1264 1375/1794/1265 1571/1786/1263 +f 1571/2071/1263 1375/2072/1265 1344/2073/1266 1376/2074/1267 +f 1372/1581/1259 1571/1591/1263 1376/1592/1267 1345/1582/1260 +f 1250/1793/1264 1377/1803/1268 1572/1804/1269 1375/1794/1265 +f 1377/1803/1268 1251/1802/1270 1378/1814/1271 1572/1804/1269 +f 1572/2075/1269 1378/2079/1271 1343/2080/1272 1379/2076/1273 +f 1375/2072/1265 1572/2075/1269 1379/2076/1273 1344/2073/1266 +f 1251/1802/1270 1380/1813/1274 1573/1826/1275 1378/1814/1271 +f 1380/1813/1274 1252/1812/1276 1381/1825/1277 1573/1826/1275 +f 1573/2082/1275 1381/2085/1277 1342/2086/1278 1382/2083/1279 +f 1378/2079/1271 1573/2082/1275 1382/2083/1279 1343/2080/1272 +f 1252/1812/1276 1383/1824/1280 1574/1838/1281 1381/1825/1277 +f 1383/1824/1280 1253/1823/1282 1384/1837/1283 1574/1838/1281 +f 1574/1698/1281 1384/1686/1283 1341/1687/1284 1385/1699/1285 +f 1381/2085/1277 1574/2088/1281 1385/2089/1285 1342/2086/1278 +f 1253/1823/1282 1386/1836/1286 1575/1850/1287 1384/1837/1283 +f 1386/1836/1286 1254/1835/1288 1387/1849/1289 1575/1850/1287 +f 1575/1676/1287 1387/1668/1289 1340/1669/1290 1388/1677/1291 +f 1384/1686/1283 1575/1676/1287 1388/1677/1291 1341/1687/1284 +f 1254/1835/1288 1389/1848/1292 1576/1862/1293 1387/1849/1289 +f 1389/1848/1292 1255/1847/1294 1390/1861/1295 1576/1862/1293 +f 1576/1660/1293 1390/1661/1295 1339/1662/1296 1391/1663/1297 +f 1387/1668/1289 1576/1660/1293 1391/1663/1297 1340/1669/1290 +f 1255/1847/1294 1392/1860/1298 1577/1871/1299 1390/1861/1295 +f 1392/1860/1298 1256/1859/1300 1393/1870/1301 1577/1871/1299 +f 1577/1664/1299 1393/1670/1301 1338/1671/1302 1394/1665/1303 +f 1390/1661/1295 1577/1664/1299 1394/1665/1303 1339/1662/1296 +f 1256/1859/1300 1395/1869/1304 1578/1876/1305 1393/1870/1301 +f 1395/1869/1304 1257/1868/1306 1396/1875/1307 1578/1876/1305 +f 1578/1678/1305 1396/1688/1307 1337/1689/1308 1397/1679/1309 +f 1393/1670/1301 1578/1678/1305 1397/1679/1309 1338/1671/1302 +f 1257/1868/1306 1398/1873/1310 1579/1877/1311 1396/1875/1307 +f 1398/1873/1310 1258/1866/1312 1399/1874/1313 1579/1877/1311 +f 1579/1700/1311 1399/1712/1313 1336/1713/1314 1400/1701/1315 +f 1396/1688/1307 1579/1700/1311 1400/1701/1315 1337/1689/1308 +f 1258/1866/1312 1401/1864/1316 1580/1872/1317 1399/1874/1313 +f 1401/1864/1316 1259/1854/1318 1402/1865/1319 1580/1872/1317 +f 1580/1722/1317 1402/1731/1319 1335/1732/1320 1403/1723/1321 +f 1399/1712/1313 1580/1722/1317 1403/1723/1321 1336/1713/1314 +f 1259/1854/1318 1404/1852/1322 1581/1863/1323 1402/1865/1319 +f 1404/1852/1322 1260/1842/1324 1405/1853/1325 1581/1863/1323 +f 1581/2092/1323 1405/2093/1325 1334/2094/1326 1406/2095/1327 +f 1402/1731/1319 1581/1739/1323 1406/1740/1327 1335/1732/1320 +f 1260/1842/1324 1407/1840/1328 1582/1851/1329 1405/1853/1325 +f 1407/1840/1328 1261/1830/1330 1408/1841/1331 1582/1851/1329 +f 1582/2096/1329 1408/2100/1331 1333/2101/1332 1409/2097/1333 +f 1405/2093/1325 1582/2096/1329 1409/2097/1333 1334/2094/1326 +f 1261/1830/1330 1410/1828/1334 1583/1839/1335 1408/1841/1331 +f 1410/1828/1334 1262/1818/1336 1411/1829/1337 1583/1839/1335 +f 1583/2103/1335 1411/2106/1337 1332/2107/1338 1412/2104/1339 +f 1408/2100/1331 1583/2103/1335 1412/2104/1339 1333/2101/1332 +f 1262/1818/1336 1413/1816/1340 1584/1827/1341 1411/1829/1337 +f 1413/1816/1340 1263/1807/1342 1414/1817/1343 1584/1827/1341 +f 1584/1647/1341 1414/1640/1343 1331/1641/1344 1415/1648/1345 +f 1411/2106/1337 1584/2109/1341 1415/2110/1345 1332/2107/1338 +f 1263/1807/1342 1416/1806/1346 1585/1815/1347 1414/1817/1343 +f 1416/1806/1346 1264/1797/1348 1417/1805/1349 1585/1815/1347 +f 1585/1632/1347 1417/1623/1349 1330/1624/1350 1418/1633/1351 +f 1414/1640/1343 1585/1632/1347 1418/1633/1351 1331/1641/1344 +f 1264/1797/1348 1419/1795/1352 1586/1796/1353 1417/1805/1349 +f 1419/1795/1352 1265/1787/1354 1420/1788/1355 1586/1796/1353 +f 1586/1613/1353 1420/1601/1355 1329/1602/1356 1421/1614/1357 +f 1417/1623/1349 1586/1613/1353 1421/1614/1357 1330/1624/1350 +f 1265/1787/1354 1422/1779/1358 1587/1780/1359 1420/1788/1355 +f 1422/1779/1358 1266/1772/1360 1423/1773/1361 1587/1780/1359 +f 1587/1589/1359 1423/1579/1361 1348/1580/1362 1424/1590/1363 +f 1420/1601/1355 1587/1589/1359 1424/1590/1363 1329/1602/1356 +f 1266/1772/1360 1425/1765/1364 1588/1766/1365 1423/1773/1361 +f 1425/1765/1364 1247/1757/1247 1368/1760/1250 1588/1766/1365 +f 1588/1571/1365 1368/1563/1250 1347/1566/1255 1426/1572/1366 +f 1423/1579/1361 1588/1571/1365 1426/1572/1366 1348/1580/1362 +f 1248/1763/1251 1367/1758/1248 1589/1762/1367 1427/1769/1368 +f 1247/1757/1247 1428/1761/1369 1589/1762/1367 1367/1758/1248 +f 1287/1768/1370 1427/1769/1368 1589/1762/1367 1428/1761/1369 +f 1249/1777/1258 1371/1770/1256 1590/1776/1371 1429/1775/1372 +f 1248/1763/1251 1427/1769/1368 1590/1776/1371 1371/1770/1256 +f 1287/1768/1370 1429/1775/1372 1590/1776/1371 1427/1769/1368 +f 1250/1793/1264 1374/1785/1262 1591/1784/1373 1430/1783/1374 +f 1249/1777/1258 1429/1775/1372 1591/1784/1373 1374/1785/1262 +f 1287/1768/1370 1430/1783/1374 1591/1784/1373 1429/1775/1372 +f 1251/1802/1270 1377/1803/1268 1592/1792/1375 1431/1791/1376 +f 1250/1793/1264 1430/1783/1374 1592/1792/1375 1377/1803/1268 +f 1287/1768/1370 1431/1791/1376 1592/1792/1375 1430/1783/1374 +f 1252/1812/1276 1380/1813/1274 1593/1801/1377 1432/1800/1378 +f 1251/1802/1270 1431/1791/1376 1593/1801/1377 1380/1813/1274 +f 1287/1768/1370 1432/1800/1378 1593/1801/1377 1431/1791/1376 +f 1253/1823/1282 1383/1824/1280 1594/1811/1379 1433/1810/1380 +f 1252/1812/1276 1432/1800/1378 1594/1811/1379 1383/1824/1280 +f 1287/1768/1370 1433/1810/1380 1594/1811/1379 1432/1800/1378 +f 1254/1835/1288 1386/1836/1286 1595/1822/1381 1434/1821/1382 +f 1253/1823/1282 1433/1810/1380 1595/1822/1381 1386/1836/1286 +f 1287/1768/1370 1434/1821/1382 1595/1822/1381 1433/1810/1380 +f 1255/1847/1294 1389/1848/1292 1596/1834/1383 1435/1833/1384 +f 1254/1835/1288 1434/1821/1382 1596/1834/1383 1389/1848/1292 +f 1287/1768/1370 1435/1833/1384 1596/1834/1383 1434/1821/1382 +f 1256/1859/1300 1392/1860/1298 1597/1846/1385 1436/1845/1386 +f 1255/1847/1294 1435/1833/1384 1597/1846/1385 1392/1860/1298 +f 1287/1768/1370 1436/1845/1386 1597/1846/1385 1435/1833/1384 +f 1257/1868/1306 1395/1869/1304 1598/1858/1387 1437/1857/1388 +f 1256/1859/1300 1436/1845/1386 1598/1858/1387 1395/1869/1304 +f 1287/1768/1370 1437/1857/1388 1598/1858/1387 1436/1845/1386 +f 1258/1866/1312 1398/1873/1310 1599/1867/1389 1438/1856/1390 +f 1257/1868/1306 1437/1857/1388 1599/1867/1389 1398/1873/1310 +f 1287/1768/1370 1438/1856/1390 1599/1867/1389 1437/1857/1388 +f 1259/1854/1318 1401/1864/1316 1600/1855/1391 1439/1844/1392 +f 1258/1866/1312 1438/1856/1390 1600/1855/1391 1401/1864/1316 +f 1287/1768/1370 1439/1844/1392 1600/1855/1391 1438/1856/1390 +f 1260/1842/1324 1404/1852/1322 1601/1843/1393 1440/1832/1394 +f 1259/1854/1318 1439/1844/1392 1601/1843/1393 1404/1852/1322 +f 1287/1768/1370 1440/1832/1394 1601/1843/1393 1439/1844/1392 +f 1261/1830/1330 1407/1840/1328 1602/1831/1395 1441/1820/1396 +f 1260/1842/1324 1440/1832/1394 1602/1831/1395 1407/1840/1328 +f 1287/1768/1370 1441/1820/1396 1602/1831/1395 1440/1832/1394 +f 1262/1818/1336 1410/1828/1334 1603/1819/1397 1442/1809/1398 +f 1261/1830/1330 1441/1820/1396 1603/1819/1397 1410/1828/1334 +f 1287/1768/1370 1442/1809/1398 1603/1819/1397 1441/1820/1396 +f 1263/1807/1342 1413/1816/1340 1604/1808/1399 1443/1799/1400 +f 1262/1818/1336 1442/1809/1398 1604/1808/1399 1413/1816/1340 +f 1287/1768/1370 1443/1799/1400 1604/1808/1399 1442/1809/1398 +f 1264/1797/1348 1416/1806/1346 1605/1798/1401 1444/1790/1402 +f 1263/1807/1342 1443/1799/1400 1605/1798/1401 1416/1806/1346 +f 1287/1768/1370 1444/1790/1402 1605/1798/1401 1443/1799/1400 +f 1265/1787/1354 1419/1795/1352 1606/1789/1403 1445/1782/1404 +f 1264/1797/1348 1444/1790/1402 1606/1789/1403 1419/1795/1352 +f 1287/1768/1370 1445/1782/1404 1606/1789/1403 1444/1790/1402 +f 1266/1772/1360 1422/1779/1358 1607/1781/1405 1446/1774/1406 +f 1265/1787/1354 1445/1782/1404 1607/1781/1405 1422/1779/1358 +f 1287/1768/1370 1446/1774/1406 1607/1781/1405 1445/1782/1404 +f 1247/1757/1247 1425/1765/1364 1608/1767/1407 1428/1761/1369 +f 1266/1772/1360 1446/1774/1406 1608/1767/1407 1425/1765/1364 +f 1287/1768/1370 1428/1761/1369 1608/1767/1407 1446/1774/1406 +f 1267/1878/1408 1447/1879/1409 1609/1880/1410 1448/1881/1411 +f 1268/1884/1412 1449/1885/1413 1609/1880/1410 1447/1879/1409 +f 1288/1886/1414 1448/1881/1411 1609/1880/1410 1449/1885/1413 +f 1268/1884/1412 1450/1891/1415 1610/1892/1416 1449/1885/1413 +f 1269/1898/1417 1451/1894/1418 1610/1892/1416 1450/1891/1415 +f 1288/1886/1414 1449/1885/1413 1610/1892/1416 1451/1894/1418 +f 1269/1898/1417 1452/1906/1419 1611/1901/1420 1451/1894/1418 +f 1270/1910/1421 1453/1902/1422 1611/1901/1420 1452/1906/1419 +f 1288/1886/1414 1451/1894/1418 1611/1901/1420 1453/1902/1422 +f 1270/1910/1421 1454/1919/1423 1612/1911/1424 1453/1902/1422 +f 1271/1921/1425 1455/1912/1426 1612/1911/1424 1454/1919/1423 +f 1288/1886/1414 1453/1902/1422 1612/1911/1424 1455/1912/1426 +f 1271/1921/1425 1456/1934/1427 1613/1922/1428 1455/1912/1426 +f 1272/1936/1429 1457/1923/1430 1613/1922/1428 1456/1934/1427 +f 1288/1886/1414 1455/1912/1426 1613/1922/1428 1457/1923/1430 +f 1272/1936/1429 1458/1951/1431 1614/1937/1432 1457/1923/1430 +f 1273/1953/1433 1459/1938/1434 1614/1937/1432 1458/1951/1431 +f 1288/1886/1414 1457/1923/1430 1614/1937/1432 1459/1938/1434 +f 1273/1953/1433 1460/1970/1435 1615/1954/1436 1459/1938/1434 +f 1274/1972/1437 1461/1955/1438 1615/1954/1436 1460/1970/1435 +f 1288/1886/1414 1459/1938/1434 1615/1954/1436 1461/1955/1438 +f 1274/1972/1437 1462/1994/1439 1616/1973/1440 1461/1955/1438 +f 1275/1996/1441 1463/1974/1442 1616/1973/1440 1462/1994/1439 +f 1288/1886/1414 1461/1955/1438 1616/1973/1440 1463/1974/1442 +f 1275/1996/1441 1464/2017/1443 1617/1997/1444 1463/1974/1442 +f 1276/2019/1445 1465/1998/1446 1617/1997/1444 1464/2017/1443 +f 1288/1886/1414 1463/1974/1442 1617/1997/1444 1465/1998/1446 +f 1276/2019/1445 1466/2039/1447 1618/2020/1448 1465/1998/1446 +f 1277/2041/1449 1467/2021/1450 1618/2020/1448 1466/2039/1447 +f 1288/1886/1414 1465/1998/1446 1618/2020/1448 1467/2021/1450 +f 1277/2041/1449 1468/2042/1451 1619/2022/1452 1467/2021/1450 +f 1278/2023/1453 1469/1999/1454 1619/2022/1452 1468/2042/1451 +f 1288/1886/1414 1467/2021/1450 1619/2022/1452 1469/1999/1454 +f 1278/2023/1453 1470/2024/1455 1620/2000/1456 1469/1999/1454 +f 1279/2001/1457 1471/1977/1458 1620/2000/1456 1470/2024/1455 +f 1288/1886/1414 1469/1999/1454 1620/2000/1456 1471/1977/1458 +f 1279/2001/1457 1472/2002/1459 1621/1978/1460 1471/1977/1458 +f 1280/1979/1461 1473/1958/1462 1621/1978/1460 1472/2002/1459 +f 1288/1886/1414 1471/1977/1458 1621/1978/1460 1473/1958/1462 +f 1280/1979/1461 1474/1980/1463 1622/1959/1464 1473/1958/1462 +f 1281/1960/1465 1475/1941/1466 1622/1959/1464 1474/1980/1463 +f 1288/1886/1414 1473/1958/1462 1622/1959/1464 1475/1941/1466 +f 1281/1960/1465 1476/1961/1467 1623/1942/1468 1475/1941/1466 +f 1282/1943/1469 1477/1927/1470 1623/1942/1468 1476/1961/1467 +f 1288/1886/1414 1475/1941/1466 1623/1942/1468 1477/1927/1470 +f 1282/1943/1469 1478/1944/1471 1624/1928/1472 1477/1927/1470 +f 1283/1929/1473 1479/1915/1474 1624/1928/1472 1478/1944/1471 +f 1288/1886/1414 1477/1927/1470 1624/1928/1472 1479/1915/1474 +f 1283/1929/1473 1480/1930/1475 1625/1916/1476 1479/1915/1474 +f 1284/1917/1477 1481/1907/1478 1625/1916/1476 1480/1930/1475 +f 1288/1886/1414 1479/1915/1474 1625/1916/1476 1481/1907/1478 +f 1284/1917/1477 1482/1918/1479 1626/1908/1480 1481/1907/1478 +f 1285/1909/1481 1483/1899/1482 1626/1908/1480 1482/1918/1479 +f 1288/1886/1414 1481/1907/1478 1626/1908/1480 1483/1899/1482 +f 1285/1909/1481 1484/1903/1483 1627/1900/1484 1483/1899/1482 +f 1286/1895/1485 1485/1893/1486 1627/1900/1484 1484/1903/1483 +f 1288/1886/1414 1483/1899/1482 1627/1900/1484 1485/1893/1486 +f 1286/1895/1485 1486/1888/1487 1628/1887/1488 1485/1893/1486 +f 1267/1878/1408 1448/1881/1411 1628/1887/1488 1486/1888/1487 +f 1288/1886/1414 1485/1893/1486 1628/1887/1488 1448/1881/1411 +f 1290/1636/1489 1487/1628/1490 1629/1635/1491 1488/1642/1492 +f 1487/1628/1490 1289/1619/1493 1489/1627/1494 1629/1635/1491 +f 1629/1905/1491 1489/1897/1494 1286/1895/1485 1484/1903/1483 +f 1488/1914/1492 1629/1905/1491 1484/1903/1483 1285/1909/1481 +f 1291/1650/1495 1490/1643/1496 1630/1649/1497 1491/1654/1498 +f 1490/1643/1496 1290/1636/1489 1488/1642/1492 1630/1649/1497 +f 1630/1926/1497 1488/1914/1492 1285/1909/1481 1482/1918/1479 +f 1491/1931/1498 1630/1926/1497 1482/1918/1479 1284/1917/1477 +f 1292/1658/1499 1492/1655/1500 1631/1657/1501 1493/1659/1502 +f 1492/1655/1500 1291/1650/1495 1491/1654/1498 1631/1657/1501 +f 1631/1946/1501 1491/1931/1498 1284/1917/1477 1480/1930/1475 +f 1493/1945/1502 1631/1946/1501 1480/1930/1475 1283/1929/1473 +f 1293/1983/1503 1494/1984/1504 1632/1963/1505 1495/1962/1506 +f 1494/1984/1504 1292/1985/1499 1493/1945/1502 1632/1963/1505 +f 1632/1963/1505 1493/1945/1502 1283/1929/1473 1478/1944/1471 +f 1495/1962/1506 1632/1963/1505 1478/1944/1471 1282/1943/1469 +f 1294/2005/1507 1496/2006/1508 1633/1982/1509 1497/1981/1510 +f 1496/2006/1508 1293/1983/1503 1495/1962/1506 1633/1982/1509 +f 1633/1982/1509 1495/1962/1506 1282/1943/1469 1476/1961/1467 +f 1497/1981/1510 1633/1982/1509 1476/1961/1467 1281/1960/1465 +f 1295/2027/1511 1498/2028/1512 1634/2004/1513 1499/2003/1514 +f 1498/2028/1512 1294/2005/1507 1497/1981/1510 1634/2004/1513 +f 1634/2004/1513 1497/1981/1510 1281/1960/1465 1474/1980/1463 +f 1499/2003/1514 1634/2004/1513 1474/1980/1463 1280/1979/1461 +f 1296/2045/1515 1500/2046/1516 1635/2026/1517 1501/2025/1518 +f 1500/2046/1516 1295/2027/1511 1499/2003/1514 1635/2026/1517 +f 1635/2026/1517 1499/2003/1514 1280/1979/1461 1472/2002/1459 +f 1501/2025/1518 1635/2026/1517 1472/2002/1459 1279/2001/1457 +f 1297/1749/1519 1502/1752/1520 1636/1755/1521 1503/1753/1522 +f 1502/1752/1520 1296/1754/1515 1501/1756/1518 1636/1755/1521 +f 1636/2044/1521 1501/2025/1518 1279/2001/1457 1470/2024/1455 +f 1503/2043/1522 1636/2044/1521 1470/2024/1455 1278/2023/1453 +f 1298/1736/1523 1504/1744/1524 1637/1750/1525 1505/1745/1526 +f 1504/1744/1524 1297/1749/1519 1503/1753/1522 1637/1750/1525 +f 1637/2058/1525 1503/2043/1522 1278/2023/1453 1468/2042/1451 +f 1505/2057/1526 1637/2058/1525 1468/2042/1451 1277/2041/1449 +f 1299/1717/1527 1506/1727/1528 1638/1737/1529 1507/1728/1530 +f 1506/1727/1528 1298/1736/1523 1505/1745/1526 1638/1737/1529 +f 1638/2056/1529 1505/2057/1526 1277/2041/1449 1466/2039/1447 +f 1507/2040/1530 1638/2056/1529 1466/2039/1447 1276/2019/1445 +f 1300/1693/1531 1508/1705/1532 1639/1718/1533 1509/1706/1534 +f 1508/1705/1532 1299/1717/1527 1507/1728/1530 1639/1718/1533 +f 1639/2038/1533 1507/2040/1530 1276/2019/1445 1464/2017/1443 +f 1509/2018/1534 1639/2038/1533 1464/2017/1443 1275/1996/1441 +f 1301/1708/1535 1510/1694/1536 1640/1707/1537 1511/1719/1538 +f 1510/1694/1536 1300/1693/1531 1509/1706/1534 1640/1707/1537 +f 1640/2016/1537 1509/2018/1534 1275/1996/1441 1462/1994/1439 +f 1511/1995/1538 1640/2016/1537 1462/1994/1439 1274/1972/1437 +f 1302/1730/1539 1512/1720/1540 1641/1729/1541 1513/1738/1542 +f 1512/1720/1540 1301/1708/1535 1511/1719/1538 1641/1729/1541 +f 1641/1992/1541 1511/1995/1538 1274/1972/1437 1460/1970/1435 +f 1513/1971/1542 1641/1992/1541 1460/1970/1435 1273/1953/1433 +f 1303/1969/1543 1514/1990/1544 1642/1968/1545 1515/1952/1546 +f 1514/1990/1544 1302/1993/1539 1513/1971/1542 1642/1968/1545 +f 1642/1968/1545 1513/1971/1542 1273/1953/1433 1458/1951/1431 +f 1515/1952/1546 1642/1968/1545 1458/1951/1431 1272/1936/1429 +f 1304/1950/1547 1516/1966/1548 1643/1949/1549 1517/1935/1550 +f 1516/1966/1548 1303/1969/1543 1515/1952/1546 1643/1949/1549 +f 1643/1949/1549 1515/1952/1546 1272/1936/1429 1456/1934/1427 +f 1517/1935/1550 1643/1949/1549 1456/1934/1427 1271/1921/1425 +f 1305/1933/1551 1518/1947/1552 1644/1932/1553 1519/1920/1554 +f 1518/1947/1552 1304/1950/1547 1517/1935/1550 1644/1932/1553 +f 1644/1932/1553 1517/1935/1550 1271/1921/1425 1454/1919/1423 +f 1519/1920/1554 1644/1932/1553 1454/1919/1423 1270/1910/1421 +f 1306/1924/1555 1520/1925/1556 1645/1913/1557 1521/1904/1558 +f 1520/1925/1556 1305/1933/1551 1519/1920/1554 1645/1913/1557 +f 1645/1913/1557 1519/1920/1554 1270/1910/1421 1452/1906/1419 +f 1521/1904/1558 1645/1913/1557 1452/1906/1419 1269/1898/1417 +f 1307/1606/1559 1522/1616/1560 1646/1626/1561 1523/1617/1562 +f 1522/1616/1560 1306/1625/1555 1521/1634/1558 1646/1626/1561 +f 1646/1896/1561 1521/1904/1558 1269/1898/1417 1450/1891/1415 +f 1523/1889/1562 1646/1896/1561 1450/1891/1415 1268/1884/1412 +f 1308/1597/1563 1524/1596/1564 1647/1607/1565 1525/1608/1566 +f 1524/1596/1564 1307/1606/1559 1523/1617/1562 1647/1607/1565 +f 1647/1883/1565 1523/1889/1562 1268/1884/1412 1447/1879/1409 +f 1525/1882/1566 1647/1883/1565 1447/1879/1409 1267/1878/1408 +f 1289/1619/1493 1526/1609/1567 1648/1618/1568 1489/1627/1494 +f 1526/1609/1567 1308/1597/1563 1525/1608/1566 1648/1618/1568 +f 1648/1890/1568 1525/1882/1566 1267/1878/1408 1486/1888/1487 +f 1489/1897/1494 1648/1890/1568 1486/1888/1487 1286/1895/1485 +f 1310/1621/1569 1527/1611/1570 1649/1620/1571 1528/1629/1572 +f 1527/1611/1570 1309/1599/1573 1529/1610/1574 1649/1620/1571 +f 1649/1620/1571 1529/1610/1574 1289/1619/1493 1487/1628/1490 +f 1528/1629/1572 1649/1620/1571 1487/1628/1490 1290/1636/1489 +f 1311/1638/1575 1530/1630/1576 1650/1637/1577 1531/1644/1578 +f 1530/1630/1576 1310/1621/1569 1528/1629/1572 1650/1637/1577 +f 1650/1637/1577 1528/1629/1572 1290/1636/1489 1490/1643/1496 +f 1531/1644/1578 1650/1637/1577 1490/1643/1496 1291/1650/1495 +f 1312/1652/1579 1532/1645/1580 1651/1651/1581 1533/1656/1582 +f 1532/1645/1580 1311/1638/1575 1531/1644/1578 1651/1651/1581 +f 1651/1651/1581 1531/1644/1578 1291/1650/1495 1492/1655/1500 +f 1533/1656/1582 1651/1651/1581 1492/1655/1500 1292/1658/1499 +f 1313/2031/1583 1534/2032/1584 1652/2008/1585 1535/2007/1586 +f 1534/2032/1584 1312/2033/1579 1533/2009/1582 1652/2008/1585 +f 1652/2008/1585 1533/2009/1582 1292/1985/1499 1494/1984/1504 +f 1535/2007/1586 1652/2008/1585 1494/1984/1504 1293/1983/1503 +f 1314/2049/1587 1536/2050/1588 1653/2030/1589 1537/2029/1590 +f 1536/2050/1588 1313/2031/1583 1535/2007/1586 1653/2030/1589 +f 1653/2030/1589 1535/2007/1586 1293/1983/1503 1496/2006/1508 +f 1537/2029/1590 1653/2030/1589 1496/2006/1508 1294/2005/1507 +f 1315/2061/1591 1538/2062/1592 1654/2048/1593 1539/2047/1594 +f 1538/2062/1592 1314/2049/1587 1537/2029/1590 1654/2048/1593 +f 1654/2048/1593 1537/2029/1590 1294/2005/1507 1498/2028/1512 +f 1539/2047/1594 1654/2048/1593 1498/2028/1512 1295/2027/1511 +f 1316/2065/1595 1540/2066/1596 1655/2060/1597 1541/2059/1598 +f 1540/2066/1596 1315/2061/1591 1539/2047/1594 1655/2060/1597 +f 1655/2060/1597 1539/2047/1594 1295/2027/1511 1500/2046/1516 +f 1541/2059/1598 1655/2060/1597 1500/2046/1516 1296/2045/1515 +f 1317/1734/1599 1542/1742/1600 1656/1748/1601 1543/1743/1602 +f 1542/1742/1600 1316/1747/1595 1541/1751/1598 1656/1748/1601 +f 1656/1748/1601 1541/1751/1598 1296/1754/1515 1502/1752/1520 +f 1543/1743/1602 1656/1748/1601 1502/1752/1520 1297/1749/1519 +f 1318/1715/1603 1544/1725/1604 1657/1735/1605 1545/1726/1606 +f 1544/1725/1604 1317/1734/1599 1543/1743/1602 1657/1735/1605 +f 1657/1735/1605 1543/1743/1602 1297/1749/1519 1504/1744/1524 +f 1545/1726/1606 1657/1735/1605 1504/1744/1524 1298/1736/1523 +f 1319/1691/1607 1546/1703/1608 1658/1716/1609 1547/1704/1610 +f 1546/1703/1608 1318/1715/1603 1545/1726/1606 1658/1716/1609 +f 1658/1716/1609 1545/1726/1606 1298/1736/1523 1506/1727/1528 +f 1547/1704/1610 1658/1716/1609 1506/1727/1528 1299/1717/1527 +f 1320/1673/1611 1548/1681/1612 1659/1692/1613 1549/1682/1614 +f 1548/1681/1612 1319/1691/1607 1547/1704/1610 1659/1692/1613 +f 1659/1692/1613 1547/1704/1610 1299/1717/1527 1508/1705/1532 +f 1549/1682/1614 1659/1692/1613 1508/1705/1532 1300/1693/1531 +f 1321/1684/1615 1550/1674/1616 1660/1683/1617 1551/1695/1618 +f 1550/1674/1616 1320/1673/1611 1549/1682/1614 1660/1683/1617 +f 1660/1683/1617 1549/1682/1614 1300/1693/1531 1510/1694/1536 +f 1551/1695/1618 1660/1683/1617 1510/1694/1536 1301/1708/1535 +f 1322/1710/1619 1552/1696/1620 1661/1709/1621 1553/1721/1622 +f 1552/1696/1620 1321/1684/1615 1551/1695/1618 1661/1709/1621 +f 1661/1709/1621 1551/1695/1618 1301/1708/1535 1512/1720/1540 +f 1553/1721/1622 1661/1709/1621 1512/1720/1540 1302/1730/1539 +f 1323/2014/1623 1554/2035/1624 1662/2013/1625 1555/1991/1626 +f 1554/2035/1624 1322/2037/1619 1553/2015/1622 1662/2013/1625 +f 1662/2013/1625 1553/2015/1622 1302/1993/1539 1514/1990/1544 +f 1555/1991/1626 1662/2013/1625 1514/1990/1544 1303/1969/1543 +f 1324/1989/1627 1556/2011/1628 1663/1988/1629 1557/1967/1630 +f 1556/2011/1628 1323/2014/1623 1555/1991/1626 1663/1988/1629 +f 1663/1988/1629 1555/1991/1626 1303/1969/1543 1516/1966/1548 +f 1557/1967/1630 1663/1988/1629 1516/1966/1548 1304/1950/1547 +f 1325/1965/1631 1558/1986/1632 1664/1964/1633 1559/1948/1634 +f 1558/1986/1632 1324/1989/1627 1557/1967/1630 1664/1964/1633 +f 1664/1964/1633 1557/1967/1630 1304/1950/1547 1518/1947/1552 +f 1559/1948/1634 1664/1964/1633 1518/1947/1552 1305/1933/1551 +f 1326/1956/1635 1560/1957/1636 1665/1940/1637 1561/1939/1638 +f 1560/1957/1636 1325/1965/1631 1559/1948/1634 1665/1940/1637 +f 1665/1940/1637 1559/1948/1634 1305/1933/1551 1520/1925/1556 +f 1561/1939/1638 1665/1940/1637 1520/1925/1556 1306/1924/1555 +f 1327/1584/1639 1562/1594/1640 1666/1605/1641 1563/1595/1642 +f 1562/1594/1640 1326/1604/1635 1561/1615/1638 1666/1605/1641 +f 1666/1605/1641 1561/1615/1638 1306/1625/1555 1522/1616/1560 +f 1563/1595/1642 1666/1605/1641 1522/1616/1560 1307/1606/1559 +f 1328/1577/1643 1564/1576/1644 1667/1585/1645 1565/1586/1646 +f 1564/1576/1644 1327/1584/1639 1563/1595/1642 1667/1585/1645 +f 1667/1585/1645 1563/1595/1642 1307/1606/1559 1524/1596/1564 +f 1565/1586/1646 1667/1585/1645 1524/1596/1564 1308/1597/1563 +f 1309/1599/1573 1566/1587/1647 1668/1598/1648 1529/1610/1574 +f 1566/1587/1647 1328/1577/1643 1565/1586/1646 1668/1598/1648 +f 1668/1598/1648 1565/1586/1646 1308/1597/1563 1526/1609/1567 +f 1529/1610/1574 1668/1598/1648 1526/1609/1567 1289/1619/1493 +f 1330/1624/1350 1421/1614/1357 1669/1622/1649 1567/1631/1650 +f 1421/1614/1357 1329/1602/1356 1568/1612/1651 1669/1622/1649 +f 1669/1622/1649 1568/1612/1651 1310/1621/1569 1530/1630/1576 +f 1567/1631/1650 1669/1622/1649 1530/1630/1576 1311/1638/1575 +f 1331/1641/1344 1418/1633/1351 1670/1639/1652 1349/1646/1653 +f 1418/1633/1351 1330/1624/1350 1567/1631/1650 1670/1639/1652 +f 1670/1639/1652 1567/1631/1650 1311/1638/1575 1532/1645/1580 +f 1349/1646/1653 1670/1639/1652 1532/1645/1580 1312/1652/1579 +f 1332/2107/1338 1415/2110/1345 1671/2112/1654 1350/2111/1655 +f 1415/1648/1345 1331/1641/1344 1349/1646/1653 1671/1653/1654 +f 1671/2052/1654 1349/2053/1653 1312/2033/1579 1534/2032/1584 +f 1350/2051/1655 1671/2052/1654 1534/2032/1584 1313/2031/1583 +f 1333/2101/1332 1412/2104/1339 1672/2108/1656 1351/2105/1657 +f 1412/2104/1339 1332/2107/1338 1350/2111/1655 1672/2108/1656 +f 1672/2064/1656 1350/2051/1655 1313/2031/1583 1536/2050/1588 +f 1351/2063/1657 1672/2064/1656 1536/2050/1588 1314/2049/1587 +f 1334/2094/1326 1409/2097/1333 1673/2102/1658 1352/2098/1659 +f 1409/2097/1333 1333/2101/1332 1351/2105/1657 1673/2102/1658 +f 1673/2068/1658 1351/2063/1657 1314/2049/1587 1538/2062/1592 +f 1352/2067/1659 1673/2068/1658 1538/2062/1592 1315/2061/1591 +f 1335/1732/1320 1406/1740/1327 1674/1746/1660 1353/1741/1661 +f 1406/2095/1327 1334/2094/1326 1352/2098/1659 1674/2099/1660 +f 1674/2070/1660 1352/2067/1659 1315/2061/1591 1540/2066/1596 +f 1353/2069/1661 1674/2070/1660 1540/2066/1596 1316/2065/1595 +f 1336/1713/1314 1403/1723/1321 1675/1733/1662 1354/1724/1663 +f 1403/1723/1321 1335/1732/1320 1353/1741/1661 1675/1733/1662 +f 1675/1733/1662 1353/1741/1661 1316/1747/1595 1542/1742/1600 +f 1354/1724/1663 1675/1733/1662 1542/1742/1600 1317/1734/1599 +f 1337/1689/1308 1400/1701/1315 1676/1714/1664 1355/1702/1665 +f 1400/1701/1315 1336/1713/1314 1354/1724/1663 1676/1714/1664 +f 1676/1714/1664 1354/1724/1663 1317/1734/1599 1544/1725/1604 +f 1355/1702/1665 1676/1714/1664 1544/1725/1604 1318/1715/1603 +f 1338/1671/1302 1397/1679/1309 1677/1690/1666 1356/1680/1667 +f 1397/1679/1309 1337/1689/1308 1355/1702/1665 1677/1690/1666 +f 1677/1690/1666 1355/1702/1665 1318/1715/1603 1546/1703/1608 +f 1356/1680/1667 1677/1690/1666 1546/1703/1608 1319/1691/1607 +f 1339/1662/1296 1394/1665/1303 1678/1672/1668 1357/1666/1669 +f 1394/1665/1303 1338/1671/1302 1356/1680/1667 1678/1672/1668 +f 1678/1672/1668 1356/1680/1667 1319/1691/1607 1548/1681/1612 +f 1357/1666/1669 1678/1672/1668 1548/1681/1612 1320/1673/1611 +f 1340/1669/1290 1391/1663/1297 1679/1667/1670 1358/1675/1671 +f 1391/1663/1297 1339/1662/1296 1357/1666/1669 1679/1667/1670 +f 1679/1667/1670 1357/1666/1669 1320/1673/1611 1550/1674/1616 +f 1358/1675/1671 1679/1667/1670 1550/1674/1616 1321/1684/1615 +f 1341/1687/1284 1388/1677/1291 1680/1685/1672 1359/1697/1673 +f 1388/1677/1291 1340/1669/1290 1358/1675/1671 1680/1685/1672 +f 1680/1685/1672 1358/1675/1671 1321/1684/1615 1552/1696/1620 +f 1359/1697/1673 1680/1685/1672 1552/1696/1620 1322/1710/1619 +f 1342/2086/1278 1385/2089/1285 1681/2091/1674 1360/2090/1675 +f 1385/1699/1285 1341/1687/1284 1359/1697/1673 1681/1711/1674 +f 1681/2054/1674 1359/2055/1673 1322/2037/1619 1554/2035/1624 +f 1360/2036/1675 1681/2054/1674 1554/2035/1624 1323/2014/1623 +f 1343/2080/1272 1382/2083/1279 1682/2087/1676 1361/2084/1677 +f 1382/2083/1279 1342/2086/1278 1360/2090/1675 1682/2087/1676 +f 1682/2034/1676 1360/2036/1675 1323/2014/1623 1556/2011/1628 +f 1361/2012/1677 1682/2034/1676 1556/2011/1628 1324/1989/1627 +f 1344/2073/1266 1379/2076/1273 1683/2081/1678 1362/2077/1679 +f 1379/2076/1273 1343/2080/1272 1361/2084/1677 1683/2081/1678 +f 1683/2010/1678 1361/2012/1677 1324/1989/1627 1558/1986/1632 +f 1362/1987/1679 1683/2010/1678 1558/1986/1632 1325/1965/1631 +f 1345/1582/1260 1376/1592/1267 1684/1603/1680 1363/1593/1681 +f 1376/2074/1267 1344/2073/1266 1362/2077/1679 1684/2078/1680 +f 1684/1976/1680 1362/1987/1679 1325/1965/1631 1560/1957/1636 +f 1363/1975/1681 1684/1976/1680 1560/1957/1636 1326/1956/1635 +f 1346/1568/1253 1373/1574/1261 1685/1583/1682 1364/1575/1683 +f 1373/1574/1261 1345/1582/1260 1363/1593/1681 1685/1583/1682 +f 1685/1583/1682 1363/1593/1681 1326/1604/1635 1562/1594/1640 +f 1364/1575/1683 1685/1583/1682 1562/1594/1640 1327/1584/1639 +f 1347/1566/1255 1370/1565/1254 1686/1569/1684 1365/1570/1685 +f 1370/1565/1254 1346/1568/1253 1364/1575/1683 1686/1569/1684 +f 1686/1569/1684 1364/1575/1683 1327/1584/1639 1564/1576/1644 +f 1365/1570/1685 1686/1569/1684 1564/1576/1644 1328/1577/1643 +f 1348/1580/1362 1426/1572/1366 1687/1578/1686 1366/1588/1687 +f 1426/1572/1366 1347/1566/1255 1365/1570/1685 1687/1578/1686 +f 1687/1578/1686 1365/1570/1685 1328/1577/1643 1566/1587/1647 +f 1366/1588/1687 1687/1578/1686 1566/1587/1647 1309/1599/1573 +f 1329/1602/1356 1424/1590/1363 1688/1600/1688 1568/1612/1651 +f 1424/1590/1363 1348/1580/1362 1366/1588/1687 1688/1600/1688 +f 1688/1600/1688 1366/1588/1687 1309/1599/1573 1527/1611/1570 +f 1568/1612/1651 1688/1600/1688 1527/1611/1570 1310/1621/1569 +g default +v 0.336784 3.268576 -0.109428 +v 0.286485 3.268576 -0.208144 +v 0.208144 3.268576 -0.286485 +v 0.109428 3.268576 -0.336784 +v -0.000000 3.268576 -0.354115 +v -0.109428 3.268576 -0.336784 +v -0.208144 3.268576 -0.286485 +v -0.286485 3.268576 -0.208144 +v -0.336784 3.268576 -0.109428 +v -0.354115 3.268576 -0.000000 +v -0.336784 3.268576 0.109428 +v -0.286485 3.268576 0.208144 +v -0.208144 3.268576 0.286485 +v -0.109428 3.268576 0.336783 +v -0.000000 3.268576 0.354115 +v 0.109428 3.268576 0.336783 +v 0.208144 3.268576 0.286485 +v 0.286485 3.268576 0.208144 +v 0.336783 3.268576 0.109428 +v 0.354115 3.268576 -0.000000 +v 0.007498 3.814301 -0.002436 +v 0.006378 3.814301 -0.004634 +v 0.004634 3.814301 -0.006379 +v 0.002436 3.814301 -0.007498 +v -0.000000 3.814301 -0.007884 +v -0.002436 3.814301 -0.007498 +v -0.004634 3.814301 -0.006379 +v -0.006378 3.814301 -0.004634 +v -0.007498 3.814301 -0.002436 +v -0.007884 3.814301 -0.000000 +v -0.007498 3.814301 0.002436 +v -0.006378 3.814301 0.004634 +v -0.004634 3.814301 0.006378 +v -0.002436 3.814301 0.007498 +v -0.000000 3.814301 0.007884 +v 0.002436 3.814301 0.007498 +v 0.004634 3.814301 0.006378 +v 0.006378 3.814301 0.004634 +v 0.007498 3.814301 0.002436 +v 0.007884 3.814301 -0.000000 +v -0.000000 3.268501 -0.000000 +v -0.000000 3.814317 -0.000000 +v 0.057128 3.747103 -0.000000 +v 0.054332 3.747103 0.017654 +v 0.046218 3.747103 0.033579 +v 0.033579 3.747103 0.046218 +v 0.017654 3.747103 0.054332 +v -0.000000 3.747103 0.057128 +v -0.017654 3.747103 0.054332 +v -0.033580 3.747103 0.046218 +v -0.046218 3.747103 0.033579 +v -0.054333 3.747103 0.017654 +v -0.057129 3.747103 -0.000000 +v -0.054333 3.747103 -0.017654 +v -0.046218 3.747103 -0.033580 +v -0.033580 3.747103 -0.046218 +v -0.017654 3.747103 -0.054333 +v -0.000000 3.747103 -0.057129 +v 0.017654 3.747103 -0.054333 +v 0.033579 3.747103 -0.046218 +v 0.046218 3.747103 -0.033580 +v 0.054332 3.747103 -0.017654 +v 0.347080 3.343429 -0.000000 +v 0.330093 3.343429 0.107254 +v 0.280794 3.343429 0.204008 +v 0.204008 3.343429 0.280794 +v 0.107254 3.343429 0.330093 +v -0.000000 3.343429 0.347080 +v -0.107254 3.343429 0.330093 +v -0.204009 3.343429 0.280794 +v -0.280794 3.343429 0.204008 +v -0.330093 3.343429 0.107254 +v -0.347080 3.343429 -0.000000 +v -0.330093 3.343429 -0.107254 +v -0.280794 3.343429 -0.204009 +v -0.204009 3.343429 -0.280794 +v -0.107254 3.343429 -0.330093 +v -0.000000 3.343429 -0.347080 +v 0.107254 3.343429 -0.330093 +v 0.204009 3.343429 -0.280794 +v 0.280794 3.343429 -0.204009 +v 0.330093 3.343429 -0.107254 +v 0.376053 3.270056 0.122187 +v 0.319889 3.270056 0.232413 +v 0.232413 3.270056 0.319890 +v 0.122187 3.270056 0.376053 +v -0.000000 3.270056 0.395405 +v -0.122187 3.270056 0.376053 +v -0.232414 3.270056 0.319889 +v -0.319890 3.270056 0.232413 +v -0.376053 3.270056 0.122187 +v -0.395405 3.270056 -0.000000 +v -0.376053 3.270056 -0.122187 +v -0.319890 3.270056 -0.232414 +v -0.232414 3.270056 -0.319890 +v -0.122187 3.270056 -0.376053 +v -0.000000 3.270056 -0.395406 +v 0.122187 3.270056 -0.376053 +v 0.232413 3.270056 -0.319890 +v 0.319890 3.270056 -0.232414 +v 0.376053 3.270056 -0.122187 +v 0.395405 3.270056 -0.000000 +v 0.232413 3.273228 0.319889 +v 0.122187 3.273228 0.376053 +v -0.000000 3.273228 0.395405 +v -0.122187 3.273228 0.376053 +v -0.232414 3.273228 0.319890 +v -0.319890 3.273228 0.232413 +v -0.376053 3.273228 0.122187 +v -0.395405 3.273228 -0.000000 +v -0.376053 3.273228 -0.122187 +v -0.319890 3.273228 -0.232414 +v -0.232414 3.273228 -0.319890 +v -0.122187 3.273228 -0.376053 +v -0.000000 3.273228 -0.395406 +v 0.122187 3.273228 -0.376053 +v 0.232413 3.273228 -0.319890 +v 0.319890 3.273228 -0.232414 +v 0.376053 3.273228 -0.122187 +v 0.395405 3.273228 -0.000000 +v 0.310008 3.268609 -0.157957 +v 0.376053 3.268800 -0.122187 +v 0.319890 3.268800 -0.232414 +v 0.352282 3.270056 -0.179497 +v 0.246024 3.268609 -0.246024 +v 0.232413 3.268800 -0.319890 +v 0.279572 3.270056 -0.279573 +v 0.157957 3.268609 -0.310008 +v 0.122187 3.268800 -0.376053 +v 0.179496 3.270056 -0.352282 +v 0.054428 3.268609 -0.343647 +v -0.000000 3.268800 -0.395406 +v 0.061850 3.270056 -0.390507 +v -0.054428 3.268609 -0.343647 +v -0.122187 3.268800 -0.376053 +v -0.061850 3.270056 -0.390507 +v -0.157957 3.268609 -0.310008 +v -0.232414 3.268800 -0.319890 +v -0.179497 3.270056 -0.352282 +v -0.246024 3.268609 -0.246024 +v -0.319890 3.268800 -0.232414 +v -0.279572 3.270056 -0.279572 +v -0.310008 3.268609 -0.157957 +v -0.376053 3.268800 -0.122187 +v -0.352282 3.270056 -0.179497 +v -0.343646 3.268609 -0.054428 +v -0.395405 3.268800 -0.000000 +v -0.390507 3.270056 -0.061850 +v -0.343646 3.268609 0.054428 +v -0.376053 3.268800 0.122187 +v -0.390507 3.270056 0.061850 +v -0.310008 3.268609 0.157957 +v -0.319890 3.268800 0.232413 +v -0.352282 3.270056 0.179496 +v -0.246024 3.268609 0.246024 +v -0.232414 3.268800 0.319890 +v -0.279572 3.270056 0.279572 +v -0.157957 3.268609 0.310008 +v -0.122187 3.268800 0.376053 +v -0.179497 3.270056 0.352282 +v -0.054428 3.268609 0.343646 +v -0.000000 3.268800 0.395405 +v -0.061850 3.270056 0.390507 +v 0.054428 3.268609 0.343646 +v 0.122187 3.268800 0.376053 +v 0.061850 3.270056 0.390507 +v 0.157957 3.268609 0.310008 +v 0.232413 3.268800 0.319890 +v 0.179496 3.270056 0.352282 +v 0.246024 3.268609 0.246024 +v 0.319890 3.268800 0.232413 +v 0.279572 3.270056 0.279572 +v 0.310008 3.268609 0.157957 +v 0.376053 3.268800 0.122187 +v 0.352282 3.270056 0.179496 +v 0.343646 3.268609 0.054428 +v 0.395405 3.268800 -0.000000 +v 0.390507 3.270056 0.061850 +v 0.343646 3.268609 -0.054428 +v 0.390507 3.270056 -0.061850 +v 0.207697 3.268501 -0.150901 +v 0.244162 3.268501 -0.079333 +v 0.150900 3.268501 -0.207697 +v 0.079333 3.268501 -0.244162 +v -0.000000 3.268501 -0.256727 +v -0.079333 3.268501 -0.244162 +v -0.150900 3.268501 -0.207697 +v -0.207697 3.268501 -0.150900 +v -0.244162 3.268501 -0.079333 +v -0.256727 3.268501 -0.000000 +v -0.244162 3.268501 0.079333 +v -0.207697 3.268501 0.150900 +v -0.150900 3.268501 0.207696 +v -0.079333 3.268501 0.244162 +v -0.000000 3.268501 0.256727 +v 0.079333 3.268501 0.244162 +v 0.150900 3.268501 0.207696 +v 0.207696 3.268501 0.150900 +v 0.244162 3.268501 0.079333 +v 0.256727 3.268501 -0.000000 +v 0.006902 3.814295 -0.003517 +v 0.005436 3.814317 -0.001766 +v 0.004624 3.814317 -0.003360 +v 0.005477 3.814295 -0.005478 +v 0.003360 3.814317 -0.004624 +v 0.003517 3.814295 -0.006902 +v 0.001766 3.814317 -0.005436 +v 0.001212 3.814295 -0.007651 +v -0.000000 3.814317 -0.005716 +v -0.001212 3.814295 -0.007651 +v -0.001766 3.814317 -0.005436 +v -0.003517 3.814295 -0.006902 +v -0.003360 3.814317 -0.004624 +v -0.005478 3.814295 -0.005478 +v -0.004624 3.814317 -0.003360 +v -0.006902 3.814295 -0.003517 +v -0.005436 3.814317 -0.001766 +v -0.007651 3.814295 -0.001212 +v -0.005716 3.814317 -0.000000 +v -0.007651 3.814295 0.001212 +v -0.005436 3.814317 0.001766 +v -0.006902 3.814295 0.003517 +v -0.004624 3.814317 0.003360 +v -0.005478 3.814295 0.005477 +v -0.003360 3.814317 0.004624 +v -0.003517 3.814295 0.006902 +v -0.001766 3.814317 0.005436 +v -0.001212 3.814295 0.007651 +v -0.000000 3.814317 0.005716 +v 0.001212 3.814295 0.007651 +v 0.001766 3.814317 0.005436 +v 0.003517 3.814295 0.006902 +v 0.003360 3.814317 0.004624 +v 0.005477 3.814295 0.005477 +v 0.004624 3.814317 0.003360 +v 0.006902 3.814295 0.003517 +v 0.005436 3.814317 0.001766 +v 0.007651 3.814295 0.001212 +v 0.005716 3.814317 -0.000000 +v 0.007651 3.814295 -0.001212 +v 0.056421 3.747103 0.008936 +v 0.008372 3.814254 0.002720 +v 0.008803 3.814254 -0.000000 +v 0.050898 3.747103 0.025934 +v 0.007122 3.814254 0.005174 +v 0.040393 3.747103 0.040393 +v 0.005174 3.814254 0.007122 +v 0.025934 3.747103 0.050898 +v 0.002720 3.814254 0.008372 +v 0.008936 3.747103 0.056421 +v -0.000000 3.814254 0.008803 +v -0.008936 3.747103 0.056421 +v -0.002720 3.814254 0.008372 +v -0.025934 3.747103 0.050898 +v -0.005175 3.814254 0.007122 +v -0.040393 3.747103 0.040393 +v -0.007122 3.814254 0.005174 +v -0.050898 3.747103 0.025934 +v -0.008373 3.814254 0.002720 +v -0.056421 3.747103 0.008936 +v -0.008803 3.814254 -0.000000 +v -0.056421 3.747103 -0.008936 +v -0.008373 3.814254 -0.002721 +v -0.050898 3.747103 -0.025934 +v -0.007122 3.814254 -0.005175 +v -0.040393 3.747103 -0.040393 +v -0.005175 3.814254 -0.007122 +v -0.025934 3.747103 -0.050898 +v -0.002720 3.814254 -0.008373 +v -0.008936 3.747103 -0.056421 +v -0.000000 3.814254 -0.008804 +v 0.008936 3.747103 -0.056421 +v 0.002720 3.814254 -0.008373 +v 0.025934 3.747103 -0.050898 +v 0.005174 3.814254 -0.007122 +v 0.040393 3.747103 -0.040393 +v 0.007122 3.814254 -0.005175 +v 0.050898 3.747103 -0.025934 +v 0.008372 3.814254 -0.002721 +v 0.056421 3.747103 -0.008936 +v 0.342781 3.343429 0.054291 +v 0.192213 3.545774 0.062454 +v 0.202104 3.545774 -0.000000 +v 0.309227 3.343429 0.157559 +v 0.163506 3.545774 0.118794 +v 0.245404 3.343429 0.245404 +v 0.118794 3.545774 0.163506 +v 0.157559 3.343429 0.309227 +v 0.062454 3.545774 0.192212 +v 0.054291 3.343429 0.342781 +v -0.000000 3.545774 0.202104 +v -0.054291 3.343429 0.342781 +v -0.062454 3.545774 0.192213 +v -0.157559 3.343429 0.309227 +v -0.118794 3.545774 0.163506 +v -0.245404 3.343429 0.245404 +v -0.163506 3.545774 0.118794 +v -0.309227 3.343429 0.157559 +v -0.192213 3.545774 0.062454 +v -0.342781 3.343429 0.054291 +v -0.202104 3.545774 -0.000000 +v -0.342781 3.343429 -0.054291 +v -0.192213 3.545774 -0.062454 +v -0.309227 3.343429 -0.157559 +v -0.163506 3.545774 -0.118794 +v -0.245404 3.343429 -0.245404 +v -0.118794 3.545774 -0.163506 +v -0.157559 3.343429 -0.309227 +v -0.062454 3.545774 -0.192213 +v -0.054291 3.343429 -0.342781 +v -0.000000 3.545774 -0.202105 +v 0.054291 3.343429 -0.342781 +v 0.062454 3.545774 -0.192213 +v 0.157559 3.343429 -0.309227 +v 0.118794 3.545774 -0.163506 +v 0.245404 3.343429 -0.245404 +v 0.163506 3.545774 -0.118794 +v 0.309227 3.343429 -0.157559 +v 0.192213 3.545774 -0.062454 +v 0.342781 3.343429 -0.054291 +v 0.319889 3.273228 0.232413 +v 0.376053 3.273228 0.122187 +v 0.352282 3.268800 -0.179497 +v 0.279572 3.268800 -0.279573 +v 0.179496 3.268800 -0.352282 +v 0.061850 3.268800 -0.390507 +v -0.061850 3.268800 -0.390507 +v -0.179497 3.268800 -0.352282 +v -0.279572 3.268800 -0.279572 +v -0.352282 3.268800 -0.179497 +v -0.390507 3.268800 -0.061850 +v -0.390507 3.268800 0.061850 +v -0.352282 3.268800 0.179496 +v -0.279572 3.268800 0.279572 +v -0.179497 3.268800 0.352282 +v -0.061850 3.268800 0.390507 +v 0.061850 3.268800 0.390507 +v 0.179496 3.268800 0.352282 +v 0.279572 3.268800 0.279572 +v 0.352282 3.268800 0.179496 +v 0.390507 3.268800 0.061850 +v 0.390507 3.268800 -0.061850 +v 0.234855 3.268501 -0.119664 +v 0.186382 3.268501 -0.186382 +v 0.119664 3.268501 -0.234855 +v 0.041233 3.268501 -0.260338 +v -0.041234 3.268501 -0.260338 +v -0.119664 3.268501 -0.234855 +v -0.186382 3.268501 -0.186382 +v -0.234855 3.268501 -0.119664 +v -0.260338 3.268501 -0.041234 +v -0.260338 3.268501 0.041233 +v -0.234855 3.268501 0.119664 +v -0.186382 3.268501 0.186381 +v -0.119664 3.268501 0.234854 +v -0.041234 3.268501 0.260338 +v 0.041233 3.268501 0.260338 +v 0.119664 3.268501 0.234854 +v 0.186381 3.268501 0.186381 +v 0.234854 3.268501 0.119664 +v 0.260338 3.268501 0.041233 +v 0.260338 3.268501 -0.041234 +v 0.005229 3.814317 -0.002664 +v 0.004150 3.814317 -0.004150 +v 0.002664 3.814317 -0.005229 +v 0.000918 3.814317 -0.005796 +v -0.000918 3.814317 -0.005796 +v -0.002664 3.814317 -0.005229 +v -0.004150 3.814317 -0.004150 +v -0.005229 3.814317 -0.002664 +v -0.005796 3.814317 -0.000918 +v -0.005796 3.814317 0.000918 +v -0.005229 3.814317 0.002664 +v -0.004150 3.814317 0.004149 +v -0.002664 3.814317 0.005229 +v -0.000918 3.814317 0.005796 +v 0.000918 3.814317 0.005796 +v 0.002664 3.814317 0.005229 +v 0.004150 3.814317 0.004149 +v 0.005229 3.814317 0.002664 +v 0.005796 3.814317 0.000918 +v 0.005796 3.814317 -0.000918 +v 0.008694 3.814254 0.001377 +v 0.007843 3.814254 0.003996 +v 0.006224 3.814254 0.006224 +v 0.003996 3.814254 0.007843 +v 0.001377 3.814254 0.008694 +v -0.001377 3.814254 0.008694 +v -0.003996 3.814254 0.007843 +v -0.006225 3.814254 0.006224 +v -0.007843 3.814254 0.003996 +v -0.008694 3.814254 0.001377 +v -0.008694 3.814254 -0.001377 +v -0.007843 3.814254 -0.003997 +v -0.006225 3.814254 -0.006225 +v -0.003996 3.814254 -0.007843 +v -0.001377 3.814254 -0.008694 +v 0.001377 3.814254 -0.008694 +v 0.003996 3.814254 -0.007843 +v 0.006224 3.814254 -0.006225 +v 0.007843 3.814254 -0.003997 +v 0.008694 3.814254 -0.001377 +v 0.199601 3.545774 0.031613 +v 0.180062 3.545774 0.091746 +v 0.142898 3.545774 0.142898 +v 0.091746 3.545774 0.180062 +v 0.031614 3.545774 0.199601 +v -0.031614 3.545774 0.199601 +v -0.091747 3.545774 0.180062 +v -0.142899 3.545774 0.142898 +v -0.180063 3.545774 0.091746 +v -0.199601 3.545774 0.031614 +v -0.199601 3.545774 -0.031614 +v -0.180063 3.545774 -0.091747 +v -0.142899 3.545774 -0.142899 +v -0.091747 3.545774 -0.180063 +v -0.031614 3.545774 -0.199601 +v 0.031614 3.545774 -0.199601 +v 0.091746 3.545774 -0.180063 +v 0.142898 3.545774 -0.142899 +v 0.180062 3.545774 -0.091747 +v 0.199601 3.545774 -0.031614 +v 0.352282 3.273228 0.179496 +v 0.279572 3.273228 0.279572 +v 0.179496 3.273228 0.352282 +v 0.061850 3.273228 0.390507 +v -0.061850 3.273228 0.390507 +v -0.179497 3.273228 0.352282 +v -0.279572 3.273228 0.279572 +v -0.352282 3.273228 0.179496 +v -0.390507 3.273228 0.061850 +v -0.390507 3.273228 -0.061850 +v -0.352282 3.273228 -0.179497 +v -0.279572 3.273228 -0.279572 +v -0.179497 3.273228 -0.352282 +v -0.061850 3.273228 -0.390507 +v 0.061850 3.273228 -0.390507 +v 0.179496 3.273228 -0.352282 +v 0.279572 3.273228 -0.279573 +v 0.352282 3.273228 -0.179497 +v 0.390507 3.273228 -0.061850 +v 0.390507 3.273228 0.061850 +vt 0.576755 0.683173 +vt 0.576755 0.645144 +vt 0.577588 0.645144 +vt 0.577588 0.683173 +vt 0.576755 0.610031 +vt 0.577588 0.610031 +vt 0.579693 0.645144 +vt 0.579693 0.683173 +vt 0.576755 0.723209 +vt 0.577588 0.723209 +vt 0.576755 0.578739 +vt 0.577588 0.578739 +vt 0.579693 0.610031 +vt 0.626275 0.659701 +vt 0.626275 0.693082 +vt 0.579693 0.723209 +vt 0.576755 0.764250 +vt 0.577588 0.764250 +vt 0.576755 0.551986 +vt 0.577588 0.551986 +vt 0.579693 0.578739 +vt 0.626275 0.628879 +vt 0.760542 0.703371 +vt 0.760542 0.722809 +vt 0.626275 0.728225 +vt 0.579693 0.764250 +vt 0.576755 0.805291 +vt 0.577588 0.805291 +vt 0.576755 0.530492 +vt 0.577588 0.530492 +vt 0.579693 0.551986 +vt 0.626275 0.601411 +vt 0.760542 0.685424 +vt 0.894135 0.747041 +vt 0.894135 0.752536 +vt 0.760542 0.743273 +vt 0.626275 0.764250 +vt 0.579693 0.805291 +vt 0.576755 0.845328 +vt 0.577588 0.845328 +vt 0.579693 0.530492 +vt 0.626275 0.577928 +vt 0.760542 0.669429 +vt 0.894135 0.741968 +vt 0.938693 0.761598 +vt 0.938693 0.762445 +vt 0.894135 0.758321 +vt 0.760542 0.764250 +vt 0.626275 0.800275 +vt 0.579693 0.845328 +vt 0.576755 0.883356 +vt 0.577588 0.883356 +vt 0.760542 0.655755 +vt 0.894135 0.737447 +vt 0.938693 0.760817 +vt 0.938693 0.763336 +vt 0.894135 0.764250 +vt 0.760542 0.785228 +vt 0.626275 0.835419 +vt 0.579693 0.883356 +vt 0.576755 0.918469 +vt 0.577588 0.918469 +vt 0.894135 0.733582 +vt 0.938693 0.760120 +vt 0.938693 0.764250 +vt 0.894135 0.770180 +vt 0.760542 0.805692 +vt 0.626275 0.868799 +vt 0.579693 0.918469 +vt 0.576755 0.949761 +vt 0.577588 0.949761 +vt 0.938693 0.759524 +vt 0.938693 0.765164 +vt 0.894135 0.775964 +vt 0.760542 0.825129 +vt 0.626275 0.899621 +vt 0.579693 0.949761 +vt 0.576755 0.976514 +vt 0.577588 0.976514 +vt 0.938693 0.766055 +vt 0.894135 0.781459 +vt 0.760542 0.843076 +vt 0.626275 0.927089 +vt 0.579693 0.976514 +vt 0.576755 0.998008 +vt 0.577588 0.998008 +vt 0.938693 0.766902 +vt 0.894135 0.786532 +vt 0.760542 0.859071 +vt 0.626275 0.950572 +vt 0.579693 0.998008 +vt 0.938693 0.767684 +vt 0.894135 0.791053 +vt 0.760542 0.872745 +vt 0.938693 0.768380 +vt 0.894135 0.794918 +vt 0.938693 0.768976 +vt 0.209045 0.883356 +vt 0.209045 0.845328 +vt 0.209879 0.845328 +vt 0.209879 0.883356 +vt 0.209045 0.805291 +vt 0.209879 0.805291 +vt 0.211984 0.845328 +vt 0.211984 0.883356 +vt 0.209045 0.918469 +vt 0.209879 0.918469 +vt 0.209045 0.764250 +vt 0.209879 0.764250 +vt 0.211984 0.805291 +vt 0.258566 0.835419 +vt 0.258566 0.868799 +vt 0.211984 0.918469 +vt 0.209045 0.949762 +vt 0.209879 0.949762 +vt 0.209045 0.723209 +vt 0.209879 0.723209 +vt 0.211984 0.764250 +vt 0.258566 0.800275 +vt 0.392833 0.805692 +vt 0.392833 0.825129 +vt 0.258566 0.899621 +vt 0.211984 0.949762 +vt 0.209045 0.976514 +vt 0.209879 0.976514 +vt 0.209045 0.683173 +vt 0.209879 0.683173 +vt 0.211984 0.723209 +vt 0.258566 0.764250 +vt 0.392833 0.785227 +vt 0.526425 0.775964 +vt 0.526425 0.781459 +vt 0.392833 0.843076 +vt 0.258566 0.927089 +vt 0.211984 0.976514 +vt 0.209045 0.998008 +vt 0.209879 0.998008 +vt 0.209045 0.645144 +vt 0.209879 0.645144 +vt 0.211984 0.683173 +vt 0.258566 0.728225 +vt 0.392833 0.764250 +vt 0.526425 0.770180 +vt 0.570984 0.766055 +vt 0.570984 0.766902 +vt 0.526425 0.786532 +vt 0.392833 0.859071 +vt 0.258566 0.950572 +vt 0.211984 0.998008 +vt 0.209045 0.610031 +vt 0.209879 0.610031 +vt 0.211984 0.645144 +vt 0.258566 0.693081 +vt 0.392833 0.743273 +vt 0.526425 0.764250 +vt 0.570984 0.765164 +vt 0.570984 0.767684 +vt 0.526425 0.791053 +vt 0.392833 0.872745 +vt 0.209045 0.578739 +vt 0.209879 0.578739 +vt 0.211984 0.610031 +vt 0.258566 0.659701 +vt 0.392833 0.722809 +vt 0.526425 0.758321 +vt 0.570984 0.764250 +vt 0.570984 0.768380 +vt 0.526425 0.794918 +vt 0.209045 0.551986 +vt 0.209879 0.551986 +vt 0.211984 0.578739 +vt 0.258566 0.628879 +vt 0.392833 0.703371 +vt 0.526425 0.752536 +vt 0.570984 0.763336 +vt 0.570984 0.768976 +vt 0.209045 0.530492 +vt 0.209879 0.530492 +vt 0.211984 0.551986 +vt 0.258566 0.601411 +vt 0.392833 0.685424 +vt 0.526425 0.747042 +vt 0.570984 0.762445 +vt 0.211984 0.530492 +vt 0.258566 0.577928 +vt 0.392833 0.669429 +vt 0.526425 0.741968 +vt 0.570984 0.761598 +vt 0.392833 0.655755 +vt 0.526425 0.737447 +vt 0.570984 0.760817 +vt 0.526425 0.733582 +vt 0.570984 0.760120 +vt 0.570984 0.759524 +vt 0.487721 0.191754 +vt 0.469954 0.159552 +vt 0.498004 0.145259 +vt 0.513778 0.183287 +vt 0.426261 0.211723 +vt 0.420085 0.184961 +vt 0.454345 0.126250 +vt 0.476511 0.110146 +vt 0.492274 0.228249 +vt 0.523369 0.223324 +vt 0.436995 0.237004 +vt 0.264246 0.264365 +vt 0.402064 0.164234 +vt 0.427496 0.101115 +vt 0.449758 0.078854 +vt 0.499221 0.264365 +vt 0.526619 0.264365 +vt 0.434599 0.264365 +vt 0.364377 0.126547 +vt 0.387921 0.140691 +vt 0.402361 0.074266 +vt 0.418465 0.052101 +vt 0.492274 0.300481 +vt 0.523369 0.305406 +vt 0.436995 0.291726 +vt 0.426261 0.317007 +vt 0.316888 0.102350 +vt 0.343650 0.108526 +vt 0.369059 0.058658 +vt 0.383352 0.030607 +vt 0.487720 0.336976 +vt 0.513778 0.345443 +vt 0.420085 0.343769 +vt 0.402064 0.364495 +vt 0.264246 0.094013 +vt 0.291607 0.091616 +vt 0.336858 0.040891 +vt 0.345324 0.014833 +vt 0.469953 0.369178 +vt 0.498004 0.383470 +vt 0.454345 0.402480 +vt 0.387921 0.388039 +vt 0.364377 0.402183 +vt 0.211605 0.102350 +vt 0.236886 0.091616 +vt 0.264246 0.029390 +vt 0.300363 0.036337 +vt 0.305288 0.005242 +vt 0.476511 0.418584 +vt 0.427496 0.427615 +vt 0.402361 0.454463 +vt 0.343650 0.420204 +vt 0.316888 0.426380 +vt 0.164116 0.126547 +vt 0.184843 0.108526 +vt 0.191635 0.040891 +vt 0.228130 0.036337 +vt 0.264246 0.001992 +vt 0.449758 0.449876 +vt 0.369059 0.470072 +vt 0.418465 0.476629 +vt 0.336858 0.487839 +vt 0.291607 0.437113 +vt 0.264246 0.434717 +vt 0.126429 0.164234 +vt 0.140572 0.140691 +vt 0.126132 0.074266 +vt 0.159434 0.058658 +vt 0.183169 0.014833 +vt 0.223205 0.005242 +vt 0.383352 0.498123 +vt 0.300363 0.492393 +vt 0.345324 0.513896 +vt 0.264246 0.499339 +vt 0.236886 0.437113 +vt 0.211605 0.426380 +vt 0.102232 0.211723 +vt 0.108408 0.184961 +vt 0.074148 0.126250 +vt 0.100996 0.101115 +vt 0.110028 0.052101 +vt 0.145141 0.030607 +vt 0.305287 0.523488 +vt 0.228130 0.492393 +vt 0.264246 0.526738 +vt 0.191635 0.487839 +vt 0.184843 0.420204 +vt 0.164116 0.402183 +vt 0.093894 0.264365 +vt 0.091498 0.237004 +vt 0.040772 0.191754 +vt 0.058539 0.159552 +vt 0.051982 0.110146 +vt 0.078735 0.078854 +vt 0.223205 0.523488 +vt 0.159434 0.470072 +vt 0.183169 0.513896 +vt 0.126132 0.454463 +vt 0.140572 0.388039 +vt 0.126429 0.364495 +vt 0.102232 0.317007 +vt 0.091498 0.291726 +vt 0.029272 0.264365 +vt 0.036218 0.228249 +vt 0.014715 0.183287 +vt 0.030489 0.145259 +vt 0.145141 0.498123 +vt 0.100996 0.427615 +vt 0.110028 0.476629 +vt 0.074148 0.402480 +vt 0.108408 0.343769 +vt 0.040772 0.336976 +vt 0.036218 0.300481 +vt 0.001874 0.264365 +vt 0.005124 0.223324 +vt 0.078735 0.449876 +vt 0.058539 0.369178 +vt 0.051982 0.418584 +vt 0.014715 0.345443 +vt 0.005124 0.305406 +vt 0.030489 0.383470 +vt 0.692856 0.265982 +vt 0.692460 0.266699 +vt 0.691350 0.266133 +vt 0.691488 0.265537 +vt 0.693436 0.266170 +vt 0.693085 0.267017 +vt 0.692113 0.267440 +vt 0.690949 0.266594 +vt 0.687881 0.264365 +vt 0.691727 0.264974 +vt 0.692957 0.265169 +vt 0.692607 0.267799 +vt 0.693650 0.265279 +vt 0.691515 0.268000 +vt 0.690634 0.267119 +vt 0.691673 0.264365 +vt 0.690110 0.267433 +vt 0.693112 0.264365 +vt 0.692011 0.268495 +vt 0.693722 0.264365 +vt 0.690956 0.268597 +vt 0.691488 0.263193 +vt 0.691727 0.263756 +vt 0.689648 0.267835 +vt 0.689053 0.267972 +vt 0.692957 0.263561 +vt 0.691314 0.269091 +vt 0.693650 0.263451 +vt 0.690214 0.268945 +vt 0.690949 0.262136 +vt 0.691350 0.262597 +vt 0.692856 0.262748 +vt 0.689497 0.269340 +vt 0.688490 0.268211 +vt 0.687881 0.268158 +vt 0.690532 0.269569 +vt 0.693436 0.262560 +vt 0.690110 0.261297 +vt 0.690634 0.261611 +vt 0.692113 0.261290 +vt 0.692460 0.262031 +vt 0.688685 0.269442 +vt 0.689686 0.269921 +vt 0.687881 0.269597 +vt 0.687271 0.268211 +vt 0.686709 0.267972 +vt 0.710162 0.295033 +vt 0.705089 0.298139 +vt 0.693085 0.261713 +vt 0.689053 0.260758 +vt 0.689648 0.260895 +vt 0.690956 0.260133 +vt 0.691515 0.260730 +vt 0.692606 0.260931 +vt 0.688794 0.270134 +vt 0.699595 0.300418 +vt 0.687076 0.269442 +vt 0.687881 0.270206 +vt 0.686264 0.269340 +vt 0.686113 0.267835 +vt 0.685651 0.267433 +vt 0.766707 0.372860 +vt 0.748759 0.383846 +vt 0.687881 0.260572 +vt 0.688490 0.260519 +vt 0.689497 0.259390 +vt 0.690214 0.259785 +vt 0.691314 0.259639 +vt 0.692011 0.260235 +vt 0.693810 0.301803 +vt 0.729322 0.391909 +vt 0.686967 0.270134 +vt 0.687881 0.302273 +vt 0.685547 0.268945 +vt 0.686075 0.269921 +vt 0.684806 0.268597 +vt 0.685127 0.267119 +vt 0.684812 0.266594 +vt 0.823251 0.450687 +vt 0.792430 0.469554 +vt 0.686709 0.260758 +vt 0.687271 0.260519 +vt 0.687881 0.259134 +vt 0.688685 0.259288 +vt 0.689686 0.258809 +vt 0.690532 0.259161 +vt 0.708858 0.396811 +vt 0.759049 0.483399 +vt 0.681951 0.301803 +vt 0.687881 0.398472 +vt 0.685229 0.269569 +vt 0.676166 0.300418 +vt 0.684246 0.268000 +vt 0.684447 0.269091 +vt 0.683648 0.267440 +vt 0.684411 0.266133 +vt 0.684273 0.265537 +vt 0.842100 0.476629 +vt 0.806986 0.498123 +vt 0.685651 0.261297 +vt 0.686113 0.260895 +vt 0.686264 0.259390 +vt 0.687076 0.259288 +vt 0.687881 0.258524 +vt 0.688794 0.258596 +vt 0.699595 0.228312 +vt 0.705089 0.230591 +vt 0.710162 0.233697 +vt 0.723906 0.491819 +vt 0.768958 0.513896 +vt 0.666903 0.396811 +vt 0.687881 0.494671 +vt 0.670672 0.298139 +vt 0.646439 0.391909 +vt 0.683750 0.268495 +vt 0.665599 0.295033 +vt 0.683301 0.266699 +vt 0.683155 0.267799 +vt 0.682905 0.265982 +vt 0.684034 0.264974 +vt 0.684088 0.264365 +vt 0.684812 0.262136 +vt 0.685127 0.261611 +vt 0.684806 0.260133 +vt 0.685547 0.259785 +vt 0.686075 0.258809 +vt 0.686967 0.258596 +vt 0.687881 0.226457 +vt 0.693810 0.226927 +vt 0.729322 0.136822 +vt 0.748759 0.144884 +vt 0.766707 0.155870 +vt 0.728922 0.523488 +vt 0.651855 0.491819 +vt 0.687881 0.526738 +vt 0.627002 0.383846 +vt 0.616712 0.483399 +vt 0.609054 0.372860 +vt 0.682676 0.267017 +vt 0.682804 0.265169 +vt 0.682325 0.266170 +vt 0.682649 0.264365 +vt 0.684034 0.263756 +vt 0.684273 0.263193 +vt 0.684411 0.262597 +vt 0.683648 0.261290 +vt 0.684246 0.260730 +vt 0.684447 0.259639 +vt 0.685229 0.259161 +vt 0.676166 0.228312 +vt 0.681951 0.226927 +vt 0.687881 0.130258 +vt 0.708858 0.131919 +vt 0.759049 0.045331 +vt 0.792429 0.059176 +vt 0.823251 0.078043 +vt 0.646840 0.523488 +vt 0.583332 0.469554 +vt 0.606803 0.513896 +vt 0.552510 0.450687 +vt 0.682111 0.265279 +vt 0.682804 0.263561 +vt 0.682039 0.264365 +vt 0.682905 0.262748 +vt 0.683301 0.262031 +vt 0.683155 0.260931 +vt 0.683750 0.260235 +vt 0.665599 0.233697 +vt 0.670672 0.230591 +vt 0.646439 0.136821 +vt 0.666903 0.131919 +vt 0.687881 0.034059 +vt 0.723906 0.036912 +vt 0.768958 0.014834 +vt 0.806986 0.030607 +vt 0.842099 0.052101 +vt 0.568775 0.498123 +vt 0.533662 0.476629 +vt 0.682111 0.263451 +vt 0.682325 0.262560 +vt 0.682676 0.261713 +vt 0.609054 0.155870 +vt 0.627002 0.144884 +vt 0.616712 0.045331 +vt 0.651855 0.036911 +vt 0.687881 0.001992 +vt 0.728922 0.005242 +vt 0.552510 0.078043 +vt 0.583332 0.059176 +vt 0.606803 0.014834 +vt 0.646840 0.005242 +vt 0.533662 0.052101 +vt 0.568775 0.030607 +vt 0.203275 0.530492 +vt 0.203275 0.568520 +vt 0.202441 0.568520 +vt 0.202441 0.530492 +vt 0.203275 0.608557 +vt 0.202441 0.608557 +vt 0.200336 0.568520 +vt 0.200336 0.530492 +vt 0.203275 0.649598 +vt 0.202441 0.649598 +vt 0.200336 0.608557 +vt 0.203275 0.690639 +vt 0.202441 0.690639 +vt 0.200336 0.649598 +vt 0.203275 0.730675 +vt 0.202441 0.730675 +vt 0.200336 0.690639 +vt 0.203275 0.768703 +vt 0.202441 0.768703 +vt 0.200336 0.730675 +vt 0.200336 0.768703 +vt 0.191627 0.768703 +vt 0.191627 0.730675 +vt 0.192461 0.730675 +vt 0.192461 0.768703 +vt 0.191627 0.690639 +vt 0.192461 0.690639 +vt 0.194566 0.730675 +vt 0.194566 0.768703 +vt 0.191627 0.649598 +vt 0.192461 0.649598 +vt 0.194566 0.690639 +vt 0.191627 0.608557 +vt 0.192461 0.608557 +vt 0.194566 0.649598 +vt 0.191627 0.568520 +vt 0.192461 0.568520 +vt 0.194566 0.608557 +vt 0.191627 0.530492 +vt 0.192461 0.530492 +vt 0.194566 0.568520 +vt 0.194566 0.530492 +vn 0.002433 -0.999997 -0.000789 +vn 0.002114 -0.999997 -0.001075 +vn 0.032307 -0.999342 -0.016460 +vn 0.034423 -0.999345 -0.011183 +vn 0.002070 -0.999997 -0.001505 +vn 0.029282 -0.999345 -0.021274 +vn 0.809021 0.000003 -0.587780 +vn 0.891005 0.000007 -0.453994 +vn 0.951058 0.000007 -0.309014 +vn 0.001678 -0.999997 -0.001678 +vn 0.025639 -0.999342 -0.025640 +vn 0.001504 -0.999997 -0.002070 +vn 0.021274 -0.999345 -0.029284 +vn 0.587789 0.000000 -0.809014 +vn 0.707115 0.000000 -0.707098 +vn 0.001077 -0.999997 -0.002114 +vn 0.016461 -0.999342 -0.032307 +vn 0.000791 -0.999997 -0.002434 +vn 0.011185 -0.999345 -0.034423 +vn 0.309022 0.000000 -0.951055 +vn 0.453999 -0.000000 -0.891002 +vn 0.000371 -0.999997 -0.002345 +vn 0.005672 -0.999342 -0.035816 +vn 0.000000 -0.999997 -0.002558 +vn -0.000000 -0.999345 -0.036194 +vn 0.000000 -0.000000 -1.000000 +vn 0.156435 0.000000 -0.987688 +vn -0.000371 -0.999997 -0.002343 +vn -0.005672 -0.999342 -0.035813 +vn -0.000791 -0.999997 -0.002434 +vn -0.011184 -0.999345 -0.034425 +vn -0.309023 0.000004 -0.951055 +vn -0.156435 0.000002 -0.987688 +vn -0.001077 -0.999997 -0.002114 +vn -0.016461 -0.999343 -0.032305 +vn -0.001504 -0.999997 -0.002069 +vn -0.021275 -0.999345 -0.029281 +vn -0.587777 -0.000000 -0.809023 +vn -0.453989 0.000002 -0.891008 +vn -0.001678 -0.999997 -0.001678 +vn -0.025640 -0.999343 -0.025636 +vn -0.002070 -0.999997 -0.001504 +vn -0.029282 -0.999345 -0.021270 +vn -0.809022 0.000000 -0.587778 +vn -0.707109 -0.000000 -0.707105 +vn -0.002114 -0.999997 -0.001075 +vn -0.032307 -0.999342 -0.016462 +vn -0.002433 -0.999997 -0.000790 +vn -0.034423 -0.999345 -0.011184 +vn -0.951058 0.000000 -0.309013 +vn -0.891011 0.000000 -0.453982 +vn -0.002343 -0.999997 -0.000373 +vn -0.035813 -0.999343 -0.005673 +vn -0.002558 -0.999997 0.000000 +vn -0.036194 -0.999345 0.000000 +vn -1.000000 0.000000 0.000000 +vn -0.987689 0.000000 -0.156429 +vn -0.002343 -0.999997 0.000374 +vn -0.035813 -0.999342 0.005673 +vn -0.002433 -0.999997 0.000789 +vn -0.034423 -0.999345 0.011181 +vn -0.951058 -0.000000 0.309013 +vn -0.987689 0.000000 0.156429 +vn -0.002114 -0.999997 0.001075 +vn -0.032307 -0.999343 0.016461 +vn -0.002070 -0.999997 0.001504 +vn -0.029282 -0.999345 0.021271 +vn -0.809016 0.000000 0.587787 +vn -0.891005 -0.000000 0.453993 +vn -0.001678 -0.999997 0.001678 +vn -0.025639 -0.999343 0.025638 +vn -0.001504 -0.999997 0.002069 +vn -0.021274 -0.999345 0.029280 +vn -0.587777 -0.000000 0.809023 +vn -0.707095 -0.000000 0.707119 +vn -0.001077 -0.999997 0.002114 +vn -0.016461 -0.999343 0.032304 +vn -0.000791 -0.999997 0.002434 +vn -0.011185 -0.999345 0.034422 +vn -0.309023 0.000003 0.951055 +vn -0.453999 0.000002 0.891002 +vn -0.000371 -0.999997 0.002342 +vn -0.005672 -0.999343 0.035810 +vn 0.000000 -0.999997 0.002559 +vn -0.000000 -0.999345 0.036194 +vn 0.000000 -0.000003 1.000000 +vn -0.156435 -0.000000 0.987688 +vn 0.000371 -0.999997 0.002344 +vn 0.005672 -0.999342 0.035817 +vn 0.000791 -0.999997 0.002433 +vn 0.011184 -0.999345 0.034424 +vn 0.309015 -0.000000 0.951057 +vn 0.156439 -0.000002 0.987688 +vn 0.001077 -0.999997 0.002116 +vn 0.016461 -0.999343 0.032303 +vn 0.001504 -0.999997 0.002070 +vn 0.021275 -0.999345 0.029279 +vn 0.587763 0.000003 0.809033 +vn 0.453977 0.000002 0.891013 +vn 0.001678 -0.999997 0.001680 +vn 0.025639 -0.999342 0.025642 +vn 0.002070 -0.999997 0.001506 +vn 0.029282 -0.999345 0.021279 +vn 0.809016 0.000007 0.587787 +vn 0.707095 0.000004 0.707119 +vn 0.002114 -0.999997 0.001077 +vn 0.032307 -0.999342 0.016462 +vn 0.002433 -0.999997 0.000792 +vn 0.034423 -0.999345 0.011187 +vn 0.951058 0.000000 0.309013 +vn 0.891006 0.000003 0.453992 +vn 0.002343 -0.999997 0.000371 +vn 0.035813 -0.999343 0.005676 +vn 0.002558 -0.999997 -0.000001 +vn 0.036194 -0.999345 0.000000 +vn 1.000000 0.000000 0.000001 +vn 0.987689 0.000000 0.156433 +vn 0.002343 -0.999997 -0.000370 +vn 0.035813 -0.999342 -0.005672 +vn 0.987689 0.000003 -0.156432 +vn 0.000330 -1.000000 -0.000164 +vn 0.000212 -1.000000 -0.000152 +vn 0.000250 -1.000000 -0.000081 +vn 0.000000 -1.000000 0.000000 +vn 0.000262 -1.000000 -0.000262 +vn 0.000154 -1.000000 -0.000212 +vn 0.000168 -1.000000 -0.000330 +vn 0.000081 -1.000000 -0.000250 +vn 0.000058 -1.000000 -0.000366 +vn 0.000000 -1.000000 -0.000263 +vn -0.000058 -1.000000 -0.000367 +vn -0.000081 -1.000000 -0.000251 +vn -0.000168 -1.000000 -0.000331 +vn -0.000154 -1.000000 -0.000212 +vn -0.000262 -1.000000 -0.000261 +vn -0.000212 -1.000000 -0.000154 +vn -0.000330 -1.000000 -0.000167 +vn -0.000250 -1.000000 -0.000079 +vn -0.000366 -1.000000 -0.000055 +vn -0.000263 -1.000000 0.000000 +vn -0.000366 -1.000000 0.000056 +vn -0.000250 -1.000000 0.000079 +vn -0.000330 -1.000000 0.000167 +vn -0.000212 -1.000000 0.000155 +vn -0.000262 -1.000000 0.000263 +vn -0.000154 -1.000000 0.000212 +vn -0.000168 -1.000000 0.000330 +vn -0.000081 -1.000000 0.000250 +vn -0.000058 -1.000000 0.000365 +vn 0.000000 -1.000000 0.000263 +vn 0.000058 -1.000000 0.000366 +vn 0.000081 -1.000000 0.000248 +vn 0.000168 -1.000000 0.000330 +vn 0.000154 -1.000000 0.000211 +vn 0.000262 -1.000000 0.000261 +vn 0.000212 -1.000000 0.000154 +vn 0.000330 -1.000000 0.000168 +vn 0.000250 -1.000000 0.000083 +vn 0.000366 -1.000000 0.000061 +vn 0.000263 -1.000000 -0.000000 +vn 0.000366 -1.000000 -0.000061 +vn 0.022952 0.999709 -0.007454 +vn 0.019935 0.999750 -0.010101 +vn 0.003111 0.999994 -0.001517 +vn 0.002362 0.999997 -0.000582 +vn 0.019524 0.999708 -0.014225 +vn 0.002009 0.999997 -0.001582 +vn 0.000000 1.000000 -0.000030 +vn 0.015820 0.999750 -0.015773 +vn 0.002469 0.999993 -0.002658 +vn 0.014184 0.999711 -0.019426 +vn 0.001460 0.999997 -0.002028 +vn 0.010157 0.999752 -0.019804 +vn 0.001585 0.999995 -0.002937 +vn 0.007457 0.999708 -0.022995 +vn 0.000767 0.999997 -0.002346 +vn 0.003500 0.999748 -0.022168 +vn 0.000546 0.999994 -0.003519 +vn -0.000000 0.999710 -0.024092 +vn -0.000000 0.999997 -0.002514 +vn -0.003500 0.999752 -0.022009 +vn -0.000546 0.999994 -0.003422 +vn -0.007457 0.999710 -0.022904 +vn -0.000767 0.999997 -0.002326 +vn -0.010157 0.999750 -0.019905 +vn -0.001585 0.999994 -0.003033 +vn -0.014185 0.999708 -0.019557 +vn -0.001460 0.999997 -0.002104 +vn -0.015820 0.999750 -0.015772 +vn -0.002469 0.999994 -0.002638 +vn -0.019524 0.999710 -0.014102 +vn -0.002009 0.999997 -0.001524 +vn -0.019935 0.999751 -0.010068 +vn -0.003111 0.999994 -0.001517 +vn -0.022952 0.999708 -0.007568 +vn -0.002362 0.999997 -0.000654 +vn -0.022098 0.999749 -0.003628 +vn -0.003448 0.999994 -0.000351 +vn -0.024133 0.999709 -0.000093 +vn -0.002483 0.999997 -0.000025 +vn -0.022098 0.999750 0.003508 +vn -0.003448 0.999994 0.000283 +vn -0.022952 0.999707 0.007654 +vn -0.002362 0.999997 0.000658 +vn -0.019935 0.999749 0.010204 +vn -0.003111 0.999994 0.001575 +vn -0.019524 0.999709 0.014172 +vn -0.002009 0.999997 0.001473 +vn -0.015820 0.999750 0.015772 +vn -0.002469 0.999994 0.002525 +vn -0.014185 0.999708 0.019580 +vn -0.001460 0.999997 0.002101 +vn -0.010157 0.999749 0.019974 +vn -0.001585 0.999994 0.003129 +vn -0.007457 0.999709 0.022964 +vn -0.000767 0.999997 0.002373 +vn -0.003500 0.999749 0.022134 +vn -0.000546 0.999994 0.003459 +vn 0.000000 0.999710 0.024101 +vn 0.000000 0.999997 0.002476 +vn 0.003500 0.999750 0.022068 +vn 0.000546 0.999994 0.003442 +vn 0.007457 0.999708 0.022986 +vn 0.000767 0.999997 0.002305 +vn 0.010157 0.999750 0.019940 +vn 0.001585 0.999995 0.002939 +vn 0.014185 0.999708 0.019557 +vn 0.001460 0.999997 0.001910 +vn 0.015820 0.999751 0.015739 +vn 0.002469 0.999994 0.002411 +vn 0.019524 0.999710 0.014102 +vn 0.002009 0.999997 0.001394 +vn 0.019935 0.999751 0.010068 +vn 0.003111 0.999994 0.001517 +vn 0.022952 0.999709 0.007490 +vn 0.002362 0.999997 0.000654 +vn 0.022098 0.999750 0.003512 +vn 0.003448 0.999994 0.000341 +vn 0.024133 0.999709 0.000038 +vn 0.002483 0.999997 0.000018 +vn 0.022098 0.999750 -0.003432 +vn 0.003448 0.999994 -0.000259 +vn 0.771793 0.584338 0.250769 +vn 0.801540 0.584308 0.126957 +vn 0.800437 0.585856 0.126777 +vn 0.770734 0.585887 0.250411 +vn 0.811511 0.584338 0.000001 +vn 0.810394 0.585885 0.000017 +vn 0.656526 0.584337 0.476994 +vn 0.723082 0.584309 0.368424 +vn 0.722083 0.585853 0.367929 +vn 0.655623 0.585883 0.476339 +vn 0.476993 0.584337 0.656527 +vn 0.573840 0.584308 0.573840 +vn 0.573052 0.585858 0.573047 +vn 0.476333 0.585885 0.655627 +vn 0.250771 0.584338 0.771792 +vn 0.368427 0.584308 0.723081 +vn 0.367915 0.585855 0.722089 +vn 0.250423 0.585882 0.770734 +vn 0.000001 0.584338 0.811511 +vn 0.126952 0.584308 0.801541 +vn 0.126778 0.585857 0.800437 +vn 0.000001 0.585886 0.810393 +vn -0.250771 0.584339 0.771791 +vn -0.126951 0.584309 0.801540 +vn -0.126776 0.585857 0.800437 +vn -0.250424 0.585886 0.770730 +vn -0.476993 0.584337 0.656528 +vn -0.368427 0.584308 0.723081 +vn -0.367919 0.585859 0.722084 +vn -0.476337 0.585888 0.655621 +vn -0.656526 0.584337 0.476994 +vn -0.573839 0.584307 0.573841 +vn -0.573054 0.585861 0.573041 +vn -0.655623 0.585883 0.476339 +vn -0.771793 0.584338 0.250769 +vn -0.723082 0.584309 0.368424 +vn -0.722083 0.585853 0.367930 +vn -0.770734 0.585887 0.250411 +vn -0.811511 0.584338 0.000000 +vn -0.801540 0.584308 0.126956 +vn -0.800439 0.585858 0.126761 +vn -0.810394 0.585885 -0.000000 +vn -0.771793 0.584338 -0.250769 +vn -0.801540 0.584308 -0.126956 +vn -0.800439 0.585858 -0.126761 +vn -0.770734 0.585887 -0.250411 +vn -0.656526 0.584337 -0.476994 +vn -0.723081 0.584308 -0.368426 +vn -0.722083 0.585853 -0.367929 +vn -0.655623 0.585883 -0.476339 +vn -0.476993 0.584338 -0.656527 +vn -0.573840 0.584308 -0.573839 +vn -0.573052 0.585858 -0.573047 +vn -0.476333 0.585885 -0.655626 +vn -0.250770 0.584338 -0.771792 +vn -0.368427 0.584309 -0.723080 +vn -0.367916 0.585857 -0.722086 +vn -0.250424 0.585885 -0.770731 +vn -0.000000 0.584338 -0.811511 +vn -0.126952 0.584308 -0.801541 +vn -0.126778 0.585857 -0.800437 +vn -0.000001 0.585884 -0.810395 +vn 0.250770 0.584338 -0.771792 +vn 0.126952 0.584308 -0.801541 +vn 0.126775 0.585854 -0.800439 +vn 0.250423 0.585884 -0.770732 +vn 0.476993 0.584338 -0.656527 +vn 0.368428 0.584311 -0.723078 +vn 0.367919 0.585859 -0.722084 +vn 0.476330 0.585883 -0.655630 +vn 0.656525 0.584337 -0.476996 +vn 0.573838 0.584307 -0.573843 +vn 0.573042 0.585851 -0.573063 +vn 0.655623 0.585884 -0.476339 +vn 0.771795 0.584339 -0.250760 +vn 0.723082 0.584309 -0.368421 +vn 0.722093 0.585860 -0.367899 +vn 0.770731 0.585884 -0.250427 +vn 0.801540 0.584308 -0.126953 +vn 0.800436 0.585855 -0.126794 +vn 0.776519 0.577374 0.252307 +vn 0.806447 0.577347 0.127728 +vn 0.802480 0.582984 0.127102 +vn 0.772698 0.583013 0.251065 +vn 0.816480 0.577374 0.000000 +vn 0.812463 0.583013 0.000000 +vn 0.660547 0.577374 0.479914 +vn 0.727506 0.577346 0.370683 +vn 0.723929 0.582984 0.368859 +vn 0.657296 0.583013 0.477553 +vn 0.479915 0.577374 0.660546 +vn 0.577352 0.577347 0.577352 +vn 0.574513 0.582984 0.574513 +vn 0.477553 0.583013 0.657297 +vn 0.252306 0.577374 0.776519 +vn 0.370683 0.577346 0.727506 +vn 0.368859 0.582984 0.723929 +vn 0.251065 0.583013 0.772698 +vn 0.000000 0.577373 0.816480 +vn 0.127729 0.577346 0.806447 +vn 0.127101 0.582984 0.802481 +vn 0.000000 0.583013 0.812463 +vn -0.252306 0.577374 0.776519 +vn -0.127728 0.577347 0.806447 +vn -0.127100 0.582984 0.802480 +vn -0.251065 0.583013 0.772698 +vn -0.479915 0.577373 0.660547 +vn -0.370682 0.577346 0.727507 +vn -0.368859 0.582983 0.723929 +vn -0.477553 0.583013 0.657297 +vn -0.660546 0.577373 0.479915 +vn -0.577352 0.577347 0.577352 +vn -0.574512 0.582984 0.574514 +vn -0.657296 0.583013 0.477555 +vn -0.776519 0.577374 0.252305 +vn -0.727506 0.577346 0.370684 +vn -0.723928 0.582984 0.368860 +vn -0.772698 0.583014 0.251063 +vn -0.816480 0.577374 0.000000 +vn -0.806447 0.577347 0.127728 +vn -0.802480 0.582984 0.127102 +vn -0.812463 0.583013 0.000000 +vn -0.776519 0.577374 -0.252306 +vn -0.806447 0.577346 -0.127729 +vn -0.802481 0.582984 -0.127103 +vn -0.772698 0.583013 -0.251064 +vn -0.660547 0.577374 -0.479914 +vn -0.727506 0.577346 -0.370683 +vn -0.723928 0.582984 -0.368859 +vn -0.657297 0.583013 -0.477553 +vn -0.479915 0.577374 -0.660546 +vn -0.577352 0.577346 -0.577352 +vn -0.574513 0.582984 -0.574512 +vn -0.477553 0.583013 -0.657296 +vn -0.252306 0.577373 -0.776519 +vn -0.370683 0.577346 -0.727506 +vn -0.368860 0.582984 -0.723928 +vn -0.251065 0.583013 -0.772698 +vn 0.000000 0.577374 -0.816480 +vn -0.127729 0.577346 -0.806447 +vn -0.127100 0.582984 -0.802481 +vn -0.000000 0.583013 -0.812463 +vn 0.252306 0.577374 -0.776519 +vn 0.127729 0.577347 -0.806447 +vn 0.127100 0.582984 -0.802480 +vn 0.251065 0.583014 -0.772698 +vn 0.479915 0.577373 -0.660547 +vn 0.370683 0.577347 -0.727506 +vn 0.368860 0.582985 -0.723927 +vn 0.477553 0.583013 -0.657296 +vn 0.660546 0.577374 -0.479915 +vn 0.577352 0.577346 -0.577353 +vn 0.574512 0.582984 -0.574513 +vn 0.657296 0.583013 -0.477554 +vn 0.776519 0.577374 -0.252306 +vn 0.727507 0.577347 -0.370682 +vn 0.723929 0.582985 -0.368858 +vn 0.772699 0.583014 -0.251061 +vn 0.806447 0.577347 -0.127728 +vn 0.802481 0.582984 -0.127100 +vn 0.745059 0.548424 0.379628 +vn 0.676488 0.548447 0.491497 +vn 0.795259 0.548447 0.258396 +vn 0.591283 0.548425 0.591282 +vn 0.491497 0.548447 0.676488 +vn 0.379627 0.548424 0.745060 +vn 0.258395 0.548447 0.795259 +vn 0.130811 0.548425 0.825905 +vn 0.000000 0.548447 0.836185 +vn -0.130810 0.548424 0.825906 +vn -0.258396 0.548448 0.795259 +vn -0.379627 0.548424 0.745060 +vn -0.491497 0.548447 0.676489 +vn -0.591283 0.548425 0.591282 +vn -0.676488 0.548447 0.491497 +vn -0.745059 0.548424 0.379628 +vn -0.795259 0.548447 0.258396 +vn -0.825905 0.548425 0.130809 +vn -0.836185 0.548448 0.000000 +vn -0.825905 0.548425 -0.130809 +vn -0.795259 0.548447 -0.258395 +vn -0.745060 0.548425 -0.379627 +vn -0.676488 0.548447 -0.491498 +vn -0.591282 0.548424 -0.591284 +vn -0.491497 0.548447 -0.676489 +vn -0.379627 0.548425 -0.745060 +vn -0.258396 0.548448 -0.795259 +vn -0.130811 0.548425 -0.825905 +vn 0.000000 0.548447 -0.836185 +vn 0.130811 0.548424 -0.825905 +vn 0.258395 0.548447 -0.795259 +vn 0.379626 0.548424 -0.745060 +vn 0.491497 0.548447 -0.676489 +vn 0.591282 0.548424 -0.591284 +vn 0.676488 0.548448 -0.491497 +vn 0.745060 0.548425 -0.379625 +vn 0.795259 0.548448 -0.258395 +vn 0.825905 0.548425 -0.130809 +vn 0.836185 0.548448 0.000001 +vn 0.825905 0.548425 0.130810 +s 1 +g pCylinder5 +usemtl phong2SG +f 1689/2307/1689 1809/2308/1690 2011/2309/1691 1810/2310/1692 +f 1809/2308/1690 1690/2313/1693 1811/2314/1694 2011/2309/1691 +f 2011/2114/1691 1811/2117/1694 1788/2118/1695 1812/2115/1696 +f 1810/2113/1692 2011/2114/1691 1812/2115/1696 1789/2116/1697 +f 1690/2313/1693 1813/2320/1698 2012/2321/1699 1811/2314/1694 +f 1813/2320/1698 1691/2327/1700 1814/2328/1701 2012/2321/1699 +f 2012/2123/1699 1814/2131/1701 1787/2132/1702 1815/2124/1703 +f 1811/2117/1694 2012/2123/1699 1815/2124/1703 1788/2118/1695 +f 1691/2327/1700 1816/2335/1704 2013/2336/1705 1814/2328/1701 +f 1816/2335/1704 1692/2343/1706 1817/2344/1707 2013/2336/1705 +f 2013/2621/1705 1817/2622/1707 1786/2623/1708 1818/2624/1709 +f 1814/2131/1701 2013/2141/1705 1818/2142/1709 1787/2132/1702 +f 1692/2343/1706 1819/2353/1710 2014/2354/1711 1817/2344/1707 +f 1819/2353/1710 1693/2352/1712 1820/2364/1713 2014/2354/1711 +f 2014/2625/1711 1820/2629/1713 1785/2630/1714 1821/2626/1715 +f 1817/2622/1707 2014/2625/1711 1821/2626/1715 1786/2623/1708 +f 1693/2352/1712 1822/2363/1716 2015/2376/1717 1820/2364/1713 +f 1822/2363/1716 1694/2362/1718 1823/2375/1719 2015/2376/1717 +f 2015/2632/1717 1823/2635/1719 1784/2636/1720 1824/2633/1721 +f 1820/2629/1713 2015/2632/1717 1824/2633/1721 1785/2630/1714 +f 1694/2362/1718 1825/2374/1722 2016/2388/1723 1823/2375/1719 +f 1825/2374/1722 1695/2373/1724 1826/2387/1725 2016/2388/1723 +f 2016/2248/1723 1826/2236/1725 1783/2237/1726 1827/2249/1727 +f 1823/2635/1719 2016/2638/1723 1827/2639/1727 1784/2636/1720 +f 1695/2373/1724 1828/2386/1728 2017/2400/1729 1826/2387/1725 +f 1828/2386/1728 1696/2385/1730 1829/2399/1731 2017/2400/1729 +f 2017/2226/1729 1829/2218/1731 1782/2219/1732 1830/2227/1733 +f 1826/2236/1725 2017/2226/1729 1830/2227/1733 1783/2237/1726 +f 1696/2385/1730 1831/2398/1734 2018/2412/1735 1829/2399/1731 +f 1831/2398/1734 1697/2397/1736 1832/2411/1737 2018/2412/1735 +f 2018/2210/1735 1832/2211/1737 1781/2212/1738 1833/2213/1739 +f 1829/2218/1731 2018/2210/1735 1833/2213/1739 1782/2219/1732 +f 1697/2397/1736 1834/2410/1740 2019/2421/1741 1832/2411/1737 +f 1834/2410/1740 1698/2409/1742 1835/2420/1743 2019/2421/1741 +f 2019/2214/1741 1835/2220/1743 1780/2221/1744 1836/2215/1745 +f 1832/2211/1737 2019/2214/1741 1836/2215/1745 1781/2212/1738 +f 1698/2409/1742 1837/2419/1746 2020/2426/1747 1835/2420/1743 +f 1837/2419/1746 1699/2418/1748 1838/2425/1749 2020/2426/1747 +f 2020/2228/1747 1838/2238/1749 1779/2239/1750 1839/2229/1751 +f 1835/2220/1743 2020/2228/1747 1839/2229/1751 1780/2221/1744 +f 1699/2418/1748 1840/2423/1752 2021/2427/1753 1838/2425/1749 +f 1840/2423/1752 1700/2416/1754 1841/2424/1755 2021/2427/1753 +f 2021/2250/1753 1841/2262/1755 1778/2263/1756 1842/2251/1757 +f 1838/2238/1749 2021/2250/1753 1842/2251/1757 1779/2239/1750 +f 1700/2416/1754 1843/2414/1758 2022/2422/1759 1841/2424/1755 +f 1843/2414/1758 1701/2404/1760 1844/2415/1761 2022/2422/1759 +f 2022/2272/1759 1844/2281/1761 1777/2282/1762 1845/2273/1763 +f 1841/2262/1755 2022/2272/1759 1845/2273/1763 1778/2263/1756 +f 1701/2404/1760 1846/2402/1764 2023/2413/1765 1844/2415/1761 +f 1846/2402/1764 1702/2392/1766 1847/2403/1767 2023/2413/1765 +f 2023/2642/1765 1847/2643/1767 1776/2644/1768 1848/2645/1769 +f 1844/2281/1761 2023/2289/1765 1848/2290/1769 1777/2282/1762 +f 1702/2392/1766 1849/2390/1770 2024/2401/1771 1847/2403/1767 +f 1849/2390/1770 1703/2380/1772 1850/2391/1773 2024/2401/1771 +f 2024/2646/1771 1850/2650/1773 1775/2651/1774 1851/2647/1775 +f 1847/2643/1767 2024/2646/1771 1851/2647/1775 1776/2644/1768 +f 1703/2380/1772 1852/2378/1776 2025/2389/1777 1850/2391/1773 +f 1852/2378/1776 1704/2368/1778 1853/2379/1779 2025/2389/1777 +f 2025/2653/1777 1853/2656/1779 1774/2657/1780 1854/2654/1781 +f 1850/2650/1773 2025/2653/1777 1854/2654/1781 1775/2651/1774 +f 1704/2368/1778 1855/2366/1782 2026/2377/1783 1853/2379/1779 +f 1855/2366/1782 1705/2357/1784 1856/2367/1785 2026/2377/1783 +f 2026/2197/1783 1856/2190/1785 1773/2191/1786 1857/2198/1787 +f 1853/2656/1779 2026/2659/1783 1857/2660/1787 1774/2657/1780 +f 1705/2357/1784 1858/2356/1788 2027/2365/1789 1856/2367/1785 +f 1858/2356/1788 1706/2347/1790 1859/2355/1791 2027/2365/1789 +f 2027/2182/1789 1859/2173/1791 1772/2174/1792 1860/2183/1793 +f 1856/2190/1785 2027/2182/1789 1860/2183/1793 1773/2191/1786 +f 1706/2347/1790 1861/2345/1794 2028/2346/1795 1859/2355/1791 +f 1861/2345/1794 1707/2337/1796 1862/2338/1797 2028/2346/1795 +f 2028/2163/1795 1862/2151/1797 1771/2152/1798 1863/2164/1799 +f 1859/2173/1791 2028/2163/1795 1863/2164/1799 1772/2174/1792 +f 1707/2337/1796 1864/2329/1800 2029/2330/1801 1862/2338/1797 +f 1864/2329/1800 1708/2322/1802 1865/2323/1803 2029/2330/1801 +f 2029/2139/1801 1865/2129/1803 1790/2130/1804 1866/2140/1805 +f 1862/2151/1797 2029/2139/1801 1866/2140/1805 1771/2152/1798 +f 1708/2322/1802 1867/2315/1806 2030/2316/1807 1865/2323/1803 +f 1867/2315/1806 1689/2307/1689 1810/2310/1692 2030/2316/1807 +f 2030/2121/1807 1810/2113/1692 1789/2116/1697 1868/2122/1808 +f 1865/2129/1803 2030/2121/1807 1868/2122/1808 1790/2130/1804 +f 1690/2313/1693 1809/2308/1690 2031/2312/1809 1869/2319/1810 +f 1689/2307/1689 1870/2311/1811 2031/2312/1809 1809/2308/1690 +f 1729/2318/1812 1869/2319/1810 2031/2312/1809 1870/2311/1811 +f 1691/2327/1700 1813/2320/1698 2032/2326/1813 1871/2325/1814 +f 1690/2313/1693 1869/2319/1810 2032/2326/1813 1813/2320/1698 +f 1729/2318/1812 1871/2325/1814 2032/2326/1813 1869/2319/1810 +f 1692/2343/1706 1816/2335/1704 2033/2334/1815 1872/2333/1816 +f 1691/2327/1700 1871/2325/1814 2033/2334/1815 1816/2335/1704 +f 1729/2318/1812 1872/2333/1816 2033/2334/1815 1871/2325/1814 +f 1693/2352/1712 1819/2353/1710 2034/2342/1817 1873/2341/1818 +f 1692/2343/1706 1872/2333/1816 2034/2342/1817 1819/2353/1710 +f 1729/2318/1812 1873/2341/1818 2034/2342/1817 1872/2333/1816 +f 1694/2362/1718 1822/2363/1716 2035/2351/1819 1874/2350/1820 +f 1693/2352/1712 1873/2341/1818 2035/2351/1819 1822/2363/1716 +f 1729/2318/1812 1874/2350/1820 2035/2351/1819 1873/2341/1818 +f 1695/2373/1724 1825/2374/1722 2036/2361/1821 1875/2360/1822 +f 1694/2362/1718 1874/2350/1820 2036/2361/1821 1825/2374/1722 +f 1729/2318/1812 1875/2360/1822 2036/2361/1821 1874/2350/1820 +f 1696/2385/1730 1828/2386/1728 2037/2372/1823 1876/2371/1824 +f 1695/2373/1724 1875/2360/1822 2037/2372/1823 1828/2386/1728 +f 1729/2318/1812 1876/2371/1824 2037/2372/1823 1875/2360/1822 +f 1697/2397/1736 1831/2398/1734 2038/2384/1825 1877/2383/1826 +f 1696/2385/1730 1876/2371/1824 2038/2384/1825 1831/2398/1734 +f 1729/2318/1812 1877/2383/1826 2038/2384/1825 1876/2371/1824 +f 1698/2409/1742 1834/2410/1740 2039/2396/1827 1878/2395/1828 +f 1697/2397/1736 1877/2383/1826 2039/2396/1827 1834/2410/1740 +f 1729/2318/1812 1878/2395/1828 2039/2396/1827 1877/2383/1826 +f 1699/2418/1748 1837/2419/1746 2040/2408/1829 1879/2407/1830 +f 1698/2409/1742 1878/2395/1828 2040/2408/1829 1837/2419/1746 +f 1729/2318/1812 1879/2407/1830 2040/2408/1829 1878/2395/1828 +f 1700/2416/1754 1840/2423/1752 2041/2417/1831 1880/2406/1832 +f 1699/2418/1748 1879/2407/1830 2041/2417/1831 1840/2423/1752 +f 1729/2318/1812 1880/2406/1832 2041/2417/1831 1879/2407/1830 +f 1701/2404/1760 1843/2414/1758 2042/2405/1833 1881/2394/1834 +f 1700/2416/1754 1880/2406/1832 2042/2405/1833 1843/2414/1758 +f 1729/2318/1812 1881/2394/1834 2042/2405/1833 1880/2406/1832 +f 1702/2392/1766 1846/2402/1764 2043/2393/1835 1882/2382/1836 +f 1701/2404/1760 1881/2394/1834 2043/2393/1835 1846/2402/1764 +f 1729/2318/1812 1882/2382/1836 2043/2393/1835 1881/2394/1834 +f 1703/2380/1772 1849/2390/1770 2044/2381/1837 1883/2370/1838 +f 1702/2392/1766 1882/2382/1836 2044/2381/1837 1849/2390/1770 +f 1729/2318/1812 1883/2370/1838 2044/2381/1837 1882/2382/1836 +f 1704/2368/1778 1852/2378/1776 2045/2369/1839 1884/2359/1840 +f 1703/2380/1772 1883/2370/1838 2045/2369/1839 1852/2378/1776 +f 1729/2318/1812 1884/2359/1840 2045/2369/1839 1883/2370/1838 +f 1705/2357/1784 1855/2366/1782 2046/2358/1841 1885/2349/1842 +f 1704/2368/1778 1884/2359/1840 2046/2358/1841 1855/2366/1782 +f 1729/2318/1812 1885/2349/1842 2046/2358/1841 1884/2359/1840 +f 1706/2347/1790 1858/2356/1788 2047/2348/1843 1886/2340/1844 +f 1705/2357/1784 1885/2349/1842 2047/2348/1843 1858/2356/1788 +f 1729/2318/1812 1886/2340/1844 2047/2348/1843 1885/2349/1842 +f 1707/2337/1796 1861/2345/1794 2048/2339/1845 1887/2332/1846 +f 1706/2347/1790 1886/2340/1844 2048/2339/1845 1861/2345/1794 +f 1729/2318/1812 1887/2332/1846 2048/2339/1845 1886/2340/1844 +f 1708/2322/1802 1864/2329/1800 2049/2331/1847 1888/2324/1848 +f 1707/2337/1796 1887/2332/1846 2049/2331/1847 1864/2329/1800 +f 1729/2318/1812 1888/2324/1848 2049/2331/1847 1887/2332/1846 +f 1689/2307/1689 1867/2315/1806 2050/2317/1849 1870/2311/1811 +f 1708/2322/1802 1888/2324/1848 2050/2317/1849 1867/2315/1806 +f 1729/2318/1812 1870/2311/1811 2050/2317/1849 1888/2324/1848 +f 1709/2428/1850 1889/2429/1851 2051/2430/1852 1890/2431/1853 +f 1710/2434/1854 1891/2435/1855 2051/2430/1852 1889/2429/1851 +f 1730/2436/1856 1890/2431/1853 2051/2430/1852 1891/2435/1855 +f 1710/2434/1854 1892/2441/1857 2052/2442/1858 1891/2435/1855 +f 1711/2448/1859 1893/2444/1860 2052/2442/1858 1892/2441/1857 +f 1730/2436/1856 1891/2435/1855 2052/2442/1858 1893/2444/1860 +f 1711/2448/1859 1894/2456/1861 2053/2451/1862 1893/2444/1860 +f 1712/2460/1863 1895/2452/1864 2053/2451/1862 1894/2456/1861 +f 1730/2436/1856 1893/2444/1860 2053/2451/1862 1895/2452/1864 +f 1712/2460/1863 1896/2469/1865 2054/2461/1866 1895/2452/1864 +f 1713/2471/1867 1897/2462/1868 2054/2461/1866 1896/2469/1865 +f 1730/2436/1856 1895/2452/1864 2054/2461/1866 1897/2462/1868 +f 1713/2471/1867 1898/2484/1869 2055/2472/1870 1897/2462/1868 +f 1714/2486/1871 1899/2473/1872 2055/2472/1870 1898/2484/1869 +f 1730/2436/1856 1897/2462/1868 2055/2472/1870 1899/2473/1872 +f 1714/2486/1871 1900/2501/1873 2056/2487/1874 1899/2473/1872 +f 1715/2503/1875 1901/2488/1876 2056/2487/1874 1900/2501/1873 +f 1730/2436/1856 1899/2473/1872 2056/2487/1874 1901/2488/1876 +f 1715/2503/1875 1902/2520/1877 2057/2504/1878 1901/2488/1876 +f 1716/2522/1879 1903/2505/1880 2057/2504/1878 1902/2520/1877 +f 1730/2436/1856 1901/2488/1876 2057/2504/1878 1903/2505/1880 +f 1716/2522/1879 1904/2544/1881 2058/2523/1882 1903/2505/1880 +f 1717/2546/1883 1905/2524/1884 2058/2523/1882 1904/2544/1881 +f 1730/2436/1856 1903/2505/1880 2058/2523/1882 1905/2524/1884 +f 1717/2546/1883 1906/2567/1885 2059/2547/1886 1905/2524/1884 +f 1718/2569/1887 1907/2548/1888 2059/2547/1886 1906/2567/1885 +f 1730/2436/1856 1905/2524/1884 2059/2547/1886 1907/2548/1888 +f 1718/2569/1887 1908/2589/1889 2060/2570/1890 1907/2548/1888 +f 1719/2591/1891 1909/2571/1892 2060/2570/1890 1908/2589/1889 +f 1730/2436/1856 1907/2548/1888 2060/2570/1890 1909/2571/1892 +f 1719/2591/1891 1910/2592/1893 2061/2572/1894 1909/2571/1892 +f 1720/2573/1895 1911/2549/1896 2061/2572/1894 1910/2592/1893 +f 1730/2436/1856 1909/2571/1892 2061/2572/1894 1911/2549/1896 +f 1720/2573/1895 1912/2574/1897 2062/2550/1898 1911/2549/1896 +f 1721/2551/1899 1913/2527/1900 2062/2550/1898 1912/2574/1897 +f 1730/2436/1856 1911/2549/1896 2062/2550/1898 1913/2527/1900 +f 1721/2551/1899 1914/2552/1901 2063/2528/1902 1913/2527/1900 +f 1722/2529/1903 1915/2508/1904 2063/2528/1902 1914/2552/1901 +f 1730/2436/1856 1913/2527/1900 2063/2528/1902 1915/2508/1904 +f 1722/2529/1903 1916/2530/1905 2064/2509/1906 1915/2508/1904 +f 1723/2510/1907 1917/2491/1908 2064/2509/1906 1916/2530/1905 +f 1730/2436/1856 1915/2508/1904 2064/2509/1906 1917/2491/1908 +f 1723/2510/1907 1918/2511/1909 2065/2492/1910 1917/2491/1908 +f 1724/2493/1911 1919/2477/1912 2065/2492/1910 1918/2511/1909 +f 1730/2436/1856 1917/2491/1908 2065/2492/1910 1919/2477/1912 +f 1724/2493/1911 1920/2494/1913 2066/2478/1914 1919/2477/1912 +f 1725/2479/1915 1921/2465/1916 2066/2478/1914 1920/2494/1913 +f 1730/2436/1856 1919/2477/1912 2066/2478/1914 1921/2465/1916 +f 1725/2479/1915 1922/2480/1917 2067/2466/1918 1921/2465/1916 +f 1726/2467/1919 1923/2457/1920 2067/2466/1918 1922/2480/1917 +f 1730/2436/1856 1921/2465/1916 2067/2466/1918 1923/2457/1920 +f 1726/2467/1919 1924/2468/1921 2068/2458/1922 1923/2457/1920 +f 1727/2459/1923 1925/2449/1924 2068/2458/1922 1924/2468/1921 +f 1730/2436/1856 1923/2457/1920 2068/2458/1922 1925/2449/1924 +f 1727/2459/1923 1926/2453/1925 2069/2450/1926 1925/2449/1924 +f 1728/2445/1927 1927/2443/1928 2069/2450/1926 1926/2453/1925 +f 1730/2436/1856 1925/2449/1924 2069/2450/1926 1927/2443/1928 +f 1728/2445/1927 1928/2438/1929 2070/2437/1930 1927/2443/1928 +f 1709/2428/1850 1890/2431/1853 2070/2437/1930 1928/2438/1929 +f 1730/2436/1856 1927/2443/1928 2070/2437/1930 1890/2431/1853 +f 1732/2186/1931 1929/2178/1932 2071/2185/1933 1930/2192/1934 +f 1929/2178/1932 1731/2169/1935 1931/2177/1936 2071/2185/1933 +f 2071/2455/1933 1931/2447/1936 1728/2445/1927 1926/2453/1925 +f 1930/2464/1934 2071/2455/1933 1926/2453/1925 1727/2459/1923 +f 1733/2200/1937 1932/2193/1938 2072/2199/1939 1933/2204/1940 +f 1932/2193/1938 1732/2186/1931 1930/2192/1934 2072/2199/1939 +f 2072/2476/1939 1930/2464/1934 1727/2459/1923 1924/2468/1921 +f 1933/2481/1940 2072/2476/1939 1924/2468/1921 1726/2467/1919 +f 1734/2208/1941 1934/2205/1942 2073/2207/1943 1935/2209/1944 +f 1934/2205/1942 1733/2200/1937 1933/2204/1940 2073/2207/1943 +f 2073/2496/1943 1933/2481/1940 1726/2467/1919 1922/2480/1917 +f 1935/2495/1944 2073/2496/1943 1922/2480/1917 1725/2479/1915 +f 1735/2533/1945 1936/2534/1946 2074/2513/1947 1937/2512/1948 +f 1936/2534/1946 1734/2535/1941 1935/2495/1944 2074/2513/1947 +f 2074/2513/1947 1935/2495/1944 1725/2479/1915 1920/2494/1913 +f 1937/2512/1948 2074/2513/1947 1920/2494/1913 1724/2493/1911 +f 1736/2555/1949 1938/2556/1950 2075/2532/1951 1939/2531/1952 +f 1938/2556/1950 1735/2533/1945 1937/2512/1948 2075/2532/1951 +f 2075/2532/1951 1937/2512/1948 1724/2493/1911 1918/2511/1909 +f 1939/2531/1952 2075/2532/1951 1918/2511/1909 1723/2510/1907 +f 1737/2577/1953 1940/2578/1954 2076/2554/1955 1941/2553/1956 +f 1940/2578/1954 1736/2555/1949 1939/2531/1952 2076/2554/1955 +f 2076/2554/1955 1939/2531/1952 1723/2510/1907 1916/2530/1905 +f 1941/2553/1956 2076/2554/1955 1916/2530/1905 1722/2529/1903 +f 1738/2595/1957 1942/2596/1958 2077/2576/1959 1943/2575/1960 +f 1942/2596/1958 1737/2577/1953 1941/2553/1956 2077/2576/1959 +f 2077/2576/1959 1941/2553/1956 1722/2529/1903 1914/2552/1901 +f 1943/2575/1960 2077/2576/1959 1914/2552/1901 1721/2551/1899 +f 1739/2299/1961 1944/2302/1962 2078/2305/1963 1945/2303/1964 +f 1944/2302/1962 1738/2304/1957 1943/2306/1960 2078/2305/1963 +f 2078/2594/1963 1943/2575/1960 1721/2551/1899 1912/2574/1897 +f 1945/2593/1964 2078/2594/1963 1912/2574/1897 1720/2573/1895 +f 1740/2286/1965 1946/2294/1966 2079/2300/1967 1947/2295/1968 +f 1946/2294/1966 1739/2299/1961 1945/2303/1964 2079/2300/1967 +f 2079/2608/1967 1945/2593/1964 1720/2573/1895 1910/2592/1893 +f 1947/2607/1968 2079/2608/1967 1910/2592/1893 1719/2591/1891 +f 1741/2267/1969 1948/2277/1970 2080/2287/1971 1949/2278/1972 +f 1948/2277/1970 1740/2286/1965 1947/2295/1968 2080/2287/1971 +f 2080/2606/1971 1947/2607/1968 1719/2591/1891 1908/2589/1889 +f 1949/2590/1972 2080/2606/1971 1908/2589/1889 1718/2569/1887 +f 1742/2243/1973 1950/2255/1974 2081/2268/1975 1951/2256/1976 +f 1950/2255/1974 1741/2267/1969 1949/2278/1972 2081/2268/1975 +f 2081/2588/1975 1949/2590/1972 1718/2569/1887 1906/2567/1885 +f 1951/2568/1976 2081/2588/1975 1906/2567/1885 1717/2546/1883 +f 1743/2258/1977 1952/2244/1978 2082/2257/1979 1953/2269/1980 +f 1952/2244/1978 1742/2243/1973 1951/2256/1976 2082/2257/1979 +f 2082/2566/1979 1951/2568/1976 1717/2546/1883 1904/2544/1881 +f 1953/2545/1980 2082/2566/1979 1904/2544/1881 1716/2522/1879 +f 1744/2280/1981 1954/2270/1982 2083/2279/1983 1955/2288/1984 +f 1954/2270/1982 1743/2258/1977 1953/2269/1980 2083/2279/1983 +f 2083/2542/1983 1953/2545/1980 1716/2522/1879 1902/2520/1877 +f 1955/2521/1984 2083/2542/1983 1902/2520/1877 1715/2503/1875 +f 1745/2519/1985 1956/2540/1986 2084/2518/1987 1957/2502/1988 +f 1956/2540/1986 1744/2543/1981 1955/2521/1984 2084/2518/1987 +f 2084/2518/1987 1955/2521/1984 1715/2503/1875 1900/2501/1873 +f 1957/2502/1988 2084/2518/1987 1900/2501/1873 1714/2486/1871 +f 1746/2500/1989 1958/2516/1990 2085/2499/1991 1959/2485/1992 +f 1958/2516/1990 1745/2519/1985 1957/2502/1988 2085/2499/1991 +f 2085/2499/1991 1957/2502/1988 1714/2486/1871 1898/2484/1869 +f 1959/2485/1992 2085/2499/1991 1898/2484/1869 1713/2471/1867 +f 1747/2483/1993 1960/2497/1994 2086/2482/1995 1961/2470/1996 +f 1960/2497/1994 1746/2500/1989 1959/2485/1992 2086/2482/1995 +f 2086/2482/1995 1959/2485/1992 1713/2471/1867 1896/2469/1865 +f 1961/2470/1996 2086/2482/1995 1896/2469/1865 1712/2460/1863 +f 1748/2474/1997 1962/2475/1998 2087/2463/1999 1963/2454/2000 +f 1962/2475/1998 1747/2483/1993 1961/2470/1996 2087/2463/1999 +f 2087/2463/1999 1961/2470/1996 1712/2460/1863 1894/2456/1861 +f 1963/2454/2000 2087/2463/1999 1894/2456/1861 1711/2448/1859 +f 1749/2156/2001 1964/2166/2002 2088/2176/2003 1965/2167/2004 +f 1964/2166/2002 1748/2175/1997 1963/2184/2000 2088/2176/2003 +f 2088/2446/2003 1963/2454/2000 1711/2448/1859 1892/2441/1857 +f 1965/2439/2004 2088/2446/2003 1892/2441/1857 1710/2434/1854 +f 1750/2147/2005 1966/2146/2006 2089/2157/2007 1967/2158/2008 +f 1966/2146/2006 1749/2156/2001 1965/2167/2004 2089/2157/2007 +f 2089/2433/2007 1965/2439/2004 1710/2434/1854 1889/2429/1851 +f 1967/2432/2008 2089/2433/2007 1889/2429/1851 1709/2428/1850 +f 1731/2169/1935 1968/2159/2009 2090/2168/2010 1931/2177/1936 +f 1968/2159/2009 1750/2147/2005 1967/2158/2008 2090/2168/2010 +f 2090/2440/2010 1967/2432/2008 1709/2428/1850 1928/2438/1929 +f 1931/2447/1936 2090/2440/2010 1928/2438/1929 1728/2445/1927 +f 1752/2171/2011 1969/2161/2012 2091/2170/2013 1970/2179/2014 +f 1969/2161/2012 1751/2149/2015 1971/2160/2016 2091/2170/2013 +f 2091/2170/2013 1971/2160/2016 1731/2169/1935 1929/2178/1932 +f 1970/2179/2014 2091/2170/2013 1929/2178/1932 1732/2186/1931 +f 1753/2188/2017 1972/2180/2018 2092/2187/2019 1973/2194/2020 +f 1972/2180/2018 1752/2171/2011 1970/2179/2014 2092/2187/2019 +f 2092/2187/2019 1970/2179/2014 1732/2186/1931 1932/2193/1938 +f 1973/2194/2020 2092/2187/2019 1932/2193/1938 1733/2200/1937 +f 1754/2202/2021 1974/2195/2022 2093/2201/2023 1975/2206/2024 +f 1974/2195/2022 1753/2188/2017 1973/2194/2020 2093/2201/2023 +f 2093/2201/2023 1973/2194/2020 1733/2200/1937 1934/2205/1942 +f 1975/2206/2024 2093/2201/2023 1934/2205/1942 1734/2208/1941 +f 1755/2581/2025 1976/2582/2026 2094/2558/2027 1977/2557/2028 +f 1976/2582/2026 1754/2583/2021 1975/2559/2024 2094/2558/2027 +f 2094/2558/2027 1975/2559/2024 1734/2535/1941 1936/2534/1946 +f 1977/2557/2028 2094/2558/2027 1936/2534/1946 1735/2533/1945 +f 1756/2599/2029 1978/2600/2030 2095/2580/2031 1979/2579/2032 +f 1978/2600/2030 1755/2581/2025 1977/2557/2028 2095/2580/2031 +f 2095/2580/2031 1977/2557/2028 1735/2533/1945 1938/2556/1950 +f 1979/2579/2032 2095/2580/2031 1938/2556/1950 1736/2555/1949 +f 1757/2611/2033 1980/2612/2034 2096/2598/2035 1981/2597/2036 +f 1980/2612/2034 1756/2599/2029 1979/2579/2032 2096/2598/2035 +f 2096/2598/2035 1979/2579/2032 1736/2555/1949 1940/2578/1954 +f 1981/2597/2036 2096/2598/2035 1940/2578/1954 1737/2577/1953 +f 1758/2615/2037 1982/2616/2038 2097/2610/2039 1983/2609/2040 +f 1982/2616/2038 1757/2611/2033 1981/2597/2036 2097/2610/2039 +f 2097/2610/2039 1981/2597/2036 1737/2577/1953 1942/2596/1958 +f 1983/2609/2040 2097/2610/2039 1942/2596/1958 1738/2595/1957 +f 1759/2284/2041 1984/2292/2042 2098/2298/2043 1985/2293/2044 +f 1984/2292/2042 1758/2297/2037 1983/2301/2040 2098/2298/2043 +f 2098/2298/2043 1983/2301/2040 1738/2304/1957 1944/2302/1962 +f 1985/2293/2044 2098/2298/2043 1944/2302/1962 1739/2299/1961 +f 1760/2265/2045 1986/2275/2046 2099/2285/2047 1987/2276/2048 +f 1986/2275/2046 1759/2284/2041 1985/2293/2044 2099/2285/2047 +f 2099/2285/2047 1985/2293/2044 1739/2299/1961 1946/2294/1966 +f 1987/2276/2048 2099/2285/2047 1946/2294/1966 1740/2286/1965 +f 1761/2241/2049 1988/2253/2050 2100/2266/2051 1989/2254/2052 +f 1988/2253/2050 1760/2265/2045 1987/2276/2048 2100/2266/2051 +f 2100/2266/2051 1987/2276/2048 1740/2286/1965 1948/2277/1970 +f 1989/2254/2052 2100/2266/2051 1948/2277/1970 1741/2267/1969 +f 1762/2223/2053 1990/2231/2054 2101/2242/2055 1991/2232/2056 +f 1990/2231/2054 1761/2241/2049 1989/2254/2052 2101/2242/2055 +f 2101/2242/2055 1989/2254/2052 1741/2267/1969 1950/2255/1974 +f 1991/2232/2056 2101/2242/2055 1950/2255/1974 1742/2243/1973 +f 1763/2234/2057 1992/2224/2058 2102/2233/2059 1993/2245/2060 +f 1992/2224/2058 1762/2223/2053 1991/2232/2056 2102/2233/2059 +f 2102/2233/2059 1991/2232/2056 1742/2243/1973 1952/2244/1978 +f 1993/2245/2060 2102/2233/2059 1952/2244/1978 1743/2258/1977 +f 1764/2260/2061 1994/2246/2062 2103/2259/2063 1995/2271/2064 +f 1994/2246/2062 1763/2234/2057 1993/2245/2060 2103/2259/2063 +f 2103/2259/2063 1993/2245/2060 1743/2258/1977 1954/2270/1982 +f 1995/2271/2064 2103/2259/2063 1954/2270/1982 1744/2280/1981 +f 1765/2564/2065 1996/2585/2066 2104/2563/2067 1997/2541/2068 +f 1996/2585/2066 1764/2587/2061 1995/2565/2064 2104/2563/2067 +f 2104/2563/2067 1995/2565/2064 1744/2543/1981 1956/2540/1986 +f 1997/2541/2068 2104/2563/2067 1956/2540/1986 1745/2519/1985 +f 1766/2539/2069 1998/2561/2070 2105/2538/2071 1999/2517/2072 +f 1998/2561/2070 1765/2564/2065 1997/2541/2068 2105/2538/2071 +f 2105/2538/2071 1997/2541/2068 1745/2519/1985 1958/2516/1990 +f 1999/2517/2072 2105/2538/2071 1958/2516/1990 1746/2500/1989 +f 1767/2515/2073 2000/2536/2074 2106/2514/2075 2001/2498/2076 +f 2000/2536/2074 1766/2539/2069 1999/2517/2072 2106/2514/2075 +f 2106/2514/2075 1999/2517/2072 1746/2500/1989 1960/2497/1994 +f 2001/2498/2076 2106/2514/2075 1960/2497/1994 1747/2483/1993 +f 1768/2506/2077 2002/2507/2078 2107/2490/2079 2003/2489/2080 +f 2002/2507/2078 1767/2515/2073 2001/2498/2076 2107/2490/2079 +f 2107/2490/2079 2001/2498/2076 1747/2483/1993 1962/2475/1998 +f 2003/2489/2080 2107/2490/2079 1962/2475/1998 1748/2474/1997 +f 1769/2134/2081 2004/2144/2082 2108/2155/2083 2005/2145/2084 +f 2004/2144/2082 1768/2154/2077 2003/2165/2080 2108/2155/2083 +f 2108/2155/2083 2003/2165/2080 1748/2175/1997 1964/2166/2002 +f 2005/2145/2084 2108/2155/2083 1964/2166/2002 1749/2156/2001 +f 1770/2127/2085 2006/2126/2086 2109/2135/2087 2007/2136/2088 +f 2006/2126/2086 1769/2134/2081 2005/2145/2084 2109/2135/2087 +f 2109/2135/2087 2005/2145/2084 1749/2156/2001 1966/2146/2006 +f 2007/2136/2088 2109/2135/2087 1966/2146/2006 1750/2147/2005 +f 1751/2149/2015 2008/2137/2089 2110/2148/2090 1971/2160/2016 +f 2008/2137/2089 1770/2127/2085 2007/2136/2088 2110/2148/2090 +f 2110/2148/2090 2007/2136/2088 1750/2147/2005 1968/2159/2009 +f 1971/2160/2016 2110/2148/2090 1968/2159/2009 1731/2169/1935 +f 1772/2174/1792 1863/2164/1799 2111/2172/2091 2009/2181/2092 +f 1863/2164/1799 1771/2152/1798 2010/2162/2093 2111/2172/2091 +f 2111/2172/2091 2010/2162/2093 1752/2171/2011 1972/2180/2018 +f 2009/2181/2092 2111/2172/2091 1972/2180/2018 1753/2188/2017 +f 1773/2191/1786 1860/2183/1793 2112/2189/2094 1791/2196/2095 +f 1860/2183/1793 1772/2174/1792 2009/2181/2092 2112/2189/2094 +f 2112/2189/2094 2009/2181/2092 1753/2188/2017 1974/2195/2022 +f 1791/2196/2095 2112/2189/2094 1974/2195/2022 1754/2202/2021 +f 1774/2657/1780 1857/2660/1787 2113/2662/2096 1792/2661/2097 +f 1857/2198/1787 1773/2191/1786 1791/2196/2095 2113/2203/2096 +f 2113/2602/2096 1791/2603/2095 1754/2583/2021 1976/2582/2026 +f 1792/2601/2097 2113/2602/2096 1976/2582/2026 1755/2581/2025 +f 1775/2651/1774 1854/2654/1781 2114/2658/2098 1793/2655/2099 +f 1854/2654/1781 1774/2657/1780 1792/2661/2097 2114/2658/2098 +f 2114/2614/2098 1792/2601/2097 1755/2581/2025 1978/2600/2030 +f 1793/2613/2099 2114/2614/2098 1978/2600/2030 1756/2599/2029 +f 1776/2644/1768 1851/2647/1775 2115/2652/2100 1794/2648/2101 +f 1851/2647/1775 1775/2651/1774 1793/2655/2099 2115/2652/2100 +f 2115/2618/2100 1793/2613/2099 1756/2599/2029 1980/2612/2034 +f 1794/2617/2101 2115/2618/2100 1980/2612/2034 1757/2611/2033 +f 1777/2282/1762 1848/2290/1769 2116/2296/2102 1795/2291/2103 +f 1848/2645/1769 1776/2644/1768 1794/2648/2101 2116/2649/2102 +f 2116/2620/2102 1794/2617/2101 1757/2611/2033 1982/2616/2038 +f 1795/2619/2103 2116/2620/2102 1982/2616/2038 1758/2615/2037 +f 1778/2263/1756 1845/2273/1763 2117/2283/2104 1796/2274/2105 +f 1845/2273/1763 1777/2282/1762 1795/2291/2103 2117/2283/2104 +f 2117/2283/2104 1795/2291/2103 1758/2297/2037 1984/2292/2042 +f 1796/2274/2105 2117/2283/2104 1984/2292/2042 1759/2284/2041 +f 1779/2239/1750 1842/2251/1757 2118/2264/2106 1797/2252/2107 +f 1842/2251/1757 1778/2263/1756 1796/2274/2105 2118/2264/2106 +f 2118/2264/2106 1796/2274/2105 1759/2284/2041 1986/2275/2046 +f 1797/2252/2107 2118/2264/2106 1986/2275/2046 1760/2265/2045 +f 1780/2221/1744 1839/2229/1751 2119/2240/2108 1798/2230/2109 +f 1839/2229/1751 1779/2239/1750 1797/2252/2107 2119/2240/2108 +f 2119/2240/2108 1797/2252/2107 1760/2265/2045 1988/2253/2050 +f 1798/2230/2109 2119/2240/2108 1988/2253/2050 1761/2241/2049 +f 1781/2212/1738 1836/2215/1745 2120/2222/2110 1799/2216/2111 +f 1836/2215/1745 1780/2221/1744 1798/2230/2109 2120/2222/2110 +f 2120/2222/2110 1798/2230/2109 1761/2241/2049 1990/2231/2054 +f 1799/2216/2111 2120/2222/2110 1990/2231/2054 1762/2223/2053 +f 1782/2219/1732 1833/2213/1739 2121/2217/2112 1800/2225/2113 +f 1833/2213/1739 1781/2212/1738 1799/2216/2111 2121/2217/2112 +f 2121/2217/2112 1799/2216/2111 1762/2223/2053 1992/2224/2058 +f 1800/2225/2113 2121/2217/2112 1992/2224/2058 1763/2234/2057 +f 1783/2237/1726 1830/2227/1733 2122/2235/2114 1801/2247/2115 +f 1830/2227/1733 1782/2219/1732 1800/2225/2113 2122/2235/2114 +f 2122/2235/2114 1800/2225/2113 1763/2234/2057 1994/2246/2062 +f 1801/2247/2115 2122/2235/2114 1994/2246/2062 1764/2260/2061 +f 1784/2636/1720 1827/2639/1727 2123/2641/2116 1802/2640/2117 +f 1827/2249/1727 1783/2237/1726 1801/2247/2115 2123/2261/2116 +f 2123/2604/2116 1801/2605/2115 1764/2587/2061 1996/2585/2066 +f 1802/2586/2117 2123/2604/2116 1996/2585/2066 1765/2564/2065 +f 1785/2630/1714 1824/2633/1721 2124/2637/2118 1803/2634/2119 +f 1824/2633/1721 1784/2636/1720 1802/2640/2117 2124/2637/2118 +f 2124/2584/2118 1802/2586/2117 1765/2564/2065 1998/2561/2070 +f 1803/2562/2119 2124/2584/2118 1998/2561/2070 1766/2539/2069 +f 1786/2623/1708 1821/2626/1715 2125/2631/2120 1804/2627/2121 +f 1821/2626/1715 1785/2630/1714 1803/2634/2119 2125/2631/2120 +f 2125/2560/2120 1803/2562/2119 1766/2539/2069 2000/2536/2074 +f 1804/2537/2121 2125/2560/2120 2000/2536/2074 1767/2515/2073 +f 1787/2132/1702 1818/2142/1709 2126/2153/2122 1805/2143/2123 +f 1818/2624/1709 1786/2623/1708 1804/2627/2121 2126/2628/2122 +f 2126/2526/2122 1804/2537/2121 1767/2515/2073 2002/2507/2078 +f 1805/2525/2123 2126/2526/2122 2002/2507/2078 1768/2506/2077 +f 1788/2118/1695 1815/2124/1703 2127/2133/2124 1806/2125/2125 +f 1815/2124/1703 1787/2132/1702 1805/2143/2123 2127/2133/2124 +f 2127/2133/2124 1805/2143/2123 1768/2154/2077 2004/2144/2082 +f 1806/2125/2125 2127/2133/2124 2004/2144/2082 1769/2134/2081 +f 1789/2116/1697 1812/2115/1696 2128/2119/2126 1807/2120/2127 +f 1812/2115/1696 1788/2118/1695 1806/2125/2125 2128/2119/2126 +f 2128/2119/2126 1806/2125/2125 1769/2134/2081 2006/2126/2086 +f 1807/2120/2127 2128/2119/2126 2006/2126/2086 1770/2127/2085 +f 1790/2130/1804 1868/2122/1808 2129/2128/2128 1808/2138/2129 +f 1868/2122/1808 1789/2116/1697 1807/2120/2127 2129/2128/2128 +f 2129/2128/2128 1807/2120/2127 1770/2127/2085 2008/2137/2089 +f 1808/2138/2129 2129/2128/2128 2008/2137/2089 1751/2149/2015 +f 1771/2152/1798 1866/2140/1805 2130/2150/2130 2010/2162/2093 +f 1866/2140/1805 1790/2130/1804 1808/2138/2129 2130/2150/2130 +f 2130/2150/2130 1808/2138/2129 1751/2149/2015 1969/2161/2012 +f 2010/2162/2093 2130/2150/2130 1969/2161/2012 1752/2171/2011 diff --git a/games/default/files/Trees/trees/models/tree.obj b/games/default/files/Trees/trees/models/tree.obj new file mode 100644 index 000000000..4b0d219b7 --- /dev/null +++ b/games/default/files/Trees/trees/models/tree.obj @@ -0,0 +1,229 @@ +# Alias OBJ Model File +# Exported from SketchUp, (c) 2000-2012 Trimble Navigation Limited +# File units = meters + +mtllib Tree_01.mtl + +g Mesh1 Tree Model + +usemtl Leafs +v 0 0 -1.2957 +vt -3.67031e-018 -0.258226 +vn -5.60096e-018 0.438447 -0.898757 +v 0.177 0.6 -1.003 +vt -0.0804545 0.0452234 +v 1.003 0.6 -1.003 +vt -0.455909 0.0452234 +v 1.18 0 -1.2957 +vt -0.536364 -0.258226 +f 1/1/1 2/2/1 3/3/1 4/4/1 + +v 0.177 0.6 -0.177 +vt -0.0804545 0.284347 +vn -0.959136 0.282945 7.971e-018 +vt -0.455909 0.284347 +vt -0.588956 1.3849e-018 +v 0 0 -0 +vt 0 0 +f 5/5/2 2/6/2 1/7/2 6/8/2 + +vt -0.0804545 0.0804545 +vn 0 -1 -0 +v -0.0969352 0.6 -0.0826 +vt 0.0440615 0.0375455 +vt -0.0804545 0.455909 +f 5/9/3 7/10/3 2/11/3 + +v 1.0974 0.6 -0.0826 +vt -0.498818 0.0375455 +f 7/10/3 5/9/3 8/12/3 + +v 1.003 0.6 -0.177 +vt -0.455909 0.0804545 +f 8/12/3 5/9/3 9/13/3 + +v 1.18 0 -0 +vt 0.536364 -1.26083e-018 +vn 7.96848e-018 0.282945 0.959136 +vt 0.455909 0.284347 +vt 0.0804545 0.284347 +f 10/14/4 9/15/4 5/16/4 6/8/4 + +vt 8.91502e-019 -0.151761 +vn 0.959136 0.282945 1.5942e-018 +vt 0.588956 -0.151761 +vt 0.455909 0.132585 +vt 0.0804545 0.132585 +f 10/17/5 4/18/5 3/19/5 9/20/5 + +vt -0.536364 0 +v 0.786697 0 -0.393303 +vt -0.35759 0.178774 +vt -0.536364 0.588956 +f 10/21/3 11/22/3 4/23/3 + +v 0.393303 0 -0.393303 +vt -0.178774 0.178774 +f 10/21/3 12/24/3 11/22/3 + +f 6/8/3 12/24/3 10/21/3 + +v 0.393303 0 -0.786697 +vt -0.178774 0.35759 +f 12/24/3 6/8/3 13/25/3 + +vt 0 0.588956 +f 1/26/3 13/25/3 6/8/3 + +f 13/25/3 1/26/3 4/23/3 + +v 0.786697 0 -0.786697 +vt -0.35759 0.35759 +f 13/25/3 4/23/3 14/27/3 + +f 14/27/3 4/23/3 11/22/3 + +usemtl Wood +v 0.837838 -0.495868 -0.342162 +vt 0.155528 -0.263275 +vn 0.994724 0.102591 6.0893e-019 +v 0.837838 -0.495868 -0.837838 +vt 0.380836 -0.263275 +vt 0.35759 -0.0366853 +vt 0.178774 -0.0366853 +f 15/28/6 16/29/6 14/30/6 11/31/6 + +v 0.342162 -0.495868 -0.342162 +vt -0.155528 0.155528 +v 0.342162 -0.495868 -0.837838 +vt -0.155528 0.380836 +vt -0.380836 0.380836 +vt -0.380836 0.155528 +f 17/32/3 18/33/3 16/34/3 15/35/3 + +vt -0.178774 0.0183405 +vn -0.994724 0.102591 -5.80807e-018 +vt -0.35759 0.0183405 +vt -0.380836 -0.208249 +vt -0.155528 -0.208249 +f 12/36/7 13/37/7 18/38/7 17/39/7 + +usemtl Leafs +f 12/24/3 13/25/3 14/27/3 11/22/3 + +usemtl Wood +vt -0.155528 -0.263275 +vn 9.37084e-019 0.102591 -0.994724 +vt -0.178774 -0.0366853 +vt -0.35759 -0.0366853 +vt -0.380836 -0.263275 +f 18/40/8 13/41/8 14/42/8 16/43/8 + +vt 0.380836 -0.208249 +vn 7.35408e-018 0.102591 0.994724 +vt 0.35759 0.0183405 +vt 0.178774 0.0183405 +vt 0.155528 -0.208249 +f 15/44/9 11/45/9 12/46/9 17/47/9 + +usemtl Leafs +vt -0.455909 0.455909 +v 1.0974 0.6 -1.0974 +vt -0.498818 0.498818 +f 3/48/3 19/49/3 9/13/3 + +f 2/11/3 19/49/3 3/48/3 + +v -0.0969352 0.6 -1.0974 +vt 0.0440615 0.498818 +f 2/11/3 20/50/3 19/49/3 + +f 20/50/3 2/11/3 7/10/3 + +v 0.23482 1.34304 -0.23482 +vt -0.106736 0.60095 +vn -0.913119 0.407693 2.16966e-017 +v 0.23482 1.34304 -0.94518 +vt -0.429627 0.60095 +vt -0.498818 0.231069 +vt -0.0375455 0.231069 +f 21/51/10 22/52/10 20/53/10 7/54/10 + +vt -0.106736 0.106736 +v 0.153636 1.34304 -0.153636 +vt -0.0698345 0.0698345 +vt -0.106736 0.429627 +f 21/55/3 23/56/3 22/57/3 + +v 1.14207 1.34304 -0.153636 +vt -0.519121 0.0698345 +f 23/56/3 21/55/3 24/58/3 + +v 0.94518 1.34304 -0.23482 +vt -0.429627 0.106736 +f 24/58/3 21/55/3 25/59/3 + +vt 0.498818 0.274714 +vn 5.19277e-018 0.200693 0.979654 +vt 0.429627 0.619473 +vt 0.106736 0.619473 +vt -0.0440615 0.274714 +f 8/60/11 25/61/11 21/62/11 7/63/11 + +vt 0.0375455 0.167069 +vn 0.979654 0.200693 -1.44372e-018 +vt 0.498818 0.167069 +v 0.94518 1.34304 -0.94518 +vt 0.429627 0.511829 +vt 0.106736 0.511829 +f 8/64/12 19/65/12 26/66/12 25/67/12 + +f 8/12/3 9/13/3 19/49/3 + +vt 0.0440615 0.167069 +vn -2.59638e-018 0.200693 -0.979654 +vt -0.106736 0.511829 +vt -0.429627 0.511829 +vt -0.498818 0.167069 +f 20/68/13 22/69/13 26/70/13 19/71/13 + +v 1.14207 1.34304 -1.02636 +vt -0.519121 0.466529 +vt -0.429627 0.429627 +f 22/57/3 27/72/3 26/73/3 + +v 0.153636 1.34304 -1.02636 +vt -0.0698345 0.466529 +f 22/57/3 28/74/3 27/72/3 + +f 28/74/3 22/57/3 23/56/3 + +v 0.383388 3.21676 -0.59 +vt -0.268182 1.4725 +vn -0.992566 0.121707 7.00107e-018 +vt -0.466529 0.614434 +vt -0.0698345 0.614434 +f 29/75/14 28/76/14 23/77/14 + +vt -0.174267 1.36323 +vn 1.92555e-017 0.226817 -0.973937 +vt -0.519121 0.488746 +vt -0.0698345 0.488746 +f 29/78/15 27/79/15 28/80/15 + +vt 0.466529 0.371018 +vn 0.926901 0.375307 -4.48545e-017 +vt 0.268182 1.28988 +vt 0.0698345 0.371018 +f 27/81/16 29/82/16 24/83/16 + +vt 0.519121 0.610402 +vn -3.8511e-017 0.226817 0.973937 +vt 0.174267 1.48488 +vt 0.0698345 0.610402 +f 24/84/17 29/85/17 23/86/17 + +f 24/58/3 25/59/3 27/72/3 + +f 26/73/3 27/72/3 25/59/3 + diff --git a/games/default/files/Trees/trees/models/tree2.obj b/games/default/files/Trees/trees/models/tree2.obj new file mode 100644 index 000000000..be60f402b --- /dev/null +++ b/games/default/files/Trees/trees/models/tree2.obj @@ -0,0 +1,283 @@ +# Blender v2.78 (sub 0) OBJ File: 'Pine Tree.blend' +# www.blender.org +mtllib Pine Tree.mtl +o Cylinder +v -0.000000 -1.000000 -0.957860 +v -0.000000 5.744647 -0.088780 +v 0.677309 -1.000000 -0.677309 +v 0.062777 5.744647 -0.062777 +v 0.957860 -1.000000 0.000000 +v 0.088780 5.744647 0.000000 +v 0.677309 -1.000000 0.677309 +v 0.062777 5.744647 0.062777 +v -0.000000 -1.000000 0.957860 +v -0.000000 5.744647 0.088780 +v -0.677310 -1.000000 0.677309 +v -0.062777 5.744647 0.062777 +v -0.957860 -1.000000 -0.000000 +v -0.088780 5.744647 -0.000000 +v -0.677310 -1.000000 -0.677309 +v -0.062777 5.744647 -0.062777 +v -0.000000 2.372323 -0.544390 +v 0.384942 2.372323 -0.384942 +v 0.544390 2.372323 0.000000 +v 0.384942 2.372323 0.384942 +v -0.000000 2.372323 0.544390 +v -0.384942 2.372323 0.384942 +v -0.544390 2.372323 -0.000000 +v -0.384942 2.372323 -0.384942 +v 0.376250 0.686162 -0.376250 +v 0.532098 0.686162 0.000000 +v 0.376250 0.686162 0.376250 +v -0.000000 0.686162 0.532098 +v -0.376250 0.686162 0.376250 +v -0.532098 0.686162 -0.000000 +v -0.376250 0.686162 -0.376250 +v -0.000000 0.686162 -0.532098 +v -0.000000 4.058485 -0.316585 +v 0.223860 4.058485 -0.223860 +v 0.316585 4.058485 0.000000 +v 0.223860 4.058485 0.223860 +v -0.000000 4.058485 0.316585 +v -0.223860 4.058485 0.223860 +v -0.316585 4.058485 -0.000000 +v -0.223860 4.058485 -0.223860 +v -0.000000 4.901566 -0.202683 +v 0.143318 4.901566 -0.143318 +v 0.202683 4.901566 0.000000 +v 0.143318 4.901566 0.143318 +v -0.000000 4.901566 0.202683 +v -0.143319 4.901566 0.143318 +v -0.202683 4.901566 -0.000000 +v -0.143319 4.901566 -0.143318 +v 0.304401 3.215404 -0.304401 +v 0.430488 3.215404 0.000000 +v 0.304401 3.215404 0.304401 +v -0.000000 3.215404 0.430488 +v -0.304401 3.215404 0.304401 +v -0.430488 3.215404 -0.000000 +v -0.304401 3.215404 -0.304401 +v -0.000000 3.215404 -0.430488 +v -0.000000 1.529243 -0.658293 +v 0.465483 1.529243 -0.465483 +v 0.658293 1.529243 0.000000 +v 0.465483 1.529243 0.465483 +v -0.000000 1.529243 0.658293 +v -0.465483 1.529243 0.465483 +v -0.658293 1.529243 -0.000000 +v -0.465483 1.529243 -0.465483 +v 0.000000 4.901566 -0.324966 +v 0.229786 4.901566 -0.229786 +v 0.324966 4.901566 0.000000 +v 0.229786 4.901566 0.229786 +v -0.000000 4.901566 0.324966 +v -0.229786 4.901566 0.229786 +v -0.324966 4.901566 -0.000000 +v -0.229786 4.901566 -0.229786 +v 0.348750 4.058485 -0.348750 +v 0.493208 4.058485 0.000000 +v 0.348750 4.058485 0.348750 +v -0.000000 4.058485 0.493208 +v -0.348750 4.058485 0.348750 +v -0.493208 4.058485 -0.000000 +v -0.348750 4.058485 -0.348750 +v 0.000000 4.058485 -0.493208 +v 0.000000 3.215404 -0.715118 +v 0.505665 3.215404 -0.505665 +v 0.715118 3.215404 0.000000 +v 0.505665 3.215404 0.505665 +v -0.000000 3.215404 0.715118 +v -0.505665 3.215404 0.505664 +v -0.715118 3.215404 -0.000000 +v -0.505665 3.215404 -0.505664 +v 0.663133 2.372323 -0.663133 +v 0.937812 2.372323 0.000000 +v 0.663133 2.372323 0.663133 +v -0.000000 2.372323 0.937812 +v -0.663133 2.372323 0.663133 +v -0.937812 2.372323 -0.000000 +v -0.663133 2.372323 -0.663133 +v 0.000000 2.372323 -0.937812 +v 0.000000 1.529243 -1.238232 +v 0.875563 1.529243 -0.875563 +v 1.238232 1.529243 0.000000 +v 0.875563 1.529243 0.875563 +v -0.000000 1.529243 1.238232 +v -0.875563 1.529243 0.875562 +v -1.238232 1.529243 -0.000000 +v -0.875563 1.529243 -0.875563 +v 1.017558 0.686162 -1.017558 +v 1.439044 0.686162 0.000000 +v 1.017558 0.686162 1.017558 +v -0.000000 0.686162 1.439044 +v -1.017558 0.686162 1.017557 +v -1.439044 0.686162 -0.000000 +v -1.017558 0.686162 -1.017557 +v 0.000000 0.686162 -1.439044 +vn 0.0000 -1.0000 0.0000 +vn 0.3727 0.2272 -0.8997 +vn 0.8997 0.2272 -0.3727 +vn 0.8997 0.2272 0.3727 +vn 0.3727 0.2272 0.8997 +vn -0.3727 0.2272 0.8997 +vn -0.8997 0.2272 0.3727 +vn -0.8997 0.2272 -0.3727 +vn -0.3727 0.2272 -0.8997 +vn 0.3705 0.2506 -0.8944 +vn 0.8944 0.2506 -0.3705 +vn 0.8944 0.2506 0.3705 +vn 0.3705 0.2506 0.8944 +vn -0.3705 0.2506 0.8944 +vn -0.8944 0.2506 0.3705 +vn 0.0000 1.0000 0.0000 +vn -0.8944 0.2506 -0.3705 +vn -0.3705 0.2506 -0.8944 +vn -0.3046 0.6053 -0.7354 +vn -0.7354 0.6053 -0.3046 +vn -0.7354 0.6053 0.3046 +vn -0.3046 0.6053 0.7354 +vn 0.3046 0.6053 0.7354 +vn 0.7354 0.6053 0.3046 +vn 0.7354 0.6053 -0.3046 +vn 0.3046 0.6053 -0.7354 +vn -0.3507 0.4002 -0.8467 +vn -0.8467 0.4002 -0.3507 +vn -0.8467 0.4002 0.3507 +vn -0.3507 0.4002 0.8467 +vn 0.3507 0.4002 0.8467 +vn 0.8467 0.4002 0.3507 +vn 0.8467 0.4002 -0.3507 +vn 0.3507 0.4002 -0.8467 +vn -0.3646 0.3034 -0.8803 +vn -0.8803 0.3034 -0.3646 +vn -0.8803 0.3034 0.3646 +vn -0.3646 0.3034 0.8803 +vn 0.3646 0.3034 0.8803 +vn 0.8803 0.3034 0.3646 +vn 0.8803 0.3034 -0.3646 +vn 0.3646 0.3034 -0.8803 +vn 0.3345 0.4859 -0.8075 +vn 0.8075 0.4859 -0.3345 +vn 0.8075 0.4859 0.3345 +vn 0.3345 0.4859 0.8075 +vn -0.3345 0.4859 0.8075 +vn -0.8075 0.4859 0.3345 +vn -0.8075 0.4859 -0.3345 +vn -0.3345 0.4859 -0.8075 +vn 0.2908 0.6501 -0.7020 +vn 0.7020 0.6501 -0.2908 +vn 0.7020 0.6501 0.2908 +vn 0.2908 0.6501 0.7020 +vn -0.2908 0.6501 0.7020 +vn -0.7020 0.6501 0.2908 +vn -0.7020 0.6501 -0.2908 +vn -0.2908 0.6501 -0.7020 +usemtl Wood +s off +f 1//1 3//1 5//1 7//1 9//1 11//1 13//1 15//1 +f 1//2 32//2 25//2 3//2 +f 3//3 25//3 26//3 5//3 +f 5//4 26//4 27//4 7//4 +f 7//5 27//5 28//5 9//5 +f 9//6 28//6 29//6 11//6 +f 11//7 29//7 30//7 13//7 +f 13//8 30//8 31//8 15//8 +f 15//9 31//9 32//9 1//9 +usemtl Leafes +f 65//10 2//10 4//10 66//10 +f 66//11 4//11 6//11 67//11 +f 67//12 6//12 8//12 68//12 +f 68//13 8//13 10//13 69//13 +f 69//14 10//14 12//14 70//14 +f 70//15 12//15 14//15 71//15 +f 4//16 2//16 16//16 14//16 12//16 10//16 8//16 6//16 +f 71//17 14//17 16//17 72//17 +f 72//18 16//18 2//18 65//18 +f 104//19 24//19 17//19 97//19 +f 103//20 23//20 24//20 104//20 +f 102//21 22//21 23//21 103//21 +f 101//22 21//22 22//22 102//22 +f 100//23 20//23 21//23 101//23 +f 99//24 19//24 20//24 100//24 +f 98//25 18//25 19//25 99//25 +f 97//26 17//26 18//26 98//26 +f 88//27 40//27 33//27 81//27 +f 87//28 39//28 40//28 88//28 +f 86//29 38//29 39//29 87//29 +f 85//30 37//30 38//30 86//30 +f 84//31 36//31 37//31 85//31 +f 83//32 35//32 36//32 84//32 +f 82//33 34//33 35//33 83//33 +f 81//34 33//34 34//34 82//34 +f 79//35 48//35 41//35 80//35 +f 78//36 47//36 48//36 79//36 +f 77//37 46//37 47//37 78//37 +f 76//38 45//38 46//38 77//38 +f 75//39 44//39 45//39 76//39 +f 74//40 43//40 44//40 75//40 +f 73//41 42//41 43//41 74//41 +f 80//42 41//42 42//42 73//42 +f 96//43 56//43 49//43 89//43 +f 89//44 49//44 50//44 90//44 +f 90//45 50//45 51//45 91//45 +f 91//46 51//46 52//46 92//46 +f 92//47 52//47 53//47 93//47 +f 93//48 53//48 54//48 94//48 +f 94//49 54//49 55//49 95//49 +f 95//50 55//50 56//50 96//50 +f 112//51 57//51 58//51 105//51 +f 105//52 58//52 59//52 106//52 +f 106//53 59//53 60//53 107//53 +f 107//54 60//54 61//54 108//54 +f 108//55 61//55 62//55 109//55 +f 109//56 62//56 63//56 110//56 +f 110//57 63//57 64//57 111//57 +f 111//58 64//58 57//58 112//58 +f 48//1 72//1 65//1 41//1 +f 47//1 71//1 72//1 48//1 +f 46//1 70//1 71//1 47//1 +f 45//1 69//1 70//1 46//1 +f 44//1 68//1 69//1 45//1 +f 43//1 67//1 68//1 44//1 +f 42//1 66//1 67//1 43//1 +f 41//1 65//1 66//1 42//1 +f 33//1 80//1 73//1 34//1 +f 34//1 73//1 74//1 35//1 +f 35//1 74//1 75//1 36//1 +f 36//1 75//1 76//1 37//1 +f 37//1 76//1 77//1 38//1 +f 38//1 77//1 78//1 39//1 +f 39//1 78//1 79//1 40//1 +f 40//1 79//1 80//1 33//1 +f 56//1 81//1 82//1 49//1 +f 49//1 82//1 83//1 50//1 +f 50//1 83//1 84//1 51//1 +f 51//1 84//1 85//1 52//1 +f 52//1 85//1 86//1 53//1 +f 53//1 86//1 87//1 54//1 +f 54//1 87//1 88//1 55//1 +f 55//1 88//1 81//1 56//1 +f 24//1 95//1 96//1 17//1 +f 23//1 94//1 95//1 24//1 +f 22//1 93//1 94//1 23//1 +f 21//1 92//1 93//1 22//1 +f 20//1 91//1 92//1 21//1 +f 19//1 90//1 91//1 20//1 +f 18//1 89//1 90//1 19//1 +f 17//1 96//1 89//1 18//1 +f 57//1 97//1 98//1 58//1 +f 58//1 98//1 99//1 59//1 +f 59//1 99//1 100//1 60//1 +f 60//1 100//1 101//1 61//1 +f 61//1 101//1 102//1 62//1 +f 62//1 102//1 103//1 63//1 +f 63//1 103//1 104//1 64//1 +f 64//1 104//1 97//1 57//1 +f 31//1 111//1 112//1 32//1 +f 30//1 110//1 111//1 31//1 +f 29//1 109//1 110//1 30//1 +f 28//1 108//1 109//1 29//1 +f 27//1 107//1 108//1 28//1 +f 26//1 106//1 107//1 27//1 +f 25//1 105//1 106//1 26//1 +f 32//1 112//1 105//1 25//1 diff --git a/games/default/files/World/default/aliases.lua b/games/default/files/World/default/aliases.lua new file mode 100644 index 000000000..5e932bf30 --- /dev/null +++ b/games/default/files/World/default/aliases.lua @@ -0,0 +1,22 @@ +-- mods/default/aliases.lua + +-- Aliases to support loading worlds using nodes following the old naming convention +-- These can also be helpful when using chat commands, for example /giveme + +minetest.register_alias("comboblock:slab_white_onc_slab_white", "color:white") +minetest.register_alias("comboblock:slab_black_onc_slab_black", "color:black") +minetest.register_alias("comboblock:slab_red_onc_slab_red", "color:red") +minetest.register_alias("comboblock:slab_pink_onc_slab_pink", "color:pink") +minetest.register_alias("comboblock:slab_green_onc_slab_green", "color:green") +minetest.register_alias("comboblock:slab_yellow_onc_slab_yellow", "color:yellow") +minetest.register_alias("comboblock:slab_blue_onc_slab_blue", "color:blue") +minetest.register_alias("comboblock:slab_orange_onc_slab_orange", "color:orange") + +minetest.register_alias("white", "color:white") +minetest.register_alias("black", "color:black") +minetest.register_alias("red", "color:red") +minetest.register_alias("pink", "color:pink") +minetest.register_alias("green", "color:green") +minetest.register_alias("yellow", "color:yellow") +minetest.register_alias("blue", "color:blue") +minetest.register_alias("orange", "color:orange") diff --git a/games/default/files/World/default/creative.lua b/games/default/files/World/default/creative.lua new file mode 100644 index 000000000..e1e71433a --- /dev/null +++ b/games/default/files/World/default/creative.lua @@ -0,0 +1,83 @@ +creative = {} + +local creative_mode_cache = minetest.settings:get_bool("creative_mode") + +function creative.is_enabled_for(name) + return true +end + +if creative_mode_cache then + -- Dig time is modified according to difference (leveldiff) between tool + -- 'maxlevel' and node 'level'. Digtime is divided by the larger of + -- leveldiff and 1. + -- To speed up digging in creative, hand 'maxlevel' and 'digtime' have been + -- increased such that nodes of differing levels have an insignificant + -- effect on digtime. + local digtime = 42 + local caps = {times = {digtime, digtime, digtime}, uses = 0, maxlevel = 256} + + minetest.register_item(":", { + type = "none", + wield_image = "wieldhand.png", + wield_scale = {x = 1, y = 1, z = 2.5}, + range = 10, + tool_capabilities = { + full_punch_interval = 0.5, + max_drop_level = 3, + groupcaps = { + crumbly = caps, + cracky = caps, + snappy = caps, + choppy = caps, + oddly_breakable_by_hand = caps, + }, + damage_groups = {fleshy = 10}, + } + }) + +else + +local digtime = 42 + local caps = {times = {digtime, digtime, digtime}, uses = 0, maxlevel = 256} + + minetest.register_item(":", { + type = "none", + wield_image = "wieldhand.png", + wield_scale = {x = 1, y = 1, z = 2.5}, + range = 10, + tool_capabilities = { + full_punch_interval = 0.5, + max_drop_level = 3, + groupcaps = { + crumbly = caps, + cracky = caps, + snappy = caps, + choppy = caps, + oddly_breakable_by_hand = caps, + }, + damage_groups = {fleshy = 10}, + } + }) + +end + +-- Unlimited node placement +minetest.register_on_placenode(function(pos, newnode, placer, oldnode, itemstack) + return creative.is_enabled_for(placer:get_player_name()) +end) + +-- Don't pick up if the item is already in the inventory +local old_handle_node_drops = minetest.handle_node_drops +function minetest.handle_node_drops(pos, drops, digger) + if not digger or not digger:is_player() then + return + end + local inv = digger:get_inventory() + if inv then + for _, item in ipairs(drops) do + if not inv:contains_item("main", item, true) then + inv:add_item("main", item) + end + end + end +end diff --git a/games/default/files/World/default/functions.lua b/games/default/files/World/default/functions.lua new file mode 100644 index 000000000..4ddeb1704 --- /dev/null +++ b/games/default/files/World/default/functions.lua @@ -0,0 +1,541 @@ +-- mods/default/functions.lua + +-- +-- Sounds +-- + +function default.node_sound_defaults(table) + table = table or {} + table.footstep = table.footstep or + {name = "default_footstep_blockcolor", gain = 1.0} + table.dig = table.dig or + {name = "default_dig_blockcolor", gain = 0.25} + table.dug = table.dug or + {name = "default_dug_blockcolor", gain = 0.25} + table.place = table.place or + {name = "default_place_blockcolor", gain = 1.0} + return table +end + +function default.node_sound_water_defaults(table) + table = table or {} + table.footstep = table.footstep or + {name = "default_footstep_blockcolor", gain = 1.0} + table.dig = table.dig or + {name = "default_dig_blockcolor", gain = 0.25} + table.dug = table.dug or + {name = "default_dug_blockcolor", gain = 0.25} + table.place = table.place or + {name = "default_place_blockcolor", gain = 1.0} + return table +end + +function default.node_sound_wood_defaults(table) + table = table or {} + table.footstep = table.footstep or + {name = "default_footstep_blockcolor", gain = 1.0} + table.dig = table.dig or + {name = "default_dig_blockcolor", gain = 0.25} + table.dug = table.dug or + {name = "default_dug_blockcolor", gain = 0.25} + table.place = table.place or + {name = "default_place_blockcolor", gain = 1.0} + return table +end + +function default.node_sound_glass_defaults(table) + table = table or {} + table.footstep = table.footstep or + {name = "default_footstep_blockcolor", gain = 1.0} + table.dig = table.dig or + {name = "default_dig_blockcolor", gain = 0.25} + table.dug = table.dug or + {name = "default_dug_blockcolor", gain = 0.25} + table.place = table.place or + {name = "default_place_blockcolor", gain = 1.0} + return table +end + +function default.node_sound_stone_defaults(table) + table = table or {} + table.footstep = table.footstep or + {name = "default_footstep_blockcolor", gain = 1.0} + table.dig = table.dig or + {name = "default_dig_blockcolor", gain = 0.25} + table.dug = table.dug or + {name = "default_dug_blockcolor", gain = 0.25} + table.place = table.place or + {name = "default_place_blockcolor", gain = 1.0} + return table +end + +function default.node_sound_leaves_defaults(table) + table = table or {} + table.footstep = table.footstep or + {name = "default_footstep_blockcolor", gain = 1.0} + table.dig = table.dig or + {name = "default_dig_blockcolor", gain = 0.25} + table.dug = table.dug or + {name = "default_dug_blockcolor", gain = 0.25} + table.place = table.place or + {name = "default_place_blockcolor", gain = 1.0} + return table +end + +function default.node_sound_metal_defaults(table) + table = table or {} + table.footstep = table.footstep or + {name = "default_footstep_blockcolor", gain = 1.0} + table.dig = table.dig or + {name = "default_dig_blockcolor", gain = 0.25} + table.dug = table.dug or + {name = "default_dug_blockcolor", gain = 0.25} + table.place = table.place or + {name = "default_place_blockcolor", gain = 1.0} + return table +end + + +-- +-- Lavacooling +-- + +default.cool_lava = function(pos, node) + if node.name == "default:lava_source" then + minetest.set_node(pos, {name = "default:obsidian"}) + else -- Lava flowing + minetest.set_node(pos, {name = "default:stone"}) + end + minetest.sound_play("default_cool_lava", + {pos = pos, max_hear_distance = 16, gain = 0.25}) +end + +-- +-- optimized helper to put all items in an inventory into a drops list +-- + +function default.get_inventory_drops(pos, inventory, drops) + local inv = minetest.get_meta(pos):get_inventory() + local n = #drops + for i = 1, inv:get_size(inventory) do + local stack = inv:get_stack(inventory, i) + if stack:get_count() > 0 then + drops[n+1] = stack:to_table() + n = n + 1 + end + end +end + +-- +-- Papyrus and cactus growing +-- + +-- wrapping the functions in abm action is necessary to make overriding them possible + +function default.grow_cactus(pos, node) + if node.param2 >= 4 then + return + end + pos.y = pos.y - 1 + if minetest.get_item_group(minetest.get_node(pos).name, "sand") == 0 then + return + end + pos.y = pos.y + 1 + local height = 0 + while node.name == "default:cactus" and height < 4 do + height = height + 1 + pos.y = pos.y + 1 + node = minetest.get_node(pos) + end + if height == 4 or node.name ~= "air" then + return + end + if minetest.get_node_light(pos) < 13 then + return + end + minetest.set_node(pos, {name = "default:cactus"}) + return true +end + +function default.grow_papyrus(pos, node) + pos.y = pos.y - 1 + local name = minetest.get_node(pos).name + if name ~= "default:dirt_with_grass" and name ~= "default:dirt" then + return + end + if not minetest.find_node_near(pos, 3, {"group:water"}) then + return + end + pos.y = pos.y + 1 + local height = 0 + while node.name == "default:papyrus" and height < 4 do + height = height + 1 + pos.y = pos.y + 1 + node = minetest.get_node(pos) + end + if height == 4 or node.name ~= "air" then + return + end + if minetest.get_node_light(pos) < 13 then + return + end + minetest.set_node(pos, {name = "default:papyrus"}) + return true +end + +minetest.register_abm({ + label = "Grow cactus", + nodenames = {"default:cactus"}, + neighbors = {"group:sand"}, + interval = 12, + chance = 83, + action = default.grow_cactus +}) + +minetest.register_abm({ + label = "Grow papyrus", + nodenames = {"default:papyrus"}, + neighbors = {"default:dirt", "default:dirt_with_grass"}, + interval = 14, + chance = 71, + action = default.grow_papyrus +}) + + +-- +-- dig upwards +-- + +function default.dig_up(pos, node, digger) + if digger == nil then return end + local np = {x = pos.x, y = pos.y + 1, z = pos.z} + local nn = minetest.get_node(np) + if nn.name == node.name then + minetest.node_dig(np, nn, digger) + end +end + + +-- +-- Fence registration helper +-- + +function default.register_fence(name, def) + minetest.register_craft({ + output = name .. " 4", + recipe = { + { def.material, 'group:stick', def.material }, + { def.material, 'group:stick', def.material }, + } + }) + + local fence_texture = "default_fence_overlay.png^" .. def.texture .. + "^default_fence_overlay.png^[makealpha:255,126,126" + -- Allow almost everything to be overridden + local default_fields = { + paramtype = "light", + drawtype = "nodebox", + node_box = { + type = "connected", + fixed = {{-1/8, -1/2, -1/8, 1/8, 1/2, 1/8}}, + -- connect_top = + -- connect_bottom = + connect_front = {{-1/16,3/16,-1/2,1/16,5/16,-1/8}, + {-1/16,-5/16,-1/2,1/16,-3/16,-1/8}}, + connect_left = {{-1/2,3/16,-1/16,-1/8,5/16,1/16}, + {-1/2,-5/16,-1/16,-1/8,-3/16,1/16}}, + connect_back = {{-1/16,3/16,1/8,1/16,5/16,1/2}, + {-1/16,-5/16,1/8,1/16,-3/16,1/2}}, + connect_right = {{1/8,3/16,-1/16,1/2,5/16,1/16}, + {1/8,-5/16,-1/16,1/2,-3/16,1/16}}, + }, + connects_to = {"group:fence", "group:wood", "group:tree"}, + inventory_image = fence_texture, + wield_image = fence_texture, + tiles = {def.texture}, + sunlight_propagates = true, + is_ground_content = false, + groups = {}, + } + for k, v in pairs(default_fields) do + if not def[k] then + def[k] = v + end + end + + -- Always add to the fence group, even if no group provided + def.groups.fence = 1 + + def.texture = nil + def.material = nil + + minetest.register_node(name, def) +end + + +-- +-- Leafdecay +-- + +-- Prevent decay of placed leaves + +default.after_place_leaves = function(pos, placer, itemstack, pointed_thing) + if placer and not placer:get_player_control().sneak then + local node = minetest.get_node(pos) + node.param2 = 1 + minetest.set_node(pos, node) + end +end + +-- Leafdecay +local function leafdecay_after_destruct(pos, oldnode, def) + for _, v in pairs(minetest.find_nodes_in_area(vector.subtract(pos, def.radius), + vector.add(pos, def.radius), def.leaves)) do + local node = minetest.get_node(v) + local timer = minetest.get_node_timer(v) + if node.param2 == 0 and not timer:is_started() then + timer:start(math.random(20, 120) / 10) + end + end +end + +local function leafdecay_on_timer(pos, def) + if minetest.find_node_near(pos, def.radius, def.trunks) then + return false + end + + local node = minetest.get_node(pos) + local drops = minetest.get_node_drops(node.name) + for _, item in ipairs(drops) do + local is_leaf + for _, v in pairs(def.leaves) do + if v == item then + is_leaf = true + end + end + if minetest.get_item_group(item, "leafdecay_drop") ~= 0 or + not is_leaf then + minetest.add_item({ + x = pos.x - 0.5 + math.random(), + y = pos.y - 0.5 + math.random(), + z = pos.z - 0.5 + math.random(), + }, item) + end + end + + minetest.remove_node(pos) + minetest.check_for_falling(pos) +end + +function default.register_leafdecay(def) + assert(def.leaves) + assert(def.trunks) + assert(def.radius) + for _, v in pairs(def.trunks) do + minetest.override_item(v, { + after_destruct = function(pos, oldnode) + leafdecay_after_destruct(pos, oldnode, def) + end, + }) + end + for _, v in pairs(def.leaves) do + minetest.override_item(v, { + on_timer = function(pos) + leafdecay_on_timer(pos, def) + end, + }) + end +end + +-- +-- Convert dirt to something that fits the environment +-- + +minetest.register_abm({ + label = "Grass spread", + nodenames = {"default:dirt"}, + neighbors = { + "air", + "group:grass", + "group:dry_grass", + "default:snow", + }, + interval = 6, + chance = 50, + catch_up = false, + action = function(pos, node) + -- Check for darkness: night, shadow or under a light-blocking node + -- Returns if ignore above + local above = {x = pos.x, y = pos.y + 1, z = pos.z} + if (minetest.get_node_light(above) or 0) < 13 then + return + end + + -- Look for spreading dirt-type neighbours + local p2 = minetest.find_node_near(pos, 1, "group:spreading_dirt_type") + if p2 then + local n3 = minetest.get_node(p2) + minetest.set_node(pos, {name = n3.name}) + return + end + + -- Else, any seeding nodes on top? + local name = minetest.get_node(above).name + -- Snow check is cheapest, so comes first + if name == "default:snow" then + minetest.set_node(pos, {name = "default:dirt_with_snow"}) + -- Most likely case first + elseif minetest.get_item_group(name, "grass") ~= 0 then + minetest.set_node(pos, {name = "default:dirt_with_grass"}) + elseif minetest.get_item_group(name, "dry_grass") ~= 0 then + minetest.set_node(pos, {name = "default:dirt_with_dry_grass"}) + end + end +}) + + +-- +-- Grass and dry grass removed in darkness +-- + +minetest.register_abm({ + label = "Grass covered", + nodenames = {"group:spreading_dirt_type"}, + interval = 8, + chance = 50, + catch_up = false, + action = function(pos, node) + local above = {x = pos.x, y = pos.y + 1, z = pos.z} + local name = minetest.get_node(above).name + local nodedef = minetest.registered_nodes[name] + if name ~= "ignore" and nodedef and not ((nodedef.sunlight_propagates or + nodedef.paramtype == "light") and + nodedef.liquidtype == "none") then + minetest.set_node(pos, {name = "default:dirt"}) + end + end +}) + + +-- +-- Moss growth on cobble near water +-- + +minetest.register_abm({ + label = "Moss growth", + nodenames = {"default:cobble", "stairs:slab_cobble", "stairs:stair_cobble", "walls:cobble"}, + neighbors = {"group:water"}, + interval = 16, + chance = 200, + catch_up = false, + action = function(pos, node) + if node.name == "default:cobble" then + minetest.set_node(pos, {name = "default:mossycobble"}) + elseif node.name == "stairs:slab_cobble" then + minetest.set_node(pos, {name = "stairs:slab_mossycobble", param2 = node.param2}) + elseif node.name == "stairs:stair_cobble" then + minetest.set_node(pos, {name = "stairs:stair_mossycobble", param2 = node.param2}) + elseif node.name == "walls:cobble" then + minetest.set_node(pos, {name = "walls:mossycobble", param2 = node.param2}) + end + end +}) + + +-- +-- Checks if specified volume intersects a protected volume +-- + +function default.intersects_protection(minp, maxp, player_name, interval) + -- 'interval' is the largest allowed interval for the 3D lattice of checks + + -- Compute the optimal float step 'd' for each axis so that all corners and + -- borders are checked. 'd' will be smaller or equal to 'interval'. + -- Subtracting 1e-4 ensures that the max co-ordinate will be reached by the + -- for loop (which might otherwise not be the case due to rounding errors). + local d = {} + for _, c in pairs({"x", "y", "z"}) do + if maxp[c] > minp[c] then + d[c] = (maxp[c] - minp[c]) / math.ceil((maxp[c] - minp[c]) / interval) - 1e-4 + elseif maxp[c] == minp[c] then + d[c] = 1 -- Any value larger than 0 to avoid division by zero + else -- maxp[c] < minp[c], print error and treat as protection intersected + minetest.log("error", "maxp < minp in 'default.intersects_protection()'") + return true + end + end + + for zf = minp.z, maxp.z, d.z do + local z = math.floor(zf + 0.5) + for yf = minp.y, maxp.y, d.y do + local y = math.floor(yf + 0.5) + for xf = minp.x, maxp.x, d.x do + local x = math.floor(xf + 0.5) + if minetest.is_protected({x = x, y = y, z = z}, player_name) then + return true + end + end + end + end + + return false +end + + +-- +-- Coral death near air +-- + +minetest.register_abm({ + nodenames = {"default:coral_brown", "default:coral_orange"}, + neighbors = {"air"}, + interval = 17, + chance = 5, + catch_up = false, + action = function(pos, node) + minetest.set_node(pos, {name = "default:coral_skeleton"}) + end, +}) + + +-- +-- NOTICE: This method is not an official part of the API yet! +-- This method may change in future. +-- + +function default.can_interact_with_node(player, pos) + if player then + if minetest.check_player_privs(player, "protection_bypass") then + return true + end + else + return false + end + + local meta = minetest.get_meta(pos) + local owner = meta:get_string("owner") + + if not owner or owner == "" or owner == player:get_player_name() then + return true + end + + -- is player wielding the right key? + local item = player:get_wielded_item() + if item:get_name() == "default:key" then + local key_meta = item:get_meta() + + if key_meta:get_string("secret") == "" then + local key_oldmeta = item:get_metadata() + if key_oldmeta == "" or not minetest.parse_json(key_oldmeta) then + return false + end + + key_meta:set_string("secret", minetest.parse_json(key_oldmeta).secret) + item:set_metadata("") + end + + return meta:get_string("key_lock_secret") == key_meta:get_string("secret") + end + + return false +end diff --git a/games/default/files/World/default/init.lua b/games/default/files/World/default/init.lua new file mode 100644 index 000000000..332443167 --- /dev/null +++ b/games/default/files/World/default/init.lua @@ -0,0 +1,34 @@ +-- Minetest 0.4 mod: default +-- See README.txt for licensing and other information. + +-- The API documentation in here was moved into game_api.txt + +-- Definitions made by this mod that other mods can use too +default = {} + +default.LIGHT_MAX = 14 + +-- GUI related stuff +default.gui_bg = "bgcolor[#080808BB;true]" +default.gui_bg_img = "background[5,5;1,1;gui_formbg.png;true]" +default.gui_slots = "listcolors[#00000069;#5A5A5A;#141318;#30434C;#FFF]" + +minetest.register_item(":", + +{ + type = "none", + wield_image = "wieldhand.png", +wield_scale = {x=1,y=1,z=0.5}, +} + +) + + +-- Load files +local default_path = minetest.get_modpath("default") + +dofile(default_path.."/functions.lua") +dofile(default_path.."/mapgen.lua") +dofile(default_path.."/aliases.lua") +dofile(default_path.."/creative.lua") +dofile(default_path.."/player.lua") \ No newline at end of file diff --git a/games/default/files/World/default/license.txt b/games/default/files/World/default/license.txt new file mode 100644 index 000000000..72af72845 --- /dev/null +++ b/games/default/files/World/default/license.txt @@ -0,0 +1,177 @@ +License of source code +---------------------- + +GNU Lesser General Public License, version 2.1 +Copyright (C) 2011-2016 celeron55, Perttu Ahola +Copyright (C) 2011-2016 Various Minetest developers and contributors + +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 2.1 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: +https://www.gnu.org/licenses/old-licenses/lgpl-2.1.html + + +Licenses of media (textures, models and sounds) +----------------------------------------------- + +Attribution-ShareAlike 3.0 Unported (CC BY-SA 3.0) +Copyright (C) 2010-2016: + celeron55, Perttu Ahola + Cisoun + G4JC + VanessaE + RealBadAngel + Calinou + MirceaKitsune + Jordach + PilzAdam + jojoa1997 + InfinityProject + Splizard + Zeg9 + paramat + BlockMen + sofar + Neuromancer + Gambit + asl97 + KevDoy + Mito551 + GreenXenith + kaeza + kilbith + +You are free to: +Share — copy and redistribute the material in any medium or format. +Adapt — remix, transform, and build upon the material for any purpose, even commercially. +The licensor cannot revoke these freedoms as long as you follow the license terms. + +Under the following terms: + +Attribution — You must give appropriate credit, provide a link to the license, and +indicate if changes were made. You may do so in any reasonable manner, but not in any way +that suggests the licensor endorses you or your use. + +ShareAlike — If you remix, transform, or build upon the material, you must distribute +your contributions under the same license as the original. + +No additional restrictions — You may not apply legal terms or technological measures that +legally restrict others from doing anything the license permits. + +Notices: + +You do not have to comply with the license for elements of the material in the public +domain or where your use is permitted by an applicable exception or limitation. +No warranties are given. The license may not give you all of the permissions necessary +for your intended use. For example, other rights such as publicity, privacy, or moral +rights may limit how you use the material. + +For more details: +http://creativecommons.org/licenses/by-sa/3.0/ + +----------------------- + +Attribution-ShareAlike 4.0 International (CC BY-SA 4.0) +Copyright (C) 2014-2016 brunob.santos + +You are free to: +Share — copy and redistribute the material in any medium or format. +Adapt — remix, transform, and build upon the material for any purpose, even commercially. +The licensor cannot revoke these freedoms as long as you follow the license terms. + +Under the following terms: + +Attribution — You must give appropriate credit, provide a link to the license, and +indicate if changes were made. You may do so in any reasonable manner, but not in any way +that suggests the licensor endorses you or your use. + +ShareAlike — If you remix, transform, or build upon the material, you must distribute +your contributions under the same license as the original. + +No additional restrictions — You may not apply legal terms or technological measures that +legally restrict others from doing anything the license permits. + +Notices: + +You do not have to comply with the license for elements of the material in the public +domain or where your use is permitted by an applicable exception or limitation. +No warranties are given. The license may not give you all of the permissions necessary +for your intended use. For example, other rights such as publicity, privacy, or moral +rights may limit how you use the material. + +For more details: +http://creativecommons.org/licenses/by-sa/4.0/ + +----------------------- + +Attribution-ShareAlike 2.0 Generic (CC BY-SA 2.0) +Copyright (C) 2014-2016 Neuromancer + + +You are free to: +Share — copy and redistribute the material in any medium or format. +Adapt — remix, transform, and build upon the material for any purpose, even commercially. +The licensor cannot revoke these freedoms as long as you follow the license terms. + +Under the following terms: + +Attribution — You must give appropriate credit, provide a link to the license, and +indicate if changes were made. You may do so in any reasonable manner, but not in any way +that suggests the licensor endorses you or your use. + +ShareAlike — If you remix, transform, or build upon the material, you must distribute +your contributions under the same license as the original. + +No additional restrictions — You may not apply legal terms or technological measures that +legally restrict others from doing anything the license permits. + +Notices: + +You do not have to comply with the license for elements of the material in the public +domain or where your use is permitted by an applicable exception or limitation. +No warranties are given. The license may not give you all of the permissions necessary +for your intended use. For example, other rights such as publicity, privacy, or moral +rights may limit how you use the material. + +For more details: +http://creativecommons.org/licenses/by-sa/2.0/ + +----------------------- + +Attribution 3.0 Unported (CC BY 3.0) +Copyright (C) 2009 cmusounddesign +Copyright (C) 2010 Tomlija +Copyright (C) 2010 lsprice +Copyright (C) 2014 sonictechtonic +Copyright (C) 2015 yadronoff +Copyright (C) 2007 HerbertBoland +Copyright (C) 2006 AGFX + +You are free to: +Share — copy and redistribute the material in any medium or format. +Adapt — remix, transform, and build upon the material for any purpose, even commercially. +The licensor cannot revoke these freedoms as long as you follow the license terms. + +Under the following terms: + +Attribution — You must give appropriate credit, provide a link to the license, and +indicate if changes were made. You may do so in any reasonable manner, but not in any way +that suggests the licensor endorses you or your use. + +No additional restrictions — You may not apply legal terms or technological measures that +legally restrict others from doing anything the license permits. + +Notices: + +You do not have to comply with the license for elements of the material in the public +domain or where your use is permitted by an applicable exception or limitation. +No warranties are given. The license may not give you all of the permissions necessary +for your intended use. For example, other rights such as publicity, privacy, or moral +rights may limit how you use the material. + +For more details: +http://creativecommons.org/licenses/by/3.0/ diff --git a/games/default/files/World/default/mapgen.lua b/games/default/files/World/default/mapgen.lua new file mode 100644 index 000000000..9d2bf324f --- /dev/null +++ b/games/default/files/World/default/mapgen.lua @@ -0,0 +1,365 @@ +-- +-- Aliases for map generators +-- + +minetest.register_alias("mapgen_stone","color:black") + +minetest.register_alias("mapgen_dirt","comboblock:slab_orange_onc_slab_orange") + +minetest.register_alias("mapgen_dirt_with_grass","comboblock:slab_green_onc_slab_orange") + +minetest.register_alias("mapgen_sand","comboblock:slab_yellow_onc_slab_yellow") + +minetest.register_alias("mapgen_water_source","water:blue_water_source") + +minetest.register_alias("mapgen_river_water_source","water:blue_water_source") + +minetest.register_alias("mapgen_lava_source","water:red_water_source") + +minetest.register_alias("mapgen_gravel","comboblock:slab_black_onc_slab_black") + +minetest.register_alias("mapgen_desert_stone","comboblock:slab_black_onc_slab_black") + +minetest.register_alias("mapgen_desert_sand","comboblock:slab_yellow_onc_slab_yellow") + +minetest.register_alias("mapgen_dirt_with_snow","comboblock:slab_white_onc_slab_orange") + +minetest.register_alias("mapgen_snowblock","comboblock:slab_white_onc_slab_white") + +minetest.register_alias("mapgen_snow","comboblock:slab_white_onc_slab_white") + +minetest.register_alias("mapgen_ice","comboblock:slab_blue_onc_slab_blue") + +minetest.register_alias("mapgen_sandstone","comboblock:slab_orange_onc_slab_orange") + +-- Flora + +minetest.register_alias("mapgen_tree", "color:orange") +minetest.register_alias("mapgen_leaves", "color:green") +minetest.register_alias("mapgen_apple", "color:red") +minetest.register_alias("mapgen_jungletree", "color:orange") +minetest.register_alias("mapgen_jungleleaves", "color:green") +minetest.register_alias("mapgen_junglegrass", "color:green") +minetest.register_alias("mapgen_pine_tree", "color:orange") +minetest.register_alias("mapgen_pine_needles", "color:green") + +-- Dungeons + +minetest.register_alias("mapgen_cobble", "color:black") +minetest.register_alias("mapgen_stair_cobble", "stairs:stair_white") +minetest.register_alias("mapgen_mossycobble", "color:white") +minetest.register_alias("mapgen_stair_desert_stone", "stairs:stair_white") +minetest.register_alias("mapgen_sandstonebrick", "color:orange") +minetest.register_alias("mapgen_stair_sandstone_block", "stairs:stair_white") + +-- +-- Register biomes +-- + +-- All mapgens except mgv6 + +function default.register_biomes(upper_limit) + + -- White Biome (Cold) + + minetest.register_biome({ + name = "white", + node_top = "comboblock:slab_white_onc_slab_orange", + depth_top = 1, + node_filler = "comboblock:slab_orange_onc_slab_orange", + depth_filler = 1, + node_stone = "comboblock:slab_black_onc_slab_black", + --node_water_top = "", + --depth_water_top = , + --node_water = "", + --node_river_water = "", + node_riverbed = "comboblock:slab_yellow_onc_slab_yellow", + depth_riverbed = 2, + y_min = 5, + y_max = upper_limit, + heat_point = 20, + humidity_point = 35, + }) + + minetest.register_biome({ + name = "white_ocean", + --node_dust = "", + node_top = "comboblock:slab_yellow_onc_slab_yellow", + depth_top = 1, + node_filler = "comboblock:slab_yellow_onc_slab_yellow", + depth_filler = 3, + node_stone = "comboblock:slab_black_onc_slab_black", + node_water_top = "water:blue_water_source", + depth_water_top = 10, + --node_water = "", + --node_river_water = "", + node_riverbed = "comboblock:slab_yellow_onc_slab_yellow", + depth_riverbed = 2, + y_min = -112, + y_max = 4, + heat_point = 20, + humidity_point = 35, + }) + + -- Green Biome (Neutral) + + minetest.register_biome({ + name = "green", + --node_dust = "", + node_top = "comboblock:slab_green_onc_slab_orange", + depth_top = 1, + node_filler = "comboblock:slab_orange_onc_slab_orange", + depth_filler = 1, + node_stone = "comboblock:slab_black_onc_slab_black", + --node_water_top = "", + --depth_water_top = , + --node_water = "", + --node_river_water = "", + node_riverbed = "comboblock:slab_yellow_onc_slab_yellow", + depth_riverbed = 2, + y_min = 6, + y_max = upper_limit, + heat_point = 50, + humidity_point = 35, + }) + + minetest.register_biome({ + name = "green_ocean", + --node_dust = "", + node_top = "comboblock:slab_yellow_onc_slab_yellow", + depth_top = 1, + node_filler = "comboblock:slab_yellow_onc_slab_yellow", + depth_filler = 3, + node_stone = "comboblock:slab_black_onc_slab_black", + node_water_top = "water:blue_water_source", + depth_water_top = 10, + --node_water = "", + --node_river_water = "", + node_riverbed = "comboblock:slab_yellow_onc_slab_yellow", + depth_riverbed = 2, + y_min = -112, + y_max = 4, + heat_point = 50, + humidity_point = 35, + }) + + -- Yellow Biome (Hot) + + minetest.register_biome({ + name = "yellow", + --node_dust = "", + node_top = "comboblock:slab_yellow_onc_slab_yellow", + depth_top = 1, + node_filler = "comboblock:slab_yellow_onc_slab_yellow", + depth_filler = 1, + node_stone = "comboblock:slab_orange_onc_slab_orange", + --node_water_top = "" , + --depth_water_top = , + --node_water = "", + --node_river_water = "", + node_riverbed = "comboblock:slab_yellow_onc_slab_yellow", + depth_riverbed = 2, + y_min = 5, + y_max = upper_limit, + heat_point = 92, + humidity_point = 16, + }) + + minetest.register_biome({ + name = "yellow_ocean", + --node_dust = "", + node_top = "comboblock:slab_yellow_onc_slab_yellow", + depth_top = 1, + node_filler = "comboblock:slab_yellow_onc_slab_yellow", + depth_filler = 3, + node_stone = "comboblock:slab_orange_onc_slab_orange", + node_water_top = "water:blue_water_source", + depth_water_top = 10, + --node_water = "", + --node_river_water = "", + node_riverbed = "comboblock:slab_yellow_onc_slab_yellow", + depth_riverbed = 2, + y_min = -112, + y_max = 4, + heat_point = 92, + humidity_point = 16, + }) + +end + +-- +-- Register decorations +-- + +function default.register_decorations() + + -- Green Biome (Neutral) + + minetest.register_decoration({ + deco_type = "simple", + place_on = {"comboblock:slab_green_onc_slab_orange"}, + sidelen = 16, + noise_params = { + offset = 0, + scale = 0.002, + spread = {x = 250, y = 250, z = 250}, + seed = 2, + octaves = 3, + persist = 0.66 + }, + biomes = {" green "}, + y_min = 1, + y_max = 31000, + decoration = "trees:big_green", + + }) + + minetest.register_decoration({ + deco_type = "simple", + place_on = {"comboblock:slab_green_onc_slab_orange"}, + sidelen = 16, + noise_params = { + offset = 0, + scale = 0.002, + spread = {x = 250, y = 250, z = 250}, + seed = 2, + octaves = 3, + persist = 0.66 + }, + biomes = {" green "}, + y_min = 1, + y_max = 31000, + decoration = "trees:normal_red", + + }) + + minetest.register_decoration({ + deco_type = "simple", + place_on = {"comboblock:slab_green_onc_slab_orange"}, + sidelen = 16, + noise_params = { + offset = 0, + scale = 0.002, + spread = {x = 250, y = 250, z = 250}, + seed = 2, + octaves = 3, + persist = 0.66 + }, + biomes = {" green "}, + y_min = 1, + y_max = 31000, + decoration = "trees:small_yellow", + + }) + +-- White Biome (Cold) + +minetest.register_decoration({ + deco_type = "simple", + place_on = {"comboblock:slab_white_onc_slab_orange"}, + sidelen = 16, + noise_params = { + offset = 0, + scale = 0.002, + spread = {x = 250, y = 250, z = 250}, + seed = 2, + octaves = 3, + persist = 0.66 + }, + biomes = {" white "}, + y_min = 1, + y_max = 31000, + decoration = "trees:big_blue", + + }) + + minetest.register_decoration({ + deco_type = "simple", + place_on = {"comboblock:slab_white_onc_slab_orange"}, + sidelen = 16, + noise_params = { + offset = 0, + scale = 0.002, + spread = {x = 250, y = 250, z = 250}, + seed = 2, + octaves = 3, + persist = 0.66 + }, + biomes = {" white "}, + y_min = 1, + y_max = 31000, + decoration = "trees:normal_pink", + + }) + +-- Yellow Biome (Hot) + +minetest.register_decoration({ + deco_type = "simple", + place_on = {"comboblock:slab_yellow_onc_slab_yellow"}, + sidelen = 16, + noise_params = { + offset = 0, + scale = 0.002, + spread = {x = 250, y = 250, z = 250}, + seed = 2, + octaves = 3, + persist = 0.66 + }, + biomes = {" yellow "}, + y_min = 1, + y_max = 31000, + decoration = "trees:normal_black", + }) + + minetest.register_decoration({ + deco_type = "simple", + place_on = {"comboblock:slab_yellow_onc_slab_yellow"}, + sidelen = 16, + noise_params = { + offset = 0, + scale = 0.002, + spread = {x = 250, y = 250, z = 250}, + seed = 2, + octaves = 3, + persist = 0.66 + }, + biomes = {" yellow "}, + y_min = 1, + y_max = 31000, + decoration = "trees:small_white", + + }) + +end + + +-- +-- Detect mapgen, flags and parameters to select functions +-- + +-- Get setting or default +local mgv7_spflags = minetest.get_mapgen_setting("mgv7_spflags") or + "mountains, ridges, nofloatlands" +local captures_float = string.match(mgv7_spflags, "floatlands") +local captures_nofloat = string.match(mgv7_spflags, "nofloatlands") + +local mgv7_floatland_level = minetest.get_mapgen_setting("mgv7_floatland_level") or 1280 +local mgv7_shadow_limit = minetest.get_mapgen_setting("mgv7_shadow_limit") or 1024 + +minetest.clear_registered_biomes() +minetest.clear_registered_ores() +minetest.clear_registered_decorations() + +local mg_name = minetest.get_mapgen_setting("mg_name") + +if mg_name == "v7" and captures_float == "floatlands" and + captures_nofloat ~= "nofloatlands" then + -- Mgv7 with floatlands + default.register_biomes(mgv7_shadow_limit - 1) + default.register_floatland_biomes(mgv7_floatland_level, mgv7_shadow_limit) + default.register_decorations() +else + default.register_biomes(31000) + default.register_decorations() +end diff --git a/games/default/files/World/default/models/character.b3d b/games/default/files/World/default/models/character.b3d new file mode 100644 index 000000000..523834028 Binary files /dev/null and b/games/default/files/World/default/models/character.b3d differ diff --git a/games/default/files/World/default/models/character.blend b/games/default/files/World/default/models/character.blend new file mode 100644 index 000000000..cc22e5f63 Binary files /dev/null and b/games/default/files/World/default/models/character.blend differ diff --git a/games/default/files/World/default/models/character.png b/games/default/files/World/default/models/character.png new file mode 100644 index 000000000..8472a8784 Binary files /dev/null and b/games/default/files/World/default/models/character.png differ diff --git a/games/default/files/World/default/player.lua b/games/default/files/World/default/player.lua new file mode 100644 index 000000000..a1efcaed8 --- /dev/null +++ b/games/default/files/World/default/player.lua @@ -0,0 +1,171 @@ +-- Minetest 0.4 mod: player +-- See README.txt for licensing and other information. + +-- Player animation blending +-- Note: This is currently broken due to a bug in Irrlicht, leave at 0 +local animation_blend = 0 + +default.registered_player_models = { } + +-- Local for speed. +local models = default.registered_player_models + +function default.player_register_model(name, def) + models[name] = def +end + +-- License Model Player : CC0 +-- https://opengameart.org/content/animated-human-low-poly +-- Model Player by Quaternius + +-- Modify and Export b3d by Kroukuk + +-- Default player appearance +default.player_register_model("character.b3d", { + animation_speed = 60, + textures = {"character.png", }, + animations = { + +--run: x=322 y=338 +--work: x=426 y=581 + + stand = { x=26, y=266, }, + lay = { x=339, y=424, }, + walk = { x=295, y=320, }, + mine = { x=268, y=292, }, + +--walk_fast = { x=322, y=338, }, +--dog_mine = { x=426, y=581, }, + walk_mine = { x=0, y=0, }, + sit = { x= 0, y=0, }, +--jump = { x= 0, y=24, }, + + }, +}) + +-- Player stats and animations +local player_model = {} +local player_textures = {} +local player_anim = {} +local player_sneak = {} +default.player_attached = {} + +function default.player_get_animation(player) + local name = player:get_player_name() + return { + model = player_model[name], + textures = player_textures[name], + animation = player_anim[name], + } +end + +-- Called when a player's appearance needs to be updated +function default.player_set_model(player, model_name) + local name = player:get_player_name() + local model = models[model_name] + if model then + if player_model[name] == model_name then + return + end + player:set_properties({ + mesh = model_name, + textures = player_textures[name] or model.textures, + visual = "mesh", + visual_size = 4, + collisionbox = model.collisionbox or {-0.3, -1.00, -0.3, 0.3, 1.0, 0.3}, + stepheight = model.stepheight or 0.4, + eye_height = model.eye_height or 0.8, + }) + default.player_set_animation(player, "stand") + else + player:set_properties({ + textures = { "player.png", "player_back.png", }, + visual = "upright_sprite", + }) + end + player_model[name] = model_name +end + +function default.player_set_textures(player, textures) + local name = player:get_player_name() + player_textures[name] = textures + player:set_properties({textures = textures,}) +end + +function default.player_set_animation(player, anim_name, speed) + local name = player:get_player_name() + if player_anim[name] == anim_name then + return + end + local model = player_model[name] and models[player_model[name]] + if not (model and model.animations[anim_name]) then + return + end + local anim = model.animations[anim_name] + player_anim[name] = anim_name + player:set_animation(anim, speed or model.animation_speed, animation_blend) +end + +-- Update appearance when the player joins +minetest.register_on_joinplayer(function(player) + default.player_attached[player:get_player_name()] = false + default.player_set_model(player, "character.b3d") + player:set_local_animation({x=0, y=0}, {x=0, y=0}, {x=0, y=0}, {x=0, y=0}, 0) + + player:hud_set_hotbar_image("gui_hotbar.png") + player:hud_set_hotbar_selected_image("gui_hotbar_selected.png") +end) + +minetest.register_on_leaveplayer(function(player) + local name = player:get_player_name() + player_model[name] = nil + player_anim[name] = nil + player_textures[name] = nil +end) + +-- Localize for better performance. +local player_set_animation = default.player_set_animation +local player_attached = default.player_attached + +-- Check each player and apply animations +minetest.register_globalstep(function(dtime) + for _, player in pairs(minetest.get_connected_players()) do + local name = player:get_player_name() + local model_name = player_model[name] + local model = model_name and models[model_name] + if model and not player_attached[name] then + local controls = player:get_player_control() + local walking = false + local animation_speed_mod = model.animation_speed or 30 + + -- Determine if the player is walking + if controls.up or controls.down or controls.left or controls.right then + walking = true + end + + -- Determine if the player is sneaking, and reduce animation speed if so + if controls.sneak then + animation_speed_mod = animation_speed_mod / 2 + end + + -- Apply animations based on what the player is doing + if player:get_hp() == 0 then + player_set_animation(player, "lay") + elseif walking then + if player_sneak[name] ~= controls.sneak then + player_anim[name] = nil + player_sneak[name] = controls.sneak + end + if controls.LMB then + player_set_animation(player, "walk_mine", animation_speed_mod) + else + player_set_animation(player, "walk", animation_speed_mod) + end + elseif controls.LMB then + player_set_animation(player, "mine") + else + player_set_animation(player, "stand", animation_speed_mod) + end + end + end +end) diff --git a/games/default/files/World/default/schematics/boat.mts b/games/default/files/World/default/schematics/boat.mts new file mode 100644 index 000000000..0220fc4da Binary files /dev/null and b/games/default/files/World/default/schematics/boat.mts differ diff --git a/games/default/files/World/default/schematics/truc.mts b/games/default/files/World/default/schematics/truc.mts new file mode 100644 index 000000000..c6a6a85f6 Binary files /dev/null and b/games/default/files/World/default/schematics/truc.mts differ diff --git a/games/default/files/World/default/sounds/default_dig_blockcolor.1.ogg b/games/default/files/World/default/sounds/default_dig_blockcolor.1.ogg new file mode 100644 index 000000000..f229a27e6 Binary files /dev/null and b/games/default/files/World/default/sounds/default_dig_blockcolor.1.ogg differ diff --git a/games/default/files/World/default/sounds/default_dug_blockcolor.1.ogg b/games/default/files/World/default/sounds/default_dug_blockcolor.1.ogg new file mode 100644 index 000000000..f229a27e6 Binary files /dev/null and b/games/default/files/World/default/sounds/default_dug_blockcolor.1.ogg differ diff --git a/games/default/files/World/default/sounds/default_footsteep_blockcolor.1.ogg b/games/default/files/World/default/sounds/default_footsteep_blockcolor.1.ogg new file mode 100644 index 000000000..49edc994f Binary files /dev/null and b/games/default/files/World/default/sounds/default_footsteep_blockcolor.1.ogg differ diff --git a/games/default/files/World/default/sounds/default_place_blockcolor.1.ogg b/games/default/files/World/default/sounds/default_place_blockcolor.1.ogg new file mode 100644 index 000000000..c52092880 Binary files /dev/null and b/games/default/files/World/default/sounds/default_place_blockcolor.1.ogg differ diff --git a/games/default/files/World/default/textures/bubble.png b/games/default/files/World/default/textures/bubble.png new file mode 100644 index 000000000..100fe15fa Binary files /dev/null and b/games/default/files/World/default/textures/bubble.png differ diff --git a/games/default/files/World/default/textures/crack_anylength.png b/games/default/files/World/default/textures/crack_anylength.png new file mode 100644 index 000000000..297eced40 Binary files /dev/null and b/games/default/files/World/default/textures/crack_anylength.png differ diff --git a/games/default/files/World/default/textures/default_acacia_bush_sapling.png b/games/default/files/World/default/textures/default_acacia_bush_sapling.png new file mode 100644 index 000000000..940b3aacb Binary files /dev/null and b/games/default/files/World/default/textures/default_acacia_bush_sapling.png differ diff --git a/games/default/files/World/default/textures/default_acacia_bush_stem.png b/games/default/files/World/default/textures/default_acacia_bush_stem.png new file mode 100644 index 000000000..290391526 Binary files /dev/null and b/games/default/files/World/default/textures/default_acacia_bush_stem.png differ diff --git a/games/default/files/World/default/textures/default_acacia_leaves.png b/games/default/files/World/default/textures/default_acacia_leaves.png new file mode 100644 index 000000000..626e1b306 Binary files /dev/null and b/games/default/files/World/default/textures/default_acacia_leaves.png differ diff --git a/games/default/files/World/default/textures/default_acacia_leaves_simple.png b/games/default/files/World/default/textures/default_acacia_leaves_simple.png new file mode 100644 index 000000000..3c7015bbb Binary files /dev/null and b/games/default/files/World/default/textures/default_acacia_leaves_simple.png differ diff --git a/games/default/files/World/default/textures/default_acacia_sapling.png b/games/default/files/World/default/textures/default_acacia_sapling.png new file mode 100644 index 000000000..07170a03d Binary files /dev/null and b/games/default/files/World/default/textures/default_acacia_sapling.png differ diff --git a/games/default/files/World/default/textures/default_acacia_tree.png b/games/default/files/World/default/textures/default_acacia_tree.png new file mode 100644 index 000000000..58bb3c407 Binary files /dev/null and b/games/default/files/World/default/textures/default_acacia_tree.png differ diff --git a/games/default/files/World/default/textures/default_acacia_tree_top.png b/games/default/files/World/default/textures/default_acacia_tree_top.png new file mode 100644 index 000000000..a8a0ce05b Binary files /dev/null and b/games/default/files/World/default/textures/default_acacia_tree_top.png differ diff --git a/games/default/files/World/default/textures/default_acacia_wood.png b/games/default/files/World/default/textures/default_acacia_wood.png new file mode 100644 index 000000000..b5abf1e9e Binary files /dev/null and b/games/default/files/World/default/textures/default_acacia_wood.png differ diff --git a/games/default/files/World/default/textures/default_apple.png b/games/default/files/World/default/textures/default_apple.png new file mode 100644 index 000000000..7549bfd2c Binary files /dev/null and b/games/default/files/World/default/textures/default_apple.png differ diff --git a/games/default/files/World/default/textures/default_aspen_leaves.png b/games/default/files/World/default/textures/default_aspen_leaves.png new file mode 100644 index 000000000..73064237c Binary files /dev/null and b/games/default/files/World/default/textures/default_aspen_leaves.png differ diff --git a/games/default/files/World/default/textures/default_aspen_sapling.png b/games/default/files/World/default/textures/default_aspen_sapling.png new file mode 100644 index 000000000..f8d9136a0 Binary files /dev/null and b/games/default/files/World/default/textures/default_aspen_sapling.png differ diff --git a/games/default/files/World/default/textures/default_aspen_tree.png b/games/default/files/World/default/textures/default_aspen_tree.png new file mode 100644 index 000000000..d7cc2a036 Binary files /dev/null and b/games/default/files/World/default/textures/default_aspen_tree.png differ diff --git a/games/default/files/World/default/textures/default_aspen_tree_top.png b/games/default/files/World/default/textures/default_aspen_tree_top.png new file mode 100644 index 000000000..fcca03804 Binary files /dev/null and b/games/default/files/World/default/textures/default_aspen_tree_top.png differ diff --git a/games/default/files/World/default/textures/default_aspen_wood.png b/games/default/files/World/default/textures/default_aspen_wood.png new file mode 100644 index 000000000..2b584b319 Binary files /dev/null and b/games/default/files/World/default/textures/default_aspen_wood.png differ diff --git a/games/default/files/World/default/textures/default_book.png b/games/default/files/World/default/textures/default_book.png new file mode 100644 index 000000000..448a7df02 Binary files /dev/null and b/games/default/files/World/default/textures/default_book.png differ diff --git a/games/default/files/World/default/textures/default_book_written.png b/games/default/files/World/default/textures/default_book_written.png new file mode 100644 index 000000000..9196ac647 Binary files /dev/null and b/games/default/files/World/default/textures/default_book_written.png differ diff --git a/games/default/files/World/default/textures/default_bookshelf.png b/games/default/files/World/default/textures/default_bookshelf.png new file mode 100644 index 000000000..10d648373 Binary files /dev/null and b/games/default/files/World/default/textures/default_bookshelf.png differ diff --git a/games/default/files/World/default/textures/default_bookshelf_slot.png b/games/default/files/World/default/textures/default_bookshelf_slot.png new file mode 100644 index 000000000..715a3dce7 Binary files /dev/null and b/games/default/files/World/default/textures/default_bookshelf_slot.png differ diff --git a/games/default/files/World/default/textures/default_brick.png b/games/default/files/World/default/textures/default_brick.png new file mode 100644 index 000000000..ab1912105 Binary files /dev/null and b/games/default/files/World/default/textures/default_brick.png differ diff --git a/games/default/files/World/default/textures/default_bronze_block.png b/games/default/files/World/default/textures/default_bronze_block.png new file mode 100644 index 000000000..1d0c9d5a2 Binary files /dev/null and b/games/default/files/World/default/textures/default_bronze_block.png differ diff --git a/games/default/files/World/default/textures/default_bronze_ingot.png b/games/default/files/World/default/textures/default_bronze_ingot.png new file mode 100644 index 000000000..6cccdf6e4 Binary files /dev/null and b/games/default/files/World/default/textures/default_bronze_ingot.png differ diff --git a/games/default/files/World/default/textures/default_bush_sapling.png b/games/default/files/World/default/textures/default_bush_sapling.png new file mode 100644 index 000000000..905ba4b83 Binary files /dev/null and b/games/default/files/World/default/textures/default_bush_sapling.png differ diff --git a/games/default/files/World/default/textures/default_bush_stem.png b/games/default/files/World/default/textures/default_bush_stem.png new file mode 100644 index 000000000..18b615f72 Binary files /dev/null and b/games/default/files/World/default/textures/default_bush_stem.png differ diff --git a/games/default/files/World/default/textures/default_cactus_side.png b/games/default/files/World/default/textures/default_cactus_side.png new file mode 100644 index 000000000..8d6c40c13 Binary files /dev/null and b/games/default/files/World/default/textures/default_cactus_side.png differ diff --git a/games/default/files/World/default/textures/default_cactus_top.png b/games/default/files/World/default/textures/default_cactus_top.png new file mode 100644 index 000000000..cf46aa2d8 Binary files /dev/null and b/games/default/files/World/default/textures/default_cactus_top.png differ diff --git a/games/default/files/World/default/textures/default_chest_front.png b/games/default/files/World/default/textures/default_chest_front.png new file mode 100644 index 000000000..85227d8fd Binary files /dev/null and b/games/default/files/World/default/textures/default_chest_front.png differ diff --git a/games/default/files/World/default/textures/default_chest_inside.png b/games/default/files/World/default/textures/default_chest_inside.png new file mode 100644 index 000000000..5f7b6b132 Binary files /dev/null and b/games/default/files/World/default/textures/default_chest_inside.png differ diff --git a/games/default/files/World/default/textures/default_chest_lock.png b/games/default/files/World/default/textures/default_chest_lock.png new file mode 100644 index 000000000..73f46c786 Binary files /dev/null and b/games/default/files/World/default/textures/default_chest_lock.png differ diff --git a/games/default/files/World/default/textures/default_chest_side.png b/games/default/files/World/default/textures/default_chest_side.png new file mode 100644 index 000000000..44a65a43d Binary files /dev/null and b/games/default/files/World/default/textures/default_chest_side.png differ diff --git a/games/default/files/World/default/textures/default_chest_top.png b/games/default/files/World/default/textures/default_chest_top.png new file mode 100644 index 000000000..f4a92ee07 Binary files /dev/null and b/games/default/files/World/default/textures/default_chest_top.png differ diff --git a/games/default/files/World/default/textures/default_clay.png b/games/default/files/World/default/textures/default_clay.png new file mode 100644 index 000000000..76e5a40ab Binary files /dev/null and b/games/default/files/World/default/textures/default_clay.png differ diff --git a/games/default/files/World/default/textures/default_clay_brick.png b/games/default/files/World/default/textures/default_clay_brick.png new file mode 100644 index 000000000..dc7a4317e Binary files /dev/null and b/games/default/files/World/default/textures/default_clay_brick.png differ diff --git a/games/default/files/World/default/textures/default_clay_lump.png b/games/default/files/World/default/textures/default_clay_lump.png new file mode 100644 index 000000000..c1d0220d4 Binary files /dev/null and b/games/default/files/World/default/textures/default_clay_lump.png differ diff --git a/games/default/files/World/default/textures/default_cloud.png b/games/default/files/World/default/textures/default_cloud.png new file mode 100644 index 000000000..faf0ec13d Binary files /dev/null and b/games/default/files/World/default/textures/default_cloud.png differ diff --git a/games/default/files/World/default/textures/default_coal_block.png b/games/default/files/World/default/textures/default_coal_block.png new file mode 100644 index 000000000..6fe9ed936 Binary files /dev/null and b/games/default/files/World/default/textures/default_coal_block.png differ diff --git a/games/default/files/World/default/textures/default_coal_lump.png b/games/default/files/World/default/textures/default_coal_lump.png new file mode 100644 index 000000000..792961dc7 Binary files /dev/null and b/games/default/files/World/default/textures/default_coal_lump.png differ diff --git a/games/default/files/World/default/textures/default_cobble.png b/games/default/files/World/default/textures/default_cobble.png new file mode 100644 index 000000000..d3798404b Binary files /dev/null and b/games/default/files/World/default/textures/default_cobble.png differ diff --git a/games/default/files/World/default/textures/default_copper_block.png b/games/default/files/World/default/textures/default_copper_block.png new file mode 100644 index 000000000..85337546f Binary files /dev/null and b/games/default/files/World/default/textures/default_copper_block.png differ diff --git a/games/default/files/World/default/textures/default_copper_ingot.png b/games/default/files/World/default/textures/default_copper_ingot.png new file mode 100644 index 000000000..bcad9c05e Binary files /dev/null and b/games/default/files/World/default/textures/default_copper_ingot.png differ diff --git a/games/default/files/World/default/textures/default_copper_lump.png b/games/default/files/World/default/textures/default_copper_lump.png new file mode 100644 index 000000000..998c592e1 Binary files /dev/null and b/games/default/files/World/default/textures/default_copper_lump.png differ diff --git a/games/default/files/World/default/textures/default_coral_brown.png b/games/default/files/World/default/textures/default_coral_brown.png new file mode 100644 index 000000000..8a775fe06 Binary files /dev/null and b/games/default/files/World/default/textures/default_coral_brown.png differ diff --git a/games/default/files/World/default/textures/default_coral_orange.png b/games/default/files/World/default/textures/default_coral_orange.png new file mode 100644 index 000000000..cefac6273 Binary files /dev/null and b/games/default/files/World/default/textures/default_coral_orange.png differ diff --git a/games/default/files/World/default/textures/default_coral_skeleton.png b/games/default/files/World/default/textures/default_coral_skeleton.png new file mode 100644 index 000000000..fa48f1512 Binary files /dev/null and b/games/default/files/World/default/textures/default_coral_skeleton.png differ diff --git a/games/default/files/World/default/textures/default_desert_cobble.png b/games/default/files/World/default/textures/default_desert_cobble.png new file mode 100644 index 000000000..184a9d885 Binary files /dev/null and b/games/default/files/World/default/textures/default_desert_cobble.png differ diff --git a/games/default/files/World/default/textures/default_desert_sand.png b/games/default/files/World/default/textures/default_desert_sand.png new file mode 100644 index 000000000..371b8c7ee Binary files /dev/null and b/games/default/files/World/default/textures/default_desert_sand.png differ diff --git a/games/default/files/World/default/textures/default_desert_sandstone.png b/games/default/files/World/default/textures/default_desert_sandstone.png new file mode 100644 index 000000000..52e445fa1 Binary files /dev/null and b/games/default/files/World/default/textures/default_desert_sandstone.png differ diff --git a/games/default/files/World/default/textures/default_desert_sandstone_block.png b/games/default/files/World/default/textures/default_desert_sandstone_block.png new file mode 100644 index 000000000..8fc54e75b Binary files /dev/null and b/games/default/files/World/default/textures/default_desert_sandstone_block.png differ diff --git a/games/default/files/World/default/textures/default_desert_sandstone_brick.png b/games/default/files/World/default/textures/default_desert_sandstone_brick.png new file mode 100644 index 000000000..ab58db523 Binary files /dev/null and b/games/default/files/World/default/textures/default_desert_sandstone_brick.png differ diff --git a/games/default/files/World/default/textures/default_desert_stone.png b/games/default/files/World/default/textures/default_desert_stone.png new file mode 100644 index 000000000..5d3aded2d Binary files /dev/null and b/games/default/files/World/default/textures/default_desert_stone.png differ diff --git a/games/default/files/World/default/textures/default_desert_stone_block.png b/games/default/files/World/default/textures/default_desert_stone_block.png new file mode 100644 index 000000000..9eb8e9243 Binary files /dev/null and b/games/default/files/World/default/textures/default_desert_stone_block.png differ diff --git a/games/default/files/World/default/textures/default_desert_stone_brick.png b/games/default/files/World/default/textures/default_desert_stone_brick.png new file mode 100644 index 000000000..a603d18fb Binary files /dev/null and b/games/default/files/World/default/textures/default_desert_stone_brick.png differ diff --git a/games/default/files/World/default/textures/default_diamond.png b/games/default/files/World/default/textures/default_diamond.png new file mode 100644 index 000000000..a8dac747d Binary files /dev/null and b/games/default/files/World/default/textures/default_diamond.png differ diff --git a/games/default/files/World/default/textures/default_diamond_block.png b/games/default/files/World/default/textures/default_diamond_block.png new file mode 100644 index 000000000..20c33edb2 Binary files /dev/null and b/games/default/files/World/default/textures/default_diamond_block.png differ diff --git a/games/default/files/World/default/textures/default_dirt.png b/games/default/files/World/default/textures/default_dirt.png new file mode 100644 index 000000000..ca7e4aef1 Binary files /dev/null and b/games/default/files/World/default/textures/default_dirt.png differ diff --git a/games/default/files/World/default/textures/default_dry_grass.png b/games/default/files/World/default/textures/default_dry_grass.png new file mode 100644 index 000000000..ca7e4aef1 Binary files /dev/null and b/games/default/files/World/default/textures/default_dry_grass.png differ diff --git a/games/default/files/World/default/textures/default_dry_grass_1.png b/games/default/files/World/default/textures/default_dry_grass_1.png new file mode 100644 index 000000000..5cf68a3ba Binary files /dev/null and b/games/default/files/World/default/textures/default_dry_grass_1.png differ diff --git a/games/default/files/World/default/textures/default_dry_grass_2.png b/games/default/files/World/default/textures/default_dry_grass_2.png new file mode 100644 index 000000000..c925aceb8 Binary files /dev/null and b/games/default/files/World/default/textures/default_dry_grass_2.png differ diff --git a/games/default/files/World/default/textures/default_dry_grass_3.png b/games/default/files/World/default/textures/default_dry_grass_3.png new file mode 100644 index 000000000..4e4d84e43 Binary files /dev/null and b/games/default/files/World/default/textures/default_dry_grass_3.png differ diff --git a/games/default/files/World/default/textures/default_dry_grass_4.png b/games/default/files/World/default/textures/default_dry_grass_4.png new file mode 100644 index 000000000..d315849e0 Binary files /dev/null and b/games/default/files/World/default/textures/default_dry_grass_4.png differ diff --git a/games/default/files/World/default/textures/default_dry_grass_5.png b/games/default/files/World/default/textures/default_dry_grass_5.png new file mode 100644 index 000000000..871d04cc0 Binary files /dev/null and b/games/default/files/World/default/textures/default_dry_grass_5.png differ diff --git a/games/default/files/World/default/textures/default_dry_grass_side.png b/games/default/files/World/default/textures/default_dry_grass_side.png new file mode 100644 index 000000000..ef375b7fc Binary files /dev/null and b/games/default/files/World/default/textures/default_dry_grass_side.png differ diff --git a/games/default/files/World/default/textures/default_dry_shrub.png b/games/default/files/World/default/textures/default_dry_shrub.png new file mode 100644 index 000000000..e8a7f2773 Binary files /dev/null and b/games/default/files/World/default/textures/default_dry_shrub.png differ diff --git a/games/default/files/World/default/textures/default_fence_acacia_wood.png b/games/default/files/World/default/textures/default_fence_acacia_wood.png new file mode 100644 index 000000000..3b973f34f Binary files /dev/null and b/games/default/files/World/default/textures/default_fence_acacia_wood.png differ diff --git a/games/default/files/World/default/textures/default_fence_aspen_wood.png b/games/default/files/World/default/textures/default_fence_aspen_wood.png new file mode 100644 index 000000000..0a6558e0d Binary files /dev/null and b/games/default/files/World/default/textures/default_fence_aspen_wood.png differ diff --git a/games/default/files/World/default/textures/default_fence_junglewood.png b/games/default/files/World/default/textures/default_fence_junglewood.png new file mode 100644 index 000000000..c390941ce Binary files /dev/null and b/games/default/files/World/default/textures/default_fence_junglewood.png differ diff --git a/games/default/files/World/default/textures/default_fence_overlay.png b/games/default/files/World/default/textures/default_fence_overlay.png new file mode 100644 index 000000000..718184cc5 Binary files /dev/null and b/games/default/files/World/default/textures/default_fence_overlay.png differ diff --git a/games/default/files/World/default/textures/default_fence_pine_wood.png b/games/default/files/World/default/textures/default_fence_pine_wood.png new file mode 100644 index 000000000..74609d99d Binary files /dev/null and b/games/default/files/World/default/textures/default_fence_pine_wood.png differ diff --git a/games/default/files/World/default/textures/default_fence_wood.png b/games/default/files/World/default/textures/default_fence_wood.png new file mode 100644 index 000000000..1e76430d2 Binary files /dev/null and b/games/default/files/World/default/textures/default_fence_wood.png differ diff --git a/games/default/files/World/default/textures/default_flint.png b/games/default/files/World/default/textures/default_flint.png new file mode 100644 index 000000000..226c7406f Binary files /dev/null and b/games/default/files/World/default/textures/default_flint.png differ diff --git a/games/default/files/World/default/textures/default_footprint.png b/games/default/files/World/default/textures/default_footprint.png new file mode 100644 index 000000000..41d954630 Binary files /dev/null and b/games/default/files/World/default/textures/default_footprint.png differ diff --git a/games/default/files/World/default/textures/default_furnace_bottom.png b/games/default/files/World/default/textures/default_furnace_bottom.png new file mode 100644 index 000000000..b79ed063c Binary files /dev/null and b/games/default/files/World/default/textures/default_furnace_bottom.png differ diff --git a/games/default/files/World/default/textures/default_furnace_fire_bg.png b/games/default/files/World/default/textures/default_furnace_fire_bg.png new file mode 100644 index 000000000..126204a31 Binary files /dev/null and b/games/default/files/World/default/textures/default_furnace_fire_bg.png differ diff --git a/games/default/files/World/default/textures/default_furnace_fire_fg.png b/games/default/files/World/default/textures/default_furnace_fire_fg.png new file mode 100644 index 000000000..63888f399 Binary files /dev/null and b/games/default/files/World/default/textures/default_furnace_fire_fg.png differ diff --git a/games/default/files/World/default/textures/default_furnace_front.png b/games/default/files/World/default/textures/default_furnace_front.png new file mode 100644 index 000000000..8c1798e40 Binary files /dev/null and b/games/default/files/World/default/textures/default_furnace_front.png differ diff --git a/games/default/files/World/default/textures/default_furnace_front_active.png b/games/default/files/World/default/textures/default_furnace_front_active.png new file mode 100644 index 000000000..ea43ed929 Binary files /dev/null and b/games/default/files/World/default/textures/default_furnace_front_active.png differ diff --git a/games/default/files/World/default/textures/default_furnace_side.png b/games/default/files/World/default/textures/default_furnace_side.png new file mode 100644 index 000000000..33408cfe5 Binary files /dev/null and b/games/default/files/World/default/textures/default_furnace_side.png differ diff --git a/games/default/files/World/default/textures/default_furnace_top.png b/games/default/files/World/default/textures/default_furnace_top.png new file mode 100644 index 000000000..b79ed063c Binary files /dev/null and b/games/default/files/World/default/textures/default_furnace_top.png differ diff --git a/games/default/files/World/default/textures/default_glass.png b/games/default/files/World/default/textures/default_glass.png new file mode 100644 index 000000000..da2540287 Binary files /dev/null and b/games/default/files/World/default/textures/default_glass.png differ diff --git a/games/default/files/World/default/textures/default_glass_detail.png b/games/default/files/World/default/textures/default_glass_detail.png new file mode 100644 index 000000000..d38dbb7b6 Binary files /dev/null and b/games/default/files/World/default/textures/default_glass_detail.png differ diff --git a/games/default/files/World/default/textures/default_gold_block.png b/games/default/files/World/default/textures/default_gold_block.png new file mode 100644 index 000000000..170d50be8 Binary files /dev/null and b/games/default/files/World/default/textures/default_gold_block.png differ diff --git a/games/default/files/World/default/textures/default_gold_ingot.png b/games/default/files/World/default/textures/default_gold_ingot.png new file mode 100644 index 000000000..ba66471e1 Binary files /dev/null and b/games/default/files/World/default/textures/default_gold_ingot.png differ diff --git a/games/default/files/World/default/textures/default_gold_lump.png b/games/default/files/World/default/textures/default_gold_lump.png new file mode 100644 index 000000000..d5a1be79b Binary files /dev/null and b/games/default/files/World/default/textures/default_gold_lump.png differ diff --git a/games/default/files/World/default/textures/default_grass.png b/games/default/files/World/default/textures/default_grass.png new file mode 100644 index 000000000..0181fabda Binary files /dev/null and b/games/default/files/World/default/textures/default_grass.png differ diff --git a/games/default/files/World/default/textures/default_grass_1.png b/games/default/files/World/default/textures/default_grass_1.png new file mode 100644 index 000000000..e9faa2c32 Binary files /dev/null and b/games/default/files/World/default/textures/default_grass_1.png differ diff --git a/games/default/files/World/default/textures/default_grass_2.png b/games/default/files/World/default/textures/default_grass_2.png new file mode 100644 index 000000000..03729a007 Binary files /dev/null and b/games/default/files/World/default/textures/default_grass_2.png differ diff --git a/games/default/files/World/default/textures/default_grass_3.png b/games/default/files/World/default/textures/default_grass_3.png new file mode 100644 index 000000000..92ca1b5d8 Binary files /dev/null and b/games/default/files/World/default/textures/default_grass_3.png differ diff --git a/games/default/files/World/default/textures/default_grass_4.png b/games/default/files/World/default/textures/default_grass_4.png new file mode 100644 index 000000000..c782a33be Binary files /dev/null and b/games/default/files/World/default/textures/default_grass_4.png differ diff --git a/games/default/files/World/default/textures/default_grass_5.png b/games/default/files/World/default/textures/default_grass_5.png new file mode 100644 index 000000000..b727e9cf3 Binary files /dev/null and b/games/default/files/World/default/textures/default_grass_5.png differ diff --git a/games/default/files/World/default/textures/default_grass_side.png b/games/default/files/World/default/textures/default_grass_side.png new file mode 100644 index 000000000..bfd538df6 Binary files /dev/null and b/games/default/files/World/default/textures/default_grass_side.png differ diff --git a/games/default/files/World/default/textures/default_gravel.png b/games/default/files/World/default/textures/default_gravel.png new file mode 100644 index 000000000..8852d3848 Binary files /dev/null and b/games/default/files/World/default/textures/default_gravel.png differ diff --git a/games/default/files/World/default/textures/default_ice.png b/games/default/files/World/default/textures/default_ice.png new file mode 100644 index 000000000..2874e1e33 Binary files /dev/null and b/games/default/files/World/default/textures/default_ice.png differ diff --git a/games/default/files/World/default/textures/default_iron_lump.png b/games/default/files/World/default/textures/default_iron_lump.png new file mode 100644 index 000000000..db61a94c7 Binary files /dev/null and b/games/default/files/World/default/textures/default_iron_lump.png differ diff --git a/games/default/files/World/default/textures/default_item_smoke.png b/games/default/files/World/default/textures/default_item_smoke.png new file mode 100644 index 000000000..d62fb3b07 Binary files /dev/null and b/games/default/files/World/default/textures/default_item_smoke.png differ diff --git a/games/default/files/World/default/textures/default_junglegrass.png b/games/default/files/World/default/textures/default_junglegrass.png new file mode 100644 index 000000000..25abb7146 Binary files /dev/null and b/games/default/files/World/default/textures/default_junglegrass.png differ diff --git a/games/default/files/World/default/textures/default_jungleleaves.png b/games/default/files/World/default/textures/default_jungleleaves.png new file mode 100644 index 000000000..5afcc36d3 Binary files /dev/null and b/games/default/files/World/default/textures/default_jungleleaves.png differ diff --git a/games/default/files/World/default/textures/default_jungleleaves_simple.png b/games/default/files/World/default/textures/default_jungleleaves_simple.png new file mode 100644 index 000000000..7165100c7 Binary files /dev/null and b/games/default/files/World/default/textures/default_jungleleaves_simple.png differ diff --git a/games/default/files/World/default/textures/default_junglesapling.png b/games/default/files/World/default/textures/default_junglesapling.png new file mode 100644 index 000000000..05e1e505d Binary files /dev/null and b/games/default/files/World/default/textures/default_junglesapling.png differ diff --git a/games/default/files/World/default/textures/default_jungletree.png b/games/default/files/World/default/textures/default_jungletree.png new file mode 100644 index 000000000..2cf77a680 Binary files /dev/null and b/games/default/files/World/default/textures/default_jungletree.png differ diff --git a/games/default/files/World/default/textures/default_jungletree_top.png b/games/default/files/World/default/textures/default_jungletree_top.png new file mode 100644 index 000000000..439f0786d Binary files /dev/null and b/games/default/files/World/default/textures/default_jungletree_top.png differ diff --git a/games/default/files/World/default/textures/default_junglewood.png b/games/default/files/World/default/textures/default_junglewood.png new file mode 100644 index 000000000..8d17917b8 Binary files /dev/null and b/games/default/files/World/default/textures/default_junglewood.png differ diff --git a/games/default/files/World/default/textures/default_key.png b/games/default/files/World/default/textures/default_key.png new file mode 100644 index 000000000..783d3139e Binary files /dev/null and b/games/default/files/World/default/textures/default_key.png differ diff --git a/games/default/files/World/default/textures/default_key_skeleton.png b/games/default/files/World/default/textures/default_key_skeleton.png new file mode 100644 index 000000000..2b3497d37 Binary files /dev/null and b/games/default/files/World/default/textures/default_key_skeleton.png differ diff --git a/games/default/files/World/default/textures/default_ladder_steel.png b/games/default/files/World/default/textures/default_ladder_steel.png new file mode 100644 index 000000000..a312f3e84 Binary files /dev/null and b/games/default/files/World/default/textures/default_ladder_steel.png differ diff --git a/games/default/files/World/default/textures/default_ladder_wood.png b/games/default/files/World/default/textures/default_ladder_wood.png new file mode 100644 index 000000000..c167fff58 Binary files /dev/null and b/games/default/files/World/default/textures/default_ladder_wood.png differ diff --git a/games/default/files/World/default/textures/default_lava.png b/games/default/files/World/default/textures/default_lava.png new file mode 100644 index 000000000..e8958de5d Binary files /dev/null and b/games/default/files/World/default/textures/default_lava.png differ diff --git a/games/default/files/World/default/textures/default_lava_flowing_animated.png b/games/default/files/World/default/textures/default_lava_flowing_animated.png new file mode 100644 index 000000000..2ec074634 Binary files /dev/null and b/games/default/files/World/default/textures/default_lava_flowing_animated.png differ diff --git a/games/default/files/World/default/textures/default_lava_source_animated.png b/games/default/files/World/default/textures/default_lava_source_animated.png new file mode 100644 index 000000000..32267a6bf Binary files /dev/null and b/games/default/files/World/default/textures/default_lava_source_animated.png differ diff --git a/games/default/files/World/default/textures/default_leaves.png b/games/default/files/World/default/textures/default_leaves.png new file mode 100644 index 000000000..ba09fe1d9 Binary files /dev/null and b/games/default/files/World/default/textures/default_leaves.png differ diff --git a/games/default/files/World/default/textures/default_leaves_simple.png b/games/default/files/World/default/textures/default_leaves_simple.png new file mode 100644 index 000000000..eb60f9f5c Binary files /dev/null and b/games/default/files/World/default/textures/default_leaves_simple.png differ diff --git a/games/default/files/World/default/textures/default_mese_block.png b/games/default/files/World/default/textures/default_mese_block.png new file mode 100644 index 000000000..013993bc2 Binary files /dev/null and b/games/default/files/World/default/textures/default_mese_block.png differ diff --git a/games/default/files/World/default/textures/default_mese_crystal.png b/games/default/files/World/default/textures/default_mese_crystal.png new file mode 100644 index 000000000..f1d71f169 Binary files /dev/null and b/games/default/files/World/default/textures/default_mese_crystal.png differ diff --git a/games/default/files/World/default/textures/default_mese_crystal_fragment.png b/games/default/files/World/default/textures/default_mese_crystal_fragment.png new file mode 100644 index 000000000..d5416ab01 Binary files /dev/null and b/games/default/files/World/default/textures/default_mese_crystal_fragment.png differ diff --git a/games/default/files/World/default/textures/default_mese_post_light_side.png b/games/default/files/World/default/textures/default_mese_post_light_side.png new file mode 100644 index 000000000..c23b551a7 Binary files /dev/null and b/games/default/files/World/default/textures/default_mese_post_light_side.png differ diff --git a/games/default/files/World/default/textures/default_mese_post_light_side_dark.png b/games/default/files/World/default/textures/default_mese_post_light_side_dark.png new file mode 100644 index 000000000..c4fc7ceac Binary files /dev/null and b/games/default/files/World/default/textures/default_mese_post_light_side_dark.png differ diff --git a/games/default/files/World/default/textures/default_mese_post_light_top.png b/games/default/files/World/default/textures/default_mese_post_light_top.png new file mode 100644 index 000000000..6834bd369 Binary files /dev/null and b/games/default/files/World/default/textures/default_mese_post_light_top.png differ diff --git a/games/default/files/World/default/textures/default_meselamp.png b/games/default/files/World/default/textures/default_meselamp.png new file mode 100644 index 000000000..0c3a1a12c Binary files /dev/null and b/games/default/files/World/default/textures/default_meselamp.png differ diff --git a/games/default/files/World/default/textures/default_mineral_coal.png b/games/default/files/World/default/textures/default_mineral_coal.png new file mode 100644 index 000000000..6d1386b90 Binary files /dev/null and b/games/default/files/World/default/textures/default_mineral_coal.png differ diff --git a/games/default/files/World/default/textures/default_mineral_copper.png b/games/default/files/World/default/textures/default_mineral_copper.png new file mode 100644 index 000000000..c4c518ebb Binary files /dev/null and b/games/default/files/World/default/textures/default_mineral_copper.png differ diff --git a/games/default/files/World/default/textures/default_mineral_diamond.png b/games/default/files/World/default/textures/default_mineral_diamond.png new file mode 100644 index 000000000..39c0f83b6 Binary files /dev/null and b/games/default/files/World/default/textures/default_mineral_diamond.png differ diff --git a/games/default/files/World/default/textures/default_mineral_gold.png b/games/default/files/World/default/textures/default_mineral_gold.png new file mode 100644 index 000000000..2220addd6 Binary files /dev/null and b/games/default/files/World/default/textures/default_mineral_gold.png differ diff --git a/games/default/files/World/default/textures/default_mineral_iron.png b/games/default/files/World/default/textures/default_mineral_iron.png new file mode 100644 index 000000000..bfec8b1f0 Binary files /dev/null and b/games/default/files/World/default/textures/default_mineral_iron.png differ diff --git a/games/default/files/World/default/textures/default_mineral_mese.png b/games/default/files/World/default/textures/default_mineral_mese.png new file mode 100644 index 000000000..6952670a8 Binary files /dev/null and b/games/default/files/World/default/textures/default_mineral_mese.png differ diff --git a/games/default/files/World/default/textures/default_mineral_tin.png b/games/default/files/World/default/textures/default_mineral_tin.png new file mode 100644 index 000000000..232d4b537 Binary files /dev/null and b/games/default/files/World/default/textures/default_mineral_tin.png differ diff --git a/games/default/files/World/default/textures/default_mossycobble.png b/games/default/files/World/default/textures/default_mossycobble.png new file mode 100644 index 000000000..1ae7c91fd Binary files /dev/null and b/games/default/files/World/default/textures/default_mossycobble.png differ diff --git a/games/default/files/World/default/textures/default_obsidian.png b/games/default/files/World/default/textures/default_obsidian.png new file mode 100644 index 000000000..8f4a49c4b Binary files /dev/null and b/games/default/files/World/default/textures/default_obsidian.png differ diff --git a/games/default/files/World/default/textures/default_obsidian_block.png b/games/default/files/World/default/textures/default_obsidian_block.png new file mode 100644 index 000000000..7e1d4d3fa Binary files /dev/null and b/games/default/files/World/default/textures/default_obsidian_block.png differ diff --git a/games/default/files/World/default/textures/default_obsidian_brick.png b/games/default/files/World/default/textures/default_obsidian_brick.png new file mode 100644 index 000000000..30c67caa1 Binary files /dev/null and b/games/default/files/World/default/textures/default_obsidian_brick.png differ diff --git a/games/default/files/World/default/textures/default_obsidian_glass.png b/games/default/files/World/default/textures/default_obsidian_glass.png new file mode 100644 index 000000000..d5ac83d09 Binary files /dev/null and b/games/default/files/World/default/textures/default_obsidian_glass.png differ diff --git a/games/default/files/World/default/textures/default_obsidian_glass_detail.png b/games/default/files/World/default/textures/default_obsidian_glass_detail.png new file mode 100644 index 000000000..a8bbec98d Binary files /dev/null and b/games/default/files/World/default/textures/default_obsidian_glass_detail.png differ diff --git a/games/default/files/World/default/textures/default_obsidian_shard.png b/games/default/files/World/default/textures/default_obsidian_shard.png new file mode 100644 index 000000000..a988d8ce3 Binary files /dev/null and b/games/default/files/World/default/textures/default_obsidian_shard.png differ diff --git a/games/default/files/World/default/textures/default_paper.png b/games/default/files/World/default/textures/default_paper.png new file mode 100644 index 000000000..8f23924ed Binary files /dev/null and b/games/default/files/World/default/textures/default_paper.png differ diff --git a/games/default/files/World/default/textures/default_papyrus.png b/games/default/files/World/default/textures/default_papyrus.png new file mode 100644 index 000000000..a85e80908 Binary files /dev/null and b/games/default/files/World/default/textures/default_papyrus.png differ diff --git a/games/default/files/World/default/textures/default_pine_needles.png b/games/default/files/World/default/textures/default_pine_needles.png new file mode 100644 index 000000000..ad7373b03 Binary files /dev/null and b/games/default/files/World/default/textures/default_pine_needles.png differ diff --git a/games/default/files/World/default/textures/default_pine_sapling.png b/games/default/files/World/default/textures/default_pine_sapling.png new file mode 100644 index 000000000..c30131d8f Binary files /dev/null and b/games/default/files/World/default/textures/default_pine_sapling.png differ diff --git a/games/default/files/World/default/textures/default_pine_tree.png b/games/default/files/World/default/textures/default_pine_tree.png new file mode 100644 index 000000000..4a5328ff3 Binary files /dev/null and b/games/default/files/World/default/textures/default_pine_tree.png differ diff --git a/games/default/files/World/default/textures/default_pine_tree_top.png b/games/default/files/World/default/textures/default_pine_tree_top.png new file mode 100644 index 000000000..8705710ed Binary files /dev/null and b/games/default/files/World/default/textures/default_pine_tree_top.png differ diff --git a/games/default/files/World/default/textures/default_pine_wood.png b/games/default/files/World/default/textures/default_pine_wood.png new file mode 100644 index 000000000..6844ceb86 Binary files /dev/null and b/games/default/files/World/default/textures/default_pine_wood.png differ diff --git a/games/default/files/World/default/textures/default_rainforest_litter.png b/games/default/files/World/default/textures/default_rainforest_litter.png new file mode 100644 index 000000000..d762deb46 Binary files /dev/null and b/games/default/files/World/default/textures/default_rainforest_litter.png differ diff --git a/games/default/files/World/default/textures/default_rainforest_litter_side.png b/games/default/files/World/default/textures/default_rainforest_litter_side.png new file mode 100644 index 000000000..7ccb11de3 Binary files /dev/null and b/games/default/files/World/default/textures/default_rainforest_litter_side.png differ diff --git a/games/default/files/World/default/textures/default_river_water.png b/games/default/files/World/default/textures/default_river_water.png new file mode 100644 index 000000000..3b55c5f66 Binary files /dev/null and b/games/default/files/World/default/textures/default_river_water.png differ diff --git a/games/default/files/World/default/textures/default_river_water_flowing_animated.png b/games/default/files/World/default/textures/default_river_water_flowing_animated.png new file mode 100644 index 000000000..536acc535 Binary files /dev/null and b/games/default/files/World/default/textures/default_river_water_flowing_animated.png differ diff --git a/games/default/files/World/default/textures/default_river_water_source_animated.png b/games/default/files/World/default/textures/default_river_water_source_animated.png new file mode 100644 index 000000000..daa5653f2 Binary files /dev/null and b/games/default/files/World/default/textures/default_river_water_source_animated.png differ diff --git a/games/default/files/World/default/textures/default_sand.png b/games/default/files/World/default/textures/default_sand.png new file mode 100644 index 000000000..645a30044 Binary files /dev/null and b/games/default/files/World/default/textures/default_sand.png differ diff --git a/games/default/files/World/default/textures/default_sandstone.png b/games/default/files/World/default/textures/default_sandstone.png new file mode 100644 index 000000000..16e3d13be Binary files /dev/null and b/games/default/files/World/default/textures/default_sandstone.png differ diff --git a/games/default/files/World/default/textures/default_sandstone_block.png b/games/default/files/World/default/textures/default_sandstone_block.png new file mode 100644 index 000000000..2e06491e0 Binary files /dev/null and b/games/default/files/World/default/textures/default_sandstone_block.png differ diff --git a/games/default/files/World/default/textures/default_sandstone_brick.png b/games/default/files/World/default/textures/default_sandstone_brick.png new file mode 100644 index 000000000..e7150e501 Binary files /dev/null and b/games/default/files/World/default/textures/default_sandstone_brick.png differ diff --git a/games/default/files/World/default/textures/default_sapling.png b/games/default/files/World/default/textures/default_sapling.png new file mode 100644 index 000000000..3fd64f02e Binary files /dev/null and b/games/default/files/World/default/textures/default_sapling.png differ diff --git a/games/default/files/World/default/textures/default_sign_steel.png b/games/default/files/World/default/textures/default_sign_steel.png new file mode 100644 index 000000000..3ca0c59d3 Binary files /dev/null and b/games/default/files/World/default/textures/default_sign_steel.png differ diff --git a/games/default/files/World/default/textures/default_sign_wall_steel.png b/games/default/files/World/default/textures/default_sign_wall_steel.png new file mode 100644 index 000000000..2227477fb Binary files /dev/null and b/games/default/files/World/default/textures/default_sign_wall_steel.png differ diff --git a/games/default/files/World/default/textures/default_sign_wall_wood.png b/games/default/files/World/default/textures/default_sign_wall_wood.png new file mode 100644 index 000000000..40552c73d Binary files /dev/null and b/games/default/files/World/default/textures/default_sign_wall_wood.png differ diff --git a/games/default/files/World/default/textures/default_sign_wood.png b/games/default/files/World/default/textures/default_sign_wood.png new file mode 100644 index 000000000..d0559dac3 Binary files /dev/null and b/games/default/files/World/default/textures/default_sign_wood.png differ diff --git a/games/default/files/World/default/textures/default_silver_sand.png b/games/default/files/World/default/textures/default_silver_sand.png new file mode 100644 index 000000000..c4a8f730d Binary files /dev/null and b/games/default/files/World/default/textures/default_silver_sand.png differ diff --git a/games/default/files/World/default/textures/default_silver_sandstone.png b/games/default/files/World/default/textures/default_silver_sandstone.png new file mode 100644 index 000000000..eac62cb19 Binary files /dev/null and b/games/default/files/World/default/textures/default_silver_sandstone.png differ diff --git a/games/default/files/World/default/textures/default_silver_sandstone_block.png b/games/default/files/World/default/textures/default_silver_sandstone_block.png new file mode 100644 index 000000000..9997461bf Binary files /dev/null and b/games/default/files/World/default/textures/default_silver_sandstone_block.png differ diff --git a/games/default/files/World/default/textures/default_silver_sandstone_brick.png b/games/default/files/World/default/textures/default_silver_sandstone_brick.png new file mode 100644 index 000000000..93d87a571 Binary files /dev/null and b/games/default/files/World/default/textures/default_silver_sandstone_brick.png differ diff --git a/games/default/files/World/default/textures/default_snow.png b/games/default/files/World/default/textures/default_snow.png new file mode 100644 index 000000000..fcbef0e58 Binary files /dev/null and b/games/default/files/World/default/textures/default_snow.png differ diff --git a/games/default/files/World/default/textures/default_snow_side.png b/games/default/files/World/default/textures/default_snow_side.png new file mode 100644 index 000000000..03456c844 Binary files /dev/null and b/games/default/files/World/default/textures/default_snow_side.png differ diff --git a/games/default/files/World/default/textures/default_snowball.png b/games/default/files/World/default/textures/default_snowball.png new file mode 100644 index 000000000..3a4dc1f66 Binary files /dev/null and b/games/default/files/World/default/textures/default_snowball.png differ diff --git a/games/default/files/World/default/textures/default_steel_block.png b/games/default/files/World/default/textures/default_steel_block.png new file mode 100644 index 000000000..7f49f61f8 Binary files /dev/null and b/games/default/files/World/default/textures/default_steel_block.png differ diff --git a/games/default/files/World/default/textures/default_steel_ingot.png b/games/default/files/World/default/textures/default_steel_ingot.png new file mode 100644 index 000000000..8100b0132 Binary files /dev/null and b/games/default/files/World/default/textures/default_steel_ingot.png differ diff --git a/games/default/files/World/default/textures/default_stick.png b/games/default/files/World/default/textures/default_stick.png new file mode 100644 index 000000000..0378d078b Binary files /dev/null and b/games/default/files/World/default/textures/default_stick.png differ diff --git a/games/default/files/World/default/textures/default_stone.png b/games/default/files/World/default/textures/default_stone.png new file mode 100644 index 000000000..63cb7c4e0 Binary files /dev/null and b/games/default/files/World/default/textures/default_stone.png differ diff --git a/games/default/files/World/default/textures/default_stone_block.png b/games/default/files/World/default/textures/default_stone_block.png new file mode 100644 index 000000000..3b771e725 Binary files /dev/null and b/games/default/files/World/default/textures/default_stone_block.png differ diff --git a/games/default/files/World/default/textures/default_stone_brick.png b/games/default/files/World/default/textures/default_stone_brick.png new file mode 100644 index 000000000..4dbb49db7 Binary files /dev/null and b/games/default/files/World/default/textures/default_stone_brick.png differ diff --git a/games/default/files/World/default/textures/default_tin_block.png b/games/default/files/World/default/textures/default_tin_block.png new file mode 100644 index 000000000..72759b045 Binary files /dev/null and b/games/default/files/World/default/textures/default_tin_block.png differ diff --git a/games/default/files/World/default/textures/default_tin_ingot.png b/games/default/files/World/default/textures/default_tin_ingot.png new file mode 100644 index 000000000..eed536105 Binary files /dev/null and b/games/default/files/World/default/textures/default_tin_ingot.png differ diff --git a/games/default/files/World/default/textures/default_tin_lump.png b/games/default/files/World/default/textures/default_tin_lump.png new file mode 100644 index 000000000..72bd339bf Binary files /dev/null and b/games/default/files/World/default/textures/default_tin_lump.png differ diff --git a/games/default/files/World/default/textures/default_tool_bronzeaxe.png b/games/default/files/World/default/textures/default_tool_bronzeaxe.png new file mode 100644 index 000000000..8ae43b5a1 Binary files /dev/null and b/games/default/files/World/default/textures/default_tool_bronzeaxe.png differ diff --git a/games/default/files/World/default/textures/default_tool_bronzepick.png b/games/default/files/World/default/textures/default_tool_bronzepick.png new file mode 100644 index 000000000..c88a5f09a Binary files /dev/null and b/games/default/files/World/default/textures/default_tool_bronzepick.png differ diff --git a/games/default/files/World/default/textures/default_tool_bronzeshovel.png b/games/default/files/World/default/textures/default_tool_bronzeshovel.png new file mode 100644 index 000000000..d7d800e47 Binary files /dev/null and b/games/default/files/World/default/textures/default_tool_bronzeshovel.png differ diff --git a/games/default/files/World/default/textures/default_tool_bronzesword.png b/games/default/files/World/default/textures/default_tool_bronzesword.png new file mode 100644 index 000000000..cdab89851 Binary files /dev/null and b/games/default/files/World/default/textures/default_tool_bronzesword.png differ diff --git a/games/default/files/World/default/textures/default_tool_diamondaxe.png b/games/default/files/World/default/textures/default_tool_diamondaxe.png new file mode 100644 index 000000000..e32a0bf2b Binary files /dev/null and b/games/default/files/World/default/textures/default_tool_diamondaxe.png differ diff --git a/games/default/files/World/default/textures/default_tool_diamondpick.png b/games/default/files/World/default/textures/default_tool_diamondpick.png new file mode 100644 index 000000000..f9883c669 Binary files /dev/null and b/games/default/files/World/default/textures/default_tool_diamondpick.png differ diff --git a/games/default/files/World/default/textures/default_tool_diamondshovel.png b/games/default/files/World/default/textures/default_tool_diamondshovel.png new file mode 100644 index 000000000..d0fe24dec Binary files /dev/null and b/games/default/files/World/default/textures/default_tool_diamondshovel.png differ diff --git a/games/default/files/World/default/textures/default_tool_diamondsword.png b/games/default/files/World/default/textures/default_tool_diamondsword.png new file mode 100644 index 000000000..dbccd0e39 Binary files /dev/null and b/games/default/files/World/default/textures/default_tool_diamondsword.png differ diff --git a/games/default/files/World/default/textures/default_tool_meseaxe.png b/games/default/files/World/default/textures/default_tool_meseaxe.png new file mode 100644 index 000000000..c01fb4f33 Binary files /dev/null and b/games/default/files/World/default/textures/default_tool_meseaxe.png differ diff --git a/games/default/files/World/default/textures/default_tool_mesepick.png b/games/default/files/World/default/textures/default_tool_mesepick.png new file mode 100644 index 000000000..1b2e25be5 Binary files /dev/null and b/games/default/files/World/default/textures/default_tool_mesepick.png differ diff --git a/games/default/files/World/default/textures/default_tool_meseshovel.png b/games/default/files/World/default/textures/default_tool_meseshovel.png new file mode 100644 index 000000000..00813a23a Binary files /dev/null and b/games/default/files/World/default/textures/default_tool_meseshovel.png differ diff --git a/games/default/files/World/default/textures/default_tool_mesesword.png b/games/default/files/World/default/textures/default_tool_mesesword.png new file mode 100644 index 000000000..d395d3a13 Binary files /dev/null and b/games/default/files/World/default/textures/default_tool_mesesword.png differ diff --git a/games/default/files/World/default/textures/default_tool_steelaxe.png b/games/default/files/World/default/textures/default_tool_steelaxe.png new file mode 100644 index 000000000..1528cad45 Binary files /dev/null and b/games/default/files/World/default/textures/default_tool_steelaxe.png differ diff --git a/games/default/files/World/default/textures/default_tool_steelpick.png b/games/default/files/World/default/textures/default_tool_steelpick.png new file mode 100644 index 000000000..a7543a1f8 Binary files /dev/null and b/games/default/files/World/default/textures/default_tool_steelpick.png differ diff --git a/games/default/files/World/default/textures/default_tool_steelshovel.png b/games/default/files/World/default/textures/default_tool_steelshovel.png new file mode 100644 index 000000000..65e404502 Binary files /dev/null and b/games/default/files/World/default/textures/default_tool_steelshovel.png differ diff --git a/games/default/files/World/default/textures/default_tool_steelsword.png b/games/default/files/World/default/textures/default_tool_steelsword.png new file mode 100644 index 000000000..630a33966 Binary files /dev/null and b/games/default/files/World/default/textures/default_tool_steelsword.png differ diff --git a/games/default/files/World/default/textures/default_tool_stoneaxe.png b/games/default/files/World/default/textures/default_tool_stoneaxe.png new file mode 100644 index 000000000..cc360545b Binary files /dev/null and b/games/default/files/World/default/textures/default_tool_stoneaxe.png differ diff --git a/games/default/files/World/default/textures/default_tool_stonepick.png b/games/default/files/World/default/textures/default_tool_stonepick.png new file mode 100644 index 000000000..89d9efb58 Binary files /dev/null and b/games/default/files/World/default/textures/default_tool_stonepick.png differ diff --git a/games/default/files/World/default/textures/default_tool_stoneshovel.png b/games/default/files/World/default/textures/default_tool_stoneshovel.png new file mode 100644 index 000000000..11711bd23 Binary files /dev/null and b/games/default/files/World/default/textures/default_tool_stoneshovel.png differ diff --git a/games/default/files/World/default/textures/default_tool_stonesword.png b/games/default/files/World/default/textures/default_tool_stonesword.png new file mode 100644 index 000000000..1a493acbd Binary files /dev/null and b/games/default/files/World/default/textures/default_tool_stonesword.png differ diff --git a/games/default/files/World/default/textures/default_tool_woodaxe.png b/games/default/files/World/default/textures/default_tool_woodaxe.png new file mode 100644 index 000000000..68f1fd8c7 Binary files /dev/null and b/games/default/files/World/default/textures/default_tool_woodaxe.png differ diff --git a/games/default/files/World/default/textures/default_tool_woodpick.png b/games/default/files/World/default/textures/default_tool_woodpick.png new file mode 100644 index 000000000..2ab00a884 Binary files /dev/null and b/games/default/files/World/default/textures/default_tool_woodpick.png differ diff --git a/games/default/files/World/default/textures/default_tool_woodshovel.png b/games/default/files/World/default/textures/default_tool_woodshovel.png new file mode 100644 index 000000000..dcef2b5bf Binary files /dev/null and b/games/default/files/World/default/textures/default_tool_woodshovel.png differ diff --git a/games/default/files/World/default/textures/default_tool_woodsword.png b/games/default/files/World/default/textures/default_tool_woodsword.png new file mode 100644 index 000000000..c78ba50b2 Binary files /dev/null and b/games/default/files/World/default/textures/default_tool_woodsword.png differ diff --git a/games/default/files/World/default/textures/default_torch_animated.png b/games/default/files/World/default/textures/default_torch_animated.png new file mode 100644 index 000000000..cdf33ef38 Binary files /dev/null and b/games/default/files/World/default/textures/default_torch_animated.png differ diff --git a/games/default/files/World/default/textures/default_torch_on_ceiling_animated.png b/games/default/files/World/default/textures/default_torch_on_ceiling_animated.png new file mode 100644 index 000000000..3a8b5ad95 Binary files /dev/null and b/games/default/files/World/default/textures/default_torch_on_ceiling_animated.png differ diff --git a/games/default/files/World/default/textures/default_torch_on_floor.png b/games/default/files/World/default/textures/default_torch_on_floor.png new file mode 100644 index 000000000..bc4bdd6b5 Binary files /dev/null and b/games/default/files/World/default/textures/default_torch_on_floor.png differ diff --git a/games/default/files/World/default/textures/default_torch_on_floor_animated.png b/games/default/files/World/default/textures/default_torch_on_floor_animated.png new file mode 100644 index 000000000..ad51c03a8 Binary files /dev/null and b/games/default/files/World/default/textures/default_torch_on_floor_animated.png differ diff --git a/games/default/files/World/default/textures/default_tree.png b/games/default/files/World/default/textures/default_tree.png new file mode 100644 index 000000000..10e297b44 Binary files /dev/null and b/games/default/files/World/default/textures/default_tree.png differ diff --git a/games/default/files/World/default/textures/default_tree_top.png b/games/default/files/World/default/textures/default_tree_top.png new file mode 100644 index 000000000..da99bce74 Binary files /dev/null and b/games/default/files/World/default/textures/default_tree_top.png differ diff --git a/games/default/files/World/default/textures/default_water.png b/games/default/files/World/default/textures/default_water.png new file mode 100644 index 000000000..00500e9b9 Binary files /dev/null and b/games/default/files/World/default/textures/default_water.png differ diff --git a/games/default/files/World/default/textures/default_water_flowing_animated.png b/games/default/files/World/default/textures/default_water_flowing_animated.png new file mode 100644 index 000000000..070d79718 Binary files /dev/null and b/games/default/files/World/default/textures/default_water_flowing_animated.png differ diff --git a/games/default/files/World/default/textures/default_water_source_animated.png b/games/default/files/World/default/textures/default_water_source_animated.png new file mode 100644 index 000000000..7e7f9ff16 Binary files /dev/null and b/games/default/files/World/default/textures/default_water_source_animated.png differ diff --git a/games/default/files/World/default/textures/default_wood.png b/games/default/files/World/default/textures/default_wood.png new file mode 100644 index 000000000..af56d6cd4 Binary files /dev/null and b/games/default/files/World/default/textures/default_wood.png differ diff --git a/games/default/files/World/default/textures/gui_formbg.png b/games/default/files/World/default/textures/gui_formbg.png new file mode 100644 index 000000000..886f2aea2 Binary files /dev/null and b/games/default/files/World/default/textures/gui_formbg.png differ diff --git a/games/default/files/World/default/textures/gui_furnace_arrow_bg.png b/games/default/files/World/default/textures/gui_furnace_arrow_bg.png new file mode 100644 index 000000000..046d8cda0 Binary files /dev/null and b/games/default/files/World/default/textures/gui_furnace_arrow_bg.png differ diff --git a/games/default/files/World/default/textures/gui_furnace_arrow_fg.png b/games/default/files/World/default/textures/gui_furnace_arrow_fg.png new file mode 100644 index 000000000..8d3c396e7 Binary files /dev/null and b/games/default/files/World/default/textures/gui_furnace_arrow_fg.png differ diff --git a/games/default/files/World/default/textures/gui_hb_bg.png b/games/default/files/World/default/textures/gui_hb_bg.png new file mode 100644 index 000000000..bc2601146 Binary files /dev/null and b/games/default/files/World/default/textures/gui_hb_bg.png differ diff --git a/games/default/files/World/default/textures/gui_hotbar.png b/games/default/files/World/default/textures/gui_hotbar.png new file mode 100644 index 000000000..dc697fa45 Binary files /dev/null and b/games/default/files/World/default/textures/gui_hotbar.png differ diff --git a/games/default/files/World/default/textures/gui_hotbar_selected.png b/games/default/files/World/default/textures/gui_hotbar_selected.png new file mode 100644 index 000000000..bc2601146 Binary files /dev/null and b/games/default/files/World/default/textures/gui_hotbar_selected.png differ diff --git a/games/default/files/World/default/textures/heart.png b/games/default/files/World/default/textures/heart.png new file mode 100644 index 000000000..6d4e22893 Binary files /dev/null and b/games/default/files/World/default/textures/heart.png differ diff --git a/games/default/files/World/default/textures/player.png b/games/default/files/World/default/textures/player.png new file mode 100644 index 000000000..6d61c4342 Binary files /dev/null and b/games/default/files/World/default/textures/player.png differ diff --git a/games/default/files/World/default/textures/player_back.png b/games/default/files/World/default/textures/player_back.png new file mode 100644 index 000000000..5e9ef0542 Binary files /dev/null and b/games/default/files/World/default/textures/player_back.png differ diff --git a/games/default/files/World/default/textures/wieldhand.png b/games/default/files/World/default/textures/wieldhand.png new file mode 100644 index 000000000..07f7b0e2b Binary files /dev/null and b/games/default/files/World/default/textures/wieldhand.png differ diff --git a/games/default/files/World/default/textures/wrotate.png b/games/default/files/World/default/textures/wrotate.png new file mode 100644 index 000000000..19d0f08b4 Binary files /dev/null and b/games/default/files/World/default/textures/wrotate.png differ diff --git a/games/default/files/World/modpack.txt b/games/default/files/World/modpack.txt new file mode 100644 index 000000000..e69de29bb diff --git a/games/default/files/beds/README.txt b/games/default/files/beds/README.txt deleted file mode 100644 index 7795cd9b0..000000000 --- a/games/default/files/beds/README.txt +++ /dev/null @@ -1,26 +0,0 @@ -MultiCraft Game mod: beds -======================= -See license.txt for license information. - -Authors of source code ----------------------- -Originally by BlockMen (MIT) -Various Minetest developers and contributors (MIT) - -Authors of media (textures) ---------------------------- -BlockMen (CC BY-SA 3.0) - -This mod adds a bed to Minetest which allows to skip the night. -To sleep, rightclick the bed. If playing in singleplayer mode the night gets skipped -immediately. If playing multiplayer you get shown how many other players are in bed too, -if all players are sleeping the night gets skipped. The night skip can be forced if more -than 50% of the players are lying in bed and use this option. - -Another feature is a controlled respawning. If you have slept in bed (not just lying in -it) your respawn point is set to the beds location and you will respawn there after -death. -You can disable the respawn at beds by setting "enable_bed_respawn = false" in -minetest.conf. -You can disable the night skip feature by setting "enable_bed_night_skip = false" in -minetest.conf or by using the /set command in-game. diff --git a/games/default/files/beds/api.lua b/games/default/files/beds/api.lua deleted file mode 100644 index 1a641d8b0..000000000 --- a/games/default/files/beds/api.lua +++ /dev/null @@ -1,99 +0,0 @@ -function beds.register_bed(name, def) - minetest.register_node(name, { - description = def.description, - inventory_image = def.inventory_image, - wield_image = def.wield_image, - drawtype = "mesh", - mesh = def.mesh, - tiles = def.tiles, - paramtype = "light", - paramtype2 = "facedir", - is_ground_content = false, - stack_max = 1, - groups = {choppy = 2, oddly_breakable_by_hand = 2, flammable = 3, bed = 1}, - sounds = def.sounds or default.node_sound_wood_defaults(), - selection_box = { - type = "fixed", - fixed = def.selectionbox, - }, - collision_box = { - type = "fixed", - fixed = def.collisionbox, - }, - - on_place = function(itemstack, placer, pointed_thing) - local under = pointed_thing.under - local node = minetest.get_node(under) - local udef = minetest.registered_nodes[node.name] - if udef and udef.on_rightclick and - not (placer and placer:is_player() and - placer:get_player_control().sneak) then - return udef.on_rightclick(under, node, placer, itemstack, - pointed_thing) or itemstack - end - - local pos - if udef and udef.buildable_to then - pos = under - else - pos = pointed_thing.above - end - - local player_name = placer and placer:get_player_name() or "" - - if minetest.is_protected(pos, player_name) and - not minetest.check_player_privs(player_name, "protection_bypass") then - minetest.record_protection_violation(pos, player_name) - return itemstack - end - - local pos_front = vector.new(pos) - local dir = placer and placer:get_look_dir() and - minetest.dir_to_facedir(placer:get_look_dir()) % 4 or 0 - if dir == 1 then - pos_front.x = pos_front.x + 1 - elseif dir == 2 then - pos_front.z = pos_front.z - 1 - elseif dir == 3 then - pos_front.x = pos_front.x - 1 - else - pos_front.z = pos_front.z + 1 - end - for _, p in pairs({pos_front, pos}) do - local node_def = minetest.registered_nodes[minetest.get_node(p).name] - if node_def.buildable_to then - minetest.remove_node(pos_front) - end - if not node_def or not node_def.buildable_to then - return itemstack - end - end - - minetest.set_node(pos, {name = name, param2 = dir}) - - if not (creative and creative.is_enabled_for - and creative.is_enabled_for(player_name)) or - not minetest.is_singleplayer() then - itemstack:take_item() - end - return itemstack - end, - - on_rightclick = function(pos, node, clicker, itemstack, pointed_thing) - beds.on_rightclick(pos, clicker) - return itemstack - end, - - can_dig = function(pos, player) - return beds.can_dig(pos) - end, - }) - - minetest.register_alias(name .. "_bottom", name) - minetest.register_alias(name .. "_top", "air") - - minetest.register_craft({ - output = name, - recipe = def.recipe - }) -end diff --git a/games/default/files/beds/beds.lua b/games/default/files/beds/beds.lua deleted file mode 100644 index 9657ca627..000000000 --- a/games/default/files/beds/beds.lua +++ /dev/null @@ -1,27 +0,0 @@ -beds.register_bed("beds:bed", { - description = "Bed", - inventory_image = "beds_bed_inv.png", - wield_image = "beds_bed_inv.png", - tiles = {"beds_bed.png"}, - mesh = "beds_bed.obj", - selectionbox = {-0.5, -0.5, -0.5, 0.5, 0.06, 1.5}, - collisionbox = {-0.5, -0.5, -0.5, 0.5, 0.06, 1.5}, - recipe = { - {"group:wool", "group:wool", "group:wool"}, - {"group:wood", "group:wood", "group:wood"} - }, -}) - --- Fuel - -minetest.register_craft({ - type = "fuel", - recipe = "beds:fancy_bed_bottom", - burntime = 13, -}) - -minetest.register_craft({ - type = "fuel", - recipe = "beds:bed_bottom", - burntime = 12, -}) diff --git a/games/default/files/beds/depends.txt b/games/default/files/beds/depends.txt deleted file mode 100644 index 470ec30b9..000000000 --- a/games/default/files/beds/depends.txt +++ /dev/null @@ -1,2 +0,0 @@ -default -wool diff --git a/games/default/files/beds/functions.lua b/games/default/files/beds/functions.lua deleted file mode 100644 index 6d8f6f4dd..000000000 --- a/games/default/files/beds/functions.lua +++ /dev/null @@ -1,247 +0,0 @@ -local pi = math.pi -local is_sp = minetest.is_singleplayer() -local enable_respawn = minetest.settings:get_bool("enable_bed_respawn") -if enable_respawn == nil then - enable_respawn = true -end - --- Helper functions - -local function get_look_yaw(pos) - local rotation = minetest.get_node(pos).param2 - if rotation > 3 then - rotation = rotation % 4 -- Mask colorfacedir values - end - if rotation == 1 then - return pi / 2, rotation - elseif rotation == 3 then - return -pi / 2, rotation - elseif rotation == 0 then - return pi, rotation - else - return 0, rotation - end -end - -local function is_night_skip_enabled() - local enable_night_skip = minetest.settings:get_bool("enable_bed_night_skip") - if enable_night_skip == nil then - enable_night_skip = true - end - return enable_night_skip -end - -local function check_in_beds(players) - local in_bed = beds.player - if not players then - players = minetest.get_connected_players() - end - - for n, player in ipairs(players) do - local name = player:get_player_name() - if not in_bed[name] then - return false - end - end - - return #players > 0 -end - -local function lay_down(player, pos, bed_pos, state, skip) - local name = player:get_player_name() - local hud_flags = player:hud_get_flags() - - if not player or not name then - return - end - - -- stand up - if state ~= nil and not state then - local p = beds.pos[name] or nil - beds.player[name] = nil - beds.bed_position[name] = nil - -- skip here to prevent sending player specific changes (used for leaving players) - if skip then - return - end - if p then - player:set_pos(p) - end - - -- physics, eye_offset, etc - player:set_eye_offset({x = 0, y = 0, z = 0}, {x = 0, y = 0, z = 0}) - player:set_look_horizontal(math.random(1, 180) / 100) - player_api.player_attached[name] = false - player:set_physics_override(1, 1, 1) - hud_flags.wielditem = true - player_api.set_animation(player, "stand" , 30) - - -- lay down - else - beds.pos[name] = pos - beds.bed_position[name] = bed_pos - beds.player[name] = 1 - - -- physics, eye_offset, etc - player:set_eye_offset({x = 0, y = -13, z = 0}, {x = 0, y = 0, z = 0}) - local yaw, param2 = get_look_yaw(bed_pos) - player:set_look_horizontal(yaw) - local dir = minetest.facedir_to_dir(param2) - local p = {x = bed_pos.x + dir.x / 2, y = bed_pos.y, z = bed_pos.z + dir.z / 2} - player:set_physics_override(0, 0, 0) - player:set_pos(p) - player_api.player_attached[name] = true - hud_flags.wielditem = false - player_api.set_animation(player, "lay" , 0) - end - - player:hud_set_flags(hud_flags) -end - -local function get_player_in_bed_count() - local c = 0 - for _, _ in pairs(beds.player) do - c = c + 1 - end - return c -end - -local function update_formspecs(finished) - local ges = #minetest.get_connected_players() - local form_n - local player_in_bed = get_player_in_bed_count() - local is_majority = (ges / 2) < player_in_bed - - if finished then - form_n = beds.formspec .. "label[2.7,9; Good morning.]" - else - form_n = beds.formspec .. "label[2.2,9;" .. tostring(player_in_bed) .. - " of " .. tostring(ges) .. " players are in bed]" - if is_majority and is_night_skip_enabled() then - form_n = form_n .. "button_exit[2,6;4,0.75;force;Force night skip]" - end - end - - for name,_ in pairs(beds.player) do - minetest.show_formspec(name, "beds_form", form_n) - end -end - - --- Public functions - -function beds.kick_players() - for name, _ in pairs(beds.player) do - local player = minetest.get_player_by_name(name) - lay_down(player, nil, nil, false) - end -end - -function beds.skip_night() - minetest.set_timeofday(0.23) -end - -function beds.on_rightclick(pos, player) - local name = player:get_player_name() - local ppos = player:get_pos() - local tod = minetest.get_timeofday() - - if tod > 0.2 and tod < 0.805 then - if beds.player[name] then - lay_down(player, nil, nil, false) - end - minetest.chat_send_player(name, "You can only sleep at night.") - return - end - - -- move to bed - if not beds.player[name] then - lay_down(player, ppos, pos) - beds.set_spawns() -- save respawn positions when entering bed - else - lay_down(player, nil, nil, false) - end - - if not is_sp then - update_formspecs(false) - end - - -- skip the night and let all players stand up - if check_in_beds() then - minetest.after(2, function() - if not is_sp then - update_formspecs(is_night_skip_enabled()) - end - if is_night_skip_enabled() then - beds.skip_night() - beds.kick_players() - end - end) - end -end - -function beds.can_dig(bed_pos) - -- Check all players in bed which one is at the expected position - for _, player_bed_pos in pairs(beds.bed_position) do - if vector.equals(bed_pos, player_bed_pos) then - return false - end - end - return true -end - --- Callbacks --- Only register respawn callback if respawn enabled -if enable_respawn then - -- respawn player at bed if enabled and valid position is found - minetest.register_on_respawnplayer(function(player) - local name = player:get_player_name() - local pos = beds.spawn[name] - if pos then - player:set_pos(pos) - return true - end - end) -end - -minetest.register_on_leaveplayer(function(player) - local name = player:get_player_name() - lay_down(player, nil, nil, false, true) - beds.player[name] = nil - if check_in_beds() then - minetest.after(2, function() - update_formspecs(is_night_skip_enabled()) - if is_night_skip_enabled() then - beds.skip_night() - beds.kick_players() - end - end) - end -end) - -minetest.register_on_player_receive_fields(function(player, formname, fields) - if formname ~= "beds_form" then - return - end - - -- Because "Force night skip" button is a button_exit, it will set fields.quit - -- and lay_down call will change value of player_in_bed, so it must be taken - -- earlier. - local last_player_in_bed = get_player_in_bed_count() - - if fields.quit or fields.leave then - lay_down(player, nil, nil, false) - update_formspecs(false) - end - - if fields.force then - local is_majority = (#minetest.get_connected_players() / 2) < last_player_in_bed - if is_majority and is_night_skip_enabled() then - update_formspecs(true) - beds.skip_night() - beds.kick_players() - else - update_formspecs(false) - end - end -end) diff --git a/games/default/files/beds/init.lua b/games/default/files/beds/init.lua deleted file mode 100644 index e5eb25c6f..000000000 --- a/games/default/files/beds/init.lua +++ /dev/null @@ -1,19 +0,0 @@ -beds = {} -beds.player = {} -beds.bed_position = {} -beds.pos = {} -beds.spawn = {} - -beds.formspec = "size[8,11;true]" .. - "no_prepend[]" .. - default.gui_bg.. - "button_exit[2,10;4,0.75;leave;Leave Bed]" - -local modpath = minetest.get_modpath("beds") - --- Load files - -dofile(modpath .. "/functions.lua") -dofile(modpath .. "/api.lua") -dofile(modpath .. "/beds.lua") -dofile(modpath .. "/spawns.lua") diff --git a/games/default/files/beds/license.txt b/games/default/files/beds/license.txt deleted file mode 100644 index f3c517f9a..000000000 --- a/games/default/files/beds/license.txt +++ /dev/null @@ -1,61 +0,0 @@ -License of source code ----------------------- - -The MIT License (MIT) -Copyright (C) 2014-2016 BlockMen -Copyright (C) 2014-2016 Various Minetest developers and contributors - -Permission is hereby granted, free of charge, to any person obtaining a copy of this -software and associated documentation files (the "Software"), to deal in the Software -without restriction, including without limitation the rights to use, copy, modify, merge, -publish, distribute, sublicense, and/or sell copies of the Software, and to permit -persons to whom the Software is furnished to do so, subject to the following conditions: - -The above copyright notice and this permission notice shall be included in all copies or -substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, -INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR -PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE -FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR -OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER -DEALINGS IN THE SOFTWARE. - -For more details: -https://opensource.org/licenses/MIT - - -Licenses of media (textures) ----------------------------- - -Attribution-ShareAlike 3.0 Unported (CC BY-SA 3.0) -Copyright (C) 2014-2016 BlockMen -Copyright (C) 2018 TumeniNodes - -You are free to: -Share — copy and redistribute the material in any medium or format. -Adapt — remix, transform, and build upon the material for any purpose, even commercially. -The licensor cannot revoke these freedoms as long as you follow the license terms. - -Under the following terms: - -Attribution — You must give appropriate credit, provide a link to the license, and -indicate if changes were made. You may do so in any reasonable manner, but not in any way -that suggests the licensor endorses you or your use. - -ShareAlike — If you remix, transform, or build upon the material, you must distribute -your contributions under the same license as the original. - -No additional restrictions — You may not apply legal terms or technological measures that -legally restrict others from doing anything the license permits. - -Notices: - -You do not have to comply with the license for elements of the material in the public -domain or where your use is permitted by an applicable exception or limitation. -No warranties are given. The license may not give you all of the permissions necessary -for your intended use. For example, other rights such as publicity, privacy, or moral -rights may limit how you use the material. - -For more details: -http://creativecommons.org/licenses/by-sa/3.0/ diff --git a/games/default/files/beds/models/beds_bed.obj b/games/default/files/beds/models/beds_bed.obj deleted file mode 100644 index 21ecfb47a..000000000 --- a/games/default/files/beds/models/beds_bed.obj +++ /dev/null @@ -1,32 +0,0 @@ -# Blender v2.69 (sub 0) OBJ File: '' -# www.blender.org -mtllib simple_bed.mtl -o Simple_Bed -v 0.500000 -0.500000 -0.500000 -v 0.500000 0.060000 -0.500000 -v 0.500000 0.060000 1.500000 -v 0.500000 -0.500000 1.500000 -v -0.500000 -0.500000 -0.500000 -v -0.500000 -0.500000 1.500000 -v -0.500000 0.060000 1.500000 -v -0.500000 0.060000 -0.500000 -vt 0.000112 0.780442 -vt 0.000110 0.999969 -vt 0.780324 0.999889 -vt 0.780377 0.780471 -vt 0.780636 0.390284 -vt 0.999906 0.780382 -vt 0.999906 0.390284 -vt 0.780636 0.000047 -vt 0.999906 0.000094 -vt 0.390235 0.780320 -vt 0.390235 0.000071 -vt 0.000142 0.000142 -usemtl none.002 -s off -f 1/1 2/2 3/3 4/4 -f 5/1 6/4 7/3 8/2 -f 1/5 5/4 8/6 2/7 -f 4/8 3/9 7/7 6/5 -f 1/8 4/4 6/10 5/11 -f 2/11 8/12 7/1 3/10 diff --git a/games/default/files/beds/spawns.lua b/games/default/files/beds/spawns.lua deleted file mode 100644 index 1ad0f2d38..000000000 --- a/games/default/files/beds/spawns.lua +++ /dev/null @@ -1,47 +0,0 @@ -local world_path = minetest.get_worldpath() -local file = world_path .. "/beds_spawns" - -function beds.read_spawns() - local spawns = beds.spawn - local input = io.open(file, "r") - if input then - repeat - local x = input:read("*n") - if x == nil then - break - end - local y = input:read("*n") - local z = input:read("*n") - local name = input:read("*l") - spawns[name:sub(2)] = {x = x, y = y, z = z} - until input:read(0) == nil - io.close(input) - end -end - -beds.read_spawns() - -function beds.save_spawns() - if not beds.spawn then - return - end - local data = {} - local output = io.open(file, "w") - for k, v in pairs(beds.spawn) do - table.insert(data, string.format("%.1f %.1f %.1f %s\n", v.x, v.y, v.z, k)) - end - output:write(table.concat(data)) - io.close(output) -end - -function beds.set_spawns() - for name,_ in pairs(beds.player) do - local player = minetest.get_player_by_name(name) - local p = player:get_pos() - -- but don't change spawn location if borrowing a bed - if not minetest.is_protected(p, name) then - beds.spawn[name] = p - end - end - beds.save_spawns() -end diff --git a/games/default/files/beds/textures/beds_bed.png b/games/default/files/beds/textures/beds_bed.png deleted file mode 100644 index 22cf7ac36..000000000 Binary files a/games/default/files/beds/textures/beds_bed.png and /dev/null differ diff --git a/games/default/files/beds/textures/beds_bed_inv.png b/games/default/files/beds/textures/beds_bed_inv.png deleted file mode 100644 index 2f519210e..000000000 Binary files a/games/default/files/beds/textures/beds_bed_inv.png and /dev/null differ diff --git a/games/default/files/bluestone/COPYING.txt b/games/default/files/bluestone/COPYING.txt deleted file mode 100644 index 61bf7e2a5..000000000 --- a/games/default/files/bluestone/COPYING.txt +++ /dev/null @@ -1,30 +0,0 @@ -The Mesecons Mod for Minetest is - Copyright (C) 2011-2016 Mesecons Mod Developer Team and contributors - -See the version control system log for information about other authors. - -License of source code ----------------------- -Copyright (C) 2011-2016 Mesecons Mod Developer Team and contributors - -This program is free software; you can redistribute the Mesecons Mod and/or -modify it under the terms of the GNU Lesser General Public License version 3 -published by the Free Software Foundation. - -This library 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 -Library General Public License for more details. - -You should have received a copy of the GNU Library General Public -License along with this library; if not, write to the -Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, -Boston, MA 02110-1301, USA. - -License of media (textures, sounds and documentation) ------------------------------------------------------ -Copyright (C) 2011-2016 Mesecons Mod Developer Team and contributors - -All textures, sounds and documentation files are licensed under the -Attribution-ShareAlike 3.0 Unported (CC BY-SA 3.0) -http://creativecommons.org/licenses/by-sa/3.0/ diff --git a/games/default/files/bluestone/LICENSE.txt b/games/default/files/bluestone/LICENSE.txt deleted file mode 100644 index 0d2fd1888..000000000 --- a/games/default/files/bluestone/LICENSE.txt +++ /dev/null @@ -1,532 +0,0 @@ -The LGPLv3 applies to all code in this project. -The CC-BY-SA-3.0 license applies to textures and any other content in this project which is not source code. - -================================================================= - -GNU LESSER GENERAL PUBLIC LICENSE - Version 3, 29 June 2007 - - Copyright (C) 2007 Free Software Foundation, Inc. - Everyone is permitted to copy and distribute verbatim copies - of this license document, but changing it is not allowed. - - - This version of the GNU Lesser General Public License incorporates -the terms and conditions of version 3 of the GNU General Public -License, supplemented by the additional permissions listed below. - - 0. Additional Definitions. - - As used herein, "this License" refers to version 3 of the GNU Lesser -General Public License, and the "GNU GPL" refers to version 3 of the GNU -General Public License. - - "The Library" refers to a covered work governed by this License, -other than an Application or a Combined Work as defined below. - - An "Application" is any work that makes use of an interface provided -by the Library, but which is not otherwise based on the Library. -Defining a subclass of a class defined by the Library is deemed a mode -of using an interface provided by the Library. - - A "Combined Work" is a work produced by combining or linking an -Application with the Library. The particular version of the Library -with which the Combined Work was made is also called the "Linked -Version". - - The "Minimal Corresponding Source" for a Combined Work means the -Corresponding Source for the Combined Work, excluding any source code -for portions of the Combined Work that, considered in isolation, are -based on the Application, and not on the Linked Version. - - The "Corresponding Application Code" for a Combined Work means the -object code and/or source code for the Application, including any data -and utility programs needed for reproducing the Combined Work from the -Application, but excluding the System Libraries of the Combined Work. - - 1. Exception to Section 3 of the GNU GPL. - - You may convey a covered work under sections 3 and 4 of this License -without being bound by section 3 of the GNU GPL. - - 2. Conveying Modified Versions. - - If you modify a copy of the Library, and, in your modifications, a -facility refers to a function or data to be supplied by an Application -that uses the facility (other than as an argument passed when the -facility is invoked), then you may convey a copy of the modified -version: - - a) under this License, provided that you make a good faith effort to - ensure that, in the event an Application does not supply the - function or data, the facility still operates, and performs - whatever part of its purpose remains meaningful, or - - b) under the GNU GPL, with none of the additional permissions of - this License applicable to that copy. - - 3. Object Code Incorporating Material from Library Header Files. - - The object code form of an Application may incorporate material from -a header file that is part of the Library. You may convey such object -code under terms of your choice, provided that, if the incorporated -material is not limited to numerical parameters, data structure -layouts and accessors, or small macros, inline functions and templates -(ten or fewer lines in length), you do both of the following: - - a) Give prominent notice with each copy of the object code that the - Library is used in it and that the Library and its use are - covered by this License. - - b) Accompany the object code with a copy of the GNU GPL and this license - document. - - 4. Combined Works. - - You may convey a Combined Work under terms of your choice that, -taken together, effectively do not restrict modification of the -portions of the Library contained in the Combined Work and reverse -engineering for debugging such modifications, if you also do each of -the following: - - a) Give prominent notice with each copy of the Combined Work that - the Library is used in it and that the Library and its use are - covered by this License. - - b) Accompany the Combined Work with a copy of the GNU GPL and this license - document. - - c) For a Combined Work that displays copyright notices during - execution, include the copyright notice for the Library among - these notices, as well as a reference directing the user to the - copies of the GNU GPL and this license document. - - d) Do one of the following: - - 0) Convey the Minimal Corresponding Source under the terms of this - License, and the Corresponding Application Code in a form - suitable for, and under terms that permit, the user to - recombine or relink the Application with a modified version of - the Linked Version to produce a modified Combined Work, in the - manner specified by section 6 of the GNU GPL for conveying - Corresponding Source. - - 1) Use a suitable shared library mechanism for linking with the - Library. A suitable mechanism is one that (a) uses at run time - a copy of the Library already present on the user's computer - system, and (b) will operate properly with a modified version - of the Library that is interface-compatible with the Linked - Version. - - e) Provide Installation Information, but only if you would otherwise - be required to provide such information under section 6 of the - GNU GPL, and only to the extent that such information is - necessary to install and execute a modified version of the - Combined Work produced by recombining or relinking the - Application with a modified version of the Linked Version. (If - you use option 4d0, the Installation Information must accompany - the Minimal Corresponding Source and Corresponding Application - Code. If you use option 4d1, you must provide the Installation - Information in the manner specified by section 6 of the GNU GPL - for conveying Corresponding Source.) - - 5. Combined Libraries. - - You may place library facilities that are a work based on the -Library side by side in a single library together with other library -facilities that are not Applications and are not covered by this -License, and convey such a combined library under terms of your -choice, if you do both of the following: - - a) Accompany the combined library with a copy of the same work based - on the Library, uncombined with any other library facilities, - conveyed under the terms of this License. - - b) Give prominent notice with the combined library that part of it - is a work based on the Library, and explaining where to find the - accompanying uncombined form of the same work. - - 6. Revised Versions of the GNU Lesser General Public License. - - The Free Software Foundation may publish revised and/or new versions -of the GNU Lesser General Public License from time to time. Such new -versions will be similar in spirit to the present version, but may -differ in detail to address new problems or concerns. - - Each version is given a distinguishing version number. If the -Library as you received it specifies that a certain numbered version -of the GNU Lesser General Public License "or any later version" -applies to it, you have the option of following the terms and -conditions either of that published version or of any later version -published by the Free Software Foundation. If the Library as you -received it does not specify a version number of the GNU Lesser -General Public License, you may choose any version of the GNU Lesser -General Public License ever published by the Free Software Foundation. - - If the Library as you received it specifies that a proxy can decide -whether future versions of the GNU Lesser General Public License shall -apply, that proxy's public statement of acceptance of any version is -permanent authorization for you to choose that version for the -Library. - -================================================================= - -Creative Commons Legal Code - -Attribution-ShareAlike 3.0 Unported - - CREATIVE COMMONS CORPORATION IS NOT A LAW FIRM AND DOES NOT PROVIDE - LEGAL SERVICES. DISTRIBUTION OF THIS LICENSE DOES NOT CREATE AN - ATTORNEY-CLIENT RELATIONSHIP. CREATIVE COMMONS PROVIDES THIS - INFORMATION ON AN "AS-IS" BASIS. CREATIVE COMMONS MAKES NO WARRANTIES - REGARDING THE INFORMATION PROVIDED, AND DISCLAIMS LIABILITY FOR - DAMAGES RESULTING FROM ITS USE. - -License - -THE WORK (AS DEFINED BELOW) IS PROVIDED UNDER THE TERMS OF THIS CREATIVE -COMMONS PUBLIC LICENSE ("CCPL" OR "LICENSE"). THE WORK IS PROTECTED BY -COPYRIGHT AND/OR OTHER APPLICABLE LAW. ANY USE OF THE WORK OTHER THAN AS -AUTHORIZED UNDER THIS LICENSE OR COPYRIGHT LAW IS PROHIBITED. - -BY EXERCISING ANY RIGHTS TO THE WORK PROVIDED HERE, YOU ACCEPT AND AGREE -TO BE BOUND BY THE TERMS OF THIS LICENSE. TO THE EXTENT THIS LICENSE MAY -BE CONSIDERED TO BE A CONTRACT, THE LICENSOR GRANTS YOU THE RIGHTS -CONTAINED HERE IN CONSIDERATION OF YOUR ACCEPTANCE OF SUCH TERMS AND -CONDITIONS. - -1. Definitions - - a. "Adaptation" means a work based upon the Work, or upon the Work and - other pre-existing works, such as a translation, adaptation, - derivative work, arrangement of music or other alterations of a - literary or artistic work, or phonogram or performance and includes - cinematographic adaptations or any other form in which the Work may be - recast, transformed, or adapted including in any form recognizably - derived from the original, except that a work that constitutes a - Collection will not be considered an Adaptation for the purpose of - this License. For the avoidance of doubt, where the Work is a musical - work, performance or phonogram, the synchronization of the Work in - timed-relation with a moving image ("synching") will be considered an - Adaptation for the purpose of this License. - b. "Collection" means a collection of literary or artistic works, such as - encyclopedias and anthologies, or performances, phonograms or - broadcasts, or other works or subject matter other than works listed - in Section 1(f) below, which, by reason of the selection and - arrangement of their contents, constitute intellectual creations, in - which the Work is included in its entirety in unmodified form along - with one or more other contributions, each constituting separate and - independent works in themselves, which together are assembled into a - collective whole. A work that constitutes a Collection will not be - considered an Adaptation (as defined below) for the purposes of this - License. - c. "Creative Commons Compatible License" means a license that is listed - at http://creativecommons.org/compatiblelicenses that has been - approved by Creative Commons as being essentially equivalent to this - License, including, at a minimum, because that license: (i) contains - terms that have the same purpose, meaning and effect as the License - Elements of this License; and, (ii) explicitly permits the relicensing - of adaptations of works made available under that license under this - License or a Creative Commons jurisdiction license with the same - License Elements as this License. - d. "Distribute" means to make available to the public the original and - copies of the Work or Adaptation, as appropriate, through sale or - other transfer of ownership. - e. "License Elements" means the following high-level license attributes - as selected by Licensor and indicated in the title of this License: - Attribution, ShareAlike. - f. "Licensor" means the individual, individuals, entity or entities that - offer(s) the Work under the terms of this License. - g. "Original Author" means, in the case of a literary or artistic work, - the individual, individuals, entity or entities who created the Work - or if no individual or entity can be identified, the publisher; and in - addition (i) in the case of a performance the actors, singers, - musicians, dancers, and other persons who act, sing, deliver, declaim, - play in, interpret or otherwise perform literary or artistic works or - expressions of folklore; (ii) in the case of a phonogram the producer - being the person or legal entity who first fixes the sounds of a - performance or other sounds; and, (iii) in the case of broadcasts, the - organization that transmits the broadcast. - h. "Work" means the literary and/or artistic work offered under the terms - of this License including without limitation any production in the - literary, scientific and artistic domain, whatever may be the mode or - form of its expression including digital form, such as a book, - pamphlet and other writing; a lecture, address, sermon or other work - of the same nature; a dramatic or dramatico-musical work; a - choreographic work or entertainment in dumb show; a musical - composition with or without words; a cinematographic work to which are - assimilated works expressed by a process analogous to cinematography; - a work of drawing, painting, architecture, sculpture, engraving or - lithography; a photographic work to which are assimilated works - expressed by a process analogous to photography; a work of applied - art; an illustration, map, plan, sketch or three-dimensional work - relative to geography, topography, architecture or science; a - performance; a broadcast; a phonogram; a compilation of data to the - extent it is protected as a copyrightable work; or a work performed by - a variety or circus performer to the extent it is not otherwise - considered a literary or artistic work. - i. "You" means an individual or entity exercising rights under this - License who has not previously violated the terms of this License with - respect to the Work, or who has received express permission from the - Licensor to exercise rights under this License despite a previous - violation. - j. "Publicly Perform" means to perform public recitations of the Work and - to communicate to the public those public recitations, by any means or - process, including by wire or wireless means or public digital - performances; to make available to the public Works in such a way that - members of the public may access these Works from a place and at a - place individually chosen by them; to perform the Work to the public - by any means or process and the communication to the public of the - performances of the Work, including by public digital performance; to - broadcast and rebroadcast the Work by any means including signs, - sounds or images. - k. "Reproduce" means to make copies of the Work by any means including - without limitation by sound or visual recordings and the right of - fixation and reproducing fixations of the Work, including storage of a - protected performance or phonogram in digital form or other electronic - medium. - -2. Fair Dealing Rights. Nothing in this License is intended to reduce, -limit, or restrict any uses free from copyright or rights arising from -limitations or exceptions that are provided for in connection with the -copyright protection under copyright law or other applicable laws. - -3. License Grant. Subject to the terms and conditions of this License, -Licensor hereby grants You a worldwide, royalty-free, non-exclusive, -perpetual (for the duration of the applicable copyright) license to -exercise the rights in the Work as stated below: - - a. to Reproduce the Work, to incorporate the Work into one or more - Collections, and to Reproduce the Work as incorporated in the - Collections; - b. to create and Reproduce Adaptations provided that any such Adaptation, - including any translation in any medium, takes reasonable steps to - clearly label, demarcate or otherwise identify that changes were made - to the original Work. For example, a translation could be marked "The - original work was translated from English to Spanish," or a - modification could indicate "The original work has been modified."; - c. to Distribute and Publicly Perform the Work including as incorporated - in Collections; and, - d. to Distribute and Publicly Perform Adaptations. - e. For the avoidance of doubt: - - i. Non-waivable Compulsory License Schemes. In those jurisdictions in - which the right to collect royalties through any statutory or - compulsory licensing scheme cannot be waived, the Licensor - reserves the exclusive right to collect such royalties for any - exercise by You of the rights granted under this License; - ii. Waivable Compulsory License Schemes. In those jurisdictions in - which the right to collect royalties through any statutory or - compulsory licensing scheme can be waived, the Licensor waives the - exclusive right to collect such royalties for any exercise by You - of the rights granted under this License; and, - iii. Voluntary License Schemes. The Licensor waives the right to - collect royalties, whether individually or, in the event that the - Licensor is a member of a collecting society that administers - voluntary licensing schemes, via that society, from any exercise - by You of the rights granted under this License. - -The above rights may be exercised in all media and formats whether now -known or hereafter devised. The above rights include the right to make -such modifications as are technically necessary to exercise the rights in -other media and formats. Subject to Section 8(f), all rights not expressly -granted by Licensor are hereby reserved. - -4. Restrictions. The license granted in Section 3 above is expressly made -subject to and limited by the following restrictions: - - a. You may Distribute or Publicly Perform the Work only under the terms - of this License. You must include a copy of, or the Uniform Resource - Identifier (URI) for, this License with every copy of the Work You - Distribute or Publicly Perform. You may not offer or impose any terms - on the Work that restrict the terms of this License or the ability of - the recipient of the Work to exercise the rights granted to that - recipient under the terms of the License. You may not sublicense the - Work. You must keep intact all notices that refer to this License and - to the disclaimer of warranties with every copy of the Work You - Distribute or Publicly Perform. When You Distribute or Publicly - Perform the Work, You may not impose any effective technological - measures on the Work that restrict the ability of a recipient of the - Work from You to exercise the rights granted to that recipient under - the terms of the License. This Section 4(a) applies to the Work as - incorporated in a Collection, but this does not require the Collection - apart from the Work itself to be made subject to the terms of this - License. If You create a Collection, upon notice from any Licensor You - must, to the extent practicable, remove from the Collection any credit - as required by Section 4(c), as requested. If You create an - Adaptation, upon notice from any Licensor You must, to the extent - practicable, remove from the Adaptation any credit as required by - Section 4(c), as requested. - b. You may Distribute or Publicly Perform an Adaptation only under the - terms of: (i) this License; (ii) a later version of this License with - the same License Elements as this License; (iii) a Creative Commons - jurisdiction license (either this or a later license version) that - contains the same License Elements as this License (e.g., - Attribution-ShareAlike 3.0 US)); (iv) a Creative Commons Compatible - License. If you license the Adaptation under one of the licenses - mentioned in (iv), you must comply with the terms of that license. If - you license the Adaptation under the terms of any of the licenses - mentioned in (i), (ii) or (iii) (the "Applicable License"), you must - comply with the terms of the Applicable License generally and the - following provisions: (I) You must include a copy of, or the URI for, - the Applicable License with every copy of each Adaptation You - Distribute or Publicly Perform; (II) You may not offer or impose any - terms on the Adaptation that restrict the terms of the Applicable - License or the ability of the recipient of the Adaptation to exercise - the rights granted to that recipient under the terms of the Applicable - License; (III) You must keep intact all notices that refer to the - Applicable License and to the disclaimer of warranties with every copy - of the Work as included in the Adaptation You Distribute or Publicly - Perform; (IV) when You Distribute or Publicly Perform the Adaptation, - You may not impose any effective technological measures on the - Adaptation that restrict the ability of a recipient of the Adaptation - from You to exercise the rights granted to that recipient under the - terms of the Applicable License. This Section 4(b) applies to the - Adaptation as incorporated in a Collection, but this does not require - the Collection apart from the Adaptation itself to be made subject to - the terms of the Applicable License. - c. If You Distribute, or Publicly Perform the Work or any Adaptations or - Collections, You must, unless a request has been made pursuant to - Section 4(a), keep intact all copyright notices for the Work and - provide, reasonable to the medium or means You are utilizing: (i) the - name of the Original Author (or pseudonym, if applicable) if supplied, - and/or if the Original Author and/or Licensor designate another party - or parties (e.g., a sponsor institute, publishing entity, journal) for - attribution ("Attribution Parties") in Licensor's copyright notice, - terms of service or by other reasonable means, the name of such party - or parties; (ii) the title of the Work if supplied; (iii) to the - extent reasonably practicable, the URI, if any, that Licensor - specifies to be associated with the Work, unless such URI does not - refer to the copyright notice or licensing information for the Work; - and (iv) , consistent with Ssection 3(b), in the case of an - Adaptation, a credit identifying the use of the Work in the Adaptation - (e.g., "French translation of the Work by Original Author," or - "Screenplay based on original Work by Original Author"). The credit - required by this Section 4(c) may be implemented in any reasonable - manner; provided, however, that in the case of a Adaptation or - Collection, at a minimum such credit will appear, if a credit for all - contributing authors of the Adaptation or Collection appears, then as - part of these credits and in a manner at least as prominent as the - credits for the other contributing authors. For the avoidance of - doubt, You may only use the credit required by this Section for the - purpose of attribution in the manner set out above and, by exercising - Your rights under this License, You may not implicitly or explicitly - assert or imply any connection with, sponsorship or endorsement by the - Original Author, Licensor and/or Attribution Parties, as appropriate, - of You or Your use of the Work, without the separate, express prior - written permission of the Original Author, Licensor and/or Attribution - Parties. - d. Except as otherwise agreed in writing by the Licensor or as may be - otherwise permitted by applicable law, if You Reproduce, Distribute or - Publicly Perform the Work either by itself or as part of any - Adaptations or Collections, You must not distort, mutilate, modify or - take other derogatory action in relation to the Work which would be - prejudicial to the Original Author's honor or reputation. Licensor - agrees that in those jurisdictions (e.g. Japan), in which any exercise - of the right granted in Section 3(b) of this License (the right to - make Adaptations) would be deemed to be a distortion, mutilation, - modification or other derogatory action prejudicial to the Original - Author's honor and reputation, the Licensor will waive or not assert, - as appropriate, this Section, to the fullest extent permitted by the - applicable national law, to enable You to reasonably exercise Your - right under Section 3(b) of this License (right to make Adaptations) - but not otherwise. - -5. Representations, Warranties and Disclaimer - -UNLESS OTHERWISE MUTUALLY AGREED TO BY THE PARTIES IN WRITING, LICENSOR -OFFERS THE WORK AS-IS AND MAKES NO REPRESENTATIONS OR WARRANTIES OF ANY -KIND CONCERNING THE WORK, EXPRESS, IMPLIED, STATUTORY OR OTHERWISE, -INCLUDING, WITHOUT LIMITATION, WARRANTIES OF TITLE, MERCHANTIBILITY, -FITNESS FOR A PARTICULAR PURPOSE, NONINFRINGEMENT, OR THE ABSENCE OF -LATENT OR OTHER DEFECTS, ACCURACY, OR THE PRESENCE OF ABSENCE OF ERRORS, -WHETHER OR NOT DISCOVERABLE. SOME JURISDICTIONS DO NOT ALLOW THE EXCLUSION -OF IMPLIED WARRANTIES, SO SUCH EXCLUSION MAY NOT APPLY TO YOU. - -6. Limitation on Liability. EXCEPT TO THE EXTENT REQUIRED BY APPLICABLE -LAW, IN NO EVENT WILL LICENSOR BE LIABLE TO YOU ON ANY LEGAL THEORY FOR -ANY SPECIAL, INCIDENTAL, CONSEQUENTIAL, PUNITIVE OR EXEMPLARY DAMAGES -ARISING OUT OF THIS LICENSE OR THE USE OF THE WORK, EVEN IF LICENSOR HAS -BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGES. - -7. Termination - - a. This License and the rights granted hereunder will terminate - automatically upon any breach by You of the terms of this License. - Individuals or entities who have received Adaptations or Collections - from You under this License, however, will not have their licenses - terminated provided such individuals or entities remain in full - compliance with those licenses. Sections 1, 2, 5, 6, 7, and 8 will - survive any termination of this License. - b. Subject to the above terms and conditions, the license granted here is - perpetual (for the duration of the applicable copyright in the Work). - Notwithstanding the above, Licensor reserves the right to release the - Work under different license terms or to stop distributing the Work at - any time; provided, however that any such election will not serve to - withdraw this License (or any other license that has been, or is - required to be, granted under the terms of this License), and this - License will continue in full force and effect unless terminated as - stated above. - -8. Miscellaneous - - a. Each time You Distribute or Publicly Perform the Work or a Collection, - the Licensor offers to the recipient a license to the Work on the same - terms and conditions as the license granted to You under this License. - b. Each time You Distribute or Publicly Perform an Adaptation, Licensor - offers to the recipient a license to the original Work on the same - terms and conditions as the license granted to You under this License. - c. If any provision of this License is invalid or unenforceable under - applicable law, it shall not affect the validity or enforceability of - the remainder of the terms of this License, and without further action - by the parties to this agreement, such provision shall be reformed to - the minimum extent necessary to make such provision valid and - enforceable. - d. No term or provision of this License shall be deemed waived and no - breach consented to unless such waiver or consent shall be in writing - and signed by the party to be charged with such waiver or consent. - e. This License constitutes the entire agreement between the parties with - respect to the Work licensed here. There are no understandings, - agreements or representations with respect to the Work not specified - here. Licensor shall not be bound by any additional provisions that - may appear in any communication from You. This License may not be - modified without the mutual written agreement of the Licensor and You. - f. The rights granted under, and the subject matter referenced, in this - License were drafted utilizing the terminology of the Berne Convention - for the Protection of Literary and Artistic Works (as amended on - September 28, 1979), the Rome Convention of 1961, the WIPO Copyright - Treaty of 1996, the WIPO Performances and Phonograms Treaty of 1996 - and the Universal Copyright Convention (as revised on July 24, 1971). - These rights and subject matter take effect in the relevant - jurisdiction in which the License terms are sought to be enforced - according to the corresponding provisions of the implementation of - those treaty provisions in the applicable national law. If the - standard suite of rights granted under applicable copyright law - includes additional rights not granted under this License, such - additional rights are deemed to be included in the License; this - License is not intended to restrict the license of any rights under - applicable law. - - -Creative Commons Notice - - Creative Commons is not a party to this License, and makes no warranty - whatsoever in connection with the Work. Creative Commons will not be - liable to You or any party on any legal theory for any damages - whatsoever, including without limitation any general, special, - incidental or consequential damages arising in connection to this - license. Notwithstanding the foregoing two (2) sentences, if Creative - Commons has expressly identified itself as the Licensor hereunder, it - shall have all rights and obligations of Licensor. - - Except for the limited purpose of indicating to the public that the - Work is licensed under the CCPL, Creative Commons does not authorize - the use by either party of the trademark "Creative Commons" or any - related trademark or logo of Creative Commons without the prior - written consent of Creative Commons. Any permitted use will be in - compliance with Creative Commons' then-current trademark usage - guidelines, as may be published on its website or otherwise made - available upon request from time to time. For the avoidance of doubt, - this trademark restriction does not form part of the License. - - Creative Commons may be contacted at http://creativecommons.org/. diff --git a/games/default/files/bluestone/README.md b/games/default/files/bluestone/README.md deleted file mode 100644 index 5034d7959..000000000 --- a/games/default/files/bluestone/README.md +++ /dev/null @@ -1,79 +0,0 @@ - ######################################################################## - ## __ __ _____ _____ _____ _____ _____ _ _ _____ ## - ## | \ / | | ___| | ___| | ___| | ___| | _ | | \ | | | ___| ## - ## | \/ | | |___ | |___ | |___ | | | | | | | \| | | |___ ## - ## | |\__/| | | ___| |___ | | ___| | | | | | | | | |___ | ## - ## | | | | | |___ ___| | | |___ | |___ | |_| | | |\ | ___| | ## - ## |_| |_| |_____| |_____| |_____| |_____| |_____| |_| \_| |_____| ## - ## ## - ######################################################################## - -MESECONS by Jeija and contributors - -Mezzee-what? ------------- -[Mesecons](http://mesecons.net/)! They're yellow, they're conductive, and they'll add a whole new dimension to Minetest's gameplay. - -Mesecons is a mod for [Minetest](http://minetest.net/) that implements a ton of items related to digital circuitry, such as wires, buttons, lights, and even programmable controllers. Among other things, there are also pistons, solar panels, pressure plates, and note blocks. - -OK, I want in. --------------- -Go get it! - -[DOWNLOAD IT NOW](https://github.com/minetest-mods/mesecons/archive/master.zip) - -Now go ahead and install it like any other Minetest mod. Don't know how? Check out [the wonderful page about it](https://wiki.minetest.net/Mods) over at the official Minetest Wiki. For your convenience, here's a quick summary: - -1. If Mesecons is still in a ZIP file, extract the folder inside to somewhere on the computer. -2. Make sure that when you open the folder, you can directly find `README.md` in the listing. If you just see another folder, move that folder up one level and delete the old one. -3. Open up the Minetest mods folder - usually `/mods/`. If you see the `minetest` or folder inside of that, that is your mod folder instead. -4. Copy the Mesecons folder into the mods folder. - -Don't like some parts of Mesecons? Open up the Mesecons folder and delete the subfolder containing the mod you don't want. If you didn't want movestones, for example, all you have to do is delete the `mesecons_movestones` folder and they will no longer be available. - -There are no dependencies - it will work right after installing! - -How do I use this thing? ------------------------- -How about a [quick overview video](https://www.youtube.com/watch?v=6kmeQj6iW5k)? - -Or maybe a [comprehensive reference](http://mesecons.net/items.html) is your style? - -An overview for the very newest of new beginners? How does [this one](http://uberi.mesecons.net/projects/MeseconsBasics/index.html) look? - -There is also a [wiki page](https://wiki.minetest.net/Mods/Mesecons) dedicated to this mod. - -Want to get more into building? Why not check out the [Mesecons Laboratory](http://uberi.mesecons.net/), a website dedicated to advanced Mesecons builders? - -Want to contribute to Mesecons itself? Check out the [source code](https://github.com/minetest-mods/mesecons)! - -Who wrote it anyways? ---------------------- -These awesome people made Mesecons possible! - -| Contributor | Contribution | -| --------------- | -------------------------------- | -| Hawk777 | Code for VoxelManip caching | -| Jat15 | Various tweaks. | -| Jeija | **Main developer! Everything.** | -| Jordach | Noteblock sounds. | -| khonkhortistan | Code, recipes, textures. | -| Kotolegokot | Nodeboxes for items. | -| minerd247 | Textures. | -| Nore/Novatux | Code. | -| RealBadAngel | Fixes, improvements. | -| sfan5 | Code, recipes, textures. | -| suzenako | Piston sounds. | -| Uberi/Temperest | Code, textures, documentation. | -| VanessaE | Code, recipes, textures, design. | -| Whiskers75 | Logic gates implementation. | - -There are also a whole bunch of other people helping with everything from code to testing and feedback. Mesecons would also not be possible without their help! - -Alright, how can I use it? --------------------------- -All textures in this project are licensed under the CC-BY-SA 3.0 (Creative Commons Attribution-ShareAlike 3.0 Generic). That means you can distribute and remix them as much as you want to, under the condition that you give credit to the authors and the project, and that if you remix and release them, they must be under the same or similar license to this one. - -All code in this project is licensed under the LGPL version 3 or later. That means you have unlimited freedom to distribute and modify the work however you see fit, provided that if you decide to distribute it or any modified versions of it, you must also use the same license. The LGPL also grants the additional freedom to write extensions for the software and distribute them without the extensions being subject to the terms of the LGPL, although the software itself retains its license. - -No warranty is provided, express or implied, for any part of the project. diff --git a/games/default/files/bluestone/bluestone_torch/README.txt b/games/default/files/bluestone/bluestone_torch/README.txt deleted file mode 100644 index 5c31ef172..000000000 --- a/games/default/files/bluestone/bluestone_torch/README.txt +++ /dev/null @@ -1,13 +0,0 @@ -MultiCraft Game mod: bluestone torch -==================================== - -License of source code: ------------------------ -Copyright (C) 2019 MultiCraft Development Team - -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. - -http://www.gnu.org/licenses/lgpl-3.0.html diff --git a/games/default/files/bluestone/bluestone_torch/depends.txt b/games/default/files/bluestone/bluestone_torch/depends.txt deleted file mode 100644 index acaa92412..000000000 --- a/games/default/files/bluestone/bluestone_torch/depends.txt +++ /dev/null @@ -1 +0,0 @@ -mesecons diff --git a/games/default/files/bluestone/bluestone_torch/init.lua b/games/default/files/bluestone/bluestone_torch/init.lua deleted file mode 100644 index ddf6ea870..000000000 --- a/games/default/files/bluestone/bluestone_torch/init.lua +++ /dev/null @@ -1,27 +0,0 @@ -default.register_torch("bluestone_torch:torch", { - description = "Bluestone Torch", - tiles = {{ - name = "bluestone_torch.png", - -- name = "bluestone_torch_animated.png", - -- animation = {type = "vertical_frames", aspect_w = 32, aspect_h = 32, length = 3.3} - }}, - inventory_image = "bluestone_torch.png", - wield_image = "bluestone_torch.png", - light_source = 10, - groups = {choppy = 2, dig_immediate = 3, flammable = 1, attached_node = 1, torch = 1}, - sounds = default.node_sound_wood_defaults(), - mesecons = {receptor = { - state = mesecon.state.on - }}, - on_blast = mesecon.on_blastnode -}) - -minetest.register_craft({ - output = "bluestone_torch:torch 4", - recipe = { - {"mesecons:wire_00000000_off"}, - {"default:stick"},} -}) - -minetest.register_alias("mesecons_torch:mesecon_torch_off", "bluestone_torch:torch") -minetest.register_alias("mesecons_torch:mesecon_torch_on", "bluestone_torch:torch") diff --git a/games/default/files/bluestone/bluestone_torch/textures/bluestone_torch.png b/games/default/files/bluestone/bluestone_torch/textures/bluestone_torch.png deleted file mode 100644 index b8c913ea1..000000000 Binary files a/games/default/files/bluestone/bluestone_torch/textures/bluestone_torch.png and /dev/null differ diff --git a/games/default/files/bluestone/mesecons/actionqueue.lua b/games/default/files/bluestone/mesecons/actionqueue.lua deleted file mode 100644 index 828cfc5d5..000000000 --- a/games/default/files/bluestone/mesecons/actionqueue.lua +++ /dev/null @@ -1,114 +0,0 @@ -mesecon.queue.actions={} -- contains all ActionQueue actions - -function mesecon.queue:add_function(name, func) - mesecon.queue.funcs[name] = func -end - --- If add_action with twice the same overwritecheck and same position are called, the first one is overwritten --- use overwritecheck nil to never overwrite, but just add the event to the queue --- priority specifies the order actions are executed within one globalstep, highest first --- should be between 0 and 1 -function mesecon.queue:add_action(pos, func, params, time, overwritecheck, priority) - -- Create Action Table: - time = time or 0 -- time <= 0 --> execute, time > 0 --> wait time until execution - priority = priority or 1 - local action = { pos=mesecon.tablecopy(pos), - func=func, - params=mesecon.tablecopy(params or {}), - time=time, - owcheck=(overwritecheck and mesecon.tablecopy(overwritecheck)) or nil, - priority=priority} - - local toremove = nil - -- Otherwise, add the action to the queue - if overwritecheck then -- check if old action has to be overwritten / removed: - for i, ac in ipairs(mesecon.queue.actions) do - if(vector.equals(pos, ac.pos) - and mesecon.cmpAny(overwritecheck, ac.owcheck)) then - toremove = i - break - end - end - end - - if (toremove ~= nil) then - table.remove(mesecon.queue.actions, toremove) - end - - table.insert(mesecon.queue.actions, action) -end - --- execute the stored functions on a globalstep --- if however, the pos of a function is not loaded (get_node_or_nil == nil), do NOT execute the function --- this makes sure that resuming mesecons circuits when restarting minetest works fine --- However, even that does not work in some cases, that's why we delay the time the globalsteps --- start to be execute by 5 seconds -local get_highest_priority = function (actions) - local highestp = -1 - local highesti - for i, ac in ipairs(actions) do - if ac.priority > highestp then - highestp = ac.priority - highesti = i - end - end - - return highesti -end - -local m_time, timer = 0, 0 -local resumetime = mesecon.setting("resumetime", 4) -local delaytime = mesecon.setting("delaytime", core.settings:get("dedicated_server_step") * 3) -if not minetest.is_singleplayer() then - delaytime = delaytime * 3 -end -minetest.register_globalstep(function (dtime) - m_time = m_time + dtime - -- don't even try if server has not been running for XY seconds; resumetime = time to wait - -- after starting the server before processing the ActionQueue, don't set this too low - if (m_time < resumetime) then return end - - timer = timer + dtime - if timer > delaytime then - local actions = mesecon.tablecopy(mesecon.queue.actions) - local actions_now={} - - mesecon.queue.actions = {} - - -- sort actions into two categories: - -- those toexecute now (actions_now) and those to execute later (mesecon.queue.actions) - for i, ac in ipairs(actions) do - if ac.time > 0 then - ac.time = ac.time - dtime -- executed later - table.insert(mesecon.queue.actions, ac) - else - table.insert(actions_now, ac) - end - end - - while(#actions_now > 0) do -- execute highest priorities first, until all are executed - local hp = get_highest_priority(actions_now) - mesecon.queue:execute(actions_now[hp]) - table.remove(actions_now, hp) - end - timer = 0 - end -end) - -function mesecon.queue:execute(action) - -- ignore if action queue function name doesn't exist, - -- (e.g. in case the action queue savegame was written by an old mesecons version) - if mesecon.queue.funcs[action.func] then - mesecon.queue.funcs[action.func](action.pos, unpack(action.params)) - end -end - - --- Store and read the ActionQueue to / from a file --- so that upcoming actions are remembered when the game --- is restarted -mesecon.queue.actions = mesecon.file2table("mesecon_actionqueue") - -minetest.register_on_shutdown(function() - mesecon.table2file("mesecon_actionqueue", mesecon.queue.actions) -end) diff --git a/games/default/files/bluestone/mesecons/init.lua b/games/default/files/bluestone/mesecons/init.lua deleted file mode 100644 index bf888a570..000000000 --- a/games/default/files/bluestone/mesecons/init.lua +++ /dev/null @@ -1,125 +0,0 @@ --- |\ /| ____ ____ ____ _____ ____ _____ --- | \ / | | | | | | | |\ | | --- | \/ | |___ ____ |___ | | | | \ | |____ --- | | | | | | | | | \ | | --- | | |___ ____| |___ |____ |____| | \| ____| --- by Jeija, Uberi (Temperest), sfan5, VanessaE, Hawk777 and contributors --- --- --- --- This mod adds bluestone and different receptors/effectors to minetest. --- See the documentation on the forum for additional information, especially about crafting --- --- --- For basic development resources, see http://mesecons.net/developers.html --- --- --- ---Quick draft for the mesecons array in the node's definition ---mesecons = ---{ --- receptor = --- { --- state = mesecon.state.on/off --- rules = rules/get_rules --- }, --- effector = --- { --- action_on = function --- action_off = function --- action_change = function --- rules = rules/get_rules --- }, --- conductor = --- { --- state = mesecon.state.on/off --- offstate = opposite state (for state = on only) --- onstate = opposite state (for state = off only) --- rules = rules/get_rules --- } ---} - --- PUBLIC VARIABLES -mesecon={} -- contains all functions and all global variables -mesecon.queue={} -- contains the ActionQueue -mesecon.queue.funcs={} -- contains all ActionQueue functions - --- Settings -dofile(minetest.get_modpath("mesecons").."/settings.lua") - --- Utilities like comparing positions, --- adding positions and rules, --- mostly things that make the source look cleaner -dofile(minetest.get_modpath("mesecons").."/util.lua"); - --- Presets (eg default rules) -dofile(minetest.get_modpath("mesecons").."/presets.lua"); - --- The ActionQueue --- Saves all the actions that have to be execute in the future -dofile(minetest.get_modpath("mesecons").."/actionqueue.lua"); - --- Internal stuff --- This is the most important file --- it handles signal transmission and basically everything else --- It is also responsible for managing the nodedef things, --- like calling action_on/off/change -dofile(minetest.get_modpath("mesecons").."/internal.lua"); - --- API --- these are the only functions you need to remember - -mesecon.queue:add_function("receptor_on", function (pos, rules) - mesecon.vm_begin() - - rules = rules or mesecon.rules.default - - -- Call turnon on all linking positions - for _, rule in ipairs(mesecon.flattenrules(rules)) do - local np = vector.add(pos, rule) - local rulenames = mesecon.rules_link_rule_all(pos, rule) - for _, rulename in ipairs(rulenames) do - mesecon.turnon(np, rulename) - end - end - - mesecon.vm_commit() -end) - -function mesecon.receptor_on(pos, rules) - mesecon.queue:add_action(pos, "receptor_on", {rules}, nil, rules) -end - -mesecon.queue:add_function("receptor_off", function (pos, rules) - rules = rules or mesecon.rules.default - - -- Call turnoff on all linking positions - for _, rule in ipairs(mesecon.flattenrules(rules)) do - local np = vector.add(pos, rule) - local rulenames = mesecon.rules_link_rule_all(pos, rule) - for _, rulename in ipairs(rulenames) do - mesecon.vm_begin() - mesecon.changesignal(np, minetest.get_node(np), rulename, mesecon.state.off, 2) - - -- Turnoff returns true if turnoff process was successful, no onstate receptor - -- was found along the way. Commit changes that were made in voxelmanip. If turnoff - -- returns true, an onstate receptor was found, abort voxelmanip transaction. - if (mesecon.turnoff(np, rulename)) then - mesecon.vm_commit() - else - mesecon.vm_abort() - end - end -end -end) - -function mesecon.receptor_off(pos, rules) - mesecon.queue:add_action(pos, "receptor_off", {rules}, nil, rules) -end - --- Deprecated stuff --- To be removed in future releases -dofile(minetest.get_modpath("mesecons").."/legacy.lua"); - ---Services like turnoff receptor on dignode and so on -dofile(minetest.get_modpath("mesecons").."/services.lua"); diff --git a/games/default/files/bluestone/mesecons/internal.lua b/games/default/files/bluestone/mesecons/internal.lua deleted file mode 100644 index 41bbfaa07..000000000 --- a/games/default/files/bluestone/mesecons/internal.lua +++ /dev/null @@ -1,550 +0,0 @@ --- Internal.lua - The core of mesecons --- --- For more practical developer resources see http://mesecons.net/developers.php --- --- Function overview --- mesecon.get_effector(nodename) --> Returns the mesecons.effector -specifictation in the nodedef by the nodename --- mesecon.get_receptor(nodename) --> Returns the mesecons.receptor -specifictation in the nodedef by the nodename --- mesecon.get_conductor(nodename) --> Returns the mesecons.conductor-specifictation in the nodedef by the nodename --- mesecon.get_any_inputrules (node) --> Returns the rules of a node if it is a conductor or an effector --- mesecon.get_any_outputrules (node) --> Returns the rules of a node if it is a conductor or a receptor - --- RECEPTORS --- mesecon.is_receptor(nodename) --> Returns true if nodename is a receptor --- mesecon.is_receptor_on(nodename --> Returns true if nodename is an receptor with state = mesecon.state.on --- mesecon.is_receptor_off(nodename) --> Returns true if nodename is an receptor with state = mesecon.state.off --- mesecon.receptor_get_rules(node) --> Returns the rules of the receptor (mesecon.rules.default if none specified) - --- EFFECTORS --- mesecon.is_effector(nodename) --> Returns true if nodename is an effector --- mesecon.is_effector_on(nodename) --> Returns true if nodename is an effector with nodedef.mesecons.effector.action_off --- mesecon.is_effector_off(nodename) --> Returns true if nodename is an effector with nodedef.mesecons.effector.action_on --- mesecon.effector_get_rules(node) --> Returns the input rules of the effector (mesecon.rules.default if none specified) - --- SIGNALS --- mesecon.activate(pos, node, depth) --> Activates the effector node at the specific pos (calls nodedef.mesecons.effector.action_on), higher depths are executed later --- mesecon.deactivate(pos, node, depth) --> Deactivates the effector node at the specific pos (calls nodedef.mesecons.effector.action_off), higher depths are executed later --- mesecon.changesignal(pos, node, rulename, newstate, depth) --> Changes the effector node at the specific pos (calls nodedef.mesecons.effector.action_change), higher depths are executed later - --- CONDUCTORS --- mesecon.is_conductor(nodename) --> Returns true if nodename is a conductor --- mesecon.is_conductor_on(node --> Returns true if node is a conductor with state = mesecon.state.on --- mesecon.is_conductor_off(node) --> Returns true if node is a conductor with state = mesecon.state.off --- mesecon.get_conductor_on(node_off) --> Returns the onstate nodename of the conductor --- mesecon.get_conductor_off(node_on) --> Returns the offstate nodename of the conductor --- mesecon.conductor_get_rules(node) --> Returns the input+output rules of a conductor (mesecon.rules.default if none specified) - --- HIGH-LEVEL Internals --- mesecon.is_power_on(pos) --> Returns true if pos emits power in any way --- mesecon.is_power_off(pos) --> Returns true if pos does not emit power in any way --- mesecon.is_powered(pos) --> Returns true if pos is powered by a receptor or a conductor - --- RULES ROTATION helpers --- mesecon.rotate_rules_right(rules) --- mesecon.rotate_rules_left(rules) --- mesecon.rotate_rules_up(rules) --- mesecon.rotate_rules_down(rules) --- These functions return rules that have been rotated in the specific direction - --- General -function mesecon.get_effector(nodename) - if minetest.registered_nodes[nodename] - and minetest.registered_nodes[nodename].mesecons - and minetest.registered_nodes[nodename].mesecons.effector then - return minetest.registered_nodes[nodename].mesecons.effector - end -end - -function mesecon.get_receptor(nodename) - if minetest.registered_nodes[nodename] - and minetest.registered_nodes[nodename].mesecons - and minetest.registered_nodes[nodename].mesecons.receptor then - return minetest.registered_nodes[nodename].mesecons.receptor - end -end - -function mesecon.get_conductor(nodename) - if minetest.registered_nodes[nodename] - and minetest.registered_nodes[nodename].mesecons - and minetest.registered_nodes[nodename].mesecons.conductor then - return minetest.registered_nodes[nodename].mesecons.conductor - end -end - -function mesecon.get_any_outputrules (node) - if not node then return nil end - - if mesecon.is_conductor(node.name) then - return mesecon.conductor_get_rules(node) - elseif mesecon.is_receptor(node.name) then - return mesecon.receptor_get_rules(node) - end -end - -function mesecon.get_any_inputrules (node) - if not node then return nil end - - if mesecon.is_conductor(node.name) then - return mesecon.conductor_get_rules(node) - elseif mesecon.is_effector(node.name) then - return mesecon.effector_get_rules(node) - end -end - -function mesecon.get_any_rules (node) - return mesecon.mergetable(mesecon.get_any_inputrules(node) or {}, - mesecon.get_any_outputrules(node) or {}) -end - --- Receptors --- Nodes that can power mesecons -function mesecon.is_receptor_on(nodename) - local receptor = mesecon.get_receptor(nodename) - if receptor and receptor.state == mesecon.state.on then - return true - end - return false -end - -function mesecon.is_receptor_off(nodename) - local receptor = mesecon.get_receptor(nodename) - if receptor and receptor.state == mesecon.state.off then - return true - end - return false -end - -function mesecon.is_receptor(nodename) - local receptor = mesecon.get_receptor(nodename) - if receptor then - return true - end - return false -end - -function mesecon.receptor_get_rules(node) - local receptor = mesecon.get_receptor(node.name) - if receptor then - local rules = receptor.rules - if type(rules) == 'function' then - return rules(node) - elseif rules then - return rules - end - end - - return mesecon.rules.default -end - --- Effectors --- Nodes that can be powered by mesecons -function mesecon.is_effector_on(nodename) - local effector = mesecon.get_effector(nodename) - if effector and effector.action_off then - return true - end - return false -end - -function mesecon.is_effector_off(nodename) - local effector = mesecon.get_effector(nodename) - if effector and effector.action_on then - return true - end - return false -end - -function mesecon.is_effector(nodename) - local effector = mesecon.get_effector(nodename) - if effector then - return true - end - return false -end - -function mesecon.effector_get_rules(node) - local effector = mesecon.get_effector(node.name) - if effector then - local rules = effector.rules - if type(rules) == 'function' then - return rules(node) - elseif rules then - return rules - end - end - return mesecon.rules.default -end - --- ####################### --- # Signals (effectors) # --- ####################### - --- Activation: -mesecon.queue:add_function("activate", function (pos, rulename) - local node = mesecon.get_node_force(pos) - if not node then return end - - local effector = mesecon.get_effector(node.name) - - if effector and effector.action_on then - effector.action_on (pos, node, rulename) - end -end) - -function mesecon.activate(pos, node, rulename, depth) - if rulename == nil then - for _,rule in ipairs(mesecon.effector_get_rules(node)) do - mesecon.activate(pos, node, rule, depth + 1) - end - return - end - mesecon.queue:add_action(pos, "activate", {rulename}, nil, rulename, 1 / depth) -end - - --- Deactivation -mesecon.queue:add_function("deactivate", function (pos, rulename) - local node = mesecon.get_node_force(pos) - if not node then return end - - local effector = mesecon.get_effector(node.name) - - if effector and effector.action_off then - effector.action_off (pos, node, rulename) - end -end) - -function mesecon.deactivate(pos, node, rulename, depth) - if rulename == nil then - for _,rule in ipairs(mesecon.effector_get_rules(node)) do - mesecon.deactivate(pos, node, rule, depth + 1) - end - return - end - mesecon.queue:add_action(pos, "deactivate", {rulename}, nil, rulename, 1 / depth) -end - - --- Change -mesecon.queue:add_function("change", function (pos, rulename, changetype) - local node = mesecon.get_node_force(pos) - if not node then return end - - local effector = mesecon.get_effector(node.name) - - if effector and effector.action_change then - effector.action_change(pos, node, rulename, changetype) - end -end) - -function mesecon.changesignal(pos, node, rulename, newstate, depth) - if rulename == nil then - for _,rule in ipairs(mesecon.effector_get_rules(node)) do - mesecon.changesignal(pos, node, rule, newstate, depth + 1) - end - return -end - - -- Include "change" in overwritecheck so that it cannot be overwritten - -- by "active" / "deactivate" that will be called upon the node at the same time. - local overwritecheck = {"change", rulename} - mesecon.queue:add_action(pos, "change", {rulename, newstate}, nil, overwritecheck, 1 / depth) -end - --- Conductors - -function mesecon.is_conductor_on(node, rulename) - if not node then return false end - - local conductor = mesecon.get_conductor(node.name) - if conductor then - if conductor.state then - return conductor.state == mesecon.state.on - end - if conductor.states then - if not rulename then - return mesecon.getstate(node.name, conductor.states) ~= 1 - end - local bit = mesecon.rule2bit(rulename, mesecon.conductor_get_rules(node)) - local binstate = mesecon.getbinstate(node.name, conductor.states) - return mesecon.get_bit(binstate, bit) - end - end - - return false -end - -function mesecon.is_conductor_off(node, rulename) - if not node then return false end - - local conductor = mesecon.get_conductor(node.name) - if conductor then - if conductor.state then - return conductor.state == mesecon.state.off - end - if conductor.states then - if not rulename then - return mesecon.getstate(node.name, conductor.states) == 1 - end - local bit = mesecon.rule2bit(rulename, mesecon.conductor_get_rules(node)) - local binstate = mesecon.getbinstate(node.name, conductor.states) - return not mesecon.get_bit(binstate, bit) - end - end - - return false -end - -function mesecon.is_conductor(nodename) - local conductor = mesecon.get_conductor(nodename) - if conductor then - return true - end - return false -end - -function mesecon.get_conductor_on(node_off, rulename) - local conductor = mesecon.get_conductor(node_off.name) - if conductor then - if conductor.onstate then - return conductor.onstate - end - if conductor.states then - local bit = mesecon.rule2bit(rulename, mesecon.conductor_get_rules(node_off)) - local binstate = mesecon.getbinstate(node_off.name, conductor.states) - binstate = mesecon.set_bit(binstate, bit, "1") - return conductor.states[tonumber(binstate,2)+1] - end - end - return offstate -end - -function mesecon.get_conductor_off(node_on, rulename) - local conductor = mesecon.get_conductor(node_on.name) - if conductor then - if conductor.offstate then - return conductor.offstate - end - if conductor.states then - local bit = mesecon.rule2bit(rulename, mesecon.conductor_get_rules(node_on)) - local binstate = mesecon.getbinstate(node_on.name, conductor.states) - binstate = mesecon.set_bit(binstate, bit, "0") - return conductor.states[tonumber(binstate,2)+1] - end - end - return onstate -end - -function mesecon.conductor_get_rules(node) - local conductor = mesecon.get_conductor(node.name) - if conductor then - local rules = conductor.rules - if type(rules) == 'function' then - return rules(node) - elseif rules then - return rules - end - end - return mesecon.rules.default -end - --- some more general high-level stuff - -function mesecon.is_power_on(pos, rulename) - local node = mesecon.get_node_force(pos) - if node and (mesecon.is_conductor_on(node, rulename) or mesecon.is_receptor_on(node.name)) then - return true - end - return false -end - -function mesecon.is_power_off(pos, rulename) - local node = mesecon.get_node_force(pos) - if node and (mesecon.is_conductor_off(node, rulename) or mesecon.is_receptor_off(node.name)) then - return true - end - return false -end - --- Turn off an equipotential section starting at `pos`, which outputs in the direction of `link`. --- Breadth-first search. Map is abstracted away in a voxelmanip. --- Follow all all conductor paths replacing conductors that were already --- looked at, activating / changing all effectors along the way. -function mesecon.turnon(pos, link) - local frontiers = {{pos = pos, link = link}} - - local depth = 1 - while frontiers[1] do - local f = table.remove(frontiers, 1) - local node = mesecon.get_node_force(f.pos) - - if not node then - -- Area does not exist; do nothing - elseif mesecon.is_conductor_off(node, f.link) then - local rules = mesecon.conductor_get_rules(node) - - -- Call turnon on neighbors - for _, r in ipairs(mesecon.rule2meta(f.link, rules)) do - local np = vector.add(f.pos, r) - for _, l in ipairs(mesecon.rules_link_rule_all(f.pos, r)) do - table.insert(frontiers, {pos = np, link = l}) - end - end - - mesecon.swap_node_force(f.pos, mesecon.get_conductor_on(node, f.link)) - elseif mesecon.is_effector(node.name) then - mesecon.changesignal(f.pos, node, f.link, mesecon.state.on, depth) - if mesecon.is_effector_off(node.name) then - mesecon.activate(f.pos, node, f.link, depth) - end -end - depth = depth + 1 - end - end - --- Turn on an equipotential section starting at `pos`, which outputs in the direction of `link`. --- Breadth-first search. Map is abstracted away in a voxelmanip. --- Follow all all conductor paths replacing conductors that were already --- looked at, deactivating / changing all effectors along the way. --- In case an onstate receptor is discovered, abort the process by returning false, which will --- cause `receptor_off` to discard all changes made in the voxelmanip. --- Contrary to turnon, turnoff has to cache all change and deactivate signals so that they will only --- be called in the very end when we can be sure that no conductor was found along the path. --- --- Signal table entry structure: --- { --- pos = position of effector, --- node = node descriptor (name, param1 and param2), --- link = link the effector is connected to, --- depth = indicates order in which signals wire fired, higher is later --- } -function mesecon.turnoff(pos, link) - local frontiers = {{pos = pos, link = link}} - local signals = {} - - local depth = 1 - while frontiers[1] do - local f = table.remove(frontiers, 1) - local node = mesecon.get_node_force(f.pos) - - if not node then - -- Area does not exist; do nothing - elseif mesecon.is_conductor_on(node, f.link) then - local rules = mesecon.conductor_get_rules(node) - for _, r in ipairs(mesecon.rule2meta(f.link, rules)) do - local np = vector.add(f.pos, r) - - -- Check if an onstate receptor is connected. If that is the case, - -- abort this turnoff process by returning false. `receptor_off` will - -- discard all the changes that we made in the voxelmanip: - for _, l in ipairs(mesecon.rules_link_rule_all_inverted(f.pos, r)) do - if mesecon.is_receptor_on(mesecon.get_node_force(np).name) then - return false -end - end - - -- Call turnoff on neighbors - for _, l in ipairs(mesecon.rules_link_rule_all(f.pos, r)) do - table.insert(frontiers, {pos = np, link = l}) - end - end - - mesecon.swap_node_force(f.pos, mesecon.get_conductor_off(node, f.link)) - elseif mesecon.is_effector(node.name) then - table.insert(signals, { - pos = f.pos, - node = node, - link = f.link, - depth = depth - }) - end - depth = depth + 1 - end - - for _, sig in ipairs(signals) do - mesecon.changesignal(sig.pos, sig.node, sig.link, mesecon.state.off, sig.depth) - if mesecon.is_effector_on(sig.node.name) and not mesecon.is_powered(sig.pos) then - mesecon.deactivate(sig.pos, sig.node, sig.link, sig.depth) - end - end - - return true -end - --- Get all linking inputrules of inputnode (effector or conductor) that is connected to --- outputnode (receptor or conductor) at position `output` and has an output in direction `rule` -function mesecon.rules_link_rule_all(output, rule) - local input = vector.add(output, rule) - local inputnode = mesecon.get_node_force(input) - local inputrules = mesecon.get_any_inputrules (inputnode) - if not inputrules then - return {} -end - local rules = {} - - for _, inputrule in ipairs(mesecon.flattenrules(inputrules)) do - -- Check if input accepts from output - if vector.equals(vector.add(input, inputrule), output) then - table.insert(rules, inputrule) - end - end - - return rules -end - --- Get all linking outputnodes of outputnode (receptor or conductor) that is connected to --- inputnode (effector or conductor) at position `input` and has an input in direction `rule` -function mesecon.rules_link_rule_all_inverted(input, rule) - local output = vector.add(input, rule) - local outputnode = mesecon.get_node_force(output) - local outputrules = mesecon.get_any_outputrules (outputnode) - if not outputrules then - return {} - end - local rules = {} - - for _, outputrule in ipairs(mesecon.flattenrules(outputrules)) do - if vector.equals(vector.add(output, outputrule), input) then - table.insert(rules, mesecon.invertRule(outputrule)) - end - end - return rules -end - -function mesecon.is_powered(pos, rule) - local node = mesecon.get_node_force(pos) - local rules = mesecon.get_any_inputrules(node) - if not rules then return false end - - -- List of nodes that send out power to pos - local sourcepos = {} - - if not rule then - for _, rule in ipairs(mesecon.flattenrules(rules)) do - local rulenames = mesecon.rules_link_rule_all_inverted(pos, rule) - for _, rname in ipairs(rulenames) do - local np = vector.add(pos, rname) - local nn = mesecon.get_node_force(np) - - if (mesecon.is_conductor_on(nn, mesecon.invertRule(rname)) - or mesecon.is_receptor_on(nn.name)) then - table.insert(sourcepos, np) - end - end - end - else - local rulenames = mesecon.rules_link_rule_all_inverted(pos, rule) - for _, rname in ipairs(rulenames) do - local np = vector.add(pos, rname) - local nn = mesecon.get_node_force(np) - if (mesecon.is_conductor_on (nn, mesecon.invertRule(rname)) - or mesecon.is_receptor_on (nn.name)) then - table.insert(sourcepos, np) - end - end - end - - -- Return FALSE if not powered, return list of sources if is powered - if (#sourcepos == 0) then return false - else return sourcepos end -end diff --git a/games/default/files/bluestone/mesecons/legacy.lua b/games/default/files/bluestone/mesecons/legacy.lua deleted file mode 100644 index ad7093a0b..000000000 --- a/games/default/files/bluestone/mesecons/legacy.lua +++ /dev/null @@ -1,14 +0,0 @@ --- Un-forceload any forceloaded mapblocks from older versions of Mesecons which --- used forceloading instead of VoxelManipulators. -local BLOCKSIZE = 16 - --- convert block hash --> node position -local function unhash_blockpos(hash) - return vector.multiply(minetest.get_position_from_hash(hash), BLOCKSIZE) -end - -local old_forceloaded_blocks = mesecon.file2table("mesecon_forceloaded") -for hash, _ in pairs(old_forceloaded_blocks) do - minetest.forceload_free_block(unhash_blockpos(hash)) -end -os.remove(minetest.get_worldpath()..DIR_DELIM.."mesecon_forceloaded") diff --git a/games/default/files/bluestone/mesecons/presets.lua b/games/default/files/bluestone/mesecons/presets.lua deleted file mode 100644 index a2062d928..000000000 --- a/games/default/files/bluestone/mesecons/presets.lua +++ /dev/null @@ -1,86 +0,0 @@ -mesecon.rules = {} -mesecon.state = {} - -mesecon.rules.default = { - {x = 0, y = 0, z = -1}, - {x = 1, y = 0, z = 0}, - {x = -1, y = 0, z = 0}, - {x = 0, y = 0, z = 1}, - {x = 1, y = 1, z = 0}, - {x = 1, y = -1, z = 0}, - {x = -1, y = 1, z = 0}, - {x = -1, y = -1, z = 0}, - {x = 0, y = 1, z = 1}, - {x = 0, y = -1, z = 1}, - {x = 0, y = 1, z = -1}, - {x = 0, y = -1, z = -1}, -} - -mesecon.rules.floor = mesecon.mergetable(mesecon.rules.default, {{x = 0, y = -1, z = 0}}) - -mesecon.rules.pplate = mesecon.mergetable(mesecon.rules.floor, {{x = 0, y = -2, z = 0}}) - -mesecon.rules.buttonlike = { - {x = 1, y = 0, z = 0}, - {x = 1, y = 1, z = 0}, - {x = 1, y = -1, z = 0}, - {x = 1, y = -1, z = 1}, - {x = 1, y = -1, z = -1}, - {x = 2, y = 0, z = 0}, -} - -mesecon.rules.flat = { - {x = 1, y = 0, z = 0}, - {x = -1, y = 0, z = 0}, - {x = 0, y = 0, z = 1}, - {x = 0, y = 0, z = -1}, -} - -mesecon.rules.alldirs = { - {x = 1, y = 0, z = 0}, - {x = -1, y = 0, z = 0}, - {x = 0, y = 1, z = 0}, - {x = 0, y = -1, z = 0}, - {x = 0, y = 0, z = 1}, - {x = 0, y = 0, z = -1}, -} - -local rules_wallmounted = { - xp = mesecon.rotate_rules_down(mesecon.rules.floor), - xn = mesecon.rotate_rules_up(mesecon.rules.floor), - yp = mesecon.rotate_rules_up(mesecon.rotate_rules_up(mesecon.rules.floor)), - yn = mesecon.rules.floor, - zp = mesecon.rotate_rules_left(mesecon.rotate_rules_up(mesecon.rules.floor)), - zn = mesecon.rotate_rules_right(mesecon.rotate_rules_up(mesecon.rules.floor)), -} - -local rules_buttonlike = { - xp = mesecon.rules.buttonlike, - xn = mesecon.rotate_rules_right(mesecon.rotate_rules_right(mesecon.rules.buttonlike)), - yp = mesecon.rotate_rules_down(mesecon.rules.buttonlike), - yn = mesecon.rotate_rules_up(mesecon.rules.buttonlike), - zp = mesecon.rotate_rules_right(mesecon.rules.buttonlike), - zn = mesecon.rotate_rules_left(mesecon.rules.buttonlike), -} - -local function rules_from_dir(ruleset, dir) - if dir.x == 1 then return ruleset.xp end - if dir.y == 1 then return ruleset.yp end - if dir.z == 1 then return ruleset.zp end - if dir.x == -1 then return ruleset.xn end - if dir.y == -1 then return ruleset.yn end - if dir.z == -1 then return ruleset.zn end -end - -mesecon.rules.wallmounted_get = function(node) - local dir = minetest.wallmounted_to_dir(node.param2) - return rules_from_dir(rules_wallmounted, dir) -end - -mesecon.rules.buttonlike_get = function(node) - local dir = minetest.facedir_to_dir(node.param2) - return rules_from_dir(rules_buttonlike, dir) -end - -mesecon.state.on = "on" -mesecon.state.off = "off" diff --git a/games/default/files/bluestone/mesecons/services.lua b/games/default/files/bluestone/mesecons/services.lua deleted file mode 100644 index d18c3b887..000000000 --- a/games/default/files/bluestone/mesecons/services.lua +++ /dev/null @@ -1,136 +0,0 @@ --- Dig and place services - -mesecon.on_placenode = function (pos, node) - mesecon.execute_autoconnect_hooks_now(pos, node) - - -- Receptors: Send on signal when active - if mesecon.is_receptor_on(node.name) then - mesecon.receptor_on(pos, mesecon.receptor_get_rules(node)) - end - - -- Conductors: Send turnon signal when powered or replace by respective offstate conductor - -- if placed conductor is an onstate one - if mesecon.is_conductor(node.name) then - local sources = mesecon.is_powered(pos) - if sources then - -- also call receptor_on if itself is powered already, so that neighboring - -- conductors will be activated (when pushing an on-conductor with a piston) - for _, s in ipairs(sources) do - local rule = vector.subtract(pos, s) - mesecon.turnon(pos, rule) - end - --mesecon.receptor_on (pos, mesecon.conductor_get_rules(node)) - elseif mesecon.is_conductor_on(node) then - node.name = mesecon.get_conductor_off(node) - minetest.swap_node(pos, node) - end - end - - -- Effectors: Send changesignal and activate or deactivate - if mesecon.is_effector(node.name) then - local powered_rules = {} - local unpowered_rules = {} - - -- for each input rule, check if powered - for _, r in ipairs(mesecon.effector_get_rules(node)) do - local powered = mesecon.is_powered(pos, r) - if powered then table.insert(powered_rules, r) - else table.insert(unpowered_rules, r) end - - local state = powered and mesecon.state.on or mesecon.state.off - mesecon.changesignal(pos, node, r, state, 1) - end - - if (#powered_rules > 0) then - for _, r in ipairs(powered_rules) do - mesecon.activate(pos, node, r, 1) - end - else - for _, r in ipairs(unpowered_rules) do - mesecon.deactivate(pos, node, r, 1) - end - end - end -end - -mesecon.on_dignode = function (pos, node) - if mesecon.is_conductor_on(node) then - mesecon.receptor_off(pos, mesecon.conductor_get_rules(node)) - elseif mesecon.is_receptor_on(node.name) then - mesecon.receptor_off(pos, mesecon.receptor_get_rules(node)) - end - - mesecon.execute_autoconnect_hooks_queue(pos, node) -end - -function mesecon.on_blastnode(pos, intensity) - local node = minetest.get_node(pos) - minetest.remove_node(pos) - mesecon.on_dignode(pos, node) - return minetest.get_node_drops(node.name, "") -end - -minetest.register_on_placenode(mesecon.on_placenode) -minetest.register_on_dignode(mesecon.on_dignode) - --- Overheating service for fast circuits ---[[local OVERHEAT_MAX = mesecon.setting("overheat_max", 20) -local COOLDOWN_TIME = mesecon.setting("cooldown_time", 2.0) -local COOLDOWN_STEP = mesecon.setting("cooldown_granularity", 0.5) -local COOLDOWN_MULTIPLIER = OVERHEAT_MAX / COOLDOWN_TIME -local cooldown_timer = 0.0 -local object_heat = {} - --- returns true if heat is too high -function mesecon.do_overheat(pos) - local id = minetest.hash_node_position(pos) - local heat = (object_heat[id] or 0) + 1 - object_heat[id] = heat - if heat >= OVERHEAT_MAX then - minetest.log("action", "Node overheats at " .. minetest.pos_to_string(pos)) - object_heat[id] = nil - return true - end - return false -end - -function mesecon.do_cooldown(pos) - local id = minetest.hash_node_position(pos) - object_heat[id] = nil -end - -function mesecon.get_heat(pos) - local id = minetest.hash_node_position(pos) - return object_heat[id] or 0 -end - -function mesecon.move_hot_nodes(moved_nodes) - local new_heat = {} - for _, n in ipairs(moved_nodes) do - local old_id = minetest.hash_node_position(n.oldpos) - local new_id = minetest.hash_node_position(n.pos) - new_heat[new_id] = object_heat[old_id] - object_heat[old_id] = nil - end - for id, heat in pairs(new_heat) do - object_heat[id] = heat - end -end - -local function global_cooldown(dtime) - cooldown_timer = cooldown_timer + dtime - if cooldown_timer < COOLDOWN_STEP then - return -- don't overload the CPU - end - local cooldown = COOLDOWN_MULTIPLIER * cooldown_timer - cooldown_timer = 0 - for id, heat in pairs(object_heat) do - heat = heat - cooldown - if heat <= 0 then - object_heat[id] = nil -- free some RAM - else - object_heat[id] = heat - end - end - end -minetest.register_globalstep(global_cooldown)]] diff --git a/games/default/files/bluestone/mesecons/settings.lua b/games/default/files/bluestone/mesecons/settings.lua deleted file mode 100644 index 02207073c..000000000 --- a/games/default/files/bluestone/mesecons/settings.lua +++ /dev/null @@ -1,15 +0,0 @@ --- SETTINGS -function mesecon.setting(setting, default) - if type(default) == "boolean" then - local read = minetest.settings:get_bool("mesecon."..setting) - if read == nil then - return default - else - return read - end - elseif type(default) == "string" then - return minetest.settings:get("mesecon."..setting) or default - elseif type(default) == "number" then - return tonumber(minetest.settings:get("mesecon."..setting) or default) - end -end diff --git a/games/default/files/bluestone/mesecons/util.lua b/games/default/files/bluestone/mesecons/util.lua deleted file mode 100644 index 2901ba5c2..000000000 --- a/games/default/files/bluestone/mesecons/util.lua +++ /dev/null @@ -1,441 +0,0 @@ -function mesecon.move_node(pos, newpos) - local node = minetest.get_node(pos) - local meta = minetest.get_meta(pos):to_table() - minetest.remove_node(pos) - minetest.set_node(newpos, node) - minetest.get_meta(pos):from_table(meta) -end - --- Rules rotation Functions: -function mesecon.rotate_rules_right(rules) - local nr = {} - for i, rule in ipairs(rules) do - table.insert(nr, { - x = -rule.z, - y = rule.y, - z = rule.x, - name = rule.name}) - end - return nr -end - -function mesecon.rotate_rules_left(rules) - local nr = {} - for i, rule in ipairs(rules) do - table.insert(nr, { - x = rule.z, - y = rule.y, - z = -rule.x, - name = rule.name}) - end - return nr -end - -function mesecon.rotate_rules_down(rules) - local nr = {} - for i, rule in ipairs(rules) do - table.insert(nr, { - x = -rule.y, - y = rule.x, - z = rule.z, - name = rule.name}) - end - return nr -end - -function mesecon.rotate_rules_up(rules) - local nr = {} - for i, rule in ipairs(rules) do - table.insert(nr, { - x = rule.y, - y = -rule.x, - z = rule.z, - name = rule.name}) - end - return nr -end --- - -function mesecon.flattenrules(allrules) ---[[ - { - { - {xyz}, - {xyz}, - }, - { - {xyz}, - {xyz}, - }, - } ---]] - if allrules[1] and - allrules[1].x then - return allrules - end - - local shallowrules = {} - for _, metarule in ipairs( allrules) do - for _, rule in ipairs(metarule ) do - table.insert(shallowrules, rule) - end - end - return shallowrules ---[[ - { - {xyz}, - {xyz}, - {xyz}, - {xyz}, - } ---]] -end - -function mesecon.rule2bit(findrule, allrules) - --get the bit of the metarule the rule is in, or bit 1 - if (allrules[1] and - allrules[1].x) or - not findrule then - return 1 - end - for m,metarule in ipairs( allrules) do - for _, rule in ipairs(metarule ) do - if vector.equals(findrule, rule) then - return m - end - end - end -end - -function mesecon.rule2metaindex(findrule, allrules) - --get the metarule the rule is in, or allrules - if allrules[1].x then - return nil - end - - if not(findrule) then - return mesecon.flattenrules(allrules) - end - - for m, metarule in ipairs( allrules) do - for _, rule in ipairs(metarule ) do - if vector.equals(findrule, rule) then - return m - end - end - end -end - -function mesecon.rule2meta(findrule, allrules) - if #allrules == 0 then return {} end - - local index = mesecon.rule2metaindex(findrule, allrules) - if index == nil then - if allrules[1].x then - return allrules -else - return {} - end - end - return allrules[index] -end - -function mesecon.dec2bin(n) - local x, y = math.floor(n / 2), n % 2 - if (n > 1) then - return mesecon.dec2bin(x)..y - else - return ""..y - end - end - -function mesecon.getstate(nodename, states) - for state, name in ipairs(states) do - if name == nodename then - return state - end - end - error(nodename.." doesn't mention itself in "..dump(states)) -end - -function mesecon.getbinstate(nodename, states) - return mesecon.dec2bin(mesecon.getstate(nodename, states)-1) -end - -function mesecon.get_bit(binary,bit) - bit = bit or 1 - local c = binary:len()-(bit-1) - return binary:sub(c,c) == "1" -end - -function mesecon.set_bit(binary,bit,value) - if value == "1" then - if not mesecon.get_bit(binary,bit) then - return mesecon.dec2bin(tonumber(binary,2)+math.pow(2,bit-1)) - end - elseif value == "0" then - if mesecon.get_bit(binary,bit) then - return mesecon.dec2bin(tonumber(binary,2)-math.pow(2,bit-1)) - end - end - return binary - -end - -function mesecon.invertRule(r) - return vector.multiply(r, -1) -end - -function mesecon.tablecopy(table) -- deep table copy - if type(table) ~= "table" then return table end -- no need to copy - local newtable = {} - - for idx, item in pairs(table) do - if type(item) == "table" then - newtable[idx] = mesecon.tablecopy(item) - else - newtable[idx] = item - end - end - - return newtable -end - -function mesecon.cmpAny(t1, t2) - if type(t1) ~= type(t2) then return false end - if type(t1) ~= "table" and type(t2) ~= "table" then return t1 == t2 end - - for i, e in pairs(t1) do - if not mesecon.cmpAny(e, t2[i]) then return false end - end - - return true -end - --- does not overwrite values; number keys (ipairs) are appended, not overwritten -function mesecon.mergetable(source, dest) - local rval = mesecon.tablecopy(dest) - - for k, v in pairs(source) do - rval[k] = dest[k] or mesecon.tablecopy(v) - end - for i, v in ipairs(source) do - table.insert(rval, mesecon.tablecopy(v)) - end - - return rval -end - -function mesecon.register_node(name, spec_common, spec_off, spec_on) - spec_common.drop = spec_common.drop or name .. "_off" - spec_common.on_blast = spec_common.on_blast or mesecon.on_blastnode - spec_common.__mesecon_basename = name - spec_on.__mesecon_state = "on" - spec_off.__mesecon_state = "off" - - spec_on = mesecon.mergetable(spec_common, spec_on); - spec_off = mesecon.mergetable(spec_common, spec_off); - - minetest.register_node(name .. "_on", spec_on) - minetest.register_node(name .. "_off", spec_off) -end - --- swap onstate and offstate nodes, returns new state -function mesecon.flipstate(pos, node) - local nodedef = minetest.registered_nodes[node.name] - local newstate - if (nodedef.__mesecon_state == "on") then newstate = "off" end - if (nodedef.__mesecon_state == "off") then newstate = "on" end - - minetest.swap_node(pos, {name = nodedef.__mesecon_basename .. "_" .. newstate, - param2 = node.param2}) - - return newstate -end - --- File writing / reading utilities -local wpath = minetest.get_worldpath() -function mesecon.file2table(filename) - local f = io.open(wpath..DIR_DELIM..filename, "r") - if f == nil then return {} end - local t = f:read("*all") - f:close() - if t == "" or t == nil then return {} end - return minetest.deserialize(t) -end - -function mesecon.table2file(filename, table) - local f = io.open(wpath..DIR_DELIM..filename, "w") - f:write(minetest.serialize(table)) - f:close() -end - --- Block position "hashing" (convert to integer) functions for voxelmanip cache -local BLOCKSIZE = 16 - --- convert node position --> block hash -local function hash_blockpos(pos) - return minetest.hash_node_position({ - x = math.floor(pos.x/BLOCKSIZE), - y = math.floor(pos.y/BLOCKSIZE), - z = math.floor(pos.z/BLOCKSIZE) - }) -end - --- Maps from a hashed mapblock position (as returned by hash_blockpos) to a --- table. --- --- Contents of the table are: --- vm > the VoxelManipulator --- va > the VoxelArea --- data > the data array --- param1 > the param1 array --- param2 > the param2 array --- dirty > true if data has been modified --- --- Nil if no VM-based transaction is in progress. -local vm_cache = nil - --- Starts a VoxelManipulator-based transaction. --- --- During a VM transaction, calls to vm_get_node and vm_swap_node operate on a --- cached copy of the world loaded via VoxelManipulators. That cache can later --- be committed to the real map by means of vm_commit or discarded by means of --- vm_abort. -function mesecon.vm_begin() - vm_cache = {} -end - --- Finishes a VoxelManipulator-based transaction, freeing the VMs and map data --- and writing back any modified areas. -function mesecon.vm_commit() - for hash, tbl in pairs(vm_cache) do - if tbl.dirty then - local vm = tbl.vm - vm:set_data(tbl.data) - vm:write_to_map() - vm:update_map() - end - end - vm_cache = nil -end - --- Finishes a VoxelManipulator-based transaction, freeing the VMs and throwing --- away any modified areas. -function mesecon.vm_abort() - vm_cache = nil -end - --- Gets the cache entry covering a position, populating it if necessary. -local function vm_get_or_create_entry(pos) - local hash = hash_blockpos(pos) - local tbl = vm_cache[hash] - if not tbl then - local vm = minetest.get_voxel_manip(pos, pos) - local min_pos, max_pos = vm:get_emerged_area() - local va = VoxelArea:new{MinEdge = min_pos, MaxEdge = max_pos} - tbl = {vm = vm, va = va, data = vm:get_data(), param1 = vm:get_light_data(), param2 = vm:get_param2_data(), dirty = false} - vm_cache[hash] = tbl - end - return tbl -end - --- Gets the node at a given position during a VoxelManipulator-based --- transaction. -function mesecon.vm_get_node(pos) - local tbl = vm_get_or_create_entry(pos) - local index = tbl.va:indexp(pos) - local node_value = tbl.data[index] - if node_value == core.CONTENT_IGNORE then - return nil - else - local node_param1 = tbl.param1[index] - local node_param2 = tbl.param2[index] - return {name = minetest.get_name_from_content_id(node_value), param1 = node_param1, param2 = node_param2} - end -end - --- Sets a nodes name during a VoxelManipulator-based transaction. --- --- Existing param1, param2, and metadata are left alone. -function mesecon.vm_swap_node(pos, name) - local tbl = vm_get_or_create_entry(pos) - local index = tbl.va:indexp(pos) - tbl.data[index] = minetest.get_content_id(name) - tbl.dirty = true - end - --- Gets the node at a given position, regardless of whether it is loaded or --- not, respecting a transaction if one is in progress. --- --- Outside a VM transaction, if the mapblock is not loaded, it is pulled into --- the servers main map data cache and then accessed from there. --- --- Inside a VM transaction, the transactions VM cache is used. -function mesecon.get_node_force(pos) - if vm_cache then - return mesecon.vm_get_node(pos) - else - local node = minetest.get_node_or_nil(pos) - if node == nil then - -- Node is not currently loaded; use a VoxelManipulator to prime - -- the mapblock cache and try again. - minetest.get_voxel_manip(pos, pos) - node = minetest.get_node_or_nil(pos) - end - return node - end -end - --- Swaps the node at a given position, regardless of whether it is loaded or --- not, respecting a transaction if one is in progress. --- --- Outside a VM transaction, if the mapblock is not loaded, it is pulled into --- the servers main map data cache and then accessed from there. --- --- Inside a VM transaction, the transactions VM cache is used. --- --- This function can only be used to change the nodes name, not its parameters --- or metadata. -function mesecon.swap_node_force(pos, name) - if vm_cache then - return mesecon.vm_swap_node(pos, name) - else - -- This serves to both ensure the mapblock is loaded and also hand us - -- the old node table so we can preserve param2. - local node = mesecon.get_node_force(pos) - node.name = name - minetest.swap_node(pos, node) - end -end - --- Autoconnect Hooks --- Nodes like conductors may change their appearance and their connection rules --- right after being placed or after being dug, e.g. the default wires use this --- to automatically connect to linking nodes after placement. --- After placement, the update function will be executed immediately so that the --- possibly changed rules can be taken into account when recalculating the circuit. --- After digging, the update function will be queued and executed after --- recalculating the circuit. The update function must take care of updating the --- node at the given position itself, but also all of the other nodes the given --- position may have (had) a linking connection to. -mesecon.autoconnect_hooks = {} - --- name: A unique name for the hook, e.g. "foowire". Used to name the actionqueue function. --- fct: The update function with parameters function(pos, node) -function mesecon.register_autoconnect_hook(name, fct) - mesecon.autoconnect_hooks[name] = fct - mesecon.queue:add_function("autoconnect_hook_"..name, fct) -end - -function mesecon.execute_autoconnect_hooks_now(pos, node) - for _, fct in pairs(mesecon.autoconnect_hooks) do - fct(pos, node) - end - end - -function mesecon.execute_autoconnect_hooks_queue(pos, node) - for name in pairs(mesecon.autoconnect_hooks) do - mesecon.queue:add_action(pos, "autoconnect_hook_"..name, {node}) - end -end diff --git a/games/default/files/bluestone/mesecons_alias/depends.txt b/games/default/files/bluestone/mesecons_alias/depends.txt deleted file mode 100644 index acaa92412..000000000 --- a/games/default/files/bluestone/mesecons_alias/depends.txt +++ /dev/null @@ -1 +0,0 @@ -mesecons diff --git a/games/default/files/bluestone/mesecons_alias/init.lua b/games/default/files/bluestone/mesecons_alias/init.lua deleted file mode 100644 index 341860801..000000000 --- a/games/default/files/bluestone/mesecons_alias/init.lua +++ /dev/null @@ -1,39 +0,0 @@ --- This file registers aliases for the /give /giveme commands. - -minetest.register_alias("mesecons:removestone", "mesecons_random:removestone") -minetest.register_alias("mesecons:power_plant", "mesecons_powerplant:power_plant") -minetest.register_alias("mesecons:powerplant", "mesecons_powerplant:power_plant") -minetest.register_alias("mesecons:meselamp", "mesecons_lamp:lamp_off") -minetest.register_alias("mesecons:mesecon", "mesecons:wire_00000000_off") -minetest.register_alias("mesecons:object_detector", "mesecons_detector:object_detector_off") -minetest.register_alias("mesecons:wireless_inverter", "mesecons_wireless:wireless_inverter_on") -minetest.register_alias("mesecons:wireless_receiver", "mesecons_wireless:wireless_receiver_off") -minetest.register_alias("mesecons:wireless_transmitter", "mesecons_wireless:wireless_transmitter_off") -minetest.register_alias("mesecons:switch", "mesecons_switch:mesecon_switch_off") -minetest.register_alias("mesecons:button", "mesecons_button:button_off") -minetest.register_alias("mesecons:piston", "mesecons_pistons:piston_normal_off") -minetest.register_alias("mesecons:blinky_plant", "mesecons_blinkyplant:blinky_plant_off") -minetest.register_alias("mesecons:mesecon_torch", "mesecons_torch:mesecon_torch_on") -minetest.register_alias("mesecons:torch", "mesecons_torch:mesecon_torch_on") -minetest.register_alias("mesecons:hydro_turbine", "mesecons_hydroturbine:hydro_turbine_off") -minetest.register_alias("mesecons:pressure_plate_stone", "mesecons_pressureplates:pressure_plate_stone_off") -minetest.register_alias("mesecons:pressure_plate_wood", "mesecons_pressureplates:pressure_plate_wood_off") -minetest.register_alias("mesecons:mesecon_socket", "mesecons_temperest:mesecon_socket_off") -minetest.register_alias("mesecons:mesecon_inverter", "mesecons_temperest:mesecon_inverter_on") -minetest.register_alias("mesecons:movestone", "mesecons_movestones:movestone") -minetest.register_alias("mesecons:sticky_movestone", "mesecons_movestones:sticky_movestone") -minetest.register_alias("mesecons:noteblock", "mesecons_noteblock:noteblock") -minetest.register_alias("mesecons:microcontroller", "mesecons_microcontroller:microcontroller0000") -minetest.register_alias("mesecons:delayer", "mesecons_delayer:delayer_off_1") -minetest.register_alias("mesecons:solarpanel", "mesecons_solarpanel:solar_panel_off") - - ---Backwards compatibility -minetest.register_alias("mesecons:mesecon_off", "mesecons:wire_00000000_off") -minetest.register_alias("default:bluestone_dust", "mesecons:wire_00000000_off") -minetest.register_alias("mesecons_pistons:piston_sticky", "mesecons_pistons:piston_sticky_on") -minetest.register_alias("mesecons_pistons:piston_normal", "mesecons_pistons:piston_normal_on") -minetest.register_alias("mesecons_pistons:piston_up_normal", "mesecons_pistons:piston_up_normal_on") -minetest.register_alias("mesecons_pistons:piston_down_normal", "mesecons_pistons:piston_down_normal_on") -minetest.register_alias("mesecons_pistons:piston_up_sticky", "mesecons_pistons:piston_up_sticky_on") -minetest.register_alias("mesecons_pistons:piston_down_sticky", "mesecons_pistons:piston_down_sticky_on") diff --git a/games/default/files/bluestone/mesecons_button/depends.txt b/games/default/files/bluestone/mesecons_button/depends.txt deleted file mode 100644 index acaa92412..000000000 --- a/games/default/files/bluestone/mesecons_button/depends.txt +++ /dev/null @@ -1 +0,0 @@ -mesecons diff --git a/games/default/files/bluestone/mesecons_button/init.lua b/games/default/files/bluestone/mesecons_button/init.lua deleted file mode 100644 index 043831fcc..000000000 --- a/games/default/files/bluestone/mesecons_button/init.lua +++ /dev/null @@ -1,159 +0,0 @@ --- WALL BUTTON --- A button that when pressed emits power for 1 second --- and then turns off again - -mesecon.button_turnoff = function (pos) - local node = minetest.get_node(pos) - if node.name == "mesecons_button:button_stone_on" then -- has not been dug - minetest.swap_node(pos, {name = "mesecons_button:button_stone_off", param2=node.param2}) - minetest.sound_play("mesecons_button_pop", {pos=pos}) - local rules = mesecon.rules.buttonlike_get(node) - mesecon.receptor_off(pos, rules) - elseif node.name == "mesecons_button:button_wood_on" then -- has not been dug - minetest.swap_node(pos, {name = "mesecons_button:button_wood_off", param2=node.param2}) - minetest.sound_play("mesecons_button_pop", {pos=pos}) - local rules = mesecon.rules.buttonlike_get(node) - mesecon.receptor_off(pos, rules) - end -end - -local boxes_off = { -4/16, -2/16, 8/16, 4/16, 2/16, 6/16 } -local boxes_on = { -4/16, -2/16, 8/16, 4/16, 2/16, 7/16 } - -minetest.register_node("mesecons_button:button_stone_off", { - drawtype = "nodebox", - tiles = {"default_stone.png"}, - paramtype = "light", - paramtype2 = "facedir", - is_ground_content = false, - legacy_wallmounted = true, - walkable = false, - on_rotate = mesecon.buttonlike_onrotate, - sunlight_propagates = true, - node_box = { - type = "fixed", - fixed = boxes_off - }, - groups = {dig_immediate = 2}, - description = "Stone Button", - on_punch = function (pos, node) - minetest.swap_node(pos, {name = "mesecons_button:button_stone_on", param2=node.param2}) - mesecon.receptor_on(pos, mesecon.rules.buttonlike_get(node)) - minetest.sound_play("mesecons_button_push", {pos=pos}) - minetest.get_node_timer(pos):start(1) - end, - on_rightclick = function (pos, node) - minetest.swap_node(pos, {name = "mesecons_button:button_stone_on", param2=node.param2}) - mesecon.receptor_on(pos, mesecon.rules.buttonlike_get(node)) - minetest.sound_play("mesecons_button_push", {pos=pos}) - minetest.get_node_timer(pos):start(1) - end, - sounds = default.node_sound_stone_defaults(), - mesecons = {receptor = { - state = mesecon.state.off, - rules = mesecon.rules.buttonlike_get - }}, - on_blast = mesecon.on_blastnode, -}) - -minetest.register_node("mesecons_button:button_stone_on", { - drawtype = "nodebox", - tiles = {"default_stone.png"}, - paramtype = "light", - paramtype2 = "facedir", - is_ground_content = false, - legacy_wallmounted = true, - walkable = false, - on_rotate = false, - sunlight_propagates = true, - node_box = { - type = "fixed", - fixed = boxes_on - }, - groups = {dig_immediate = 2, not_in_creative_inventory = 1}, - drop = "mesecons_button:button_stone_off", - description = "Stone Button", - sounds = default.node_sound_stone_defaults(), - mesecons = {receptor = { - state = mesecon.state.on, - rules = mesecon.rules.buttonlike_get - }}, - on_timer = mesecon.button_turnoff, - on_blast = mesecon.on_blastnode, -}) - -minetest.register_craft({ - output = "mesecons_button:button_stone_off 2", - recipe = { - {"default:cobble"}, - } -}) - -minetest.register_node("mesecons_button:button_wood_off", { - drawtype = "nodebox", - tiles = {"default_wood.png"}, - paramtype = "light", - paramtype2 = "facedir", - is_ground_content = false, - legacy_wallmounted = true, - walkable = false, - on_rotate = mesecon.buttonlike_onrotate, - sunlight_propagates = true, - node_box = { - type = "fixed", - fixed = boxes_off - }, - groups = {dig_immediate = 2}, - description = "Wood Button", - on_punch = function (pos, node) - minetest.swap_node(pos, {name = "mesecons_button:button_wood_on", param2=node.param2}) - mesecon.receptor_on(pos, mesecon.rules.buttonlike_get(node)) - minetest.sound_play("mesecons_button_push", {pos=pos}) - minetest.get_node_timer(pos):start(1) - end, - on_rightclick = function (pos, node) - minetest.swap_node(pos, {name = "mesecons_button:button_wood_on", param2=node.param2}) - mesecon.receptor_on(pos, mesecon.rules.buttonlike_get(node)) - minetest.sound_play("mesecons_button_push", {pos=pos}) - minetest.get_node_timer(pos):start(1) - end, - sounds = default.node_sound_stone_defaults(), - mesecons = {receptor = { - state = mesecon.state.off, - rules = mesecon.rules.buttonlike_get - }}, - on_blast = mesecon.on_blastnode, -}) - -minetest.register_node("mesecons_button:button_wood_on", { - drawtype = "nodebox", - tiles = {"default_wood.png"}, - paramtype = "light", - paramtype2 = "facedir", - is_ground_content = false, - legacy_wallmounted = true, - walkable = false, - on_rotate = false, - sunlight_propagates = true, - node_box = { - type = "fixed", - fixed = boxes_on - }, - groups = {dig_immediate = 2, not_in_creative_inventory = 1}, - drop = "mesecons_button:button_wood_off", - description = "Wood Button", - sounds = default.node_sound_stone_defaults(), - mesecons = {receptor = { - state = mesecon.state.on, - rules = mesecon.rules.buttonlike_get - }}, - on_timer = mesecon.button_turnoff, - on_blast = mesecon.on_blastnode, -}) - -minetest.register_craft({ - output = "mesecons_button:button_wood_off 2", - recipe = { - {"group:wood"}, - } -}) diff --git a/games/default/files/bluestone/mesecons_button/sounds/mesecons_button_pop.ogg b/games/default/files/bluestone/mesecons_button/sounds/mesecons_button_pop.ogg deleted file mode 100644 index 9d56bb8c2..000000000 Binary files a/games/default/files/bluestone/mesecons_button/sounds/mesecons_button_pop.ogg and /dev/null differ diff --git a/games/default/files/bluestone/mesecons_button/sounds/mesecons_button_push.ogg b/games/default/files/bluestone/mesecons_button/sounds/mesecons_button_push.ogg deleted file mode 100644 index 53d45c18a..000000000 Binary files a/games/default/files/bluestone/mesecons_button/sounds/mesecons_button_push.ogg and /dev/null differ diff --git a/games/default/files/bluestone/mesecons_delayer/depends.txt b/games/default/files/bluestone/mesecons_delayer/depends.txt deleted file mode 100644 index acaa92412..000000000 --- a/games/default/files/bluestone/mesecons_delayer/depends.txt +++ /dev/null @@ -1 +0,0 @@ -mesecons diff --git a/games/default/files/bluestone/mesecons_delayer/init.lua b/games/default/files/bluestone/mesecons_delayer/init.lua deleted file mode 100644 index e2717c35e..000000000 --- a/games/default/files/bluestone/mesecons_delayer/init.lua +++ /dev/null @@ -1,194 +0,0 @@ --- Function that get the input/output rules of the delayer -local delayer_get_output_rules = function(node) - local rules = {{x = 0, y = 0, z = 1}} - for i = 0, node.param2 do - rules = mesecon.rotate_rules_left(rules) - end - return rules -end - -local delayer_get_input_rules = function(node) - local rules = {{x = 0, y = 0, z = -1}} - for i = 0, node.param2 do - rules = mesecon.rotate_rules_left(rules) - end - return rules -end - --- Functions that are called after the delay time - -local delayer_activate = function(pos, node) - local def = minetest.registered_nodes[node.name] - local time = def.delayer_time - minetest.swap_node(pos, {name = def.delayer_onstate, param2=node.param2}) - mesecon.queue:add_action(pos, "receptor_on", {delayer_get_output_rules(node)}, time, nil) -end - -local delayer_deactivate = function(pos, node) - local def = minetest.registered_nodes[node.name] - local time = def.delayer_time - minetest.swap_node(pos, {name = def.delayer_offstate, param2=node.param2}) - mesecon.queue:add_action(pos, "receptor_off", {delayer_get_output_rules(node)}, time, nil) -end - --- Register the 2 (states) x 4 (delay times) delayers - -for i = 1, 4 do -local groups = {} -if i == 1 then - groups = {bendy = 2, snappy = 1, dig_immediate = 2, attached_node = 1} -else - groups = {bendy = 2, snappy = 1, dig_immediate = 2, attached_node = 1, not_in_creative_inventory = 1} -end - -local delaytime -if i == 1 then delaytime = 0.1 -elseif i == 2 then delaytime = 0.3 -elseif i == 3 then delaytime = 0.5 -elseif i == 4 then delaytime = 1.0 end - -local boxes -if i == 1 then -boxes = { - { -8/16, -8/16, -8/16, 8/16, -6/16, 8/16 }, -- the main slab - { 6/16, -6/16, -1/16, 4/16, -1/16, 1/16}, -- still torch - { 0/16, -6/16, -1/16, 2/16, -1/16, 1/16}, -- moved torch -} -elseif i == 2 then -boxes = { - { -8/16, -8/16, -8/16, 8/16, -6/16, 8/16 }, -- the main slab - { 6/16, -6/16, -1/16, 4/16, -1/16, 1/16}, -- still torch - { -2/16, -6/16, -1/16, 0/16, -1/16, 1/16}, -- moved torch -} -elseif i == 3 then -boxes = { - { -8/16, -8/16, -8/16, 8/16, -6/16, 8/16 }, -- the main slab - { 6/16, -6/16, -1/16, 4/16, -1/16, 1/16}, -- still torch - { -4/16, -6/16, -1/16, -2/16, -1/16, 1/16}, -- moved torch -} -elseif i == 4 then -boxes = { - { -8/16, -8/16, -8/16, 8/16, -6/16, 8/16 }, -- the main slab - { 6/16, -6/16, -1/16, 4/16, -1/16, 1/16}, -- still torch - { -6/16, -6/16, -1/16, -4/16, -1/16, 1/16}, -- moved torch -} -end - -minetest.register_node("mesecons_delayer:delayer_off_"..tostring(i), { - description = "Delayer", - drawtype = "nodebox", - tiles = { - "mesecons_delayer_off.png", - "mesecons_delayer_bottom.png", - "mesecons_delayer_ends_off.png", - "mesecons_delayer_ends_off.png", - "mesecons_delayer_sides_off.png", - "mesecons_delayer_sides_off.png" - }, - wield_image = "mesecons_delayer_off.png", - selection_box = { - type = "fixed", - fixed = { -8/16, -8/16, -8/16, 8/16, -6/16, 8/16 }, - }, - node_box = { - type = "fixed", - fixed = boxes - }, - groups = groups, - paramtype = "light", - paramtype2 = "facedir", - sunlight_propagates = true, - is_ground_content = false, - drop = 'mesecons_delayer:delayer_off_1', - on_punch = function (pos, node) - if node.name=="mesecons_delayer:delayer_off_1" then - minetest.swap_node(pos, {name = "mesecons_delayer:delayer_off_2", param2=node.param2}) - elseif node.name=="mesecons_delayer:delayer_off_2" then - minetest.swap_node(pos, {name = "mesecons_delayer:delayer_off_3", param2=node.param2}) - elseif node.name=="mesecons_delayer:delayer_off_3" then - minetest.swap_node(pos, {name = "mesecons_delayer:delayer_off_4", param2=node.param2}) - elseif node.name=="mesecons_delayer:delayer_off_4" then - minetest.swap_node(pos, {name = "mesecons_delayer:delayer_off_1", param2=node.param2}) - end - end, - delayer_time = delaytime, - delayer_onstate = "mesecons_delayer:delayer_on_"..tostring(i), - sounds = default.node_sound_stone_defaults(), - mesecons = { - receptor = - { - state = mesecon.state.off, - rules = delayer_get_output_rules - }, - effector = - { - rules = delayer_get_input_rules, - action_on = delayer_activate - } - }, - on_blast = mesecon.on_blastnode, -}) - - -minetest.register_node("mesecons_delayer:delayer_on_"..tostring(i), { - description = "You hacker you", - drawtype = "nodebox", - tiles = { - "mesecons_delayer_on.png", - "mesecons_delayer_bottom.png", - "mesecons_delayer_ends_on.png", - "mesecons_delayer_ends_on.png", - "mesecons_delayer_sides_on.png", - "mesecons_delayer_sides_on.png" - }, - selection_box = { - type = "fixed", - fixed = { -8/16, -8/16, -8/16, 8/16, -6/16, 8/16 }, - }, - node_box = { - type = "fixed", - fixed = boxes - }, - groups = {bendy = 2, snappy = 1, dig_immediate = 2, not_in_creative_inventory = 1}, - paramtype = "light", - paramtype2 = "facedir", - sunlight_propagates = true, - is_ground_content = false, - drop = 'mesecons_delayer:delayer_off_1', - on_punch = function (pos, node) - if node.name=="mesecons_delayer:delayer_on_1" then - minetest.swap_node(pos, {name = "mesecons_delayer:delayer_on_2", param2=node.param2}) - elseif node.name=="mesecons_delayer:delayer_on_2" then - minetest.swap_node(pos, {name = "mesecons_delayer:delayer_on_3", param2=node.param2}) - elseif node.name=="mesecons_delayer:delayer_on_3" then - minetest.swap_node(pos, {name = "mesecons_delayer:delayer_on_4", param2=node.param2}) - elseif node.name=="mesecons_delayer:delayer_on_4" then - minetest.swap_node(pos, {name = "mesecons_delayer:delayer_on_1", param2=node.param2}) - end - end, - delayer_time = delaytime, - delayer_offstate = "mesecons_delayer:delayer_off_"..tostring(i), - sounds = default.node_sound_stone_defaults(), - mesecons = { - receptor = - { - state = mesecon.state.on, - rules = delayer_get_output_rules - }, - effector = - { - rules = delayer_get_input_rules, - action_off = delayer_deactivate - } - }, - on_blast = mesecon.on_blastnode, -}) -end - -minetest.register_craft({ - output = "mesecons_delayer:delayer_off_1", - recipe = { - {"mesecons_torch:mesecon_torch_on", "", "mesecons_torch:mesecon_torch_on"}, - {"default:cobble","default:cobble", "default:cobble"}, - } -}) diff --git a/games/default/files/bluestone/mesecons_delayer/textures/mesecons_delayer_bottom.png b/games/default/files/bluestone/mesecons_delayer/textures/mesecons_delayer_bottom.png deleted file mode 100644 index 47b11001f..000000000 Binary files a/games/default/files/bluestone/mesecons_delayer/textures/mesecons_delayer_bottom.png and /dev/null differ diff --git a/games/default/files/bluestone/mesecons_delayer/textures/mesecons_delayer_ends_off.png b/games/default/files/bluestone/mesecons_delayer/textures/mesecons_delayer_ends_off.png deleted file mode 100644 index 5b2c332c5..000000000 Binary files a/games/default/files/bluestone/mesecons_delayer/textures/mesecons_delayer_ends_off.png and /dev/null differ diff --git a/games/default/files/bluestone/mesecons_delayer/textures/mesecons_delayer_ends_on.png b/games/default/files/bluestone/mesecons_delayer/textures/mesecons_delayer_ends_on.png deleted file mode 100644 index d6ca7f49b..000000000 Binary files a/games/default/files/bluestone/mesecons_delayer/textures/mesecons_delayer_ends_on.png and /dev/null differ diff --git a/games/default/files/bluestone/mesecons_delayer/textures/mesecons_delayer_off.png b/games/default/files/bluestone/mesecons_delayer/textures/mesecons_delayer_off.png deleted file mode 100644 index 01552b31a..000000000 Binary files a/games/default/files/bluestone/mesecons_delayer/textures/mesecons_delayer_off.png and /dev/null differ diff --git a/games/default/files/bluestone/mesecons_delayer/textures/mesecons_delayer_on.png b/games/default/files/bluestone/mesecons_delayer/textures/mesecons_delayer_on.png deleted file mode 100644 index 371bb414b..000000000 Binary files a/games/default/files/bluestone/mesecons_delayer/textures/mesecons_delayer_on.png and /dev/null differ diff --git a/games/default/files/bluestone/mesecons_delayer/textures/mesecons_delayer_sides_off.png b/games/default/files/bluestone/mesecons_delayer/textures/mesecons_delayer_sides_off.png deleted file mode 100644 index 0461d27b9..000000000 Binary files a/games/default/files/bluestone/mesecons_delayer/textures/mesecons_delayer_sides_off.png and /dev/null differ diff --git a/games/default/files/bluestone/mesecons_delayer/textures/mesecons_delayer_sides_on.png b/games/default/files/bluestone/mesecons_delayer/textures/mesecons_delayer_sides_on.png deleted file mode 100644 index c5d780119..000000000 Binary files a/games/default/files/bluestone/mesecons_delayer/textures/mesecons_delayer_sides_on.png and /dev/null differ diff --git a/games/default/files/bluestone/mesecons_doors/depends.txt b/games/default/files/bluestone/mesecons_doors/depends.txt deleted file mode 100644 index ed2fcd8a5..000000000 --- a/games/default/files/bluestone/mesecons_doors/depends.txt +++ /dev/null @@ -1,2 +0,0 @@ -mesecons -doors diff --git a/games/default/files/bluestone/mesecons_doors/init.lua b/games/default/files/bluestone/mesecons_doors/init.lua deleted file mode 100644 index 3ca432646..000000000 --- a/games/default/files/bluestone/mesecons_doors/init.lua +++ /dev/null @@ -1,104 +0,0 @@ --- Modified, from minetest_game/mods/doors/init.lua -local function on_rightclick(pos, dir, check_name, replace, replace_dir, params) - pos.y = pos.y + dir - if not minetest.get_node(pos).name == check_name then - return - end - local p2 = minetest.get_node(pos).param2 - p2 = params[p2 + 1] - - minetest.swap_node(pos, {name = replace_dir, param2 = p2}) - - pos.y = pos.y - dir - minetest.swap_node(pos, {name = replace, param2 = p2}) - - if (minetest.get_meta(pos):get_int("right") ~= 0) == (params[1] ~= 3) then - minetest.sound_play("doors_door_close", {pos = pos, gain = 0.3, max_hear_distance = 10}) - else - minetest.sound_play("doors_door_open", {pos = pos, gain = 0.3, max_hear_distance = 10}) - end -end - -local function meseconify_door(name) - if minetest.registered_items[name .. "_a"] then - -- new style mesh node based doors - local override = { - mesecons = {effector = { - action_on = function(pos, node) - local door = doors.get(pos) - if door then - door:open() - end - end, - action_off = function(pos, node) - local door = doors.get(pos) - if door then - door:close() - end - end, - rules = mesecon.rules.pplate - }} - } - minetest.override_item(name .. "_a", override) - minetest.override_item(name .. "_b", override) - end -end - -meseconify_door("doors:door_wood") -meseconify_door("doors:door_steel") -meseconify_door("doors:door_glass") -meseconify_door("doors:door_obsidian_glass") - --- Trapdoor -local function trapdoor_switch(pos, node) - local state = minetest.get_meta(pos):get_int("state") - - if state == 1 then - minetest.sound_play("doors_door_close", {pos = pos, gain = 0.3, max_hear_distance = 10}) - minetest.set_node(pos, {name="doors:trapdoor", param2 = node.param2}) - else - minetest.sound_play("doors_door_open", {pos = pos, gain = 0.3, max_hear_distance = 10}) - minetest.set_node(pos, {name="doors:trapdoor_open", param2 = node.param2}) - end - - minetest.get_meta(pos):set_int("state", state == 1 and 0 or 1) -end - -if doors and doors.get then - local override = { - mesecons = {effector = { - action_on = function(pos, node) - local door = doors.get(pos) - if door then - door:open() - end - end, - action_off = function(pos, node) - local door = doors.get(pos) - if door then - door:close() - end - end, - }}, - } - minetest.override_item("doors:trapdoor", override) - minetest.override_item("doors:trapdoor_open", override) - minetest.override_item("doors:trapdoor_steel", override) - minetest.override_item("doors:trapdoor_steel_open", override) -else - if minetest.registered_nodes["doors:trapdoor"] then - minetest.override_item("doors:trapdoor", { - mesecons = {effector = { - action_on = trapdoor_switch, - action_off = trapdoor_switch - }}, - }) - - minetest.override_item("doors:trapdoor_open", { - mesecons = {effector = { - action_on = trapdoor_switch, - action_off = trapdoor_switch - }}, - }) - end -end diff --git a/games/default/files/bluestone/mesecons_lightstone/depends.txt b/games/default/files/bluestone/mesecons_lightstone/depends.txt deleted file mode 100644 index acaa92412..000000000 --- a/games/default/files/bluestone/mesecons_lightstone/depends.txt +++ /dev/null @@ -1 +0,0 @@ -mesecons diff --git a/games/default/files/bluestone/mesecons_lightstone/init.lua b/games/default/files/bluestone/mesecons_lightstone/init.lua deleted file mode 100644 index 21f9d25b1..000000000 --- a/games/default/files/bluestone/mesecons_lightstone/init.lua +++ /dev/null @@ -1,37 +0,0 @@ -minetest.register_node("mesecons_lightstone:lightstone_off", { - tiles = {"jeija_lightstone_gray_off.png"}, - is_ground_content = false, - groups = {cracky=2, mesecon_effector_off = 1, mesecon = 2}, - description = "Bluestone Lamp", - sounds = default.node_sound_glass_defaults(), - mesecons = {effector = { - action_on = function (pos, node) - minetest.swap_node(pos, {name = "mesecons_lightstone:lightstone_on", param2 = node.param2}) - end, - }}, - on_blast = mesecon.on_blastnode, -}) - -minetest.register_node("mesecons_lightstone:lightstone_on", { - tiles = {"jeija_lightstone_gray_on.png"}, - is_ground_content = false, - groups = {cracky=2, not_in_creative_inventory=1, mesecon = 2}, - drop = "mesecons_lightstone:lightstone_off", - light_source = minetest.LIGHT_MAX - 2, - sounds = default.node_sound_glass_defaults(), - mesecons = {effector = { - action_off = function (pos, node) - minetest.swap_node(pos, {name = "mesecons_lightstone:lightstone_off", param2 = node.param2}) - end, - }}, - on_blast = mesecon.on_blastnode, - }) - -minetest.register_craft({ - output = "mesecons_lightstone:lightstone_off", - recipe = { - {"", "mesecons:wire_00000000_off", ""}, - {"mesecons:wire_00000000_off", "default:glowstone","mesecons:wire_00000000_off"}, - {"", "mesecons:wire_00000000_off", ""}, - } -}) diff --git a/games/default/files/bluestone/mesecons_lightstone/textures/jeija_lightstone_gray_off.png b/games/default/files/bluestone/mesecons_lightstone/textures/jeija_lightstone_gray_off.png deleted file mode 100644 index 7d376949b..000000000 Binary files a/games/default/files/bluestone/mesecons_lightstone/textures/jeija_lightstone_gray_off.png and /dev/null differ diff --git a/games/default/files/bluestone/mesecons_lightstone/textures/jeija_lightstone_gray_on.png b/games/default/files/bluestone/mesecons_lightstone/textures/jeija_lightstone_gray_on.png deleted file mode 100644 index 141337300..000000000 Binary files a/games/default/files/bluestone/mesecons_lightstone/textures/jeija_lightstone_gray_on.png and /dev/null differ diff --git a/games/default/files/bluestone/mesecons_materials/depends.txt b/games/default/files/bluestone/mesecons_materials/depends.txt deleted file mode 100644 index acaa92412..000000000 --- a/games/default/files/bluestone/mesecons_materials/depends.txt +++ /dev/null @@ -1 +0,0 @@ -mesecons diff --git a/games/default/files/bluestone/mesecons_materials/init.lua b/games/default/files/bluestone/mesecons_materials/init.lua deleted file mode 100644 index 5893df210..000000000 --- a/games/default/files/bluestone/mesecons_materials/init.lua +++ /dev/null @@ -1,47 +0,0 @@ --- Glue -minetest.register_craftitem("mesecons_materials:glue", { - image = "mesecons_glue.png", - on_place_on_ground = minetest.craftitem_place_item, - description="Glue", -}) - -minetest.register_craft({ - output = "mesecons_materials:glue 2", - type = "cooking", - recipe = "group:sapling", - cooktime = 2 -}) - --- Bluestone Block - -minetest.register_node("mesecons_materials:bluestoneblock", { - description = "Bluestone Block", - tiles = {"bluestone_block.png"}, - paramtype = "light", - is_ground_content = false, - groups = {cracky = 1}, - light_source = minetest.LIGHT_MAX - 3, - sounds = default.node_sound_stone_defaults(), - mesecons = {receptor = { - state = mesecon.state.on - }}, - on_blast = mesecon.on_blastnode -}) - -minetest.register_craft({ - output = "mesecons_materials:bluestoneblock", - recipe = { - {'mesecons:wire_00000000_off','mesecons:wire_00000000_off','mesecons:wire_00000000_off'}, - {'mesecons:wire_00000000_off','mesecons:wire_00000000_off','mesecons:wire_00000000_off'}, - {'mesecons:wire_00000000_off','mesecons:wire_00000000_off','mesecons:wire_00000000_off'}, - } -}) - -minetest.register_craft({ - output = 'mesecons:wire_00000000_off 9', - recipe = { - {'mesecons_materials:bluestoneblock'}, - } -}) - -minetest.register_alias("mesecons_torch:bluestoneblock", "mesecons_materials:bluestoneblock") diff --git a/games/default/files/bluestone/mesecons_materials/textures/bluestone_block.png b/games/default/files/bluestone/mesecons_materials/textures/bluestone_block.png deleted file mode 100644 index b1fea71c9..000000000 Binary files a/games/default/files/bluestone/mesecons_materials/textures/bluestone_block.png and /dev/null differ diff --git a/games/default/files/bluestone/mesecons_materials/textures/mesecons_glue.png b/games/default/files/bluestone/mesecons_materials/textures/mesecons_glue.png deleted file mode 100644 index 68703efbb..000000000 Binary files a/games/default/files/bluestone/mesecons_materials/textures/mesecons_glue.png and /dev/null differ diff --git a/games/default/files/bluestone/mesecons_mvps/depends.txt b/games/default/files/bluestone/mesecons_mvps/depends.txt deleted file mode 100644 index acaa92412..000000000 --- a/games/default/files/bluestone/mesecons_mvps/depends.txt +++ /dev/null @@ -1 +0,0 @@ -mesecons diff --git a/games/default/files/bluestone/mesecons_mvps/init.lua b/games/default/files/bluestone/mesecons_mvps/init.lua deleted file mode 100644 index cad841633..000000000 --- a/games/default/files/bluestone/mesecons_mvps/init.lua +++ /dev/null @@ -1,285 +0,0 @@ ---register stoppers for movestones/pistons - -mesecon.mvps_stoppers={} -mesecon.on_mvps_move = {} -mesecon.mvps_unmov = {} - ---- Objects (entities) that cannot be moved -function mesecon.register_mvps_unmov(objectname) - mesecon.mvps_unmov[objectname] = true; -end - -function mesecon.is_mvps_unmov(objectname) - return mesecon.mvps_unmov[objectname] -end - --- Nodes that cannot be pushed / pulled by movestones, pistons -function mesecon.is_mvps_stopper(node, pushdir, stack, stackid) - -- unknown nodes are always stoppers - if not minetest.registered_nodes[node.name] then - return true - end - - local get_stopper = mesecon.mvps_stoppers[node.name] - if type (get_stopper) == "function" then - get_stopper = get_stopper(node, pushdir, stack, stackid) - end - - return get_stopper -end - -function mesecon.register_mvps_stopper(nodename, get_stopper) - if get_stopper == nil then - get_stopper = true - end - mesecon.mvps_stoppers[nodename] = get_stopper -end - --- Functions to be called on mvps movement -function mesecon.register_on_mvps_move(callback) - mesecon.on_mvps_move[#mesecon.on_mvps_move+1] = callback -end - -local function on_mvps_move(moved_nodes) - for _, callback in ipairs(mesecon.on_mvps_move) do - callback(moved_nodes) - end -end - -function mesecon.mvps_process_stack(stack) - -- update mesecons for placed nodes ( has to be done after all nodes have been added ) - for _, n in ipairs(stack) do - mesecon.on_placenode(n.pos, minetest.get_node(n.pos)) - end -end - --- tests if the node can be pushed into, e.g. air, water, grass -local function node_replaceable(name) - if minetest.registered_nodes[name] then - return minetest.registered_nodes[name].buildable_to or false - end - - return false -end - -function mesecon.mvps_get_stack(pos, dir, maximum, all_pull_sticky) - -- determine the number of nodes to be pushed - local nodes = {} - local frontiers = {pos} - - while #frontiers > 0 do - local np = frontiers[1] - local nn = minetest.get_node(np) - - if not node_replaceable(nn.name) then - table.insert(nodes, {node = nn, pos = np}) - if #nodes > maximum then return nil end - - -- add connected nodes to frontiers, connected is a vector list - -- the vectors must be absolute positions - local connected = {} - if minetest.registered_nodes[nn.name] - and minetest.registered_nodes[nn.name].mvps_sticky then - connected = minetest.registered_nodes[nn.name].mvps_sticky(np, nn) - end - - table.insert(connected, vector.add(np, dir)) - - -- If adjacent node is sticky block and connects add that - -- position to the connected table - for _, r in ipairs(mesecon.rules.alldirs) do - local adjpos = vector.add(np, r) - local adjnode = minetest.get_node(adjpos) - if minetest.registered_nodes[adjnode.name] - and minetest.registered_nodes[adjnode.name].mvps_sticky then - local sticksto = minetest.registered_nodes[adjnode.name] - .mvps_sticky(adjpos, adjnode) - - -- connects to this position? - for _, link in ipairs(sticksto) do - if vector.equals(link, np) then - table.insert(connected, adjpos) - end - end - end - end - - if all_pull_sticky then - table.insert(connected, vector.subtract(np, dir)) - end - - -- Make sure there are no duplicates in frontiers / nodes before - -- adding nodes in "connected" to frontiers - for _, cp in ipairs(connected) do - local duplicate = false - for _, rp in ipairs(nodes) do - if vector.equals(cp, rp.pos) then - duplicate = true - end - end - for _, fp in ipairs(frontiers) do - if vector.equals(cp, fp) then - duplicate = true - end - end - if not duplicate then - table.insert(frontiers, cp) - end - end - end - table.remove(frontiers, 1) - end - - return nodes -end - -function mesecon.mvps_push(pos, dir, maximum) - return mesecon.mvps_push_or_pull(pos, dir, dir, maximum) -end - -function mesecon.mvps_pull_all(pos, dir, maximum) - return mesecon.mvps_push_or_pull(pos, vector.multiply(dir, -1), dir, maximum, true) -end - -function mesecon.mvps_pull_single(pos, dir, maximum) - return mesecon.mvps_push_or_pull(pos, vector.multiply(dir, -1), dir, maximum) -end - --- pos: pos of mvps; stackdir: direction of building the stack --- movedir: direction of actual movement --- maximum: maximum nodes to be pushed --- all_pull_sticky: All nodes are sticky in the direction that they are pulled from -function mesecon.mvps_push_or_pull(pos, stackdir, movedir, maximum, all_pull_sticky) - local nodes = mesecon.mvps_get_stack(pos, movedir, maximum, all_pull_sticky) - - if not nodes then return end - -- determine if one of the nodes blocks the push / pull - for id, n in ipairs(nodes) do - if mesecon.is_mvps_stopper(n.node, movedir, nodes, id) then - return - end - end - - -- remove all nodes - for _, n in ipairs(nodes) do - n.meta = minetest.get_meta(n.pos):to_table() - local node_timer = minetest.get_node_timer(n.pos) - if node_timer:is_started() then - n.node_timer = {node_timer:get_timeout(), node_timer:get_elapsed()} - end - minetest.remove_node(n.pos) - end - - -- update mesecons for removed nodes ( has to be done after all nodes have been removed ) - for _, n in ipairs(nodes) do - mesecon.on_dignode(n.pos, n.node) - end - - -- add nodes - for _, n in ipairs(nodes) do - local np = vector.add(n.pos, movedir) - - minetest.set_node(np, n.node) - minetest.get_meta(np):from_table(n.meta) - if n.node_timer then - minetest.get_node_timer(np):set(unpack(n.node_timer)) - end - end - - local moved_nodes = {} - local oldstack = mesecon.tablecopy(nodes) - for i in ipairs(nodes) do - moved_nodes[i] = {} - moved_nodes[i].oldpos = nodes[i].pos - nodes[i].pos = vector.add(nodes[i].pos, movedir) - moved_nodes[i].pos = nodes[i].pos - moved_nodes[i].node = nodes[i].node - moved_nodes[i].meta = nodes[i].meta - moved_nodes[i].node_timer = nodes[i].node_timer - end - - on_mvps_move(moved_nodes) - - return true, nodes, oldstack -end - -function mesecon.mvps_move_objects(pos, dir, nodestack, movefactor) - local objects_to_move = {} - local dir_k - local dir_l - for k, v in pairs(dir) do - if v ~= 0 then - dir_k = k - dir_l = v - break - end - end - movefactor = movefactor or 1 - dir = vector.multiply(dir, movefactor) - for id, obj in pairs(minetest.object_refs) do - local obj_pos = obj:get_pos() - local cbox = obj:get_properties().collisionbox - local min_pos = vector.add(obj_pos, vector.new(cbox[1], cbox[2], cbox[3])) - local max_pos = vector.add(obj_pos, vector.new(cbox[4], cbox[5], cbox[6])) - local ok = true - for k, v in pairs(pos) do - local edge1, edge2 - if k ~= dir_k then - edge1 = v - 0.51 -- More than 0.5 to move objects near to the stack. - edge2 = v + 0.51 - else - edge1 = v - 0.5 * dir_l - edge2 = v + (#nodestack + 0.5 * movefactor) * dir_l - -- Make sure, edge1 is bigger than edge2: - if edge1 > edge2 then - edge1, edge2 = edge2, edge1 - end - end - if min_pos[k] > edge2 or max_pos[k] < edge1 then - ok = false - break - end - end - if ok then - local ent = obj:get_luaentity() - if obj:is_player() or (ent and not mesecon.is_mvps_unmov(ent.name)) then - local np = vector.add(obj_pos, dir) - -- Move only if destination is not solid or object is inside stack: - local nn = minetest.get_node(np) - local node_def = minetest.registered_nodes[nn.name] - local obj_offset = dir_l * (obj_pos[dir_k] - pos[dir_k]) - if (node_def and not node_def.walkable) or - (obj_offset >= 0 and - obj_offset <= #nodestack - 0.5) then - obj:move_to(np) - end - end - end -end -end - --- Never push into unloaded blocks. Dont try to pull from them, either. --- TODO: load blocks instead, as with wires. -mesecon.register_mvps_stopper("ignore") - -mesecon.register_mvps_stopper("doors:door_steel_b_1") -mesecon.register_mvps_stopper("doors:door_steel_t_1") -mesecon.register_mvps_stopper("doors:door_steel_b_2") -mesecon.register_mvps_stopper("doors:door_steel_t_2") -mesecon.register_mvps_stopper("default:furnace") -mesecon.register_on_mvps_move(mesecon.move_hot_nodes) -mesecon.register_on_mvps_move(function(moved_nodes) - for i = 1, #moved_nodes do - local moved_node = moved_nodes[i] - mesecon.on_placenode(moved_node.pos, moved_node.node) - minetest.after(0, function() - minetest.check_for_falling(moved_node.oldpos) - minetest.check_for_falling(moved_node.pos) - end) - local node_def = minetest.registered_nodes[moved_node.node.name] - if node_def and node_def.mesecon and node_def.mesecon.on_mvps_move then - node_def.mesecon.on_mvps_move(moved_node.pos, moved_node.node, - moved_node.oldpos, moved_node.meta) - end - end -end) diff --git a/games/default/files/bluestone/mesecons_noteblock/depends.txt b/games/default/files/bluestone/mesecons_noteblock/depends.txt deleted file mode 100644 index acaa92412..000000000 --- a/games/default/files/bluestone/mesecons_noteblock/depends.txt +++ /dev/null @@ -1 +0,0 @@ -mesecons diff --git a/games/default/files/bluestone/mesecons_noteblock/init.lua b/games/default/files/bluestone/mesecons_noteblock/init.lua deleted file mode 100644 index 0fb8d6bd5..000000000 --- a/games/default/files/bluestone/mesecons_noteblock/init.lua +++ /dev/null @@ -1,72 +0,0 @@ -minetest.register_node("mesecons_noteblock:noteblock", { - description = "Noteblock", - tiles = {"mesecons_noteblock.png"}, - is_ground_content = false, - groups = {snappy = 2, choppy = 2, oddly_breakable_by_hand = 2}, - stack_max = 1, - on_punch = function (pos, node) -- change sound when punched - node.param2 = (node.param2+1)%12 - mesecon.noteblock_play(pos, node.param2) - minetest.set_node(pos, node) - end, - sounds = default.node_sound_wood_defaults(), - mesecons = {effector = { -- play sound when activated - action_on = function (pos, node) - mesecon.noteblock_play(pos, node.param2) - end - }}, - on_blast = mesecon.on_blastnode, -}) - -minetest.register_craft({ - output = "mesecons_noteblock:noteblock 1", - recipe = { - {"group:wood", "group:wood", "group:wood"}, - {"default:steel_ingot", "mesecons:wire_00000000_off", "default:steel_ingot"}, - {"group:wood", "group:wood", "group:wood"}, - } -}) - -local soundnames = { - [0] = "mesecons_noteblock_csharp", - "mesecons_noteblock_d", - "mesecons_noteblock_dsharp", - "mesecons_noteblock_e", - "mesecons_noteblock_f", - "mesecons_noteblock_fsharp", - "mesecons_noteblock_g", - "mesecons_noteblock_gsharp", - - "mesecons_noteblock_a", - "mesecons_noteblock_asharp", - "mesecons_noteblock_b", - "mesecons_noteblock_c" -} - -local node_sounds = { - ["default:glass"] = "mesecons_noteblock_hihat", - ["default:stone"] = "mesecons_noteblock_kick", - ["default:lava_source"] = "fire_fire", - ["default:chest"] = "mesecons_noteblock_snare", - ["default:tree"] = "mesecons_noteblock_crash", - ["default:wood"] = "mesecons_noteblock_litecrash", - ["default:coalblock"] = "tnt_explode", -} - -mesecon.noteblock_play = function (pos, param2) - pos.y = pos.y-1 - local nodeunder = minetest.get_node(pos).name - local soundname = node_sounds[nodeunder] - if not soundname then - soundname = soundnames[param2] - if not soundname then - minetest.log("error", "[mesecons_noteblock] No soundname found, test param2") - return - end - if nodeunder == "default:steelblock" then - soundname = soundname.. 2 - end - end - pos.y = pos.y+1 - minetest.sound_play(soundname, {pos = pos}) -end diff --git a/games/default/files/bluestone/mesecons_noteblock/sounds/mesecons_noteblock_a.ogg b/games/default/files/bluestone/mesecons_noteblock/sounds/mesecons_noteblock_a.ogg deleted file mode 100644 index 331fc1cc6..000000000 Binary files a/games/default/files/bluestone/mesecons_noteblock/sounds/mesecons_noteblock_a.ogg and /dev/null differ diff --git a/games/default/files/bluestone/mesecons_noteblock/sounds/mesecons_noteblock_a2.ogg b/games/default/files/bluestone/mesecons_noteblock/sounds/mesecons_noteblock_a2.ogg deleted file mode 100644 index 695b0f4eb..000000000 Binary files a/games/default/files/bluestone/mesecons_noteblock/sounds/mesecons_noteblock_a2.ogg and /dev/null differ diff --git a/games/default/files/bluestone/mesecons_noteblock/sounds/mesecons_noteblock_asharp.ogg b/games/default/files/bluestone/mesecons_noteblock/sounds/mesecons_noteblock_asharp.ogg deleted file mode 100644 index db96aedb6..000000000 Binary files a/games/default/files/bluestone/mesecons_noteblock/sounds/mesecons_noteblock_asharp.ogg and /dev/null differ diff --git a/games/default/files/bluestone/mesecons_noteblock/sounds/mesecons_noteblock_asharp2.ogg b/games/default/files/bluestone/mesecons_noteblock/sounds/mesecons_noteblock_asharp2.ogg deleted file mode 100644 index 27bd09df8..000000000 Binary files a/games/default/files/bluestone/mesecons_noteblock/sounds/mesecons_noteblock_asharp2.ogg and /dev/null differ diff --git a/games/default/files/bluestone/mesecons_noteblock/sounds/mesecons_noteblock_b.ogg b/games/default/files/bluestone/mesecons_noteblock/sounds/mesecons_noteblock_b.ogg deleted file mode 100644 index 810fe18f1..000000000 Binary files a/games/default/files/bluestone/mesecons_noteblock/sounds/mesecons_noteblock_b.ogg and /dev/null differ diff --git a/games/default/files/bluestone/mesecons_noteblock/sounds/mesecons_noteblock_b2.ogg b/games/default/files/bluestone/mesecons_noteblock/sounds/mesecons_noteblock_b2.ogg deleted file mode 100644 index 3de1250df..000000000 Binary files a/games/default/files/bluestone/mesecons_noteblock/sounds/mesecons_noteblock_b2.ogg and /dev/null differ diff --git a/games/default/files/bluestone/mesecons_noteblock/sounds/mesecons_noteblock_c.ogg b/games/default/files/bluestone/mesecons_noteblock/sounds/mesecons_noteblock_c.ogg deleted file mode 100644 index 5c60d3158..000000000 Binary files a/games/default/files/bluestone/mesecons_noteblock/sounds/mesecons_noteblock_c.ogg and /dev/null differ diff --git a/games/default/files/bluestone/mesecons_noteblock/sounds/mesecons_noteblock_c2.ogg b/games/default/files/bluestone/mesecons_noteblock/sounds/mesecons_noteblock_c2.ogg deleted file mode 100644 index 724db7ded..000000000 Binary files a/games/default/files/bluestone/mesecons_noteblock/sounds/mesecons_noteblock_c2.ogg and /dev/null differ diff --git a/games/default/files/bluestone/mesecons_noteblock/sounds/mesecons_noteblock_crash.ogg b/games/default/files/bluestone/mesecons_noteblock/sounds/mesecons_noteblock_crash.ogg deleted file mode 100644 index 0308d11a1..000000000 Binary files a/games/default/files/bluestone/mesecons_noteblock/sounds/mesecons_noteblock_crash.ogg and /dev/null differ diff --git a/games/default/files/bluestone/mesecons_noteblock/sounds/mesecons_noteblock_csharp.ogg b/games/default/files/bluestone/mesecons_noteblock/sounds/mesecons_noteblock_csharp.ogg deleted file mode 100644 index 12c1ef380..000000000 Binary files a/games/default/files/bluestone/mesecons_noteblock/sounds/mesecons_noteblock_csharp.ogg and /dev/null differ diff --git a/games/default/files/bluestone/mesecons_noteblock/sounds/mesecons_noteblock_csharp2.ogg b/games/default/files/bluestone/mesecons_noteblock/sounds/mesecons_noteblock_csharp2.ogg deleted file mode 100644 index fc7f6c883..000000000 Binary files a/games/default/files/bluestone/mesecons_noteblock/sounds/mesecons_noteblock_csharp2.ogg and /dev/null differ diff --git a/games/default/files/bluestone/mesecons_noteblock/sounds/mesecons_noteblock_d.ogg b/games/default/files/bluestone/mesecons_noteblock/sounds/mesecons_noteblock_d.ogg deleted file mode 100644 index 929b7fbae..000000000 Binary files a/games/default/files/bluestone/mesecons_noteblock/sounds/mesecons_noteblock_d.ogg and /dev/null differ diff --git a/games/default/files/bluestone/mesecons_noteblock/sounds/mesecons_noteblock_d2.ogg b/games/default/files/bluestone/mesecons_noteblock/sounds/mesecons_noteblock_d2.ogg deleted file mode 100644 index dfd702b11..000000000 Binary files a/games/default/files/bluestone/mesecons_noteblock/sounds/mesecons_noteblock_d2.ogg and /dev/null differ diff --git a/games/default/files/bluestone/mesecons_noteblock/sounds/mesecons_noteblock_dsharp.ogg b/games/default/files/bluestone/mesecons_noteblock/sounds/mesecons_noteblock_dsharp.ogg deleted file mode 100644 index eb6045d48..000000000 Binary files a/games/default/files/bluestone/mesecons_noteblock/sounds/mesecons_noteblock_dsharp.ogg and /dev/null differ diff --git a/games/default/files/bluestone/mesecons_noteblock/sounds/mesecons_noteblock_dsharp2.ogg b/games/default/files/bluestone/mesecons_noteblock/sounds/mesecons_noteblock_dsharp2.ogg deleted file mode 100644 index 5ac16ddec..000000000 Binary files a/games/default/files/bluestone/mesecons_noteblock/sounds/mesecons_noteblock_dsharp2.ogg and /dev/null differ diff --git a/games/default/files/bluestone/mesecons_noteblock/sounds/mesecons_noteblock_e.ogg b/games/default/files/bluestone/mesecons_noteblock/sounds/mesecons_noteblock_e.ogg deleted file mode 100644 index 94977e0d0..000000000 Binary files a/games/default/files/bluestone/mesecons_noteblock/sounds/mesecons_noteblock_e.ogg and /dev/null differ diff --git a/games/default/files/bluestone/mesecons_noteblock/sounds/mesecons_noteblock_e2.ogg b/games/default/files/bluestone/mesecons_noteblock/sounds/mesecons_noteblock_e2.ogg deleted file mode 100644 index 1dcc0c4a5..000000000 Binary files a/games/default/files/bluestone/mesecons_noteblock/sounds/mesecons_noteblock_e2.ogg and /dev/null differ diff --git a/games/default/files/bluestone/mesecons_noteblock/sounds/mesecons_noteblock_f.ogg b/games/default/files/bluestone/mesecons_noteblock/sounds/mesecons_noteblock_f.ogg deleted file mode 100644 index 221d9264c..000000000 Binary files a/games/default/files/bluestone/mesecons_noteblock/sounds/mesecons_noteblock_f.ogg and /dev/null differ diff --git a/games/default/files/bluestone/mesecons_noteblock/sounds/mesecons_noteblock_f2.ogg b/games/default/files/bluestone/mesecons_noteblock/sounds/mesecons_noteblock_f2.ogg deleted file mode 100644 index acf10dbb9..000000000 Binary files a/games/default/files/bluestone/mesecons_noteblock/sounds/mesecons_noteblock_f2.ogg and /dev/null differ diff --git a/games/default/files/bluestone/mesecons_noteblock/sounds/mesecons_noteblock_fsharp.ogg b/games/default/files/bluestone/mesecons_noteblock/sounds/mesecons_noteblock_fsharp.ogg deleted file mode 100644 index 7af83a8eb..000000000 Binary files a/games/default/files/bluestone/mesecons_noteblock/sounds/mesecons_noteblock_fsharp.ogg and /dev/null differ diff --git a/games/default/files/bluestone/mesecons_noteblock/sounds/mesecons_noteblock_fsharp2.ogg b/games/default/files/bluestone/mesecons_noteblock/sounds/mesecons_noteblock_fsharp2.ogg deleted file mode 100644 index a96f63710..000000000 Binary files a/games/default/files/bluestone/mesecons_noteblock/sounds/mesecons_noteblock_fsharp2.ogg and /dev/null differ diff --git a/games/default/files/bluestone/mesecons_noteblock/sounds/mesecons_noteblock_g.ogg b/games/default/files/bluestone/mesecons_noteblock/sounds/mesecons_noteblock_g.ogg deleted file mode 100644 index 480ca3679..000000000 Binary files a/games/default/files/bluestone/mesecons_noteblock/sounds/mesecons_noteblock_g.ogg and /dev/null differ diff --git a/games/default/files/bluestone/mesecons_noteblock/sounds/mesecons_noteblock_g2.ogg b/games/default/files/bluestone/mesecons_noteblock/sounds/mesecons_noteblock_g2.ogg deleted file mode 100644 index 917b2b9cd..000000000 Binary files a/games/default/files/bluestone/mesecons_noteblock/sounds/mesecons_noteblock_g2.ogg and /dev/null differ diff --git a/games/default/files/bluestone/mesecons_noteblock/sounds/mesecons_noteblock_gsharp.ogg b/games/default/files/bluestone/mesecons_noteblock/sounds/mesecons_noteblock_gsharp.ogg deleted file mode 100644 index 2e71fea06..000000000 Binary files a/games/default/files/bluestone/mesecons_noteblock/sounds/mesecons_noteblock_gsharp.ogg and /dev/null differ diff --git a/games/default/files/bluestone/mesecons_noteblock/sounds/mesecons_noteblock_gsharp2.ogg b/games/default/files/bluestone/mesecons_noteblock/sounds/mesecons_noteblock_gsharp2.ogg deleted file mode 100644 index 941c68562..000000000 Binary files a/games/default/files/bluestone/mesecons_noteblock/sounds/mesecons_noteblock_gsharp2.ogg and /dev/null differ diff --git a/games/default/files/bluestone/mesecons_noteblock/sounds/mesecons_noteblock_hihat.ogg b/games/default/files/bluestone/mesecons_noteblock/sounds/mesecons_noteblock_hihat.ogg deleted file mode 100644 index 0afa7c078..000000000 Binary files a/games/default/files/bluestone/mesecons_noteblock/sounds/mesecons_noteblock_hihat.ogg and /dev/null differ diff --git a/games/default/files/bluestone/mesecons_noteblock/sounds/mesecons_noteblock_kick.ogg b/games/default/files/bluestone/mesecons_noteblock/sounds/mesecons_noteblock_kick.ogg deleted file mode 100644 index 10d585b82..000000000 Binary files a/games/default/files/bluestone/mesecons_noteblock/sounds/mesecons_noteblock_kick.ogg and /dev/null differ diff --git a/games/default/files/bluestone/mesecons_noteblock/sounds/mesecons_noteblock_litecrash.ogg b/games/default/files/bluestone/mesecons_noteblock/sounds/mesecons_noteblock_litecrash.ogg deleted file mode 100644 index 79ab256a7..000000000 Binary files a/games/default/files/bluestone/mesecons_noteblock/sounds/mesecons_noteblock_litecrash.ogg and /dev/null differ diff --git a/games/default/files/bluestone/mesecons_noteblock/sounds/mesecons_noteblock_snare.ogg b/games/default/files/bluestone/mesecons_noteblock/sounds/mesecons_noteblock_snare.ogg deleted file mode 100644 index 83a79441d..000000000 Binary files a/games/default/files/bluestone/mesecons_noteblock/sounds/mesecons_noteblock_snare.ogg and /dev/null differ diff --git a/games/default/files/bluestone/mesecons_noteblock/textures/mesecons_noteblock.png b/games/default/files/bluestone/mesecons_noteblock/textures/mesecons_noteblock.png deleted file mode 100644 index 43f9c04e8..000000000 Binary files a/games/default/files/bluestone/mesecons_noteblock/textures/mesecons_noteblock.png and /dev/null differ diff --git a/games/default/files/bluestone/mesecons_pistons/depends.txt b/games/default/files/bluestone/mesecons_pistons/depends.txt deleted file mode 100644 index 01f085ba2..000000000 --- a/games/default/files/bluestone/mesecons_pistons/depends.txt +++ /dev/null @@ -1,2 +0,0 @@ -mesecons -mesecons_mvps diff --git a/games/default/files/bluestone/mesecons_pistons/init.lua b/games/default/files/bluestone/mesecons_pistons/init.lua deleted file mode 100644 index d2781335f..000000000 --- a/games/default/files/bluestone/mesecons_pistons/init.lua +++ /dev/null @@ -1,494 +0,0 @@ -local specs = { - normal = { - offname = "mesecons_pistons:piston_normal_off", - onname = "mesecons_pistons:piston_normal_on", - pusher = "mesecons_pistons:piston_pusher_normal", - }, - sticky = { - offname = "mesecons_pistons:piston_sticky_off", - onname = "mesecons_pistons:piston_sticky_on", - pusher = "mesecons_pistons:piston_pusher_sticky", - sticky = true, - }, -} - -local function get_pistonspec_name(name, part) - if part then - for spec_name, spec in pairs(specs) do - if name == spec[part] then - return spec_name, part - end - end - return - end - for spec_name, spec in pairs(specs) do - for part, value in pairs(spec) do - if name == value then - return spec_name, part - end - end - end -end - -local function get_pistonspec(name, part) - return specs[get_pistonspec_name(name, part)] -end - -local max_push = mesecon.setting("piston_max_push", 10) -local max_pull = mesecon.setting("piston_max_pull", 10) - --- Get mesecon rules of pistons -local function piston_get_rules(node) - local dir = minetest.facedir_to_dir(node.param2) - for k, v in pairs(dir) do - if v ~= 0 then - dir = {k, -v} - break - end - end - local rules = table.copy(mesecon.rules.default) - for i, rule in ipairs(rules) do - if rule[dir[1]] == dir[2] then - table.remove(rules, i) - end - end - return rules -end - -local function piston_remove_pusher(pos, node, check_falling) - local pistonspec = get_pistonspec(node.name, "onname") - local dir = vector.multiply(minetest.facedir_to_dir(node.param2), -1) - local pusherpos = vector.add(pos, dir) - local pushername = minetest.get_node(pusherpos).name - - -- make sure there actually is a pusher (for compatibility reasons mainly) - if pushername ~= pistonspec.pusher then - return - end - - minetest.remove_node(pusherpos) - minetest.sound_play("piston_retract", { - pos = pos, - max_hear_distance = 20, - gain = 0.3, - }) - - if check_falling then - minetest.check_for_falling(pusherpos) - end - end - -local function piston_after_dig(pos, node) - piston_remove_pusher(pos, node, true) -end - -local piston_on = function(pos, node) - local pistonspec = get_pistonspec(node.name, "offname") - local dir = vector.multiply(minetest.facedir_to_dir(node.param2), -1) - local pusher_pos = vector.add(pos, dir) - local success, stack, oldstack = mesecon.mvps_push(pusher_pos, dir, max_push) - if not success then - return - end - minetest.set_node(pos, {param2 = node.param2, name = pistonspec.onname}) - minetest.set_node(pusher_pos, {param2 = node.param2, name = pistonspec.pusher}) - minetest.sound_play("piston_extend", { - pos = pos, - max_hear_distance = 20, - gain = 0.3, - }) - mesecon.mvps_process_stack(stack) - mesecon.mvps_move_objects(pusher_pos, dir, oldstack) -end - -local function piston_off(pos, node) - local pistonspec = get_pistonspec(node.name, "onname") - minetest.set_node(pos, {param2 = node.param2, name = pistonspec.offname}) - piston_remove_pusher(pos, node, not pistonspec.sticky) - - if not pistonspec.sticky then - return - end - local dir = minetest.facedir_to_dir(node.param2) - local pullpos = vector.add(pos, vector.multiply(dir, -2)) - local success, stack, oldstack = mesecon.mvps_pull_single(pullpos, dir, max_pull) - if success then - mesecon.mvps_move_objects(pullpos, vector.multiply(dir, -1), oldstack, -1) - end -end - -local orientations = { - [0] = { 4, 8}, - {13, 17}, - {10, 6}, - {20, 15}, -} - -local function piston_orientate(pos, placer) - if not placer then - return - end - local pitch = math.deg(placer:get_look_vertical()) - local node = minetest.get_node(pos) - if pitch > 55 then - node.param2 = orientations[node.param2][1] - elseif pitch < -55 then - node.param2 = orientations[node.param2][2] - else - return - end - minetest.swap_node(pos, node) - -- minetest.after, because on_placenode for unoriented piston must be processed first - minetest.after(0, mesecon.on_placenode, pos, node) -end - -local rotations = { - {0, 16, 20, 12}, - {2, 14, 22, 18}, - {1, 5, 23, 9}, - {3, 11, 21, 7}, - {4, 13, 10, 19}, - {6, 15, 8, 17}, -} - -local function get_rotation(param2) - for a = 1, #rotations do - for f = 1, #rotations[a] do - if rotations[a][f] == param2 then - return a, f - end - end - end -end - -local function rotate(param2, mode) - local axis, face = get_rotation(param2) - if mode == screwdriver.ROTATE_FACE then - face = face + 1 - if face > 4 then - face = 1 - end - elseif mode == screwdriver.ROTATE_AXIS then - axis = axis + 1 - if axis > 6 then - axis = 1 - end - face = 1 - else - return param2 - end - return rotations[axis][face] -end - -local function piston_rotate(pos, node, _, mode) - node.param2 = rotate(node.param2, mode) - minetest.swap_node(pos, node) - mesecon.execute_autoconnect_hooks_now(pos, node) - return true -end - -local function piston_rotate_on(pos, node, player, mode) - local pistonspec = get_pistonspec(node.name, "onname") - local dir = vector.multiply(minetest.facedir_to_dir(node.param2), -1) - local pusher_pos = vector.add(dir, pos) - local pusher_node = minetest.get_node(pusher_pos) - if pusher_node.name ~= pistonspec.pusher then - return piston_rotate(pos, node, nil, mode) - end - if mode == screwdriver.ROTATE_FACE then - piston_rotate(pusher_pos, pusher_node, nil, mode) - return piston_rotate(pos, node, nil, mode) - elseif mode ~= screwdriver.ROTATE_AXIS then - return false - end - local player_name = player and player:is_player() and player:get_player_name() or "" - local ok, dir_after, pusher_pos_after - for i = 1, 5 do - node.param2 = rotate(node.param2, mode) - dir_after = vector.multiply(minetest.facedir_to_dir(node.param2), -1) - pusher_pos_after = vector.add(dir_after, pos) - local pusher_pos_after_node_name = minetest.get_node(pusher_pos_after).name - local pusher_pos_after_node_def = minetest.registered_nodes[pusher_pos_after_node_name] - if pusher_pos_after_node_def and pusher_pos_after_node_def.buildable_to and - not minetest.is_protected(pusher_pos_after, player_name) then - ok = true - break - end - end - if not ok then - return false - end - pusher_node.param2 = node.param2 - minetest.remove_node(pusher_pos) - minetest.set_node(pusher_pos_after, pusher_node) - minetest.swap_node(pos, node) - mesecon.execute_autoconnect_hooks_now(pos, node) - return true -end - -local function piston_rotate_pusher(pos, node, player, mode) - local pistonspec = get_pistonspec(node.name, "pusher") - local piston_pos = vector.add(pos, minetest.facedir_to_dir(node.param2)) - local piston_node = minetest.get_node(piston_pos) - if piston_node.name ~= pistonspec.onname then - minetest.remove_node(pos) -- Make it possible to remove alone pushers. - return false - end - return piston_rotate_on(piston_pos, piston_node, player, mode) -end - - --- Boxes: - -local pt = 3/16 -- pusher thickness - -local piston_pusher_box = { - type = "fixed", - fixed = { - {-2/16, -2/16, -.5 + pt, 2/16, 2/16, .5 + pt}, - {-.5 , -.5 , -.5 , .5 , .5 , -.5 + pt}, - }, -} - -local piston_on_box = { - type = "fixed", - fixed = { - {-.5, -.5, -.5 + pt, .5, .5, .5} - }, - } - - --- Normal (non-sticky) Pistons: --- offstate -minetest.register_node("mesecons_pistons:piston_normal_off", { - description = "Piston", - tiles = { - "mesecons_piston_top.png", - "mesecons_piston_bottom.png", - "mesecons_piston_left.png", - "mesecons_piston_right.png", - "mesecons_piston_back.png", - "mesecons_piston_pusher_front.png" - }, - groups = {cracky = 3}, - stack_max = 1, - paramtype2 = "facedir", - is_ground_content = false, - after_place_node = piston_orientate, - sounds = default.node_sound_wood_defaults(), - mesecons = {effector={ - action_on = piston_on, - rules = piston_get_rules, - }}, - on_rotate = piston_rotate, - on_blast = mesecon.on_blastnode, -}) - --- onstate -minetest.register_node("mesecons_pistons:piston_normal_on", { - drawtype = "nodebox", - tiles = { - "mesecons_piston_top.png", - "mesecons_piston_bottom.png", - "mesecons_piston_left.png", - "mesecons_piston_right.png", - "mesecons_piston_back.png", - "mesecons_piston_on_front.png" - }, - groups = {cracky = 3, not_in_creative_inventory = 1}, - paramtype = "light", - paramtype2 = "facedir", - is_ground_content = false, - drop = "mesecons_pistons:piston_normal_off", - after_dig_node = piston_after_dig, - node_box = piston_on_box, - selection_box = piston_on_box, - sounds = default.node_sound_wood_defaults(), - mesecons = {effector={ - action_off = piston_off, - rules = piston_get_rules, - }}, - on_rotate = piston_rotate_on, - on_blast = mesecon.on_blastnode, -}) - --- pusher -minetest.register_node("mesecons_pistons:piston_pusher_normal", { - drawtype = "nodebox", - tiles = { - "mesecons_piston_top.png", - "mesecons_piston_bottom.png", - "mesecons_piston_left.png", - "mesecons_piston_right.png", - "mesecons_piston_back.png", - "mesecons_piston_pusher_front.png" - }, - groups = {not_in_creative_inventory = 1}, - paramtype = "light", - paramtype2 = "facedir", - is_ground_content = false, - diggable = false, - selection_box = piston_pusher_box, - node_box = piston_pusher_box, - on_rotate = piston_rotate_pusher, - drop = "", - sounds = default.node_sound_wood_defaults(), -}) - --- Sticky ones --- offstate -minetest.register_node("mesecons_pistons:piston_sticky_off", { - description = "Sticky Piston", - tiles = { - "mesecons_piston_top.png", - "mesecons_piston_bottom.png", - "mesecons_piston_left.png", - "mesecons_piston_right.png", - "mesecons_piston_back.png", - "mesecons_piston_pusher_front_sticky.png" - }, - groups = {cracky = 3}, - stack_max = 1, - paramtype2 = "facedir", - is_ground_content = false, - after_place_node = piston_orientate, - sounds = default.node_sound_wood_defaults(), - mesecons = {effector={ - action_on = piston_on, - rules = piston_get_rules, - }}, - on_rotate = piston_rotate, - on_blast = mesecon.on_blastnode, -}) - --- onstate -minetest.register_node("mesecons_pistons:piston_sticky_on", { - drawtype = "nodebox", - tiles = { - "mesecons_piston_top.png", - "mesecons_piston_bottom.png", - "mesecons_piston_left.png", - "mesecons_piston_right.png", - "mesecons_piston_back.png", - "mesecons_piston_on_front.png" - }, - groups = {cracky = 3, not_in_creative_inventory = 1}, - paramtype = "light", - paramtype2 = "facedir", - is_ground_content = false, - drop = "mesecons_pistons:piston_sticky_off", - after_dig_node = piston_after_dig, - node_box = piston_on_box, - selection_box = piston_on_box, - sounds = default.node_sound_wood_defaults(), - mesecons = {effector={ - action_off = piston_off, - rules = piston_get_rules, - }}, - on_rotate = piston_rotate_on, - on_blast = mesecon.on_blastnode, -}) - --- pusher -minetest.register_node("mesecons_pistons:piston_pusher_sticky", { - drawtype = "nodebox", - tiles = { - "mesecons_piston_top.png", - "mesecons_piston_bottom.png", - "mesecons_piston_left.png", - "mesecons_piston_right.png", - "mesecons_piston_back.png", - "mesecons_piston_pusher_front_sticky.png" - }, - groups = {not_in_creative_inventory = 1}, - paramtype = "light", - paramtype2 = "facedir", - is_ground_content = false, - diggable = false, - selection_box = piston_pusher_box, - node_box = piston_pusher_box, - on_rotate = piston_rotate_pusher, - drop = "", - sounds = default.node_sound_wood_defaults(), -}) - - --- Register pushers as stoppers if they would be seperated from the piston -local function piston_pusher_get_stopper(node, dir, stack, stackid) - if (stack[stackid + 1] - and stack[stackid + 1].node.name == get_pistonspec(node.name, "pusher").onname - and stack[stackid + 1].node.param2 == node.param2) - or (stack[stackid - 1] - and stack[stackid - 1].node.name == get_pistonspec(node.name, "pusher").onname - and stack[stackid - 1].node.param2 == node.param2) then - return false - end - return true -end - -local function piston_pusher_up_down_get_stopper(node, dir, stack, stackid) - if (stack[stackid + 1] - and stack[stackid + 1].node.name == get_pistonspec(node.name, "pusher").onname) - or (stack[stackid - 1] - and stack[stackid - 1].node.name == get_pistonspec(node.name, "pusher").onname) then - return false - end - return true -end - -mesecon.register_mvps_stopper("mesecons_pistons:piston_pusher_normal", piston_pusher_get_stopper) -mesecon.register_mvps_stopper("mesecons_pistons:piston_pusher_sticky", piston_pusher_get_stopper) - - --- Register pistons as stoppers if they would be seperated from the stopper -local piston_up_down_get_stopper = function (node, dir, stack, stackid) - if (stack[stackid + 1] - and stack[stackid + 1].node.name == get_pistonspec(node.name, "onname").pusher) - or (stack[stackid - 1] - and stack[stackid - 1].node.name == get_pistonspec(node.name, "onname").pusher) then - return false - end - return true -end - -local function piston_get_stopper(node, dir, stack, stackid) - local pistonspec = get_pistonspec(node.name, "onname") - local dir = vector.multiply(minetest.facedir_to_dir(node.param2), -1) - local pusherpos = vector.add(stack[stackid].pos, dir) - local pushernode = minetest.get_node(pusherpos) - if pistonspec.pusher == pushernode.name then - for _, s in ipairs(stack) do - if vector.equals(s.pos, pusherpos) -- pusher is also to be pushed - and s.node.param2 == node.param2 then - return false - end - end - end - return true -end - -mesecon.register_mvps_stopper("mesecons_pistons:piston_normal_on", piston_get_stopper) -mesecon.register_mvps_stopper("mesecons_pistons:piston_sticky_on", piston_get_stopper) - - ---craft recipes -minetest.register_craft({ - output = "mesecons_pistons:piston_normal_off 2", - recipe = { - {"group:wood", "group:wood", "group:wood"}, - {"default:cobble", "default:steel_ingot", "default:cobble"}, - {"default:cobble", "mesecons:wire_00000000_off", "default:cobble"}, - } -}) - -minetest.register_craft({ - output = "mesecons_pistons:piston_sticky_off", - recipe = { - {"mesecons_materials:glue"}, - {"mesecons_pistons:piston_normal_off"}, - } -}) - - --- load legacy code -dofile(minetest.get_modpath("mesecons_pistons")..DIR_DELIM.."legacy.lua") diff --git a/games/default/files/bluestone/mesecons_pistons/legacy.lua b/games/default/files/bluestone/mesecons_pistons/legacy.lua deleted file mode 100644 index 0c6dcb336..000000000 --- a/games/default/files/bluestone/mesecons_pistons/legacy.lua +++ /dev/null @@ -1,48 +0,0 @@ -local ground_dir = { - [0] = {x = 0, y = -1, z = 0}, - {x = 0, y = 0, z = -1}, - {x = 0, y = 0, z = 1}, - {x = -1, y = 0, z = 0}, - {x = 1, y = 0, z = 0}, - {x = 0, y = 1, z = 0}, -} - -minetest.register_lbm({ - label = "Upgrade legacy pistons pointing up", - name = "mesecons_pistons:replace_legacy_piston_up", - nodenames = { - "mesecons_pistons:piston_up_normal_off", - "mesecons_pistons:piston_up_normal_on", - "mesecons_pistons:piston_up_pusher_normal", - "mesecons_pistons:piston_up_sticky_off", - "mesecons_pistons:piston_up_sticky_on", - "mesecons_pistons:piston_up_pusher_sticky", - }, - run_at_every_load = false, - action = function(pos, node) - local dir = ground_dir[math.floor(node.param2/4)] - node.param2 = minetest.dir_to_facedir(dir, true) - node.name = node.name:sub(1, 24)..node.name:sub(28) - minetest.swap_node(pos, node) - end, -}) - -minetest.register_lbm({ - label = "Upgrade legacy pistons pointing down", - name = "mesecons_pistons:replace_legacy_piston_down", - nodenames = { - "mesecons_pistons:piston_down_normal_off", - "mesecons_pistons:piston_down_normal_on", - "mesecons_pistons:piston_down_pusher_normal", - "mesecons_pistons:piston_down_sticky_off", - "mesecons_pistons:piston_down_sticky_on", - "mesecons_pistons:piston_down_pusher_sticky", - }, - run_at_every_load = false, - action = function(pos, node) - local dir = vector.multiply(ground_dir[math.floor(node.param2/4)], -1) - node.param2 = minetest.dir_to_facedir(dir, true) - node.name = node.name:sub(1, 24)..node.name:sub(30) - minetest.swap_node(pos, node) - end, -}) diff --git a/games/default/files/bluestone/mesecons_pistons/sounds/piston_extend.ogg b/games/default/files/bluestone/mesecons_pistons/sounds/piston_extend.ogg deleted file mode 100644 index e234ad944..000000000 Binary files a/games/default/files/bluestone/mesecons_pistons/sounds/piston_extend.ogg and /dev/null differ diff --git a/games/default/files/bluestone/mesecons_pistons/sounds/piston_retract.ogg b/games/default/files/bluestone/mesecons_pistons/sounds/piston_retract.ogg deleted file mode 100644 index feb9f0444..000000000 Binary files a/games/default/files/bluestone/mesecons_pistons/sounds/piston_retract.ogg and /dev/null differ diff --git a/games/default/files/bluestone/mesecons_pistons/textures/mesecons_piston_back.png b/games/default/files/bluestone/mesecons_pistons/textures/mesecons_piston_back.png deleted file mode 100644 index 8ef6d9683..000000000 Binary files a/games/default/files/bluestone/mesecons_pistons/textures/mesecons_piston_back.png and /dev/null differ diff --git a/games/default/files/bluestone/mesecons_pistons/textures/mesecons_piston_bottom.png b/games/default/files/bluestone/mesecons_pistons/textures/mesecons_piston_bottom.png deleted file mode 100644 index 999be8d61..000000000 Binary files a/games/default/files/bluestone/mesecons_pistons/textures/mesecons_piston_bottom.png and /dev/null differ diff --git a/games/default/files/bluestone/mesecons_pistons/textures/mesecons_piston_left.png b/games/default/files/bluestone/mesecons_pistons/textures/mesecons_piston_left.png deleted file mode 100644 index 9f45cd8a0..000000000 Binary files a/games/default/files/bluestone/mesecons_pistons/textures/mesecons_piston_left.png and /dev/null differ diff --git a/games/default/files/bluestone/mesecons_pistons/textures/mesecons_piston_on_front.png b/games/default/files/bluestone/mesecons_pistons/textures/mesecons_piston_on_front.png deleted file mode 100644 index 8d54b0f26..000000000 Binary files a/games/default/files/bluestone/mesecons_pistons/textures/mesecons_piston_on_front.png and /dev/null differ diff --git a/games/default/files/bluestone/mesecons_pistons/textures/mesecons_piston_pusher_front.png b/games/default/files/bluestone/mesecons_pistons/textures/mesecons_piston_pusher_front.png deleted file mode 100644 index b457e7793..000000000 Binary files a/games/default/files/bluestone/mesecons_pistons/textures/mesecons_piston_pusher_front.png and /dev/null differ diff --git a/games/default/files/bluestone/mesecons_pistons/textures/mesecons_piston_pusher_front_sticky.png b/games/default/files/bluestone/mesecons_pistons/textures/mesecons_piston_pusher_front_sticky.png deleted file mode 100644 index 4b22eba43..000000000 Binary files a/games/default/files/bluestone/mesecons_pistons/textures/mesecons_piston_pusher_front_sticky.png and /dev/null differ diff --git a/games/default/files/bluestone/mesecons_pistons/textures/mesecons_piston_right.png b/games/default/files/bluestone/mesecons_pistons/textures/mesecons_piston_right.png deleted file mode 100644 index d008b70cc..000000000 Binary files a/games/default/files/bluestone/mesecons_pistons/textures/mesecons_piston_right.png and /dev/null differ diff --git a/games/default/files/bluestone/mesecons_pistons/textures/mesecons_piston_top.png b/games/default/files/bluestone/mesecons_pistons/textures/mesecons_piston_top.png deleted file mode 100644 index b07aa9bc3..000000000 Binary files a/games/default/files/bluestone/mesecons_pistons/textures/mesecons_piston_top.png and /dev/null differ diff --git a/games/default/files/bluestone/mesecons_pressureplates/depends.txt b/games/default/files/bluestone/mesecons_pressureplates/depends.txt deleted file mode 100644 index acaa92412..000000000 --- a/games/default/files/bluestone/mesecons_pressureplates/depends.txt +++ /dev/null @@ -1 +0,0 @@ -mesecons diff --git a/games/default/files/bluestone/mesecons_pressureplates/init.lua b/games/default/files/bluestone/mesecons_pressureplates/init.lua deleted file mode 100644 index 5116873ff..000000000 --- a/games/default/files/bluestone/mesecons_pressureplates/init.lua +++ /dev/null @@ -1,106 +0,0 @@ -local pp_box_off = { - type = "fixed", - fixed = { -7/16, -8/16, -7/16, 7/16, -7/16, 7/16 }, -} - -local pp_box_on = { - type = "fixed", - fixed = { -7/16, -8/16, -7/16, 7/16, -7.5/16, 7/16 }, -} - -local function pp_on_timer(pos, elapsed) - local node = minetest.get_node(pos) - local basename = minetest.registered_nodes[node.name].pressureplate_basename - - -- This is a workaround for a strange bug that occurs when the server is started - -- For some reason the first time on_timer is called, the pos is wrong - if not basename then return end - - local objs = minetest.get_objects_inside_radius(pos, 1) - local two_below = vector.add(pos, vector.new(0, -2, 0)) - - if objs[1] == nil and node.name == basename .. "_on" then - minetest.set_node(pos, {name = basename .. "_off"}) - mesecon.receptor_off(pos, mesecon.rules.pplate) - elseif node.name == basename .. "_off" then - for k, obj in pairs(objs) do - local objpos = obj:getpos() - if objpos.y > pos.y-1 and objpos.y < pos.y then - minetest.set_node(pos, {name = basename .. "_on"}) - mesecon.receptor_on(pos, mesecon.rules.pplate ) - end - end - end - return true -end - --- Register a Pressure Plate --- offstate: name of the pressure plate when inactive --- onstate: name of the pressure plate when active --- description: description displayed in the player's inventory --- tiles_off: textures of the pressure plate when inactive --- tiles_on: textures of the pressure plate when active --- image: inventory and wield image of the pressure plate --- recipe: crafting recipe of the pressure plate --- groups: groups --- sounds: sound table - -function mesecon.register_pressure_plate(basename, description, textures_off, textures_on, --[[image_w, image_i,]] recipe, groups, sounds) - local groups_off, groups_on - if not groups then - groups = {} - end - local groups_off = table.copy(groups) - local groups_on = table.copy(groups) - groups_on.not_in_creative_inventory = 1 - - mesecon.register_node(basename, { - drawtype = "nodebox", - -- inventory_image = image_i, - -- wield_image = image_w, - paramtype = "light", - is_ground_content = false, - description = description, - pressureplate_basename = basename, - on_timer = pp_on_timer, - on_construct = function(pos) - minetest.get_node_timer(pos):start(mesecon.setting("pplate_interval", 0.1)) - end, - sounds = sounds, - },{ - mesecons = {receptor = { state = mesecon.state.off, rules = mesecon.rules.pplate }}, - node_box = pp_box_off, - selection_box = pp_box_off, - groups = groups_off, - tiles = textures_off - },{ - mesecons = {receptor = { state = mesecon.state.on, rules = mesecon.rules.pplate }}, - node_box = pp_box_on, - selection_box = pp_box_on, - groups = groups_on, - tiles = textures_on - }) - - minetest.register_craft({ - output = basename .. "_off", - recipe = recipe, - }) -end - -mesecon.register_pressure_plate( - "mesecons_pressureplates:pressure_plate_wood", - "Wooden Pressure Plate", - {"default_wood.png"}, - {"default_wood.png"}, - {{"default:wood", "default:wood"}}, - { choppy = 3, oddly_breakable_by_hand = 3, attached_node = 1 }, - default.node_sound_wood_defaults()) - -mesecon.register_pressure_plate( - "mesecons_pressureplates:pressure_plate_stone", - "Stone Pressure Plate", - {"default_stone.png"}, - {"default_stone.png"}, - {{"default:cobble", "default:cobble"}}, - { cracky = 3, oddly_breakable_by_hand = 3, attached_node = 1 }, - default.node_sound_stone_defaults()) diff --git a/games/default/files/bluestone/mesecons_solarpanel/depends.txt b/games/default/files/bluestone/mesecons_solarpanel/depends.txt deleted file mode 100644 index bc7b0627e..000000000 --- a/games/default/files/bluestone/mesecons_solarpanel/depends.txt +++ /dev/null @@ -1,2 +0,0 @@ -mesecons -mesecons_materials diff --git a/games/default/files/bluestone/mesecons_solarpanel/init.lua b/games/default/files/bluestone/mesecons_solarpanel/init.lua deleted file mode 100644 index 923af64a6..000000000 --- a/games/default/files/bluestone/mesecons_solarpanel/init.lua +++ /dev/null @@ -1,92 +0,0 @@ --- Solar Panel -minetest.register_node("mesecons_solarpanel:solar_panel_on", { - drawtype = "nodebox", - tiles = { "jeija_solar_panel.png" }, - inventory_image = "jeija_solar_panel.png", - wield_image = "jeija_solar_panel.png", - paramtype = "light", - paramtype2 = "wallmounted", - is_ground_content = false, - node_box = { - type = "wallmounted", - wall_bottom = { -8/16, -8/16, -8/16, 8/16, -2/16, 8/16 }, - wall_top = { -8/16, 2/16, -8/16, 8/16, 8/16, 8/16 }, - wall_side = { -2/16, -8/16, -8/16, -8/16, 8/16, 8/16 }, - }, - drop = "mesecons_solarpanel:solar_panel_off", - groups = {dig_immediate = 3, attached_node = 1, not_in_creative_inventory = 1}, - sounds = default.node_sound_glass_defaults(), - mesecons = {receptor = { - state = mesecon.state.on, - rules = mesecon.rules.wallmounted_get, - }}, - on_blast = mesecon.on_blastnode, -}) - --- Solar Panel -minetest.register_node("mesecons_solarpanel:solar_panel_off", { - drawtype = "nodebox", - tiles = { "jeija_solar_panel.png" }, - inventory_image = "jeija_solar_panel.png", - wield_image = "jeija_solar_panel.png", - paramtype = "light", - paramtype2 = "wallmounted", - is_ground_content = false, - node_box = { - type = "wallmounted", - wall_bottom = { -8/16, -8/16, -8/16, 8/16, -2/16, 8/16 }, - wall_top = { -8/16, 2/16, -8/16, 8/16, 8/16, 8/16 }, - wall_side = { -2/16, -8/16, -8/16, -8/16, 8/16, 8/16 }, - }, - groups = {dig_immediate = 3, attached_node = 1}, - description="Solar Panel", - sounds = default.node_sound_glass_defaults(), - mesecons = {receptor = { - state = mesecon.state.off, - rules = mesecon.rules.wallmounted_get, - }}, - on_blast = mesecon.on_blastnode, -}) - -minetest.register_craft({ - output = "mesecons_solarpanel:solar_panel_off 1", - recipe = { - {'default:glass', 'default:glass', 'default:glass'}, - {'default:glass', 'default:glass', 'default:glass'}, - {'default:restone_dust', 'default:restone_dust', 'default:restone_dust'}, - } -}) - -minetest.register_abm( - {nodenames = {"mesecons_solarpanel:solar_panel_off"}, - interval = 3, - chance = 1, - action = function(pos, node, active_object_count, active_object_count_wider) - local light = minetest.get_node_light(pos, nil) - - if light >= 10 then - node.name = "mesecons_solarpanel:solar_panel_on" - minetest.swap_node(pos, node) - mesecon.receptor_on(pos, mesecon.rules.wallmounted_get(node)) - end - end, -}) - -minetest.register_abm( - {nodenames = {"mesecons_solarpanel:solar_panel_on"}, - interval = 3, - chance = 1, - action = function(pos, node, active_object_count, active_object_count_wider) - local light = minetest.get_node_light(pos, nil) - - if light < 10 then - node.name = "mesecons_solarpanel:solar_panel_off" - minetest.swap_node(pos, node) - mesecon.receptor_off(pos, mesecon.rules.wallmounted_get(node)) - end - end, -}) - --- Solar panel -minetest.register_alias("mesecons_solarpanel:solar_panel_inverted_on", "mesecons_solarpanel:solar_panel_on") -minetest.register_alias("mesecons_solarpanel:solar_panel_inverted_off", "mesecons_solarpanel:solar_panel_off") diff --git a/games/default/files/bluestone/mesecons_solarpanel/textures/jeija_solar_panel.png b/games/default/files/bluestone/mesecons_solarpanel/textures/jeija_solar_panel.png deleted file mode 100644 index e68a1efad..000000000 Binary files a/games/default/files/bluestone/mesecons_solarpanel/textures/jeija_solar_panel.png and /dev/null differ diff --git a/games/default/files/bluestone/mesecons_walllever/depends.txt b/games/default/files/bluestone/mesecons_walllever/depends.txt deleted file mode 100644 index bd5b847b9..000000000 --- a/games/default/files/bluestone/mesecons_walllever/depends.txt +++ /dev/null @@ -1,2 +0,0 @@ -mesecons -default \ No newline at end of file diff --git a/games/default/files/bluestone/mesecons_walllever/init.lua b/games/default/files/bluestone/mesecons_walllever/init.lua deleted file mode 100644 index ca7b40499..000000000 --- a/games/default/files/bluestone/mesecons_walllever/init.lua +++ /dev/null @@ -1,78 +0,0 @@ --- WALL LEVER --- Basically a switch that can be attached to a wall --- Powers the block 2 nodes behind (using a receiver) -mesecon.register_node("mesecons_walllever:wall_lever", { - description = "Lever", - drawtype = "nodebox", - inventory_image = "jeija_wall_lever.png", - wield_image = "jeija_wall_lever.png", - paramtype = "light", - paramtype2 = "facedir", - is_ground_content = false, - sunlight_propagates = true, - walkable = false, - sounds = default.node_sound_wood_defaults(), - on_punch = function(pos, node) - if (mesecon.flipstate(pos, node) == "on") then - mesecon.receptor_on(pos, mesecon.rules.buttonlike_get(node)) - else - mesecon.receptor_off(pos, mesecon.rules.buttonlike_get(node)) - end - minetest.sound_play("mesecons_lever", {pos=pos}) - end, - on_rightclick = function(pos, node) - if (mesecon.flipstate(pos, node) == "on") then - mesecon.receptor_on(pos, mesecon.rules.buttonlike_get(node)) - else - mesecon.receptor_off(pos, mesecon.rules.buttonlike_get(node)) - end - minetest.sound_play("mesecons_lever", {pos=pos}) - end -},{ - tiles = { - "jeija_wall_lever_tb.png", - "jeija_wall_lever_bottom.png", - "jeija_wall_lever_sides.png", - "jeija_wall_lever_sides.png", - "jeija_wall_lever_back.png", - "jeija_wall_lever_off.png", - }, - node_box = { - type = "fixed", - fixed = {{ -2/16, -3/16, 8/16, 2/16, 3/16, 4/16 }, -- the base - { -1/16, -8/16, 7/16, 1/16, 0/16, 5/16 }} -- the lever itself. - }, - mesecons = {receptor = { - rules = mesecon.rules.buttonlike_get, - state = mesecon.state.off - }}, - groups = {dig_immediate = 2}, -},{ - tiles = { - "jeija_wall_lever_top.png", - "jeija_wall_lever_tb.png", - "jeija_wall_lever_sides.png", - "jeija_wall_lever_sides.png", - "jeija_wall_lever_back.png", - "jeija_wall_lever_on.png", - }, - node_box = { - type = "fixed", - fixed = {{ -2/16, -3/16, 8/16, 2/16, 3/16, 4/16 }, -- the base - { -1/16, 0/16, 7/16, 1/16, 8/16, 5/16 }} -- the lever itself. - }, - on_rotate = false, - mesecons = {receptor = { - rules = mesecon.rules.buttonlike_get, - state = mesecon.state.on - }}, - groups = {dig_immediate = 2, not_in_creative_inventory = 1} -}) - -minetest.register_craft({ - output = "mesecons_walllever:wall_lever_off 2", - recipe = { - {"default:cobble"}, - {"default:stick"}, - } -}) diff --git a/games/default/files/bluestone/mesecons_walllever/sounds/mesecons_lever.ogg b/games/default/files/bluestone/mesecons_walllever/sounds/mesecons_lever.ogg deleted file mode 100644 index 53d45c18a..000000000 Binary files a/games/default/files/bluestone/mesecons_walllever/sounds/mesecons_lever.ogg and /dev/null differ diff --git a/games/default/files/bluestone/mesecons_walllever/textures/jeija_wall_lever.png b/games/default/files/bluestone/mesecons_walllever/textures/jeija_wall_lever.png deleted file mode 100644 index 051187faf..000000000 Binary files a/games/default/files/bluestone/mesecons_walllever/textures/jeija_wall_lever.png and /dev/null differ diff --git a/games/default/files/bluestone/mesecons_walllever/textures/jeija_wall_lever_back.png b/games/default/files/bluestone/mesecons_walllever/textures/jeija_wall_lever_back.png deleted file mode 100644 index 64d2614b2..000000000 Binary files a/games/default/files/bluestone/mesecons_walllever/textures/jeija_wall_lever_back.png and /dev/null differ diff --git a/games/default/files/bluestone/mesecons_walllever/textures/jeija_wall_lever_bottom.png b/games/default/files/bluestone/mesecons_walllever/textures/jeija_wall_lever_bottom.png deleted file mode 100644 index 12a8263c4..000000000 Binary files a/games/default/files/bluestone/mesecons_walllever/textures/jeija_wall_lever_bottom.png and /dev/null differ diff --git a/games/default/files/bluestone/mesecons_walllever/textures/jeija_wall_lever_off.png b/games/default/files/bluestone/mesecons_walllever/textures/jeija_wall_lever_off.png deleted file mode 100644 index 220ed9d30..000000000 Binary files a/games/default/files/bluestone/mesecons_walllever/textures/jeija_wall_lever_off.png and /dev/null differ diff --git a/games/default/files/bluestone/mesecons_walllever/textures/jeija_wall_lever_on.png b/games/default/files/bluestone/mesecons_walllever/textures/jeija_wall_lever_on.png deleted file mode 100644 index 4612b46b0..000000000 Binary files a/games/default/files/bluestone/mesecons_walllever/textures/jeija_wall_lever_on.png and /dev/null differ diff --git a/games/default/files/bluestone/mesecons_walllever/textures/jeija_wall_lever_sides.png b/games/default/files/bluestone/mesecons_walllever/textures/jeija_wall_lever_sides.png deleted file mode 100644 index 11eba019c..000000000 Binary files a/games/default/files/bluestone/mesecons_walllever/textures/jeija_wall_lever_sides.png and /dev/null differ diff --git a/games/default/files/bluestone/mesecons_walllever/textures/jeija_wall_lever_tb.png b/games/default/files/bluestone/mesecons_walllever/textures/jeija_wall_lever_tb.png deleted file mode 100644 index cbc255ca7..000000000 Binary files a/games/default/files/bluestone/mesecons_walllever/textures/jeija_wall_lever_tb.png and /dev/null differ diff --git a/games/default/files/bluestone/mesecons_walllever/textures/jeija_wall_lever_top.png b/games/default/files/bluestone/mesecons_walllever/textures/jeija_wall_lever_top.png deleted file mode 100644 index 0452b67b3..000000000 Binary files a/games/default/files/bluestone/mesecons_walllever/textures/jeija_wall_lever_top.png and /dev/null differ diff --git a/games/default/files/bluestone/mesecons_wires/depends.txt b/games/default/files/bluestone/mesecons_wires/depends.txt deleted file mode 100644 index acaa92412..000000000 --- a/games/default/files/bluestone/mesecons_wires/depends.txt +++ /dev/null @@ -1 +0,0 @@ -mesecons diff --git a/games/default/files/bluestone/mesecons_wires/init.lua b/games/default/files/bluestone/mesecons_wires/init.lua deleted file mode 100644 index 3732b7435..000000000 --- a/games/default/files/bluestone/mesecons_wires/init.lua +++ /dev/null @@ -1,237 +0,0 @@ --- naming scheme: wire:(xp)(zp)(xm)(zm)(xpyp)(zpyp)(xmyp)(zmyp)_on/off --- where x= x direction, z= z direction, y= y direction, p = +1, m = -1, e.g. xpym = {x=1, y=-1, z=0} --- The (xp)/(zpyp)/.. statements shall be replaced by either 0 or 1 --- Where 0 means the wire has no visual connection to that direction and --- 1 means that the wire visually connects to that other node. - --- ####################### --- ## Update wire looks ## --- ####################### - --- self_pos = pos of any mesecon node, from_pos = pos of conductor to getconnect for -local wire_getconnect = function (from_pos, self_pos) - local node = minetest.get_node(self_pos) - if minetest.registered_nodes[node.name] - and minetest.registered_nodes[node.name].mesecons then - -- rules of node to possibly connect to - local rules = {} - if (minetest.registered_nodes[node.name].mesecon_wire) then - rules = mesecon.rules.default - else - rules = mesecon.get_any_rules(node) - end - - for _, r in ipairs(mesecon.flattenrules(rules)) do - if (vector.equals(vector.add(self_pos, r), from_pos)) then - return true - end - end - end - return false -end - --- Update this node -local wire_updateconnect = function (pos) - local connections = {} - - for _, r in ipairs(mesecon.rules.default) do - if wire_getconnect(pos, vector.add(pos, r)) then - table.insert(connections, r) - end - end - - local nid = {} - for _, vec in ipairs(connections) do - -- flat component - if vec.x == 1 then nid[0] = "1" end - if vec.z == 1 then nid[1] = "1" end - if vec.x == -1 then nid[2] = "1" end - if vec.z == -1 then nid[3] = "1" end - - -- slopy component - if vec.y == 1 then - if vec.x == 1 then nid[4] = "1" end - if vec.z == 1 then nid[5] = "1" end - if vec.x == -1 then nid[6] = "1" end - if vec.z == -1 then nid[7] = "1" end - end - end - - local nodeid = (nid[0] or "0")..(nid[1] or "0")..(nid[2] or "0")..(nid[3] or "0") - ..(nid[4] or "0")..(nid[5] or "0")..(nid[6] or "0")..(nid[7] or "0") - - local state_suffix = string.find(minetest.get_node(pos).name, "_off") and "_off" or "_on" - minetest.set_node(pos, {name = "mesecons:wire_"..nodeid..state_suffix}) -end - -local update_on_place_dig = function (pos, node) - -- Update placed node (get_node again as it may have been dug) - local nn = minetest.get_node(pos) - if (minetest.registered_nodes[nn.name]) - and (minetest.registered_nodes[nn.name].mesecon_wire) then - wire_updateconnect(pos) - end - - -- Update nodes around it - local rules = {} - if minetest.registered_nodes[node.name] - and minetest.registered_nodes[node.name].mesecon_wire then - rules = mesecon.rules.default - else - rules = mesecon.get_any_rules(node) - end - if (not rules) then return end - - for _, r in ipairs(mesecon.flattenrules(rules)) do - local np = vector.add(pos, r) - if minetest.registered_nodes[minetest.get_node(np).name] - and minetest.registered_nodes[minetest.get_node(np).name].mesecon_wire then - wire_updateconnect(np) - end - end -end - -mesecon.register_autoconnect_hook("wire", update_on_place_dig) - --- ############################ --- ## Wire node registration ## --- ############################ --- Nodeboxes: -local box_center = {-1/16, -.5, -1/16, 1/16, -.5+1/16, 1/16} -local box_bump1 = { -2/16, -8/16, -2/16, 2/16, -13/32, 2/16 } - -local nbox_nid = -{ - [0] = {1/16, -.5, -1/16, 8/16, -.5+1/16, 1/16}, -- x positive - [1] = {-1/16, -.5, 1/16, 1/16, -.5+1/16, 8/16}, -- z positive - [2] = {-8/16, -.5, -1/16, -1/16, -.5+1/16, 1/16}, -- x negative - [3] = {-1/16, -.5, -8/16, 1/16, -.5+1/16, -1/16}, -- z negative - - [4] = {.5-1/16, -.5+1/16, -1/16, .5, .4999+1/16, 1/16}, -- x positive up - [5] = {-1/16, -.5+1/16, .5-1/16, 1/16, .4999+1/16, .5}, -- z positive up - [6] = {-.5, -.5+1/16, -1/16, -.5+1/16, .4999+1/16, 1/16}, -- x negative up - [7] = {-1/16, -.5+1/16, -.5, 1/16, .4999+1/16, -.5+1/16} -- z negative up -} - -local tiles_off = { "mesecons_wire_off.png" } -local tiles_on = { "mesecons_wire_on.png" } - -local selectionbox = -{ - type = "fixed", - fixed = {-.5, -.5, -.5, .5, -.5+4/16, .5} -} - --- go to the next nodeid (ex.: 01000011 --> 01000100) -local nid_inc = function() end -nid_inc = function (nid) - local i = 0 - while nid[i-1] ~= 1 do - nid[i] = (nid[i] ~= 1) and 1 or 0 - i = i + 1 - end - - -- BUT: Skip impossible nodeids: - if ((nid[0] == 0 and nid[4] == 1) or (nid[1] == 0 and nid[5] == 1) - or (nid[2] == 0 and nid[6] == 1) or (nid[3] == 0 and nid[7] == 1)) then - return nid_inc(nid) - end - - return i <= 8 -end - -local function register_wires() - local nid = {} - while true do - -- Create group specifiction and nodeid string (see note above for details) - local nodeid = (nid[0] or "0")..(nid[1] or "0")..(nid[2] or "0")..(nid[3] or "0") - ..(nid[4] or "0")..(nid[5] or "0")..(nid[6] or "0")..(nid[7] or "0") - - -- Calculate nodebox - local nodebox = {type = "fixed", fixed={box_center}} - for i=0,7 do - if nid[i] == 1 then - table.insert(nodebox.fixed, nbox_nid[i]) - end - end - - -- Add bump to nodebox if curved - if (nid[0] == 1 and nid[1] == 1) or (nid[1] == 1 and nid[2] == 1) - or (nid[2] == 1 and nid[3] == 1) or (nid[3] == 1 and nid[0] == 1) then - table.insert(nodebox.fixed, box_bump1) - end - - -- If nothing to connect to, still make a nodebox of a straight wire - if nodeid == "00000000" then - nodebox.fixed = {-8/16, -.5, -1/16, 8/16, -.5+1/16, 1/16} - end - - local rules = {} - if (nid[0] == 1) then table.insert(rules, vector.new( 1, 0, 0)) end - if (nid[1] == 1) then table.insert(rules, vector.new( 0, 0, 1)) end - if (nid[2] == 1) then table.insert(rules, vector.new(-1, 0, 0)) end - if (nid[3] == 1) then table.insert(rules, vector.new( 0, 0, -1)) end - - if (nid[0] == 1) then table.insert(rules, vector.new( 1, -1, 0)) end - if (nid[1] == 1) then table.insert(rules, vector.new( 0, -1, 1)) end - if (nid[2] == 1) then table.insert(rules, vector.new(-1, -1, 0)) end - if (nid[3] == 1) then table.insert(rules, vector.new( 0, -1, -1)) end - - if (nid[4] == 1) then table.insert(rules, vector.new( 1, 1, 0)) end - if (nid[5] == 1) then table.insert(rules, vector.new( 0, 1, 1)) end - if (nid[6] == 1) then table.insert(rules, vector.new(-1, 1, 0)) end - if (nid[7] == 1) then table.insert(rules, vector.new( 0, 1, -1)) end - - local meseconspec_off = { conductor = { - rules = rules, - state = mesecon.state.off, - onstate = "mesecons:wire_"..nodeid.."_on" - }} - - local meseconspec_on = { conductor = { - rules = rules, - state = mesecon.state.on, - offstate = "mesecons:wire_"..nodeid.."_off" - }} - - local groups_on = {dig_immediate = 3, mesecon_conductor_craftable = 1, - not_in_creative_inventory = 1} - local groups_off = {dig_immediate = 3, mesecon_conductor_craftable = 1} - if nodeid ~= "00000000" then - groups_off["not_in_creative_inventory"] = 1 - end - - mesecon.register_node(":mesecons:wire_"..nodeid, { - description = "Bluestone", - drawtype = "nodebox", - inventory_image = "bluestone_dust.png", - wield_image = "bluestone_dust.png", - paramtype = "light", - paramtype2 = "facedir", - is_ground_content = false, - sunlight_propagates = true, - selection_box = selectionbox, - node_box = nodebox, - walkable = false, - drop = "mesecons:wire_00000000_off", - mesecon_wire = true, - sounds = default.node_sound_defaults(), - on_rotate = false, - }, {tiles = tiles_off, mesecons = meseconspec_off, groups = groups_off}, - {tiles = tiles_on, mesecons = meseconspec_on, groups = groups_on}) - - if (nid_inc(nid) == false) then return end - end -end -register_wires() - --- ############## --- ## Crafting ## --- ############## - -minetest.register_craft({ - type = "cooking", - output = "mesecons:wire_00000000_off 8", - recipe = "default:stone_with_bluestone", -}) - diff --git a/games/default/files/bluestone/mesecons_wires/textures/bluestone_dust.png b/games/default/files/bluestone/mesecons_wires/textures/bluestone_dust.png deleted file mode 100644 index c90e4e40d..000000000 Binary files a/games/default/files/bluestone/mesecons_wires/textures/bluestone_dust.png and /dev/null differ diff --git a/games/default/files/bluestone/mesecons_wires/textures/mesecons_wire_off.png b/games/default/files/bluestone/mesecons_wires/textures/mesecons_wire_off.png deleted file mode 100644 index 0e392c166..000000000 Binary files a/games/default/files/bluestone/mesecons_wires/textures/mesecons_wire_off.png and /dev/null differ diff --git a/games/default/files/bluestone/mesecons_wires/textures/mesecons_wire_on.png b/games/default/files/bluestone/mesecons_wires/textures/mesecons_wire_on.png deleted file mode 100644 index a09a55ac4..000000000 Binary files a/games/default/files/bluestone/mesecons_wires/textures/mesecons_wire_on.png and /dev/null differ diff --git a/games/default/files/bluestone/modpack.txt b/games/default/files/bluestone/modpack.txt deleted file mode 100644 index 33d91f571..000000000 --- a/games/default/files/bluestone/modpack.txt +++ /dev/null @@ -1 +0,0 @@ -The presence of this file indicates that the current folder is a modpack. \ No newline at end of file diff --git a/games/default/files/boats/README.txt b/games/default/files/boats/README.txt deleted file mode 100644 index adc811f73..000000000 --- a/games/default/files/boats/README.txt +++ /dev/null @@ -1,21 +0,0 @@ -MultiCraft Game mod: boats -======================== -See license.txt for license information. - -Authors of source code ----------------------- -Originally by PilzAdam (MIT) -Various Minetest developers and contributors (MIT) - - -Authors of model: ------------------------ -Model: thetoon and Zeg9, -modified by PavelS(SokolovPavel) (CC BY-SA 3.0), - -changed by TenPlus1 to add some new features - - boat is destroyed when crashing at speed (drops 3 wood) - - boats drop after 10 seconds if no driver - - boats can be damaged by mobs attacking player - - Improve physics of boat by implementing drag force (thanks gnag65) - - nil player check functions by misterskullz diff --git a/games/default/files/boats/init.lua b/games/default/files/boats/init.lua deleted file mode 100644 index 0091a2550..000000000 --- a/games/default/files/boats/init.lua +++ /dev/null @@ -1,348 +0,0 @@ --- --- Helper functions --- - -local function is_water(pos, nodename) - local nn = nodename or minetest.get_node(pos).name - return minetest.get_item_group(nn, "water") ~= 0, nn -end - - -local function get_sign(i) - if i == 0 then - return 0 - else - return i / math.abs(i) - end -end - - -local function get_velocity(v, yaw, y) - local x = -math.sin(yaw) * v - local z = math.cos(yaw) * v - return {x = x, y = y, z = z} -end - - -local function get_v(v) - return math.sqrt(v.x ^ 2 + v.z ^ 2) -end - -local function after_detach(name, pos) - local player = minetest.get_player_by_name(name) - if player then - player:set_pos(pos) - end -end - - -local function after_attach(name) - local player = minetest.get_player_by_name(name) - if player then - player_api.set_animation(player, "sit" , 30) - end -end - - -local function after_remove(object) - if object then - object:remove() - end -end - - --- --- Boat entity --- - -local boat = { - physical = true, - collisionbox = {-0.5, -0.4, -0.5, 0.5, 0.3, 0.5}, - visual = "mesh", - mesh = "boat.x", - textures = {"default_acacia_wood.png"}, - driver = nil, - v = 0, - last_v = 0, - removed = false, - auto = false -} - - -function boat.on_rightclick(self, clicker) - if not clicker or not clicker:is_player() then - return - end - local name = clicker:get_player_name() - if self.driver and name == self.driver then - self.driver = nil - self.auto = false - clicker:set_detach() - player_api.player_attached[name] = false - player_api.set_animation(clicker, "stand" , 30) - local pos = clicker:get_pos() - pos = {x = pos.x, y = pos.y + 0.2, z = pos.z} - minetest.after(0.1, after_detach, name, pos) - elseif not self.driver then - local attach = clicker:get_attach() - if attach and attach:get_luaentity() then - local luaentity = attach:get_luaentity() - if luaentity.driver then - luaentity.driver = nil - end - clicker:set_detach() - end - self.driver = name - clicker:set_attach(self.object, "", - {x = 0.5, y = 11, z = -3}, {x = 0, y = 0, z = 0}) - player_api.player_attached[name] = true - minetest.after(0.2, after_attach, name) - clicker:set_look_horizontal(self.object:get_yaw()) - end -end - - -function boat.on_detach_child(self, child) - self.driver = nil - self.auto = false -end - - -function boat.on_activate(self, staticdata, dtime_s) - self.object:set_armor_groups({fleshy = 100}) -- {immortal = 1} - if staticdata then - self.v = tonumber(staticdata) - end - self.last_v = self.v -end - - -function boat.get_staticdata(self) - return tostring(self.v) -end - - -function boat.on_punch(self, puncher) - if not puncher or not puncher:is_player() or self.removed then - return - end - - local name = puncher:get_player_name() - if self.driver and name == self.driver then - self.driver = nil - puncher:set_detach() - player_api.player_attached[name] = false - end - if not self.driver then - self.removed = true - local inv = puncher:get_inventory() - if not inv then - minetest.add_item(self.object:get_pos(), "boats:boat") - else - local leftover = inv:add_item("main", "boats:boat") - -- if no room in inventory add a replacement boat to the world - if not leftover:is_empty() then - minetest.add_item(self.object:get_pos(), leftover) - end - end - -- delay remove to ensure player is detached - minetest.after(0.1, after_remove, self.object) - end -end - - -function boat.on_step(self, dtime) - local drop_timer = 300 -- 5 min - if not minetest.is_singleplayer() then - drop_timer = 60 -- 1 min - end - self.count = (self.count or 0) + dtime - - -- Drop boat if the player is not on board - if self.count > drop_timer then - minetest.add_item(self.object:get_pos(), "boats:boat") - self.object:remove() - return - end - - self.v = get_v(self.object:get_velocity()) * get_sign(self.v) - if self.driver then - self.count = 0 - local driver_objref = minetest.get_player_by_name(self.driver) - if driver_objref then - local ctrl = driver_objref:get_player_control() - if ctrl.up and ctrl.down then - if not self.auto then - self.auto = true - minetest.chat_send_player(self.driver, "[boats] Cruise on") - end - elseif ctrl.down then - self.v = self.v - dtime * 2.0 - if self.auto then - self.auto = false - minetest.chat_send_player(self.driver, "[boats] Cruise off") - end - elseif ctrl.up or self.auto then - self.v = self.v + dtime * 2.0 - end - if ctrl.left then - if self.v < -0.001 then - self.object:set_yaw(self.object:get_yaw() - dtime * 0.9) - else - self.object:set_yaw(self.object:get_yaw() + dtime * 0.9) - end - elseif ctrl.right then - if self.v < -0.001 then - self.object:set_yaw(self.object:get_yaw() + dtime * 0.9) - else - self.object:set_yaw(self.object:get_yaw() - dtime * 0.9) - end - end - else - -- If driver leaves server while driving 'driver' is present - -- but driver objectref is nil. Reset boat properties. - self.driver = nil - self.auto = false - end - end - local velo = self.object:get_velocity() - if self.v == 0 and velo.x == 0 and velo.y == 0 and velo.z == 0 then - self.object:set_pos(self.object:get_pos()) - return - end - -- We need to multiple by abs to not loose sign of velocity - local drag = dtime * 0.08 * self.v * math.abs(self.v) - -- If drag is larger than velocity, then stop horizontal move. - if math.abs(self.v) <= math.abs(drag) then - self.v = 0 - else - self.v = self.v - drag - end - - local p = self.object:get_pos() - p.y = p.y - 0.5 - local new_velo - local new_acce = {x = 0, y = 0, z = 0} - local iswater, nodename = is_water(p) - if not iswater then - local nodedef = minetest.registered_nodes[nodename] - if (not nodedef) or nodedef.walkable then - self.v = 0 - new_acce = {x = 0, y = 1, z = 0} - else - new_acce = {x = 0, y = -9.8, z = 0} - end - new_velo = get_velocity(self.v, self.object:get_yaw(), - self.object:get_velocity().y) - self.object:set_pos(self.object:get_pos()) - else - p.y = p.y + 1 - if is_water(p) then - local y = self.object:get_velocity().y - if y >= 5 then - y = 5 - elseif y < 0 then - new_acce = {x = 0, y = 20, z = 0} - else - new_acce = {x = 0, y = 5, z = 0} - end - new_velo = get_velocity(self.v, self.object:get_yaw(), y) - self.object:set_pos(self.object:get_pos()) - else - new_acce = {x = 0, y = 0, z = 0} - if math.abs(self.object:get_velocity().y) < 1 then - local pos = self.object:get_pos() - pos.y = math.floor(pos.y) + 0.5 - self.object:set_pos(pos) - new_velo = get_velocity(self.v, self.object:get_yaw(), 0) - else - new_velo = get_velocity(self.v, self.object:get_yaw(), - self.object:get_velocity().y) - self.object:set_pos(self.object:get_pos()) - end - end - end - self.object:set_velocity(new_velo) - self.object:set_acceleration(new_acce) - - -- if boat comes to sudden stop then destroy boat and drop 3x wood - if (self.v2 or 0) - self.v >= 3 then - - if self.driver then ---print ("Crash! with driver", self.v2 - self.v) - local driver_objref = minetest.get_player_by_name(self.driver) - player_api.player_attached[self.driver] = false - driver_objref:set_detach() - player_api.set_animation(driver_objref, "stand" , 30) - else ---print ("Crash! no driver") - end - - minetest.add_item(self.object:get_pos(), "default:wood 3") - self.object:remove() - return - end - - self.v2 = self.v -end - - -minetest.register_entity("boats:boat", boat) - - -minetest.register_craftitem("boats:boat", { - description = "Boat", - inventory_image = "boats_inventory.png", - liquids_pointable = true, - stack_max = 1, - groups = {rail = 1, flammable = 2}, - - on_place = function(itemstack, placer, pointed_thing) - local under = pointed_thing.under - local node = minetest.get_node(under) - local udef = minetest.registered_nodes[node.name] - if udef and udef.on_rightclick and - not (placer and placer:is_player() and - placer:get_player_control().sneak) then - return udef.on_rightclick(under, node, placer, itemstack, - pointed_thing) or itemstack - end - - if pointed_thing.type ~= "node" then - return itemstack - end - if not is_water(pointed_thing.under) then - return itemstack - end - pointed_thing.under.y = pointed_thing.under.y + 0.5 - boat = minetest.add_entity(pointed_thing.under, "boats:boat") - if boat then - if placer then - boat:set_yaw(placer:get_look_horizontal()) - end - local player_name = placer and placer:get_player_name() or "" - if not (creative and creative.is_enabled_for and - creative.is_enabled_for(player_name)) or - not minetest.is_singleplayer() then - itemstack:take_item() - end - end - return itemstack - end, -}) - - -minetest.register_craft({ - output = "boats:boat", - recipe = { - {"", "", ""}, - {"group:wood", "", "group:wood"}, - {"group:wood", "group:wood", "group:wood"}, - }, -}) - -minetest.register_craft({ - type = "fuel", - recipe = "boats:boat", - burntime = 20, -}) diff --git a/games/default/files/boats/license.txt b/games/default/files/boats/license.txt deleted file mode 100644 index 0f7f89f23..000000000 --- a/games/default/files/boats/license.txt +++ /dev/null @@ -1,62 +0,0 @@ -License of source code ----------------------- - -The MIT License (MIT) -Copyright (C) 2012-2016 PilzAdam -Copyright (C) 2012-2016 Various Minetest developers and contributors - -Permission is hereby granted, free of charge, to any person obtaining a copy of this -software and associated documentation files (the "Software"), to deal in the Software -without restriction, including without limitation the rights to use, copy, modify, merge, -publish, distribute, sublicense, and/or sell copies of the Software, and to permit -persons to whom the Software is furnished to do so, subject to the following conditions: - -The above copyright notice and this permission notice shall be included in all copies or -substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, -INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR -PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE -FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR -OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER -DEALINGS IN THE SOFTWARE. - -For more details: -https://opensource.org/licenses/MIT - - -Licenses of model --------------------------------------- - -Attribution-ShareAlike 3.0 Unported (CC BY-SA 3.0) -Copyright (C) 2012-2016 Zeg9 -Copyright (C) 2012-2016 thetoon -Copyright (C) 2012-2016 PavelS(SokolovPavel) - -You are free to: -Share — copy and redistribute the material in any medium or format. -Adapt — remix, transform, and build upon the material for any purpose, even commercially. -The licensor cannot revoke these freedoms as long as you follow the license terms. - -Under the following terms: - -Attribution — You must give appropriate credit, provide a link to the license, and -indicate if changes were made. You may do so in any reasonable manner, but not in any way -that suggests the licensor endorses you or your use. - -ShareAlike — If you remix, transform, or build upon the material, you must distribute -your contributions under the same license as the original. - -No additional restrictions — You may not apply legal terms or technological measures that -legally restrict others from doing anything the license permits. - -Notices: - -You do not have to comply with the license for elements of the material in the public -domain or where your use is permitted by an applicable exception or limitation. -No warranties are given. The license may not give you all of the permissions necessary -for your intended use. For example, other rights such as publicity, privacy, or moral -rights may limit how you use the material. - -For more details: -http://creativecommons.org/licenses/by-sa/3.0/ diff --git a/games/default/files/boats/models/boat.x b/games/default/files/boats/models/boat.x deleted file mode 100644 index 95de32f61..000000000 --- a/games/default/files/boats/models/boat.x +++ /dev/null @@ -1,689 +0,0 @@ -xof 0303txt 0032 - -Frame Root { - FrameTransformMatrix { - 1.000000, 0.000000, 0.000000, 0.000000, - 0.000000,-0.000000, 1.000000, 0.000000, - 0.000000, 1.000000, 0.000000, 0.000000, - 0.000000, 0.000000, 0.000000, 1.000000;; - } - Frame Cube_000 { - FrameTransformMatrix { - 1.000000, 0.000000, 0.000000, 0.000000, - 0.000000, 1.000000, 0.000000, 0.000000, - 0.000000, 0.000000, 1.000000, 0.000000, - 0.000000, 0.000000, 0.000000, 1.000000;; - } - Mesh { // Cube_000 mesh - 240; - 6.000000; 3.999999; 2.376923;, - 5.999998;-8.000001; 2.376923;, - 5.999998;-8.000001; 4.376923;, - 6.000001; 3.999999; 4.376923;, - -2.000000; 8.000000; 2.376923;, - 2.000000; 8.000000; 2.376923;, - 2.000001; 8.000000; 4.376923;, - -1.999999; 8.000000; 4.376923;, - -6.000000; 4.000000; 4.376923;, - -6.000001;-8.000000; 4.376923;, - -6.000001;-7.999999; 2.376923;, - -6.000000; 4.000000; 2.376923;, - -3.999999; 6.000001; 2.376923;, - -1.999999; 6.000000; 2.376923;, - -2.000001;-8.000002; 2.376923;, - -4.000001;-8.000000; 2.376923;, - -2.000000; 4.000000;-1.623077;, - -2.000001;-7.999999;-1.623077;, - 1.999999;-8.000001;-1.623077;, - 2.000000; 4.000000;-1.623077;, - -2.000000; 4.000000; 0.376923;, - 2.000000; 3.999999; 0.376923;, - 1.999999;-8.000001; 0.376923;, - -2.000001;-8.000000; 0.376923;, - -2.000000; 4.000000;-1.623077;, - 2.000000; 4.000000;-1.623077;, - 2.000000; 3.999999; 0.376923;, - -2.000000; 4.000000; 0.376923;, - 2.000000; 4.000000;-1.623077;, - 1.999999;-8.000001;-1.623077;, - 1.999999;-8.000001; 0.376923;, - 2.000000; 3.999999; 0.376923;, - 1.999999;-8.000001;-1.623077;, - -2.000001;-7.999999;-1.623077;, - -2.000001;-8.000000; 0.376923;, - 1.999999;-8.000001; 0.376923;, - -2.000000; 4.000000; 0.376923;, - -2.000001;-8.000000; 0.376923;, - -2.000001;-7.999999;-1.623077;, - -2.000000; 4.000000;-1.623077;, - -4.000001;-8.000000; 0.376923;, - -4.000001;-10.000000; 0.376923;, - 4.000000;-10.000000; 0.376923;, - 3.999999;-8.000000; 0.376923;, - -4.000000;-7.999999; 4.376923;, - 4.000000;-8.000001; 4.376923;, - 3.999999;-10.000001; 4.376923;, - -4.000001;-10.000000; 4.376923;, - -4.000001;-8.000000; 0.376923;, - 3.999999;-8.000000; 0.376923;, - 4.000000;-8.000001; 4.376923;, - -4.000000;-7.999999; 4.376923;, - 3.999999;-8.000000; 0.376923;, - 4.000000;-10.000000; 0.376923;, - 3.999999;-10.000001; 4.376923;, - 4.000000;-8.000001; 4.376923;, - 4.000000;-10.000000; 0.376923;, - -4.000001;-10.000000; 0.376923;, - -4.000001;-10.000000; 4.376923;, - 3.999999;-10.000001; 4.376923;, - -4.000000;-7.999999; 4.376923;, - -4.000001;-10.000000; 4.376923;, - -4.000001;-10.000000; 0.376923;, - -4.000001;-8.000000; 0.376923;, - 4.000000; 4.000000; 2.376923;, - 3.999999;-8.000001; 2.376923;, - 5.999998;-8.000001; 2.376923;, - 6.000000; 3.999999; 2.376923;, - 4.000001; 4.000000; 4.376923;, - 6.000001; 3.999999; 4.376923;, - 5.999998;-8.000001; 4.376923;, - 4.000000;-8.000001; 4.376923;, - 4.000000; 4.000000; 2.376923;, - 6.000000; 3.999999; 2.376923;, - 6.000001; 3.999999; 4.376923;, - 4.000001; 4.000000; 4.376923;, - 5.999998;-8.000001; 2.376923;, - 3.999999;-8.000001; 2.376923;, - 4.000000;-8.000001; 4.376923;, - 5.999998;-8.000001; 4.376923;, - 4.000001; 4.000000; 4.376923;, - 4.000000;-8.000001; 4.376923;, - 3.999999;-8.000001; 2.376923;, - 4.000000; 4.000000; 2.376923;, - 2.000000; 6.000000; 0.376923;, - 1.999999;-8.000001; 0.376923;, - 3.999999;-8.000000; 0.376923;, - 4.000000; 6.000000; 0.376923;, - 2.000001; 6.000000; 2.376923;, - 4.000001; 5.999999; 2.376923;, - 3.999999;-8.000001; 2.376923;, - 1.999999;-8.000000; 2.376923;, - 2.000000; 6.000000; 0.376923;, - 4.000000; 6.000000; 0.376923;, - 4.000001; 5.999999; 2.376923;, - 2.000001; 6.000000; 2.376923;, - 4.000000; 6.000000; 0.376923;, - 3.999999;-8.000000; 0.376923;, - 3.999999;-8.000001; 2.376923;, - 4.000001; 5.999999; 2.376923;, - 3.999999;-8.000000; 0.376923;, - 1.999999;-8.000001; 0.376923;, - 1.999999;-8.000000; 2.376923;, - 3.999999;-8.000001; 2.376923;, - 2.000001; 6.000000; 2.376923;, - 1.999999;-8.000000; 2.376923;, - 1.999999;-8.000001; 0.376923;, - 2.000000; 6.000000; 0.376923;, - 2.000001; 6.000000; 2.376923;, - 2.000000; 4.000000; 2.376923;, - 4.000000; 4.000000; 2.376923;, - 4.000001; 5.999999; 2.376923;, - 2.000001; 6.000000; 4.376923;, - 4.000001; 5.999999; 4.376923;, - 4.000001; 4.000000; 4.376923;, - 2.000000; 4.000000; 4.376923;, - 2.000001; 6.000000; 2.376923;, - 4.000001; 5.999999; 2.376923;, - 4.000001; 5.999999; 4.376923;, - 2.000001; 6.000000; 4.376923;, - 4.000001; 5.999999; 2.376923;, - 4.000000; 4.000000; 2.376923;, - 4.000001; 4.000000; 4.376923;, - 4.000001; 5.999999; 4.376923;, - 4.000000; 4.000000; 2.376923;, - 2.000000; 4.000000; 2.376923;, - 2.000000; 4.000000; 4.376923;, - 4.000001; 4.000000; 4.376923;, - 2.000001; 6.000000; 4.376923;, - 2.000000; 4.000000; 4.376923;, - 2.000000; 4.000000; 2.376923;, - 2.000001; 6.000000; 2.376923;, - -3.999999; 6.000001; 2.376923;, - -4.000000; 4.000000; 2.376923;, - -2.000000; 4.000000; 2.376923;, - -1.999999; 6.000000; 2.376923;, - -3.999999; 6.000001; 4.376923;, - -1.999999; 6.000000; 4.376923;, - -2.000000; 4.000000; 4.376923;, - -4.000000; 3.999999; 4.376923;, - -3.999999; 6.000001; 2.376923;, - -1.999999; 6.000000; 2.376923;, - -1.999999; 6.000000; 4.376923;, - -3.999999; 6.000001; 4.376923;, - -1.999999; 6.000000; 2.376923;, - -2.000000; 4.000000; 2.376923;, - -2.000000; 4.000000; 4.376923;, - -1.999999; 6.000000; 4.376923;, - -2.000000; 4.000000; 2.376923;, - -4.000000; 4.000000; 2.376923;, - -4.000000; 3.999999; 4.376923;, - -2.000000; 4.000000; 4.376923;, - -3.999999; 6.000001; 4.376923;, - -4.000000; 3.999999; 4.376923;, - -4.000000; 4.000000; 2.376923;, - -3.999999; 6.000001; 2.376923;, - -2.000000; 8.000000; 2.376923;, - -1.999999; 6.000000; 2.376923;, - 2.000001; 6.000000; 2.376923;, - 2.000000; 8.000000; 2.376923;, - -1.999999; 8.000000; 4.376923;, - 2.000001; 8.000000; 4.376923;, - 2.000001; 6.000000; 4.376923;, - -1.999999; 6.000000; 4.376923;, - 2.000000; 8.000000; 2.376923;, - 2.000001; 6.000000; 2.376923;, - 2.000001; 6.000000; 4.376923;, - 2.000001; 8.000000; 4.376923;, - 2.000001; 6.000000; 2.376923;, - -1.999999; 6.000000; 2.376923;, - -1.999999; 6.000000; 4.376923;, - 2.000001; 6.000000; 4.376923;, - -1.999999; 8.000000; 4.376923;, - -1.999999; 6.000000; 4.376923;, - -1.999999; 6.000000; 2.376923;, - -2.000000; 8.000000; 2.376923;, - -2.000000; 6.000000; 0.376923;, - -2.000000; 4.000000; 0.376923;, - 2.000000; 3.999999; 0.376923;, - 2.000000; 6.000000; 0.376923;, - -1.999999; 6.000000; 2.376923;, - 2.000001; 6.000000; 2.376923;, - 2.000000; 4.000000; 2.376923;, - -2.000000; 4.000000; 2.376923;, - -2.000000; 6.000000; 0.376923;, - 2.000000; 6.000000; 0.376923;, - 2.000001; 6.000000; 2.376923;, - -1.999999; 6.000000; 2.376923;, - 2.000000; 6.000000; 0.376923;, - 2.000000; 3.999999; 0.376923;, - 2.000000; 4.000000; 2.376923;, - 2.000001; 6.000000; 2.376923;, - 2.000000; 3.999999; 0.376923;, - -2.000000; 4.000000; 0.376923;, - -2.000000; 4.000000; 2.376923;, - 2.000000; 4.000000; 2.376923;, - -1.999999; 6.000000; 2.376923;, - -2.000000; 4.000000; 2.376923;, - -2.000000; 4.000000; 0.376923;, - -2.000000; 6.000000; 0.376923;, - -6.000000; 4.000000; 2.376923;, - -6.000001;-7.999999; 2.376923;, - -4.000001;-8.000000; 2.376923;, - -4.000000; 4.000000; 2.376923;, - -6.000000; 4.000000; 4.376923;, - -4.000000; 3.999999; 4.376923;, - -4.000000;-7.999999; 4.376923;, - -6.000001;-8.000000; 4.376923;, - -6.000000; 4.000000; 2.376923;, - -4.000000; 4.000000; 2.376923;, - -4.000000; 3.999999; 4.376923;, - -6.000000; 4.000000; 4.376923;, - -4.000000; 4.000000; 2.376923;, - -4.000001;-8.000000; 2.376923;, - -4.000000;-7.999999; 4.376923;, - -4.000000; 3.999999; 4.376923;, - -4.000001;-8.000000; 2.376923;, - -6.000001;-7.999999; 2.376923;, - -6.000001;-8.000000; 4.376923;, - -4.000000;-7.999999; 4.376923;, - -4.000000; 6.000001; 0.376923;, - -4.000001;-8.000000; 0.376923;, - -2.000001;-8.000000; 0.376923;, - -2.000000; 6.000000; 0.376923;, - -4.000000; 6.000001; 0.376923;, - -2.000000; 6.000000; 0.376923;, - -1.999999; 6.000000; 2.376923;, - -3.999999; 6.000001; 2.376923;, - -2.000000; 6.000000; 0.376923;, - -2.000001;-8.000000; 0.376923;, - -2.000001;-8.000002; 2.376923;, - -1.999999; 6.000000; 2.376923;, - -2.000001;-8.000000; 0.376923;, - -4.000001;-8.000000; 0.376923;, - -4.000001;-8.000000; 2.376923;, - -2.000001;-8.000002; 2.376923;, - -3.999999; 6.000001; 2.376923;, - -4.000001;-8.000000; 2.376923;, - -4.000001;-8.000000; 0.376923;, - -4.000000; 6.000001; 0.376923;; - 60; - 4;0,1,2,3;, - 4;4,5,6,7;, - 4;8,9,10,11;, - 4;12,13,14,15;, - 4;16,17,18,19;, - 4;20,21,22,23;, - 4;24,25,26,27;, - 4;28,29,30,31;, - 4;32,33,34,35;, - 4;36,37,38,39;, - 4;40,41,42,43;, - 4;44,45,46,47;, - 4;48,49,50,51;, - 4;52,53,54,55;, - 4;56,57,58,59;, - 4;60,61,62,63;, - 4;64,65,66,67;, - 4;68,69,70,71;, - 4;72,73,74,75;, - 4;76,77,78,79;, - 4;80,81,82,83;, - 4;84,85,86,87;, - 4;88,89,90,91;, - 4;92,93,94,95;, - 4;96,97,98,99;, - 4;100,101,102,103;, - 4;104,105,106,107;, - 4;108,109,110,111;, - 4;112,113,114,115;, - 4;116,117,118,119;, - 4;120,121,122,123;, - 4;124,125,126,127;, - 4;128,129,130,131;, - 4;132,133,134,135;, - 4;136,137,138,139;, - 4;140,141,142,143;, - 4;144,145,146,147;, - 4;148,149,150,151;, - 4;152,153,154,155;, - 4;156,157,158,159;, - 4;160,161,162,163;, - 4;164,165,166,167;, - 4;168,169,170,171;, - 4;172,173,174,175;, - 4;176,177,178,179;, - 4;180,181,182,183;, - 4;184,185,186,187;, - 4;188,189,190,191;, - 4;192,193,194,195;, - 4;196,197,198,199;, - 4;200,201,202,203;, - 4;204,205,206,207;, - 4;208,209,210,211;, - 4;212,213,214,215;, - 4;216,217,218,219;, - 4;220,221,222,223;, - 4;224,225,226,227;, - 4;228,229,230,231;, - 4;232,233,234,235;, - 4;236,237,238,239;; - MeshNormals { // Cube_000 normals - 60; - -1.000000; 0.000000; 0.000000;, - 0.000000;-1.000000;-0.000000;, - 1.000000;-0.000000; 0.000000;, - 0.000000; 0.000000;-1.000000;, - 0.000000; 0.000000; 1.000000;, - 0.000000; 0.000000;-1.000000;, - -0.000000;-1.000000;-0.000000;, - -1.000000; 0.000000; 0.000000;, - 0.000000; 1.000000; 0.000000;, - 1.000000;-0.000000;-0.000000;, - 0.000000; 0.000000; 1.000000;, - 0.000000; 0.000000;-1.000000;, - -0.000000;-1.000000;-0.000000;, - -1.000000; 0.000000;-0.000000;, - 0.000000; 1.000000; 0.000000;, - 1.000000;-0.000000;-0.000000;, - 0.000000; 0.000000; 1.000000;, - 0.000000; 0.000000;-1.000000;, - -0.000000;-1.000000;-0.000000;, - 0.000000; 1.000000; 0.000000;, - 1.000000;-0.000000;-0.000000;, - 0.000000; 0.000000; 1.000000;, - 0.000000; 0.000000;-1.000000;, - -0.000000;-1.000000;-0.000001;, - -1.000000; 0.000000; 0.000000;, - 0.000000; 1.000000; 0.000000;, - 1.000000;-0.000000;-0.000000;, - 0.000000; 0.000000; 1.000000;, - 0.000000; 0.000000;-1.000000;, - -0.000000;-1.000000; 0.000000;, - -1.000000; 0.000000; 0.000000;, - 0.000000; 1.000000; 0.000000;, - 1.000000;-0.000001;-0.000000;, - 0.000000; 0.000000; 1.000000;, - 0.000000; 0.000000;-1.000000;, - -0.000001;-1.000000; 0.000000;, - -1.000000; 0.000001;-0.000000;, - -0.000000; 1.000000; 0.000000;, - 1.000000;-0.000000;-0.000000;, - 0.000000; 0.000000; 1.000000;, - 0.000000; 0.000000;-1.000000;, - -1.000000;-0.000000; 0.000000;, - -0.000000; 1.000000;-0.000000;, - 1.000000; 0.000000;-0.000000;, - 0.000000; 0.000000; 1.000000;, - 0.000000; 0.000000;-1.000000;, - 0.000000;-1.000000;-0.000000;, - -1.000000; 0.000000; 0.000000;, - 0.000000; 1.000000;-0.000000;, - 1.000000;-0.000000;-0.000000;, - 0.000000; 0.000000; 1.000000;, - 0.000000; 0.000000;-1.000000;, - -0.000000;-1.000000;-0.000000;, - -1.000000; 0.000000; 0.000000;, - 0.000000; 1.000000; 0.000000;, - 0.000000; 0.000000; 1.000000;, - -0.000000;-1.000000;-0.000000;, - -1.000000; 0.000000; 0.000000;, - 0.000001; 1.000000; 0.000001;, - 1.000000;-0.000000;-0.000000;; - 60; - 4;0,0,0,0;, - 4;1,1,1,1;, - 4;2,2,2,2;, - 4;3,3,3,3;, - 4;4,4,4,4;, - 4;5,5,5,5;, - 4;6,6,6,6;, - 4;7,7,7,7;, - 4;8,8,8,8;, - 4;9,9,9,9;, - 4;10,10,10,10;, - 4;11,11,11,11;, - 4;12,12,12,12;, - 4;13,13,13,13;, - 4;14,14,14,14;, - 4;15,15,15,15;, - 4;16,16,16,16;, - 4;17,17,17,17;, - 4;18,18,18,18;, - 4;19,19,19,19;, - 4;20,20,20,20;, - 4;21,21,21,21;, - 4;22,22,22,22;, - 4;23,23,23,23;, - 4;24,24,24,24;, - 4;25,25,25,25;, - 4;26,26,26,26;, - 4;27,27,27,27;, - 4;28,28,28,28;, - 4;29,29,29,29;, - 4;30,30,30,30;, - 4;31,31,31,31;, - 4;32,32,32,32;, - 4;33,33,33,33;, - 4;34,34,34,34;, - 4;35,35,35,35;, - 4;36,36,36,36;, - 4;37,37,37,37;, - 4;38,38,38,38;, - 4;39,39,39,39;, - 4;40,40,40,40;, - 4;41,41,41,41;, - 4;42,42,42,42;, - 4;43,43,43,43;, - 4;44,44,44,44;, - 4;45,45,45,45;, - 4;46,46,46,46;, - 4;47,47,47,47;, - 4;48,48,48,48;, - 4;49,49,49,49;, - 4;50,50,50,50;, - 4;51,51,51,51;, - 4;52,52,52,52;, - 4;53,53,53,53;, - 4;54,54,54,54;, - 4;55,55,55,55;, - 4;56,56,56,56;, - 4;57,57,57,57;, - 4;58,58,58,58;, - 4;59,59,59,59;; - } // End of Cube_000 normals - MeshTextureCoords { // Cube_000 UV coordinates - 240; - 6.000000; 1.000000;, - 0.000000; 1.000000;, - 0.000000; 0.000000;, - 6.000000; 0.000000;, - 2.000000; 1.000000;, - 0.000000; 1.000000;, - 0.000000; 0.000000;, - 2.000000; 0.000000;, - 6.000000; 1.000000;, - 0.000000; 1.000000;, - 0.000000; 0.000000;, - 6.000000; 0.000000;, - 7.000000; 0.000000;, - 7.000000; 1.000000;, - 0.000000; 1.000000;, - 0.000000; 0.000000;, - 5.000000; 1.000000;, - 0.000000; 1.000000;, - 0.000000;-1.000000;, - 5.000000;-1.000000;, - 6.000000;-1.000000;, - 6.000000; 1.000000;, - 0.000000; 1.000000;, - 0.000000;-1.000000;, - 2.000000; 1.000000;, - 0.000000; 1.000000;, - 0.000000; 0.000000;, - 2.000000; 0.000000;, - 6.000000; 1.000000;, - 0.000000; 1.000000;, - 0.000000; 0.000000;, - 6.000000; 0.000000;, - 3.000000; 0.999999;, - 0.000000; 1.000000;, - 0.000000; 0.000001;, - 3.000000; 0.000000;, - 7.000000; 1.000000;, - 0.000000; 1.000000;, - 0.000000; 0.000000;, - 7.000000; 0.000000;, - 1.000000; 1.000000;, - 0.000001; 1.000000;, - 0.000000;-4.000000;, - 1.000000;-4.000000;, - 1.000000;-3.000000;, - 0.999999; 1.000000;, - 0.000000; 1.000000;, - 0.000000;-3.000000;, - 4.000000; 1.000000;, - 0.000000; 1.000000;, - 0.000000;-1.000000;, - 4.000000;-1.000000;, - 1.000000; 1.000000;, - 0.000000; 1.000000;, - 0.000000;-1.000000;, - 1.000000;-1.000000;, - 5.000000; 1.000000;, - 0.000000; 1.000000;, - 0.000000;-0.999999;, - 5.000000;-1.000000;, - 1.000000; 1.000000;, - 0.000000; 1.000000;, - 0.000000;-1.000000;, - 1.000000;-1.000000;, - 5.375000; 1.000000;, - 0.000000; 1.000000;, - 0.000000; 0.000000;, - 5.375000; 0.000000;, - 5.375000; 0.000000;, - 5.375000; 1.000000;, - 0.000000; 1.000000;, - 0.000000; 0.000000;, - 1.000000; 1.000000;, - 0.000000; 1.000000;, - 0.000000; 0.000000;, - 1.000000; 0.000000;, - 1.000000; 1.000000;, - 0.000000; 1.000000;, - 0.000000; 0.000000;, - 1.000000; 0.000000;, - 7.000000; 1.000000;, - 0.000000; 1.000000;, - 0.000000; 0.000000;, - 7.000000; 0.000000;, - 6.000000; 1.000000;, - 0.000000; 1.000000;, - 0.000000; 0.000000;, - 6.000000; 0.000000;, - 7.000000; 0.000000;, - 7.000000; 1.000000;, - 0.000000; 1.000000;, - 0.000000; 0.000000;, - 1.000000; 1.000000;, - 0.000000; 1.000000;, - 0.000000; 0.000000;, - 1.000000; 0.000000;, - 7.000000; 1.000000;, - 0.000000; 1.000000;, - 0.000000; 0.000000;, - 7.000000; 0.000000;, - 1.000000; 1.000000;, - 0.000000; 1.000000;, - 0.000000; 0.000000;, - 1.000000; 0.000000;, - 7.000000; 1.000000;, - 0.000000; 1.000000;, - 0.000000; 0.000000;, - 7.000000; 0.000000;, - 1.000000; 1.000000;, - 0.000000; 1.000000;, - 0.000000; 0.000000;, - 1.000000; 0.000000;, - 1.000000; 0.000000;, - 1.000000; 1.000000;, - 0.000000; 1.000000;, - 0.000000; 0.000000;, - 1.000000; 1.000000;, - 0.000000; 1.000000;, - 0.000000; 0.000000;, - 1.000000; 0.000000;, - 1.000000; 1.000000;, - 0.000000; 1.000000;, - 0.000000; 0.000000;, - 1.000000; 0.000000;, - 1.000000; 1.000000;, - 0.000000; 1.000000;, - 0.000000; 0.000000;, - 1.000000; 0.000000;, - 1.000000; 1.000000;, - 0.000000; 1.000000;, - 0.000000; 0.000000;, - 1.000000; 0.000000;, - 1.000000; 1.000000;, - 0.000000; 1.000000;, - 0.000000; 0.000000;, - 1.000000; 0.000000;, - 1.000000; 0.000000;, - 1.000000; 1.000000;, - 0.000000; 1.000000;, - 0.000000; 0.000000;, - 1.000000; 1.000000;, - 0.000000; 1.000000;, - 0.000000; 0.000000;, - 1.000000; 0.000000;, - 1.000000; 1.000000;, - 0.000000; 1.000000;, - 0.000000; 0.000000;, - 1.000000; 0.000000;, - 1.000000; 1.000000;, - 0.000000; 1.000000;, - 0.000000; 0.000000;, - 1.000000; 0.000000;, - 1.000000; 1.000000;, - 0.000000; 1.000000;, - 0.000000; 0.000000;, - 1.000000; 0.000000;, - 1.000000; 1.000000;, - 0.000000; 1.000000;, - 0.000000;-1.000000;, - 1.000000;-1.000000;, - 1.000000;-1.000000;, - 0.999999; 1.000000;, - 0.000000; 1.000000;, - 0.000000;-1.000000;, - 1.000000; 1.000000;, - 0.000000; 1.000000;, - 0.000000; 0.000000;, - 1.000000; 0.000000;, - 2.000000; 1.000000;, - 0.000000; 1.000000;, - 0.000000; 0.000001;, - 2.000000; 0.000000;, - 1.000000; 1.000000;, - 0.000000; 1.000000;, - 0.000000; 0.000000;, - 1.000000; 0.000000;, - 1.000000; 1.000000;, - 0.000000; 1.000000;, - 0.000000;-1.000000;, - 1.000000;-1.000000;, - 1.000000;-1.000000;, - 0.999999; 1.000000;, - 0.000000; 1.000000;, - 0.000000;-1.000000;, - 2.000000; 1.000000;, - 0.000000; 1.000000;, - 0.000000; 0.000000;, - 2.000000; 0.000000;, - 1.000000; 1.000000;, - 0.000000; 1.000000;, - 0.000000; 0.000000;, - 1.000000; 0.000000;, - 2.000000; 1.000000;, - 0.000000; 1.000000;, - 0.000000; 0.000001;, - 2.000000; 0.000000;, - 1.000000; 1.000000;, - 0.000000; 1.000000;, - 0.000000; 0.000000;, - 1.000000; 0.000000;, - 7.000000; 1.000000;, - 0.000000; 1.000000;, - 0.000000; 0.000000;, - 7.000000; 0.000000;, - 7.000000; 0.000000;, - 7.000000; 1.000000;, - 0.000000; 1.000000;, - 0.000000; 0.000000;, - 1.000000; 1.000000;, - 0.000000; 1.000000;, - 0.000000; 0.000000;, - 1.000000; 0.000000;, - 7.000000; 1.000000;, - 0.000000; 1.000000;, - 0.000000; 0.000000;, - 7.000000; 0.000000;, - 1.000000; 1.000000;, - 0.000000; 1.000000;, - 0.000000; 0.000000;, - 1.000000; 0.000000;, - 6.000000; 1.000000;, - 0.000000; 1.000000;, - 0.000000; 0.000000;, - 6.000000; 0.000000;, - 1.000000; 1.000000;, - 0.000000; 1.000000;, - 0.000000; 0.000000;, - 1.000000; 0.000000;, - 7.000000; 1.000000;, - 0.000000; 1.000000;, - 0.000000; 0.000000;, - 7.000000; 0.000000;, - 1.000000; 1.000000;, - 0.000000; 1.000000;, - 0.000000; 0.000000;, - 1.000000; 0.000000;, - 7.000000; 1.000000;, - 0.000000; 1.000000;, - 0.000000; 0.000000;, - 7.000000; 0.000000;; - } // End of Cube_000 UV coordinates - } // End of Cube_000 mesh - } // End of Cube_000 -} // End of Root diff --git a/games/default/files/boats/textures/boats_inventory.png b/games/default/files/boats/textures/boats_inventory.png deleted file mode 100644 index 3a971a0a4..000000000 Binary files a/games/default/files/boats/textures/boats_inventory.png and /dev/null differ diff --git a/games/default/files/bonusbox/init.lua b/games/default/files/bonusbox/init.lua deleted file mode 100644 index b6afdcff9..000000000 --- a/games/default/files/bonusbox/init.lua +++ /dev/null @@ -1,124 +0,0 @@ --- Format of each item: --- {item_name, minimum, maximum} - -local items_ore = { - {"default:diamond", 1, 1}, - {"default:emerald", 1, 2}, - {"default:gold_ingot", 2, 3}, - {"default:steel_ingot", 2, 4}, -} - -local items_food = { - {"default:apple", 2, 8}, - {"mobs:pork", 1, 4}, - {"mobs:meat", 1, 4}, - {"mobs:chicken_cooked", 1, 4}, -} - -local items_material = { - {"default:wood", 8, 64}, - {"default:cobble", 8, 64}, - {"default:obsidian", 2, 8}, - {"default:tree", 4, 16}, -} - -local item_spawn = function (pos, node) - local item1 = items_food[math.random(#items_food)] - item1 = item1[1] .. " " .. math.random(item1[2], item1[3]) - local item2 = items_ore[math.random(#items_ore)] - item2 = item2[1] .. " " .. math.random(item2[2], item2[3]) - local item3 = items_material[math.random(#items_material)] - item3 = item3[1] .. " " .. math.random(item3[2], item3[3]) - minetest.spawn_item({x = pos.x - 0.4, y = pos.y + 0.58, z = pos.z - 0.2}, item1) - minetest.spawn_item({x = pos.x, y = pos.y + 0.58, z = pos.z}, item2) - minetest.spawn_item({x = pos.x + 0.4, y = pos.y + 0.58, z = pos.z - 0.2}, item3) - - minetest.set_node(pos, {name = "bonusbox:chest_open", param2 = node.param2}) - minetest.set_node({x = pos.x, y = pos.y + 1, z = pos.z}, {name = "bonusbox:chest_cap", param2 = node.param2}) -end - -minetest.register_node("bonusbox:chest", { - tiles = { - "chest_top.png", - "chest_top.png^[transformFY", - "chest_side.png", - "chest_side.png^[transformFX", - "chest_back.png", - "chest_front.png" - }, - drawtype = "nodebox", - paramtype = "light", - node_box = { - type = "fixed", - fixed = { - {-0.5, -0.5, -0.5, 0.5, -0.438627, 0.187361}, -- NodeBox1 - {-0.483652, -0.441532, -0.483652, 0.483652, 0.110383, 0.172837}, -- NodeBox2 - {-0.5, 0.110383, -0.5, 0.5, 0.249814, 0.187361}, -- NodeBox3 - {-0.483652, 0.246909, -0.483652, 0.483652, 0.5, 0.169932}, -- NodeBox4 - } - }, - groups = {choppy = 2, not_in_creative_inventory = 1}, - sounds = default.node_sound_wood_defaults(), - on_rightclick = item_spawn, -}) - -minetest.register_node("bonusbox:chest_open", { - tiles = { - "chest_open_top.png", - "chest_open_bottom.png", - "chest_open_side.png", - "chest_open_side.png^[transformFX", - "chest_open_back.png", - "chest_open_front.png" - }, - drawtype = "nodebox", - paramtype = "light", - drop = "", - node_box = { - type = "fixed", - fixed = { - {-0.5, -0.5, -0.5, 0.5, -0.438627, 0.187361}, -- NodeBox1 - {-0.483652, -0.444437, -0.483652, 0.483652, 0.110383, 0.169932}, -- NodeBox2 - {-0.5, 0.110383, -0.5, 0.5, 0.188813, 0.187361}, -- NodeBox3 - {-0.5, 0.188813, 0.172837, 0.5, 0.5, 0.248362}, -- NodeBox4 - {-0.484478, 0.206242, 0.242552, 0.484478, 0.5, 0.5}, -- NodeBox5 - } - }, - groups = {choppy = 2, not_in_creative_inventory = 1}, - sounds = default.node_sound_wood_defaults(), -}) - -minetest.register_node("bonusbox:chest_cap", { - tiles = { - "chest_open_top.png", - "chest_open_bottom.png", - "chest_open_side_two.png", - "chest_open_side_two.png^[transformFX", - "chest_open_back_two.png", - "chest_open_front_two.png" - }, - drawtype = "nodebox", - paramtype = "light", - drop = "", - node_box = { - type = "fixed", - fixed = { - {-0.5, -0.5, 0.172236, 0.5, -0.128775, 0.249501}, -- NodeBox1 - {-0.485183, -0.5, 0.249501, 0.485183, -0.144871, 0.5}, -- NodeBox2 - } - }, - groups = {attached_node = 1, not_in_creative_inventory = 1}, - sounds = default.node_sound_wood_defaults(), -}) - -minetest.register_decoration({ - deco_type = "simple", - place_on = {"default:sand", "default:dirt_with_snow", "default:gravel", - "default:snowblock", "default:dirt_with_grass", "default:redsand", - "default:redsandstone", "default:dirt_with_dry_grass"}, - sidelen = 80, - fill_ratio = 0.0002, - y_max = 31000, - y_min = 1, - decoration = {"bonusbox:chest"}, -}) diff --git a/games/default/files/bonusbox/textures/chest_back.png b/games/default/files/bonusbox/textures/chest_back.png deleted file mode 100644 index 43028c801..000000000 Binary files a/games/default/files/bonusbox/textures/chest_back.png and /dev/null differ diff --git a/games/default/files/bonusbox/textures/chest_front.png b/games/default/files/bonusbox/textures/chest_front.png deleted file mode 100644 index d5c039b0d..000000000 Binary files a/games/default/files/bonusbox/textures/chest_front.png and /dev/null differ diff --git a/games/default/files/bonusbox/textures/chest_open_back.png b/games/default/files/bonusbox/textures/chest_open_back.png deleted file mode 100644 index cf8f7a9aa..000000000 Binary files a/games/default/files/bonusbox/textures/chest_open_back.png and /dev/null differ diff --git a/games/default/files/bonusbox/textures/chest_open_back_two.png b/games/default/files/bonusbox/textures/chest_open_back_two.png deleted file mode 100644 index 8e2a362ac..000000000 Binary files a/games/default/files/bonusbox/textures/chest_open_back_two.png and /dev/null differ diff --git a/games/default/files/bonusbox/textures/chest_open_bottom.png b/games/default/files/bonusbox/textures/chest_open_bottom.png deleted file mode 100644 index 32f8c6458..000000000 Binary files a/games/default/files/bonusbox/textures/chest_open_bottom.png and /dev/null differ diff --git a/games/default/files/bonusbox/textures/chest_open_front.png b/games/default/files/bonusbox/textures/chest_open_front.png deleted file mode 100644 index c1193cc2c..000000000 Binary files a/games/default/files/bonusbox/textures/chest_open_front.png and /dev/null differ diff --git a/games/default/files/bonusbox/textures/chest_open_front_two.png b/games/default/files/bonusbox/textures/chest_open_front_two.png deleted file mode 100644 index 88b31e404..000000000 Binary files a/games/default/files/bonusbox/textures/chest_open_front_two.png and /dev/null differ diff --git a/games/default/files/bonusbox/textures/chest_open_side.png b/games/default/files/bonusbox/textures/chest_open_side.png deleted file mode 100644 index d4b0d0a92..000000000 Binary files a/games/default/files/bonusbox/textures/chest_open_side.png and /dev/null differ diff --git a/games/default/files/bonusbox/textures/chest_open_side_two.png b/games/default/files/bonusbox/textures/chest_open_side_two.png deleted file mode 100644 index ae1ee1310..000000000 Binary files a/games/default/files/bonusbox/textures/chest_open_side_two.png and /dev/null differ diff --git a/games/default/files/bonusbox/textures/chest_open_top.png b/games/default/files/bonusbox/textures/chest_open_top.png deleted file mode 100644 index 4c987422d..000000000 Binary files a/games/default/files/bonusbox/textures/chest_open_top.png and /dev/null differ diff --git a/games/default/files/bonusbox/textures/chest_side.png b/games/default/files/bonusbox/textures/chest_side.png deleted file mode 100644 index a11f5f0e9..000000000 Binary files a/games/default/files/bonusbox/textures/chest_side.png and /dev/null differ diff --git a/games/default/files/bonusbox/textures/chest_top.png b/games/default/files/bonusbox/textures/chest_top.png deleted file mode 100644 index 9771591da..000000000 Binary files a/games/default/files/bonusbox/textures/chest_top.png and /dev/null differ diff --git a/games/default/files/bucket/README.txt b/games/default/files/bucket/README.txt deleted file mode 100644 index 234ed9e00..000000000 --- a/games/default/files/bucket/README.txt +++ /dev/null @@ -1,19 +0,0 @@ -MultiCraft Game mod: bucket -=========================== - -License of source code: ------------------------ -Copyright (C) 2011-2012 Kahrl -Copyright (C) 2011-2012 celeron55, Perttu Ahola - -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. - -http://www.gnu.org/licenses/lgpl-3.0.html - -License of media (textures and sounds) --------------------------------------- -Attribution-ShareAlike 3.0 Unported (CC BY-SA 3.0) -http://creativecommons.org/licenses/by-sa/3.0/ diff --git a/games/default/files/bucket/init.lua b/games/default/files/bucket/init.lua deleted file mode 100644 index 31bcd82ee..000000000 --- a/games/default/files/bucket/init.lua +++ /dev/null @@ -1,225 +0,0 @@ -minetest.register_alias("bucket", "bucket:bucket_empty") -minetest.register_alias("bucket_water", "bucket:bucket_water") -minetest.register_alias("bucket_lava", "bucket:bucket_lava") - -minetest.register_craft({ - output = 'bucket:bucket_empty 1', - recipe = { - {'default:steel_ingot', '', 'default:steel_ingot'}, - {'', 'default:steel_ingot', ''}, - } -}) - -bucket = {} -bucket.liquids = {} - -local function check_protection(pos, name, text) - if minetest.is_protected(pos, name) then - minetest.log("action", (name ~= "" and name or "A mod") - .. " tried to " .. text - .. " at protected position " - .. minetest.pos_to_string(pos) - .. " with a bucket") - minetest.record_protection_violation(pos, name) - return true - end - return false -end - --- Register a new liquid --- source = name of the source node --- flowing = name of the flowing node --- itemname = name of the new bucket item (or nil if liquid is not takeable) --- inventory_image = texture of the new bucket item (ignored if itemname == nil) --- name = text description of the bucket item --- groups = (optional) groups of the bucket item, for example {water_bucket = 1} --- force_renew = (optional) bool. Force the liquid source to renew if it has a --- source neighbour, even if defined as 'liquid_renewable = false'. --- Needed to avoid creating holes in sloping rivers. --- This function can be called from any mod (that depends on bucket). -function bucket.register_liquid(source, flowing, itemname, inventory_image, name, - groups, force_renew) - bucket.liquids[source] = { - source = source, - flowing = flowing, - itemname = itemname, - force_renew = force_renew, - } - bucket.liquids[flowing] = bucket.liquids[source] - - if itemname ~= nil then - minetest.register_craftitem(itemname, { - description = name, - inventory_image = inventory_image, - stack_max = 1, - liquids_pointable = true, - groups = groups, - - on_place = function(itemstack, user, pointed_thing) - -- Must be pointing to node - if pointed_thing.type ~= "node" then - return - end - - local node = minetest.get_node_or_nil(pointed_thing.under) - local ndef = node and minetest.registered_nodes[node.name] - - -- Call on_rightclick if the pointed node defines it - if ndef and ndef.on_rightclick and - not (user and user:is_player() and - user:get_player_control().sneak) then - return ndef.on_rightclick( - pointed_thing.under, - node, user, - itemstack) - end - - local lpos - - -- Check if pointing to a buildable node - if ndef and ndef.buildable_to then - -- buildable; replace the node - lpos = pointed_thing.under - else - -- not buildable to; place the liquid above - -- check if the node above can be replaced - - lpos = pointed_thing.above - node = minetest.get_node_or_nil(lpos) - local above_ndef = node and minetest.registered_nodes[node.name] - - if not above_ndef or not above_ndef.buildable_to then - -- do not remove the bucket with the liquid - return itemstack - end - end - - if minetest.is_singleplayer() ~= true then - local player_name = user:get_player_name() - if pointed_thing.under.y > 8 then - minetest.chat_send_player(player_name, "Too much liquid is bad, right?", true) - return itemstack - end - end - - if check_protection(lpos, user - and user:get_player_name() - or "", "place "..source) then - return - end - - minetest.set_node(lpos, {name = source}) - return ItemStack("bucket:bucket_empty") - end - }) - end -end - -minetest.register_craftitem("bucket:bucket_empty", { - description = "Empty Bucket", - inventory_image = "bucket.png", - liquids_pointable = true, - on_use = function(itemstack, user, pointed_thing) - if pointed_thing.type == "object" then - pointed_thing.ref:punch(user, 1.0, { full_punch_interval=1.0 }, nil) - return user:get_wielded_item() - elseif pointed_thing.type ~= "node" then - -- do nothing if it's neither object nor node - return - end - -- Check if pointing to a liquid source - local node = minetest.get_node(pointed_thing.under) - local liquiddef = bucket.liquids[node.name] - local item_count = user:get_wielded_item():get_count() - - if liquiddef ~= nil - and liquiddef.itemname ~= nil - and node.name == liquiddef.source then - if check_protection(pointed_thing.under, - user:get_player_name(), - "take ".. node.name) then - return - end - - -- default set to return filled bucket - local giving_back = liquiddef.itemname - - -- check if holding more than 1 empty bucket - if item_count > 1 then - - -- if space in inventory add filled bucked, otherwise drop as item - local inv = user:get_inventory() - if inv:room_for_item("main", {name=liquiddef.itemname}) then - inv:add_item("main", liquiddef.itemname) - else - local pos = user:get_pos() - pos.y = math.floor(pos.y + 0.5) - minetest.add_item(pos, liquiddef.itemname) - end - - -- set to return empty buckets minus 1 - giving_back = "bucket:bucket_empty "..tostring(item_count-1) - - end - - -- force_renew requires a source neighbour - local source_neighbor = false - if liquiddef.force_renew then - source_neighbor = - minetest.find_node_near(pointed_thing.under, 1, liquiddef.source) - end - if not (source_neighbor and liquiddef.force_renew) then - minetest.add_node(pointed_thing.under, {name="air"}) - end - - return ItemStack(giving_back) - else - -- non-liquid nodes will have their on_punch triggered - local node_def = minetest.registered_nodes[node.name] - if node_def then - node_def.on_punch(pointed_thing.under, node, user, pointed_thing) - end - return user:get_wielded_item() - end - end, -}) - -bucket.register_liquid( - "default:water_source", - "default:water_flowing", - "bucket:bucket_water", - "bucket_water.png", - "Water Bucket", - {water_bucket = 1} -) - --- River water source is 'liquid_renewable = false' to avoid horizontal spread --- of water sources in sloping rivers that can cause water to overflow --- riverbanks and cause floods. --- River water source is instead made renewable by the 'force renew' option --- used here. - -bucket.register_liquid( - "default:river_water_source", - "default:river_water_flowing", - "bucket:bucket_river_water", - "bucket_river_water.png", - "River Water Bucket", - {water_bucket = 1}, - true -) - -bucket.register_liquid( - "default:lava_source", - "default:lava_flowing", - "bucket:bucket_lava", - "bucket_lava.png", - "Lava Bucket" -) - -minetest.register_craft({ - type = "fuel", - recipe = "bucket:bucket_lava", - burntime = 60, - replacements = {{"bucket:bucket_lava", "bucket:bucket_empty"}}, -}) diff --git a/games/default/files/bucket/textures/bucket.png b/games/default/files/bucket/textures/bucket.png deleted file mode 100644 index 4b511bb5a..000000000 Binary files a/games/default/files/bucket/textures/bucket.png and /dev/null differ diff --git a/games/default/files/bucket/textures/bucket_lava.png b/games/default/files/bucket/textures/bucket_lava.png deleted file mode 100644 index 5eb9dd0f0..000000000 Binary files a/games/default/files/bucket/textures/bucket_lava.png and /dev/null differ diff --git a/games/default/files/bucket/textures/bucket_river_water.png b/games/default/files/bucket/textures/bucket_river_water.png deleted file mode 100644 index 43fe682fc..000000000 Binary files a/games/default/files/bucket/textures/bucket_river_water.png and /dev/null differ diff --git a/games/default/files/bucket/textures/bucket_water.png b/games/default/files/bucket/textures/bucket_water.png deleted file mode 100644 index e543c6ab2..000000000 Binary files a/games/default/files/bucket/textures/bucket_water.png and /dev/null differ diff --git a/games/default/files/carts/README.txt b/games/default/files/carts/README.txt deleted file mode 100644 index 28e0c5383..000000000 --- a/games/default/files/carts/README.txt +++ /dev/null @@ -1,39 +0,0 @@ -MultiCraft Game mod: carts -========================== -Based on (and fully compatible with) the mod "carts" by PilzAdam -and the one contained in the subgame "minetest_game". -Target: Run smoothly as possible, even on laggy servers. - - Features ----------- -- A fast cart for your railway or roller coaster -- Easily configurable cart speed using the Advanced Settings -- Boost and brake rails -- By mesecons controlled Start-Stop rails -- Detector rails that send a mesecons signal when the cart drives over them -- Rail junction switching with the 'right/left' walking keys -- Handbrake with the 'back' key -- Support for non-minetest_game subgames - - -Carts, based almost entirely on the mod boost_cart [1], which -itself is based on (and fully compatible with) the carts mod [2]. - -The model was originally designed by stujones11 [3] (CC-0). - -Rails textures are based on original work from PixelBOX by Gambit (permissive -license). - -Cart model changed specifically for MultiCraft (LGPLv3+). -The Cart texture drawn specifically for MultiCraft (CC-BY-SA 4.0). - -[1] https://github.com/SmallJoker/boost_cart/ -[2] https://github.com/PilzAdam/carts/ -[3] https://github.com/stujones11/railcart/ - - - Authors ---------- -klankbeeld (CC-BY 3.0) - http://freesound.org/people/klankbeeld/sounds/174042/ - cart_rail.*.ogg diff --git a/games/default/files/carts/cart_entity.lua b/games/default/files/carts/cart_entity.lua deleted file mode 100644 index 89abf62d0..000000000 --- a/games/default/files/carts/cart_entity.lua +++ /dev/null @@ -1,473 +0,0 @@ -local cart_entity = { - initial_properties = { - physical = false, - collisionbox = {-0.5, -0.5, -0.5, 0.5, 0.5, 0.5}, - visual = "mesh", - mesh = "carts_cart.b3d", - visual_size = {x=1, y=1}, - textures = {"carts_cart.png"}, - }, - - driver = nil, - punched = false, -- used to re-send velocity and position - velocity = {x=0, y=0, z=0}, -- only used on punch - old_dir = {x=1, y=0, z=0}, -- random value to start the cart on punch - old_pos = nil, - old_switch = 0, - railtype = nil, - attached_items = {} -} - -function cart_entity:on_rightclick(clicker) - if not clicker or not clicker:is_player() then - return - end - local player_name = clicker:get_player_name() - if self.driver and player_name == self.driver then - self.driver = nil - carts:manage_attachment(clicker, nil) - elseif not self.driver then - self.driver = player_name - carts:manage_attachment(clicker, self.object) - - -- player_api does not update the animation - -- when the player is attached, reset to default animation - player_api.set_animation(clicker, "stand") - end -end - -function cart_entity:on_activate(staticdata, dtime_s) - self.object:set_armor_groups({immortal=1}) - if string.sub(staticdata, 1, string.len("return")) ~= "return" then - return - end - local data = minetest.deserialize(staticdata) - if type(data) ~= "table" then - return - end - self.railtype = data.railtype - self.old_dir = data.old_dir or self.old_dir - self.old_pos = data.old_pos or self.old_pos - -- Correct the position when the cart drives further after the last 'step()' - if self.old_pos and carts:is_rail(self.old_pos, self.railtype) then - self.object:set_pos(self.old_pos) - end -end - -function cart_entity:get_staticdata() - return minetest.serialize({ - railtype = self.railtype, - old_dir = self.old_dir, - old_pos = self.old_pos - }) -end - --- 0.5.x and later: When the driver leaves -function cart_entity:on_detach_child(child) - if child and child:get_player_name() == self.driver then - self.driver = nil - end -end - -function cart_entity:on_punch(puncher, time_from_last_punch, tool_capabilities, direction) - local pos = self.object:get_pos() - local vel = self.object:get_velocity() - if not self.railtype or vector.equals(vel, {x=0, y=0, z=0}) then - local node = minetest.get_node(pos).name - self.railtype = minetest.get_item_group(node, "connect_to_raillike") - end - -- Punched by non-player - if not puncher or not puncher:is_player() then - local cart_dir = carts:get_rail_direction(pos, self.old_dir, nil, nil, self.railtype) - if vector.equals(cart_dir, {x=0, y=0, z=0}) then - return - end - self.velocity = vector.multiply(cart_dir, 3) - self.punched = true - return - end - -- Player digs cart by sneak-punch - if puncher:get_player_control().sneak then - if self.sound_handle then - minetest.sound_stop(self.sound_handle) - end - -- Detach driver and items - if self.driver then - if self.old_pos then - self.object:set_pos(self.old_pos) - end - local player = minetest.get_player_by_name(self.driver) - carts:manage_attachment(player, nil) - end - for _, obj_ in ipairs(self.attached_items) do - if obj_ then - obj_:set_detach() - end - end - -- Pick up cart - local inv = puncher:get_inventory() - if not (creative and creative.is_enabled_for - and creative.is_enabled_for(puncher:get_player_name())) - or not inv:contains_item("main", "carts:cart") then - local leftover = inv:add_item("main", "carts:cart") - -- If no room in inventory add a replacement cart to the world - if not leftover:is_empty() then - minetest.add_item(self.object:get_pos(), leftover) - end - end - self.object:remove() - return - end - - -- Player punches cart to alter velocity - if puncher:get_player_name() == self.driver then - if math.abs(vel.x + vel.z) > carts.punch_speed_max then - return - end - end - - local punch_dir = carts:velocity_to_dir(puncher:get_look_dir()) - punch_dir.y = 0 - local cart_dir = carts:get_rail_direction(pos, punch_dir, nil, nil, self.railtype) - if vector.equals(cart_dir, {x=0, y=0, z=0}) then - return - end - - local punch_interval = 1 - if tool_capabilities and tool_capabilities.full_punch_interval then - punch_interval = tool_capabilities.full_punch_interval - end - time_from_last_punch = math.min(time_from_last_punch or punch_interval, punch_interval) - local f = 3 * (time_from_last_punch / punch_interval) - - self.velocity = vector.multiply(cart_dir, f) - self.old_dir = cart_dir - self.punched = true -end - --- sound refresh interval = 1.0sec -local function rail_sound(self, dtime) - if not self.sound_ttl then - self.sound_ttl = 1.0 - return - elseif self.sound_ttl > 0 then - self.sound_ttl = self.sound_ttl - dtime - return - end - self.sound_ttl = 1.0 - if self.sound_handle then - local handle = self.sound_handle - self.sound_handle = nil - minetest.after(0.2, minetest.sound_stop, handle) - end - local vel = self.object:get_velocity() - local speed = vector.length(vel) - if speed > 0 then - self.sound_handle = minetest.sound_play( - "carts_cart_moving", { - object = self.object, - gain = (speed / carts.speed_max) / 2, - loop = true, - }) - end -end - -local v3_len = vector.length -local function rail_on_step(self, dtime) - - -- Drop cart if there is no player or items inside. - if not self.driver and #self.attached_items == 0 then - local drop_timer = 300 -- 5 min - if not minetest.is_singleplayer() then - drop_timer = 60 -- 1 min - end - self.count = (self.count or 0) + dtime - if self.count > drop_timer then - minetest.add_item(self.object:get_pos(), "carts:cart") - if self.sound_handle then - minetest.sound_stop(self.sound_handle) - end - self.object:remove() - return - end - else - self.count = 0 - end - - local vel = self.object:get_velocity() - if self.punched then - vel = vector.add(vel, self.velocity) - self.object:set_velocity(vel) - self.old_dir.y = 0 - elseif vector.equals(vel, {x=0, y=0, z=0}) then - return - end - - local pos = self.object:get_pos() - local cart_dir = carts:velocity_to_dir(vel) - local same_dir = vector.equals(cart_dir, self.old_dir) - local update = {} - - if self.old_pos and not self.punched and same_dir then - local flo_pos = vector.round(pos) - local flo_old = vector.round(self.old_pos) - if vector.equals(flo_pos, flo_old) then - -- Do not check one node multiple times - return - end - end - - local ctrl, player - local distance = 1 - - -- Get player controls - if self.driver then - player = minetest.get_player_by_name(self.driver) - if player then - ctrl = player:get_player_control() - end - end - - local stop_wiggle = false - if self.old_pos and same_dir then - -- Detection for "skipping" nodes (perhaps use average dtime?) - -- It's sophisticated enough to take the acceleration in account - local acc = self.object:get_acceleration() - distance = dtime * (v3_len(vel) + 0.5 * dtime * v3_len(acc)) - - local new_pos, new_dir = carts:pathfinder( - pos, self.old_pos, self.old_dir, distance, ctrl, - self.old_switch, self.railtype - ) - - if new_pos then - -- No rail found: set to the expected position - pos = new_pos - update.pos = true - cart_dir = new_dir - end - elseif self.old_pos and self.old_dir.y ~= 1 and not self.punched then - -- Stop wiggle - stop_wiggle = true - end - - -- dir: New moving direction of the cart - -- switch_keys: Currently pressed L(1) or R(2) key, - -- used to ignore the key on the next rail node - local dir, switch_keys = carts:get_rail_direction( - pos, cart_dir, ctrl, self.old_switch, self.railtype - ) - local dir_changed = not vector.equals(dir, self.old_dir) - - local acc = 0 - if stop_wiggle or vector.equals(dir, {x=0, y=0, z=0}) then - vel = {x=0, y=0, z=0} - local pos_r = vector.round(pos) - if not carts:is_rail(pos_r, self.railtype) - and self.old_pos then - pos = self.old_pos - elseif not stop_wiggle then - pos = pos_r - else - pos.y = math.floor(pos.y + 0.5) - end - update.pos = true - update.vel = true - else - -- Direction change detected - if dir_changed then - vel = vector.multiply(dir, math.abs(vel.x + vel.z)) - update.vel = true - if dir.y ~= self.old_dir.y then - pos = vector.round(pos) - update.pos = true - end - end - -- Center on the rail - if dir.z ~= 0 and math.floor(pos.x + 0.5) ~= pos.x then - pos.x = math.floor(pos.x + 0.5) - update.pos = true - end - if dir.x ~= 0 and math.floor(pos.z + 0.5) ~= pos.z then - pos.z = math.floor(pos.z + 0.5) - update.pos = true - end - - -- Calculate current cart acceleration - acc = nil - - local acc_meta = minetest.get_meta(pos):get_string("cart_acceleration") - if acc_meta == "halt" and not self.punched then - -- Stop rail - vel = {x=0, y=0, z=0} - acc = false - pos = vector.round(pos) - update.pos = true - update.vel = true - end - if acc == nil then - -- Meta speed modifier - local speed_mod = tonumber(acc_meta) - if speed_mod and speed_mod ~= 0 then - -- Try to make it similar to the original carts mod - acc = speed_mod * 10 - end - end - if acc ~= false then - -- Handbrake - if ctrl and ctrl.down then - acc = (acc or 0) - 2 - elseif acc == nil then - acc = -0.4 - end - end - - if acc then - -- Slow down or speed up, depending on Y direction - acc = acc + dir.y * -2.1 - else - acc = 0 - end - end - - -- Limit cart speed - local vel_len = vector.length(vel) - if vel_len > carts.speed_max then - vel = vector.multiply(vel, carts.speed_max / vel_len) - update.vel = true - end - if vel_len >= carts.speed_max and acc > 0 then - acc = 0 - end - - self.object:set_acceleration(vector.multiply(dir, acc)) - - self.old_pos = vector.round(pos) - local old_y_dir = self.old_dir.y - if not vector.equals(dir, {x=0, y=0, z=0}) and not stop_wiggle then - self.old_dir = dir - else - -- Cart stopped, set the animation to 0 - self.old_dir.y = 0 - end - self.old_switch = switch_keys - - carts:on_rail_step(self, self.old_pos, distance) - - if self.punched then - -- Collect dropped items - for _, obj_ in pairs(minetest.get_objects_inside_radius(pos, 1)) do - if not obj_:is_player() and - obj_:get_luaentity() and - not obj_:get_luaentity().physical_state and - obj_:get_luaentity().name == "__builtin:item" then - - obj_:set_attach(self.object, "", {x=0, y=0, z=0}, {x=0, y=0, z=0}) - self.attached_items[#self.attached_items + 1] = obj_ - end - end - self.punched = false - update.vel = true - end - - if not (update.vel or update.pos) then - return - end - -- Re-use "dir", localize self.old_dir - dir = self.old_dir - - local yaw = 0 - if dir.x < 0 then - yaw = 0.5 - elseif dir.x > 0 then - yaw = 1.5 - elseif dir.z < 0 then - yaw = 1 - end - self.object:set_yaw(yaw * math.pi) - - local anim = {x=0, y=0} - if dir.y == -1 then - anim = {x=1, y=1} - elseif dir.y == 1 then - anim = {x=2, y=2} - end - self.object:set_animation(anim, 1, 0) - - -- Change player model rotation, depending on the Y direction - if player and dir.y ~= old_y_dir then - local feet = {x=0, y=0, z=0} - local eye = {x=0, y=-4, z=0} - feet.y = 6 - if dir.y ~= 0 then - -- TODO: Find a better way to calculate this - feet.y = feet.y + 2 - feet.z = -dir.y * 6 - eye.z = -dir.y * 8 - end - player:set_attach(self.object, "", feet, - {x=dir.y * -30, y=0, z=0}) - player:set_eye_offset(eye, eye) - end - - if update.vel then - self.object:set_velocity(vel) - end - if update.pos then - if dir_changed then - self.object:set_pos(pos) - else - self.object:move_to(pos) - end - end -end - -function carts:on_rail_step(entity, pos, distance) - if minetest.global_exists("mesecon") then - carts:signal_detector_rail(pos) - end -end - -function cart_entity:on_step(dtime) - rail_on_step(self, dtime) - rail_sound(self, dtime) -end - -minetest.register_entity("carts:cart", cart_entity) - -minetest.register_craftitem("carts:cart", { - description = "Cart (Sneak+Click to pick up)", - inventory_image = "carts_cart_inv.png", - stack_max = 1, - sounds = default.node_sound_metal_defaults(), - on_place = function(itemstack, placer, pointed_thing) - if not pointed_thing.type == "node" then - return - end - if carts:is_rail(pointed_thing.under) then - minetest.add_entity(pointed_thing.under, "carts:cart") - elseif carts:is_rail(pointed_thing.above) then - minetest.add_entity(pointed_thing.above, "carts:cart") - else - return - end - - minetest.sound_play({name = "default_place_node_metal", gain = 0.5}, - {pos = pointed_thing.above}) - - if not (creative and creative.is_enabled_for and - creative.is_enabled_for(placer)) or - not minetest.is_singleplayer() then - itemstack:take_item() - end - return itemstack - end, -}) - -minetest.register_craft({ - output = "carts:cart", - recipe = { - {"default:steel_ingot", "", "default:steel_ingot"}, - {"default:steel_ingot", "default:steel_ingot", "default:steel_ingot"}, - }, -}) diff --git a/games/default/files/carts/depends.txt b/games/default/files/carts/depends.txt deleted file mode 100644 index 1b3c7979f..000000000 --- a/games/default/files/carts/depends.txt +++ /dev/null @@ -1,2 +0,0 @@ -default -mesecons? diff --git a/games/default/files/carts/detector.lua b/games/default/files/carts/detector.lua deleted file mode 100644 index 424e19d8f..000000000 --- a/games/default/files/carts/detector.lua +++ /dev/null @@ -1,57 +0,0 @@ -local mesecons_rules = mesecon.rules.flat - -function carts:turnoff_detector_rail(pos) - local node = minetest.get_node(pos) - if minetest.get_item_group(node.name, "detector_rail") == 1 then - if node.name == "carts:detectorrail_on" then --has not been dug - minetest.swap_node(pos, {name = "carts:detectorrail", param2=node.param2}) - end - mesecon.receptor_off(pos, mesecons_rules) - end -end - -function carts:signal_detector_rail(pos) - local node = minetest.get_node(pos) - if minetest.get_item_group(node.name, "detector_rail") ~= 1 then - return - end - - if node.name == "carts:detectorrail" then - minetest.swap_node(pos, {name = "carts:detectorrail_on", param2=node.param2}) - end - mesecon.receptor_on(pos, mesecons_rules) - minetest.after(0.5, carts.turnoff_detector_rail, carts, pos) -end - -carts:register_rail("carts:detectorrail", { - description = "Detector rail", - tiles = { - "carts_rail_straight_dtc.png", "carts_rail_curved_dtc.png", - "carts_rail_t_junction_dtc.png", "carts_rail_crossing_dtc.png" - }, - groups = carts:get_rail_groups({detector_rail = 1}), - - mesecons = {receptor = {state = "off", rules = mesecons_rules}}, -}) - -carts:register_rail("carts:detectorrail_on", { - tiles = { - "carts_rail_straight_dtc_on.png", "carts_rail_curved_dtc_on.png", - "carts_rail_t_junction_dtc_on.png", "carts_rail_crossing_dtc_on.png" - }, - groups = carts:get_rail_groups({ - detector_rail = 1, not_in_creative_inventory = 1 - }), - drop = "carts:detectorrail", - - mesecons = {receptor = {state = "on", rules = mesecons_rules}}, -}) - -minetest.register_craft({ - output = "carts:detectorrail 6", - recipe = { - {"default:steel_ingot", "", "default:steel_ingot"}, - {"default:steel_ingot", "mesecons_pressureplates:pressure_plate_stone_off", "default:steel_ingot"}, - {"default:steel_ingot", "mesecons:wire_00000000_off", "default:steel_ingot"}, - }, -}) diff --git a/games/default/files/carts/functions.lua b/games/default/files/carts/functions.lua deleted file mode 100644 index ea3919787..000000000 --- a/games/default/files/carts/functions.lua +++ /dev/null @@ -1,263 +0,0 @@ -function carts:get_sign(z) - if z == 0 then - return 0 - else - return z / math.abs(z) - end -end - -function carts:manage_attachment(player, obj) - if not player then - return - end - local status = obj ~= nil - local player_name = player:get_player_name() - if player_api.player_attached[player_name] == status then - return - end - player_api.player_attached[player_name] = status - - if status then - local y_pos = 6 - if player:get_properties().visual == "upright_sprite" then - y_pos = -4 - end - player:set_attach(obj, "", {x=0, y=y_pos, z=0}, {x=0, y=0, z=0}) - player:set_eye_offset({x=0, y=-4, z=0},{x=0, y=-4, z=0}) - else - player:set_detach() - player:set_eye_offset({x=0, y=0, z=0},{x=0, y=0, z=0}) - -- HACK in effect! Force updating the attachment rotation - player:set_properties({}) - end -end - -function carts:velocity_to_dir(v) - if math.abs(v.x) > math.abs(v.z) then - return {x=self:get_sign(v.x), y=self:get_sign(v.y), z=0} - else - return {x=0, y=self:get_sign(v.y), z=self:get_sign(v.z)} - end -end - -local get_node = minetest.get_node -local get_item_group = minetest.get_item_group -function carts:is_rail(pos, railtype) - local node = get_node(pos).name - if node == "ignore" then - local vm = minetest.get_voxel_manip() - local emin, emax = vm:read_from_map(pos, pos) - local area = VoxelArea:new{ - MinEdge = emin, - MaxEdge = emax, - } - local data = vm:get_data() - local vi = area:indexp(pos) - node = minetest.get_name_from_content_id(data[vi]) - end - if get_item_group(node, "rail") == 0 then - return false - end - if not railtype then - return true - end - return get_item_group(node, "connect_to_raillike") == railtype -end - -function carts:check_front_up_down(pos, dir_, check_up, railtype) - local dir = vector.new(dir_) - local cur = nil - - -- Front - dir.y = 0 - cur = vector.add(pos, dir) - if carts:is_rail(cur, railtype) then - return dir - end - -- Up - if check_up then - dir.y = 1 - cur = vector.add(pos, dir) - if carts:is_rail(cur, railtype) then - return dir - end - end - -- Down - dir.y = -1 - cur = vector.add(pos, dir) - if carts:is_rail(cur, railtype) then - return dir - end - return nil -end - -function carts:get_rail_direction(pos_, dir, ctrl, old_switch, railtype) - local pos = vector.round(pos_) - local cur = nil - local left_check, right_check = true, true - - -- Check left and right - local left = {x=0, y=0, z=0} - local right = {x=0, y=0, z=0} - if dir.z ~= 0 and dir.x == 0 then - left.x = -dir.z - right.x = dir.z - elseif dir.x ~= 0 and dir.z == 0 then - left.z = dir.x - right.z = -dir.x - end - - local straight_priority = ctrl and dir.y ~= 0 - - -- Normal, to disallow rail switching up- & downhill - if straight_priority then - cur = self:check_front_up_down(pos, dir, true, railtype) - if cur then - return cur - end - end - - if ctrl then - if old_switch == 1 then - left_check = false - elseif old_switch == 2 then - right_check = false - end - if ctrl.left and left_check then - cur = self:check_front_up_down(pos, left, false, railtype) - if cur then - return cur, 1 - end - left_check = false - end - if ctrl.right and right_check then - cur = self:check_front_up_down(pos, right, false, railtype) - if cur then - return cur, 2 - end - right_check = true - end - end - - -- Normal - if not straight_priority then - cur = self:check_front_up_down(pos, dir, true, railtype) - if cur then - return cur - end - end - - -- Left, if not already checked - if left_check then - cur = carts:check_front_up_down(pos, left, false, railtype) - if cur then - return cur - end - end - - -- Right, if not already checked - if right_check then - cur = carts:check_front_up_down(pos, right, false, railtype) - if cur then - return cur - end - end - - -- Backwards - if not old_switch then - cur = carts:check_front_up_down(pos, { - x = -dir.x, - y = dir.y, - z = -dir.z - }, true, railtype) - if cur then - return cur - end - end - - return {x=0, y=0, z=0} -end - -function carts:pathfinder(pos_, old_pos, old_dir, distance, ctrl, - pf_switch, railtype) - - local pos = vector.round(pos_) - if vector.equals(old_pos, pos) then - return - end - - local pf_pos = vector.round(old_pos) - local pf_dir = vector.new(old_dir) - distance = math.min(carts.path_distance_max, - math.floor(distance + 1)) - - for i = 1, distance do - pf_dir, pf_switch = self:get_rail_direction( - pf_pos, pf_dir, ctrl, pf_switch or 0, railtype) - - if vector.equals(pf_dir, {x=0, y=0, z=0}) then - -- No way forwards - return pf_pos, pf_dir - end - - pf_pos = vector.add(pf_pos, pf_dir) - - if vector.equals(pf_pos, pos) then - -- Success! Cart moved on correctly - return - end - end - -- Not found. Put cart to predicted position - return pf_pos, pf_dir -end - -function carts:boost_rail(pos, amount) - minetest.get_meta(pos):set_string("cart_acceleration", tostring(amount)) - for _,obj_ in ipairs(minetest.get_objects_inside_radius(pos, 0.5)) do - if not obj_:is_player() and - obj_:get_luaentity() and - obj_:get_luaentity().name == "carts:cart" then - obj_:get_luaentity():on_punch() - end - end -end - -function carts:register_rail(name, def_overwrite) - local def = { - drawtype = "raillike", - paramtype = "light", - sunlight_propagates = true, - is_ground_content = false, - walkable = false, - selection_box = { - type = "fixed", - fixed = {-1/2, -1/2, -1/2, 1/2, -1/2+1/16, 1/2}, - }, - sounds = default.node_sound_metal_defaults() - } - for k, v in pairs(def_overwrite) do - def[k] = v - end - if not def.inventory_image then - def.wield_image = def.tiles[1] - def.inventory_image = def.tiles[1] - end - - minetest.register_node(name, def) -end - -function carts:get_rail_groups(additional_groups) - -- Get the default rail groups and add more when a table is given - local groups = { - dig_immediate = 2, - falling_node = 1, - rail = 1, - connect_to_raillike = minetest.raillike_group("rail") - } - if type(additional_groups) == "table" then - for k, v in pairs(additional_groups) do - groups[k] = v - end - end - return groups -end diff --git a/games/default/files/carts/init.lua b/games/default/files/carts/init.lua deleted file mode 100644 index 5455a2d94..000000000 --- a/games/default/files/carts/init.lua +++ /dev/null @@ -1,28 +0,0 @@ -carts = {} -carts.modpath = minetest.get_modpath("carts") - --- Maximal speed of the cart in m/s -carts.speed_max = 12 --- Set to -1 to disable punching the cart from inside -carts.punch_speed_max = 8 --- Maximal distance for the path correction (for dtime peaks) -carts.path_distance_max = 3 - -dofile(carts.modpath.."/functions.lua") -dofile(carts.modpath.."/rails.lua") -dofile(carts.modpath.."/detector.lua") -dofile(carts.modpath.."/cart_entity.lua") - --- Aliases -minetest.register_alias("railcart:cart", "carts:cart") -minetest.register_alias("railcart:cart_entity", "carts:cart") -minetest.register_alias("default:rail", "carts:rail") -minetest.register_alias("boost_cart:rail", "carts:rail") -minetest.register_alias("railtrack:powerrail", "carts:powerrail") -minetest.register_alias("railtrack:superrail", "carts:powerrail") -minetest.register_alias("railtrack:brakerail", "carts:brakerail") -minetest.register_alias("railtrack:switchrail", "carts:startstoprail") -minetest.register_alias("boost_cart:detectorrail", "carts:detectorrail") -minetest.register_alias("boost_cart:startstoprail", "carts:startstoprail") -minetest.register_alias("railtrack:fixer", "default:stick") -minetest.register_alias("railtrack:inspector", "default:stick") diff --git a/games/default/files/carts/license.txt b/games/default/files/carts/license.txt deleted file mode 100644 index 431f57d92..000000000 --- a/games/default/files/carts/license.txt +++ /dev/null @@ -1,48 +0,0 @@ - -License of source code ----------------------- - -The MIT License (MIT) -Copyright (C) 2012-2016 PilzAdam -Copyright (C) 2014-2016 SmallJoker -Copyright (C) 2012-2016 Various Minetest developers and contributors - -Permission is hereby granted, free of charge, to any person obtaining a -copy of this software and associated documentation files (the "Software"), -to deal in the Software without restriction, including without limitation the -rights to use, copy, modify, merge, publish, distribute, sublicense, and/or -sell copies of the Software, and to permit persons to whom the Software is -furnished to do so, subject to the following conditions: - -The above copyright notice and this permission notice shall be included in -all copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL -THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN -THE SOFTWARE. - -For more details: -https://opensource.org/licenses/MIT - - -Licenses of media ------------------ - -CC-0, see: https://creativecommons.org/share-your-work/public-domain/cc0/, except -if other license is mentioned. - - -Authors ---------- -sofar + stujones11: - carts_cart.b3d and carts_cart.blend - -hexafraction, modified by sofar - carts_rail_*.png - -http://www.freesound.org/people/YleArkisto/sounds/253159/ - YleArkisto - CC-BY-3.0 - carts_cart_moving.*.ogg diff --git a/games/default/files/carts/models/carts_cart.b3d b/games/default/files/carts/models/carts_cart.b3d deleted file mode 100644 index 059c93d06..000000000 Binary files a/games/default/files/carts/models/carts_cart.b3d and /dev/null differ diff --git a/games/default/files/carts/models/carts_cart.png b/games/default/files/carts/models/carts_cart.png deleted file mode 100644 index 2d78e2a0c..000000000 Binary files a/games/default/files/carts/models/carts_cart.png and /dev/null differ diff --git a/games/default/files/carts/rails.lua b/games/default/files/carts/rails.lua deleted file mode 100644 index 3f8f78121..000000000 --- a/games/default/files/carts/rails.lua +++ /dev/null @@ -1,120 +0,0 @@ --- Common rail registrations - -carts:register_rail("carts:rail", { - description = "Rail", - tiles = { - "carts_rail_straight.png", "carts_rail_curved.png", - "carts_rail_t_junction.png", "carts_rail_crossing.png" - }, - groups = carts:get_rail_groups(), -}) - -minetest.register_craft({ - output = "carts:rail 16", - recipe = { - {"default:steel_ingot", "", "default:steel_ingot"}, - {"default:steel_ingot", "group:stick", "default:steel_ingot"}, - {"default:steel_ingot", "", "default:steel_ingot"}, - } -}) - --- Power rail -carts:register_rail("carts:powerrail", { - description = "Powered Rail", - tiles = { - "carts_rail_straight_pwr.png", "carts_rail_curved_pwr.png", - "carts_rail_t_junction_pwr.png", "carts_rail_crossing_pwr.png" - }, - groups = carts:get_rail_groups(), - after_place_node = function(pos, placer, itemstack) - if not mesecon then - minetest.get_meta(pos):set_string("cart_acceleration", "0.5") - end - end, - mesecons = { - effector = { - action_on = function(pos, node) - carts:boost_rail(pos, 0.5) - end, - action_off = function(pos, node) - minetest.get_meta(pos):set_string("cart_acceleration", "0") - end, - }, - }, -}) - -minetest.register_craft({ - output = "carts:powerrail 6", - recipe = { - {"default:gold_ingot", "", "default:gold_ingot"}, - {"default:gold_ingot", "group:stick", "default:gold_ingot"}, - {"default:gold_ingot", "mesecons:wire_00000000_off", "default:gold_ingot"}, - } -}) - --- Brake rail -carts:register_rail("carts:brakerail", { - description = "Brake Rail", - tiles = { - "carts_rail_straight_brk.png", "carts_rail_curved_brk.png", - "carts_rail_t_junction_brk.png", "carts_rail_crossing_brk.png" - }, - groups = carts:get_rail_groups(), - after_place_node = function(pos, placer, itemstack) - if not mesecon then - minetest.get_meta(pos):set_string("cart_acceleration", "-0.3") - end - end, - mesecons = { - effector = { - action_on = function(pos, node) - minetest.get_meta(pos):set_string("cart_acceleration", "-0.3") - end, - action_off = function(pos, node) - minetest.get_meta(pos):set_string("cart_acceleration", "0") - end, - }, - }, -}) - -minetest.register_craft({ - output = "carts:brakerail 6", - recipe = { - {"default:steel_ingot", "default:steel_ingot", "default:steel_ingot"}, - {"default:steel_ingot", "group:stick", "default:steel_ingot"}, - {"default:steel_ingot", "default:steel_ingot", "default:steel_ingot"}, - } -}) - -carts:register_rail("carts:startstoprail", { - description = "Start-stop rail", - tiles = { - "carts_rail_straight_ss.png", "carts_rail_curved_ss.png", - "carts_rail_t_junction_ss.png", "carts_rail_crossing_ss.png" - }, - groups = carts:get_rail_groups(), - after_place_node = function(pos, placer, itemstack) - if not mesecon then - minetest.get_meta(pos):set_string("cart_acceleration", "halt") - end - end, - mesecons = { - effector = { - action_on = function(pos, node) - carts:boost_rail(pos, 0.5) - end, - action_off = function(pos, node) - minetest.get_meta(pos):set_string("cart_acceleration", "halt") - end, - }, - }, -}) - -minetest.register_craft({ - output = "carts:startstoprail 2", - recipe = { - {"default:steel_ingot", "group:stick", "default:steel_ingot"}, - {"default:steel_ingot", "mesecons_torch:mesecon_torch_on", "default:steel_ingot"}, - {"default:steel_ingot", "group:stick", "default:steel_ingot"}, - } -}) diff --git a/games/default/files/carts/textures/carts_cart_inv.png b/games/default/files/carts/textures/carts_cart_inv.png deleted file mode 100644 index 797963fbd..000000000 Binary files a/games/default/files/carts/textures/carts_cart_inv.png and /dev/null differ diff --git a/games/default/files/carts/textures/carts_rail_crossing.png b/games/default/files/carts/textures/carts_rail_crossing.png deleted file mode 100644 index a6b635d9d..000000000 Binary files a/games/default/files/carts/textures/carts_rail_crossing.png and /dev/null differ diff --git a/games/default/files/carts/textures/carts_rail_crossing_brk.png b/games/default/files/carts/textures/carts_rail_crossing_brk.png deleted file mode 100644 index cb7d97bd8..000000000 Binary files a/games/default/files/carts/textures/carts_rail_crossing_brk.png and /dev/null differ diff --git a/games/default/files/carts/textures/carts_rail_crossing_cp.png b/games/default/files/carts/textures/carts_rail_crossing_cp.png deleted file mode 100644 index e32659d43..000000000 Binary files a/games/default/files/carts/textures/carts_rail_crossing_cp.png and /dev/null differ diff --git a/games/default/files/carts/textures/carts_rail_crossing_dtc.png b/games/default/files/carts/textures/carts_rail_crossing_dtc.png deleted file mode 100644 index f45c5ff03..000000000 Binary files a/games/default/files/carts/textures/carts_rail_crossing_dtc.png and /dev/null differ diff --git a/games/default/files/carts/textures/carts_rail_crossing_dtc_on.png b/games/default/files/carts/textures/carts_rail_crossing_dtc_on.png deleted file mode 100644 index 920123e94..000000000 Binary files a/games/default/files/carts/textures/carts_rail_crossing_dtc_on.png and /dev/null differ diff --git a/games/default/files/carts/textures/carts_rail_crossing_pwr.png b/games/default/files/carts/textures/carts_rail_crossing_pwr.png deleted file mode 100644 index c3f009eb4..000000000 Binary files a/games/default/files/carts/textures/carts_rail_crossing_pwr.png and /dev/null differ diff --git a/games/default/files/carts/textures/carts_rail_crossing_ss.png b/games/default/files/carts/textures/carts_rail_crossing_ss.png deleted file mode 100644 index e2c74587f..000000000 Binary files a/games/default/files/carts/textures/carts_rail_crossing_ss.png and /dev/null differ diff --git a/games/default/files/carts/textures/carts_rail_curved.png b/games/default/files/carts/textures/carts_rail_curved.png deleted file mode 100644 index a406fc3df..000000000 Binary files a/games/default/files/carts/textures/carts_rail_curved.png and /dev/null differ diff --git a/games/default/files/carts/textures/carts_rail_curved_brk.png b/games/default/files/carts/textures/carts_rail_curved_brk.png deleted file mode 100644 index 1a675305e..000000000 Binary files a/games/default/files/carts/textures/carts_rail_curved_brk.png and /dev/null differ diff --git a/games/default/files/carts/textures/carts_rail_curved_cp.png b/games/default/files/carts/textures/carts_rail_curved_cp.png deleted file mode 100644 index 1746978ce..000000000 Binary files a/games/default/files/carts/textures/carts_rail_curved_cp.png and /dev/null differ diff --git a/games/default/files/carts/textures/carts_rail_curved_dtc.png b/games/default/files/carts/textures/carts_rail_curved_dtc.png deleted file mode 100644 index ce049f0cd..000000000 Binary files a/games/default/files/carts/textures/carts_rail_curved_dtc.png and /dev/null differ diff --git a/games/default/files/carts/textures/carts_rail_curved_dtc_on.png b/games/default/files/carts/textures/carts_rail_curved_dtc_on.png deleted file mode 100644 index 8fb5bc510..000000000 Binary files a/games/default/files/carts/textures/carts_rail_curved_dtc_on.png and /dev/null differ diff --git a/games/default/files/carts/textures/carts_rail_curved_pwr.png b/games/default/files/carts/textures/carts_rail_curved_pwr.png deleted file mode 100644 index 9f7953da4..000000000 Binary files a/games/default/files/carts/textures/carts_rail_curved_pwr.png and /dev/null differ diff --git a/games/default/files/carts/textures/carts_rail_curved_ss.png b/games/default/files/carts/textures/carts_rail_curved_ss.png deleted file mode 100644 index bdfccdb10..000000000 Binary files a/games/default/files/carts/textures/carts_rail_curved_ss.png and /dev/null differ diff --git a/games/default/files/carts/textures/carts_rail_straight.png b/games/default/files/carts/textures/carts_rail_straight.png deleted file mode 100644 index 26edcadc4..000000000 Binary files a/games/default/files/carts/textures/carts_rail_straight.png and /dev/null differ diff --git a/games/default/files/carts/textures/carts_rail_straight_brk.png b/games/default/files/carts/textures/carts_rail_straight_brk.png deleted file mode 100644 index b64fcef09..000000000 Binary files a/games/default/files/carts/textures/carts_rail_straight_brk.png and /dev/null differ diff --git a/games/default/files/carts/textures/carts_rail_straight_cp.png b/games/default/files/carts/textures/carts_rail_straight_cp.png deleted file mode 100644 index ac4d4c9cc..000000000 Binary files a/games/default/files/carts/textures/carts_rail_straight_cp.png and /dev/null differ diff --git a/games/default/files/carts/textures/carts_rail_straight_dtc.png b/games/default/files/carts/textures/carts_rail_straight_dtc.png deleted file mode 100644 index a47fc0af7..000000000 Binary files a/games/default/files/carts/textures/carts_rail_straight_dtc.png and /dev/null differ diff --git a/games/default/files/carts/textures/carts_rail_straight_dtc_on.png b/games/default/files/carts/textures/carts_rail_straight_dtc_on.png deleted file mode 100644 index 53febaa46..000000000 Binary files a/games/default/files/carts/textures/carts_rail_straight_dtc_on.png and /dev/null differ diff --git a/games/default/files/carts/textures/carts_rail_straight_pwr.png b/games/default/files/carts/textures/carts_rail_straight_pwr.png deleted file mode 100644 index d53d4a526..000000000 Binary files a/games/default/files/carts/textures/carts_rail_straight_pwr.png and /dev/null differ diff --git a/games/default/files/carts/textures/carts_rail_straight_ss.png b/games/default/files/carts/textures/carts_rail_straight_ss.png deleted file mode 100644 index 64fa54d57..000000000 Binary files a/games/default/files/carts/textures/carts_rail_straight_ss.png and /dev/null differ diff --git a/games/default/files/carts/textures/carts_rail_t_junction.png b/games/default/files/carts/textures/carts_rail_t_junction.png deleted file mode 100644 index b7e48e2a5..000000000 Binary files a/games/default/files/carts/textures/carts_rail_t_junction.png and /dev/null differ diff --git a/games/default/files/carts/textures/carts_rail_t_junction_brk.png b/games/default/files/carts/textures/carts_rail_t_junction_brk.png deleted file mode 100644 index 8d77d96a3..000000000 Binary files a/games/default/files/carts/textures/carts_rail_t_junction_brk.png and /dev/null differ diff --git a/games/default/files/carts/textures/carts_rail_t_junction_cp.png b/games/default/files/carts/textures/carts_rail_t_junction_cp.png deleted file mode 100644 index 48414e886..000000000 Binary files a/games/default/files/carts/textures/carts_rail_t_junction_cp.png and /dev/null differ diff --git a/games/default/files/carts/textures/carts_rail_t_junction_dtc.png b/games/default/files/carts/textures/carts_rail_t_junction_dtc.png deleted file mode 100644 index 9218bc2d4..000000000 Binary files a/games/default/files/carts/textures/carts_rail_t_junction_dtc.png and /dev/null differ diff --git a/games/default/files/carts/textures/carts_rail_t_junction_dtc_on.png b/games/default/files/carts/textures/carts_rail_t_junction_dtc_on.png deleted file mode 100644 index 22952d782..000000000 Binary files a/games/default/files/carts/textures/carts_rail_t_junction_dtc_on.png and /dev/null differ diff --git a/games/default/files/carts/textures/carts_rail_t_junction_pwr.png b/games/default/files/carts/textures/carts_rail_t_junction_pwr.png deleted file mode 100644 index 72c47f364..000000000 Binary files a/games/default/files/carts/textures/carts_rail_t_junction_pwr.png and /dev/null differ diff --git a/games/default/files/carts/textures/carts_rail_t_junction_ss.png b/games/default/files/carts/textures/carts_rail_t_junction_ss.png deleted file mode 100644 index 7856418b1..000000000 Binary files a/games/default/files/carts/textures/carts_rail_t_junction_ss.png and /dev/null differ diff --git a/games/default/files/cleaner/README.txt b/games/default/files/cleaner/README.txt deleted file mode 100644 index 13b6aaa65..000000000 --- a/games/default/files/cleaner/README.txt +++ /dev/null @@ -1,16 +0,0 @@ -MultiCraft Game mod: Cleaner -========================= - -Introduction: -This mod removes unknown items from inventory and map. - -License of source code: ------------------------ -Copyright (C) 2019 Jean-Patrick Guerrero (kilbith) - -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. - -http://www.gnu.org/licenses/lgpl-3.0.html diff --git a/games/default/files/cleaner/init.lua b/games/default/files/cleaner/init.lua deleted file mode 100644 index c5995d785..000000000 --- a/games/default/files/cleaner/init.lua +++ /dev/null @@ -1,72 +0,0 @@ -local radius = 8 -local height = 4 -local freq = 2 -local kpos = {} - -if PLATFORM == "Android" or PLATFORM == "iOS" then - radius = 4 - height = 2 - freq = 3 -end - -minetest.register_on_joinplayer(function(player) - local inv = player:get_inventory() - - for i = 1, inv:get_size("main") do - local stack = inv:get_stack("main", i) - local itemname = stack:get_name() - - if not minetest.registered_items[itemname] or - minetest.registered_items[itemname].description == "Air" then - inv:set_stack("main", i, "") - end - end -end) - -local function clean() - local players = minetest.get_connected_players() - for i = 1, #players do - local player = players[i] - local pos = player:get_pos() - - for x = -radius, radius do - for y = -height, height do - for z = -radius, radius do - local pos_scan = vector.new(pos.x + x, pos.y + y, pos.z + z) - if not minetest.is_valid_pos(pos_scan) then - return - end - -- local hash = minetest.hash_node_position(pos_scan) - local nodename = minetest.get_node(pos_scan).name - - -- if not kpos[hash] then - -- local nodename = minetest.get_node(pos_scan).name - - if not minetest.registered_nodes[nodename] then - minetest.remove_node(pos_scan) - end - - -- kpos[hash] = true - -- end - - local objs = minetest.get_objects_inside_radius(pos_scan, 0.5) - if #objs > 0 then - for j = 1, #objs do - local obj = objs[j] - if not obj:is_player() then - local entname = obj:get_entity_name() - if not minetest.registered_entities[entname] then - obj:remove() - end - end - end - end - end - end - end - end - - minetest.after(freq, clean) -end - -minetest.after(freq, clean) diff --git a/games/default/files/colored/README.txt b/games/default/files/colored/README.txt deleted file mode 100644 index 76139d727..000000000 --- a/games/default/files/colored/README.txt +++ /dev/null @@ -1,15 +0,0 @@ -MultiCraft Game mod: colored -============================ - -Include Colored Glass, Hardened Clay - -License of source code: ------------------------ -Copyright (C) 2019 MultiCraft Development Team - -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. - -http://www.gnu.org/licenses/lgpl-3.0.html diff --git a/games/default/files/colored/depends.txt b/games/default/files/colored/depends.txt deleted file mode 100644 index 2717befbe..000000000 --- a/games/default/files/colored/depends.txt +++ /dev/null @@ -1,2 +0,0 @@ -default -dye diff --git a/games/default/files/colored/init.lua b/games/default/files/colored/init.lua deleted file mode 100644 index 0f113749d..000000000 --- a/games/default/files/colored/init.lua +++ /dev/null @@ -1,73 +0,0 @@ -local dyes = dye.dyes - --- --- Colored Glass --- - -for i = 1, #dyes do - local name, desc = unpack(dyes[i]) - - minetest.register_node(":default:glass_" .. name, { - description = desc .. " Glass", - drawtype = "glasslike", - paramtype2 = "glasslikeliquidlevel", - paramtype = "light", - tiles = {"glass_" .. name .. ".png"}, - paramtype = "light", - sunlight_propagates = true, - is_ground_content = false, - use_texture_alpha = true, - groups = {cracky = 3, oddly_breakable_by_hand = 3, colorglass = 1}, - sounds = default.node_sound_glass_defaults(), - drop = "", - }) - - minetest.register_craft({ - output = "default:glass_" .. name, - recipe = { - {"default:glass", "group:dye,color_" .. name} - } - }) - - minetest.register_craft({ - output = "default:glass_" .. name, - recipe = { - {"group:colorglass", "group:dye,color_" .. name} - } - }) -end - -minetest.register_alias("default:glass_purple", "default:glass_violet") -minetest.register_alias("default:glass_light_blue", "default:glass_blue") -minetest.register_alias("default:glass_lime", "default:glass_green") -minetest.register_alias("default:glass_silver", "default:glass_grey") - --- --- Colored Hardened Clay --- - -for i = 1, #dyes do - local name, desc = unpack(dyes[i]) - - minetest.register_node(":hardened_clay:" .. name, { - description = desc .. " Hardened Clay", - tiles = {"hardened_clay_stained_" .. name .. ".png"}, - is_ground_content = false, - groups = {cracky = 3, hardened_clay = 1}, - sounds = default.node_sound_defaults(), - }) - - minetest.register_craft({ - output = ":hardened_clay:" .. name .. " 8", - recipe = { - {"group:hardened_clay", "group:hardened_clay", "group:hardened_clay"}, - {"group:hardened_clay", "group:dye,color_" .. name, "group:hardened_clay"}, - {"group:hardened_clay", "group:hardened_clay", "group:hardened_clay"}, - }, - }) -end - -minetest.register_alias("hardened_clay:purple", "hardened_clay:violet") -minetest.register_alias("hardened_clay:light_blue", "hardened_clay:blue") -minetest.register_alias("hardened_clay:lime", "hardened_clay:green") -minetest.register_alias("hardened_clay:silver", "hardened_clay:grey") diff --git a/games/default/files/colored/textures/glass_black.png b/games/default/files/colored/textures/glass_black.png deleted file mode 100644 index ca19b90b9..000000000 Binary files a/games/default/files/colored/textures/glass_black.png and /dev/null differ diff --git a/games/default/files/colored/textures/glass_blue.png b/games/default/files/colored/textures/glass_blue.png deleted file mode 100644 index a54e5b5d7..000000000 Binary files a/games/default/files/colored/textures/glass_blue.png and /dev/null differ diff --git a/games/default/files/colored/textures/glass_brown.png b/games/default/files/colored/textures/glass_brown.png deleted file mode 100644 index 96272db84..000000000 Binary files a/games/default/files/colored/textures/glass_brown.png and /dev/null differ diff --git a/games/default/files/colored/textures/glass_cyan.png b/games/default/files/colored/textures/glass_cyan.png deleted file mode 100644 index f633868d1..000000000 Binary files a/games/default/files/colored/textures/glass_cyan.png and /dev/null differ diff --git a/games/default/files/colored/textures/glass_dark_green.png b/games/default/files/colored/textures/glass_dark_green.png deleted file mode 100644 index c7e605e49..000000000 Binary files a/games/default/files/colored/textures/glass_dark_green.png and /dev/null differ diff --git a/games/default/files/colored/textures/glass_dark_grey.png b/games/default/files/colored/textures/glass_dark_grey.png deleted file mode 100644 index e5f7c99ae..000000000 Binary files a/games/default/files/colored/textures/glass_dark_grey.png and /dev/null differ diff --git a/games/default/files/colored/textures/glass_green.png b/games/default/files/colored/textures/glass_green.png deleted file mode 100644 index 0faf42e5e..000000000 Binary files a/games/default/files/colored/textures/glass_green.png and /dev/null differ diff --git a/games/default/files/colored/textures/glass_grey.png b/games/default/files/colored/textures/glass_grey.png deleted file mode 100644 index 1a100dc9c..000000000 Binary files a/games/default/files/colored/textures/glass_grey.png and /dev/null differ diff --git a/games/default/files/colored/textures/glass_magenta.png b/games/default/files/colored/textures/glass_magenta.png deleted file mode 100644 index e1d3e3f3f..000000000 Binary files a/games/default/files/colored/textures/glass_magenta.png and /dev/null differ diff --git a/games/default/files/colored/textures/glass_orange.png b/games/default/files/colored/textures/glass_orange.png deleted file mode 100644 index c48cce7bd..000000000 Binary files a/games/default/files/colored/textures/glass_orange.png and /dev/null differ diff --git a/games/default/files/colored/textures/glass_pink.png b/games/default/files/colored/textures/glass_pink.png deleted file mode 100644 index 6b4a3bf5d..000000000 Binary files a/games/default/files/colored/textures/glass_pink.png and /dev/null differ diff --git a/games/default/files/colored/textures/glass_red.png b/games/default/files/colored/textures/glass_red.png deleted file mode 100644 index f0509673f..000000000 Binary files a/games/default/files/colored/textures/glass_red.png and /dev/null differ diff --git a/games/default/files/colored/textures/glass_violet.png b/games/default/files/colored/textures/glass_violet.png deleted file mode 100644 index 6d18fc5cc..000000000 Binary files a/games/default/files/colored/textures/glass_violet.png and /dev/null differ diff --git a/games/default/files/colored/textures/glass_white.png b/games/default/files/colored/textures/glass_white.png deleted file mode 100644 index ebca35599..000000000 Binary files a/games/default/files/colored/textures/glass_white.png and /dev/null differ diff --git a/games/default/files/colored/textures/glass_yellow.png b/games/default/files/colored/textures/glass_yellow.png deleted file mode 100644 index 59007265b..000000000 Binary files a/games/default/files/colored/textures/glass_yellow.png and /dev/null differ diff --git a/games/default/files/colored/textures/hardened_clay.png b/games/default/files/colored/textures/hardened_clay.png deleted file mode 100644 index 754ab61b9..000000000 Binary files a/games/default/files/colored/textures/hardened_clay.png and /dev/null differ diff --git a/games/default/files/colored/textures/hardened_clay_stained_black.png b/games/default/files/colored/textures/hardened_clay_stained_black.png deleted file mode 100644 index df26c6f49..000000000 Binary files a/games/default/files/colored/textures/hardened_clay_stained_black.png and /dev/null differ diff --git a/games/default/files/colored/textures/hardened_clay_stained_blue.png b/games/default/files/colored/textures/hardened_clay_stained_blue.png deleted file mode 100644 index 9f7bac8b8..000000000 Binary files a/games/default/files/colored/textures/hardened_clay_stained_blue.png and /dev/null differ diff --git a/games/default/files/colored/textures/hardened_clay_stained_brown.png b/games/default/files/colored/textures/hardened_clay_stained_brown.png deleted file mode 100644 index 576577d0b..000000000 Binary files a/games/default/files/colored/textures/hardened_clay_stained_brown.png and /dev/null differ diff --git a/games/default/files/colored/textures/hardened_clay_stained_cyan.png b/games/default/files/colored/textures/hardened_clay_stained_cyan.png deleted file mode 100644 index c5d6af6e4..000000000 Binary files a/games/default/files/colored/textures/hardened_clay_stained_cyan.png and /dev/null differ diff --git a/games/default/files/colored/textures/hardened_clay_stained_dark_green.png b/games/default/files/colored/textures/hardened_clay_stained_dark_green.png deleted file mode 100644 index 8e25296eb..000000000 Binary files a/games/default/files/colored/textures/hardened_clay_stained_dark_green.png and /dev/null differ diff --git a/games/default/files/colored/textures/hardened_clay_stained_dark_grey.png b/games/default/files/colored/textures/hardened_clay_stained_dark_grey.png deleted file mode 100644 index b01309151..000000000 Binary files a/games/default/files/colored/textures/hardened_clay_stained_dark_grey.png and /dev/null differ diff --git a/games/default/files/colored/textures/hardened_clay_stained_green.png b/games/default/files/colored/textures/hardened_clay_stained_green.png deleted file mode 100644 index 25235094c..000000000 Binary files a/games/default/files/colored/textures/hardened_clay_stained_green.png and /dev/null differ diff --git a/games/default/files/colored/textures/hardened_clay_stained_grey.png b/games/default/files/colored/textures/hardened_clay_stained_grey.png deleted file mode 100644 index f002c3595..000000000 Binary files a/games/default/files/colored/textures/hardened_clay_stained_grey.png and /dev/null differ diff --git a/games/default/files/colored/textures/hardened_clay_stained_magenta.png b/games/default/files/colored/textures/hardened_clay_stained_magenta.png deleted file mode 100644 index 85ac3fc71..000000000 Binary files a/games/default/files/colored/textures/hardened_clay_stained_magenta.png and /dev/null differ diff --git a/games/default/files/colored/textures/hardened_clay_stained_orange.png b/games/default/files/colored/textures/hardened_clay_stained_orange.png deleted file mode 100644 index 1f7c74ef5..000000000 Binary files a/games/default/files/colored/textures/hardened_clay_stained_orange.png and /dev/null differ diff --git a/games/default/files/colored/textures/hardened_clay_stained_pink.png b/games/default/files/colored/textures/hardened_clay_stained_pink.png deleted file mode 100644 index 2b8152b14..000000000 Binary files a/games/default/files/colored/textures/hardened_clay_stained_pink.png and /dev/null differ diff --git a/games/default/files/colored/textures/hardened_clay_stained_red.png b/games/default/files/colored/textures/hardened_clay_stained_red.png deleted file mode 100644 index b6ae60a25..000000000 Binary files a/games/default/files/colored/textures/hardened_clay_stained_red.png and /dev/null differ diff --git a/games/default/files/colored/textures/hardened_clay_stained_violet.png b/games/default/files/colored/textures/hardened_clay_stained_violet.png deleted file mode 100644 index 600eafce4..000000000 Binary files a/games/default/files/colored/textures/hardened_clay_stained_violet.png and /dev/null differ diff --git a/games/default/files/colored/textures/hardened_clay_stained_white.png b/games/default/files/colored/textures/hardened_clay_stained_white.png deleted file mode 100644 index 36afbd8a2..000000000 Binary files a/games/default/files/colored/textures/hardened_clay_stained_white.png and /dev/null differ diff --git a/games/default/files/colored/textures/hardened_clay_stained_yellow.png b/games/default/files/colored/textures/hardened_clay_stained_yellow.png deleted file mode 100644 index 552a73a25..000000000 Binary files a/games/default/files/colored/textures/hardened_clay_stained_yellow.png and /dev/null differ diff --git a/games/default/files/creative/README.txt b/games/default/files/creative/README.txt deleted file mode 100644 index de6b66fb8..000000000 --- a/games/default/files/creative/README.txt +++ /dev/null @@ -1,8 +0,0 @@ -MultiCraft Game mod: creative -=========================== -See license.txt for license information. - -Authors of source code ----------------------- -Originally by Perttu Ahola (celeron55) (MIT) -Jean-Patrick G. (kilbith) (MIT) diff --git a/games/default/files/creative/depends.txt b/games/default/files/creative/depends.txt deleted file mode 100644 index 975e65250..000000000 --- a/games/default/files/creative/depends.txt +++ /dev/null @@ -1,2 +0,0 @@ -default -sfinv diff --git a/games/default/files/creative/init.lua b/games/default/files/creative/init.lua deleted file mode 100644 index f0ed78409..000000000 --- a/games/default/files/creative/init.lua +++ /dev/null @@ -1,33 +0,0 @@ -creative = {} - -local creative_mode_cache = minetest.settings:get_bool("creative_mode") - -function creative.is_enabled_for(name) - return creative_mode_cache -end - -dofile(minetest.get_modpath("creative") .. "/inventory.lua") - --- Unlimited node placement -minetest.register_on_placenode(function(pos, newnode, placer, oldnode, itemstack) - if placer and placer:is_player() then - return creative.is_enabled_for(placer:get_player_name()) - end -end) - --- Don't pick up if the item is already in the inventory -local old_handle_node_drops = minetest.handle_node_drops -function minetest.handle_node_drops(pos, drops, digger) - if not digger or not digger:is_player() or - not creative.is_enabled_for(digger:get_player_name()) then - return old_handle_node_drops(pos, drops, digger) - end - local inv = digger:get_inventory() - if inv then - for _, item in ipairs(drops) do - if not inv:contains_item("main", item, true) then - inv:add_item("main", item) - end - end - end -end diff --git a/games/default/files/creative/inventory.lua b/games/default/files/creative/inventory.lua deleted file mode 100644 index 2c2041ee9..000000000 --- a/games/default/files/creative/inventory.lua +++ /dev/null @@ -1,439 +0,0 @@ -local has_armor = minetest.get_modpath("3d_armor") -local player_inventory = {} -local inventory_cache = {} - -local ofs_tab = {} -local ofs_img = {} -local bg = {} -local rot = {} - -rot["blocks"] = "" -rot["stairs"] = "" -rot["bluestone"] = "" -rot["rail"] = "" -rot["misc"] = "" -rot["food"] = "" -rot["tools"] = "" -rot["matr"] = "" -rot["brew"] = "" -rot["all"] = "^[transformR270" -rot["inv"] = "^[transformR270" - -ofs_tab["blocks"] = "-0.28,-0.35" -ofs_tab["stairs"] = "0.88,-0.35" -ofs_tab["bluestone"] = "2.05,-0.35" -ofs_tab["rail"] = "3.22,-0.35" -ofs_tab["misc"] = "4.4,-0.35" -ofs_tab["food"] = "5.57,-0.35" -ofs_tab["tools"] = "6.74,-0.35" -ofs_tab["matr"] = "7.91,-0.35" -ofs_tab["brew"] = "9.07,-0.35" -ofs_tab["all"] = "10.15,0.83" -ofs_tab["inv"] = "10.15,6.94" - -ofs_img["blocks"] = "-0.13,-0.15" -ofs_img["stairs"] = "1.03,-0.15" -ofs_img["bluestone"] = "2.2,-0.15" -ofs_img["rail"] = "3.39,-0.15" -ofs_img["misc"] = "4.54,-0.15" -ofs_img["food"] = "5.72,-0.15" -ofs_img["tools"] = "6.87,-0.15" -ofs_img["matr"] = "8.05,-0.15" -ofs_img["brew"] = "9.22,-0.15" -ofs_img["all"] = "10.26,0.98" -ofs_img["inv"] = "10.26,7.1" - -bg["blocks"] = "default:dirt_with_grass" -bg["stairs"] = "stairs:stair_default_mossycobble" -bg["bluestone"] = "mesecons_lightstone:lightstone_on" -bg["rail"] = "boats:boat" -bg["misc"] = "bucket:bucket_lava" -bg["food"] = "default:apple" -bg["tools"] = "default:pick_diamond" -bg["matr"] = "default:emerald" -bg["brew"] = "vessels:glass_bottle" -bg["all"] = "default:paper" -bg["inv"] = "default:chest" - -local function found_in_list(name, list) - for _, v in pairs(list) do - if name:find(v) then - return true - end - end -end - -local filters = { - ["all"] = function(name, def, groups) - return true and not def.groups.stairs - end, - ["blocks"] = function(name, def, groups) - return minetest.registered_nodes[name] and - not def.mesecons and not def.groups.stairs and - (def.drawtype == "normal" or def.drawtype:sub(1,5) == "glass" or def.drawtype:sub(1,8) == "allfaces") or - found_in_list(name, {"cactus", "slimeblock"}) - end, - ["stairs"] = function(name, def, groups) - return def.groups.stairs - end, - ["bluestone"] = function(name) - return name:find("mese") or found_in_list(name, {"^bluestone_torch:", "^tnt:", "^doors:"}) - end, - ["rail"] = function(name, _, groups) - return found_in_list(name, {"^boats:", "^carts:"}) or groups.rail - end, - ["food"] = function(name, def, groups) - return def.groups.food - end, - ["tools"] = function(name) - return minetest.registered_tools[name] or - found_in_list(name, {"arrow",}) - end, - ["matr"] = function(name, def, groups) - return minetest.registered_craftitems[name] and - not found_in_list(name, {"^boats:", "^carts:", "^boats:", "^vessels:", "^pep:", "^bucket:", "^doors:"}) and - not def.on_use - end, - ["brew"] = function(name) - return found_in_list(name, {"^vessels:", "^pep:"}) - end, -} - --- Not found in any other category except all -filters["misc"] = function(name, def, groups) - for filter, func in pairs(filters) do - if filter ~= "misc" and filter ~= "all" and func(name, def, groups) then - return - end - end - return true -end - -local function init_creative_cache(tab_name, category) - inventory_cache[tab_name] = {} - local i_cache = inventory_cache[tab_name] - local filter = filters[category] or function() return end - for name, def in pairs(minetest.registered_items) do - local groups = def.groups or {} - if def.description and def.description ~= "" and - groups.not_in_creative_inventory ~= 1 and - filter(name, def, groups) then - i_cache[name] = def.description - end - end - table.sort(i_cache) -end - -local function init_creative_inventory(player_name) - player_inventory[player_name] = { - size = 0, - filter = "", - start_i = 0, - list = {}, - } - return player_inventory[player_name] -end - -local function update_creative_inventory(player_name, tab_name) - local player = minetest.get_player_by_name(player_name) - if not player or not player:is_player() then - return - end - local inv = player_inventory[player_name] or - init_creative_inventory(player_name) - local creative_list = inv.list - for k in pairs (creative_list) do - creative_list[k] = nil - end - local items = inventory_cache[tab_name] or {} - local filter = tab_name == "all" and inv.filter or "" - for name, description in pairs(items) do - if name:find(inv.filter, 1, true) or - description:lower():find(filter, 1, true) then - creative_list[#creative_list + 1] = name - end - end - table.sort(creative_list) - inv.size = #creative_list - inv.filter = filter -end - -local function get_button_formspec(player_name, start_i) - local buttons = "" - local inv = player_inventory[player_name] or - init_creative_inventory(player_name) - local creative_list = inv.list or {} - local i = start_i + 1 - for y = 0, 4 do - for x = 0, 8 do - local item = creative_list[i] - if not item then - return buttons - end - local def = minetest.registered_items[item] - local tooltip = def and def.description or "" - buttons = buttons.."item_image[".. - (x + 0.02)..","..(y + 1.68)..";1,1;"..item.."]image_button[".. - (x + 0.02)..","..(y + 1.68)..";1,1;blank.png;"..item.. - ";;;false;button_pressed.png]".. - "tooltip["..item..";"..tooltip..";#000;#FFF]" - - i = i + 1 - end - end - return buttons -end - -local function get_creative_formspec(player_name, start_i, pagenum, page, pagemax) - page = page or "all" - pagenum = pagenum or 1 - pagemax = (pagemax and pagemax ~= 0) and pagemax or 1 - local slider_height = 4.52 / pagemax - local slider_pos = 4 / pagemax * (pagenum - 1) + 2.14 - if pagenum > 1 then - slider_pos = slider_pos - 0.05 - end - local main_list = get_button_formspec(player_name, start_i) - if page == "inv" then - main_list = "image[-0.2,1.6;11.35,2.33;creative_bg.png]".. - "list[current_player;main;0.02,3.68;9,3;9]" - if has_armor then - main_list = main_list.."image[-0.3,0.15;3,4.3;inventory_armor.png]".. - "list[detached:"..player_name.."_armor;armor;0.03,1.69;1,1;]".. - "list[detached:"..player_name.."_armor;armor;0.03,2.69;1,1;1]".. - "list[detached:"..player_name.."_armor;armor;0.99,1.69;1,1;2]".. - "list[detached:"..player_name.."_armor;armor;0.99,2.69;1,1;3]" - end - end - local formspec = "image_button_exit[10.4,-0.1;0.75,0.75;close.png;exit;;true;false;close_pressed.png]".. - "background[-0.2,-0.26;11.55,8.49;inventory_creative.png]".. - sfinv.gui_bg.. - sfinv.listcolors.. - "label[-5,-5;"..page.."]".. - - "image_button["..ofs_tab["blocks"]..";1.3,1.3;creative_tab.png;build;;;false;creative_tab_pressed.png]".. - "item_image["..ofs_img["blocks"]..";1,1;"..bg["blocks"].."]".. - - "image_button["..ofs_tab["stairs"]..";1.3,1.3;creative_tab.png;stairs;;;false;creative_tab_pressed.png]".. - "item_image["..ofs_img["stairs"]..";1,1;"..bg["stairs"].."]".. - - "image_button["..ofs_tab["bluestone"]..";1.3,1.3;creative_tab.png;bluestone;;;false;creative_tab_pressed.png]".. - "item_image["..ofs_img["bluestone"]..";1,1;"..bg["bluestone"].."]".. - - "image_button["..ofs_tab["rail"]..";1.3,1.3;creative_tab.png;rail;;;false;creative_tab_pressed.png]".. - "item_image["..ofs_img["rail"]..";1,1;"..bg["rail"].."]".. - - "image_button["..ofs_tab["misc"]..";1.3,1.3;creative_tab.png;misc;;;false;creative_tab_pressed.png]".. - "item_image["..ofs_img["misc"]..";1,1;"..bg["misc"].."]".. - - "image_button["..ofs_tab["food"]..";1.3,1.3;creative_tab.png;food;;;false;creative_tab_pressed.png]".. - "item_image["..ofs_img["food"]..";1,1;"..bg["food"].."]".. - - "image_button["..ofs_tab["tools"]..";1.3,1.3;creative_tab.png;tools;;;false;creative_tab_pressed.png]".. - "item_image["..ofs_img["tools"]..";1,1;"..bg["tools"].."]".. - - "image_button["..ofs_tab["matr"]..";1.3,1.3;creative_tab.png;matr;;;false;creative_tab_pressed.png]".. - "item_image["..ofs_img["matr"]..";1,1;"..bg["matr"].."]".. - - "image_button["..ofs_tab["brew"]..";1.3,1.3;creative_tab.png;brew;;;false;creative_tab_pressed.png]".. - "item_image["..ofs_img["brew"]..";1,1;"..bg["brew"].."]".. - - "image_button["..ofs_tab["all"]..";1.3,1.3;blank.png;default;;;false]".. - "item_image["..ofs_img["all"]..";1,1;"..bg["all"].."]".. - - "image_button["..ofs_tab["inv"]..";1.3,1.3;blank.png;inv;;;false]".. - "item_image["..ofs_img["inv"]..";1,1;"..bg["inv"].."]".. - - "image_button_exit[10.3,2.5;1,1;creative_home_set.png;sethome_set;;true;false]".. - "tooltip[sethome_set;Set Home;#000;#FFF]".. - "image_button_exit[10.3,3.5;1,1;creative_home_go.png;sethome_go;;true;false]".. - "tooltip[sethome_go;Go Home;#000;#FFF]".. - "image[0,0.95;5,0.75;fnt_"..page..".png]".. - "image_button[9.145,1.65;0.81,0.6;blank.png;creative_prev;;;false]" .. - "image_button[9.145,6.08;0.81,0.6;blank.png;creative_next;;;false]" .. - "list[current_player;main;0.02,6.93;9,1;]"..main_list.. - "list[detached:creative_trash;main;9.03,6.94;1,1;]".. - "image["..ofs_tab[page]..";1.4,1.4;creative_tab_active.png"..rot[page].."]".. - "item_image["..ofs_img[page]..";1,1;"..bg[page].."]".. - "image[9.165," .. tostring(slider_pos) .. ";0.7,"..tostring(slider_height) .. ";creative_slider.png]" - if page == "all" then - local inv = player_inventory[player_name] or {} - local filter = inv.filter or "" - formspec = formspec .. "field_close_on_enter[Dsearch;false]".. - "field[5.31,1.27;4.0,0.75;Dsearch;;"..filter.."]" - if PLATFORM == "Android" or PLATFORM == "iOS" or not minetest.is_singleplayer() then - formspec = formspec .. - "image_button[9.14,0.93;0.81,0.82;creative_search.png;creative_search;;;false]" - end - end - if pagenum ~= nil then - formspec = formspec .. "p"..tostring(pagenum) - end - return formspec -end - -local function add_to_player_inventory(player, item) - if not player or not player:is_player() or not item then - return - end - local inv = player:get_inventory() - if not inv then - return - end - local def = minetest.registered_items[item] - if not def or (def.groups and def.groups.not_in_creative_inventory == 1) then - return - end - local empty_slot = nil - local list = inv:get_list("main") - if list and #list > 8 then - for i = 1, 9 do - local stack = list[i] - if stack then - if not empty_slot and stack:get_count() == 0 then - empty_slot = i - elseif stack:get_name() == item and - stack:get_free_space() > 0 then - stack:add_item(item) - inv:set_stack("main", i, stack) - return - end - end - end - if empty_slot then - local stack = list[empty_slot] - stack:add_item(item) - inv:set_stack("main", empty_slot, stack) - end - end -end - -local function register_tab(name, title, group) - init_creative_cache(name, group) - sfinv.register_page("creative:" .. name, { - title = title, - is_in_nav = function(self, player, context) - return creative.is_enabled_for(player:get_player_name()) - end, - get = function(self, player, context) - local player_name = player:get_player_name() - update_creative_inventory(player_name, name) - local inv = player_inventory[player_name] - local start_i = inv.start_i or 0 - local pagenum = math.floor(start_i / (5*9) + 1) - local pagemax = math.ceil(inv.size / (5*9)) - local formspec = get_creative_formspec(player_name, start_i, - pagenum, name, pagemax) - return sfinv.make_formspec(player, context, formspec, false, "size[11,7.7]") - end, - on_enter = function(self, player, context) - local player_name = player:get_player_name() - local inv = player_inventory[player_name] - if inv then - inv.start_i = 0 - end - end, - on_player_receive_fields = function(self, player, context, fields) - local player_name = player:get_player_name() - local inv = player_inventory[player_name] - if not inv then - return - end - if creative.is_enabled_for(player_name) then - for field, _ in pairs(fields) do - if field:find(":") then - add_to_player_inventory(player, field) - return - end - end - end - inv.filter = fields.Dsearch and fields.Dsearch:lower() or "" - if fields.build then - sfinv.set_page(player, "creative:blocks") - elseif fields.stairs then - sfinv.set_page(player, "creative:stairs") - elseif fields.bluestone then - sfinv.set_page(player, "creative:bluestone") - elseif fields.rail then - sfinv.set_page(player, "creative:rail") - elseif fields.misc then - sfinv.set_page(player, "creative:misc") - elseif fields.default then - sfinv.set_page(player, "creative:all") - elseif fields.food then - sfinv.set_page(player, "creative:food") - elseif fields.tools then - sfinv.set_page(player, "creative:tools") - elseif fields.combat then - sfinv.set_page(player, "creative:combat") - elseif fields.matr then - sfinv.set_page(player, "creative:matr") - elseif fields.inv then - sfinv.set_page(player, "creative:inv") - elseif fields.brew then - sfinv.set_page(player, "creative:brew") - elseif fields.Dsearch and - (fields.creative_search or - fields.key_enter_field == "Dsearch") then - inv.start_i = 0 - --inv.filter = fields.Dsearch:lower() - update_creative_inventory(player_name, name) - sfinv.set_player_inventory_formspec(player, context) - elseif not fields.quit then - local start_i = inv.start_i or 0 - if fields.creative_prev then - start_i = start_i - 5*9 - if start_i < 0 then - start_i = inv.size - (inv.size % (5*9)) - if inv.size == start_i then - start_i = math.max(0, inv.size - (5*9)) - end - end - elseif fields.creative_next then - start_i = start_i + 5*9 - if start_i >= inv.size then - start_i = 0 - end - end - inv.start_i = start_i - sfinv.set_player_inventory_formspec(player, context) - end - end - }) -end - -register_tab("inv", "Inv") -minetest.after(0, function() - register_tab("all", "All", "all") - register_tab("blocks", "1", "blocks") - register_tab("stairs", "2", "stairs") - register_tab("bluestone", "3", "bluestone") - register_tab("rail", "4", "rail") - register_tab("misc", "5", "misc") - register_tab("food", "6", "food") - register_tab("tools", "7", "tools") - register_tab("matr", "8", "matr") - register_tab("brew", "9", "brew") -end) - -local old_homepage_name = sfinv.get_homepage_name -function sfinv.get_homepage_name(player) - if creative.is_enabled_for(player:get_player_name()) then - return "creative:all" - else - return old_homepage_name(player) - end -end - --- Create the trash field -local trash = minetest.create_detached_inventory("creative_trash", { - -- Allow the stack to be placed and remove it in on_put() - -- This allows the creative inventory to restore the stack - allow_put = function(inv, listname, index, stack, player) - return stack:get_count() - end, - on_put = function(inv, listname) - inv:set_list(listname, {}) - end, -}) -trash:set_size("main", 1) diff --git a/games/default/files/creative/license.txt b/games/default/files/creative/license.txt deleted file mode 100644 index 4ad1d5ffd..000000000 --- a/games/default/files/creative/license.txt +++ /dev/null @@ -1,60 +0,0 @@ -License of source code ----------------------- - -The MIT License (MIT) -Copyright (C) 2012-2016 Perttu Ahola (celeron55) -Copyright (C) 2015-2016 Jean-Patrick G. (kilbith) - -Permission is hereby granted, free of charge, to any person obtaining a copy of this -software and associated documentation files (the "Software"), to deal in the Software -without restriction, including without limitation the rights to use, copy, modify, merge, -publish, distribute, sublicense, and/or sell copies of the Software, and to permit -persons to whom the Software is furnished to do so, subject to the following conditions: - -The above copyright notice and this permission notice shall be included in all copies or -substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, -INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR -PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE -FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR -OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER -DEALINGS IN THE SOFTWARE. - -For more details: -https://opensource.org/licenses/MIT - - -Licenses of media (textures) ----------------------------- - -Attribution-ShareAlike 3.0 Unported (CC BY-SA 3.0) -Copyright (C) 2016 Jean-Patrick G. (kilbith) - -You are free to: -Share — copy and redistribute the material in any medium or format. -Adapt — remix, transform, and build upon the material for any purpose, even commercially. -The licensor cannot revoke these freedoms as long as you follow the license terms. - -Under the following terms: - -Attribution — You must give appropriate credit, provide a link to the license, and -indicate if changes were made. You may do so in any reasonable manner, but not in any way -that suggests the licensor endorses you or your use. - -ShareAlike — If you remix, transform, or build upon the material, you must distribute -your contributions under the same license as the original. - -No additional restrictions — You may not apply legal terms or technological measures that -legally restrict others from doing anything the license permits. - -Notices: - -You do not have to comply with the license for elements of the material in the public -domain or where your use is permitted by an applicable exception or limitation. -No warranties are given. The license may not give you all of the permissions necessary -for your intended use. For example, other rights such as publicity, privacy, or moral -rights may limit how you use the material. - -For more details: -http://creativecommons.org/licenses/by-sa/3.0/ diff --git a/games/default/files/creative/textures/button_pressed.png b/games/default/files/creative/textures/button_pressed.png deleted file mode 100644 index 11b3293e7..000000000 Binary files a/games/default/files/creative/textures/button_pressed.png and /dev/null differ diff --git a/games/default/files/creative/textures/creative_bg.png b/games/default/files/creative/textures/creative_bg.png deleted file mode 100644 index 34fc51fc0..000000000 Binary files a/games/default/files/creative/textures/creative_bg.png and /dev/null differ diff --git a/games/default/files/creative/textures/creative_search.png b/games/default/files/creative/textures/creative_search.png deleted file mode 100644 index 5b02d4316..000000000 Binary files a/games/default/files/creative/textures/creative_search.png and /dev/null differ diff --git a/games/default/files/creative/textures/creative_slider.png b/games/default/files/creative/textures/creative_slider.png deleted file mode 100644 index d51eea155..000000000 Binary files a/games/default/files/creative/textures/creative_slider.png and /dev/null differ diff --git a/games/default/files/creative/textures/creative_tab.png b/games/default/files/creative/textures/creative_tab.png deleted file mode 100644 index f638cdae3..000000000 Binary files a/games/default/files/creative/textures/creative_tab.png and /dev/null differ diff --git a/games/default/files/creative/textures/creative_tab_active.png b/games/default/files/creative/textures/creative_tab_active.png deleted file mode 100644 index 63cb1ef35..000000000 Binary files a/games/default/files/creative/textures/creative_tab_active.png and /dev/null differ diff --git a/games/default/files/creative/textures/creative_tab_pressed.png b/games/default/files/creative/textures/creative_tab_pressed.png deleted file mode 100644 index ce5bc7d3a..000000000 Binary files a/games/default/files/creative/textures/creative_tab_pressed.png and /dev/null differ diff --git a/games/default/files/creative/textures/fnt_all.png b/games/default/files/creative/textures/fnt_all.png deleted file mode 100644 index 963fdda6d..000000000 Binary files a/games/default/files/creative/textures/fnt_all.png and /dev/null differ diff --git a/games/default/files/creative/textures/fnt_blocks.png b/games/default/files/creative/textures/fnt_blocks.png deleted file mode 100644 index dd49aa2d8..000000000 Binary files a/games/default/files/creative/textures/fnt_blocks.png and /dev/null differ diff --git a/games/default/files/creative/textures/fnt_bluestone.png b/games/default/files/creative/textures/fnt_bluestone.png deleted file mode 100644 index 62cc092dd..000000000 Binary files a/games/default/files/creative/textures/fnt_bluestone.png and /dev/null differ diff --git a/games/default/files/creative/textures/fnt_brew.png b/games/default/files/creative/textures/fnt_brew.png deleted file mode 100644 index e3b631db6..000000000 Binary files a/games/default/files/creative/textures/fnt_brew.png and /dev/null differ diff --git a/games/default/files/creative/textures/fnt_combat.png b/games/default/files/creative/textures/fnt_combat.png deleted file mode 100644 index e2e35be61..000000000 Binary files a/games/default/files/creative/textures/fnt_combat.png and /dev/null differ diff --git a/games/default/files/creative/textures/fnt_food.png b/games/default/files/creative/textures/fnt_food.png deleted file mode 100644 index 2649ede0b..000000000 Binary files a/games/default/files/creative/textures/fnt_food.png and /dev/null differ diff --git a/games/default/files/creative/textures/fnt_inv.png b/games/default/files/creative/textures/fnt_inv.png deleted file mode 100644 index a513a20e0..000000000 Binary files a/games/default/files/creative/textures/fnt_inv.png and /dev/null differ diff --git a/games/default/files/creative/textures/fnt_matr.png b/games/default/files/creative/textures/fnt_matr.png deleted file mode 100644 index 538a7d0aa..000000000 Binary files a/games/default/files/creative/textures/fnt_matr.png and /dev/null differ diff --git a/games/default/files/creative/textures/fnt_misc.png b/games/default/files/creative/textures/fnt_misc.png deleted file mode 100644 index b12930f40..000000000 Binary files a/games/default/files/creative/textures/fnt_misc.png and /dev/null differ diff --git a/games/default/files/creative/textures/fnt_rail.png b/games/default/files/creative/textures/fnt_rail.png deleted file mode 100644 index 52c82f3a6..000000000 Binary files a/games/default/files/creative/textures/fnt_rail.png and /dev/null differ diff --git a/games/default/files/creative/textures/fnt_stairs.png b/games/default/files/creative/textures/fnt_stairs.png deleted file mode 100644 index ff07c19b2..000000000 Binary files a/games/default/files/creative/textures/fnt_stairs.png and /dev/null differ diff --git a/games/default/files/creative/textures/fnt_tools.png b/games/default/files/creative/textures/fnt_tools.png deleted file mode 100644 index 6d57024b6..000000000 Binary files a/games/default/files/creative/textures/fnt_tools.png and /dev/null differ diff --git a/games/default/files/creative/textures/inventory_armor.png b/games/default/files/creative/textures/inventory_armor.png deleted file mode 100644 index bd9490630..000000000 Binary files a/games/default/files/creative/textures/inventory_armor.png and /dev/null differ diff --git a/games/default/files/creative/textures/inventory_creative.png b/games/default/files/creative/textures/inventory_creative.png deleted file mode 100644 index f9661ffa4..000000000 Binary files a/games/default/files/creative/textures/inventory_creative.png and /dev/null differ diff --git a/games/default/files/default/README.txt b/games/default/files/default/README.txt deleted file mode 100644 index 417ef9a6c..000000000 --- a/games/default/files/default/README.txt +++ /dev/null @@ -1,162 +0,0 @@ -MultiCraft Game: default -======================== -See license.txt for license information. - -Authors of source code ----------------------- -Originally by celeron55, Perttu Ahola (LGPLv3.0+) -Various Minetest developers and contributors (LGPLv3.0+) -MoNTE48, Maksim D. Gamarnik (LGPLv3.0+) -MultiCraft Development Team (LGPLv3.0+) - -The torch code was derived by sofar from the 'torches' mod by -BlockMen (LGPLv3.0+) - -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. - -http://www.gnu.org/licenses/lgpl-3.0.html - - -Authors of media (textures, sounds, models and schematics) ----------------------------------------------------------- -Everything not listed in here: -celeron55, Perttu Ahola (CC BY-SA 3.0) - ------- -Glass breaking sounds (CC BY 3.0): - 1: http://www.freesound.org/people/cmusounddesign/sounds/71947/ - 2: http://www.freesound.org/people/Tomlija/sounds/97669/ - 3: http://www.freesound.org/people/lsprice/sounds/88808/ - -Mito551 (sounds) (CC BY-SA 3.0): - default_dig_choppy.ogg - default_dig_cracky.ogg - default_dig_crumbly.1.ogg - default_dig_crumbly.2.ogg - default_dig_dig_immediate.ogg - default_dig_oddly_breakable_by_hand.ogg - default_dug_node.1.ogg - default_dug_node.2.ogg - default_grass_footstep.1.ogg - default_grass_footstep.2.ogg - default_grass_footstep.3.ogg - default_gravel_footstep.1.ogg - default_gravel_footstep.2.ogg - default_gravel_footstep.3.ogg - default_gravel_footstep.4.ogg - default_grass_footstep.1.ogg - default_place_node.1.ogg - default_place_node.2.ogg - default_place_node.3.ogg - default_place_node_hard.1.ogg - default_place_node_hard.2.ogg - default_hard_footstep.1.ogg - default_hard_footstep.2.ogg - default_hard_footstep.3.ogg - default_sand_footstep.1.ogg - default_sand_footstep.2.ogg - default_wood_footstep.1.ogg - default_wood_footstep.2.ogg - default_dirt_footstep.1.ogg - default_dirt_footstep.2.ogg - default_glass_footstep.ogg - -Metal sounds: - default_dig_metal.ogg - yadronoff - CC-BY-3.0 - - https://www.freesound.org/people/yadronoff/sounds/320397/ - default_dug_metal.*.ogg - Iwan Gabovitch - qubodup - CC0 - - http://opengameart.org/users/qubodup - default_metal_footstep.*.ogg - Ottomaani138 - CC0 - - https://www.freesound.org/people/Ottomaani138/sounds/232692/ - default_place_node_metal.*.ogg - Ogrebane - CC0 - - http://opengameart.org/content/wood-and-metal-sound-effects-volume-2 - -Tool breaking sounds added by sofar: CC-BY-3.0 - default_tool_breaks.* - http://www.freesound.org/people/HerbertBoland/sounds/33206/ - -AGFX (CC BY 3.0): -https://www.freesound.org/people/AGFX/packs/1253/ - default_water_footstep.1.ogg - default_water_footstep.2.ogg - default_water_footstep.3.ogg -(default_water_footstep.4.ogg is silent) - -blukotek (CC0 1.0): -https://www.freesound.org/people/blukotek/sounds/251660/ - default_dig_snappy.ogg - -Chests sounds added by sofar, derived of several files mixed together: - default_chest_open.ogg - default_chest_close.ogg - - http://www.freesound.org/people/Sevin7/sounds/269722/ CC0 - - http://www.freesound.org/people/Percy%20Duke/sounds/23448/ CC-BY-3.0 - - http://www.freesound.org/people/kingsamas/sounds/135576/ CC-BY-3.0 - - http://www.freesound.org/people/bulbastre/sounds/126887/ CC-BY-3.0 - - http://www.freesound.org/people/Yoyodaman234/sounds/183541/ CC0 - -Ryding (CC0 1.0): -http://freesound.org/people/Ryding/sounds/94337/ - default_snow_footstep.*.ogg - -Ferk (CC0 1.0): - default_item_smoke.ogg, based on a sound by http://opengameart.org/users/bart - -wool_coat_movement.ogg from freeSFX.co.uk and has a Creative Commons license - - player_damage.1.ogg - player_damage.2.ogg - player_damage.3.ogg - http://www.freesound.org/people/thecheeseman/sounds/44428/ - http://www.freesound.org/people/thecheeseman/sounds/44429/ - http://www.freesound.org/people/thecheeseman/sounds/44430/ - - player_damage.1.ogg from TenPlus1 mobs_redo mod (Creative Commons sounds from Freesound.org) - - sonictechtonic (CC BY 3.0): -https://www.freesound.org/people/sonictechtonic/sounds/241872/ - player_damage.2.ogg - - -Models ------- -sofar (CC BY-SA 3.0): - torch_ceiling.obj - torch_floor.obj - torch_wall.obj - -Schematics ----------- -paramat (CC BY-SA 3.0): - acacia_bush.mts - acacia_tree.mts - acacia_tree_from_sapling.mts - apple_tree.mts - apple_tree_from_sapling.mts - birch_tree.mts - birch_tree_from_sapling.mts - bush.mts - emergent_jungle_tree.mts - emergent_jungle_tree_from_sapling.mts - jungle_tree.mts - jungle_tree_from_sapling.mts - large_cactus.mts - papyrus.mts - pine_tree.mts - pine_tree_from_sapling.mts - snowy_pine_tree_from_sapling.mts - small_pine_tree.mts - small_pine_tree_from_sapling.mts - snowy_small_pine_tree_from_sapling.mts - -Shara RedCat (CC BY-SA 3.0): - acacia_log.mts - apple_log.mts - birch_log.mts - jungle_log.mts - pine_log.mts - -TumeniNodes (CC BY-SA 3.0): - pine_bush.mts diff --git a/games/default/files/default/aliases.lua b/games/default/files/default/aliases.lua deleted file mode 100644 index a7504b3eb..000000000 --- a/games/default/files/default/aliases.lua +++ /dev/null @@ -1,101 +0,0 @@ --- mods/default/aliases.lua - --- Aliases to support loading worlds using nodes following the old naming convention --- These can also be helpful when using chat commands, for example /giveme -minetest.register_alias("stone", "default:stone") -minetest.register_alias("stone_with_coal", "default:stone_with_coal") -minetest.register_alias("stone_with_iron", "default:stone_with_iron") -minetest.register_alias("dirt_with_grass", "default:dirt_with_grass") -minetest.register_alias("dirt_with_grass_footsteps", "default:dirt_with_grass_footsteps") -minetest.register_alias("dirt", "default:dirt") -minetest.register_alias("sand", "default:sand") -minetest.register_alias("gravel", "default:gravel") -minetest.register_alias("sandstone", "default:sandstone") -minetest.register_alias("clay", "default:clay") -minetest.register_alias("brick", "default:brick") -minetest.register_alias("tree", "default:tree") -minetest.register_alias("jungletree", "default:jungletree") -minetest.register_alias("junglegrass", "default:junglegrass") -minetest.register_alias("leaves", "default:leaves") -minetest.register_alias("cactus", "default:cactus") -minetest.register_alias("papyrus", "default:sugarcane") -minetest.register_alias("bookshelf", "default:bookshelf") -minetest.register_alias("glass", "default:glass") -minetest.register_alias("wooden_fence", "default:fence_wood") -minetest.register_alias("ladder", "default:ladder") -minetest.register_alias("wood", "default:wood") -minetest.register_alias("water_flowing", "default:water_flowing") -minetest.register_alias("water_source", "default:water_source") -minetest.register_alias("lava_flowing", "default:lava_flowing") -minetest.register_alias("lava_source", "default:lava_source") -minetest.register_alias("torch", "default:torch") -minetest.register_alias("sign_wall", "default:sign_wall") -minetest.register_alias("signs:sign_wall", "signs:sign") -minetest.register_alias("furnace", "default:furnace") -minetest.register_alias("chest", "default:chest") -minetest.register_alias("locked_chest", "default:chest_locked") -minetest.register_alias("cobble", "default:cobble") -minetest.register_alias("mossycobble", "default:mossycobble") -minetest.register_alias("steelblock", "default:steelblock") -minetest.register_alias("sapling", "default:sapling") -minetest.register_alias("apple", "default:apple") - -minetest.register_alias("WPick", "default:pick_wood") -minetest.register_alias("STPick", "default:pick_stone") -minetest.register_alias("SteelPick", "default:pick_steel") -minetest.register_alias("WShovel", "default:shovel_wood") -minetest.register_alias("STShovel", "default:shovel_stone") -minetest.register_alias("SteelShovel", "default:shovel_steel") -minetest.register_alias("WAxe", "default:axe_wood") -minetest.register_alias("STAxe", "default:axe_stone") -minetest.register_alias("SteelAxe", "default:axe_steel") -minetest.register_alias("WSword", "default:sword_wood") -minetest.register_alias("STSword", "default:sword_stone") -minetest.register_alias("SteelSword", "default:sword_steel") - -minetest.register_alias("Stick", "default:stick") -minetest.register_alias("paper", "default:paper") -minetest.register_alias("book", "default:book") -minetest.register_alias("lump_of_coal", "default:coal_lump") -minetest.register_alias("lump_of_iron", "default:iron_lump") -minetest.register_alias("lump_of_clay", "default:clay_lump") -minetest.register_alias("steel_ingot", "default:steel_ingot") -minetest.register_alias("clay_brick", "default:clay_brick") -minetest.register_alias("snow", "default:snow") - --- Aliases for corrected pine node names -minetest.register_alias("default:pinetree", "default:pine_tree") -minetest.register_alias("default:pinewood", "default:pine_wood") - --- Gold nugget -minetest.register_alias("default:gold_nugget", "default:gold_ingot") - --- Sandstone Carved -minetest.register_alias("default:sandstonecarved", "default:sandstonesmooth") - --- Workbench -minetest.register_alias("crafting:workbench", "workbench:workbench") -minetest.register_alias("default:workbench", "workbench:workbench") - --- String -minetest.register_alias("default:string", "farming:string") - --- Hay Bale -minetest.register_alias("default:haybale", "farming:straw") - --- Ladder -minetest.register_alias("default:ladder", "default:ladder_wood") - --- Ladder -minetest.register_alias("default:reeds", "default:sugarcane") -minetest.register_alias("default:papyrus", "default:sugarcane") - --- Fences -minetest.register_alias("fences:fence_wood", "default:fence_wood") -for _, n in pairs({"1", "2", "3", "11", "12", "13", "14", - "21", "22", "23", "24", "32", "33", "34", "35"}) do - minetest.register_alias("fences:fence_wood_" .. n, "default:fence_wood") -end - --- Hardened Clay -minetest.register_alias("hardened_clay:hardened_clay", "default:hardened_clay") diff --git a/games/default/files/default/chests.lua b/games/default/files/default/chests.lua deleted file mode 100644 index 4c436a33b..000000000 --- a/games/default/files/default/chests.lua +++ /dev/null @@ -1,257 +0,0 @@ --- --- Temporary chest solution --- - -local function get_chest_neighborpos(pos, param2, side) - if side == "right" then - if param2 == 0 then - return {x=pos.x-1, y=pos.y, z=pos.z} - elseif param2 == 1 then - return {x=pos.x, y=pos.y, z=pos.z+1} - elseif param2 == 2 then - return {x=pos.x+1, y=pos.y, z=pos.z} - elseif param2 == 3 then - return {x=pos.x, y=pos.y, z=pos.z-1} - end - else - if param2 == 0 then - return {x=pos.x+1, y=pos.y, z=pos.z} - elseif param2 == 1 then - return {x=pos.x, y=pos.y, z=pos.z-1} - elseif param2 == 2 then - return {x=pos.x-1, y=pos.y, z=pos.z} - elseif param2 == 3 then - return {x=pos.x, y=pos.y, z=pos.z+1} - end - end -end - -minetest.register_node("default:chest", { - description = "Chest", - tiles = {"default_chest_top.png", "default_chest_top.png", "default_chest_side.png", - "default_chest_side.png", "default_chest_side.png", "default_chest_front.png"}, - paramtype2 = "facedir", - groups = {choppy = 2, oddly_breakable_by_hand = 2}, - legacy_facedir_simple = true, - sounds = default.node_sound_wood_defaults(), - on_construct = function(pos) - local param2 = minetest.get_node(pos).param2 - local meta = minetest.get_meta(pos) - if minetest.get_node(get_chest_neighborpos(pos, param2, "right")).name == "default:chest" then - minetest.set_node(pos, {name="default:chest_right",param2=param2}) - local p = get_chest_neighborpos(pos, param2, "right") - meta:set_string("formspec", - "size[9,11.5]".. - "background[-0.2,-0.35;9.42,12.46;formspec_chest_large.png]".. - default.gui_bg.. - default.listcolors.. - "image_button_exit[8.35,-0.28;0.75,0.75;close.png;exit;;true;false;close_pressed.png]".. - "list[nodemeta:"..p.x..","..p.y..","..p.z..";main;0.01,0.4;9,3;]".. - "list[current_name;main;0.01,3.39;9,3;]".. - "list[current_player;main;0.01,7.4;9,3;9]".. - "list[current_player;main;0,10.61;9,1;]") - meta:set_string("infotext", "Large Chest") - minetest.swap_node(p, {name="default:chest_left", param2=param2}) - local m = minetest.get_meta(p) - m:set_string("formspec", - "size[9,11.5]".. - "background[-0.2,-0.35;9.42,12.46;formspec_chest_large.png]".. - default.gui_bg.. - default.listcolors.. - "image_button_exit[8.35,-0.28;0.75,0.75;close.png;exit;;true;false;close_pressed.png]".. - "list[nodemeta:"..pos.x..","..pos.y..","..pos.z..";main;0.01,3.39;9,3;]".. - "list[current_name;main;0.01,0.4;9,3;]".. - "list[current_player;main;0.01,7.4;9,3;9]".. - "list[current_player;main;0,10.61;9,1;]") - m:set_string("infotext", "Large Chest") - elseif minetest.get_node(get_chest_neighborpos(pos, param2, "left")).name == "default:chest" then - minetest.set_node(pos, {name="default:chest_left",param2=param2}) - local p = get_chest_neighborpos(pos, param2, "left") - meta:set_string("formspec", - "size[9,11.5]".. - "background[-0.2,-0.35;9.42,12.46;formspec_chest_large.png]".. - default.gui_bg.. - default.listcolors.. - "image_button_exit[8.35,-0.28;0.75,0.75;close.png;exit;;true;false;close_pressed.png]".. - "list[nodemeta:"..p.x..","..p.y..","..p.z..";main;0.01,3.39;9,3;]".. - "list[current_name;main;0.01,0.4;9,3;]".. - "list[current_player;main;0.01,7.4;9,3;9]".. - "list[current_player;main;0,10.61;9,1;]") - meta:set_string("infotext", "Large Chest") - minetest.swap_node(p, {name="default:chest_right", param2=param2}) - local m = minetest.get_meta(p) - m:set_string("formspec", - "size[9,11.5]".. - "background[-0.2,-0.35;9.42,12.46;formspec_chest_large.png]".. - default.gui_bg.. - default.listcolors.. - "image_button_exit[8.35,-0.28;0.75,0.75;close.png;exit;;true;false;close_pressed.png]".. - "list[nodemeta:"..pos.x..","..pos.y..","..pos.z..";main;0.01,0.4;9,3;]".. - "list[current_name;main;0.01,3.39;9,3;]".. - "list[current_player;main;0.01,7.4;9,3;9]".. - "list[current_player;main;0,10.61;9,1;]") - m:set_string("infotext", "Large Chest") - else - meta:set_string("formspec", - "size[9,8.75]".. - "background[-0.2,-0.26;9.41,9.49;formspec_chest.png]".. - default.gui_bg.. - default.listcolors.. - "image_button_exit[8.35,-0.19;0.75,0.75;close.png;exit;;true;false;close_pressed.png]".. - "list[current_name;main;0,0.5;9,3;]".. - "list[current_player;main;0,4.5;9,3;9]" .. - "list[current_player;main;0,7.74;9,1;]") - meta:set_string("infotext", "Chest") - end - local inv = meta:get_inventory() - inv:set_size("main", 9*3) - end, - after_dig_node = function(pos, oldnode, oldmetadata, digger) - local meta = minetest.get_meta(pos) - local meta2 = meta - meta:from_table(oldmetadata) - local inv = meta:get_inventory() - for i=1,inv:get_size("main") do - local stack = inv:get_stack("main", i) - if not stack:is_empty() then - local p = {x=pos.x+math.random(0, 10)/10-0.5, y=pos.y, z=pos.z+math.random(0, 10)/10-0.5} - minetest.add_item(p, stack) - end - end - meta:from_table(meta2:to_table()) - end, - on_metadata_inventory_move = function(pos, from_list, from_index, to_list, to_index, count, player) - minetest.log("action", player:get_player_name().. - " moves stuff in chest at "..minetest.pos_to_string(pos)) - end, - on_metadata_inventory_put = function(pos, listname, index, stack, player) - minetest.log("action", player:get_player_name().. - " moves stuff to chest at "..minetest.pos_to_string(pos)) - end, - on_metadata_inventory_take = function(pos, listname, index, stack, player) - minetest.log("action", player:get_player_name().. - " takes stuff from chest at "..minetest.pos_to_string(pos)) - end, - on_receive_fields = function(pos, formname, fields, sender) - if fields.exit then - fields.quit = true - -- minetest.show_formspec(sender:get_player_name(), 'quit', "") - end - end -}) - -minetest.register_node("default:chest_left", { - tiles = {"default_chest_top_big.png", "default_chest_top_big.png", "default_chest_side.png", - "default_chest_side.png", "default_chest_side_big.png^[transformFX", "default_chest_front_big.png"}, - paramtype2 = "facedir", - groups = {choppy = 2, oddly_breakable_by_hand = 2, not_in_creative_inventory=1}, - drop = "default:chest", - sounds = default.node_sound_wood_defaults(), - on_destruct = function(pos) - local m = minetest.get_meta(pos) - if m:get_string("infotext") == "Chest" then - return - end - local param2 = minetest.get_node(pos).param2 - local p = get_chest_neighborpos(pos, param2, "left") - if not p or minetest.get_node(p).name ~= "default:chest_right" then - return - end - local meta = minetest.get_meta(p) - meta:set_string("formspec", - "size[9,8.75]".. - "background[-0.2,-0.26;9.41,9.49;formspec_chest.png]".. - default.gui_bg.. - default.listcolors.. - "image_button_exit[8.35,-0.19;0.75,0.75;close.png;exit;;true;false;close_pressed.png]".. - "list[current_name;main;0,0.5;9,3;]".. - "list[current_player;main;0,4.5;9,3;9]" .. - "list[current_player;main;0,7.74;9,1;]") - meta:set_string("infotext", "Chest") - minetest.swap_node(p, {name="default:chest", param2=param2}) - end, - after_dig_node = function(pos, oldnode, oldmetadata, digger) - local meta = minetest.get_meta(pos) - local meta2 = meta - meta:from_table(oldmetadata) - local inv = meta:get_inventory() - for i=1,inv:get_size("main") do - local stack = inv:get_stack("main", i) - if not stack:is_empty() then - local p = {x=pos.x+math.random(0, 10)/10-0.5, y=pos.y, z=pos.z+math.random(0, 10)/10-0.5} - minetest.add_item(p, stack) - end - end - meta:from_table(meta2:to_table()) - end, - on_metadata_inventory_move = function(pos, from_list, from_index, to_list, to_index, count, player) - minetest.log("action", player:get_player_name().. - " moves stuff in chest at "..minetest.pos_to_string(pos)) - end, - on_metadata_inventory_put = function(pos, listname, index, stack, player) - minetest.log("action", player:get_player_name().. - " moves stuff to chest at "..minetest.pos_to_string(pos)) - end, - on_metadata_inventory_take = function(pos, listname, index, stack, player) - minetest.log("action", player:get_player_name().. - " takes stuff from chest at "..minetest.pos_to_string(pos)) - end, -}) - -minetest.register_node("default:chest_right", { - tiles = {"default_chest_top_big.png^[transformFX", "default_chest_top_big.png^[transformFX", "default_chest_side.png", - "default_chest_side.png", "default_chest_side_big.png", "default_chest_front_big.png^[transformFX"}, - paramtype2 = "facedir", - groups = {choppy = 2, oddly_breakable_by_hand = 2, not_in_creative_inventory=1}, - drop = "default:chest", - sounds = default.node_sound_wood_defaults(), - on_destruct = function(pos) - local m = minetest.get_meta(pos) - if m:get_string("infotext") == "Chest" then - return - end - local param2 = minetest.get_node(pos).param2 - local p = get_chest_neighborpos(pos, param2, "right") - if not p or minetest.get_node(p).name ~= "default:chest_left" then - return - end - local meta = minetest.get_meta(p) - meta:set_string("formspec", - "size[9,8.75]".. - "background[-0.2,-0.26;9.41,9.49;formspec_chest.png]".. - default.gui_bg.. - default.listcolors.. - "image_button_exit[8.35,-0.19;0.75,0.75;close.png;exit;;true;false;close_pressed.png]".. - "list[current_name;main;0,0.5;9,3;]".. - "list[current_player;main;0,4.5;9,3;9]" .. - "list[current_player;main;0,7.74;9,1;]") - meta:set_string("infotext", "Chest") - minetest.swap_node(p, {name="default:chest", param2=param2}) - end, - after_dig_node = function(pos, oldnode, oldmetadata, digger) - local meta = minetest.get_meta(pos) - local meta2 = meta - meta:from_table(oldmetadata) - local inv = meta:get_inventory() - for i=1,inv:get_size("main") do - local stack = inv:get_stack("main", i) - if not stack:is_empty() then - local p = {x=pos.x+math.random(0, 10)/10-0.5, y=pos.y, z=pos.z+math.random(0, 10)/10-0.5} - minetest.add_item(p, stack) - end - end - meta:from_table(meta2:to_table()) - end, - on_metadata_inventory_move = function(pos, from_list, from_index, to_list, to_index, count, player) - minetest.log("action", player:get_player_name().. - " moves stuff in chest at "..minetest.pos_to_string(pos)) - end, - on_metadata_inventory_put = function(pos, listname, index, stack, player) - minetest.log("action", player:get_player_name().. - " moves stuff to chest at "..minetest.pos_to_string(pos)) - end, - on_metadata_inventory_take = function(pos, listname, index, stack, player) - minetest.log("action", player:get_player_name().. - " takes stuff from chest at "..minetest.pos_to_string(pos)) - end, -}) diff --git a/games/default/files/default/crafting.lua b/games/default/files/default/crafting.lua deleted file mode 100644 index 988117fcf..000000000 --- a/games/default/files/default/crafting.lua +++ /dev/null @@ -1,727 +0,0 @@ --- mods/default/crafting.lua - -minetest.register_craft({ - output = "default:wood 4", - recipe = { - {"default:tree"}, - } -}) - -minetest.register_craft({ - output = "default:junglewood 4", - recipe = { - {"default:jungletree"}, - } -}) - -minetest.register_craft({ - output = "default:pine_wood 4", - recipe = { - {"default:pine_tree"}, - } -}) - -minetest.register_craft({ - output = "default:acacia_wood 4", - recipe = { - {"default:acacia_tree"}, - } -}) - -minetest.register_craft({ - output = "default:birch_wood 4", - recipe = { - {"default:birch_tree"}, - } -}) - -minetest.register_craft({ - output = "default:mossycobble", - recipe = { - {"default:cobble", "default:vine"}, - } -}) - -minetest.register_craft({ - output = "default:stonebrickmossy", - recipe = { - {"default:stonebrick", "default:vine"}, - } -}) - -minetest.register_craft({ - output = "default:stick 4", - recipe = { - {"group:wood"}, - {"group:wood"}, - } -}) - -minetest.register_craft({ - output = "default:torch 4", - recipe = { - {"default:coal_lump"}, - {"default:stick"}, - } -}) - -minetest.register_craft({ - output = "default:torch 4", - recipe = { - {"default:charcoal_lump"}, - {"default:stick"}, - } -}) - -minetest.register_craft({ - output = "default:pick_wood", - recipe = { - {"group:wood", "group:wood", "group:wood"}, - {"", "default:stick", ""}, - {"", "default:stick", ""}, - } -}) - -minetest.register_craft({ - output = "default:pick_stone", - recipe = { - {"group:stone", "group:stone", "group:stone"}, - {"", "default:stick", ""}, - {"", "default:stick", ""}, - } -}) - -minetest.register_craft({ - output = "default:pick_steel", - recipe = { - {"default:steel_ingot", "default:steel_ingot", "default:steel_ingot"}, - {"", "default:stick", ""}, - {"", "default:stick", ""}, - } -}) - -minetest.register_craft({ - output = "default:pick_gold", - recipe = { - {"default:gold_ingot", "default:gold_ingot", "default:gold_ingot"}, - {"", "default:stick", ""}, - {"", "default:stick", ""}, - } -}) - -minetest.register_craft({ - output = "default:diamondblock", - recipe = { - {"default:diamond", "default:diamond", "default:diamond"}, - {"default:diamond", "default:diamond", "default:diamond"}, - {"default:diamond", "default:diamond", "default:diamond"}, - } -}) - -minetest.register_craft({ - output = "default:diamond 9", - recipe = { - {"default:diamondblock"}, - } -}) - -minetest.register_craft({ - output = "default:pick_diamond", - recipe = { - {"default:diamond", "default:diamond", "default:diamond"}, - {"", "default:stick", ""}, - {"", "default:stick", ""}, - } -}) - -minetest.register_craft({ - output = "default:shovel_wood", - recipe = { - {"group:wood"}, - {"default:stick"}, - {"default:stick"}, - } -}) - -minetest.register_craft({ - output = "default:shovel_stone", - recipe = { - {"group:stone"}, - {"default:stick"}, - {"default:stick"}, - } -}) - -minetest.register_craft({ - output = "default:shovel_steel", - recipe = { - {"default:steel_ingot"}, - {"default:stick"}, - {"default:stick"}, - } -}) - -minetest.register_craft({ - output = "default:shovel_gold", - recipe = { - {"default:gold_ingot"}, - {"default:stick"}, - {"default:stick"}, - } -}) - -minetest.register_craft({ - output = "default:shovel_diamond", - recipe = { - {"default:diamond"}, - {"default:stick"}, - {"default:stick"}, - } -}) - -minetest.register_craft({ - output = "default:axe_wood", - recipe = { - {"group:wood", "group:wood"}, - {"group:wood", "default:stick"}, - {"", "default:stick"}, - } -}) - -minetest.register_craft({ - output = "default:axe_stone", - recipe = { - {"group:stone", "group:stone"}, - {"group:stone", "default:stick"}, - {"", "default:stick"}, - } -}) - -minetest.register_craft({ - output = "default:axe_steel", - recipe = { - {"default:steel_ingot", "default:steel_ingot"}, - {"default:steel_ingot", "default:stick"}, - {"", "default:stick"}, - } -}) - -minetest.register_craft({ - output = "default:axe_gold", - recipe = { - {"default:gold_ingot", "default:gold_ingot"}, - {"default:gold_ingot", "default:stick"}, - {"", "default:stick"}, - } -}) - -minetest.register_craft({ - output = "default:axe_diamond", - recipe = { - {"default:diamond", "default:diamond"}, - {"default:diamond", "default:stick"}, - {"", "default:stick"}, - } -}) - -minetest.register_craft({ - output = "default:sword_wood", - recipe = { - {"group:wood"}, - {"group:wood"}, - {"default:stick"}, - } -}) - -minetest.register_craft({ - output = "default:sword_stone", - recipe = { - {"group:stone"}, - {"group:stone"}, - {"default:stick"}, - } -}) - -minetest.register_craft({ - output = "default:sword_steel", - recipe = { - {"default:steel_ingot"}, - {"default:steel_ingot"}, - {"default:stick"}, - } -}) - -minetest.register_craft({ - output = "default:sword_gold", - recipe = { - {"default:gold_ingot"}, - {"default:gold_ingot"}, - {"default:stick"}, - } -}) - -minetest.register_craft({ - output = "default:sword_diamond", - recipe = { - {"default:diamond"}, - {"default:diamond"}, - {"default:stick"}, - } -}) - -minetest.register_craft({ - output = "default:pole", - recipe = { - {"","","default:stick"}, - {"","default:stick","farming:string"}, - {"default:stick","","farming:string"}, - } -}) - -minetest.register_craft({ - output = "default:chest", - recipe = { - {"group:wood", "group:wood", "group:wood"}, - {"group:wood", "", "group:wood"}, - {"group:wood", "group:wood", "group:wood"}, - } -}) - -minetest.register_craft({ - output = "default:furnace", - recipe = { - {"group:stone", "group:stone", "group:stone"}, - {"group:stone", "", "group:stone"}, - {"group:stone", "group:stone", "group:stone"}, - } -}) - -minetest.register_craft({ - output = "default:coalblock", - recipe = { - {"default:coal_lump", "default:coal_lump", "default:coal_lump"}, - {"default:coal_lump", "default:coal_lump", "default:coal_lump"}, - {"default:coal_lump", "default:coal_lump", "default:coal_lump"}, - } -}) - -minetest.register_craft({ - output = "default:coal_lump 9", - recipe = { - {"default:coalblock"}, - } -}) - -minetest.register_craft({ - output = "default:steelblock", - recipe = { - {"default:steel_ingot", "default:steel_ingot", "default:steel_ingot"}, - {"default:steel_ingot", "default:steel_ingot", "default:steel_ingot"}, - {"default:steel_ingot", "default:steel_ingot", "default:steel_ingot"}, - } -}) - -minetest.register_craft({ - output = "default:steel_ingot 9", - recipe = { - {"default:steelblock"}, - } -}) - -minetest.register_craft({ - output = "default:goldblock", - recipe = { - {"default:gold_ingot", "default:gold_ingot", "default:gold_ingot"}, - {"default:gold_ingot", "default:gold_ingot", "default:gold_ingot"}, - {"default:gold_ingot", "default:gold_ingot", "default:gold_ingot"}, - } -}) - -minetest.register_craft({ - output = "default:gold_ingot 9", - recipe = { - {"default:goldblock"}, - } -}) - -minetest.register_craft({ - output = "default:sandstone", - recipe = { - {"group:sand", "group:sand"}, - {"group:sand", "group:sand"}, - } -}) - -minetest.register_craft({ - output = "default:clay", - recipe = { - {"default:clay_lump", "default:clay_lump"}, - {"default:clay_lump", "default:clay_lump"}, - } -}) - -minetest.register_craft({ - output = "default:brick", - recipe = { - {"default:clay_brick", "default:clay_brick"}, - {"default:clay_brick", "default:clay_brick"}, - } -}) - -minetest.register_craft({ - output = "default:clay_brick 4", - recipe = { - {"default:brick"}, - } -}) - -minetest.register_craft({ - output = "default:paper", - recipe = { - {"default:sugarcane", "default:sugarcane", "default:sugarcane"}, - } -}) - -minetest.register_craft({ - output = "default:book", - recipe = { - {"default:paper"}, - {"default:paper"}, - {"default:paper"}, - } -}) - -minetest.register_craft({ - output = "default:bookshelf", - recipe = { - {"group:wood", "group:wood", "group:wood"}, - {"default:book", "default:book", "default:book"}, - {"group:wood", "group:wood", "group:wood"}, - } -}) - -minetest.register_craft({ - output = "default:ladder", - recipe = { - {"default:stick", "", "default:stick"}, - {"default:stick", "default:stick", "default:stick"}, - {"default:stick", "", "default:stick"}, - } -}) - -minetest.register_craft({ - output = "default:stonebrick", - recipe = { - {"default:stone", "default:stone"}, - {"default:stone", "default:stone"}, - } -}) - -minetest.register_craft({ - type = "shapeless", - output = "default:gunpowder", - recipe = { - "default:sand", - "default:gravel", - } -}) - -minetest.register_craft({ - output = "default:emeraldblock", - recipe = { - {"default:emerald", "default:emerald", "default:emerald"}, - {"default:emerald", "default:emerald", "default:emerald"}, - {"default:emerald", "default:emerald", "default:emerald"}, - } -}) - -minetest.register_craft({ - output = "default:emerald 9", - recipe = { - {"default:emeraldblock"}, - } -}) - -minetest.register_craft({ - output = "default:glowstone", - recipe = { - {"default:glowstone_dust", "default:glowstone_dust"}, - {"default:glowstone_dust", "default:glowstone_dust"}, - } -}) - -minetest.register_craft({ - output = "default:glowstone_dust 4", - recipe = { - {"default:glowstone"}, - } -}) - -minetest.register_craft({ - output = "default:apple_gold", - recipe = { - {"default:gold_ingot", "default:gold_ingot", "default:gold_ingot"}, - {"default:gold_ingot", "default:apple", "default:gold_ingot"}, - {"default:gold_ingot", "default:gold_ingot", "default:gold_ingot"}, - } -}) - -minetest.register_craft({ - output = "default:sugar", - recipe = { - {"default:sugarcane"}, - } -}) - -minetest.register_craft({ - output = "default:snowblock", - recipe = { - {"default:snowball", "default:snowball", "default:snowball"}, - {"default:snowball", "default:snowball", "default:snowball"}, - {"default:snowball", "default:snowball", "default:snowball"}, - } -}) - -minetest.register_craft({ - output = "default:snowball 9", - recipe = { - {"default:snowblock"}, - } -}) - -minetest.register_craft({ - output = "default:quartz_block", - recipe = { - {"default:quartz_crystal", "default:quartz_crystal"}, - {"default:quartz_crystal", "default:quartz_crystal"}, - } -}) - -minetest.register_craft({ - output = "default:quartz_pillar 2", - recipe = { - {"default:quartz_block"}, - {"default:quartz_block"}, - } -}) - - --- --- Cooking recipes --- - -minetest.register_craft({ - type = "cooking", - output = "default:glass", - recipe = "group:sand", -}) - -minetest.register_craft({ - type = "cooking", - output = "default:stone", - recipe = "default:cobble", -}) - -minetest.register_craft({ - type = "cooking", - output = "default:steel_ingot", - recipe = "default:stone_with_iron", -}) - -minetest.register_craft({ - type = "cooking", - output = "default:gold_ingot", - recipe = "default:stone_with_gold", -}) - -minetest.register_craft({ - type = "cooking", - output = "default:clay_brick", - recipe = "default:clay_lump", -}) - -minetest.register_craft({ - type = "cooking", - output = "default:hardened_clay", - recipe = "default:clay", -}) - -minetest.register_craft({ - type = "cooking", - output = "default:fish", - recipe = "default:fish_raw", --- cooktime = 2, -}) - -minetest.register_craft({ - type = "cooking", - output = "default:charcoal_lump", - recipe = "group:tree", -}) - -minetest.register_craft({ - type = "cooking", - output = "default:steak", - recipe = "default:beef_raw", -}) - -minetest.register_craft({ - type = "cooking", - output = "default:chicken_cooked", - recipe = "default:chicken_raw", -}) - -minetest.register_craft({ - type = "cooking", - output = "default:coal_lump", - recipe = "default:stone_with_coal", -}) - -minetest.register_craft({ - type = "cooking", - output = "default:diamond", - recipe = "default:stone_with_diamond", -}) - -minetest.register_craft({ - type = "cooking", - output = "default:stonebrickcracked", - recipe = "default:stonebrick", -}) - - --- --- Fuels --- - -minetest.register_craft({ - type = "fuel", - recipe = "group:tree", - burntime = 15, -}) - -minetest.register_craft({ - type = "fuel", - recipe = "default:fence_wood", - burntime = 15, -}) - -minetest.register_craft({ - type = "fuel", - recipe = "group:wood", - burntime = 15, -}) - -minetest.register_craft({ - type = "fuel", - recipe = "group:leaves", - burntime = 5, -}) - -minetest.register_craft({ - type = "fuel", - recipe = "bucket:bucket_lava", - burntime = 1000, -}) - -minetest.register_craft({ - type = "fuel", - recipe = "default:bookshelf", - burntime = 30, -}) - -minetest.register_craft({ - type = "fuel", - recipe = "default:torch", - burntime = 7, -}) - -minetest.register_craft({ - type = "fuel", - recipe = "default:chest", - burntime = 15, -}) - -minetest.register_craft({ - type = "fuel", - recipe = "group:sapling", - burntime = 5, -}) - -minetest.register_craft({ - type = "fuel", - recipe = "default:coal_block", - burntime = 800, -}) - -minetest.register_craft({ - type = "fuel", - recipe = "default:coal_lump", - burntime = 80, -}) - -minetest.register_craft({ - type = "fuel", - recipe = "default:charcoal_lump", - burntime = 80, -}) - -minetest.register_craft({ - type = "fuel", - recipe = "default:junglesapling", - burntime = 5, -}) - -minetest.register_craft({ - type = "fuel", - recipe = "default:chest", - burntime = 15, -}) - -minetest.register_craft({ - type = "fuel", - recipe = "default:book", - burntime = 5, -}) - -minetest.register_craft({ - type = "fuel", - recipe = "default:book_written", - burntime = 5, -}) - -minetest.register_craft({ - type = "fuel", - recipe = "default:dry_shrub", - burntime = 5, -}) - -minetest.register_craft({ - type = "fuel", - recipe = "group:stick", - burntime = 3, -}) - -minetest.register_craft({ - type = "fuel", - recipe = "default:pick_wood", - burntime = 6, -}) - -minetest.register_craft({ - type = "fuel", - recipe = "default:shovel_wood", - burntime = 4, -}) - -minetest.register_craft({ - type = "fuel", - recipe = "default:axe_wood", - burntime = 6, -}) - -minetest.register_craft({ - type = "fuel", - recipe = "default:sword_wood", - burntime = 5, -}) diff --git a/games/default/files/default/craftitems.lua b/games/default/files/default/craftitems.lua deleted file mode 100644 index c73a2bbea..000000000 --- a/games/default/files/default/craftitems.lua +++ /dev/null @@ -1,264 +0,0 @@ --- mods/default/craftitems.lua - -minetest.register_craftitem("default:stick", { - description = "Stick", - inventory_image = "default_stick.png", - groups = {stick = 1, flammable = 2} -}) - -minetest.register_craftitem("default:paper", { - description = "Paper", - inventory_image = "default_paper.png", - groups = {flammable = 3} -}) - - -local lpp = 14 -- Lines per book's page -local function book_on_use(itemstack, user) - local player_name = user:get_player_name() - local meta = itemstack:get_meta() - local title, text, owner = "", "", player_name - local page, page_max, lines, string = 1, 1, {}, "" - - -- Backwards compatibility - local old_data = minetest.deserialize(itemstack:get_metadata()) - if old_data then - meta:from_table({ fields = old_data }) - end - - local data = meta:to_table().fields - - if data.owner then - title = data.title - text = data.text - owner = data.owner - - for str in (text .. "\n"):gmatch("([^\n]*)[\n]") do - lines[#lines+1] = str - end - - if data.page then - page = data.page - page_max = data.page_max - - for i = ((lpp * page) - lpp) + 1, lpp * page do - if not lines[i] then break end - string = string .. lines[i] .. "\n" - end - end - end - - local formspec - if owner == player_name then - formspec = "size[8,8]" .. - "field[0.5,1;7.5,0;title;Title:;" .. - minetest.formspec_escape(title) .. "]" .. - "textarea[0.5,1.5;7.5,7;text;Contents:;" .. - minetest.formspec_escape(text) .. "]" .. - "button_exit[2.5,7.5;3,1;save;Save]" - else - formspec = "size[8,8]" .. - "label[0.5,0.5;by " .. owner .. "]" .. - "tablecolumns[color;text]" .. - "tableoptions[background=#00000000;highlight=#00000000;border=false]" .. - "table[0.4,0;7,0.5;title;#FFFF00," .. minetest.formspec_escape(title) .. "]" .. - "textarea[0.5,1.5;7.5,7;;" .. - minetest.formspec_escape(string ~= "" and string or text) .. ";]" .. - "button[2.4,7.6;0.8,0.8;book_prev;<]" .. - "label[3.2,7.7;Page " .. page .. " of " .. page_max .. "]" .. - "button[4.9,7.6;0.8,0.8;book_next;>]" - end - - minetest.show_formspec(player_name, "default:book", formspec) - return itemstack -end - -local max_text_size = 10000 -local max_title_size = 80 -local short_title_size = 35 -minetest.register_on_player_receive_fields(function(player, formname, fields) - if formname ~= "default:book" then return end - local inv = player:get_inventory() - local stack = player:get_wielded_item() - - if fields.save and fields.title and fields.text - and fields.title ~= "" and fields.text ~= "" then - local new_stack, data - if stack:get_name() ~= "default:book_written" then - local count = stack:get_count() - if count == 1 then - stack:set_name("default:book_written") - else - stack:set_count(count - 1) - new_stack = ItemStack("default:book_written") - end - else - data = stack:get_meta():to_table().fields - end - - if data and data.owner and data.owner ~= player:get_player_name() then - return - end - - if not data then data = {} end - data.title = fields.title:sub(1, max_title_size) - data.owner = player:get_player_name() - local short_title = data.title - -- Don't bother triming the title if the trailing dots would make it longer - if #short_title > short_title_size + 3 then - short_title = short_title:sub(1, short_title_size) .. "..." - end - data.description = "\""..short_title.."\" by "..data.owner - data.text = fields.text:sub(1, max_text_size) - data.text = data.text:gsub("\r\n", "\n"):gsub("\r", "\n") - data.page = 1 - data.page_max = math.ceil((#data.text:gsub("[^\n]", "") + 1) / lpp) - - if new_stack then - new_stack:get_meta():from_table({ fields = data }) - if inv:room_for_item("main", new_stack) then - inv:add_item("main", new_stack) - else - minetest.add_item(player:get_pos(), new_stack) - end - else - stack:get_meta():from_table({ fields = data }) - end - - elseif fields.book_next or fields.book_prev then - local data = stack:get_meta():to_table().fields - if not data or not data.page then - return - end - - data.page = tonumber(data.page) - data.page_max = tonumber(data.page_max) - - if fields.book_next then - data.page = data.page + 1 - if data.page > data.page_max then - data.page = 1 - end - else - data.page = data.page - 1 - if data.page == 0 then - data.page = data.page_max - end - end - - stack:get_meta():from_table({fields = data}) - stack = book_on_use(stack, player) - end - - -- Update stack - player:set_wielded_item(stack) -end) - -minetest.register_craftitem("default:book", { - description = "Book", - inventory_image = "default_book.png", - groups = {book = 1, flammable = 3}, - on_use = book_on_use -}) - -minetest.register_craftitem("default:book_written", { - description = "Book With Text", - inventory_image = "default_book_written.png", - groups = {book = 1, not_in_creative_inventory = 1, flammable = 3}, - stack_max = 1, - on_use = book_on_use -}) - -minetest.register_craftitem("default:coal_lump", { - description = "Coal Lump", - inventory_image = "default_coal_lump.png", - groups = {coal = 1, flammable = 1} -}) - -minetest.register_craftitem("default:charcoal_lump", { - description = "Charcoal Lump", - inventory_image = "default_charcoal_lump.png", - groups = {coal = 1, flammable = 1} -}) - -minetest.register_craftitem("default:diamond", { - description = "Diamond", - inventory_image = "default_diamond.png" -}) - -minetest.register_craftitem("default:clay_lump", { - description = "Clay Lump", - inventory_image = "default_clay_lump.png" -}) - -minetest.register_craftitem("default:steel_ingot", { - description = "Steel Ingot", - inventory_image = "default_steel_ingot.png" -}) - -minetest.register_craftitem("default:gold_ingot", { - description = "Gold Ingot", - inventory_image = "default_gold_ingot.png" -}) - -minetest.register_craftitem("default:emerald", { - description = "Emerald", - inventory_image = "default_emerald.png" -}) - -minetest.register_craftitem("default:clay_brick", { - description = "Clay Brick", - inventory_image = "default_clay_brick.png" -}) - -minetest.register_craftitem("default:gunpowder", { - description = "Gunpowder", - inventory_image = "default_gunpowder.png" -}) - -minetest.register_craftitem("default:bone", { - description = "Bone", - inventory_image = "default_bone.png" -}) - -minetest.register_craftitem("default:glowstone_dust", { - description = "Glowstone Dust", - inventory_image = "default_glowstone_dust.png" -}) - -minetest.register_craftitem("default:fish_raw", { - description = "Raw Fish", - inventory_image = "default_fish.png", - groups = {food = 1}, - on_use = minetest.item_eat(2) -}) - -minetest.register_craftitem("default:fish", { - description = "Cooked Fish", - inventory_image = "default_fish_cooked.png", - groups = {food = 1}, - on_use = minetest.item_eat(4) -}) - -minetest.register_craftitem("default:sugar", { - description = "Sugar", - inventory_image = "default_sugar.png" -}) - -minetest.register_craftitem("default:quartz_crystal", { - description = "Quartz Crystal", - inventory_image = "default_quartz_crystal.png" -}) - -minetest.register_craftitem("default:flint", { - description = "Flint", - inventory_image = "default_flint.png" -}) - -minetest.register_craftitem("default:snowball", { - description = "Snowball", - inventory_image = "default_snowball.png", - stack_max = 16, - groups = {flammable = 3}, - on_use = default.snow_shoot_snowball -}) diff --git a/games/default/files/default/functions.lua b/games/default/files/default/functions.lua deleted file mode 100644 index ef038b151..000000000 --- a/games/default/files/default/functions.lua +++ /dev/null @@ -1,597 +0,0 @@ --- --- Sounds --- - -function default.node_sound_defaults(table) - table = table or {} - table.footstep = table.footstep or - {name = "", gain = 1.0} - table.dug = table.dug or - {name = "default_dug_node", gain = 0.25} - table.place = table.place or - {name = "default_place_node_hard", gain = 1.0} - return table -end - -function default.node_sound_stone_defaults(table) - table = table or {} - table.footstep = table.footstep or - {name = "default_hard_footstep", gain = 0.3} - table.dug = table.dug or - {name = "default_hard_footstep", gain = 1.0} - default.node_sound_defaults(table) - return table -end - -function default.node_sound_dirt_defaults(table) - table = table or {} - table.footstep = table.footstep or - {name = "default_dirt_footstep", gain = 0.4} - table.dug = table.dug or - {name = "default_dirt_footstep", gain = 1.0} - table.place = table.place or - {name = "default_place_node", gain = 1.0} - default.node_sound_defaults(table) - return table -end - -function default.node_sound_sand_defaults(table) - table = table or {} - table.footstep = table.footstep or - {name = "default_sand_footstep", gain = 0.12} - table.dug = table.dug or - {name = "default_sand_footstep", gain = 0.24} - table.place = table.place or - {name = "default_place_node", gain = 1.0} - default.node_sound_defaults(table) - return table -end - -function default.node_sound_gravel_defaults(table) - table = table or {} - table.footstep = table.footstep or - {name = "default_gravel_footstep", gain = 0.4} - table.dug = table.dug or - {name = "default_gravel_footstep", gain = 1.0} - table.place = table.place or - {name = "default_place_node", gain = 1.0} - default.node_sound_defaults(table) - return table -end - -function default.node_sound_wood_defaults(table) - table = table or {} - table.footstep = table.footstep or - {name = "default_wood_footstep", gain = 0.3} - table.dug = table.dug or - {name = "default_wood_footstep", gain = 1.0} - default.node_sound_defaults(table) - return table -end - -function default.node_sound_leaves_defaults(table) - table = table or {} - table.footstep = table.footstep or - {name = "default_grass_footstep", gain = 0.45} - table.dug = table.dug or - {name = "default_grass_footstep", gain = 0.7} - table.place = table.place or - {name = "default_place_node", gain = 1.0} - default.node_sound_defaults(table) - return table -end - -function default.node_sound_glass_defaults(table) - table = table or {} - table.footstep = table.footstep or - {name = "default_glass_footstep", gain = 0.3} - table.dig = table.dig or - {name = "default_glass_footstep", gain = 0.5} - table.dug = table.dug or - {name = "default_break_glass", gain = 1.0} - default.node_sound_defaults(table) - return table -end - -function default.node_sound_metal_defaults(table) - table = table or {} - table.footstep = table.footstep or - {name = "default_metal_footstep", gain = 0.4} - table.dig = table.dig or - {name = "default_dig_metal", gain = 0.5} - table.dug = table.dug or - {name = "default_dug_metal", gain = 0.5} - table.place = table.place or - {name = "default_place_node_metal", gain = 0.5} - default.node_sound_defaults(table) - return table -end - -function default.node_sound_water_defaults(table) - table = table or {} - table.footstep = table.footstep or - {name = "default_water_footstep", gain = 0.2} - default.node_sound_defaults(table) - return table -end - -function default.node_sound_snow_defaults(table) - table = table or {} - table.footstep = table.footstep or - {name = "default_snow_footstep", gain = 0.2} - table.dig = table.dig or - {name = "default_snow_footstep", gain = 0.3} - table.dug = table.dug or - {name = "default_snow_footstep", gain = 0.3} - table.place = table.place or - {name = "default_place_node", gain = 1.0} - default.node_sound_defaults(table) - return table -end - -function default.node_sound_wool_defaults(table) - table = table or {} - table.footstep = table.footstep or - {name = "default_wool_footstep", gain = 0.4} - table.dig = table.dig or - {name = "default_wool_footstep", gain = 0.6} - table.dug = table.dug or - {name = "default_wool_footstep", gain = 0.6} - table.place = table.place or - {name = "default_wool_footstep", gain = 1.0} - return table -end - --- --- Lavacooling --- - -default.cool_lava = function(pos, node) - if node.name == "default:lava_source" then - minetest.set_node(pos, {name = "default:obsidian"}) - else -- Lava flowing - minetest.set_node(pos, {name = "default:stone"}) - end - minetest.sound_play("default_cool_lava", - {pos = pos, max_hear_distance = 16, gain = 0.25}) -end - -if minetest.settings:get_bool("enable_lavacooling") ~= false then - minetest.register_abm({ - label = "Lava cooling", - nodenames = {"default:lava_source", "default:lava_flowing"}, - neighbors = {"group:cools_lava", "group:water"}, - interval = 4, - chance = 1, - catch_up = false, - action = function(...) - default.cool_lava(...) - end, - }) -end - - --- --- Optimized helper to put all items in an inventory into a drops list --- - -function default.get_inventory_drops(pos, inventory, drops) - local inv = minetest.get_meta(pos):get_inventory() - local n = #drops - for i = 1, inv:get_size(inventory) do - local stack = inv:get_stack(inventory, i) - if stack:get_count() > 0 then - drops[n+1] = stack:to_table() - n = n + 1 - end - end -end - - --- --- Sugarcane and cactus growing --- - --- Wrapping the functions in ABM action is necessary to make overriding them possible - -function default.grow_cactus(pos, node) - if node.param2 >= 4 then - return - end - pos.y = pos.y - 1 - if minetest.get_item_group(minetest.get_node(pos).name, "sand") == 0 then - return - end - pos.y = pos.y + 1 - local height = 0 - while node.name == "default:cactus" and height < 4 do - height = height + 1 - pos.y = pos.y + 1 - node = minetest.get_node(pos) - end - if height == 4 or node.name ~= "air" then - return - end - if minetest.get_node_light(pos) < 13 then - return - end - minetest.set_node(pos, {name = "default:cactus"}) - return true -end - -function default.grow_papyrus(pos, node) - pos.y = pos.y - 1 - local name = minetest.get_node(pos).name - if name ~= "default:dirt_with_grass" and name ~= "default:dirt" then - return - end - if not minetest.find_node_near(pos, 3, {"group:water"}) then - return - end - pos.y = pos.y + 1 - local height = 0 - while node.name == "default:sugarcane" and height < 4 do - height = height + 1 - pos.y = pos.y + 1 - node = minetest.get_node(pos) - end - if height == 4 or node.name ~= "air" then - return - end - if minetest.get_node_light(pos) < 13 then - return - end - minetest.set_node(pos, {name = "default:sugarcane"}) - return true -end - -minetest.register_abm({ - label = "Grow cactus", - nodenames = {"default:cactus"}, - neighbors = {"group:sand"}, - interval = 15, - chance = 75, - action = function(...) - default.grow_cactus(...) - end -}) - -minetest.register_abm({ - label = "Grow sugarcane", - nodenames = {"default:sugarcane"}, - neighbors = {"default:dirt", "default:dirt_with_grass", "default:sand"}, - interval = 15, - chance = 70, - action = function(...) - default.grow_papyrus(...) - end -}) - - --- --- Dig upwards --- - -function default.dig_up(pos, node, digger) - if digger == nil then return end - local np = {x = pos.x, y = pos.y + 1, z = pos.z} - local nn = minetest.get_node(np) - if nn.name == node.name then - minetest.node_dig(np, nn, digger) - end -end - - --- --- Fence registration helper --- - -function default.register_fence(name, def) - minetest.register_craft({ - output = name .. " 4", - recipe = { - { def.material, 'group:stick', def.material }, - { def.material, 'group:stick', def.material }, - } - }) - --- local fence_texture = "default_fence_overlay.png^" .. def.texture .. --- "^default_fence_overlay.png^[makealpha:255,126,126" - -- Allow almost everything to be overridden - local default_fields = { - paramtype = "light", - drawtype = "nodebox", - node_box = { - type = "connected", - fixed = {{-1/8, -1/2, -1/8, 1/8, 1/2, 1/8}}, - connect_front = {{-1/16,4/16,-1/2,1/16,7/16,-1/8}, - {-1/16,-2/16,-1/2,1/16,1/16,-1/8}}, - connect_left = {{-1/2,4/16,-1/16,-1/8,7/16,1/16}, - {-1/2,-2/16,-1/16,-1/8,1/16,1/16}}, - connect_back = {{-1/16,4/16,1/8,1/16,7/16,1/2}, - {-1/16,-2/16,1/8,1/16,1/16,1/2}}, - connect_right = {{1/8,4/16,-1/16,1/2,7/16,1/16}, - {1/8,-2/16,-1/16,1/2,1/16,1/16}}, - }, - connects_to = {"group:fence", "group:wood", "group:tree", "group:wall"}, - -- inventory_image = fence_texture, - -- wield_image = fence_texture, - tiles = {def.texture}, - sunlight_propagates = true, - is_ground_content = false, - groups = {}, - } - for k, v in pairs(default_fields) do - if def[k] == nil then - def[k] = v - end - end - - -- Always add to the fence group, even if no group provided - def.groups.fence = 1 - - def.texture = nil - def.material = nil - - minetest.register_node(name, def) -end - - --- --- Leafdecay --- - --- Prevent decay of placed leaves - -default.after_place_leaves = function(pos, placer, itemstack, pointed_thing) - if placer and placer:is_player() and not placer:get_player_control().sneak then - local node = minetest.get_node(pos) - node.param2 = 1 - minetest.set_node(pos, node) - end -end - --- Leafdecay -local function leafdecay_after_destruct(pos, oldnode, def) - for _, v in pairs(minetest.find_nodes_in_area(vector.subtract(pos, def.radius), - vector.add(pos, def.radius), def.leaves)) do - local node = minetest.get_node(v) - local timer = minetest.get_node_timer(v) - if node.param2 == 0 and not timer:is_started() then - timer:start(math.random(40, 160) / 10) - end - end -end - -local function leafdecay_on_timer(pos, def) - if minetest.find_node_near(pos, def.radius, def.trunks) then - return false - end - - local node = minetest.get_node(pos) - local drops = minetest.get_node_drops(node.name) - for _, item in ipairs(drops) do - local is_leaf - for _, v in pairs(def.leaves) do - if v == item then - is_leaf = true - end - end - if minetest.get_item_group(item, "leafdecay_drop") ~= 0 or - not is_leaf then - minetest.add_item({ - x = pos.x - 0.5 + math.random(), - y = pos.y - 0.5 + math.random(), - z = pos.z - 0.5 + math.random(), - }, item) - end - end - - minetest.remove_node(pos) - minetest.check_for_falling(pos) -end - -function default.register_leafdecay(def) - assert(def.leaves) - assert(def.trunks) - assert(def.radius) - for _, v in pairs(def.trunks) do - minetest.override_item(v, { - after_destruct = function(pos, oldnode) - leafdecay_after_destruct(pos, oldnode, def) - end, - }) - end - for _, v in pairs(def.leaves) do - minetest.override_item(v, { - on_timer = function(pos) - leafdecay_on_timer(pos, def) - end, - }) - end -end - - --- --- Convert dirt to something that fits the environment --- - -minetest.register_abm({ - label = "Grass spread", - nodenames = {"default:dirt"}, - neighbors = { - "air", - "group:grass", - "group:dry_grass", - "default:snow", - }, - interval = 10, - chance = 25, - catch_up = false, - action = function(pos, node) - -- Check for darkness: night, shadow or under a light-blocking node - -- Returns if ignore above - local above = {x = pos.x, y = pos.y + 1, z = pos.z} - if (minetest.get_node_light(above) or 0) < 13 then - return - end - - -- Look for spreading dirt-type neighbours - local p2 = minetest.find_node_near(pos, 1, "group:spreading_dirt_type") - if p2 then - local n3 = minetest.get_node(p2) - minetest.set_node(pos, {name = n3.name}) - return - end - - -- Else, any seeding nodes on top? - local name = minetest.get_node(above).name - -- Snow check is cheapest, so comes first - if name == "default:snow" then - minetest.set_node(pos, {name = "default:dirt_with_snow"}) - -- Most likely case first - elseif minetest.get_item_group(name, "grass") ~= 0 then - minetest.set_node(pos, {name = "default:dirt_with_grass"}) - elseif minetest.get_item_group(name, "dry_grass") ~= 0 then - minetest.set_node(pos, {name = "default:dirt_with_dry_grass"}) - end - end -}) - - --- --- Grass and dry grass removed in darkness --- - -minetest.register_abm({ - label = "Grass covered", - nodenames = {"group:spreading_dirt_type"}, - interval = 10, - chance = 40, - catch_up = false, - action = function(pos, node) - local above = {x = pos.x, y = pos.y + 1, z = pos.z} - local name = minetest.get_node(above).name - local nodedef = minetest.registered_nodes[name] - if name ~= "ignore" and nodedef and not ((nodedef.sunlight_propagates or - nodedef.paramtype == "light") and - nodedef.liquidtype == "none") then - minetest.set_node(pos, {name = "default:dirt"}) - end - end -}) - - --- --- Moss growth on cobble near water --- - -local moss_correspondences = { - ["default:cobble"] = "default:mossycobble", - ["stairs:slab_default_cobble"] = "stairs:slab_mossycobble", - ["stairs:stair_default_cobble"] = "stairs:stair_mossycobble", - ["stairs:stair_innerstair_cobble"] = "stairs:stair_innerstair_mossycobble", - ["stairs:stair_outerstair_cobble"] = "stairs:stair_outerstair_mossycobble", - ["walls:cobble"] = "walls:mossycobble" -} -minetest.register_abm({ - label = "Moss growth", - nodenames = {"default:cobble", "stairs:slab_default_cobble", "stairs:stair_default_cobble", - "stairs:stair_innerstair_cobble", "stairs:stair_outerstair_cobble", - "walls:cobble" - }, - neighbors = {"group:water"}, - interval = 16, - chance = 200, - catch_up = false, - action = function(pos, node) - node.name = moss_correspondences[node.name] - if node.name then - minetest.set_node(pos, node) - end - end -}) - -function default.can_interact_with_node(player, pos) - if player then - if minetest.check_player_privs(player, "protection_bypass") then - return true - end - else - return false - end - - local meta = minetest.get_meta(pos) - local owner = meta:get_string("owner") - - if not owner or owner == "" or owner == player:get_player_name() then - return true - end - return false -end - --- --- Snowballs --- - --- Shoot snowball - -local function snowball_impact(thrower, pos, dir, hit_object) - if hit_object then - local punch_damage = { - full_punch_interval = 1.0, - damage_groups = {fleshy=1}, - } - hit_object:punch(thrower, 1.0, punch_damage, dir) - end - local node_pos = nil - local node = minetest.get_node(pos) - if node.name == "air" then - local pos_under = vector.subtract(pos, {x=0, y=1, z=0}) - node = minetest.get_node(pos_under) - if node.name then - local def = minetest.registered_items[node.name] or {} - if def.buildable_to == true then - node_pos = pos_under - elseif def.walkable == true then - node_pos = pos - end - elseif node.name then - local def = minetest.registered_items[node.name] - if def and def.buildable_to == true then - node_pos = pos - end - end - if node_pos then - minetest.add_node(pos, {name="default:snow"}) - minetest.spawn_falling_node(pos) - end - end -end - -function default.snow_shoot_snowball(itemstack, thrower, pointed_thing) - local playerpos = thrower:get_pos() - if not minetest.is_valid_pos(playerpos) then - return - end - local obj = minetest.item_throw("default:snowball", thrower, 19, -3, - snowball_impact) - if obj then - obj:set_properties({ - visual = "sprite", - visual_size = {x=1, y=1}, - textures = {"default_snowball.png"}, - }) - minetest.sound_play("throwing_sound", { - pos = playerpos, - gain = 0.7, - max_hear_distance = 10, - }) - if not (creative and creative.is_enabled_for and - creative.is_enabled_for(thrower)) or - not minetest.is_singleplayer() then - itemstack:take_item() - end - end - return itemstack -end diff --git a/games/default/files/default/furnace.lua b/games/default/files/default/furnace.lua deleted file mode 100644 index 7b466e3a4..000000000 --- a/games/default/files/default/furnace.lua +++ /dev/null @@ -1,331 +0,0 @@ - --- --- Formspecs --- - -function default.get_furnace_active_formspec(fuel_percent, item_percent) - return "size[9,8.75]".. - "background[-0.2,-0.26;9.41,9.49;formspec_inventory.png]".. - "background[-0.2,-0.26;9.41,9.49;formspec_furnace.png]".. - default.gui_bg.. - default.listcolors.. - "image_button_exit[8.4,-0.1;0.75,0.75;close.png;exit;;true;false;close_pressed.png]".. - "list[current_player;main;0,4.5;9,3;9]".. - "list[current_player;main;0,7.74;9,1;]".. - "list[current_name;src;3,0.5;1,1;]".. - "list[current_name;fuel;3,2.5;1,1;]".. - "list[current_name;dst;5,1.5;1,1;]".. - "list[detached:split;main;8,3.14;1,1;]".. - "image[3,1.5;1,1;default_furnace_fire_bg.png^[lowpart:".. - (100-fuel_percent)..":default_furnace_fire_fg.png]" -end - -function default.get_furnace_inactive_formspec() - return "size[9,8.75]".. - "background[-0.2,-0.26;9.41,9.49;formspec_inventory.png]".. - "background[-0.2,-0.26;9.41,9.49;formspec_furnace.png]".. - default.gui_bg.. - default.listcolors.. - "image_button_exit[8.4,-0.1;0.75,0.75;close.png;exit;;true;false;close_pressed.png]".. - "list[current_player;main;0,4.5;9,3;9]".. - "list[current_player;main;0,7.74;9,1;]".. - "list[current_name;src;3,0.5;1,1;]".. - "list[current_name;fuel;3,2.5;1,1;]".. - "list[current_name;dst;5,1.5;1,1;]".. - "list[detached:split;main;8,3.14;1,1;]" -end - --- --- Node callback functions that are the same for active and inactive furnace --- - -local function can_dig(pos, player) - local meta = minetest.get_meta(pos); - local inv = meta:get_inventory() - for _, name in pairs({"fuel", "dst", "src"}) do - local stack = inv:get_stack(name, 1) - minetest.item_drop(stack, nil, pos) - stack:clear() - inv:set_stack(name, 1, stack) - end - return inv:is_empty("fuel") and inv:is_empty("dst") and inv:is_empty("src") -end - -local function allow_metadata_inventory_put(pos, listname, index, stack, player) - if minetest.is_protected(pos, player:get_player_name()) then - return 0 - end - local meta = minetest.get_meta(pos) - local inv = meta:get_inventory() - if listname == "fuel" then - if minetest.get_craft_result({method="fuel", width=1, items={stack}}).time ~= 0 then - if inv:is_empty("src") then - meta:set_string("infotext", "Furnace is empty") - end - return stack:get_count() - else - return 0 - end - elseif listname == "src" then - return stack:get_count() - elseif listname == "dst" then - return 0 - end -end - -local function allow_metadata_inventory_move(pos, from_list, from_index, to_list, to_index, count, player) - local meta = minetest.get_meta(pos) - local inv = meta:get_inventory() - local stack = inv:get_stack(from_list, from_index) - return allow_metadata_inventory_put(pos, to_list, to_index, stack, player) -end - -local function allow_metadata_inventory_take(pos, listname, index, stack, player) - if minetest.is_protected(pos, player:get_player_name()) then - return 0 - end - return stack:get_count() -end - -local function swap_node(pos, name) - local node = minetest.get_node(pos) - if node.name == name then - return - end - node.name = name - minetest.swap_node(pos, node) -end - -local function furnace_node_timer(pos, elapsed) - -- - -- Inizialize metadata - -- - local meta = minetest.get_meta(pos) - local fuel_time = meta:get_float("fuel_time") or 0 - local src_time = meta:get_float("src_time") or 0 - local fuel_totaltime = meta:get_float("fuel_totaltime") or 0 - - local inv = meta:get_inventory() - local srclist, fuellist - - local cookable, cooked - local fuel - - local update = true - while elapsed > 0 and update do - update = false - - srclist = inv:get_list("src") - fuellist = inv:get_list("fuel") - - -- - -- Cooking - -- - - -- Check if we have cookable content - local aftercooked - cooked, aftercooked = minetest.get_craft_result({method = "cooking", width = 1, items = srclist}) - cookable = cooked.time ~= 0 - - local el = math.min(elapsed, fuel_totaltime - fuel_time) - if cookable then -- fuel lasts long enough, adjust el to cooking duration - el = math.min(el, cooked.time - src_time) - end - - -- Check if we have enough fuel to burn - if fuel_time < fuel_totaltime then - -- The furnace is currently active and has enough fuel - fuel_time = fuel_time + el - -- If there is a cookable item then check if it is ready yet - if cookable then - src_time = src_time + el - if src_time >= cooked.time then - -- Place result in dst list if possible - if inv:room_for_item("dst", cooked.item) then - inv:add_item("dst", cooked.item) - inv:set_stack("src", 1, aftercooked.items[1]) - src_time = src_time - cooked.time - update = true - end - else - -- Item could not be cooked: probably missing fuel - update = true - end - end - else - -- Furnace ran out of fuel - if cookable then - -- We need to get new fuel - local afterfuel - fuel, afterfuel = minetest.get_craft_result({method = "fuel", width = 1, items = fuellist}) - - if fuel.time == 0 then - -- No valid fuel in fuel list - fuel_totaltime = 0 - src_time = 0 - else - -- Take fuel from fuel list - inv:set_stack("fuel", 1, afterfuel.items[1]) - update = true - fuel_totaltime = fuel.time + (fuel_totaltime - fuel_time) - end - else - -- We don't need to get new fuel since there is no cookable item - fuel_totaltime = 0 - src_time = 0 - end - fuel_time = 0 - end - - elapsed = elapsed - el - end - - if fuel and fuel_totaltime > fuel.time then - fuel_totaltime = fuel.time - end - if srclist[1]:is_empty() then - src_time = 0 - end - - -- - -- Update formspec, infotext and node - -- - local formspec - local item_state - local item_percent = 0 - if cookable then - item_percent = math.floor(src_time / cooked.time * 100) - if item_percent > 100 then - item_state = "100% (output full)" - else - item_state = item_percent .. "%" - end - else - if srclist[1]:is_empty() then - item_state = "Empty" - else - item_state = "Not cookable" - end - end - - local fuel_state = "Empty" - local active = "inactive" - local result = false - - if fuel_totaltime ~= 0 then - active = "active" - local fuel_percent = math.floor(fuel_time / fuel_totaltime * 100) - fuel_state = fuel_percent .. "%" - formspec = default.get_furnace_active_formspec(fuel_percent, item_percent) - swap_node(pos, "default:furnace_active") - -- make sure timer restarts automatically - result = true - else - if not fuellist[1]:is_empty() then - fuel_state = "0%" - end - formspec = default.get_furnace_inactive_formspec() - swap_node(pos, "default:furnace") - -- stop timer on the inactive furnace - minetest.get_node_timer(pos):stop() - end - - local infotext = "Furnace " .. active .. "\n(Item: " .. item_state .. - "; Fuel: " .. fuel_state .. ")" - - -- - -- Set meta values - -- - meta:set_float("fuel_totaltime", fuel_totaltime) - meta:set_float("fuel_time", fuel_time) - meta:set_float("src_time", src_time) - meta:set_string("formspec", formspec) - meta:set_string("infotext", infotext) - - return result -end - --- --- Node definitions --- - -minetest.register_node("default:furnace", { - description = "Furnace", - tiles = { - "default_furnace_top.png", "default_furnace_top.png", - "default_furnace_side.png", "default_furnace_side.png", - "default_furnace_side.png", "default_furnace_front.png" - }, - paramtype2 = "facedir", - groups = {cracky = 2}, - legacy_facedir_simple = true, - is_ground_content = false, - sounds = default.node_sound_stone_defaults(), - - can_dig = can_dig, - - on_timer = furnace_node_timer, - - on_construct = function(pos) - local meta = minetest.get_meta(pos) - meta:set_string("formspec", default.get_furnace_inactive_formspec()) - local inv = meta:get_inventory() - inv:set_size('src', 1) - inv:set_size('fuel', 1) - inv:set_size('dst', 4) - end, - - on_metadata_inventory_move = function(pos) - minetest.get_node_timer(pos):start(1.0) - end, - on_metadata_inventory_put = function(pos) - -- start timer function, it will sort out whether furnace can burn or not. - minetest.get_node_timer(pos):start(1.0) - end, - on_blast = function(pos) - local drops = {} - default.get_inventory_drops(pos, "src", drops) - default.get_inventory_drops(pos, "fuel", drops) - default.get_inventory_drops(pos, "dst", drops) - drops[#drops+1] = "default:furnace" - minetest.remove_node(pos) - return drops - end, - - allow_metadata_inventory_put = allow_metadata_inventory_put, - allow_metadata_inventory_move = allow_metadata_inventory_move, - allow_metadata_inventory_take = allow_metadata_inventory_take, -}) - -minetest.register_node("default:furnace_active", { - description = "Furnace", - tiles = { - "default_furnace_top.png", "default_furnace_top.png", - "default_furnace_side.png", "default_furnace_side.png", - "default_furnace_side.png", - { - image = "default_furnace_front_active.png", - backface_culling = false, - animation = { - type = "vertical_frames", - aspect_w = 16, - aspect_h = 16, - length = 1.5 - }, - } - }, - paramtype2 = "facedir", - light_source = minetest.LIGHT_MAX - 5, - drop = "default:furnace", - groups = {cracky = 2, not_in_creative_inventory=1}, - legacy_facedir_simple = true, - is_ground_content = false, - sounds = default.node_sound_stone_defaults(), - on_timer = furnace_node_timer, - - can_dig = can_dig, - - allow_metadata_inventory_put = allow_metadata_inventory_put, - allow_metadata_inventory_move = allow_metadata_inventory_move, - allow_metadata_inventory_take = allow_metadata_inventory_take, -}) diff --git a/games/default/files/default/init.lua b/games/default/files/default/init.lua deleted file mode 100644 index f7c0bf5be..000000000 --- a/games/default/files/default/init.lua +++ /dev/null @@ -1,25 +0,0 @@ --- MultiCraft Game mod: default --- See README.txt for licensing and other information. - --- The API documentation in here was moved into doc/lua_api.txt - --- Definitions made by this mod that other mods can use too -default = {} - -default.gui_bg = "bgcolor[#08080880;true]" -default.listcolors = "listcolors[#9990;#FFF7;#FFF0;#160816;#D4D2FF]" - --- Load files -local default_path = minetest.get_modpath("default") - -dofile(default_path.."/functions.lua") -dofile(default_path.."/trees.lua") -dofile(default_path.."/nodes.lua") -dofile(default_path.."/chests.lua") -dofile(default_path.."/furnace.lua") -dofile(default_path.."/torch.lua") -dofile(default_path.."/tools.lua") -dofile(default_path.."/craftitems.lua") -dofile(default_path.."/crafting.lua") -dofile(default_path.."/mapgen.lua") -dofile(default_path.."/aliases.lua") diff --git a/games/default/files/default/license.txt b/games/default/files/default/license.txt deleted file mode 100644 index 8f7d85a80..000000000 --- a/games/default/files/default/license.txt +++ /dev/null @@ -1,134 +0,0 @@ -License of source code ----------------------- - -GNU Lesser General Public License, version 3.0 -Copyright (C) 2011-2018 celeron55, Perttu Ahola -Copyright (C) 2011-2018 Various Minetest developers and contributors -Copyright (C) 2014-2019 MoNTE48, Maksim D. Gamarnik -Copyright (C) 2014-2019 MultiCraft Development Team - -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: -http://www.gnu.org/licenses/lgpl-3.0.html - - -Licenses of media (textures, models and sounds) ------------------------------------------------ - -Attribution-ShareAlike 3.0 Unported (CC BY-SA 3.0) -Copyright (C) 2010-2018: - - celeron55, Perttu Ahola - Cisoun - G4JC - VanessaE - RealBadAngel - Calinou - MirceaKitsune - Jordach - PilzAdam - jojoa1997 - InfinityProject - Splizard - Zeg9 - paramat - BlockMen - sofar - Neuromancer - Gambit - asl97 - KevDoy - Mito551 - GreenXenith - kaeza - kilbith - tobyplowy - CloudyProton - TumeniNodes - Mossmanikin - random-geek - Extex101 - -You are free to: -Share — copy and redistribute the material in any medium or format. -Adapt — remix, transform, and build upon the material for any purpose, even commercially. -The licensor cannot revoke these freedoms as long as you follow the license terms. - -Under the following terms: - -Attribution — You must give appropriate credit, provide a link to the license, and -indicate if changes were made. You may do so in any reasonable manner, but not in any way -that suggests the licensor endorses you or your use. - -ShareAlike — If you remix, transform, or build upon the material, you must distribute -your contributions under the same license as the original. - -No additional restrictions — You may not apply legal terms or technological measures that -legally restrict others from doing anything the license permits. - -Notices: - -You do not have to comply with the license for elements of the material in the public -domain or where your use is permitted by an applicable exception or limitation. -No warranties are given. The license may not give you all of the permissions necessary -for your intended use. For example, other rights such as publicity, privacy, or moral -rights may limit how you use the material. - -For more details: -http://creativecommons.org/licenses/by-sa/3.0/ - ------------------------ - -Attribution 3.0 Unported (CC BY 3.0) - -Copyright (C) 2009 cmusounddesign -Copyright (C) 2010 Tomlija -Copyright (C) 2010 lsprice -Copyright (C) 2014 sonictechtonic -Copyright (C) 2015 yadronoff -Copyright (C) 2007 HerbertBoland -Copyright (C) 2006 AGFX - -You are free to: -Share — copy and redistribute the material in any medium or format. -Adapt — remix, transform, and build upon the material for any purpose, even commercially. -The licensor cannot revoke these freedoms as long as you follow the license terms. - -Under the following terms: - -Attribution — You must give appropriate credit, provide a link to the license, and -indicate if changes were made. You may do so in any reasonable manner, but not in any way -that suggests the licensor endorses you or your use. - -No additional restrictions — You may not apply legal terms or technological measures that -legally restrict others from doing anything the license permits. - -Notices: - -You do not have to comply with the license for elements of the material in the public -domain or where your use is permitted by an applicable exception or limitation. -No warranties are given. The license may not give you all of the permissions necessary -for your intended use. For example, other rights such as publicity, privacy, or moral -rights may limit how you use the material. - -For more details: -http://creativecommons.org/licenses/by/3.0/ - ------------------------ - -CC0 1.0 Universal (CC0 1.0) Public Domain Dedication - -Iwan Gabovitch -Ottomaani138 -Ogrebane -blukotek -Sevin7 -Yoyodaman234 -Ryding - -https://creativecommons.org/publicdomain/zero/1.0/ diff --git a/games/default/files/default/mapgen.lua b/games/default/files/default/mapgen.lua deleted file mode 100644 index c3c67db34..000000000 --- a/games/default/files/default/mapgen.lua +++ /dev/null @@ -1,1408 +0,0 @@ --- --- Aliases for map generators --- - -minetest.register_alias("mapgen_stone", "default:stone") -minetest.register_alias("mapgen_dirt", "default:dirt") -minetest.register_alias("mapgen_dirt_with_grass", "default:dirt_with_grass") -minetest.register_alias("mapgen_sand", "default:sand") -minetest.register_alias("mapgen_water_source", "default:water_source") -minetest.register_alias("mapgen_river_water_source", "default:river_water_source") -minetest.register_alias("mapgen_lava_source", "default:lava_source") -minetest.register_alias("mapgen_gravel", "default:gravel") -minetest.register_alias("mapgen_desert_stone", "default:redsandstone") -minetest.register_alias("mapgen_desert_sand", "default:redsand") -minetest.register_alias("default:desert_sand", "default:redsand") -minetest.register_alias("mapgen_dirt_with_snow", "default:dirt_with_snow") -minetest.register_alias("mapgen_snowblock", "default:snowblock") -minetest.register_alias("mapgen_snow", "default:snow") -minetest.register_alias("mapgen_ice", "default:ice") -minetest.register_alias("mapgen_sandstone", "default:sandstone") -minetest.register_alias("mapgen_bedrock", "default:bedrock") - --- Flora - -minetest.register_alias("mapgen_tree", "default:tree") -minetest.register_alias("mapgen_leaves", "default:leaves") -minetest.register_alias("mapgen_apple", "default:apple") -minetest.register_alias("mapgen_jungletree", "default:jungletree") -minetest.register_alias("mapgen_jungleleaves", "default:jungleleaves") -minetest.register_alias("mapgen_junglegrass", "default:junglegrass") -minetest.register_alias("mapgen_pine_tree", "default:pine_tree") -minetest.register_alias("mapgen_pine_needles", "default:pine_needles") - --- Dungeons - -minetest.register_alias("mapgen_cobble", "default:cobble") -minetest.register_alias("mapgen_stair_cobble", "stairs:stair_default_cobble") -minetest.register_alias("mapgen_mossycobble", "default:mossycobble") -minetest.register_alias("mapgen_sandstonebrick", "default:sandstone") -minetest.register_alias("mapgen_stair_sandstonebrick", "stairs:stair_default_sandstone") - --- --- Register bedrock for Mgv6 --- - -function default.register_bedrock() - -- Bedrock - -- This first to avoid other ores cutting through bedrock - - minetest.register_ore({ - ore_type = "scatter", - ore = "default:bedrock", - wherein = {"default:stone", "default:sand", - "default:water_source", "default:lava_source", "air"}, - clust_scarcity = 1 * 1 * 1, - clust_num_ores = 5, - clust_size = 2, - y_min = -66, - y_max = -64, - }) -end - --- --- Register ores --- - --- All mapgens except singlenode - - -function default.register_ores() - - -- Blob ore - -- These first to avoid other ores in blobs - - -- Clay - -- This first to avoid clay in sand blobs - - minetest.register_ore({ - ore_type = "blob", - ore = "default:clay", - wherein = {"default:sand"}, - clust_scarcity = 16 * 16 * 16, - clust_size = 5, - y_max = 0, - y_min = -15, - noise_threshold = 0.0, - noise_params = { - offset = 0.5, - scale = 0.2, - spread = {x = 5, y = 5, z = 5}, - seed = -316, - octaves = 1, - persist = 0.0 - }, - }) - - -- Sand - - minetest.register_ore({ - ore_type = "blob", - ore = "default:sand", - wherein = {"default:stone", "default:sandstone"}, - clust_scarcity = 16 * 16 * 16, - clust_size = 5, - y_max = 4, - y_min = -31, - noise_threshold = 0.0, - noise_params = { - offset = 0.5, - scale = 0.2, - spread = {x = 5, y = 5, z = 5}, - seed = 2316, - octaves = 1, - persist = 0.0 - }, - }) - - -- Red Sand - - minetest.register_ore({ - ore_type = "blob", - ore = "default:redsand", - wherein = {"default:stone", "default:redsandstone"}, - clust_scarcity = 16 * 16 * 16, - clust_size = 5, - y_max = 6, - y_min = -24, - noise_threshold = 0.0, - noise_params = { - offset = 0.5, - scale = 0.2, - spread = {x = 5, y = 5, z = 5}, - seed = 2316, - octaves = 1, - persist = 0.0 - }, - }) - - -- Dirt - - minetest.register_ore({ - ore_type = "blob", - ore = "default:dirt", - wherein = {"default:stone", "default:sandstone"}, - clust_scarcity = 16 * 16 * 16, - clust_size = 5, - y_max = 31000, - y_min = -31, - noise_threshold = 0.0, - noise_params = { - offset = 0.5, - scale = 0.2, - spread = {x = 5, y = 5, z = 5}, - seed = 17676, - octaves = 1, - persist = 0.0 - }, - }) - - -- Gravel - - minetest.register_ore({ - ore_type = "blob", - ore = "default:gravel", - wherein = {"default:stone"}, - clust_scarcity = 16 * 16 * 16, - clust_size = 5, - y_max = 31000, - y_min = -60, - noise_threshold = 0.0, - noise_params = { - offset = 0.5, - scale = 0.2, - spread = {x = 5, y = 5, z = 5}, - seed = 766, - octaves = 1, - persist = 0.0 - }, - }) - - -- Scatter ores - - -- Coal - - minetest.register_ore({ - ore_type = "scatter", - ore = "default:stone_with_coal", - wherein = "default:stone", - clust_scarcity = 8 * 8 * 8, - clust_num_ores = 9, - clust_size = 3, - y_max = 31000, - y_min = 0, - }) - - minetest.register_ore({ - ore_type = "scatter", - ore = "default:stone_with_coal", - wherein = "default:stone", - clust_scarcity = 8 * 8 * 8, - clust_num_ores = 8, - clust_size = 3, - y_min = 8, - y_max = -24, - }) - - minetest.register_ore({ - ore_type = "scatter", - ore = "default:stone_with_coal", - wherein = "default:stone", - clust_scarcity = 24 * 24 * 24, - clust_num_ores = 27, - clust_size = 6, - y_max = 0, - y_min = -64, - }) - - -- Iron - - minetest.register_ore({ - ore_type = "scatter", - ore = "default:stone_with_iron", - wherein = "default:stone", - clust_scarcity = 830, - clust_num_ores = 5, - clust_size = 3, - y_min = -59, - y_max = -10, - }) - - minetest.register_ore({ - ore_type = "scatter", - ore = "default:stone_with_iron", - wherein = "default:stone", - clust_scarcity = 1660, - clust_num_ores = 3, - clust_size = 2, - y_min = -9, - y_max = 0, - }) - - -- Gold - - minetest.register_ore({ - ore_type = "scatter", - ore = "default:stone_with_gold", - wherein = "default:stone", - clust_scarcity = 13 * 13 * 13, - clust_num_ores = 5, - clust_size = 3, - y_max = -18, - y_min = -24, - }) - - minetest.register_ore({ - ore_type = "scatter", - ore = "default:stone_with_gold", - wherein = "default:stone", - clust_scarcity = 15 * 15 * 15, - clust_num_ores = 3, - clust_size = 2, - y_max = -24, - y_min = -48, - }) - - minetest.register_ore({ - ore_type = "scatter", - ore = "default:stone_with_gold", - wherein = "default:stone", - clust_scarcity = 13 * 13 * 13, - clust_num_ores = 5, - clust_size = 3, - y_max = -48, - y_min = -64, - }) - - -- Diamond - - minetest.register_ore({ - ore_type = "scatter", - ore = "default:stone_with_diamond", - wherein = "default:stone", - clust_scarcity = 10000, - clust_num_ores = 4, - clust_size = 3, - y_max = -48, - y_min = -59, - }) - - minetest.register_ore({ - ore_type = "scatter", - ore = "default:stone_with_diamond", - wherein = "default:stone", - clust_scarcity = 5000, - clust_num_ores = 2, - clust_size = 2, - y_max = -48, - y_min = -59, - }) - - minetest.register_ore({ - ore_type = "scatter", - ore = "default:stone_with_diamond", - wherein = "default:stone", - clust_scarcity = 10000, - clust_num_ores = 8, - clust_size = 3, - y_max = -52, - y_min = -55, - }) - - -- Bluestone - - minetest.register_ore({ - ore_type = "scatter", - ore = "default:stone_with_bluestone", - wherein = "default:stone", - clust_scarcity = 10000, - clust_num_ores = 5, - clust_size = 3, - y_min = -59, - y_max = -48, - }) - - minetest.register_ore({ - ore_type = "scatter", - ore = "default:stone_with_bluestone", - wherein = "default:stone", - clust_scarcity = 10000, - clust_num_ores = 10, - clust_size = 4, - y_min = -59, - y_max = -48, - }) - - -- Emerald - - minetest.register_ore({ - ore_type = "scatter", - ore = "default:stone_with_emerald", - wherein = "default:stone", - clust_scarcity = 10000, - clust_num_ores = 1, - clust_size = 2, - y_min = -59, - y_max = -35, - }) - - minetest.register_ore({ - ore_type = "scatter", - ore = "default:stone_with_emerald", - wherein = "default:stone", - clust_scarcity = 50000, - clust_num_ores = 3, - clust_size = 2, - y_min = -59, - y_max = -35, - }) - - -- Lapis Lazuli - - minetest.register_ore({ - ore_type = "scatter", - ore = "default:stone_with_lapis", - wherein = "default:stone", - clust_scarcity = 10000, - clust_num_ores = 7, - clust_size = 4, - y_min = -50, - y_max = -46, - }) - - minetest.register_ore({ - ore_type = "scatter", - ore = "default:stone_with_lapis", - wherein = "default:stone", - clust_scarcity = 10000, - clust_num_ores = 5, - clust_size = 4, - y_min = -59, - y_max = -50, - }) - - -- Glowstone - - minetest.register_ore({ - ore_type = "scatter", - ore = "default:glowstone", - wherein = "default:stone", - clust_scarcity = 50000, - clust_num_ores = 10, - clust_size = 5, - y_min = -59, - y_max = -0, - }) -end - - --- --- Register biomes --- - --- All mapgens except mgv6 - -function default.register_biomes() - - -- Icesheet - - minetest.register_biome({ - name = "icesheet", - node_dust = "default:snowblock", - node_top = "default:snowblock", - depth_top = 1, - node_filler = "default:snowblock", - depth_filler = 3, - node_stone = "default:ice", - node_water_top = "default:ice", - depth_water_top = 10, - node_river_water = "default:ice", - node_riverbed = "default:gravel", - depth_riverbed = 2, - y_max = 31000, - y_min = -8, - heat_point = 0, - humidity_point = 73, - }) - - minetest.register_biome({ - name = "icesheet_ocean", - node_dust = "default:snowblock", - node_top = "default:sand", - depth_top = 1, - node_filler = "default:sand", - depth_filler = 3, - node_water_top = "default:ice", - depth_water_top = 10, - y_max = -9, - y_min = -64, - heat_point = 0, - humidity_point = 73, - }) - - -- Tundra - - minetest.register_biome({ - name = "tundra_highland", - node_dust = "default:snow", - node_riverbed = "default:gravel", - depth_riverbed = 2, - y_max = 31000, - y_min = 47, - heat_point = 0, - humidity_point = 40, - }) - - minetest.register_biome({ - name = "tundra", - node_top = "default:dirt_with_snow", - depth_top = 1, - node_filler = "default:dirt", - depth_filler = 1, - node_riverbed = "default:gravel", - depth_riverbed = 2, - y_max = 46, - y_min = 2, - heat_point = 0, - humidity_point = 40, - }) - - minetest.register_biome({ - name = "tundra_beach", - node_top = "default:gravel", - depth_top = 1, - node_filler = "default:gravel", - depth_filler = 2, - node_riverbed = "default:gravel", - depth_riverbed = 2, - y_max = 1, - y_min = -3, - heat_point = 0, - humidity_point = 40, - }) - - minetest.register_biome({ - name = "tundra_ocean", - node_top = "default:sand", - depth_top = 1, - node_filler = "default:sand", - depth_filler = 3, - node_riverbed = "default:gravel", - depth_riverbed = 2, - y_max = -4, - y_min = -64, - heat_point = 0, - humidity_point = 40, - }) - - -- Taiga - - minetest.register_biome({ - name = "taiga", - node_dust = "default:snow", - node_top = "default:dirt_with_snow", - depth_top = 1, - node_filler = "default:dirt", - depth_filler = 3, - node_riverbed = "default:sand", - depth_riverbed = 2, - y_max = 31000, - y_min = 4, - heat_point = 25, - humidity_point = 70, - }) - - minetest.register_biome({ - name = "taiga_ocean", - node_dust = "default:snow", - node_top = "default:sand", - depth_top = 1, - node_filler = "default:sand", - depth_filler = 3, - node_riverbed = "default:sand", - depth_riverbed = 2, - y_max = 3, - y_min = -60, - heat_point = 25, - humidity_point = 70, - }) - - -- Snowy grassland - - minetest.register_biome({ - name = "snowy_grassland", - node_dust = "default:snow", - node_top = "default:dirt_with_snow", - depth_top = 1, - node_filler = "default:dirt", - depth_filler = 1, - node_riverbed = "default:sand", - depth_riverbed = 2, - y_max = 31000, - y_min = 4, - heat_point = 20, - humidity_point = 35, - }) - - minetest.register_biome({ - name = "snowy_grassland_ocean", - node_dust = "default:snow", - node_top = "default:sand", - depth_top = 1, - node_filler = "default:sand", - depth_filler = 3, - node_riverbed = "default:sand", - depth_riverbed = 2, - y_max = 3, - y_min = -64, - heat_point = 20, - humidity_point = 35, - }) - - -- Grassland - - minetest.register_biome({ - name = "grassland", - node_top = "default:dirt_with_grass", - depth_top = 1, - node_filler = "default:dirt", - depth_filler = 1, - node_riverbed = "default:sand", - depth_riverbed = 2, - y_max = 31000, - y_min = 6, - heat_point = 50, - humidity_point = 35, - }) - - minetest.register_biome({ - name = "grassland_dunes", - node_top = "default:sand", - depth_top = 1, - node_filler = "default:sand", - depth_filler = 2, - node_riverbed = "default:sand", - depth_riverbed = 2, - y_max = 5, - y_min = 4, - heat_point = 50, - humidity_point = 35, - }) - - minetest.register_biome({ - name = "grassland_ocean", - node_top = "default:sand", - depth_top = 1, - node_filler = "default:sand", - depth_filler = 3, - node_riverbed = "default:sand", - depth_riverbed = 2, - y_max = 3, - y_min = -64, - heat_point = 50, - humidity_point = 35, - }) - -- Coniferous forest - - minetest.register_biome({ - name = "coniferous_forest", - node_top = "default:dirt_with_grass", - depth_top = 1, - node_filler = "default:dirt", - depth_filler = 3, - node_riverbed = "default:sand", - depth_riverbed = 2, - y_max = 31000, - y_min = 6, - heat_point = 45, - humidity_point = 70, - }) - - minetest.register_biome({ - name = "coniferous_forest_dunes", - node_top = "default:sand", - depth_top = 1, - node_filler = "default:sand", - depth_filler = 3, - node_riverbed = "default:sand", - depth_riverbed = 2, - y_max = 5, - y_min = 4, - heat_point = 45, - humidity_point = 70, - }) - - minetest.register_biome({ - name = "coniferous_forest_ocean", - node_top = "default:sand", - depth_top = 1, - node_filler = "default:sand", - depth_filler = 3, - node_riverbed = "default:sand", - depth_riverbed = 2, - y_max = 3, - y_min = -64, - heat_point = 45, - humidity_point = 70, - }) - - -- Deciduous forest - - minetest.register_biome({ - name = "deciduous_forest", - node_top = "default:dirt_with_grass", - depth_top = 1, - node_filler = "default:dirt", - depth_filler = 3, - node_riverbed = "default:sand", - depth_riverbed = 2, - y_max = 31000, - y_min = 1, - heat_point = 60, - humidity_point = 68, - }) - - minetest.register_biome({ - name = "deciduous_forest_shore", - node_top = "default:dirt", - depth_top = 1, - node_filler = "default:dirt", - depth_filler = 3, - node_riverbed = "default:sand", - depth_riverbed = 2, - y_max = 0, - y_min = -1, - heat_point = 60, - humidity_point = 68, - }) - - minetest.register_biome({ - name = "deciduous_forest_ocean", - node_top = "default:sand", - depth_top = 1, - node_filler = "default:sand", - depth_filler = 3, - node_riverbed = "default:sand", - depth_riverbed = 2, - y_max = -2, - y_min = -64, - heat_point = 60, - humidity_point = 68, - }) - - -- Desert - - minetest.register_biome({ - name = "desert", - node_top = "default:sand", - depth_top = 1, - node_filler = "default:sand", - depth_filler = 1, - node_stone = "default:sandstone", - node_riverbed = "default:sand", - depth_riverbed = 2, - y_max = 31000, - y_min = 4, - heat_point = 92, - humidity_point = 16, - }) - - minetest.register_biome({ - name = "desert_ocean", - node_top = "default:sand", - depth_top = 1, - node_filler = "default:sand", - depth_filler = 3, - node_stone = "default:redsandstone", - node_riverbed = "default:redsand", - depth_riverbed = 2, - y_max = 3, - y_min = -64, - heat_point = 92, - humidity_point = 16, - }) - - -- Sandstone desert - - minetest.register_biome({ - name = "sandstone_desert", - node_top = "default:sand", - depth_top = 1, - node_filler = "default:sand", - depth_filler = 1, - node_stone = "default:sandstone", - node_riverbed = "default:sand", - depth_riverbed = 2, - y_max = 31000, - y_min = 4, - heat_point = 60, - humidity_point = 0, - }) - - minetest.register_biome({ - name = "sandstone_desert_ocean", - node_top = "default:sand", - depth_top = 1, - node_filler = "default:sand", - depth_filler = 3, - node_stone = "default:sandstone", - node_riverbed = "default:sand", - depth_riverbed = 2, - y_max = 3, - y_min = -64, - heat_point = 60, - humidity_point = 0, - }) - - -- Savanna - - minetest.register_biome({ - name = "savanna", - node_top = "default:dirt_with_dry_grass", - depth_top = 1, - node_filler = "default:dirt", - depth_filler = 1, - node_riverbed = "default:sand", - depth_riverbed = 2, - y_max = 31000, - y_min = 1, - heat_point = 89, - humidity_point = 42, - }) - - minetest.register_biome({ - name = "savanna_shore", - node_top = "default:dirt", - depth_top = 1, - node_filler = "default:dirt", - depth_filler = 3, - node_riverbed = "default:sand", - depth_riverbed = 2, - y_max = 0, - y_min = -1, - heat_point = 89, - humidity_point = 42, - }) - - minetest.register_biome({ - name = "savanna_ocean", - node_top = "default:sand", - depth_top = 1, - node_filler = "default:sand", - depth_filler = 3, - node_riverbed = "default:sand", - depth_riverbed = 2, - y_max = -2, - y_min = -255, - heat_point = 89, - humidity_point = 42, - }) - - - -- Rainforest - - minetest.register_biome({ - name = "rainforest", - node_top = "default:dirt_with_grass", - depth_top = 1, - node_filler = "default:dirt", - depth_filler = 3, - node_riverbed = "default:sand", - depth_riverbed = 2, - y_max = 31000, - y_min = 1, - heat_point = 86, - humidity_point = 65, - }) - - minetest.register_biome({ - name = "rainforest_swamp", - node_top = "default:dirt", - depth_top = 1, - node_filler = "default:dirt", - depth_filler = 3, - node_riverbed = "default:sand", - depth_riverbed = 2, - y_max = 0, - y_min = -1, - heat_point = 86, - humidity_point = 65, - }) - - minetest.register_biome({ - name = "rainforest_ocean", - node_top = "default:sand", - depth_top = 1, - node_filler = "default:sand", - depth_filler = 3, - node_riverbed = "default:sand", - depth_riverbed = 2, - y_max = -2, - y_min = -255, - heat_point = 86, - humidity_point = 65, - }) - - -- Underground - - minetest.register_biome({ - name = "underground", - --node_dust = "", - --node_top = "", - --depth_top = , - --node_filler = "", - --depth_filler = , - --node_stone = "", - --node_water_top = "", - --depth_water_top = , - --node_water = "", - --node_river_water = "", - y_min = -31000, - y_max = -113, - heat_point = 50, - humidity_point = 50, - }) -end - - --- --- Register decorations --- - --- Mgv6 - -function default.register_mgv6_decorations() - - -- Sugar Cane - - minetest.register_decoration({ - deco_type = "simple", - place_on = {"default:dirt_with_grass"}, - sidelen = 16, - noise_params = { - offset = -0.3, - scale = 0.7, - spread = {x = 100, y = 100, z = 100}, - seed = 354, - octaves = 3, - persist = 0.7 - }, - y_max = 1, - y_min = 1, - decoration = "default:sugarcane", - height = 2, - height_max = 4, - spawn_by = "default:water_source", - num_spawn_by = 1, - }) - - -- Cacti - - minetest.register_decoration({ - deco_type = "simple", - place_on = {"default:redsand"}, - sidelen = 16, - noise_params = { - offset = -0.012, - scale = 0.024, - spread = {x = 100, y = 100, z = 100}, - seed = 230, - octaves = 3, - persist = 0.6 - }, - y_max = 30, - y_min = 1, - decoration = "default:cactus", - height = 3, - height_max = 4, - }) - - -- Long grasses - - minetest.register_decoration({ - deco_type = "simple", - place_on = {"default:dirt_with_grass"}, - sidelen = 16, - fill_ratio = 0.05, - y_max = 30, - y_min = 1, - decoration = "default:grass", - }) - - -- Dry shrubs - - minetest.register_decoration({ - deco_type = "simple", - place_on = {"default:redsand", "default:dirt_with_snow"}, - sidelen = 16, - noise_params = { - offset = 0, - scale = 0.035, - spread = {x = 100, y = 100, z = 100}, - seed = 329, - octaves = 3, - persist = 0.6 - }, - y_max = 30, - y_min = 1, - decoration = "default:dry_shrub", - param2 = 4, - }) -end - - - -function default.register_decorations() - - -- Apple tree and log - - minetest.register_decoration({ - name = "default:apple_tree", - deco_type = "schematic", - place_on = {"default:dirt_with_grass"}, - sidelen = 16, - noise_params = { - offset = 0.024, - scale = 0.015, - spread = {x = 250, y = 250, z = 250}, - seed = 2, - octaves = 3, - persist = 0.66 - }, - biomes = {"deciduous_forest"}, - y_max = 31000, - y_min = 1, - schematic = minetest.get_modpath("default") .. "/schematics/apple_tree.mts", - flags = "place_center_x, place_center_z", - rotation = "random", - }) - - minetest.register_decoration({ - name = "default:apple_log", - deco_type = "schematic", - place_on = {"default:dirt_with_grass"}, - sidelen = 16, - noise_params = { - offset = 0.0012, - scale = 0.0007, - spread = {x = 250, y = 250, z = 250}, - seed = 2, - octaves = 3, - persist = 0.66 - }, - biomes = {"deciduous_forest"}, - y_max = 31000, - y_min = 1, - schematic = minetest.get_modpath("default") .. "/schematics/apple_log.mts", - flags = "place_center_x", - rotation = "random", - spawn_by = "default:dirt_with_grass", - num_spawn_by = 8, - }) - - -- Emergent jungle tree - -- Due to 32 node height, altitude is limited and prescence depends on chunksize - ---[[ local chunksize = tonumber(minetest.get_mapgen_setting("chunksize")) - if chunksize >= 5 then - minetest.register_decoration({ - name = "default:emergent_jungle_tree", - deco_type = "schematic", --- place_on = {"default:dirt_with_rainforest_litter"}, - place_on = {"default:dirt_with_grass", "default:dirt"}, - sidelen = 80, - noise_params = { - offset = 0.0, - scale = 0.0025, - spread = {x = 250, y = 250, z = 250}, - seed = 2685, - octaves = 3, - persist = 0.7 - }, - biomes = {"rainforest"}, - y_max = 32, - y_min = 1, - schematic = minetest.get_modpath("default") .. - "/schematics/emergent_jungle_tree.mts", - flags = "place_center_x, place_center_z", - rotation = "random", - place_offset_y = -4, - }) - end]] - - -- Jungle tree and log - - minetest.register_decoration({ - name = "default:jungle_tree", - deco_type = "schematic", --- place_on = {"default:dirt_with_rainforest_litter", "default:dirt"}, - place_on = {"default:dirt_with_grass", "default:dirt"}, - sidelen = 80, - fill_ratio = 0.1, - biomes = {"rainforest", "rainforest_swamp"}, - y_max = 31000, - y_min = -1, - schematic = minetest.get_modpath("default") .. "/schematics/jungle_tree.mts", - flags = "place_center_x, place_center_z", - rotation = "random", - }) - - minetest.register_decoration({ - name = "default:jungle_log", - deco_type = "schematic", --- place_on = {"default:dirt_with_rainforest_litter"}, - place_on = {"default:dirt_with_grass", "default:dirt"}, - sidelen = 80, - fill_ratio = 0.005, - biomes = {"rainforest", "rainforest_swamp"}, - y_max = 31000, - y_min = 1, - schematic = minetest.get_modpath("default") .. "/schematics/jungle_log.mts", - flags = "place_center_x", - rotation = "random", --- spawn_by = "default:dirt_with_rainforest_litter", --- num_spawn_by = 8, - }) - - -- Taiga and temperate coniferous forest pine tree, small pine tree and log - - minetest.register_decoration({ - name = "default:pine_tree", - deco_type = "schematic", --- place_on = {"default:dirt_with_snow", "default:dirt_with_coniferous_litter"}, - place_on = {"default:dirt_with_snow", "default:dirt_with_grass"}, - sidelen = 16, - noise_params = { - offset = 0.010, - scale = 0.048, - spread = {x = 250, y = 250, z = 250}, - seed = 2, - octaves = 3, - persist = 0.66 - }, - biomes = {"taiga", "coniferous_forest", "floatland_coniferous_forest"}, - y_max = 31000, - y_min = 4, - schematic = minetest.get_modpath("default") .. "/schematics/pine_tree.mts", - flags = "place_center_x, place_center_z", - }) - - minetest.register_decoration({ - name = "default:small_pine_tree", - deco_type = "schematic", --- place_on = {"default:dirt_with_snow", "default:dirt_with_coniferous_litter"}, - place_on = {"default:dirt_with_snow", "default:dirt_with_grass"}, - sidelen = 16, - noise_params = { - offset = 0.010, - scale = -0.048, - spread = {x = 250, y = 250, z = 250}, - seed = 2, - octaves = 3, - persist = 0.66 - }, - biomes = {"taiga", "coniferous_forest", "floatland_coniferous_forest"}, - y_max = 31000, - y_min = 4, - schematic = minetest.get_modpath("default") .. "/schematics/small_pine_tree.mts", - flags = "place_center_x, place_center_z", - }) - - minetest.register_decoration({ - name = "default:pine_log", - deco_type = "schematic", --- place_on = {"default:dirt_with_snow", "default:dirt_with_coniferous_litter"}, - place_on = {"default:dirt_with_snow", "default:dirt_with_grass"}, - sidelen = 80, - fill_ratio = 0.0018, - biomes = {"taiga", "coniferous_forest", "floatland_coniferous_forest"}, - y_max = 31000, - y_min = 4, - schematic = minetest.get_modpath("default") .. "/schematics/pine_log.mts", - flags = "place_center_x", - rotation = "random", --- spawn_by = {"default:dirt_with_snow", "default:dirt_with_coniferous_litter"}, - spawn_by = {"default:dirt_with_snow", "default:dirt_with_grass"}, - num_spawn_by = 8, - }) - - -- Acacia tree and log - - minetest.register_decoration({ - name = "default:acacia_tree", - deco_type = "schematic", - place_on = {"default:dirt_with_dry_grass"}, - sidelen = 16, - noise_params = { - offset = 0, - scale = 0.002, - spread = {x = 250, y = 250, z = 250}, - seed = 2, - octaves = 3, - persist = 0.66 - }, - biomes = {"savanna"}, - y_max = 31000, - y_min = 1, - schematic = minetest.get_modpath("default") .. "/schematics/acacia_tree.mts", - flags = "place_center_x, place_center_z", - rotation = "random", - }) - - minetest.register_decoration({ - name = "default:acacia_log", - deco_type = "schematic", - place_on = {"default:dirt_with_dry_grass"}, - sidelen = 16, - noise_params = { - offset = 0, - scale = 0.001, - spread = {x = 250, y = 250, z = 250}, - seed = 2, - octaves = 3, - persist = 0.66 - }, - biomes = {"savanna"}, - y_max = 31000, - y_min = 1, - schematic = minetest.get_modpath("default") .. "/schematics/acacia_log.mts", - flags = "place_center_x", - rotation = "random", - spawn_by = "default:dirt_with_dry_grass", --- num_spawn_by = 8, - }) - - -- Birch tree and log - - minetest.register_decoration({ - name = "default:birch_tree", - deco_type = "schematic", - place_on = {"default:dirt_with_grass"}, - sidelen = 16, - noise_params = { - offset = 0.0, - scale = -0.015, - spread = {x = 250, y = 250, z = 250}, - seed = 2, - octaves = 3, - persist = 0.66 - }, - biomes = {"deciduous_forest"}, - y_max = 31000, - y_min = 1, - schematic = minetest.get_modpath("default") .. "/schematics/birch_tree.mts", - flags = "place_center_x, place_center_z", - }) - - minetest.register_decoration({ - name = "default:birch_log", - deco_type = "schematic", - place_on = {"default:dirt_with_grass"}, - place_offset_y = 1, - sidelen = 16, - noise_params = { - offset = 0.0, - scale = -0.0008, - spread = {x = 250, y = 250, z = 250}, - seed = 2, - octaves = 3, - persist = 0.66 - }, - biomes = {"deciduous_forest"}, - y_max = 31000, - y_min = 1, - schematic = minetest.get_modpath("default") .. "/schematics/birch_log.mts", - flags = "place_center_x", - rotation = "random", - spawn_by = "default:dirt_with_grass", - -- num_spawn_by = 8, - }) - - - -- Large cactus - - minetest.register_decoration({ - deco_type = "schematic", - place_on = {"default:redsand"}, - sidelen = 16, - noise_params = { - offset = -0.0003, - scale = 0.0009, - spread = {x = 200, y = 200, z = 200}, - seed = 230, - octaves = 3, - persist = 0.6 - }, - biomes = {"desert"}, - y_max = 31000, - y_min = 4, - schematic = minetest.get_modpath("default").."/schematics/large_cactus.mts", - flags = "place_center_x, place_center_z", - rotation = "random", - }) - - -- Cactus - - minetest.register_decoration({ - deco_type = "simple", - place_on = {"default:redsand"}, - sidelen = 16, - noise_params = { - offset = -0.0003, - scale = 0.0009, - spread = {x = 200, y = 200, z = 200}, - seed = 230, - octaves = 3, - persist = 0.6 - }, - biomes = {"desert"}, - y_max = 31000, - y_min = 4, - decoration = "default:cactus", - height = 2, - height_max = 5, - }) - - -- Papyrus - - minetest.register_decoration({ - deco_type = "schematic", - place_on = {"default:dirt"}, - sidelen = 16, - noise_params = { - offset = -0.3, - scale = 0.7, - spread = {x = 200, y = 200, z = 200}, - seed = 354, - octaves = 3, - persist = 0.7 - }, - biomes = {"savanna_swamp"}, - y_min = 0, - y_max = 0, - schematic = minetest.get_modpath("default").."/schematics/papyrus.mts", --- spawn_by = "default:dirt_with_rainforest_litter", --- num_spawn_by = 8, - }) - - -- Grasses - - minetest.register_decoration({ - deco_type = "simple", - place_on = {"default:dirt_with_grass", "default:sand"}, - sidelen = 16, - noise_params = { - offset = 0.15, - scale = 0.15, - spread = {x = 200, y = 200, z = 200}, - seed = 329, - octaves = 3, - persist = 0.6 - }, - biomes = {"grassland", "deciduous_forest", "floatland_grassland", "stone_grassland", "sandstone_grassland", - "deciduous_forest", "coniferous_forest", - "stone_grassland_dunes", "sandstone_grassland_dunes", - "coniferous_forest_dunes"}, - y_max = 31000, - y_min = 1, - decoration = "default:grass", - }) - - -- Dry grasses - - minetest.register_decoration({ - deco_type = "simple", - place_on = {"default:dirt_with_dry_grass"}, - sidelen = 16, - noise_params = { - offset = 0.15, - scale = 0.15, - spread = {x = 200, y = 200, z = 200}, - seed = 329, - octaves = 3, - persist = 0.6 - }, - biomes = {"savanna"}, - y_max = 31000, - y_min = 1, - decoration = "default:dry_grass", - }) - - -- Junglegrass - - minetest.register_decoration({ - deco_type = "simple", - place_on = {"default:dirt_with_grass"}, - sidelen = 80, - fill_ratio = 0.1, - biomes = {"rainforest"}, - y_max = 31000, - y_min = 1, - decoration = "default:junglegrass", - }) - - -- Dry shrub - - minetest.register_decoration({ - deco_type = "simple", - place_on = {"default:redsand", "default:dirt_with_snow"}, - sidelen = 16, - noise_params = { - offset = 0, - scale = 0.02, - spread = {x = 200, y = 200, z = 200}, - seed = 329, - octaves = 3, - persist = 0.6 - }, - biomes = {"desert", "tundra"}, - y_max = 31000, - y_min = 2, - decoration = "default:dry_shrub", - }) -end - - --- --- Detect mapgen, flags and parameters to select functions --- - --- Get setting or default -local mgv7_spflags = minetest.get_mapgen_setting("mgv7_spflags") or - "mountains, ridges, nofloatlands, caverns" -local captures_float = string.match(mgv7_spflags, "floatlands") -local captures_nofloat = string.match(mgv7_spflags, "nofloatlands") - --- Get setting or default --- Make global for mods to use to register floatland biomes -default.mgv7_floatland_level = - minetest.get_mapgen_setting("mgv7_floatland_level") or 1280 -default.mgv7_shadow_limit = - minetest.get_mapgen_setting("mgv7_shadow_limit") or 1024 - -minetest.clear_registered_biomes() -minetest.clear_registered_ores() -minetest.clear_registered_decorations() - -local mg_name = minetest.get_mapgen_setting("mg_name") - -if mg_name == "v6" then - default.register_bedrock() - default.register_ores() - default.register_mgv6_decorations() --- Need to check for 'nofloatlands' because that contains --- 'floatlands' which makes the second condition true. -elseif mg_name == "v7" and - captures_float == "floatlands" and - captures_nofloat ~= "nofloatlands" then - -- Mgv7 with floatlands and floatland biomes - default.register_biomes(default.mgv7_shadow_limit - 1) - default.register_floatland_biomes( - default.mgv7_floatland_level, default.mgv7_shadow_limit) - default.register_ores() - default.register_decorations() -else - default.register_biomes() - default.register_ores() - default.register_decorations() -end diff --git a/games/default/files/default/models/torch_ceiling.obj b/games/default/files/default/models/torch_ceiling.obj deleted file mode 100644 index ea51f3cef..000000000 --- a/games/default/files/default/models/torch_ceiling.obj +++ /dev/null @@ -1,58 +0,0 @@ -# Blender v2.77 (sub 0) OBJ File: 'torch_ceiling.blend' -# www.blender.org -mtllib torch_ceiling.mtl -o Cube_Cube.001 -v -0.062469 -0.047331 0.068152 -v -0.062469 -0.559515 -0.164388 -v -0.062469 0.004344 -0.045667 -v -0.062469 -0.507839 -0.278206 -v 0.062531 -0.047331 0.068152 -v 0.062531 -0.559515 -0.164388 -v 0.062531 0.004344 -0.045667 -v 0.062531 -0.507839 -0.278206 -v 0.353584 0.040000 0.363553 -v 0.353584 -0.397500 0.363553 -v -0.353522 0.040000 -0.343553 -v -0.353522 -0.397500 -0.343553 -v 0.353584 0.040000 -0.343553 -v -0.353522 0.040000 0.363553 -v 0.353584 -0.397500 -0.343553 -v -0.353522 -0.397500 0.363553 -vt 0.5625 0.5000 -vt 0.5625 0.6250 -vt 0.4375 0.6250 -vt 0.4375 0.5000 -vt 0.4375 0.0000 -vt 0.5625 0.0000 -vt 0.5625 0.1250 -vt 0.4375 0.1250 -vt 0.5625 0.6250 -vt 0.4375 0.6250 -vt 0.4375 0.6250 -vt 0.4375 0.0000 -vt 0.5625 0.6250 -vt 0.5625 0.0000 -vt 1.0000 0.5625 -vt 1.0000 1.0000 -vt 0.0000 1.0000 -vt 0.0000 0.5625 -vt 0.0000 0.5625 -vt 1.0000 0.5625 -vt 1.0000 1.0000 -vt 0.0000 1.0000 -vn 0.0000 0.9105 0.4134 -vn -0.0000 -0.4134 0.9105 -vn -1.0000 0.0000 0.0000 -vn 0.7071 0.0000 -0.7071 -vn 0.7071 0.0000 0.7071 -usemtl Material.001 -s off -f 3/1/1 1/2/1 5/3/1 7/4/1 -f 8/5/1 4/6/1 2/7/1 6/8/1 -f 3/9/2 4/6/2 8/5/2 7/10/2 -f 1/11/3 3/9/3 4/6/3 2/12/3 -f 5/13/2 1/11/2 2/12/2 6/14/2 -f 7/10/3 8/5/3 6/14/3 5/13/3 -usemtl Material.002 -f 9/15/4 10/16/4 12/17/4 11/18/4 -f 13/19/5 14/20/5 16/21/5 15/22/5 diff --git a/games/default/files/default/models/torch_floor.obj b/games/default/files/default/models/torch_floor.obj deleted file mode 100644 index e2487efeb..000000000 --- a/games/default/files/default/models/torch_floor.obj +++ /dev/null @@ -1,50 +0,0 @@ -# Blender v2.76 (sub 11) OBJ File: 'torch_floor.blend' -# www.blender.org -mtllib torch_floor.mtl -o Cube_Cube.001 -v 0.062500 0.062500 -0.062500 -v 0.062500 -0.500000 -0.062500 -v 0.062500 0.062500 0.062500 -v 0.062500 -0.500000 0.062500 -v -0.062500 0.062500 -0.062500 -v -0.062500 -0.500000 -0.062500 -v -0.062500 0.062500 0.062500 -v -0.062500 -0.500000 0.062500 -v -0.353553 -0.500000 0.353553 -v -0.353553 0.500000 0.353553 -v 0.353553 -0.500000 -0.353553 -v 0.353553 0.500000 -0.353553 -v -0.353553 -0.500000 -0.353553 -v 0.353553 -0.500000 0.353553 -v -0.353553 0.500000 -0.353553 -v 0.353553 0.500000 0.353553 -vt 0.562500 0.500000 -vt 0.562500 0.625000 -vt 0.437500 0.625000 -vt 0.437500 0.500000 -vt 0.437500 0.000000 -vt 0.562500 0.000000 -vt 0.562500 0.125000 -vt 0.437500 0.125000 -vt 1.000000 0.000000 -vt 1.000000 1.000000 -vt 0.000000 1.000000 -vt 0.000000 0.000000 -vn 0.000000 1.000000 0.000000 -vn 0.000000 0.000000 -1.000000 -vn 1.000000 0.000000 0.000000 -vn -0.707100 0.000000 -0.707100 -vn -0.707100 -0.000000 0.707100 -g Cube_Cube.001_Cube_Cube.001_Material.001 -usemtl Material.001 -s off -f 3/1/1 1/2/1 5/3/1 7/4/1 -f 8/5/1 4/6/1 2/7/1 6/8/1 -f 3/2/2 4/6/2 8/5/2 7/3/2 -f 1/3/3 3/2/3 4/6/3 2/5/3 -f 5/2/2 1/3/2 2/5/2 6/6/2 -f 7/3/3 8/5/3 6/6/3 5/2/3 -g Cube_Cube.001_Cube_Cube.001_Material.002 -usemtl Material.002 -f 9/9/4 10/10/4 12/11/4 11/12/4 -f 13/12/5 14/9/5 16/10/5 15/11/5 diff --git a/games/default/files/default/models/torch_wall.obj b/games/default/files/default/models/torch_wall.obj deleted file mode 100644 index 57baa9e60..000000000 --- a/games/default/files/default/models/torch_wall.obj +++ /dev/null @@ -1,64 +0,0 @@ -# Blender v2.76 (sub 11) OBJ File: 'torch_wall.blend' -# www.blender.org -mtllib torch_wall.mtl -o Cube_Cube.001 -v 0.062469 -0.195248 0.023570 -v 0.062469 -0.476498 -0.463570 -v 0.062469 -0.303502 0.086070 -v 0.062469 -0.584752 -0.401070 -v -0.062531 -0.195248 0.023570 -v -0.062531 -0.476498 -0.463570 -v -0.062531 -0.303502 0.086070 -v -0.062531 -0.584752 -0.401070 -v -0.353584 -0.613553 0.022500 -v -0.353584 -0.613553 0.460000 -v 0.353522 0.093553 0.022500 -v 0.353522 0.093553 0.460000 -v -0.353584 0.093553 0.022500 -v 0.353522 -0.613553 0.022500 -v -0.353584 0.093553 0.460000 -v 0.353522 -0.613553 0.460000 -v 0.353553 0.056811 -0.121957 -v 0.353553 -0.224439 -0.609096 -v -0.353553 -0.555561 0.231596 -v -0.353553 -0.836811 -0.255543 -v -0.353553 0.056811 -0.121957 -v -0.353553 -0.224439 -0.609096 -v 0.353553 -0.555561 0.231596 -v 0.353553 -0.836811 -0.255543 -vt 0.562500 0.500000 -vt 0.562500 0.625000 -vt 0.437500 0.625000 -vt 0.437500 0.500000 -vt 0.437500 0.000000 -vt 0.562500 0.000000 -vt 0.562500 0.125000 -vt 0.437500 0.125000 -vt 0.000000 0.562500 -vt 0.000000 -0.000000 -vt 1.000000 0.000000 -vt 1.000000 0.562500 -vt 1.000000 1.000000 -vt 0.000000 1.000000 -vn -0.000000 0.500000 0.866000 -vn -0.000000 0.866000 -0.500000 -vn 1.000000 0.000000 0.000000 -vn -0.707100 0.612400 -0.353600 -vn -0.707100 -0.612400 0.353600 -vn -0.707100 0.707100 -0.000000 -vn -0.707100 -0.707100 -0.000000 -g Cube_Cube.001_Cube_Cube.001_Material.001 -usemtl Material.001 -s off -f 3/1/1 1/2/1 5/3/1 7/4/1 -f 8/5/1 4/6/1 2/7/1 6/8/1 -f 3/2/2 4/6/2 8/5/2 7/3/2 -f 1/3/3 3/2/3 4/6/3 2/5/3 -f 5/2/2 1/3/2 2/5/2 6/6/2 -f 7/3/3 8/5/3 6/6/3 5/2/3 -f 17/9/4 18/10/4 20/11/4 19/12/4 -f 21/9/5 22/10/5 24/11/5 23/12/5 -g Cube_Cube.001_Cube_Cube.001_Material.002 -usemtl Material.002 -f 9/12/6 10/13/6 12/14/6 11/9/6 -f 13/9/7 14/12/7 16/13/7 15/14/7 diff --git a/games/default/files/default/nodes.lua b/games/default/files/default/nodes.lua deleted file mode 100644 index 7de4bd32b..000000000 --- a/games/default/files/default/nodes.lua +++ /dev/null @@ -1,1571 +0,0 @@ --- mods/default/nodes.lua - --- --- Stone --- - -minetest.register_node("default:stone", { - description = "Stone", - tiles = {"default_stone.png"}, - groups = {cracky = 3, stone = 1}, - drop = 'default:cobble', - legacy_mineral = true, - sounds = default.node_sound_stone_defaults(), -}) - -minetest.register_node("default:cobble", { - description = "Cobblestone", - tiles = {"default_cobble.png"}, - is_ground_content = false, - groups = {cracky = 3, stone = 2}, - sounds = default.node_sound_stone_defaults(), -}) - -minetest.register_node("default:stonebrick", { - description = "Stone Brick", - paramtype2 = "facedir", - place_param2 = 0, - tiles = {"default_stone_brick.png"}, - is_ground_content = false, - groups = {cracky = 2, stone = 1}, - sounds = default.node_sound_stone_defaults(), -}) - -minetest.register_node("default:mossycobble", { - description = "Mossy Cobblestone", - tiles = {"default_mossycobble.png"}, - is_ground_content = false, - groups = {cracky = 3, stone = 1}, - sounds = default.node_sound_stone_defaults(), -}) - -minetest.register_node("default:stonebrickcarved", { - description = "Stone Brick Carved", - tiles = {"default_stonebrick_carved.png"}, - groups = {cracky = 3, stone = 1}, - sounds = default.node_sound_stone_defaults(), -}) - -minetest.register_node("default:stonebrickcracked", { - description = "Stone Brick Cracked", - tiles = {"default_stonebrick_cracked.png"}, - groups = {cracky = 3, stone = 1}, - sounds = default.node_sound_stone_defaults(), -}) - -minetest.register_node("default:stonebrickmossy", { - description = "Mossy Stone Brick", - tiles = {"default_stonebrick_mossy.png"}, - groups = {cracky = 3, stone = 1}, - sounds = default.node_sound_stone_defaults(), -}) - -minetest.register_node("default:sandstone", { - description = "Sandstone", - tiles = {"default_sandstone_top.png", "default_sandstone_bottom.png", "default_sandstone_normal.png"}, - groups = {crumbly = 1, cracky = 3}, - sounds = default.node_sound_stone_defaults(), -}) - -minetest.register_node("default:sandstonesmooth", { - description = "Smooth Sandstone", - tiles = {"default_sandstone_top.png", "default_sandstone_bottom.png", "default_sandstone_smooth.png"}, - groups = {crumbly = 2, cracky = 2}, - sounds = default.node_sound_stone_defaults(), -}) - -minetest.register_node("default:redsandstone", { - description = "Red SandStone", - tiles = {"default_redsandstone_top.png", "default_redsandstone_bottom.png", "default_redsandstone_normal.png"}, - groups = {crumbly = 2, cracky = 2}, - sounds = default.node_sound_stone_defaults(), -}) - -minetest.register_node("default:redsandstonesmooth", { - description = "Red SandStone Smooth", - tiles = {"default_redsandstone_top.png", "default_redsandstone_bottom.png", "default_redsandstone_smooth.png"}, - groups = {crumbly = 2, cracky = 2}, - sounds = default.node_sound_stone_defaults(), -}) - -minetest.register_node("default:redsandstonecarved", { - description = "Red SandStone Carved", - tiles = {"default_redsandstone_top.png", "default_redsandstone_bottom.png", "default_redsandstone_carved.png"}, - groups = {crumbly = 2, cracky = 2}, - sounds = default.node_sound_stone_defaults(), -}) - -minetest.register_node("default:obsidian", { - description = "Obsidian", - tiles = {"default_obsidian.png"}, - sounds = default.node_sound_stone_defaults(), - groups = {cracky = 3, level = 2, oddly_breakable_by_hand = 3}, -}) - -minetest.register_node("default:bedrock", { - description = "Bedrock", - tiles = {"default_bedrock.png"}, - groups = {oddly_breakable_by_hand = 5, speed = -30, not_in_creative_inventory = 1}, - sounds = default.node_sound_stone_defaults(), -}) - --- --- Soft / Non-Stone --- - -minetest.register_node("default:dirt", { - description = "Dirt", - tiles = {"default_dirt.png"}, - groups = {crumbly = 3, soil = 1}, - sounds = default.node_sound_dirt_defaults(), -}) - -minetest.register_node("default:dirt_with_grass", { - description = "Dirt with Grass", - tiles = {"default_grass.png", "default_dirt.png", "default_grass_side.png"}, - groups = {crumbly = 3, soil = 1, spreading_dirt_type = 1}, - drop = 'default:dirt', - sounds = default.node_sound_dirt_defaults({ - footstep = {name = "default_grass_footstep", gain = 0.25}, - }), -}) - -minetest.register_node("default:dirt_with_grass_footsteps", { - description = "Dirt with Grass and Footsteps", - tiles = {"default_grass.png", "default_dirt.png", "default_dirt.png^default_grass_side.png"}, - groups = {crumbly = 3, soil = 1, not_in_creative_inventory = 1}, - drop = 'default:dirt', - sounds = default.node_sound_dirt_defaults({ - footstep = {name = "default_grass_footstep", gain = 0.25}, - }), -}) - -minetest.register_node("default:dirt_with_dry_grass", { - description = "Dirt with Dry Grass", - tiles = {"default_dry_grass.png", "default_dirt.png", - "default_dry_grass_side.png"}, - groups = {crumbly = 3, soil = 1, spreading_dirt_type = 1}, - drop = 'default:dirt', - sounds = default.node_sound_dirt_defaults({ - footstep = {name = "default_grass_footstep", gain = 0.4}, - }), -}) - -minetest.register_node("default:dirt_with_snow", { - description = "Dirt with Snow", - tiles = {"default_snow.png", "default_dirt.png", - "default_snow_side.png"}, - groups = {crumbly = 3, soil = 1, spreading_dirt_type = 1, snowy = 1}, - drop = 'default:dirt', - sounds = default.node_sound_dirt_defaults({ - footstep = {name = "default_snow_footstep", gain = 0.4}, - }), -}) - -minetest.register_node("default:sand", { - description = "Sand", - tiles = {"default_sand.png"}, - groups = {crumbly = 3, falling_node = 1, sand = 1}, - sounds = default.node_sound_sand_defaults(), -}) - -minetest.register_node("default:gravel", { - description = "Gravel", - tiles = {"default_gravel.png"}, - groups = {crumbly = 2, falling_node = 1}, - sounds = default.node_sound_gravel_defaults(), - drop = { - max_items = 1, - items = { - {items = {'default:flint'}, rarity = 8}, - {items = {'default:gravel'}} - } - }, -}) - -minetest.register_node("default:redsand", { - description = "Red Sand", - tiles = {"default_red_sand.png"}, - groups = {crumbly = 3, falling_node = 1, redsand = 1}, - sounds = default.node_sound_sand_defaults(), -}) - -minetest.register_node("default:clay", { - description = "Clay", - tiles = {"default_clay.png"}, - groups = {crumbly = 3}, - drop = 'default:clay_lump 4', - sounds = default.node_sound_dirt_defaults(), -}) - -minetest.register_node("default:hardened_clay", { - description = "Hardened Clay", - tiles = {"hardened_clay.png"}, - is_ground_content = false, - groups = {cracky = 3, hardened_clay = 1}, - sounds = default.node_sound_defaults(), -}) - - -minetest.register_node("default:snow", { - description = "Snow", - tiles = {"default_snow.png"}, - paramtype = "light", - buildable_to = true, - floodable = true, - drawtype = "nodebox", - stack_max = 16, - node_box = { - type = "fixed", - fixed = { - {-0.5, -0.5, -0.5, 0.5, -0.5+2/16, 0.5}, - }, - }, - groups = {crumbly = 3, falling_node = 1, snowy = 1, puts_out_fire = 1, misc = 1, speed = -30, not_in_creative_inventory = 1}, - sounds = default.node_sound_snow_defaults(), - drop = "default:snowball", - on_use = default.snow_shoot_snowball, - on_construct = function(pos) - pos.y = pos.y - 1 - if minetest.get_node(pos).name == "default:dirt_with_grass" then - minetest.set_node(pos, {name = "default:dirt_with_snow"}) - end - end, -}) - -minetest.register_node("default:snowblock", { - description = "Snow Block", - tiles = {"default_snow.png"}, - groups = {crumbly = 3, cools_lava = 1, snowy = 1, speed = -30}, - sounds = default.node_sound_snow_defaults(), - drop = "default:snowball 4", - on_construct = function(pos) - pos.y = pos.y - 1 - if minetest.get_node(pos).name == "default:dirt_with_grass" then - minetest.set_node(pos, {name = "default:dirt_with_snow"}) - end - end, -}) - -minetest.register_node("default:ice", { - description = "Ice", - drawtype = "glasslike", - tiles = {"default_ice.png"}, - is_ground_content = false, - paramtype = "light", - use_texture_alpha = true, - groups = {cracky = 3, cools_lava = 1, slippery = 3}, - sounds = default.node_sound_glass_defaults(), -}) - -minetest.register_node("default:packedice", { - description = "Packed Ice", - drawtype = "glasslike", - tiles = {"default_ice_packed.png"}, - paramtype = "light", - use_texture_alpha = true, - groups = {cracky = 3, cools_lava = 1, slippery = 3}, - sounds = default.node_sound_glass_defaults(), -}) - --- --- Trees --- - -minetest.register_node("default:tree", { - description = "Apple Tree", - tiles = {"default_tree_top.png", "default_tree_top.png", "default_tree.png"}, - paramtype2 = "facedir", - is_ground_content = false, - groups = {tree = 1, choppy = 2, oddly_breakable_by_hand = 1, flammable = 2}, - sounds = default.node_sound_wood_defaults(), - - on_place = minetest.rotate_node -}) - -minetest.register_node("default:wood", { - description = "Apple Wood Planks", - paramtype2 = "facedir", - place_param2 = 0, - tiles = {"default_wood.png"}, - is_ground_content = false, - groups = {choppy = 2, oddly_breakable_by_hand = 2, flammable = 2, wood = 1}, - sounds = default.node_sound_wood_defaults(), -}) - -minetest.register_node("default:sapling", { - description = "Apple Tree Sapling", - drawtype = "plantlike", - tiles = {"default_sapling.png"}, - inventory_image = "default_sapling.png", - wield_image = "default_sapling.png", - paramtype = "light", - sunlight_propagates = true, - walkable = false, - on_timer = default.grow_sapling, - selection_box = { - type = "fixed", - fixed = {-0.3, -0.5, -0.3, 0.3, 0.35, 0.3} - }, - groups = {snappy = 2, dig_immediate = 3, flammable = 2, - attached_node = 1, sapling = 1}, - sounds = default.node_sound_leaves_defaults(), - - on_construct = function(pos) - minetest.get_node_timer(pos):start(math.random(300, 1500)) - end, - - on_place = function(itemstack, placer, pointed_thing) - itemstack = default.sapling_on_place(itemstack, placer, pointed_thing, - "default:sapling", - -- minp, maxp to be checked, relative to sapling pos - -- minp_relative.y = 1 because sapling pos has been checked - {x = -3, y = 1, z = -3}, - {x = 3, y = 6, z = 3}, - -- maximum interval of interior volume check - 4) - - return itemstack - end, -}) - -minetest.register_node("default:leaves", { - description = "Apple Tree Leaves", - drawtype = "allfaces_optional", - waving = 1, - tiles = {"default_leaves.png"}, - paramtype = "light", - walkable = false, - is_ground_content = false, - groups = {snappy = 3, leafdecay = 3, flammable = 2, leaves = 1, speed = -20}, - drop = { - max_items = 1, - items = { - { - -- player will get sapling with 1/20 chance - items = {'default:sapling'}, - rarity = 20, - }, - { - -- player will get leaves only if he get no saplings, - -- this is because max_items is 1 - items = {'default:leaves'}, - } - } - }, - sounds = default.node_sound_leaves_defaults(), - - after_place_node = default.after_place_leaves, -}) - -minetest.register_node("default:apple", { - description = "Apple", - drawtype = "plantlike", - visual_scale = 0.75, - tiles = {"default_apple.png"}, - inventory_image = "default_apple.png", - paramtype = "light", - sunlight_propagates = true, - walkable = false, - is_ground_content = false, - selection_box = { - type = "fixed", - fixed = {-3 / 16, -7 / 16, -3 / 16, 3 / 16, 4 / 16, 3 / 16} - }, - groups = {fleshy = 3, dig_immediate = 3, flammable = 2, - leafdecay = 3, leafdecay_drop = 1, food_apple = 1, food = 1}, - on_use = minetest.item_eat(2), - sounds = default.node_sound_leaves_defaults(), - - after_place_node = function(pos, placer, itemstack) - minetest.set_node(pos, {name = "default:apple", param2 = 1}) - end, -}) - -minetest.register_node("default:apple_gold", { - description = "Golden Apple", - drawtype = "plantlike", - visual_scale = 0.75, - tiles = {"default_apple_gold.png"}, - inventory_image = "default_apple_gold.png", - paramtype = "light", - sunlight_propagates = true, - walkable = false, - selection_box = { - type = "fixed", - fixed = {-0.2, -0.5, -0.2, 0.2, 0, 0.2} - }, - groups = {fleshy = 3, dig_immediate = 3, flammable = 2, foodstuffs = 1, food = 1}, - on_use = minetest.item_eat(8), - sounds = default.node_sound_defaults(), -}) - - -minetest.register_node("default:jungletree", { - description = "Jungle Tree", - tiles = {"default_jungletree_top.png", "default_jungletree_top.png", - "default_jungletree.png"}, - paramtype2 = "facedir", - is_ground_content = false, - groups = {tree = 1, choppy = 2, oddly_breakable_by_hand = 1, flammable = 2}, - sounds = default.node_sound_wood_defaults(), - - on_place = minetest.rotate_node -}) - -minetest.register_node("default:junglewood", { - description = "Jungle Wood Planks", - paramtype2 = "facedir", - place_param2 = 0, - tiles = {"default_junglewood.png"}, - is_ground_content = false, - groups = {choppy = 2, oddly_breakable_by_hand = 2, flammable = 2, wood = 1}, - sounds = default.node_sound_wood_defaults(), -}) - -minetest.register_node("default:jungleleaves", { - description = "Jungle Tree Leaves", - drawtype = "allfaces_optional", - waving = 1, - tiles = {"default_jungleleaves.png"}, - paramtype = "light", - walkable = false, - is_ground_content = false, - groups = {snappy = 3, leafdecay = 3, flammable = 2, leaves = 1, speed = -20}, - drop = { - max_items = 1, - items = { - {items = {'default:junglesapling'}, rarity = 20}, - {items = {'default:jungleleaves'}} - } - }, - sounds = default.node_sound_leaves_defaults(), - - after_place_node = default.after_place_leaves, -}) - -minetest.register_node("default:junglesapling", { - description = "Jungle Tree Sapling", - drawtype = "plantlike", - tiles = {"default_junglesapling.png"}, - inventory_image = "default_junglesapling.png", - wield_image = "default_junglesapling.png", - paramtype = "light", - sunlight_propagates = true, - walkable = false, - on_timer = default.grow_sapling, - selection_box = { - type = "fixed", - fixed = {-0.3, -0.5, -0.3, 0.3, 0.35, 0.3} - }, - groups = {snappy = 2, dig_immediate = 3, flammable = 2, - attached_node = 1, sapling = 1}, - sounds = default.node_sound_leaves_defaults(), - - on_construct = function(pos) - minetest.get_node_timer(pos):start(math.random(300, 1500)) - end, - - on_place = function(itemstack, placer, pointed_thing) - itemstack = default.sapling_on_place(itemstack, placer, pointed_thing, - "default:junglesapling", - -- minp, maxp to be checked, relative to sapling pos - -- minp_relative.y = 1 because sapling pos has been checked - {x = -2, y = 1, z = -2}, - {x = 2, y = 15, z = 2}, - -- maximum interval of interior volume check - 4) - - return itemstack - end, -}) - - -minetest.register_node("default:pine_tree", { - description = "Pine Tree", - tiles = {"default_pine_tree_top.png", "default_pine_tree_top.png", - "default_pine_tree.png"}, - paramtype2 = "facedir", - is_ground_content = false, - groups = {tree = 1, choppy = 3, oddly_breakable_by_hand = 1, flammable = 3}, - sounds = default.node_sound_wood_defaults(), - - on_place = minetest.rotate_node -}) - -minetest.register_node("default:pine_wood", { - description = "Pine Wood Planks", - paramtype2 = "facedir", - place_param2 = 0, - tiles = {"default_pine_wood.png"}, - is_ground_content = false, - groups = {choppy = 3, oddly_breakable_by_hand = 2, flammable = 3, wood = 1}, - sounds = default.node_sound_wood_defaults(), -}) - -minetest.register_node("default:pine_needles",{ - description = "Pine Needles", - drawtype = "allfaces_optional", - tiles = {"default_pine_needles.png"}, - waving = 1, - paramtype = "light", - is_ground_content = false, - groups = {snappy = 3, leafdecay = 3, flammable = 2, leaves = 1}, - drop = { - max_items = 1, - items = { - {items = {"default:pine_sapling"}, rarity = 20}, - {items = {"default:pine_needles"}} - } - }, - sounds = default.node_sound_leaves_defaults(), - - after_place_node = default.after_place_leaves, -}) - -minetest.register_node("default:pine_sapling", { - description = "Pine Tree Sapling", - drawtype = "plantlike", - tiles = {"default_pine_sapling.png"}, - inventory_image = "default_pine_sapling.png", - wield_image = "default_pine_sapling.png", - paramtype = "light", - sunlight_propagates = true, - walkable = false, - on_timer = default.grow_sapling, - selection_box = { - type = "fixed", - fixed = {-0.3, -0.5, -0.3, 0.3, 0.35, 0.3} - }, - groups = {snappy = 2, dig_immediate = 3, flammable = 3, - attached_node = 1, sapling = 1}, - sounds = default.node_sound_leaves_defaults(), - - on_construct = function(pos) - minetest.get_node_timer(pos):start(math.random(300, 1500)) - end, - - on_place = function(itemstack, placer, pointed_thing) - itemstack = default.sapling_on_place(itemstack, placer, pointed_thing, - "default:pine_sapling", - -- minp, maxp to be checked, relative to sapling pos - -- minp_relative.y = 1 because sapling pos has been checked - {x = -2, y = 1, z = -2}, - {x = 2, y = 14, z = 2}, - -- maximum interval of interior volume check - 4) - - return itemstack - end, -}) - - -minetest.register_node("default:acacia_tree", { - description = "Acacia Tree", - tiles = {"default_acacia_tree_top.png", "default_acacia_tree_top.png", - "default_acacia_tree.png"}, - paramtype2 = "facedir", - is_ground_content = false, - groups = {tree = 1, choppy = 2, oddly_breakable_by_hand = 1, flammable = 2}, - sounds = default.node_sound_wood_defaults(), - - on_place = minetest.rotate_node -}) - -minetest.register_node("default:acacia_wood", { - description = "Acacia Wood Planks", - paramtype2 = "facedir", - place_param2 = 0, - tiles = {"default_acacia_wood.png"}, - is_ground_content = false, - groups = {choppy = 2, oddly_breakable_by_hand = 2, flammable = 2, wood = 1}, - sounds = default.node_sound_wood_defaults(), -}) - -minetest.register_node("default:acacia_leaves", { - description = "Acacia Tree Leaves", - drawtype = "allfaces_optional", - tiles = {"default_acacia_leaves.png"}, - waving = 1, - paramtype = "light", - walkable = false, - is_ground_content = false, - groups = {snappy = 3, leafdecay = 3, flammable = 2, leaves = 1, speed = -20}, - drop = { - max_items = 1, - items = { - {items = {"default:acacia_sapling"}, rarity = 20}, - {items = {"default:acacia_leaves"}} - } - }, - sounds = default.node_sound_leaves_defaults(), - - after_place_node = default.after_place_leaves, -}) - -minetest.register_node("default:acacia_sapling", { - description = "Acacia Tree Sapling", - drawtype = "plantlike", - tiles = {"default_acacia_sapling.png"}, - inventory_image = "default_acacia_sapling.png", - wield_image = "default_acacia_sapling.png", - paramtype = "light", - sunlight_propagates = true, - walkable = false, - on_timer = default.grow_sapling, - selection_box = { - type = "fixed", - fixed = {-0.3, -0.5, -0.3, 0.3, 0.35, 0.3} - }, - groups = {snappy = 2, dig_immediate = 3, flammable = 2, - attached_node = 1, sapling = 1}, - sounds = default.node_sound_leaves_defaults(), - - on_construct = function(pos) - minetest.get_node_timer(pos):start(math.random(300, 1500)) - end, - - on_place = function(itemstack, placer, pointed_thing) - itemstack = default.sapling_on_place(itemstack, placer, pointed_thing, - "default:acacia_sapling", - -- minp, maxp to be checked, relative to sapling pos - -- minp_relative.y = 1 because sapling pos has been checked - {x = -4, y = 1, z = -4}, - {x = 4, y = 7, z = 4}, - -- maximum interval of interior volume check - 4) - - return itemstack - end, -}) - -minetest.register_node("default:birch_tree", { - description = "Birch Tree", - tiles = {"default_birch_tree_top.png", "default_birch_tree_top.png", - "default_birch_tree.png"}, - paramtype2 = "facedir", - is_ground_content = false, - groups = {tree = 1, choppy = 3, oddly_breakable_by_hand = 1, flammable = 3}, - sounds = default.node_sound_wood_defaults(), - on_place = minetest.rotate_node -}) - -minetest.register_node("default:birch_wood", { - description = "Birch Wood Planks", - paramtype2 = "facedir", - place_param2 = 0, - tiles = {"default_birch_wood.png"}, - is_ground_content = false, - groups = {choppy = 3, oddly_breakable_by_hand = 2, flammable = 3, wood = 1}, - sounds = default.node_sound_wood_defaults() -}) - -minetest.register_node("default:birch_leaves", { - description = "Birch Tree Leaves", - drawtype = "allfaces_optional", - tiles = {"default_birch_leaves.png"}, - waving = 1, - paramtype = "light", - is_ground_content = false, - groups = {snappy = 3, leafdecay = 3, flammable = 2, leaves = 1}, - drop = { - max_items = 1, - items = { - {items = {"default:birch_sapling"}, rarity = 20}, - {items = {"default:birch_leaves"}} - } - }, - sounds = default.node_sound_leaves_defaults(), - after_place_node = default.after_place_leaves -}) - -minetest.register_node("default:birch_sapling", { - description = "Birch Tree Sapling", - drawtype = "plantlike", - tiles = {"default_birch_sapling.png"}, - inventory_image = "default_birch_sapling.png", - wield_image = "default_birch_sapling.png", - paramtype = "light", - sunlight_propagates = true, - walkable = false, - on_timer = default.grow_sapling, - selection_box = { - type = "fixed", - fixed = {-3 / 16, -0.5, -3 / 16, 3 / 16, 0.5, 3 / 16} - }, - groups = {snappy = 2, dig_immediate = 3, flammable = 3, - attached_node = 1, sapling = 1}, - sounds = default.node_sound_leaves_defaults(), - - on_construct = function(pos) - minetest.get_node_timer(pos):start(math.random(300, 1500)) - end, - - on_place = function(itemstack, placer, pointed_thing) - itemstack = default.sapling_on_place(itemstack, placer, pointed_thing, - "default:birch_sapling", - -- minp, maxp to be checked, relative to sapling pos - -- minp_relative.y = 1 because sapling pos has been checked - {x = -2, y = 1, z = -2}, - {x = 2, y = 12, z = 2}, - -- maximum interval of interior volume check - 4) - - return itemstack - end -}) - --- --- Ores --- - -minetest.register_node("default:stone_with_coal", { - description = "Coal Ore", - tiles = {"default_stone.png^default_mineral_coal.png"}, - groups = {cracky = 3}, - drop = 'default:coal_lump', - sounds = default.node_sound_stone_defaults(), -}) - -minetest.register_node("default:coalblock", { - description = "Coal Block", - tiles = {"default_coal_block.png"}, - is_ground_content = false, - groups = {cracky = 3}, - sounds = default.node_sound_stone_defaults(), -}) - -minetest.register_node("default:stone_with_iron", { - description = "Iron Ore", - tiles = {"default_stone.png^default_mineral_iron.png"}, - groups = {cracky = 2}, - drop = 'default:stone_with_iron', - sounds = default.node_sound_stone_defaults(), -}) - -minetest.register_node("default:steelblock", { - description = "Steel Block", - tiles = {"default_steel_block.png"}, - is_ground_content = false, - groups = {cracky = 1, level = 2}, - sounds = default.node_sound_stone_defaults(), -}) - -minetest.register_node("default:lapisblock", { - description = "Lapis Lazul Block", - tiles = {"default_lapis_block.png"}, - groups = {cracky = 1}, - sounds = default.node_sound_stone_defaults(), -}) - -minetest.register_node("default:stone_with_bluestone", { - description = "Bluestone Ore", - tiles = {"default_stone.png^default_mineral_bluestone.png"}, - groups = {cracky = 2}, - drop = "mesecons:wire_00000000_off 8", - sounds = default.node_sound_stone_defaults(), -}) - -minetest.register_node("default:stone_with_lapis", { - description = "Lapis Lazuli Ore", - tiles = {"default_stone.png^default_mineral_lapis.png"}, - groups = {cracky = 2}, - drop = { - max_items = 2, - items = { - {items = {'dye:blue 5'}, rarity = 16}, - {items = {'dye:blue 4'}, rarity = 12}, - {items = {'dye:blue 3'}, rarity = 8}, - {items = {'dye:blue 2'}, rarity = 6}, - {items = {'dye:blue 1'}, rarity = 1}, - } - }, - sounds = default.node_sound_stone_defaults(), -}) - - -minetest.register_node("default:stone_with_gold", { - description = "Gold Ore", - tiles = {"default_stone.png^default_mineral_gold.png"}, - groups = {cracky = 2}, - drop = "default:stone_with_gold", - sounds = default.node_sound_stone_defaults(), -}) - -minetest.register_node("default:goldblock", { - description = "Gold Block", - tiles = {"default_gold_block.png"}, - is_ground_content = false, - groups = {cracky = 1}, - sounds = default.node_sound_stone_defaults(), -}) - -minetest.register_node("default:stone_with_emerald", { - description = "Emerald Ore", - tiles = {"default_stone.png^default_mineral_emerald.png"}, - groups = {cracky = 2}, - drop = "default:emerald", - sounds = default.node_sound_stone_defaults(), -}) - -minetest.register_node("default:emeraldblock", { - description = "Emerald Block", - tiles = {"default_emerald_block.png"}, - groups = {cracky = 1}, - sounds = default.node_sound_stone_defaults(), -}) - -minetest.register_node("default:stone_with_diamond", { - description = "Diamonds in Stone", - tiles = {"default_stone.png^default_mineral_diamond.png"}, - groups = {cracky = 1}, - drop = "default:diamond", - sounds = default.node_sound_stone_defaults(), -}) - -minetest.register_node("default:diamondblock", { - description = "Diamond Block", - tiles = {"default_diamond_block.png"}, - is_ground_content = false, - groups = {cracky = 1, level = 3}, - sounds = default.node_sound_stone_defaults(), -}) - --- --- Plantlife (non-cubic) --- - -minetest.register_node("default:cactus", { - description = "Cactus", - drawtype = "nodebox", - tiles = {"default_cactus_top.png", "default_cactus_bottom.png", "default_cactus_side.png"}, - paramtype2 = "facedir", - groups = {choppy = 3, flammable = 2, attached_node = 1}, - sounds = default.node_sound_wood_defaults(), - node_box = { - type = "fixed", - fixed = { - {-7/16, -8/16, -7/16, 7/16, 8/16, 7/16}, -- Main Body - {-8/16, -8/16, -7/16, 8/16, 8/16, -7/16}, -- Spikes - {-8/16, -8/16, 7/16, 8/16, 8/16, 7/16}, -- Spikes - {-7/16, -8/16, -8/16, -7/16, 8/16, 8/16}, -- Spikes - {7/16, -8/16, 8/16, 7/16, 8/16, -8/16}, -- Spikes - }, - }, - selection_box = { - type = "fixed", - fixed = { - {-7/16, -8/16, -7/16, 7/16, 8/16, 7/16}, - }, - }, -}) - -if not minetest.settings:get_bool("creative_mode") then - minetest.register_abm({ - label = "Cactus damage", - nodenames = {"default:cactus"}, - interval = 1, - chance = 1, - action = function(pos) - local players = minetest.get_objects_inside_radius(pos, 1) - for i, player in ipairs(players) do - player:set_hp(player:get_hp() - 2) - end - end, - }) -end - -minetest.register_node("default:sugarcane", { - description = "Sugarcane", - drawtype = "plantlike", - tiles = {"default_sugarcane.png"}, - inventory_image = "default_sugarcane_inv.png", - wield_image = "default_sugarcane_inv.png", - paramtype = "light", - sunlight_propagates = true, - walkable = false, - selection_box = { - type = "fixed", - fixed = {-0.3, -0.5, -0.3, 0.3, 0.5, 0.3} - }, - groups = {snappy = 3, flammable = 2}, - sounds = default.node_sound_leaves_defaults(), - - after_dig_node = function(pos, node, metadata, digger) - default.dig_up(pos, node, digger) - end, -}) - -minetest.register_node("default:dry_shrub", { - description = "Dry Shrub", - drawtype = "plantlike", - waving = 1, - tiles = {"default_dry_shrub.png"}, - paramtype = "light", - paramtype2 = "meshoptions", - place_param2 = 4, - sunlight_propagates = true, - walkable = false, - buildable_to = true, - groups = {snappy = 3, flammable = 3, attached_node = 1}, - sounds = default.node_sound_leaves_defaults(), - selection_box = { - type = "fixed", - fixed = {-1/3, -1/2, -1/3, 1/3, 1/6, 1/3}, - }, -}) - -minetest.register_node("default:junglegrass", { - description = "Jungle Grass", - drawtype = "plantlike", - waving = 1, - visual_scale = 1.3, - tiles = {"default_junglegrass.png"}, - inventory_image = "default_junglegrass.png", - wield_image = "default_junglegrass.png", - paramtype = "light", - sunlight_propagates = true, - walkable = false, - buildable_to = true, - groups = {snappy = 3, flora = 1, attached_node = 1, flammable = 1}, - sounds = default.node_sound_leaves_defaults(), - drop = { - max_items = 1, - items = { - --{items = {'farming:seed_cotton'}, rarity = 8}, - {items = {'default:junglegrass'}}, - } - }, -}) - -minetest.register_node("default:grass", { - description = "Grass", - drawtype = "plantlike", - waving = 1, - tiles = {"default_tallgrass.png"}, - inventory_image = "default_tallgrass.png", - wield_image = "default_tallgrass.png", - paramtype = "light", - sunlight_propagates = true, - walkable = false, - buildable_to = true, - drop = { - max_items = 1, - items = { - {items = {'farming:seed_wheat'}, rarity = 5}, - {items = {'default:grass'}}, - } - }, - - groups = {snappy = 3, flora = 1, attached_node = 1, grass = 1, - flammable = 1, dig_immediate = 3}, - sounds = default.node_sound_leaves_defaults(), - -}) - - -minetest.register_node("default:dry_grass", { - description = "Dry Grass", - drawtype = "plantlike", - waving = 1, - tiles = {"default_dry_tallgrass.png"}, - inventory_image = "default_dry_tallgrass.png", - wield_image = "default_dry_tallgrass.png", - paramtype = "light", - sunlight_propagates = true, - walkable = false, - buildable_to = true, - groups = {snappy = 3, flammable = 3, flora = 1, attached_node = 1, - dry_grass = 1, dig_immediate = 3}, - sounds = default.node_sound_leaves_defaults(), -}) - --- --- Liquids --- - -minetest.register_node("default:water_source", { - description = "Water Source", - drawtype = "liquid", - waving = 3, - tiles = { - { - name = "default_water_source_animated.png", - backface_culling = false, - animation = { - type = "vertical_frames", - aspect_w = 32, - aspect_h = 32, - length = 2.0, - }, - }, - { - name = "default_water_source_animated.png", - backface_culling = true, - animation = { - type = "vertical_frames", - aspect_w = 32, - aspect_h = 32, - length = 2.0, - }, - }, - }, - alpha = 160, - paramtype = "light", - walkable = false, - pointable = false, - diggable = false, - buildable_to = true, - is_ground_content = false, - drop = "", - drowning = 1, - liquidtype = "source", - liquid_alternative_flowing = "default:water_flowing", - liquid_alternative_source = "default:water_source", - liquid_viscosity = 1, - post_effect_color = {a = 103, r = 30, g = 60, b = 90}, - groups = {water = 3, liquid = 3, cools_lava = 1, not_in_creative_inventory = 1}, - sounds = default.node_sound_water_defaults(), -}) - -minetest.register_node("default:water_flowing", { - description = "Flowing Water", - drawtype = "flowingliquid", - waving = 3, - tiles = {"default_water.png"}, - special_tiles = { - { - name = "default_water_flowing_animated.png", - backface_culling = false, - animation = { - type = "vertical_frames", - aspect_w = 32, - aspect_h = 32, - length = 0.8, - }, - }, - { - name = "default_water_flowing_animated.png", - backface_culling = true, - animation = { - type = "vertical_frames", - aspect_w = 32, - aspect_h = 32, - length = 0.8, - }, - }, - }, - alpha = 160, - paramtype = "light", - paramtype2 = "flowingliquid", - walkable = false, - pointable = false, - diggable = false, - buildable_to = true, - is_ground_content = false, - drop = "", - drowning = 1, - liquidtype = "flowing", - liquid_alternative_flowing = "default:water_flowing", - liquid_alternative_source = "default:water_source", - liquid_viscosity = 1, - post_effect_color = {a = 103, r = 30, g = 60, b = 90}, - groups = {water = 3, liquid = 3, not_in_creative_inventory = 1, - cools_lava = 1}, - sounds = default.node_sound_water_defaults(), -}) - - -minetest.register_node("default:river_water_source", { - description = "River Water Source", - drawtype = "liquid", - tiles = { - { - name = "default_river_water_source_animated.png", - backface_culling = false, - animation = { - type = "vertical_frames", - aspect_w = 32, - aspect_h = 32, - length = 2.0, - }, - }, - { - name = "default_river_water_source_animated.png", - backface_culling = true, - animation = { - type = "vertical_frames", - aspect_w = 32, - aspect_h = 32, - length = 2.0, - }, - }, - }, - alpha = 160, - paramtype = "light", - walkable = false, - pointable = false, - diggable = false, - buildable_to = true, - is_ground_content = false, - drop = "", - drowning = 1, - liquidtype = "source", - liquid_alternative_flowing = "default:river_water_flowing", - liquid_alternative_source = "default:river_water_source", - liquid_viscosity = 1, - liquid_renewable = false, - liquid_range = 2, - post_effect_color = {a = 103, r = 30, g = 76, b = 90}, - groups = {water = 3, liquid = 3, cools_lava = 1, not_in_creative_inventory = 1}, - sounds = default.node_sound_water_defaults(), -}) - -minetest.register_node("default:river_water_flowing", { - description = "Flowing River Water", - drawtype = "flowingliquid", - tiles = {"default_river_water.png"}, - special_tiles = { - { - name = "default_river_water_flowing_animated.png", - backface_culling = false, - animation = { - type = "vertical_frames", - aspect_w = 32, - aspect_h = 32, - length = 0.8, - }, - }, - { - name = "default_river_water_flowing_animated.png", - backface_culling = true, - animation = { - type = "vertical_frames", - aspect_w = 32, - aspect_h = 32, - length = 0.8, - }, - }, - }, - alpha = 160, - paramtype = "light", - paramtype2 = "flowingliquid", - walkable = false, - pointable = false, - diggable = false, - buildable_to = true, - is_ground_content = false, - drop = "", - drowning = 1, - liquidtype = "flowing", - liquid_alternative_flowing = "default:river_water_flowing", - liquid_alternative_source = "default:river_water_source", - liquid_viscosity = 1, - liquid_renewable = false, - liquid_range = 2, - post_effect_color = {a = 103, r = 30, g = 76, b = 90}, - groups = {water = 3, liquid = 3, not_in_creative_inventory = 1, - cools_lava = 1}, - sounds = default.node_sound_water_defaults(), -}) - - -minetest.register_node("default:lava_source", { - description = "Lava Source", - drawtype = "liquid", - tiles = { - { - name = "default_lava_source_animated.png", - backface_culling = false, - animation = { - type = "vertical_frames", - aspect_w = 32, - aspect_h = 32, - length = 3.0, - }, - }, - { - name = "default_lava_source_animated.png", - backface_culling = true, - animation = { - type = "vertical_frames", - aspect_w = 32, - aspect_h = 32, - length = 3.0, - }, - }, - }, - paramtype = "light", - light_source = minetest.LIGHT_MAX - 1, - walkable = false, - pointable = false, - diggable = false, - buildable_to = true, - is_ground_content = false, - drop = "", - drowning = 1, - liquidtype = "source", - liquid_alternative_flowing = "default:lava_flowing", - liquid_alternative_source = "default:lava_source", - liquid_viscosity = 7, - liquid_renewable = false, - damage_per_second = 4, - post_effect_color = {a = 191, r = 255, g = 64, b = 0}, - groups = {lava = 3, liquid = 2, igniter = 1, not_in_creative_inventory = 1} -}) - -minetest.register_node("default:lava_flowing", { - description = "Flowing Lava", - drawtype = "flowingliquid", - tiles = {"default_lava.png"}, - special_tiles = { - { - name = "default_lava_flowing_animated.png", - backface_culling = false, - animation = { - type = "vertical_frames", - aspect_w = 32, - aspect_h = 32, - length = 3.3, - }, - }, - { - name = "default_lava_flowing_animated.png", - backface_culling = true, - animation = { - type = "vertical_frames", - aspect_w = 32, - aspect_h = 32, - length = 3.3, - }, - }, - }, - paramtype = "light", - paramtype2 = "flowingliquid", - light_source = minetest.LIGHT_MAX - 1, - walkable = false, - pointable = false, - diggable = false, - buildable_to = true, - is_ground_content = false, - drop = "", - drowning = 1, - liquidtype = "flowing", - liquid_alternative_flowing = "default:lava_flowing", - liquid_alternative_source = "default:lava_source", - liquid_viscosity = 7, - liquid_renewable = false, - damage_per_second = 4, - post_effect_color = {a = 191, r = 255, g = 64, b = 0}, - groups = {lava = 3, liquid = 2, igniter = 1, not_in_creative_inventory = 1} -}) - --- --- Tools / "Advanced" crafting / Non-"natural" --- - -local bookshelf_formspec = - "size[9,7;]" .. - "list[context;books;0,0.3;9,2;]" .. - "list[current_player;main;0,2.85;9,1;]" .. - "list[current_player;main;0,4.08;9,3;9]" .. - "listring[context;books]" .. - "listring[current_player;main]" - -local function update_bookshelf(pos) - local meta = minetest.get_meta(pos) - local inv = meta:get_inventory() - local invlist = inv:get_list("books") - - local formspec = bookshelf_formspec - -- Inventory slots overlay - local bx, by = 0, 0.3 - local n_written, n_empty = 0, 0 - for i = 1, 16 do - if i == 9 then - bx = 0 - by = by + 1 - end - local stack = invlist[i] - if stack:is_empty() then - formspec = formspec --[[.. - "image[" .. bx .. "," .. by .. ";1,1;default_bookshelf_slot.png]"]] - else - local metatable = stack:get_meta():to_table() or {} - if metatable.fields and metatable.fields.text then - n_written = n_written + stack:get_count() - else - n_empty = n_empty + stack:get_count() - end - end - bx = bx + 1 - end - meta:set_string("formspec", formspec) - if n_written + n_empty == 0 then - meta:set_string("infotext", "Empty Bookshelf") - else - meta:set_string("infotext", "Bookshelf (" .. n_written .. - " written, " .. n_empty .. " empty books)") - end -end - -minetest.register_node("default:bookshelf", { - description = "Bookshelf", - tiles = {"default_wood.png", "default_wood.png", "default_wood.png", - "default_wood.png", "default_bookshelf.png", "default_bookshelf.png"}, - paramtype2 = "facedir", - is_ground_content = false, - groups = {choppy = 3, oddly_breakable_by_hand = 2, flammable = 3}, - sounds = default.node_sound_wood_defaults(), - - on_construct = function(pos) - local meta = minetest.get_meta(pos) - local inv = meta:get_inventory() - inv:set_size("books", 9 * 2) - update_bookshelf(pos) - end, - can_dig = function(pos,player) - local inv = minetest.get_meta(pos):get_inventory() - return inv:is_empty("books") - end, - allow_metadata_inventory_put = function(pos, listname, index, stack) - if minetest.get_item_group(stack:get_name(), "book") ~= 0 then - return stack:get_count() - end - return 0 - end, - on_metadata_inventory_move = function(pos, from_list, from_index, to_list, to_index, count, player) - minetest.log("action", player:get_player_name() .. - " moves stuff in bookshelf at " .. minetest.pos_to_string(pos)) - update_bookshelf(pos) - end, - on_metadata_inventory_put = function(pos, listname, index, stack, player) - minetest.log("action", player:get_player_name() .. - " puts stuff to bookshelf at " .. minetest.pos_to_string(pos)) - update_bookshelf(pos) - end, - on_metadata_inventory_take = function(pos, listname, index, stack, player) - minetest.log("action", player:get_player_name() .. - " takes stuff from bookshelf at " .. minetest.pos_to_string(pos)) - update_bookshelf(pos) - end, - on_blast = function(pos) - local drops = {} - default.get_inventory_drops(pos, "books", drops) - drops[#drops+1] = "default:bookshelf" - minetest.remove_node(pos) - return drops - end, -}) - - -minetest.register_node("default:ladder_wood", { - description = "Wooden Ladder", - drawtype = "signlike", - tiles = {"default_ladder_wood.png"}, - inventory_image = "default_ladder_wood.png", - wield_image = "default_ladder_wood.png", - paramtype = "light", - paramtype2 = "wallmounted", - sunlight_propagates = true, - walkable = false, - climbable = true, - is_ground_content = false, - selection_box = { - type = "wallmounted", - --wall_top = = - --wall_bottom = = - --wall_side = = - }, - groups = {choppy = 2, oddly_breakable_by_hand = 3, flammable = 2, attached_node = 1}, - legacy_wallmounted = true, - sounds = default.node_sound_wood_defaults(), -}) - - -default.register_fence("default:fence_wood", { - description = "Apple Wood Fence", - texture = "default_wood.png", - inventory_image = "default_wood_fence.png", - material = "default:wood", - groups = {choppy = 2, oddly_breakable_by_hand = 2, flammable = 2}, - sounds = default.node_sound_wood_defaults() -}) - - -minetest.register_node("default:vine", { - description = "Vine", - drawtype = "signlike", - tiles = {"default_vine.png"}, - inventory_image = "default_vine.png", - wield_image = "default_vine.png", - paramtype = "light", - paramtype2 = "wallmounted", - walkable = false, - climbable = true, - selection_box = { - type = "wallmounted", - }, - groups = {choppy = 2, oddly_breakable_by_hand = 3, flammable = 2}, - legacy_wallmounted = true, - sounds = default.node_sound_leaves_defaults(), - drop = "", - after_dig_node = function(pos, oldnode, oldmetadata, user) - local item = user:get_wielded_item() - local next_find = true - local down = 1 - while next_find == true do - local pos2 = {x = pos.x, y = pos.y - down, z = pos.z} - local node = minetest.get_node(pos2) - if node.name == "default:vine" then - minetest.remove_node(pos2) - down = down + 1 - else - next_find = false - end - end - end, -}) - - -minetest.register_node("default:glass", { - description = "Glass", - drawtype = "glasslike_framed_optional", - tiles = {"default_glass.png", "default_glass_detail.png"}, - paramtype = "light", - paramtype2 = "glasslikeliquidlevel", - sunlight_propagates = true, - is_ground_content = false, - groups = {cracky = 3, oddly_breakable_by_hand = 3}, - sounds = default.node_sound_glass_defaults(), - drop = "", -}) - -minetest.register_node("default:brick", { - description = "Brick Block", - paramtype2 = "facedir", - place_param2 = 0, - tiles = {"default_brick.png"}, - is_ground_content = false, - groups = {cracky = 3}, - sounds = default.node_sound_stone_defaults(), -}) - -minetest.register_node("default:glowstone", { - description = "Glowstone", - tiles = {"default_glowstone.png"}, - paramtype = "light", - groups = {cracky = 3}, ---[[ drop = { - max_items = 1, - items = { - {items = {'default:glowdust 9'}, rarity = 7}, - {items = {'default:glowdust 6'}, rarity = 5}, - {items = {'default:glowdust 4'}, rarity = 3}, - {items = {'default:glowdust 3'}, rarity = 2}, - {items = {'default:glowdust 2'}}, - } - },]] - light_source = minetest.LIGHT_MAX - 3, -}) - -minetest.register_node("default:slimeblock", { - description = "Slime Block", - drawtype = "nodebox", - tiles = {"default_slimeblock.png"}, - paramtype = "light", - node_box = { - type = "fixed", - fixed = { - {-0.25, -0.25, -0.25, 0.25, 0.25, 0.25}, - {-0.5, -0.5, -0.5, 0.5, 0.5, 0.5}, - } - }, - use_texture_alpha = true, - sunlight_propagates = true, - groups = {oddly_breakable_by_hand = 3, disable_jump = 1, fall_damage_add_percent = -100, speed = -30}, -}) - - --- --- Quartz --- - -minetest.register_node("default:quartz_ore", { - description = "Quartz Ore", - tiles = {"default_quartz_ore.png"}, - groups = {cracky = 3, stone = 1}, - drop = 'default:quartz_crystal', - sounds = default.node_sound_stone_defaults(), -}) - -minetest.register_node("default:quartz_block", { - description = "Quartz Block", - tiles = {"default_quartz_block_top.png", "default_quartz_block_bottom.png", "default_quartz_block_side.png"}, - groups = {snappy = 1, bendy = 2, cracky = 1}, - sounds = default.node_sound_stone_defaults(), -}) - -minetest.register_node("default:quartz_chiseled", { - description = "Chiseled Quartz", - tiles = {"default_quartz_chiseled_top.png", "default_quartz_chiseled_top.png", "default_quartz_chiseled_side.png"}, - groups = {snappy = 1, bendy = 2, cracky = 1}, - sounds = default.node_sound_stone_defaults(), -}) - -minetest.register_node("default:quartz_pillar", { - description = "Quartz Pillar", - paramtype2 = "facedir", - on_place = minetest.rotate_node, - tiles = {"default_quartz_pillar_top.png", "default_quartz_pillar_top.png", "default_quartz_pillar_side.png"}, - groups = {snappy = 1, bendy = 2, cracky = 1}, - sounds = default.node_sound_stone_defaults(), -}) - --- --- register trees for leafdecay --- - -if minetest.get_mapgen_setting("mg_name") == "v6" then - default.register_leafdecay({ - trunks = {"default:tree"}, - leaves = {"default:apple", "default:leaves"}, - radius = 2, - }) - - default.register_leafdecay({ - trunks = {"default:jungletree"}, - leaves = {"default:jungleleaves"}, - radius = 3, - }) -else - default.register_leafdecay({ - trunks = {"default:tree"}, - leaves = {"default:apple", "default:leaves"}, - radius = 3, - }) - - default.register_leafdecay({ - trunks = {"default:jungletree"}, - leaves = {"default:jungleleaves"}, - radius = 2, - }) -end - -default.register_leafdecay({ - trunks = {"default:pine_tree"}, - leaves = {"default:pine_needles"}, - radius = 3, -}) - -default.register_leafdecay({ - trunks = {"default:acacia_tree"}, - leaves = {"default:acacia_leaves"}, - radius = 2, -}) - -default.register_leafdecay({ - trunks = {"default:birch_tree"}, - leaves = {"default:birch_leaves"}, - radius = 3, -}) diff --git a/games/default/files/default/schematics/acacia_log.mts b/games/default/files/default/schematics/acacia_log.mts deleted file mode 100644 index 037bca8c3..000000000 Binary files a/games/default/files/default/schematics/acacia_log.mts and /dev/null differ diff --git a/games/default/files/default/schematics/acacia_tree.mts b/games/default/files/default/schematics/acacia_tree.mts deleted file mode 100644 index 9b2349819..000000000 Binary files a/games/default/files/default/schematics/acacia_tree.mts and /dev/null differ diff --git a/games/default/files/default/schematics/acacia_tree_from_sapling.mts b/games/default/files/default/schematics/acacia_tree_from_sapling.mts deleted file mode 100644 index c32a995cb..000000000 Binary files a/games/default/files/default/schematics/acacia_tree_from_sapling.mts and /dev/null differ diff --git a/games/default/files/default/schematics/apple_log.mts b/games/default/files/default/schematics/apple_log.mts deleted file mode 100644 index e7ee8f2b8..000000000 Binary files a/games/default/files/default/schematics/apple_log.mts and /dev/null differ diff --git a/games/default/files/default/schematics/apple_tree.mts b/games/default/files/default/schematics/apple_tree.mts deleted file mode 100644 index d56cd54b8..000000000 Binary files a/games/default/files/default/schematics/apple_tree.mts and /dev/null differ diff --git a/games/default/files/default/schematics/apple_tree_from_sapling.mts b/games/default/files/default/schematics/apple_tree_from_sapling.mts deleted file mode 100644 index 232510034..000000000 Binary files a/games/default/files/default/schematics/apple_tree_from_sapling.mts and /dev/null differ diff --git a/games/default/files/default/schematics/birch_log.mts b/games/default/files/default/schematics/birch_log.mts deleted file mode 100644 index 1f5c4842c..000000000 Binary files a/games/default/files/default/schematics/birch_log.mts and /dev/null differ diff --git a/games/default/files/default/schematics/birch_tree.mts b/games/default/files/default/schematics/birch_tree.mts deleted file mode 100644 index ee75887a4..000000000 Binary files a/games/default/files/default/schematics/birch_tree.mts and /dev/null differ diff --git a/games/default/files/default/schematics/birch_tree_from_sapling.mts b/games/default/files/default/schematics/birch_tree_from_sapling.mts deleted file mode 100644 index b93109d97..000000000 Binary files a/games/default/files/default/schematics/birch_tree_from_sapling.mts and /dev/null differ diff --git a/games/default/files/default/schematics/emergent_jungle_tree.mts b/games/default/files/default/schematics/emergent_jungle_tree.mts deleted file mode 100644 index b52643095..000000000 Binary files a/games/default/files/default/schematics/emergent_jungle_tree.mts and /dev/null differ diff --git a/games/default/files/default/schematics/emergent_jungle_tree_from_sapling.mts b/games/default/files/default/schematics/emergent_jungle_tree_from_sapling.mts deleted file mode 100644 index cb4e4e9e9..000000000 Binary files a/games/default/files/default/schematics/emergent_jungle_tree_from_sapling.mts and /dev/null differ diff --git a/games/default/files/default/schematics/jungle_log.mts b/games/default/files/default/schematics/jungle_log.mts deleted file mode 100644 index 54fa16d17..000000000 Binary files a/games/default/files/default/schematics/jungle_log.mts and /dev/null differ diff --git a/games/default/files/default/schematics/jungle_tree.mts b/games/default/files/default/schematics/jungle_tree.mts deleted file mode 100644 index fe93c8c18..000000000 Binary files a/games/default/files/default/schematics/jungle_tree.mts and /dev/null differ diff --git a/games/default/files/default/schematics/jungle_tree_from_sapling.mts b/games/default/files/default/schematics/jungle_tree_from_sapling.mts deleted file mode 100644 index f32d312be..000000000 Binary files a/games/default/files/default/schematics/jungle_tree_from_sapling.mts and /dev/null differ diff --git a/games/default/files/default/schematics/large_cactus.mts b/games/default/files/default/schematics/large_cactus.mts deleted file mode 100644 index e453573fb..000000000 Binary files a/games/default/files/default/schematics/large_cactus.mts and /dev/null differ diff --git a/games/default/files/default/schematics/papyrus.mts b/games/default/files/default/schematics/papyrus.mts deleted file mode 100644 index 1333a7c42..000000000 Binary files a/games/default/files/default/schematics/papyrus.mts and /dev/null differ diff --git a/games/default/files/default/schematics/pine_log.mts b/games/default/files/default/schematics/pine_log.mts deleted file mode 100644 index 744c38b02..000000000 Binary files a/games/default/files/default/schematics/pine_log.mts and /dev/null differ diff --git a/games/default/files/default/schematics/pine_tree.mts b/games/default/files/default/schematics/pine_tree.mts deleted file mode 100644 index c80532aee..000000000 Binary files a/games/default/files/default/schematics/pine_tree.mts and /dev/null differ diff --git a/games/default/files/default/schematics/pine_tree_from_sapling.mts b/games/default/files/default/schematics/pine_tree_from_sapling.mts deleted file mode 100644 index 0800387c0..000000000 Binary files a/games/default/files/default/schematics/pine_tree_from_sapling.mts and /dev/null differ diff --git a/games/default/files/default/schematics/small_pine_tree.mts b/games/default/files/default/schematics/small_pine_tree.mts deleted file mode 100644 index b2832266c..000000000 Binary files a/games/default/files/default/schematics/small_pine_tree.mts and /dev/null differ diff --git a/games/default/files/default/schematics/small_pine_tree_from_sapling.mts b/games/default/files/default/schematics/small_pine_tree_from_sapling.mts deleted file mode 100644 index a1b117030..000000000 Binary files a/games/default/files/default/schematics/small_pine_tree_from_sapling.mts and /dev/null differ diff --git a/games/default/files/default/schematics/snowy_pine_tree_from_sapling.mts b/games/default/files/default/schematics/snowy_pine_tree_from_sapling.mts deleted file mode 100644 index 3d502a3e1..000000000 Binary files a/games/default/files/default/schematics/snowy_pine_tree_from_sapling.mts and /dev/null differ diff --git a/games/default/files/default/schematics/snowy_small_pine_tree_from_sapling.mts b/games/default/files/default/schematics/snowy_small_pine_tree_from_sapling.mts deleted file mode 100644 index d017c9e09..000000000 Binary files a/games/default/files/default/schematics/snowy_small_pine_tree_from_sapling.mts and /dev/null differ diff --git a/games/default/files/default/sounds/builtin_item_lava.ogg b/games/default/files/default/sounds/builtin_item_lava.ogg deleted file mode 100644 index 435ac9457..000000000 Binary files a/games/default/files/default/sounds/builtin_item_lava.ogg and /dev/null differ diff --git a/games/default/files/default/sounds/default_break_glass.1.ogg b/games/default/files/default/sounds/default_break_glass.1.ogg deleted file mode 100644 index b1ccc5fab..000000000 Binary files a/games/default/files/default/sounds/default_break_glass.1.ogg and /dev/null differ diff --git a/games/default/files/default/sounds/default_break_glass.2.ogg b/games/default/files/default/sounds/default_break_glass.2.ogg deleted file mode 100644 index b6cc9e85e..000000000 Binary files a/games/default/files/default/sounds/default_break_glass.2.ogg and /dev/null differ diff --git a/games/default/files/default/sounds/default_break_glass.3.ogg b/games/default/files/default/sounds/default_break_glass.3.ogg deleted file mode 100644 index ae6a6bfc4..000000000 Binary files a/games/default/files/default/sounds/default_break_glass.3.ogg and /dev/null differ diff --git a/games/default/files/default/sounds/default_cool_lava.1.ogg b/games/default/files/default/sounds/default_cool_lava.1.ogg deleted file mode 100644 index 42506ddff..000000000 Binary files a/games/default/files/default/sounds/default_cool_lava.1.ogg and /dev/null differ diff --git a/games/default/files/default/sounds/default_cool_lava.2.ogg b/games/default/files/default/sounds/default_cool_lava.2.ogg deleted file mode 100644 index 2747ab81c..000000000 Binary files a/games/default/files/default/sounds/default_cool_lava.2.ogg and /dev/null differ diff --git a/games/default/files/default/sounds/default_cool_lava.3.ogg b/games/default/files/default/sounds/default_cool_lava.3.ogg deleted file mode 100644 index 8baeac32e..000000000 Binary files a/games/default/files/default/sounds/default_cool_lava.3.ogg and /dev/null differ diff --git a/games/default/files/default/sounds/default_dig_choppy.ogg b/games/default/files/default/sounds/default_dig_choppy.ogg deleted file mode 100644 index e2ecd8416..000000000 Binary files a/games/default/files/default/sounds/default_dig_choppy.ogg and /dev/null differ diff --git a/games/default/files/default/sounds/default_dig_cracky.ogg b/games/default/files/default/sounds/default_dig_cracky.ogg deleted file mode 100644 index da1167916..000000000 Binary files a/games/default/files/default/sounds/default_dig_cracky.ogg and /dev/null differ diff --git a/games/default/files/default/sounds/default_dig_crumbly.ogg b/games/default/files/default/sounds/default_dig_crumbly.ogg deleted file mode 100644 index a0b2a1f9f..000000000 Binary files a/games/default/files/default/sounds/default_dig_crumbly.ogg and /dev/null differ diff --git a/games/default/files/default/sounds/default_dig_dig_immediate.ogg b/games/default/files/default/sounds/default_dig_dig_immediate.ogg deleted file mode 100644 index e65d766ee..000000000 Binary files a/games/default/files/default/sounds/default_dig_dig_immediate.ogg and /dev/null differ diff --git a/games/default/files/default/sounds/default_dig_metal.ogg b/games/default/files/default/sounds/default_dig_metal.ogg deleted file mode 100644 index 0b585097a..000000000 Binary files a/games/default/files/default/sounds/default_dig_metal.ogg and /dev/null differ diff --git a/games/default/files/default/sounds/default_dig_oddly_breakable_by_hand.ogg b/games/default/files/default/sounds/default_dig_oddly_breakable_by_hand.ogg deleted file mode 100644 index ef4d7b155..000000000 Binary files a/games/default/files/default/sounds/default_dig_oddly_breakable_by_hand.ogg and /dev/null differ diff --git a/games/default/files/default/sounds/default_dig_snappy.ogg b/games/default/files/default/sounds/default_dig_snappy.ogg deleted file mode 100644 index 3686fcddb..000000000 Binary files a/games/default/files/default/sounds/default_dig_snappy.ogg and /dev/null differ diff --git a/games/default/files/default/sounds/default_dirt_footstep.1.ogg b/games/default/files/default/sounds/default_dirt_footstep.1.ogg deleted file mode 100644 index 201aa3b2d..000000000 Binary files a/games/default/files/default/sounds/default_dirt_footstep.1.ogg and /dev/null differ diff --git a/games/default/files/default/sounds/default_dirt_footstep.2.ogg b/games/default/files/default/sounds/default_dirt_footstep.2.ogg deleted file mode 100644 index 2667dbc21..000000000 Binary files a/games/default/files/default/sounds/default_dirt_footstep.2.ogg and /dev/null differ diff --git a/games/default/files/default/sounds/default_dug_metal.1.ogg b/games/default/files/default/sounds/default_dug_metal.1.ogg deleted file mode 100644 index 5d6cb5b1e..000000000 Binary files a/games/default/files/default/sounds/default_dug_metal.1.ogg and /dev/null differ diff --git a/games/default/files/default/sounds/default_dug_metal.2.ogg b/games/default/files/default/sounds/default_dug_metal.2.ogg deleted file mode 100644 index 63567fc05..000000000 Binary files a/games/default/files/default/sounds/default_dug_metal.2.ogg and /dev/null differ diff --git a/games/default/files/default/sounds/default_dug_node.1.ogg b/games/default/files/default/sounds/default_dug_node.1.ogg deleted file mode 100644 index c04975d42..000000000 Binary files a/games/default/files/default/sounds/default_dug_node.1.ogg and /dev/null differ diff --git a/games/default/files/default/sounds/default_dug_node.2.ogg b/games/default/files/default/sounds/default_dug_node.2.ogg deleted file mode 100644 index 9f209268f..000000000 Binary files a/games/default/files/default/sounds/default_dug_node.2.ogg and /dev/null differ diff --git a/games/default/files/default/sounds/default_glass_footstep.ogg b/games/default/files/default/sounds/default_glass_footstep.ogg deleted file mode 100644 index 191287a33..000000000 Binary files a/games/default/files/default/sounds/default_glass_footstep.ogg and /dev/null differ diff --git a/games/default/files/default/sounds/default_grass_footstep.1.ogg b/games/default/files/default/sounds/default_grass_footstep.1.ogg deleted file mode 100644 index 22d1ad6b8..000000000 Binary files a/games/default/files/default/sounds/default_grass_footstep.1.ogg and /dev/null differ diff --git a/games/default/files/default/sounds/default_grass_footstep.2.ogg b/games/default/files/default/sounds/default_grass_footstep.2.ogg deleted file mode 100644 index 4ccd8a0f3..000000000 Binary files a/games/default/files/default/sounds/default_grass_footstep.2.ogg and /dev/null differ diff --git a/games/default/files/default/sounds/default_grass_footstep.3.ogg b/games/default/files/default/sounds/default_grass_footstep.3.ogg deleted file mode 100644 index 20db84eda..000000000 Binary files a/games/default/files/default/sounds/default_grass_footstep.3.ogg and /dev/null differ diff --git a/games/default/files/default/sounds/default_gravel_footstep.1.ogg b/games/default/files/default/sounds/default_gravel_footstep.1.ogg deleted file mode 100644 index 8d260ce01..000000000 Binary files a/games/default/files/default/sounds/default_gravel_footstep.1.ogg and /dev/null differ diff --git a/games/default/files/default/sounds/default_gravel_footstep.2.ogg b/games/default/files/default/sounds/default_gravel_footstep.2.ogg deleted file mode 100644 index 2aba2c652..000000000 Binary files a/games/default/files/default/sounds/default_gravel_footstep.2.ogg and /dev/null differ diff --git a/games/default/files/default/sounds/default_gravel_footstep.3.ogg b/games/default/files/default/sounds/default_gravel_footstep.3.ogg deleted file mode 100644 index 1bcd8a117..000000000 Binary files a/games/default/files/default/sounds/default_gravel_footstep.3.ogg and /dev/null differ diff --git a/games/default/files/default/sounds/default_gravel_footstep.4.ogg b/games/default/files/default/sounds/default_gravel_footstep.4.ogg deleted file mode 100644 index 696c9ffd2..000000000 Binary files a/games/default/files/default/sounds/default_gravel_footstep.4.ogg and /dev/null differ diff --git a/games/default/files/default/sounds/default_hard_footstep.1.ogg b/games/default/files/default/sounds/default_hard_footstep.1.ogg deleted file mode 100644 index 1748bc56a..000000000 Binary files a/games/default/files/default/sounds/default_hard_footstep.1.ogg and /dev/null differ diff --git a/games/default/files/default/sounds/default_hard_footstep.2.ogg b/games/default/files/default/sounds/default_hard_footstep.2.ogg deleted file mode 100644 index fe39fd784..000000000 Binary files a/games/default/files/default/sounds/default_hard_footstep.2.ogg and /dev/null differ diff --git a/games/default/files/default/sounds/default_hard_footstep.3.ogg b/games/default/files/default/sounds/default_hard_footstep.3.ogg deleted file mode 100644 index 5030e0607..000000000 Binary files a/games/default/files/default/sounds/default_hard_footstep.3.ogg and /dev/null differ diff --git a/games/default/files/default/sounds/default_item_smoke.ogg b/games/default/files/default/sounds/default_item_smoke.ogg deleted file mode 100644 index 038a46e4f..000000000 Binary files a/games/default/files/default/sounds/default_item_smoke.ogg and /dev/null differ diff --git a/games/default/files/default/sounds/default_metal_footstep.1.ogg b/games/default/files/default/sounds/default_metal_footstep.1.ogg deleted file mode 100644 index 841286bdc..000000000 Binary files a/games/default/files/default/sounds/default_metal_footstep.1.ogg and /dev/null differ diff --git a/games/default/files/default/sounds/default_metal_footstep.2.ogg b/games/default/files/default/sounds/default_metal_footstep.2.ogg deleted file mode 100644 index aa61ed338..000000000 Binary files a/games/default/files/default/sounds/default_metal_footstep.2.ogg and /dev/null differ diff --git a/games/default/files/default/sounds/default_metal_footstep.3.ogg b/games/default/files/default/sounds/default_metal_footstep.3.ogg deleted file mode 100644 index 4cc1ca47a..000000000 Binary files a/games/default/files/default/sounds/default_metal_footstep.3.ogg and /dev/null differ diff --git a/games/default/files/default/sounds/default_place_node.1.ogg b/games/default/files/default/sounds/default_place_node.1.ogg deleted file mode 100644 index 46b9756de..000000000 Binary files a/games/default/files/default/sounds/default_place_node.1.ogg and /dev/null differ diff --git a/games/default/files/default/sounds/default_place_node.2.ogg b/games/default/files/default/sounds/default_place_node.2.ogg deleted file mode 100644 index d34c01a43..000000000 Binary files a/games/default/files/default/sounds/default_place_node.2.ogg and /dev/null differ diff --git a/games/default/files/default/sounds/default_place_node.3.ogg b/games/default/files/default/sounds/default_place_node.3.ogg deleted file mode 100644 index fc2936506..000000000 Binary files a/games/default/files/default/sounds/default_place_node.3.ogg and /dev/null differ diff --git a/games/default/files/default/sounds/default_place_node_hard.1.ogg b/games/default/files/default/sounds/default_place_node_hard.1.ogg deleted file mode 100644 index 9f97facad..000000000 Binary files a/games/default/files/default/sounds/default_place_node_hard.1.ogg and /dev/null differ diff --git a/games/default/files/default/sounds/default_place_node_hard.2.ogg b/games/default/files/default/sounds/default_place_node_hard.2.ogg deleted file mode 100644 index 1d3b3de2c..000000000 Binary files a/games/default/files/default/sounds/default_place_node_hard.2.ogg and /dev/null differ diff --git a/games/default/files/default/sounds/default_place_node_metal.1.ogg b/games/default/files/default/sounds/default_place_node_metal.1.ogg deleted file mode 100644 index 5da085ea2..000000000 Binary files a/games/default/files/default/sounds/default_place_node_metal.1.ogg and /dev/null differ diff --git a/games/default/files/default/sounds/default_place_node_metal.2.ogg b/games/default/files/default/sounds/default_place_node_metal.2.ogg deleted file mode 100644 index 5ee67fcf6..000000000 Binary files a/games/default/files/default/sounds/default_place_node_metal.2.ogg and /dev/null differ diff --git a/games/default/files/default/sounds/default_sand_footstep.1.ogg b/games/default/files/default/sounds/default_sand_footstep.1.ogg deleted file mode 100644 index 65b68c7e6..000000000 Binary files a/games/default/files/default/sounds/default_sand_footstep.1.ogg and /dev/null differ diff --git a/games/default/files/default/sounds/default_sand_footstep.2.ogg b/games/default/files/default/sounds/default_sand_footstep.2.ogg deleted file mode 100644 index 57f35f30a..000000000 Binary files a/games/default/files/default/sounds/default_sand_footstep.2.ogg and /dev/null differ diff --git a/games/default/files/default/sounds/default_snow_footstep.1.ogg b/games/default/files/default/sounds/default_snow_footstep.1.ogg deleted file mode 100644 index 97cc8252e..000000000 Binary files a/games/default/files/default/sounds/default_snow_footstep.1.ogg and /dev/null differ diff --git a/games/default/files/default/sounds/default_snow_footstep.2.ogg b/games/default/files/default/sounds/default_snow_footstep.2.ogg deleted file mode 100644 index 97a6baa48..000000000 Binary files a/games/default/files/default/sounds/default_snow_footstep.2.ogg and /dev/null differ diff --git a/games/default/files/default/sounds/default_snow_footstep.3.ogg b/games/default/files/default/sounds/default_snow_footstep.3.ogg deleted file mode 100644 index bde1f21d4..000000000 Binary files a/games/default/files/default/sounds/default_snow_footstep.3.ogg and /dev/null differ diff --git a/games/default/files/default/sounds/default_snow_footstep.4.ogg b/games/default/files/default/sounds/default_snow_footstep.4.ogg deleted file mode 100644 index 8ca6a590d..000000000 Binary files a/games/default/files/default/sounds/default_snow_footstep.4.ogg and /dev/null differ diff --git a/games/default/files/default/sounds/default_snow_footstep.5.ogg b/games/default/files/default/sounds/default_snow_footstep.5.ogg deleted file mode 100644 index 220d60c93..000000000 Binary files a/games/default/files/default/sounds/default_snow_footstep.5.ogg and /dev/null differ diff --git a/games/default/files/default/sounds/default_tool_breaks.1.ogg b/games/default/files/default/sounds/default_tool_breaks.1.ogg deleted file mode 100644 index 2a571ae28..000000000 Binary files a/games/default/files/default/sounds/default_tool_breaks.1.ogg and /dev/null differ diff --git a/games/default/files/default/sounds/default_tool_breaks.2.ogg b/games/default/files/default/sounds/default_tool_breaks.2.ogg deleted file mode 100644 index 178935205..000000000 Binary files a/games/default/files/default/sounds/default_tool_breaks.2.ogg and /dev/null differ diff --git a/games/default/files/default/sounds/default_tool_breaks.3.ogg b/games/default/files/default/sounds/default_tool_breaks.3.ogg deleted file mode 100644 index a99c4b7e3..000000000 Binary files a/games/default/files/default/sounds/default_tool_breaks.3.ogg and /dev/null differ diff --git a/games/default/files/default/sounds/default_water_footstep.1.ogg b/games/default/files/default/sounds/default_water_footstep.1.ogg deleted file mode 100644 index 63b9744ce..000000000 Binary files a/games/default/files/default/sounds/default_water_footstep.1.ogg and /dev/null differ diff --git a/games/default/files/default/sounds/default_water_footstep.2.ogg b/games/default/files/default/sounds/default_water_footstep.2.ogg deleted file mode 100644 index 8d79c1f4b..000000000 Binary files a/games/default/files/default/sounds/default_water_footstep.2.ogg and /dev/null differ diff --git a/games/default/files/default/sounds/default_water_footstep.3.ogg b/games/default/files/default/sounds/default_water_footstep.3.ogg deleted file mode 100644 index f8891506d..000000000 Binary files a/games/default/files/default/sounds/default_water_footstep.3.ogg and /dev/null differ diff --git a/games/default/files/default/sounds/default_wood_footstep.1.ogg b/games/default/files/default/sounds/default_wood_footstep.1.ogg deleted file mode 100644 index 34f63a17c..000000000 Binary files a/games/default/files/default/sounds/default_wood_footstep.1.ogg and /dev/null differ diff --git a/games/default/files/default/sounds/default_wood_footstep.2.ogg b/games/default/files/default/sounds/default_wood_footstep.2.ogg deleted file mode 100644 index 124fc297c..000000000 Binary files a/games/default/files/default/sounds/default_wood_footstep.2.ogg and /dev/null differ diff --git a/games/default/files/default/sounds/default_wool_footstep.ogg b/games/default/files/default/sounds/default_wool_footstep.ogg deleted file mode 100644 index 89df47f44..000000000 Binary files a/games/default/files/default/sounds/default_wool_footstep.ogg and /dev/null differ diff --git a/games/default/files/default/sounds/player_damage.1.ogg b/games/default/files/default/sounds/player_damage.1.ogg deleted file mode 100644 index ff1b18125..000000000 Binary files a/games/default/files/default/sounds/player_damage.1.ogg and /dev/null differ diff --git a/games/default/files/default/sounds/player_damage.2.ogg b/games/default/files/default/sounds/player_damage.2.ogg deleted file mode 100644 index 832d3c417..000000000 Binary files a/games/default/files/default/sounds/player_damage.2.ogg and /dev/null differ diff --git a/games/default/files/default/sounds/player_damage.3.ogg b/games/default/files/default/sounds/player_damage.3.ogg deleted file mode 100644 index 32069cce1..000000000 Binary files a/games/default/files/default/sounds/player_damage.3.ogg and /dev/null differ diff --git a/games/default/files/default/sounds/player_eat.1.ogg b/games/default/files/default/sounds/player_eat.1.ogg deleted file mode 100644 index 51a3a90e9..000000000 Binary files a/games/default/files/default/sounds/player_eat.1.ogg and /dev/null differ diff --git a/games/default/files/default/sounds/player_eat.2.ogg b/games/default/files/default/sounds/player_eat.2.ogg deleted file mode 100644 index 065ba06c1..000000000 Binary files a/games/default/files/default/sounds/player_eat.2.ogg and /dev/null differ diff --git a/games/default/files/default/sounds/player_punch.2.ogg b/games/default/files/default/sounds/player_punch.2.ogg deleted file mode 100644 index 788808710..000000000 Binary files a/games/default/files/default/sounds/player_punch.2.ogg and /dev/null differ diff --git a/games/default/files/default/textures/bubble.png b/games/default/files/default/textures/bubble.png deleted file mode 100644 index 9bd5d93c7..000000000 Binary files a/games/default/files/default/textures/bubble.png and /dev/null differ diff --git a/games/default/files/default/textures/close.png b/games/default/files/default/textures/close.png deleted file mode 100644 index df9173b06..000000000 Binary files a/games/default/files/default/textures/close.png and /dev/null differ diff --git a/games/default/files/default/textures/close_pressed.png b/games/default/files/default/textures/close_pressed.png deleted file mode 100644 index 3d2a73df0..000000000 Binary files a/games/default/files/default/textures/close_pressed.png and /dev/null differ diff --git a/games/default/files/default/textures/crack_anylength.png b/games/default/files/default/textures/crack_anylength.png deleted file mode 100644 index 374146915..000000000 Binary files a/games/default/files/default/textures/crack_anylength.png and /dev/null differ diff --git a/games/default/files/default/textures/creative_home_go.png b/games/default/files/default/textures/creative_home_go.png deleted file mode 100644 index 0ede58eb3..000000000 Binary files a/games/default/files/default/textures/creative_home_go.png and /dev/null differ diff --git a/games/default/files/default/textures/creative_home_set.png b/games/default/files/default/textures/creative_home_set.png deleted file mode 100644 index 1778c578e..000000000 Binary files a/games/default/files/default/textures/creative_home_set.png and /dev/null differ diff --git a/games/default/files/default/textures/crosshair.png b/games/default/files/default/textures/crosshair.png deleted file mode 100644 index 30b01b168..000000000 Binary files a/games/default/files/default/textures/crosshair.png and /dev/null differ diff --git a/games/default/files/default/textures/default_acacia_leaves.png b/games/default/files/default/textures/default_acacia_leaves.png deleted file mode 100644 index 134111c41..000000000 Binary files a/games/default/files/default/textures/default_acacia_leaves.png and /dev/null differ diff --git a/games/default/files/default/textures/default_acacia_sapling.png b/games/default/files/default/textures/default_acacia_sapling.png deleted file mode 100644 index 7e58ee0ba..000000000 Binary files a/games/default/files/default/textures/default_acacia_sapling.png and /dev/null differ diff --git a/games/default/files/default/textures/default_acacia_tree.png b/games/default/files/default/textures/default_acacia_tree.png deleted file mode 100644 index b8c901aca..000000000 Binary files a/games/default/files/default/textures/default_acacia_tree.png and /dev/null differ diff --git a/games/default/files/default/textures/default_acacia_tree_top.png b/games/default/files/default/textures/default_acacia_tree_top.png deleted file mode 100644 index 761bad8ad..000000000 Binary files a/games/default/files/default/textures/default_acacia_tree_top.png and /dev/null differ diff --git a/games/default/files/default/textures/default_acacia_wood.png b/games/default/files/default/textures/default_acacia_wood.png deleted file mode 100644 index 23cc94ec5..000000000 Binary files a/games/default/files/default/textures/default_acacia_wood.png and /dev/null differ diff --git a/games/default/files/default/textures/default_apple.png b/games/default/files/default/textures/default_apple.png deleted file mode 100644 index 94830e4f7..000000000 Binary files a/games/default/files/default/textures/default_apple.png and /dev/null differ diff --git a/games/default/files/default/textures/default_apple_gold.png b/games/default/files/default/textures/default_apple_gold.png deleted file mode 100644 index a7e647e24..000000000 Binary files a/games/default/files/default/textures/default_apple_gold.png and /dev/null differ diff --git a/games/default/files/default/textures/default_bedrock.png b/games/default/files/default/textures/default_bedrock.png deleted file mode 100644 index b9acf9ed2..000000000 Binary files a/games/default/files/default/textures/default_bedrock.png and /dev/null differ diff --git a/games/default/files/default/textures/default_birch_leaves.png b/games/default/files/default/textures/default_birch_leaves.png deleted file mode 100644 index f0e49cb82..000000000 Binary files a/games/default/files/default/textures/default_birch_leaves.png and /dev/null differ diff --git a/games/default/files/default/textures/default_birch_sapling.png b/games/default/files/default/textures/default_birch_sapling.png deleted file mode 100644 index 5e65e433a..000000000 Binary files a/games/default/files/default/textures/default_birch_sapling.png and /dev/null differ diff --git a/games/default/files/default/textures/default_birch_tree.png b/games/default/files/default/textures/default_birch_tree.png deleted file mode 100644 index 6854d594a..000000000 Binary files a/games/default/files/default/textures/default_birch_tree.png and /dev/null differ diff --git a/games/default/files/default/textures/default_birch_tree_top.png b/games/default/files/default/textures/default_birch_tree_top.png deleted file mode 100644 index 530d55df0..000000000 Binary files a/games/default/files/default/textures/default_birch_tree_top.png and /dev/null differ diff --git a/games/default/files/default/textures/default_birch_wood.png b/games/default/files/default/textures/default_birch_wood.png deleted file mode 100644 index 758a2cc39..000000000 Binary files a/games/default/files/default/textures/default_birch_wood.png and /dev/null differ diff --git a/games/default/files/default/textures/default_bone.png b/games/default/files/default/textures/default_bone.png deleted file mode 100644 index 23d74e887..000000000 Binary files a/games/default/files/default/textures/default_bone.png and /dev/null differ diff --git a/games/default/files/default/textures/default_book.png b/games/default/files/default/textures/default_book.png deleted file mode 100644 index fcaf4e9bf..000000000 Binary files a/games/default/files/default/textures/default_book.png and /dev/null differ diff --git a/games/default/files/default/textures/default_book_written.png b/games/default/files/default/textures/default_book_written.png deleted file mode 100644 index 51fd25633..000000000 Binary files a/games/default/files/default/textures/default_book_written.png and /dev/null differ diff --git a/games/default/files/default/textures/default_bookshelf.png b/games/default/files/default/textures/default_bookshelf.png deleted file mode 100644 index 3adc6b558..000000000 Binary files a/games/default/files/default/textures/default_bookshelf.png and /dev/null differ diff --git a/games/default/files/default/textures/default_brick.png b/games/default/files/default/textures/default_brick.png deleted file mode 100644 index ec431475a..000000000 Binary files a/games/default/files/default/textures/default_brick.png and /dev/null differ diff --git a/games/default/files/default/textures/default_cactus_bottom.png b/games/default/files/default/textures/default_cactus_bottom.png deleted file mode 100644 index 3fc0e5425..000000000 Binary files a/games/default/files/default/textures/default_cactus_bottom.png and /dev/null differ diff --git a/games/default/files/default/textures/default_cactus_side.png b/games/default/files/default/textures/default_cactus_side.png deleted file mode 100644 index 3fcc4d0d9..000000000 Binary files a/games/default/files/default/textures/default_cactus_side.png and /dev/null differ diff --git a/games/default/files/default/textures/default_cactus_top.png b/games/default/files/default/textures/default_cactus_top.png deleted file mode 100644 index 2421c9b24..000000000 Binary files a/games/default/files/default/textures/default_cactus_top.png and /dev/null differ diff --git a/games/default/files/default/textures/default_charcoal_lump.png b/games/default/files/default/textures/default_charcoal_lump.png deleted file mode 100644 index 18e8ca2c6..000000000 Binary files a/games/default/files/default/textures/default_charcoal_lump.png and /dev/null differ diff --git a/games/default/files/default/textures/default_chest_front.png b/games/default/files/default/textures/default_chest_front.png deleted file mode 100644 index b3497a4c6..000000000 Binary files a/games/default/files/default/textures/default_chest_front.png and /dev/null differ diff --git a/games/default/files/default/textures/default_chest_front_big.png b/games/default/files/default/textures/default_chest_front_big.png deleted file mode 100644 index c9f338b76..000000000 Binary files a/games/default/files/default/textures/default_chest_front_big.png and /dev/null differ diff --git a/games/default/files/default/textures/default_chest_side.png b/games/default/files/default/textures/default_chest_side.png deleted file mode 100644 index 0c4257167..000000000 Binary files a/games/default/files/default/textures/default_chest_side.png and /dev/null differ diff --git a/games/default/files/default/textures/default_chest_side_big.png b/games/default/files/default/textures/default_chest_side_big.png deleted file mode 100644 index 9e8c5546c..000000000 Binary files a/games/default/files/default/textures/default_chest_side_big.png and /dev/null differ diff --git a/games/default/files/default/textures/default_chest_top.png b/games/default/files/default/textures/default_chest_top.png deleted file mode 100644 index 8a0ebd923..000000000 Binary files a/games/default/files/default/textures/default_chest_top.png and /dev/null differ diff --git a/games/default/files/default/textures/default_chest_top_big.png b/games/default/files/default/textures/default_chest_top_big.png deleted file mode 100644 index 38977b7a4..000000000 Binary files a/games/default/files/default/textures/default_chest_top_big.png and /dev/null differ diff --git a/games/default/files/default/textures/default_clay.png b/games/default/files/default/textures/default_clay.png deleted file mode 100644 index 48dc84ed0..000000000 Binary files a/games/default/files/default/textures/default_clay.png and /dev/null differ diff --git a/games/default/files/default/textures/default_clay_brick.png b/games/default/files/default/textures/default_clay_brick.png deleted file mode 100644 index 50b9d279a..000000000 Binary files a/games/default/files/default/textures/default_clay_brick.png and /dev/null differ diff --git a/games/default/files/default/textures/default_clay_lump.png b/games/default/files/default/textures/default_clay_lump.png deleted file mode 100644 index c46b93c69..000000000 Binary files a/games/default/files/default/textures/default_clay_lump.png and /dev/null differ diff --git a/games/default/files/default/textures/default_coal_block.png b/games/default/files/default/textures/default_coal_block.png deleted file mode 100644 index c4666e5c5..000000000 Binary files a/games/default/files/default/textures/default_coal_block.png and /dev/null differ diff --git a/games/default/files/default/textures/default_coal_lump.png b/games/default/files/default/textures/default_coal_lump.png deleted file mode 100644 index 4f5530c15..000000000 Binary files a/games/default/files/default/textures/default_coal_lump.png and /dev/null differ diff --git a/games/default/files/default/textures/default_cobble.png b/games/default/files/default/textures/default_cobble.png deleted file mode 100644 index dd5f5ace6..000000000 Binary files a/games/default/files/default/textures/default_cobble.png and /dev/null differ diff --git a/games/default/files/default/textures/default_diamond.png b/games/default/files/default/textures/default_diamond.png deleted file mode 100644 index 52294547c..000000000 Binary files a/games/default/files/default/textures/default_diamond.png and /dev/null differ diff --git a/games/default/files/default/textures/default_diamond_block.png b/games/default/files/default/textures/default_diamond_block.png deleted file mode 100644 index 0d4d32a5a..000000000 Binary files a/games/default/files/default/textures/default_diamond_block.png and /dev/null differ diff --git a/games/default/files/default/textures/default_dirt.png b/games/default/files/default/textures/default_dirt.png deleted file mode 100644 index 44cc0d29b..000000000 Binary files a/games/default/files/default/textures/default_dirt.png and /dev/null differ diff --git a/games/default/files/default/textures/default_dry_grass.png b/games/default/files/default/textures/default_dry_grass.png deleted file mode 100644 index e59603911..000000000 Binary files a/games/default/files/default/textures/default_dry_grass.png and /dev/null differ diff --git a/games/default/files/default/textures/default_dry_grass_side.png b/games/default/files/default/textures/default_dry_grass_side.png deleted file mode 100644 index 2cf619a86..000000000 Binary files a/games/default/files/default/textures/default_dry_grass_side.png and /dev/null differ diff --git a/games/default/files/default/textures/default_dry_shrub.png b/games/default/files/default/textures/default_dry_shrub.png deleted file mode 100644 index 10aa8b4c3..000000000 Binary files a/games/default/files/default/textures/default_dry_shrub.png and /dev/null differ diff --git a/games/default/files/default/textures/default_dry_tallgrass.png b/games/default/files/default/textures/default_dry_tallgrass.png deleted file mode 100644 index 8ea12750b..000000000 Binary files a/games/default/files/default/textures/default_dry_tallgrass.png and /dev/null differ diff --git a/games/default/files/default/textures/default_emerald.png b/games/default/files/default/textures/default_emerald.png deleted file mode 100644 index 3e84bb145..000000000 Binary files a/games/default/files/default/textures/default_emerald.png and /dev/null differ diff --git a/games/default/files/default/textures/default_emerald_block.png b/games/default/files/default/textures/default_emerald_block.png deleted file mode 100644 index 9a71c9312..000000000 Binary files a/games/default/files/default/textures/default_emerald_block.png and /dev/null differ diff --git a/games/default/files/default/textures/default_fish.png b/games/default/files/default/textures/default_fish.png deleted file mode 100644 index 2c4e38fa8..000000000 Binary files a/games/default/files/default/textures/default_fish.png and /dev/null differ diff --git a/games/default/files/default/textures/default_fish_cooked.png b/games/default/files/default/textures/default_fish_cooked.png deleted file mode 100644 index e4e53de86..000000000 Binary files a/games/default/files/default/textures/default_fish_cooked.png and /dev/null differ diff --git a/games/default/files/default/textures/default_flint.png b/games/default/files/default/textures/default_flint.png deleted file mode 100644 index 904886842..000000000 Binary files a/games/default/files/default/textures/default_flint.png and /dev/null differ diff --git a/games/default/files/default/textures/default_furnace_fire_bg.png b/games/default/files/default/textures/default_furnace_fire_bg.png deleted file mode 100644 index a9a6f04da..000000000 Binary files a/games/default/files/default/textures/default_furnace_fire_bg.png and /dev/null differ diff --git a/games/default/files/default/textures/default_furnace_fire_fg.png b/games/default/files/default/textures/default_furnace_fire_fg.png deleted file mode 100644 index 050890134..000000000 Binary files a/games/default/files/default/textures/default_furnace_fire_fg.png and /dev/null differ diff --git a/games/default/files/default/textures/default_furnace_front.png b/games/default/files/default/textures/default_furnace_front.png deleted file mode 100644 index 83714fb9f..000000000 Binary files a/games/default/files/default/textures/default_furnace_front.png and /dev/null differ diff --git a/games/default/files/default/textures/default_furnace_front_active.png b/games/default/files/default/textures/default_furnace_front_active.png deleted file mode 100644 index 1b0423c55..000000000 Binary files a/games/default/files/default/textures/default_furnace_front_active.png and /dev/null differ diff --git a/games/default/files/default/textures/default_furnace_side.png b/games/default/files/default/textures/default_furnace_side.png deleted file mode 100644 index 215a94b53..000000000 Binary files a/games/default/files/default/textures/default_furnace_side.png and /dev/null differ diff --git a/games/default/files/default/textures/default_furnace_top.png b/games/default/files/default/textures/default_furnace_top.png deleted file mode 100644 index 4d05d05b9..000000000 Binary files a/games/default/files/default/textures/default_furnace_top.png and /dev/null differ diff --git a/games/default/files/default/textures/default_glass.png b/games/default/files/default/textures/default_glass.png deleted file mode 100644 index ccf8cd80d..000000000 Binary files a/games/default/files/default/textures/default_glass.png and /dev/null differ diff --git a/games/default/files/default/textures/default_glass_detail.png b/games/default/files/default/textures/default_glass_detail.png deleted file mode 100644 index a72d5e969..000000000 Binary files a/games/default/files/default/textures/default_glass_detail.png and /dev/null differ diff --git a/games/default/files/default/textures/default_glowstone.png b/games/default/files/default/textures/default_glowstone.png deleted file mode 100644 index 30a237204..000000000 Binary files a/games/default/files/default/textures/default_glowstone.png and /dev/null differ diff --git a/games/default/files/default/textures/default_glowstone_dust.png b/games/default/files/default/textures/default_glowstone_dust.png deleted file mode 100644 index c065232ad..000000000 Binary files a/games/default/files/default/textures/default_glowstone_dust.png and /dev/null differ diff --git a/games/default/files/default/textures/default_gold_block.png b/games/default/files/default/textures/default_gold_block.png deleted file mode 100644 index 12421e718..000000000 Binary files a/games/default/files/default/textures/default_gold_block.png and /dev/null differ diff --git a/games/default/files/default/textures/default_gold_ingot.png b/games/default/files/default/textures/default_gold_ingot.png deleted file mode 100644 index 0fbd0e6b3..000000000 Binary files a/games/default/files/default/textures/default_gold_ingot.png and /dev/null differ diff --git a/games/default/files/default/textures/default_grass.png b/games/default/files/default/textures/default_grass.png deleted file mode 100644 index 71e7cdcf3..000000000 Binary files a/games/default/files/default/textures/default_grass.png and /dev/null differ diff --git a/games/default/files/default/textures/default_grass_side.png b/games/default/files/default/textures/default_grass_side.png deleted file mode 100644 index 5ca3e9a1a..000000000 Binary files a/games/default/files/default/textures/default_grass_side.png and /dev/null differ diff --git a/games/default/files/default/textures/default_gravel.png b/games/default/files/default/textures/default_gravel.png deleted file mode 100644 index a6b578d58..000000000 Binary files a/games/default/files/default/textures/default_gravel.png and /dev/null differ diff --git a/games/default/files/default/textures/default_gunpowder.png b/games/default/files/default/textures/default_gunpowder.png deleted file mode 100644 index f79a3e348..000000000 Binary files a/games/default/files/default/textures/default_gunpowder.png and /dev/null differ diff --git a/games/default/files/default/textures/default_hardened_clay.png b/games/default/files/default/textures/default_hardened_clay.png deleted file mode 100644 index 754ab61b9..000000000 Binary files a/games/default/files/default/textures/default_hardened_clay.png and /dev/null differ diff --git a/games/default/files/default/textures/default_ice.png b/games/default/files/default/textures/default_ice.png deleted file mode 100644 index d47fe42cd..000000000 Binary files a/games/default/files/default/textures/default_ice.png and /dev/null differ diff --git a/games/default/files/default/textures/default_ice_packed.png b/games/default/files/default/textures/default_ice_packed.png deleted file mode 100644 index 7835d5b72..000000000 Binary files a/games/default/files/default/textures/default_ice_packed.png and /dev/null differ diff --git a/games/default/files/default/textures/default_junglegrass.png b/games/default/files/default/textures/default_junglegrass.png deleted file mode 100644 index f34d1c12a..000000000 Binary files a/games/default/files/default/textures/default_junglegrass.png and /dev/null differ diff --git a/games/default/files/default/textures/default_jungleleaves.png b/games/default/files/default/textures/default_jungleleaves.png deleted file mode 100644 index e5c379194..000000000 Binary files a/games/default/files/default/textures/default_jungleleaves.png and /dev/null differ diff --git a/games/default/files/default/textures/default_junglesapling.png b/games/default/files/default/textures/default_junglesapling.png deleted file mode 100644 index 1805d1b36..000000000 Binary files a/games/default/files/default/textures/default_junglesapling.png and /dev/null differ diff --git a/games/default/files/default/textures/default_jungletree.png b/games/default/files/default/textures/default_jungletree.png deleted file mode 100644 index 81731a15e..000000000 Binary files a/games/default/files/default/textures/default_jungletree.png and /dev/null differ diff --git a/games/default/files/default/textures/default_jungletree_top.png b/games/default/files/default/textures/default_jungletree_top.png deleted file mode 100644 index f0bba9b6f..000000000 Binary files a/games/default/files/default/textures/default_jungletree_top.png and /dev/null differ diff --git a/games/default/files/default/textures/default_junglewood.png b/games/default/files/default/textures/default_junglewood.png deleted file mode 100644 index c328d7a54..000000000 Binary files a/games/default/files/default/textures/default_junglewood.png and /dev/null differ diff --git a/games/default/files/default/textures/default_ladder_wood.png b/games/default/files/default/textures/default_ladder_wood.png deleted file mode 100644 index 6a39cd899..000000000 Binary files a/games/default/files/default/textures/default_ladder_wood.png and /dev/null differ diff --git a/games/default/files/default/textures/default_lapis_block.png b/games/default/files/default/textures/default_lapis_block.png deleted file mode 100644 index 04a6b7f9c..000000000 Binary files a/games/default/files/default/textures/default_lapis_block.png and /dev/null differ diff --git a/games/default/files/default/textures/default_lava.png b/games/default/files/default/textures/default_lava.png deleted file mode 100644 index c244b7b32..000000000 Binary files a/games/default/files/default/textures/default_lava.png and /dev/null differ diff --git a/games/default/files/default/textures/default_lava_flowing_animated.png b/games/default/files/default/textures/default_lava_flowing_animated.png deleted file mode 100644 index 71666685d..000000000 Binary files a/games/default/files/default/textures/default_lava_flowing_animated.png and /dev/null differ diff --git a/games/default/files/default/textures/default_lava_source_animated.png b/games/default/files/default/textures/default_lava_source_animated.png deleted file mode 100644 index 06fc42e61..000000000 Binary files a/games/default/files/default/textures/default_lava_source_animated.png and /dev/null differ diff --git a/games/default/files/default/textures/default_leaves.png b/games/default/files/default/textures/default_leaves.png deleted file mode 100644 index 3a1105433..000000000 Binary files a/games/default/files/default/textures/default_leaves.png and /dev/null differ diff --git a/games/default/files/default/textures/default_mineral_bluestone.png b/games/default/files/default/textures/default_mineral_bluestone.png deleted file mode 100644 index 8feb47021..000000000 Binary files a/games/default/files/default/textures/default_mineral_bluestone.png and /dev/null differ diff --git a/games/default/files/default/textures/default_mineral_coal.png b/games/default/files/default/textures/default_mineral_coal.png deleted file mode 100644 index 8fc31a8ac..000000000 Binary files a/games/default/files/default/textures/default_mineral_coal.png and /dev/null differ diff --git a/games/default/files/default/textures/default_mineral_diamond.png b/games/default/files/default/textures/default_mineral_diamond.png deleted file mode 100644 index 9f192e1b5..000000000 Binary files a/games/default/files/default/textures/default_mineral_diamond.png and /dev/null differ diff --git a/games/default/files/default/textures/default_mineral_emerald.png b/games/default/files/default/textures/default_mineral_emerald.png deleted file mode 100644 index 7147aa01e..000000000 Binary files a/games/default/files/default/textures/default_mineral_emerald.png and /dev/null differ diff --git a/games/default/files/default/textures/default_mineral_gold.png b/games/default/files/default/textures/default_mineral_gold.png deleted file mode 100644 index 87321a686..000000000 Binary files a/games/default/files/default/textures/default_mineral_gold.png and /dev/null differ diff --git a/games/default/files/default/textures/default_mineral_iron.png b/games/default/files/default/textures/default_mineral_iron.png deleted file mode 100644 index b529b8da3..000000000 Binary files a/games/default/files/default/textures/default_mineral_iron.png and /dev/null differ diff --git a/games/default/files/default/textures/default_mineral_lapis.png b/games/default/files/default/textures/default_mineral_lapis.png deleted file mode 100644 index 499d5c54f..000000000 Binary files a/games/default/files/default/textures/default_mineral_lapis.png and /dev/null differ diff --git a/games/default/files/default/textures/default_mossycobble.png b/games/default/files/default/textures/default_mossycobble.png deleted file mode 100644 index 51f0fa6dd..000000000 Binary files a/games/default/files/default/textures/default_mossycobble.png and /dev/null differ diff --git a/games/default/files/default/textures/default_obsidian.png b/games/default/files/default/textures/default_obsidian.png deleted file mode 100644 index e34ecb7e6..000000000 Binary files a/games/default/files/default/textures/default_obsidian.png and /dev/null differ diff --git a/games/default/files/default/textures/default_paper.png b/games/default/files/default/textures/default_paper.png deleted file mode 100644 index 818615cf5..000000000 Binary files a/games/default/files/default/textures/default_paper.png and /dev/null differ diff --git a/games/default/files/default/textures/default_pine_needles.png b/games/default/files/default/textures/default_pine_needles.png deleted file mode 100644 index bab92f60b..000000000 Binary files a/games/default/files/default/textures/default_pine_needles.png and /dev/null differ diff --git a/games/default/files/default/textures/default_pine_sapling.png b/games/default/files/default/textures/default_pine_sapling.png deleted file mode 100644 index d0c7f015b..000000000 Binary files a/games/default/files/default/textures/default_pine_sapling.png and /dev/null differ diff --git a/games/default/files/default/textures/default_pine_tree.png b/games/default/files/default/textures/default_pine_tree.png deleted file mode 100644 index 002679cc4..000000000 Binary files a/games/default/files/default/textures/default_pine_tree.png and /dev/null differ diff --git a/games/default/files/default/textures/default_pine_tree_top.png b/games/default/files/default/textures/default_pine_tree_top.png deleted file mode 100644 index 4a1830bde..000000000 Binary files a/games/default/files/default/textures/default_pine_tree_top.png and /dev/null differ diff --git a/games/default/files/default/textures/default_pine_wood.png b/games/default/files/default/textures/default_pine_wood.png deleted file mode 100644 index 29daeaa2d..000000000 Binary files a/games/default/files/default/textures/default_pine_wood.png and /dev/null differ diff --git a/games/default/files/default/textures/default_player2d.png b/games/default/files/default/textures/default_player2d.png deleted file mode 100644 index b6dab9d7e..000000000 Binary files a/games/default/files/default/textures/default_player2d.png and /dev/null differ diff --git a/games/default/files/default/textures/default_quartz_block_bottom.png b/games/default/files/default/textures/default_quartz_block_bottom.png deleted file mode 100644 index 73431ada5..000000000 Binary files a/games/default/files/default/textures/default_quartz_block_bottom.png and /dev/null differ diff --git a/games/default/files/default/textures/default_quartz_block_side.png b/games/default/files/default/textures/default_quartz_block_side.png deleted file mode 100644 index 839866629..000000000 Binary files a/games/default/files/default/textures/default_quartz_block_side.png and /dev/null differ diff --git a/games/default/files/default/textures/default_quartz_block_top.png b/games/default/files/default/textures/default_quartz_block_top.png deleted file mode 100644 index 839866629..000000000 Binary files a/games/default/files/default/textures/default_quartz_block_top.png and /dev/null differ diff --git a/games/default/files/default/textures/default_quartz_chiseled_side.png b/games/default/files/default/textures/default_quartz_chiseled_side.png deleted file mode 100644 index 41dba8a99..000000000 Binary files a/games/default/files/default/textures/default_quartz_chiseled_side.png and /dev/null differ diff --git a/games/default/files/default/textures/default_quartz_chiseled_top.png b/games/default/files/default/textures/default_quartz_chiseled_top.png deleted file mode 100644 index 3ffb8629f..000000000 Binary files a/games/default/files/default/textures/default_quartz_chiseled_top.png and /dev/null differ diff --git a/games/default/files/default/textures/default_quartz_crystal.png b/games/default/files/default/textures/default_quartz_crystal.png deleted file mode 100644 index b842d0e9b..000000000 Binary files a/games/default/files/default/textures/default_quartz_crystal.png and /dev/null differ diff --git a/games/default/files/default/textures/default_quartz_ore.png b/games/default/files/default/textures/default_quartz_ore.png deleted file mode 100644 index 5c8665272..000000000 Binary files a/games/default/files/default/textures/default_quartz_ore.png and /dev/null differ diff --git a/games/default/files/default/textures/default_quartz_pillar_side.png b/games/default/files/default/textures/default_quartz_pillar_side.png deleted file mode 100644 index 13a7954f2..000000000 Binary files a/games/default/files/default/textures/default_quartz_pillar_side.png and /dev/null differ diff --git a/games/default/files/default/textures/default_quartz_pillar_top.png b/games/default/files/default/textures/default_quartz_pillar_top.png deleted file mode 100644 index 6100047a1..000000000 Binary files a/games/default/files/default/textures/default_quartz_pillar_top.png and /dev/null differ diff --git a/games/default/files/default/textures/default_red_sand.png b/games/default/files/default/textures/default_red_sand.png deleted file mode 100644 index 154d7094b..000000000 Binary files a/games/default/files/default/textures/default_red_sand.png and /dev/null differ diff --git a/games/default/files/default/textures/default_redsandstone_bottom.png b/games/default/files/default/textures/default_redsandstone_bottom.png deleted file mode 100644 index abaad1342..000000000 Binary files a/games/default/files/default/textures/default_redsandstone_bottom.png and /dev/null differ diff --git a/games/default/files/default/textures/default_redsandstone_carved.png b/games/default/files/default/textures/default_redsandstone_carved.png deleted file mode 100644 index c5172e96a..000000000 Binary files a/games/default/files/default/textures/default_redsandstone_carved.png and /dev/null differ diff --git a/games/default/files/default/textures/default_redsandstone_normal.png b/games/default/files/default/textures/default_redsandstone_normal.png deleted file mode 100644 index 35f97e433..000000000 Binary files a/games/default/files/default/textures/default_redsandstone_normal.png and /dev/null differ diff --git a/games/default/files/default/textures/default_redsandstone_smooth.png b/games/default/files/default/textures/default_redsandstone_smooth.png deleted file mode 100644 index bbd91ee11..000000000 Binary files a/games/default/files/default/textures/default_redsandstone_smooth.png and /dev/null differ diff --git a/games/default/files/default/textures/default_redsandstone_top.png b/games/default/files/default/textures/default_redsandstone_top.png deleted file mode 100644 index ec7c4d05f..000000000 Binary files a/games/default/files/default/textures/default_redsandstone_top.png and /dev/null differ diff --git a/games/default/files/default/textures/default_river_water.png b/games/default/files/default/textures/default_river_water.png deleted file mode 100644 index 5a753eecc..000000000 Binary files a/games/default/files/default/textures/default_river_water.png and /dev/null differ diff --git a/games/default/files/default/textures/default_river_water_flowing_animated.png b/games/default/files/default/textures/default_river_water_flowing_animated.png deleted file mode 100644 index 688eab576..000000000 Binary files a/games/default/files/default/textures/default_river_water_flowing_animated.png and /dev/null differ diff --git a/games/default/files/default/textures/default_river_water_source_animated.png b/games/default/files/default/textures/default_river_water_source_animated.png deleted file mode 100644 index 006b40b94..000000000 Binary files a/games/default/files/default/textures/default_river_water_source_animated.png and /dev/null differ diff --git a/games/default/files/default/textures/default_sand.png b/games/default/files/default/textures/default_sand.png deleted file mode 100644 index 2b586e4ac..000000000 Binary files a/games/default/files/default/textures/default_sand.png and /dev/null differ diff --git a/games/default/files/default/textures/default_sandstone_bottom.png b/games/default/files/default/textures/default_sandstone_bottom.png deleted file mode 100644 index f27da02e9..000000000 Binary files a/games/default/files/default/textures/default_sandstone_bottom.png and /dev/null differ diff --git a/games/default/files/default/textures/default_sandstone_normal.png b/games/default/files/default/textures/default_sandstone_normal.png deleted file mode 100644 index 2d6247bd0..000000000 Binary files a/games/default/files/default/textures/default_sandstone_normal.png and /dev/null differ diff --git a/games/default/files/default/textures/default_sandstone_smooth.png b/games/default/files/default/textures/default_sandstone_smooth.png deleted file mode 100644 index f71220bf0..000000000 Binary files a/games/default/files/default/textures/default_sandstone_smooth.png and /dev/null differ diff --git a/games/default/files/default/textures/default_sandstone_top.png b/games/default/files/default/textures/default_sandstone_top.png deleted file mode 100644 index ad73fe479..000000000 Binary files a/games/default/files/default/textures/default_sandstone_top.png and /dev/null differ diff --git a/games/default/files/default/textures/default_sapling.png b/games/default/files/default/textures/default_sapling.png deleted file mode 100644 index c47dd91c5..000000000 Binary files a/games/default/files/default/textures/default_sapling.png and /dev/null differ diff --git a/games/default/files/default/textures/default_slimeblock.png b/games/default/files/default/textures/default_slimeblock.png deleted file mode 100644 index f4f2567f2..000000000 Binary files a/games/default/files/default/textures/default_slimeblock.png and /dev/null differ diff --git a/games/default/files/default/textures/default_snow.png b/games/default/files/default/textures/default_snow.png deleted file mode 100644 index 688d6a742..000000000 Binary files a/games/default/files/default/textures/default_snow.png and /dev/null differ diff --git a/games/default/files/default/textures/default_snow_side.png b/games/default/files/default/textures/default_snow_side.png deleted file mode 100644 index 3dd2c3c6e..000000000 Binary files a/games/default/files/default/textures/default_snow_side.png and /dev/null differ diff --git a/games/default/files/default/textures/default_snowball.png b/games/default/files/default/textures/default_snowball.png deleted file mode 100644 index 18fde4a4f..000000000 Binary files a/games/default/files/default/textures/default_snowball.png and /dev/null differ diff --git a/games/default/files/default/textures/default_steel_block.png b/games/default/files/default/textures/default_steel_block.png deleted file mode 100644 index e74233998..000000000 Binary files a/games/default/files/default/textures/default_steel_block.png and /dev/null differ diff --git a/games/default/files/default/textures/default_steel_ingot.png b/games/default/files/default/textures/default_steel_ingot.png deleted file mode 100644 index f47b6e1cd..000000000 Binary files a/games/default/files/default/textures/default_steel_ingot.png and /dev/null differ diff --git a/games/default/files/default/textures/default_stick.png b/games/default/files/default/textures/default_stick.png deleted file mode 100644 index 6f38ea54d..000000000 Binary files a/games/default/files/default/textures/default_stick.png and /dev/null differ diff --git a/games/default/files/default/textures/default_stone.png b/games/default/files/default/textures/default_stone.png deleted file mode 100644 index e8f7f86ea..000000000 Binary files a/games/default/files/default/textures/default_stone.png and /dev/null differ diff --git a/games/default/files/default/textures/default_stone_brick.png b/games/default/files/default/textures/default_stone_brick.png deleted file mode 100644 index 1536973f6..000000000 Binary files a/games/default/files/default/textures/default_stone_brick.png and /dev/null differ diff --git a/games/default/files/default/textures/default_stonebrick_carved.png b/games/default/files/default/textures/default_stonebrick_carved.png deleted file mode 100644 index 5eed2c73d..000000000 Binary files a/games/default/files/default/textures/default_stonebrick_carved.png and /dev/null differ diff --git a/games/default/files/default/textures/default_stonebrick_cracked.png b/games/default/files/default/textures/default_stonebrick_cracked.png deleted file mode 100644 index d24200941..000000000 Binary files a/games/default/files/default/textures/default_stonebrick_cracked.png and /dev/null differ diff --git a/games/default/files/default/textures/default_stonebrick_mossy.png b/games/default/files/default/textures/default_stonebrick_mossy.png deleted file mode 100644 index 325562b19..000000000 Binary files a/games/default/files/default/textures/default_stonebrick_mossy.png and /dev/null differ diff --git a/games/default/files/default/textures/default_sugar.png b/games/default/files/default/textures/default_sugar.png deleted file mode 100644 index 31ec68cee..000000000 Binary files a/games/default/files/default/textures/default_sugar.png and /dev/null differ diff --git a/games/default/files/default/textures/default_sugarcane.png b/games/default/files/default/textures/default_sugarcane.png deleted file mode 100644 index d672ce486..000000000 Binary files a/games/default/files/default/textures/default_sugarcane.png and /dev/null differ diff --git a/games/default/files/default/textures/default_sugarcane_inv.png b/games/default/files/default/textures/default_sugarcane_inv.png deleted file mode 100644 index 482af53a2..000000000 Binary files a/games/default/files/default/textures/default_sugarcane_inv.png and /dev/null differ diff --git a/games/default/files/default/textures/default_tallgrass.png b/games/default/files/default/textures/default_tallgrass.png deleted file mode 100644 index b1d822d3f..000000000 Binary files a/games/default/files/default/textures/default_tallgrass.png and /dev/null differ diff --git a/games/default/files/default/textures/default_tool_diamondaxe.png b/games/default/files/default/textures/default_tool_diamondaxe.png deleted file mode 100644 index 5fff47526..000000000 Binary files a/games/default/files/default/textures/default_tool_diamondaxe.png and /dev/null differ diff --git a/games/default/files/default/textures/default_tool_diamondpick.png b/games/default/files/default/textures/default_tool_diamondpick.png deleted file mode 100644 index 7c92ba4bb..000000000 Binary files a/games/default/files/default/textures/default_tool_diamondpick.png and /dev/null differ diff --git a/games/default/files/default/textures/default_tool_diamondshovel.png b/games/default/files/default/textures/default_tool_diamondshovel.png deleted file mode 100644 index c5456c751..000000000 Binary files a/games/default/files/default/textures/default_tool_diamondshovel.png and /dev/null differ diff --git a/games/default/files/default/textures/default_tool_diamondsword.png b/games/default/files/default/textures/default_tool_diamondsword.png deleted file mode 100644 index 02209bdcf..000000000 Binary files a/games/default/files/default/textures/default_tool_diamondsword.png and /dev/null differ diff --git a/games/default/files/default/textures/default_tool_fishing_pole.png b/games/default/files/default/textures/default_tool_fishing_pole.png deleted file mode 100644 index 7408d70af..000000000 Binary files a/games/default/files/default/textures/default_tool_fishing_pole.png and /dev/null differ diff --git a/games/default/files/default/textures/default_tool_goldaxe.png b/games/default/files/default/textures/default_tool_goldaxe.png deleted file mode 100644 index a36e0f1cf..000000000 Binary files a/games/default/files/default/textures/default_tool_goldaxe.png and /dev/null differ diff --git a/games/default/files/default/textures/default_tool_goldpick.png b/games/default/files/default/textures/default_tool_goldpick.png deleted file mode 100644 index 97cf9aa6b..000000000 Binary files a/games/default/files/default/textures/default_tool_goldpick.png and /dev/null differ diff --git a/games/default/files/default/textures/default_tool_goldshovel.png b/games/default/files/default/textures/default_tool_goldshovel.png deleted file mode 100644 index 081e1bb62..000000000 Binary files a/games/default/files/default/textures/default_tool_goldshovel.png and /dev/null differ diff --git a/games/default/files/default/textures/default_tool_goldsword.png b/games/default/files/default/textures/default_tool_goldsword.png deleted file mode 100644 index 2c175fde2..000000000 Binary files a/games/default/files/default/textures/default_tool_goldsword.png and /dev/null differ diff --git a/games/default/files/default/textures/default_tool_steelaxe.png b/games/default/files/default/textures/default_tool_steelaxe.png deleted file mode 100644 index 1687351be..000000000 Binary files a/games/default/files/default/textures/default_tool_steelaxe.png and /dev/null differ diff --git a/games/default/files/default/textures/default_tool_steelpick.png b/games/default/files/default/textures/default_tool_steelpick.png deleted file mode 100644 index 13dc72858..000000000 Binary files a/games/default/files/default/textures/default_tool_steelpick.png and /dev/null differ diff --git a/games/default/files/default/textures/default_tool_steelshovel.png b/games/default/files/default/textures/default_tool_steelshovel.png deleted file mode 100644 index eee1761ff..000000000 Binary files a/games/default/files/default/textures/default_tool_steelshovel.png and /dev/null differ diff --git a/games/default/files/default/textures/default_tool_steelsword.png b/games/default/files/default/textures/default_tool_steelsword.png deleted file mode 100644 index 34b5ed2f2..000000000 Binary files a/games/default/files/default/textures/default_tool_steelsword.png and /dev/null differ diff --git a/games/default/files/default/textures/default_tool_stoneaxe.png b/games/default/files/default/textures/default_tool_stoneaxe.png deleted file mode 100644 index b4451369a..000000000 Binary files a/games/default/files/default/textures/default_tool_stoneaxe.png and /dev/null differ diff --git a/games/default/files/default/textures/default_tool_stonepick.png b/games/default/files/default/textures/default_tool_stonepick.png deleted file mode 100644 index b67e1021c..000000000 Binary files a/games/default/files/default/textures/default_tool_stonepick.png and /dev/null differ diff --git a/games/default/files/default/textures/default_tool_stoneshovel.png b/games/default/files/default/textures/default_tool_stoneshovel.png deleted file mode 100644 index efece0aeb..000000000 Binary files a/games/default/files/default/textures/default_tool_stoneshovel.png and /dev/null differ diff --git a/games/default/files/default/textures/default_tool_stonesword.png b/games/default/files/default/textures/default_tool_stonesword.png deleted file mode 100644 index 5c2d6a3db..000000000 Binary files a/games/default/files/default/textures/default_tool_stonesword.png and /dev/null differ diff --git a/games/default/files/default/textures/default_tool_woodaxe.png b/games/default/files/default/textures/default_tool_woodaxe.png deleted file mode 100644 index b82b358b1..000000000 Binary files a/games/default/files/default/textures/default_tool_woodaxe.png and /dev/null differ diff --git a/games/default/files/default/textures/default_tool_woodpick.png b/games/default/files/default/textures/default_tool_woodpick.png deleted file mode 100644 index 1185f96a7..000000000 Binary files a/games/default/files/default/textures/default_tool_woodpick.png and /dev/null differ diff --git a/games/default/files/default/textures/default_tool_woodshovel.png b/games/default/files/default/textures/default_tool_woodshovel.png deleted file mode 100644 index 86c470493..000000000 Binary files a/games/default/files/default/textures/default_tool_woodshovel.png and /dev/null differ diff --git a/games/default/files/default/textures/default_tool_woodsword.png b/games/default/files/default/textures/default_tool_woodsword.png deleted file mode 100644 index e0666ebde..000000000 Binary files a/games/default/files/default/textures/default_tool_woodsword.png and /dev/null differ diff --git a/games/default/files/default/textures/default_torch.png b/games/default/files/default/textures/default_torch.png deleted file mode 100644 index b079de508..000000000 Binary files a/games/default/files/default/textures/default_torch.png and /dev/null differ diff --git a/games/default/files/default/textures/default_tree.png b/games/default/files/default/textures/default_tree.png deleted file mode 100644 index 6b15a676e..000000000 Binary files a/games/default/files/default/textures/default_tree.png and /dev/null differ diff --git a/games/default/files/default/textures/default_tree_top.png b/games/default/files/default/textures/default_tree_top.png deleted file mode 100644 index 087bfdaad..000000000 Binary files a/games/default/files/default/textures/default_tree_top.png and /dev/null differ diff --git a/games/default/files/default/textures/default_vine.png b/games/default/files/default/textures/default_vine.png deleted file mode 100644 index f78a49d29..000000000 Binary files a/games/default/files/default/textures/default_vine.png and /dev/null differ diff --git a/games/default/files/default/textures/default_water.png b/games/default/files/default/textures/default_water.png deleted file mode 100644 index f812fc963..000000000 Binary files a/games/default/files/default/textures/default_water.png and /dev/null differ diff --git a/games/default/files/default/textures/default_water_flowing_animated.png b/games/default/files/default/textures/default_water_flowing_animated.png deleted file mode 100644 index b990446de..000000000 Binary files a/games/default/files/default/textures/default_water_flowing_animated.png and /dev/null differ diff --git a/games/default/files/default/textures/default_water_source_animated.png b/games/default/files/default/textures/default_water_source_animated.png deleted file mode 100644 index d2670b737..000000000 Binary files a/games/default/files/default/textures/default_water_source_animated.png and /dev/null differ diff --git a/games/default/files/default/textures/default_wood.png b/games/default/files/default/textures/default_wood.png deleted file mode 100644 index efaa0cda0..000000000 Binary files a/games/default/files/default/textures/default_wood.png and /dev/null differ diff --git a/games/default/files/default/textures/default_wood_fence.png b/games/default/files/default/textures/default_wood_fence.png deleted file mode 100644 index 77b559880..000000000 Binary files a/games/default/files/default/textures/default_wood_fence.png and /dev/null differ diff --git a/games/default/files/default/textures/default_wood_fencegate.png b/games/default/files/default/textures/default_wood_fencegate.png deleted file mode 100644 index 193ecb3b7..000000000 Binary files a/games/default/files/default/textures/default_wood_fencegate.png and /dev/null differ diff --git a/games/default/files/default/textures/fire_basic_flame.png b/games/default/files/default/textures/fire_basic_flame.png deleted file mode 100644 index 799f40ba8..000000000 Binary files a/games/default/files/default/textures/fire_basic_flame.png and /dev/null differ diff --git a/games/default/files/default/textures/formspec_chest.png b/games/default/files/default/textures/formspec_chest.png deleted file mode 100644 index 5ed452eb1..000000000 Binary files a/games/default/files/default/textures/formspec_chest.png and /dev/null differ diff --git a/games/default/files/default/textures/formspec_chest_large.png b/games/default/files/default/textures/formspec_chest_large.png deleted file mode 100644 index 49e4723e3..000000000 Binary files a/games/default/files/default/textures/formspec_chest_large.png and /dev/null differ diff --git a/games/default/files/default/textures/formspec_furnace.png b/games/default/files/default/textures/formspec_furnace.png deleted file mode 100644 index 74c9a1c9f..000000000 Binary files a/games/default/files/default/textures/formspec_furnace.png and /dev/null differ diff --git a/games/default/files/default/textures/formspec_inventory.png b/games/default/files/default/textures/formspec_inventory.png deleted file mode 100644 index 823a7fbd7..000000000 Binary files a/games/default/files/default/textures/formspec_inventory.png and /dev/null differ diff --git a/games/default/files/default/textures/heart.png b/games/default/files/default/textures/heart.png deleted file mode 100644 index bc2659d4a..000000000 Binary files a/games/default/files/default/textures/heart.png and /dev/null differ diff --git a/games/default/files/default/textures/heart_bg.png b/games/default/files/default/textures/heart_bg.png deleted file mode 100644 index 564d0ca4f..000000000 Binary files a/games/default/files/default/textures/heart_bg.png and /dev/null differ diff --git a/games/default/files/default/textures/item_smoke.png b/games/default/files/default/textures/item_smoke.png deleted file mode 100644 index 5346a521b..000000000 Binary files a/games/default/files/default/textures/item_smoke.png and /dev/null differ diff --git a/games/default/files/default/textures/log_acacia.png b/games/default/files/default/textures/log_acacia.png deleted file mode 100644 index 32bc4d7c7..000000000 Binary files a/games/default/files/default/textures/log_acacia.png and /dev/null differ diff --git a/games/default/files/default/tools.lua b/games/default/files/default/tools.lua deleted file mode 100644 index 1943fc3d4..000000000 --- a/games/default/files/default/tools.lua +++ /dev/null @@ -1,314 +0,0 @@ --- mods/default/tools.lua - --- --- Picks --- - -minetest.register_tool("default:pick_wood", { - description = "Wooden Pickaxe", - inventory_image = "default_tool_woodpick.png", - tool_capabilities = { - full_punch_interval = 1.2, - max_drop_level=0, - groupcaps={ - cracky = {times={[3]=2.50}, uses=20, maxlevel=1}, - }, - damage_groups = {fleshy=2}, - }, - groups = {flammable = 2}, - sound = {breaks = "default_tool_breaks"}, -}) - -minetest.register_tool("default:pick_stone", { - description = "Stone Pickaxe", - inventory_image = "default_tool_stonepick.png", - tool_capabilities = { - full_punch_interval = 1.3, - max_drop_level=0, - groupcaps={ - cracky = {times={[2]=2.5, [3]=2.0}, uses=40, maxlevel=1}, - }, - damage_groups = {fleshy=3}, - }, - sound = {breaks = "default_tool_breaks"}, -}) -minetest.register_tool("default:pick_steel", { - description = "Steel Pickaxe", - inventory_image = "default_tool_steelpick.png", - tool_capabilities = { - full_punch_interval = 1.0, - max_drop_level=1, - groupcaps={ - cracky = {times={[1]=4.0, [2]=2.0, [3]=1.75}, uses=40, maxlevel=2}, - }, - damage_groups = {fleshy=4}, - }, - sound = {breaks = "default_tool_breaks"}, -}) -minetest.register_tool("default:pick_gold", { - description = "Gold Pickaxe", - inventory_image = "default_tool_goldpick.png", - tool_capabilities = { - full_punch_interval = 0.9, - max_drop_level=3, - groupcaps={ - cracky = {times={[1]=2.4, [2]=1.8, [3]=1.5}, uses=40, maxlevel=3}, - }, - damage_groups = {fleshy=4}, - }, - sound = {breaks = "default_tool_breaks"}, -}) - -minetest.register_tool("default:pick_diamond", { - description = "Diamond Pickaxe", - inventory_image = "default_tool_diamondpick.png", - tool_capabilities = { - full_punch_interval = 0.9, - max_drop_level=3, - groupcaps={ - cracky = {times={[1]=2.0, [2]=1.5, [3]=1.0}, uses=60, maxlevel=3}, - }, - damage_groups = {fleshy=5}, - }, - sound = {breaks = "default_tool_breaks"}, -}) - --- --- Shovels --- - -minetest.register_tool("default:shovel_wood", { - description = "Wooden Shovel", - inventory_image = "default_tool_woodshovel.png", - wield_image = "default_tool_woodshovel.png^[transformR90", - tool_capabilities = { - full_punch_interval = 1.2, - max_drop_level=0, - groupcaps={ - crumbly = {times={[1]=3.0, [2]=2.5, [3]=2.0}, uses=20, maxlevel=1}, - }, - damage_groups = {fleshy=2}, - }, - groups = {flammable = 2}, - sound = {breaks = "default_tool_breaks"}, -}) - -minetest.register_tool("default:shovel_stone", { - description = "Stone Shovel", - inventory_image = "default_tool_stoneshovel.png", - wield_image = "default_tool_stoneshovel.png^[transformR90", - tool_capabilities = { - full_punch_interval = 1.4, - max_drop_level=0, - groupcaps={ - crumbly = {times={[1]=2.0, [2]=1.75, [3]=2.0}, uses=40, maxlevel=1}, - }, - damage_groups = {fleshy=2}, - }, - sound = {breaks = "default_tool_breaks"}, -}) -minetest.register_tool("default:shovel_steel", { - description = "Steel Shovel", - inventory_image = "default_tool_steelshovel.png", - wield_image = "default_tool_steelshovel.png^[transformR90", - tool_capabilities = { - full_punch_interval = 1.1, - max_drop_level=1, - groupcaps={ - crumbly = {times={[1]=1.80, [2]=1.50, [3]=1.75}, uses=60, maxlevel=2}, - }, - damage_groups = {fleshy=3}, - }, - sound = {breaks = "default_tool_breaks"}, -}) - -minetest.register_tool("default:shovel_gold", { - description = "Gold Shovel", - inventory_image = "default_tool_goldshovel.png", - wield_image = "default_tool_goldshovel.png^[transformR90", - tool_capabilities = { - full_punch_interval = 1.0, - max_drop_level=3, - groupcaps={ - crumbly = {times={[1]=1.50, [2]=1.20, [3]=1.5}, uses=40, maxlevel=3}, - }, - damage_groups = {fleshy=3}, - }, - sound = {breaks = "default_tool_breaks"}, -}) - -minetest.register_tool("default:shovel_diamond", { - description = "Diamond Shovel", - inventory_image = "default_tool_diamondshovel.png", - wield_image = "default_tool_diamondshovel.png^[transformR90", - tool_capabilities = { - full_punch_interval = 1.0, - max_drop_level=1, - groupcaps={ - crumbly = {times={[1]=1.30, [2]=1.5, [3]=1.0}, uses=60, maxlevel=3}, - }, - damage_groups = {fleshy=4}, - }, - sound = {breaks = "default_tool_breaks"}, -}) - --- --- Axes --- - -minetest.register_tool("default:axe_wood", { - description = "Wooden Axe", - inventory_image = "default_tool_woodaxe.png", - tool_capabilities = { - full_punch_interval = 1.0, - max_drop_level=0, - groupcaps={ - choppy = {times={[2]=4.0, [3]=3.0}, uses=20, maxlevel=1}, - }, - damage_groups = {fleshy=2}, - }, - groups = {flammable = 2}, - sound = {breaks = "default_tool_breaks"}, -}) - -minetest.register_tool("default:axe_stone", { - description = "Stone Axe", - inventory_image = "default_tool_stoneaxe.png", - tool_capabilities = { - full_punch_interval = 1.2, - max_drop_level=0, - groupcaps={ - choppy={times={[1]=3.5, [2]=2.5, [3]=1.75}, uses=40, maxlevel=1}, - }, - damage_groups = {fleshy=3}, - }, - sound = {breaks = "default_tool_breaks"}, -}) - -minetest.register_tool("default:axe_steel", { - description = "Steel Axe", - inventory_image = "default_tool_steelaxe.png", - tool_capabilities = { - full_punch_interval = 1.0, - max_drop_level=1, - groupcaps={ - choppy = {times={[1]=3.25, [2]=2.0, [3]=1.5}, uses=40, maxlevel=2}, - }, - damage_groups = {fleshy=4}, - }, - sound = {breaks = "default_tool_breaks"}, -}) -minetest.register_tool("default:axe_gold", { - description = "Gold Axe", - inventory_image = "default_tool_goldaxe.png", - tool_capabilities = { - full_punch_interval = 0.9, - max_drop_level=1, - groupcaps={ - choppy={times={[1]=3.0, [2]=1.75, [3]=1.25}, uses=40, maxlevel=3}, - }, - damage_groups = {fleshy=5}, - }, - sound = {breaks = "default_tool_breaks"}, -}) - -minetest.register_tool("default:axe_diamond", { - description = "Diamond Axe", - inventory_image = "default_tool_diamondaxe.png", - tool_capabilities = { - full_punch_interval = 0.9, - max_drop_level=1, - groupcaps={ - choppy={times={[1]=2.5, [2]=1.5, [3]=1.0}, uses=60, maxlevel=3}, - }, - damage_groups = {fleshy=6}, - }, - sound = {breaks = "default_tool_breaks"}, -}) - --- --- Swords --- - -minetest.register_tool("default:sword_wood", { - description = "Wooden Sword", - inventory_image = "default_tool_woodsword.png", - tool_capabilities = { - full_punch_interval = 1, - max_drop_level=0, - damage_groups = {fleshy=3}, - }, - groups = {flammable = 2}, - sound = {breaks = "default_tool_breaks"}, -}) - -minetest.register_tool("default:sword_stone", { - description = "Stone Sword", - inventory_image = "default_tool_stonesword.png", - tool_capabilities = { - full_punch_interval = 1.2, - max_drop_level=0, - damage_groups = {fleshy=4}, - }, - sound = {breaks = "default_tool_breaks"}, -}) - -minetest.register_tool("default:sword_steel", { - description = "Steel Sword", - inventory_image = "default_tool_steelsword.png", - tool_capabilities = { - full_punch_interval = 0.8, - max_drop_level=1, - damage_groups = {fleshy=6}, - }, - sound = {breaks = "default_tool_breaks"}, -}) - -minetest.register_tool("default:sword_gold", { - description = "Gold Sword", - inventory_image = "default_tool_goldsword.png", - tool_capabilities = { - full_punch_interval = 0.7, - max_drop_level=1, - damage_groups = {fleshy=7}, - }, - sound = {breaks = "default_tool_breaks"}, -}) - -minetest.register_tool("default:sword_diamond", { - description = "Diamond Sword", - inventory_image = "default_tool_diamondsword.png", - tool_capabilities = { - full_punch_interval = 0.7, - max_drop_level=1, - damage_groups = {fleshy=8}, - }, - sound = {breaks = "default_tool_breaks"}, -}) - --- --- Fishing Pole --- - -minetest.register_tool("default:pole", { - description = "Fishing Pole", - groups = {}, - inventory_image = "default_tool_fishing_pole.png", - liquids_pointable = true, - on_use = function (itemstack, user, pointed_thing) - if pointed_thing and pointed_thing.under then - local node = minetest.get_node(pointed_thing.under) - if string.find(node.name, "default:water") then - if math.random(1, 8) == 8 then - local inv = user:get_inventory() - if inv:room_for_item("main", {name="default:fish_raw", count=1, wear=0, metadata=""}) then - inv:add_item("main", {name="default:fish_raw", count=1, wear=0, metadata=""}) - end - end - itemstack:add_wear(66000/65) -- 65 uses - return itemstack - end - end - return nil - end -}) diff --git a/games/default/files/default/torch.lua b/games/default/files/default/torch.lua deleted file mode 100644 index 5f73c8a97..000000000 --- a/games/default/files/default/torch.lua +++ /dev/null @@ -1,101 +0,0 @@ -function default.register_torch(name, def) - local torch = { - description = def.description, - drawtype = "mesh", - tiles = def.tiles, - paramtype = "light", - paramtype2 = "wallmounted", - sunlight_propagates = true, - walkable = false, - liquids_pointable = false, - light_source = def.light_source, - groups = def.groups, - drop = name, - sounds = def.sounds, - floodable = true, - mesecons = def.mesecons, - on_blast = def.on_blast, - on_flood = function(pos, oldnode, newnode) - local torch = (oldnode.name:gsub("_wall", "") or oldnode.name:gsub("_celling", "")) or oldnode.name - minetest.add_item(pos, ItemStack(torch)) - -- Play flame-extinguish sound if liquid is not an 'igniter' - local nodedef = minetest.registered_items[newnode.name] - if not (nodedef and nodedef.groups and - nodedef.groups.igniter and nodedef.groups.igniter > 0) then - minetest.sound_play( - "default_cool_lava", - {pos = pos, max_hear_distance = 16, gain = 0.1} - ) - end - -- Remove the torch node - return false - end, - on_place = function(itemstack, placer, pointed_thing) - local under = pointed_thing.under - local node = minetest.get_node(under) - local def = minetest.registered_nodes[node.name] - if def and def.on_rightclick and - not (placer and placer:is_player() and - placer:get_player_control().sneak) then - return def.on_rightclick(under, node, placer, itemstack, - pointed_thing) or itemstack - end - local above = pointed_thing.above - local wdir = minetest.dir_to_wallmounted(vector.subtract(under, above)) - local fakestack = itemstack - if wdir == 0 then - fakestack:set_name(name .. "_ceiling") - elseif wdir == 1 then - fakestack:set_name(name) - else - fakestack:set_name(name .. "_wall") - end - itemstack = minetest.item_place(fakestack, placer, pointed_thing, wdir) - itemstack:set_name(name) - return itemstack - end - } - - local torch_floor = table.copy(torch) - torch_floor.mesh = "torch_floor.obj" - torch_floor.inventory_image = def.inventory_image - torch_floor.wield_image = def.wield_image - torch_floor.selection_box = { - type = "wallmounted", - wall_bottom = {-1/8, -1/2, -1/8, 1/8, 2/16, 1/8}, - } - - local torch_wall = table.copy(torch) - torch_wall.mesh = "torch_wall.obj" - torch_wall.selection_box = { - type = "wallmounted", - wall_side = {-1/2, -1/2, -1/8, -1/8, 1/8, 1/8}, - } - torch_wall.groups.not_in_creative_inventory = 1 - - local torch_ceiling = table.copy(torch) - torch_ceiling.mesh = "torch_ceiling.obj" - torch_ceiling.selection_box = { - type = "wallmounted", - wall_top = {-1/8, -1/16, -5/16, 1/8, 1/2, 1/8}, - } - torch_ceiling.groups.not_in_creative_inventory = 1 - - minetest.register_node(":" .. name, torch_floor) - minetest.register_node(":" .. name .. "_wall", torch_wall) - minetest.register_node(":" .. name .. "_ceiling", torch_ceiling) -end - -default.register_torch("default:torch", { - description = "Torch", - tiles = {{ - name = "default_torch.png", - -- name = "default_torch_animated.png", - -- animation = {type = "vertical_frames", aspect_w = 32, aspect_h = 32, length = 3.3} - }}, - inventory_image = "default_torch.png", - wield_image = "default_torch.png", - light_source = 12, - groups = {choppy = 2, dig_immediate = 3, flammable = 1, attached_node = 1, torch = 1}, - sounds = default.node_sound_wood_defaults() -}) diff --git a/games/default/files/default/trees.lua b/games/default/files/default/trees.lua deleted file mode 100644 index b314ec135..000000000 --- a/games/default/files/default/trees.lua +++ /dev/null @@ -1,542 +0,0 @@ -local random = math.random - --- --- Grow trees from saplings --- - --- 'can grow' function - -function default.can_grow(pos) - local node_under = minetest.get_node_or_nil({x = pos.x, y = pos.y - 1, z = pos.z}) - if not node_under then - return false - end - local name_under = node_under.name - local is_soil = minetest.get_item_group(name_under, "soil") - if is_soil == 0 then - return false - end - local light_level = minetest.get_node_light(pos) - if not light_level or light_level < 13 then - return false - end - return true -end - - --- 'is snow nearby' function - -local function is_snow_nearby(pos) - return minetest.find_node_near(pos, 1, {"group:snowy"}) -end - - --- Grow sapling - -function default.grow_sapling(pos) - if not default.can_grow(pos) then - -- try again 5 min later - minetest.get_node_timer(pos):start(300) - return - end - - local mg_name = minetest.get_mapgen_setting("mg_name") - local node = minetest.get_node(pos) - if node.name == "default:sapling" then - minetest.log("action", "A sapling grows into a tree at ".. - minetest.pos_to_string(pos)) - if mg_name == "v6" then - default.grow_tree(pos, random(1, 4) == 1) - else - default.grow_new_apple_tree(pos) - end - elseif node.name == "default:junglesapling" then - minetest.log("action", "A jungle sapling grows into a tree at ".. - minetest.pos_to_string(pos)) - if mg_name == "v6" then - default.grow_jungle_tree(pos) - else - default.grow_new_jungle_tree(pos) - end - elseif node.name == "default:pine_sapling" then - minetest.log("action", "A pine sapling grows into a tree at ".. - minetest.pos_to_string(pos)) - local snow = is_snow_nearby(pos) - if mg_name == "v6" then - default.grow_pine_tree(pos, snow) - elseif snow then - default.grow_new_snowy_pine_tree(pos) - else - default.grow_new_pine_tree(pos) - end - elseif node.name == "default:acacia_sapling" then - minetest.log("action", "An acacia sapling grows into a tree at ".. - minetest.pos_to_string(pos)) - default.grow_new_acacia_tree(pos) - elseif node.name == "default:birch_sapling" then - minetest.log("action", "An birch sapling grows into a tree at ".. - minetest.pos_to_string(pos)) - default.grow_new_birch_tree(pos) ---[[ elseif node.name == "default:emergent_jungle_sapling" then - minetest.log("action", "An emergent jungle sapling grows into a tree at ".. - minetest.pos_to_string(pos)) - default.grow_new_emergent_jungle_tree(pos)]] - end - end - -minetest.register_lbm({ - name = "default:convert_saplings_to_node_timer", - nodenames = {"default:sapling", "default:junglesapling", - "default:pine_sapling", "default:acacia_sapling"}, - action = function(pos) - minetest.get_node_timer(pos):start(math.random(300, 1500)) - end -}) - --- --- Tree generation --- - --- Apple tree and jungle tree trunk and leaves function - -local function add_trunk_and_leaves(data, a, pos, tree_cid, leaves_cid, - height, size, iters, is_apple_tree) - local x, y, z = pos.x, pos.y, pos.z - local c_air = minetest.get_content_id("air") - local c_ignore = minetest.get_content_id("ignore") - local c_apple = minetest.get_content_id("default:apple") - - -- Trunk - data[a:index(x, y, z)] = tree_cid -- Force-place lowest trunk node to replace sapling - for yy = y + 1, y + height - 1 do - local vi = a:index(x, yy, z) - local node_id = data[vi] - if node_id == c_air or node_id == c_ignore or node_id == leaves_cid then - data[vi] = tree_cid - end - end - - -- Force leaves near the trunk - for z_dist = -1, 1 do - for y_dist = -size, 1 do - local vi = a:index(x - 1, y + height + y_dist, z + z_dist) - for x_dist = -1, 1 do - if data[vi] == c_air or data[vi] == c_ignore then - if is_apple_tree and random(1, 8) == 1 then - data[vi] = c_apple - else - data[vi] = leaves_cid - end - end - vi = vi + 1 - end - end - end - - -- Randomly add leaves in 2x2x2 clusters. - for i = 1, iters do - local clust_x = x + random(-size, size - 1) - local clust_y = y + height + random(-size, 0) - local clust_z = z + random(-size, size - 1) - - for xi = 0, 1 do - for yi = 0, 1 do - for zi = 0, 1 do - local vi = a:index(clust_x + xi, clust_y + yi, clust_z + zi) - if data[vi] == c_air or data[vi] == c_ignore then - if is_apple_tree and random(1, 8) == 1 then - data[vi] = c_apple - else - data[vi] = leaves_cid - end - end - end - end - end - end -end - - --- Apple tree - -function default.grow_tree(pos, is_apple_tree, bad) - --[[ - NOTE: Tree-placing code is currently duplicated in the engine - and in games that have saplings; both are deprecated but not - replaced yet - --]] - if bad then - error("Deprecated use of default.grow_tree") - end - - local x, y, z = pos.x, pos.y, pos.z - local height = random(4, 5) - local c_tree = minetest.get_content_id("default:tree") - local c_leaves = minetest.get_content_id("default:leaves") - - local vm = minetest.get_voxel_manip() - local minp, maxp = vm:read_from_map( - {x = x - 2, y = y, z = z - 2}, - {x = x + 2, y = y + height + 1, z = z + 2} - ) - local a = VoxelArea:new({MinEdge = minp, MaxEdge = maxp}) - local data = vm:get_data() - - add_trunk_and_leaves(data, a, pos, c_tree, c_leaves, height, 2, 8, is_apple_tree) - - vm:set_data(data) - vm:write_to_map() - vm:update_map() -end - - --- Jungle tree - -function default.grow_jungle_tree(pos, bad) - --[[ - NOTE: Jungletree-placing code is currently duplicated in the engine - and in games that have saplings; both are deprecated but not - replaced yet - --]] - if bad then - error("Deprecated use of default.grow_jungle_tree") - end - - local x, y, z = pos.x, pos.y, pos.z - local height = random(8, 12) - local c_air = minetest.get_content_id("air") - local c_ignore = minetest.get_content_id("ignore") - local c_jungletree = minetest.get_content_id("default:jungletree") - local c_jungleleaves = minetest.get_content_id("default:jungleleaves") - - local vm = minetest.get_voxel_manip() - local minp, maxp = vm:read_from_map( - {x = x - 3, y = y - 1, z = z - 3}, - {x = x + 3, y = y + height + 1, z = z + 3} - ) - local a = VoxelArea:new({MinEdge = minp, MaxEdge = maxp}) - local data = vm:get_data() - - add_trunk_and_leaves(data, a, pos, c_jungletree, c_jungleleaves, - height, 3, 30, false) - - -- Roots - for z_dist = -1, 1 do - local vi_1 = a:index(x - 1, y - 1, z + z_dist) - local vi_2 = a:index(x - 1, y, z + z_dist) - for x_dist = -1, 1 do - if random(1, 3) >= 2 then - if data[vi_1] == c_air or data[vi_1] == c_ignore then - data[vi_1] = c_jungletree - elseif data[vi_2] == c_air or data[vi_2] == c_ignore then - data[vi_2] = c_jungletree - end - end - vi_1 = vi_1 + 1 - vi_2 = vi_2 + 1 - end - end - - vm:set_data(data) - vm:write_to_map() - vm:update_map() -end - - --- Pine tree from mg mapgen mod, design by sfan5, pointy top added by paramat - -local function add_pine_needles(data, vi, c_air, c_ignore, c_snow, c_pine_needles) - local node_id = data[vi] - if node_id == c_air or node_id == c_ignore or node_id == c_snow then - data[vi] = c_pine_needles - end -end - -local function add_snow(data, vi, c_air, c_ignore, c_snow) - local node_id = data[vi] - if node_id == c_air or node_id == c_ignore then - data[vi] = c_snow - end -end - -function default.grow_pine_tree(pos, snow) - local x, y, z = pos.x, pos.y, pos.z - local maxy = y + random(9, 13) -- Trunk top - - local c_air = minetest.get_content_id("air") - local c_ignore = minetest.get_content_id("ignore") - local c_pine_tree = minetest.get_content_id("default:pine_tree") - local c_pine_needles = minetest.get_content_id("default:pine_needles") - local c_snow = minetest.get_content_id("default:snow") - - local vm = minetest.get_voxel_manip() - local minp, maxp = vm:read_from_map( - {x = x - 3, y = y, z = z - 3}, - {x = x + 3, y = maxy + 3, z = z + 3} - ) - local a = VoxelArea:new({MinEdge = minp, MaxEdge = maxp}) - local data = vm:get_data() - - -- Upper branches layer - local dev = 3 - for yy = maxy - 1, maxy + 1 do - for zz = z - dev, z + dev do - local vi = a:index(x - dev, yy, zz) - local via = a:index(x - dev, yy + 1, zz) - for xx = x - dev, x + dev do - if random() < 0.95 - dev * 0.05 then - add_pine_needles(data, vi, c_air, c_ignore, c_snow, - c_pine_needles) - if snow then - add_snow(data, via, c_air, c_ignore, c_snow) - end - end - vi = vi + 1 - via = via + 1 - end - end - dev = dev - 1 - end - - -- Centre top nodes - add_pine_needles(data, a:index(x, maxy + 1, z), c_air, c_ignore, c_snow, - c_pine_needles) - add_pine_needles(data, a:index(x, maxy + 2, z), c_air, c_ignore, c_snow, - c_pine_needles) -- Paramat added a pointy top node - if snow then - add_snow(data, a:index(x, maxy + 3, z), c_air, c_ignore, c_snow) - end - - -- Lower branches layer - local my = 0 - for i = 1, 20 do -- Random 2x2 squares of needles - local xi = x + random(-3, 2) - local yy = maxy + random(-6, -5) - local zi = z + random(-3, 2) - if yy > my then - my = yy - end - for zz = zi, zi+1 do - local vi = a:index(xi, yy, zz) - local via = a:index(xi, yy + 1, zz) - for xx = xi, xi + 1 do - add_pine_needles(data, vi, c_air, c_ignore, c_snow, - c_pine_needles) - if snow then - add_snow(data, via, c_air, c_ignore, c_snow) - end - vi = vi + 1 - via = via + 1 - end - end - end - - dev = 2 - for yy = my + 1, my + 2 do - for zz = z - dev, z + dev do - local vi = a:index(x - dev, yy, zz) - local via = a:index(x - dev, yy + 1, zz) - for xx = x - dev, x + dev do - if random() < 0.95 - dev * 0.05 then - add_pine_needles(data, vi, c_air, c_ignore, c_snow, - c_pine_needles) - if snow then - add_snow(data, via, c_air, c_ignore, c_snow) - end - end - vi = vi + 1 - via = via + 1 - end - end - dev = dev - 1 - end - - -- Trunk - -- Force-place lowest trunk node to replace sapling - data[a:index(x, y, z)] = c_pine_tree - for yy = y + 1, maxy do - local vi = a:index(x, yy, z) - local node_id = data[vi] - if node_id == c_air or node_id == c_ignore or - node_id == c_pine_needles or node_id == c_snow then - data[vi] = c_pine_tree - end - end - - vm:set_data(data) - vm:write_to_map() - vm:update_map() -end - - --- New apple tree - -function default.grow_new_apple_tree(pos) - local path = minetest.get_modpath("default") .. - "/schematics/apple_tree_from_sapling.mts" - minetest.place_schematic({x = pos.x - 3, y = pos.y - 1, z = pos.z - 3}, - path, "random", nil, false) -end - - --- New jungle tree - -function default.grow_new_jungle_tree(pos) - local path = minetest.get_modpath("default") .. - "/schematics/jungle_tree_from_sapling.mts" - minetest.place_schematic({x = pos.x - 2, y = pos.y - 1, z = pos.z - 2}, - path, "random", nil, false) -end - - --- New emergent jungle tree - ---[[function default.grow_new_emergent_jungle_tree(pos) - local path = minetest.get_modpath("default") .. - "/schematics/emergent_jungle_tree_from_sapling.mts" - minetest.place_schematic({x = pos.x - 3, y = pos.y - 5, z = pos.z - 3}, - path, "random", nil, false) -end]] - - --- New pine tree - -function default.grow_new_pine_tree(pos) - local path - if math.random() > 0.5 then - path = minetest.get_modpath("default") .. - "/schematics/pine_tree_from_sapling.mts" - else - path = minetest.get_modpath("default") .. - "/schematics/small_pine_tree_from_sapling.mts" - end - minetest.place_schematic({x = pos.x - 2, y = pos.y - 1, z = pos.z - 2}, - path, "0", nil, false) -end - - --- New snowy pine tree - -function default.grow_new_snowy_pine_tree(pos) - local path - if math.random() > 0.5 then - path = minetest.get_modpath("default") .. - "/schematics/snowy_pine_tree_from_sapling.mts" - else - path = minetest.get_modpath("default") .. - "/schematics/snowy_small_pine_tree_from_sapling.mts" - end - minetest.place_schematic({x = pos.x - 2, y = pos.y - 1, z = pos.z - 2}, - path, "random", nil, false) -end - - --- New acacia tree - -function default.grow_new_acacia_tree(pos) - local path = minetest.get_modpath("default") .. - "/schematics/acacia_tree_from_sapling.mts" - minetest.place_schematic({x = pos.x - 4, y = pos.y - 1, z = pos.z - 4}, - path, "random", nil, false) -end - - --- New birch tree - -function default.grow_new_birch_tree(pos) - local path = minetest.get_modpath("default") .. - "/schematics/birch_tree_from_sapling.mts" - minetest.place_schematic({x = pos.x - 2, y = pos.y - 1, z = pos.z - 2}, - path, "0", nil, false) -end - --- Large cactus - -function default.grow_large_cactus(pos) - local path = minetest.get_modpath("default") .. - "/schematics/large_cactus.mts" - minetest.place_schematic({x = pos.x - 2, y = pos.y - 1, z = pos.z - 2}, - path, "random", nil, false) -end - - --- --- Sapling 'on place' function to check protection of node and resulting tree volume --- - -function default.sapling_on_place(itemstack, placer, pointed_thing, - sapling_name, minp_relative, maxp_relative, interval) - -- Position of sapling - local pos = pointed_thing.under - local node = minetest.get_node_or_nil(pos) - local pdef = node and minetest.registered_nodes[node.name] - - if pdef and pdef.on_rightclick and - not (placer and placer:is_player() and - placer:get_player_control().sneak) then - return pdef.on_rightclick(pos, node, placer, itemstack, pointed_thing) - end - - if not pdef or not pdef.buildable_to then - pos = pointed_thing.above - node = minetest.get_node_or_nil(pos) - pdef = node and minetest.registered_nodes[node.name] - if not pdef or not pdef.buildable_to then - return itemstack - end - end - - local player_name = placer and placer:get_player_name() or "" - -- Check sapling position for protection - if minetest.is_protected(pos, player_name) then - minetest.record_protection_violation(pos, player_name) - return itemstack - end - -- Check tree volume for protection - if minetest.is_area_protected( - vector.add(pos, minp_relative), - vector.add(pos, maxp_relative), - player_name, - interval) then - minetest.record_protection_violation(pos, player_name) - -- Print extra information to explain - minetest.chat_send_player(player_name, - itemstack:get_definition().description .. " will intersect protection " .. - "on growth") - return itemstack - end - - minetest.log("action", player_name .. " places node " - .. sapling_name .. " at " .. minetest.pos_to_string(pos)) - - local take_item = not (creative and creative.is_enabled_for - and creative.is_enabled_for(player_name)) - local newnode = {name = sapling_name} - local ndef = minetest.registered_nodes[sapling_name] - minetest.set_node(pos, newnode) - - -- Run callback - if ndef and ndef.after_place_node then - -- Deepcopy place_to and pointed_thing because callback can modify it - if ndef.after_place_node(table.copy(pos), placer, - itemstack, table.copy(pointed_thing)) then - take_item = false - end - end - - -- Run script hook - for _, callback in ipairs(minetest.registered_on_placenodes) do - -- Deepcopy pos, node and pointed_thing because callback can modify them - if callback(table.copy(pos), table.copy(newnode), - placer, table.copy(node or {}), - itemstack, table.copy(pointed_thing)) then - take_item = false - end - end - - if take_item then - itemstack:take_item() - end - - return itemstack -end diff --git a/games/default/files/doors/README.txt b/games/default/files/doors/README.txt deleted file mode 100644 index e942514f8..000000000 --- a/games/default/files/doors/README.txt +++ /dev/null @@ -1,43 +0,0 @@ -MultiCraft Game mod: doors -========================== -See license.txt for license information. - -Authors of source code ----------------------- -Originally by PilzAdam (MIT) - -Modified by BlockMen (MIT): Added sounds, glass doors (glass, obsidian glass) and trapdoor. - -Modified by sofar (sofar@foo-projects.org) (MIT): -Added Steel trapdoor. -Re-implemented most of the door algorithms, added meshes, UV wrapped texture. -Added doors API to facilitate coding mods accessing and operating doors. -Added Fence Gate model, code, and sounds. - -Various Minetest developers and contributors (MIT) - -MultiCraft Development Team (MIT) - -Authors of media (models) -------------------------- -Door 3d models by sofar (CC-BY-SA-3.0) - - door_a.obj - - door_b.obj - -Authors of media (sounds) -------------------------- -Opening-Sound created by CGEffex (CC BY 3.0), modified by BlockMen - door_open.ogg -Closing-Sound created by bennstir (CC BY 3.0) - door_close.ogg -fencegate_open.ogg: - http://www.freesound.org/people/mhtaylor67/sounds/126041/ - (CC0 1.0) -fencegate_close.ogg: - http://www.freesound.org/people/BarkersPinhead/sounds/274807/ - (CC-BY-3.0) - http://www.freesound.org/people/rivernile7/sounds/249573/ - (CC-BY-3.0) -Steel door sounds open & close (CC-BY-3.0) by HazMatt - - http://www.freesound.org/people/HazMattt/sounds/187283/ - doors_steel_door_open.ogg - doors_steel_door_close.ogg -doors_glass_door_open.ogg, doors_glass_door_close.ogg: - https://www.freesound.org/people/SkeetMasterFunk69/sounds/235546/ (CC0 1.0) diff --git a/games/default/files/doors/init.lua b/games/default/files/doors/init.lua deleted file mode 100644 index 57761dc2f..000000000 --- a/games/default/files/doors/init.lua +++ /dev/null @@ -1,765 +0,0 @@ --- our API object -doors = {} - -doors.registered_doors = {} -doors.registered_trapdoors = {} - -local function replace_old_owner_information(pos) - local meta = minetest.get_meta(pos) - local owner = meta:get_string("doors_owner") - if owner and owner ~= "" then - meta:set_string("owner", owner) - meta:set_string("doors_owner", "") - end -end - --- returns an object to a door object or nil -function doors.get(pos) - local node_name = minetest.get_node(pos).name - if doors.registered_doors[node_name] then - -- A normal upright door - return { - pos = pos, - open = function(self, player) - if self:state() then - return false - end - return doors.door_toggle(self.pos, nil, player) - end, - close = function(self, player) - if not self:state() then - return false - end - return doors.door_toggle(self.pos, nil, player) - end, - toggle = function(self, player) - return doors.door_toggle(self.pos, nil, player) - end, - state = function(self) - local state = minetest.get_meta(self.pos):get_int("state") - return state %2 == 1 - end - } - elseif doors.registered_trapdoors[node_name] then - -- A trapdoor - return { - pos = pos, - open = function(self, player) - if self:state() then - return false - end - return doors.trapdoor_toggle(self.pos, nil, player) - end, - close = function(self, player) - if not self:state() then - return false - end - return doors.trapdoor_toggle(self.pos, nil, player) - end, - toggle = function(self, player) - return doors.trapdoor_toggle(self.pos, nil, player) - end, - state = function(self) - return minetest.get_node(self.pos).name:sub(-5) == "_open" - end - } - else - return nil - end -end - --- table used to aid door opening/closing -local transform = { - { - {v = "_a", param2 = 3}, - {v = "_a", param2 = 0}, - {v = "_a", param2 = 1}, - {v = "_a", param2 = 2}, - }, - { - {v = "_b", param2 = 1}, - {v = "_b", param2 = 2}, - {v = "_b", param2 = 3}, - {v = "_b", param2 = 0}, - }, - { - {v = "_b", param2 = 1}, - {v = "_b", param2 = 2}, - {v = "_b", param2 = 3}, - {v = "_b", param2 = 0}, - }, - { - {v = "_a", param2 = 3}, - {v = "_a", param2 = 0}, - {v = "_a", param2 = 1}, - {v = "_a", param2 = 2}, - }, -} - -function doors.door_toggle(pos, node, clicker) - local meta = minetest.get_meta(pos) - node = node or minetest.get_node(pos) - local def = minetest.registered_nodes[node.name] - local name = def.door.name - - local state = meta:get_string("state") - if state == "" then - -- fix up lvm-placed right-hinged doors, default closed - if node.name:sub(-2) == "_b" then - state = 2 - else - state = 0 - end - else - state = tonumber(state) - end - - replace_old_owner_information(pos) - - if clicker and not default.can_interact_with_node(clicker, pos) then - return false - end - - -- until Lua-5.2 we have no bitwise operators :( - if state % 2 == 1 then - state = state - 1 - else - state = state + 1 - end - - local dir = node.param2 - - -- It's possible param2 is messed up, so, validate before using - -- the input data. This indicates something may have rotated - -- the door, even though that is not supported. - if not transform[state + 1] or not transform[state + 1][dir + 1] then - return false - end - - if state % 2 == 0 then - minetest.sound_play(def.door.sounds[1], - {pos = pos, gain = 0.3, max_hear_distance = 10}) - else - minetest.sound_play(def.door.sounds[2], - {pos = pos, gain = 0.3, max_hear_distance = 10}) - end - - minetest.swap_node(pos, { - name = name .. transform[state + 1][dir+1].v, - param2 = transform[state + 1][dir+1].param2 - }) - meta:set_int("state", state) - - return true -end - - -local function on_place_node(place_to, newnode, - placer, oldnode, itemstack, pointed_thing) - -- Run script hook - for _, callback in ipairs(minetest.registered_on_placenodes) do - -- Deepcopy pos, node and pointed_thing because callback can modify them - local place_to_copy = {x = place_to.x, y = place_to.y, z = place_to.z} - local newnode_copy = - {name = newnode.name, param1 = newnode.param1, param2 = newnode.param2} - local oldnode_copy = - {name = oldnode.name, param1 = oldnode.param1, param2 = oldnode.param2} - local pointed_thing_copy = { - type = pointed_thing.type, - above = vector.new(pointed_thing.above), - under = vector.new(pointed_thing.under), - ref = pointed_thing.ref, - } - callback(place_to_copy, newnode_copy, placer, - oldnode_copy, itemstack, pointed_thing_copy) - end -end - -local function can_dig_door(pos, digger) - replace_old_owner_information(pos) - return default.can_interact_with_node(digger, pos) -end - -function doors.register(name, def) - if not name:find(":") then - name = "doors:" .. name - end - - minetest.register_craftitem(":" .. name, { - description = def.description, - inventory_image = def.inventory_image, - groups = table.copy(def.groups), - - on_place = function(itemstack, placer, pointed_thing) - local pos - - if not pointed_thing.type == "node" then - return itemstack - end - - local node = minetest.get_node(pointed_thing.under) - local pdef = minetest.registered_nodes[node.name] - if pdef and pdef.on_rightclick and - not (placer and placer:is_player() and - placer:get_player_control().sneak) then - return pdef.on_rightclick(pointed_thing.under, - node, placer, itemstack, pointed_thing) - end - - if pdef and pdef.buildable_to then - pos = pointed_thing.under - else - pos = pointed_thing.above - node = minetest.get_node(pos) - pdef = minetest.registered_nodes[node.name] - if not pdef or not pdef.buildable_to then - return itemstack - end - end - - local above = {x = pos.x, y = pos.y + 1, z = pos.z} - local top_node = minetest.get_node_or_nil(above) - local topdef = top_node and minetest.registered_nodes[top_node.name] - - if not topdef or not topdef.buildable_to then - return itemstack - end - - local pn = placer and placer:get_player_name() or "" - if minetest.is_protected(pos, pn) or minetest.is_protected(above, pn) then - return itemstack - end - - local dir = placer and minetest.dir_to_facedir(placer:get_look_dir()) or 0 - - local ref = { - {x = -1, y = 0, z = 0}, - {x = 0, y = 0, z = 1}, - {x = 1, y = 0, z = 0}, - {x = 0, y = 0, z = -1}, - } - - local aside = { - x = pos.x + ref[dir + 1].x, - y = pos.y + ref[dir + 1].y, - z = pos.z + ref[dir + 1].z, - } - - local state = 0 - if minetest.get_item_group(minetest.get_node(aside).name, "door") == 1 then - state = state + 2 - minetest.set_node(pos, {name = name .. "_b", param2 = dir}) - else - minetest.set_node(pos, {name = name .. "_a", param2 = dir}) - end - - local meta = minetest.get_meta(pos) - meta:set_int("state", state) - - if def.protected then - meta:set_string("owner", pn) - meta:set_string("infotext", "Owned by " .. pn) - end - - if not (creative and creative.is_enabled_for and creative.is_enabled_for(pn)) then - itemstack:take_item() - end - - minetest.sound_play(def.sounds.place, {pos = pos}) - - on_place_node(pos, minetest.get_node(pos), - placer, node, itemstack, pointed_thing) - - return itemstack - end - }) - def.inventory_image = nil - - if def.recipe then - minetest.register_craft({ - output = name, - recipe = def.recipe, - }) - end - def.recipe = nil - - if not def.sounds then - def.sounds = default.node_sound_wood_defaults() - end - - if not def.sound_open then - def.sound_open = "doors_door_open" - end - - if not def.sound_close then - def.sound_close = "doors_door_close" - end - - def.groups.not_in_creative_inventory = 1 - def.groups.door = 1 - def.drop = name - def.door = { - name = name, - sounds = { def.sound_close, def.sound_open }, - } - if not def.on_rightclick then - def.on_rightclick = function(pos, node, clicker, itemstack, pointed_thing) - doors.door_toggle(pos, node, clicker) - return itemstack - end - end - def.after_dig_node = function(pos, node, meta, digger) - minetest.remove_node({x = pos.x, y = pos.y + 1, z = pos.z}) - minetest.check_for_falling({x = pos.x, y = pos.y + 1, z = pos.z}) - end - def.on_rotate = function(pos, node, user, mode, new_param2) - return false - end - - if def.protected then - def.can_dig = can_dig_door - def.on_blast = function() end - def.on_key_use = function(pos, player) - local door = doors.get(pos) - door:toggle(player) - end - def.on_skeleton_key_use = function(pos, player, newsecret) - replace_old_owner_information(pos) - local meta = minetest.get_meta(pos) - local owner = meta:get_string("owner") - local pname = player:get_player_name() - - -- verify placer is owner of lockable door - if owner ~= pname then - minetest.record_protection_violation(pos, pname) - minetest.chat_send_player(pname, "You do not own this locked door.") - return nil - end - - local secret = meta:get_string("key_lock_secret") - if secret == "" then - secret = newsecret - meta:set_string("key_lock_secret", secret) - end - - return secret, "a locked door", owner - end - def.node_dig_prediction = "" - else - def.on_blast = function(pos, intensity) - minetest.remove_node(pos) - return {name} - end - end - - def.on_destruct = function(pos) - minetest.remove_node({x = pos.x, y = pos.y + 1, z = pos.z}) - end - - def.drawtype = "mesh" - def.paramtype = "light" - def.paramtype2 = "facedir" - def.sunlight_propagates = true - def.walkable = true - def.is_ground_content = false - def.buildable_to = false - def.selection_box = {type = "fixed", fixed = {-1/2,-1/2,-1/2,1/2,3/2,-6/16}} - def.collision_box = {type = "fixed", fixed = {-1/2,-1/2,-1/2,1/2,3/2,-6/16}} - - def.mesh = "door_a.obj" - minetest.register_node(":" .. name .. "_a", def) - - def.mesh = "door_b.obj" - minetest.register_node(":" .. name .. "_b", def) - - doors.registered_doors[name .. "_a"] = true - doors.registered_doors[name .. "_b"] = true -end - -doors.register("door_wood", { - tiles = {{ name = "doors_door_wood.png", backface_culling = true }}, - description = "Wooden Door", - inventory_image = "doors_item_wood.png", - groups = {choppy = 2, oddly_breakable_by_hand = 2, flammable = 2}, - recipe = { - {"group:wood", "group:wood"}, - {"group:wood", "group:wood"}, - {"group:wood", "group:wood"}, - } -}) - -doors.register("door_steel", { - tiles = {{name = "doors_door_steel.png", backface_culling = true}}, - description = "Steel Door", - inventory_image = "doors_item_steel.png", - protected = true, - groups = {cracky = 1, level = 2}, - sounds = default.node_sound_metal_defaults(), - sound_open = "doors_steel_door_open", - sound_close = "doors_steel_door_close", - recipe = { - {"default:steel_ingot", "default:steel_ingot"}, - {"default:steel_ingot", "default:steel_ingot"}, - {"default:steel_ingot", "default:steel_ingot"}, - } -}) - --- Aliases - -local doors_aliases = { - {"acacia_b_1", "doors:door_wood_a"}, - {"acacia_b_2", "doors:door_wood_b"}, - {"acacia_t_1", "air"}, - {"acacia_t_2", "air"}, - {"birch_b_1", "doors:door_wood_a"}, - {"birch_b_2", "doors:door_wood_b"}, - {"birch_t_1", "air"}, - {"birch_t_2", "air"}, - {"dark_oak_b_1", "doors:door_wood_a"}, - {"dark_oak_b_2", "doors:door_wood_b"}, - {"dark_oak_t_1", "air"}, - {"dark_oak_t_2", "air"}, - {"jungle_b_1", "doors:door_wood_a"}, - {"jungle_b_2", "doors:door_wood_b"}, - {"jungle_t_1", "air"}, - {"jungle_t_2", "air"}, - {"wood_b_1", "doors:door_wood_a"}, - {"wood_b_2", "doors:door_wood_b"}, - {"wood_t_1", "air"}, - {"wood_t_2", "air"}, - {"steel_b_1", "doors:door_steel_a"}, - {"steel_b_2", "doors:door_steel_b"}, - {"steel_t_1", "air"}, - {"steel_t_2", "air"}, -} - -for i = 1, #doors_aliases do - local old, new = unpack(doors_aliases[i]) - minetest.register_alias("doors:door_" .. old, new) -end - -minetest.register_alias("doors:door_acacia", "doors:door_wood") -minetest.register_alias("doors:door_birch", "doors:door_wood") -minetest.register_alias("doors:door_dark_oak", "doors:door_wood") -minetest.register_alias("doors:door_jungle", "doors:door_wood") -minetest.register_alias("doors:hidden", "air") - ----- Trapdoor ---- - -function doors.trapdoor_toggle(pos, node, clicker) - node = node or minetest.get_node(pos) - - replace_old_owner_information(pos) - - if clicker and not default.can_interact_with_node(clicker, pos) then - return false - end - - local def = minetest.registered_nodes[node.name] - - if string.sub(node.name, -5) == "_open" then - minetest.sound_play(def.sound_close, - {pos = pos, gain = 0.3, max_hear_distance = 10}) - minetest.swap_node(pos, {name = string.sub(node.name, 1, - string.len(node.name) - 5), param1 = node.param1, param2 = node.param2}) - else - minetest.sound_play(def.sound_open, - {pos = pos, gain = 0.3, max_hear_distance = 10}) - minetest.swap_node(pos, {name = node.name .. "_open", - param1 = node.param1, param2 = node.param2}) - end -end - -function doors.register_trapdoor(name, def) - if not name:find(":") then - name = "doors:" .. name - end - - local name_closed = name - local name_opened = name.."_open" - - def.on_rightclick = function(pos, node, clicker, itemstack, pointed_thing) - doors.trapdoor_toggle(pos, node, clicker) - return itemstack - end - - -- Common trapdoor configuration - def.drawtype = "nodebox" - def.paramtype = "light" - def.paramtype2 = "facedir" - def.is_ground_content = false - - if def.protected then - def.can_dig = can_dig_door - def.after_place_node = function(pos, placer, itemstack, pointed_thing) - local pn = placer:get_player_name() - local meta = minetest.get_meta(pos) - meta:set_string("owner", pn) - meta:set_string("infotext", "Owned by "..pn) - - return (creative and creative.is_enabled_for and creative.is_enabled_for(pn)) - end - - def.on_blast = function() end - def.on_key_use = function(pos, player) - local door = doors.get(pos) - door:toggle(player) - end - def.on_skeleton_key_use = function(pos, player, newsecret) - replace_old_owner_information(pos) - local meta = minetest.get_meta(pos) - local owner = meta:get_string("owner") - local pname = player:get_player_name() - - -- verify placer is owner of lockable door - if owner ~= pname then - minetest.record_protection_violation(pos, pname) - minetest.chat_send_player(pname, "You do not own this trapdoor.") - return nil - end - - local secret = meta:get_string("key_lock_secret") - if secret == "" then - secret = newsecret - meta:set_string("key_lock_secret", secret) - end - - return secret, "a locked trapdoor", owner - end - def.node_dig_prediction = "" - else - def.on_blast = function(pos, intensity) - minetest.remove_node(pos) - return {name} - end - end - - if not def.sounds then - def.sounds = default.node_sound_wood_defaults() - end - - if not def.sound_open then - def.sound_open = "doors_door_open" - end - - if not def.sound_close then - def.sound_close = "doors_door_close" - end - - local def_opened = table.copy(def) - local def_closed = table.copy(def) - - def_closed.node_box = { - type = "fixed", - fixed = {-0.5, -0.5, -0.5, 0.5, -6/16, 0.5} - } - def_closed.selection_box = { - type = "fixed", - fixed = {-0.5, -0.5, -0.5, 0.5, -6/16, 0.5} - } - def_closed.tiles = { - def.tile_front, - def.tile_front .. '^[transformFY', - def.tile_side, - def.tile_side, - def.tile_side, - def.tile_side - } - - def_opened.node_box = { - type = "fixed", - fixed = {-0.5, -0.5, 6/16, 0.5, 0.5, 0.5} - } - def_opened.selection_box = { - type = "fixed", - fixed = {-0.5, -0.5, 6/16, 0.5, 0.5, 0.5} - } - def_opened.tiles = { - def.tile_side, - def.tile_side .. '^[transform2', - def.tile_side .. '^[transform3', - def.tile_side .. '^[transform1', - def.tile_front .. '^[transform46', - def.tile_front .. '^[transform6' - } - - def_opened.drop = name_closed - def_opened.groups.not_in_creative_inventory = 1 - - minetest.register_node(name_opened, def_opened) - minetest.register_node(name_closed, def_closed) - - doors.registered_trapdoors[name_opened] = true - doors.registered_trapdoors[name_closed] = true -end - -doors.register_trapdoor("doors:trapdoor", { - description = "Wooden Trapdoor", - inventory_image = "doors_trapdoor.png", - wield_image = "doors_trapdoor.png", - tile_front = "doors_trapdoor.png", - tile_side = "doors_trapdoor_side.png", - groups = {choppy = 2, oddly_breakable_by_hand = 2, flammable = 2, door = 1}, -}) - -doors.register_trapdoor("doors:trapdoor_steel", { - description = "Steel Trapdoor", - inventory_image = "doors_trapdoor_steel.png", - wield_image = "doors_trapdoor_steel.png", - tile_front = "doors_trapdoor_steel.png", - tile_side = "doors_trapdoor_steel_side.png", - protected = true, - sounds = default.node_sound_metal_defaults(), - sound_open = "doors_steel_door_open", - sound_close = "doors_steel_door_close", - groups = {cracky = 1, level = 2, door = 1}, -}) - -minetest.register_craft({ - output = 'doors:trapdoor 2', - recipe = { - {'group:wood', 'group:wood', 'group:wood'}, - {'group:wood', 'group:wood', 'group:wood'}, - {'', '', ''}, - } -}) - -minetest.register_craft({ - output = 'doors:trapdoor_steel', - recipe = { - {'default:steel_ingot', 'default:steel_ingot'}, - {'default:steel_ingot', 'default:steel_ingot'}, - } -}) - - ----- Fence Gate ---- - -function doors.register_fencegate(name, def) - local fence = { - description = def.description, - drawtype = "nodebox", - tiles = {}, - inventory_image = def.inventory_image, - wield_image = def.wield_image, - paramtype = "light", - paramtype2 = "facedir", - sunlight_propagates = true, - is_ground_content = false, - drop = name .. "_closed", - connect_sides = {"left", "right"}, - groups = def.groups, - sounds = def.sounds, - on_rightclick = function(pos, node, clicker, itemstack, pointed_thing) - local node_def = minetest.registered_nodes[node.name] - minetest.swap_node(pos, {name = node_def.gate, param2 = node.param2}) - minetest.sound_play(node_def.sound, {pos = pos, gain = 0.3, - max_hear_distance = 8}) - return itemstack - end, - mesecons = {effector = { - action_on = function(pos, node, clicker, itemstack, pointed_thing) - local node_def = minetest.registered_nodes[node.name] - minetest.swap_node(pos, {name = node_def.gate, param2 = node.param2}) - minetest.sound_play(node_def.sound, {pos = pos, gain = 0.3, - max_hear_distance = 8}) - return itemstack - end, - }, - } - } - - - if type(def.texture) == "string" then - fence.tiles[1] = {name = def.texture, backface_culling = true} - elseif def.texture.backface_culling == nil then - fence.tiles[1] = table.copy(def.texture) - fence.tiles[1].backface_culling = true - else - fence.tiles[1] = def.texture - end - - if not fence.sounds then - fence.sounds = default.node_sound_wood_defaults() - end - - fence.groups.fence = 1 - - local fence_closed = table.copy(fence) - fence_closed.node_box = { - type = "fixed", - fixed = { - {-1/2, -1/2+5/16, -1/16, -1/2+2/16, 1/2, 1/16}, -- Left completion - {1/2-2/16, -1/2+5/16, -1/16, 1/2, 1/2, 1/16}, -- Right completion - {-2/16, -1/2+6/16, -1/16, 0, 1/2-1/16, 1/16}, -- Center Left - {0, -1/2+6/16, -1/16, 2/16, 1/2-1/16, 1/16}, -- Center Right - {-2/16, 1/2-4/16, 1/16, -1/2, 1/2-1/16, -1/16}, -- Above (cross) -z - {-2/16, -1/2+6/16, 1/16, -1/2, -1/2+9/16, -1/16}, -- Bottom (cross) -z - {2/16, 1/2-4/16, -1/16, 1/2, 1/2-1/16, 1/16}, -- Above (transverse) z - {2/16, -1/2+6/16, -1/16, 1/2, -1/2+9/16, 1/16}, -- Below (across) z - {-2/16, 1/2, -2/16, -2/16, 1/2+8/16, -2/16}, - {-2/16, 1/2, 2/16, -2/16, 1/2+8/16, 2/16}, - {2/16, 1/2, -2/16, 2/16, 1/2+8/16, -2/16}, - {2/16, 1/2, 2/16, 2/16, 1/2+8/16, 2/16}, - {-6/16, 1/2-1/16, 1/16, -6/16, 1/2+8/16, 1/16}, -- Top block (cross) -x 1 side - {-6/16, 1/2-1/16, -1/16, -6/16, 1/2+8/16, -1/16}, -- Top block (cross) -x 2 side - {5/16, 1/2-1/16, 1/16, 5/16, 1/2+8/16, 1/16}, -- Top block (cross) x 1 side - {5/16, 1/2-1/16, -1/16, 5/16, 1/2+8/16, -1/16}, -- Top block (cross) x 2 side - } - } - fence_closed.gate = name .. "_open" - fence_closed.sound = "doors_fencegate_open" - fence_closed.selection_box = { - type = "fixed", - fixed = { - {-1/2, -1/2+5/16, -1/16, 1/2, 1/2, 1/16}, -- Gate - } - } - local fence_open = table.copy(fence) - fence_open.node_box = { - type = "fixed", - fixed = { - {-1/2, -1/2+5/16, -1/16, -1/2+2/16, 1/2, 1/16}, -- Left completion - {1/2-2/16, -1/2+5/16, -1/16, 1/2, 1/2, 1/16}, -- Right completion - {-1/2, 1/2-4/16, 1/16, -1/2+2/16, 1/2-1/16, 1/2-2/16}, -- Top-left (transverse) x - {-1/2, -1/2+6/16, 1/16, -1/2+2/16, -1/2+9/16, 1/2-2/16}, -- Bottom-left (transverse) x - {1/2-2/16, 1/2-4/16, 1/16, 1/2, 1/2-1/16, 1/2}, -- Top-right (transverse) x - {1/2-2/16, -1/2+6/16, 1/16, 1/2, -1/2+9/16, 1/2}, -- Bottom-right (transverse) x - {-1/2, -1/2+6/16, 6/16, -1/2+2/16, 1/2-1/16, 1/2}, -- Center Left - {1/2-2/16, 1/2-4/16, 1/2, 1/2, -1/2+9/16, 6/16}, -- Center Right - }, - } - fence_open.gate = name .. "_closed" - fence_open.sound = "doors_fencegate_close" - fence_open.groups.not_in_creative_inventory = 1 - fence_open.selection_box = { - type = "fixed", - fixed = { - {-1/2, -1/2+5/16, -1/16, -1/2+2/16, 1/2, 1/2}, -- Left - {1/2-2/16, -1/2+5/16, -1/16, 1/2, 1/2, 1/2}, -- Right - } - } - - minetest.register_node(":" .. name .. "_closed", fence_closed) - minetest.register_node(":" .. name .. "_open", fence_open) - - minetest.register_craft({ - output = name .. "_closed", - recipe = { - {"group:stick", def.material, "group:stick"}, - {"group:stick", def.material, "group:stick"} - } - }) -end - -doors.register_fencegate("doors:gate_wood", { - description = "Apple Wood Fence Gate", - texture = "default_wood.png", - inventory_image = "default_wood_fencegate.png", - wield_image = "default_wood_fencegate.png", - material = "default:wood", - groups = {choppy = 2, oddly_breakable_by_hand = 2, flammable = 2} -}) - -minetest.register_alias("fences:fencegate_open", "doors:gate_wood") -minetest.register_alias("fences:fencegate", "doors:gate_wood_closed") diff --git a/games/default/files/doors/license.txt b/games/default/files/doors/license.txt deleted file mode 100644 index 5db85d54e..000000000 --- a/games/default/files/doors/license.txt +++ /dev/null @@ -1,165 +0,0 @@ -License of source code ----------------------- - -The MIT License (MIT) -Copyright (C) 2012-2016 PilzAdam -Copyright (C) 2014-2016 BlockMen -Copyright (C) 2015-2016 sofar (sofar@foo-projects.org) -Copyright (C) 2012-2016 Various Minetest developers and contributors -Copyright (C) 2019 MultiCraft Development Team - -Permission is hereby granted, free of charge, to any person obtaining a copy of this -software and associated documentation files (the "Software"), to deal in the Software -without restriction, including without limitation the rights to use, copy, modify, merge, -publish, distribute, sublicense, and/or sell copies of the Software, and to permit -persons to whom the Software is furnished to do so, subject to the following conditions: - -The above copyright notice and this permission notice shall be included in all copies or -substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, -INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR -PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE -FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR -OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER -DEALINGS IN THE SOFTWARE. - -For more details: -https://opensource.org/licenses/MIT - - -Licenses of media (textures, models and sounds) ------------------------------------------------ - -Attribution-ShareAlike 3.0 Unported (CC BY-SA 3.0) -Copyright (C) 2011-2016 Fernando Zapata -Copyright (C) 2014-2016 celeron55 -Copyright (C) 2012-2016 PilzAdam -Copyright (C) 2014-2016 BlockMen -Copyright (C) 2015-2016 sofar -Copyright (C) 2016 red-001 -Copyright (C) 2016 paramat - -You are free to: -Share — copy and redistribute the material in any medium or format. -Adapt — remix, transform, and build upon the material for any purpose, even commercially. -The licensor cannot revoke these freedoms as long as you follow the license terms. - -Under the following terms: - -Attribution — You must give appropriate credit, provide a link to the license, and -indicate if changes were made. You may do so in any reasonable manner, but not in any way -that suggests the licensor endorses you or your use. - -ShareAlike — If you remix, transform, or build upon the material, you must distribute -your contributions under the same license as the original. - -No additional restrictions — You may not apply legal terms or technological measures that -legally restrict others from doing anything the license permits. - -Notices: - -You do not have to comply with the license for elements of the material in the public -domain or where your use is permitted by an applicable exception or limitation. -No warranties are given. The license may not give you all of the permissions necessary -for your intended use. For example, other rights such as publicity, privacy, or moral -rights may limit how you use the material. - -For more details: -http://creativecommons.org/licenses/by-sa/3.0/ - ------------------------ - -Attribution-ShareAlike 4.0 International (CC BY-SA 4.0) -Copyright (C) 2014-2016 PenguinDad - -You are free to: -Share — copy and redistribute the material in any medium or format. -Adapt — remix, transform, and build upon the material for any purpose, even commercially. -The licensor cannot revoke these freedoms as long as you follow the license terms. - -Under the following terms: - -Attribution — You must give appropriate credit, provide a link to the license, and -indicate if changes were made. You may do so in any reasonable manner, but not in any way -that suggests the licensor endorses you or your use. - -ShareAlike — If you remix, transform, or build upon the material, you must distribute -your contributions under the same license as the original. - -No additional restrictions — You may not apply legal terms or technological measures that -legally restrict others from doing anything the license permits. - -Notices: - -You do not have to comply with the license for elements of the material in the public -domain or where your use is permitted by an applicable exception or limitation. -No warranties are given. The license may not give you all of the permissions necessary -for your intended use. For example, other rights such as publicity, privacy, or moral -rights may limit how you use the material. - -For more details: -http://creativecommons.org/licenses/by-sa/4.0/ - ------------------------ - -Attribution 3.0 Unported (CC BY 3.0) -Copyright (C) 2014 CGEffex -Copyright (C) 2014 bennstir -Copyright (C) 2016 BarkersPinhead -Copyright (C) 2016 rivernile7 -Copyright (C) 2016 HazMatt - -You are free to: -Share — copy and redistribute the material in any medium or format. -Adapt — remix, transform, and build upon the material for any purpose, even commercially. -The licensor cannot revoke these freedoms as long as you follow the license terms. - -Under the following terms: - -Attribution — You must give appropriate credit, provide a link to the license, and -indicate if changes were made. You may do so in any reasonable manner, but not in any way -that suggests the licensor endorses you or your use. - -No additional restrictions — You may not apply legal terms or technological measures that -legally restrict others from doing anything the license permits. - -Notices: - -You do not have to comply with the license for elements of the material in the public -domain or where your use is permitted by an applicable exception or limitation. -No warranties are given. The license may not give you all of the permissions necessary -for your intended use. For example, other rights such as publicity, privacy, or moral -rights may limit how you use the material. - -For more details: -http://creativecommons.org/licenses/by/3.0/ - ------------------------ - -CC0 1.0 Universal (CC0 1.0) Public Domain Dedication -mhtaylor67 -SkeetMasterFunk69 - -No Copyright - -The person who associated a work with this deed has dedicated the work to the public -domain by waiving all of his or her rights to the work worldwide under copyright law, -including all related and neighboring rights, to the extent allowed by law. - -You can copy, modify, distribute and perform the work, even for commercial purposes, all -without asking permission. See Other Information below. - -Other Information - -In no way are the patent or trademark rights of any person affected by CC0, nor are the -rights that other persons may have in the work or in how the work is used, such as -publicity or privacy rights. -Unless expressly stated otherwise, the person who associated a work with this deed makes -no warranties about the work, and disclaims liability for all uses of the work, to the -fullest extent permitted by applicable law. -When using or citing the work, you should not imply endorsement by the author or the -affirmer. - -For more details: -https://creativecommons.org/publicdomain/zero/1.0/ diff --git a/games/default/files/doors/sounds/doors_door_close.ogg b/games/default/files/doors/sounds/doors_door_close.ogg deleted file mode 100644 index fede4af32..000000000 Binary files a/games/default/files/doors/sounds/doors_door_close.ogg and /dev/null differ diff --git a/games/default/files/doors/sounds/doors_door_open.ogg b/games/default/files/doors/sounds/doors_door_open.ogg deleted file mode 100644 index 9a4c4f111..000000000 Binary files a/games/default/files/doors/sounds/doors_door_open.ogg and /dev/null differ diff --git a/games/default/files/doors/sounds/doors_fencegate_close.ogg b/games/default/files/doors/sounds/doors_fencegate_close.ogg deleted file mode 100644 index d42590ffb..000000000 Binary files a/games/default/files/doors/sounds/doors_fencegate_close.ogg and /dev/null differ diff --git a/games/default/files/doors/sounds/doors_fencegate_open.ogg b/games/default/files/doors/sounds/doors_fencegate_open.ogg deleted file mode 100644 index f6dfd1d97..000000000 Binary files a/games/default/files/doors/sounds/doors_fencegate_open.ogg and /dev/null differ diff --git a/games/default/files/doors/sounds/doors_steel_door_close.ogg b/games/default/files/doors/sounds/doors_steel_door_close.ogg deleted file mode 100644 index aea7be670..000000000 Binary files a/games/default/files/doors/sounds/doors_steel_door_close.ogg and /dev/null differ diff --git a/games/default/files/doors/sounds/doors_steel_door_open.ogg b/games/default/files/doors/sounds/doors_steel_door_open.ogg deleted file mode 100644 index de8747701..000000000 Binary files a/games/default/files/doors/sounds/doors_steel_door_open.ogg and /dev/null differ diff --git a/games/default/files/doors/textures/doors_door_steel.png b/games/default/files/doors/textures/doors_door_steel.png deleted file mode 100644 index 45cde056f..000000000 Binary files a/games/default/files/doors/textures/doors_door_steel.png and /dev/null differ diff --git a/games/default/files/doors/textures/doors_door_wood.png b/games/default/files/doors/textures/doors_door_wood.png deleted file mode 100644 index b662d73e6..000000000 Binary files a/games/default/files/doors/textures/doors_door_wood.png and /dev/null differ diff --git a/games/default/files/doors/textures/doors_item_steel.png b/games/default/files/doors/textures/doors_item_steel.png deleted file mode 100644 index 83c31508d..000000000 Binary files a/games/default/files/doors/textures/doors_item_steel.png and /dev/null differ diff --git a/games/default/files/doors/textures/doors_item_wood.png b/games/default/files/doors/textures/doors_item_wood.png deleted file mode 100644 index 1cfa69ae2..000000000 Binary files a/games/default/files/doors/textures/doors_item_wood.png and /dev/null differ diff --git a/games/default/files/doors/textures/doors_trapdoor.png b/games/default/files/doors/textures/doors_trapdoor.png deleted file mode 100644 index 996d4b3db..000000000 Binary files a/games/default/files/doors/textures/doors_trapdoor.png and /dev/null differ diff --git a/games/default/files/doors/textures/doors_trapdoor_side.png b/games/default/files/doors/textures/doors_trapdoor_side.png deleted file mode 100644 index 06ed3e910..000000000 Binary files a/games/default/files/doors/textures/doors_trapdoor_side.png and /dev/null differ diff --git a/games/default/files/doors/textures/doors_trapdoor_steel.png b/games/default/files/doors/textures/doors_trapdoor_steel.png deleted file mode 100644 index 71e748dbb..000000000 Binary files a/games/default/files/doors/textures/doors_trapdoor_steel.png and /dev/null differ diff --git a/games/default/files/doors/textures/doors_trapdoor_steel_side.png b/games/default/files/doors/textures/doors_trapdoor_steel_side.png deleted file mode 100644 index c281cc0d4..000000000 Binary files a/games/default/files/doors/textures/doors_trapdoor_steel_side.png and /dev/null differ diff --git a/games/default/files/drops/README.txt b/games/default/files/drops/README.txt deleted file mode 100644 index 69e206e4f..000000000 --- a/games/default/files/drops/README.txt +++ /dev/null @@ -1,21 +0,0 @@ -MultiCraft Game mod: Drops -========================= - -Introduction: -This mod adds drop/pick up of items. - -License of source code: ------------------------ -Copyright (C) PilzAdam -Copyright (C) Jordan4ibanez -Copyright (C) 2019 Stuart Jones (stujones11) - -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. - -http://www.gnu.org/licenses/lgpl-3.0.html - -License of media (sounds): -WTFPL diff --git a/games/default/files/drops/init.lua b/games/default/files/drops/init.lua deleted file mode 100644 index 2872231bb..000000000 --- a/games/default/files/drops/init.lua +++ /dev/null @@ -1,51 +0,0 @@ -local radius = 2 -- Radius of item magnet -local age = 0.5 -- How old an item has to be before collecting - -local function collect_items(player) - local pos = player:get_pos() - if not minetest.is_valid_pos(pos) then - return - end - -- Detect - local col_pos = vector.add(pos, {x = 0, y = 1.3, z = 0}) - local objects = minetest.get_objects_inside_radius(col_pos, radius) - for _, object in ipairs(objects) do - local entity = object:get_luaentity() - if entity and not object:is_player() and - not entity.collectioner and - entity.name == "__builtin:item" and entity.age > age then - local item = ItemStack(entity.itemstring) - local inv = player:get_inventory() - if item:get_name() ~= "" and inv and - inv:room_for_item("main", item) then - -- Magnet - object:move_to(col_pos) - entity.collectioner = true - -- Collect - if entity.collectioner == true then - minetest.after(0.05, function() - minetest.sound_play("item_drop_pickup", { - pos = col_pos, - max_hear_distance = 10, - gain = 0.2, - }) - entity.itemstring = "" - object:remove() - inv:add_item("main", item) - end) - end - end - end - end -end - --- Item collection - -minetest.register_playerstep(function(dtime, playernames) - for _, name in pairs(playernames) do - local player = minetest.get_player_by_name(name) - if player and player:is_player() and player:get_hp() > 0 then - collect_items(player) - end - end -end, minetest.is_singleplayer()) -- Force step in singlplayer mode only diff --git a/games/default/files/drops/sounds/item_drop_pickup.1.ogg b/games/default/files/drops/sounds/item_drop_pickup.1.ogg deleted file mode 100644 index 7b450d88a..000000000 Binary files a/games/default/files/drops/sounds/item_drop_pickup.1.ogg and /dev/null differ diff --git a/games/default/files/drops/sounds/item_drop_pickup.2.ogg b/games/default/files/drops/sounds/item_drop_pickup.2.ogg deleted file mode 100644 index 9d659c868..000000000 Binary files a/games/default/files/drops/sounds/item_drop_pickup.2.ogg and /dev/null differ diff --git a/games/default/files/drops/sounds/item_drop_pickup.3.ogg b/games/default/files/drops/sounds/item_drop_pickup.3.ogg deleted file mode 100644 index a2ef6a1a0..000000000 Binary files a/games/default/files/drops/sounds/item_drop_pickup.3.ogg and /dev/null differ diff --git a/games/default/files/drops/sounds/item_drop_pickup.4.ogg b/games/default/files/drops/sounds/item_drop_pickup.4.ogg deleted file mode 100644 index c9aebc3c3..000000000 Binary files a/games/default/files/drops/sounds/item_drop_pickup.4.ogg and /dev/null differ diff --git a/games/default/files/dungeon_loot/LICENSE.txt b/games/default/files/dungeon_loot/LICENSE.txt deleted file mode 100644 index 0af30a0c6..000000000 --- a/games/default/files/dungeon_loot/LICENSE.txt +++ /dev/null @@ -1,24 +0,0 @@ -License of source code ----------------------- - -The MIT License (MIT) -Copyright (C) 2017 sfan5 - -Permission is hereby granted, free of charge, to any person obtaining a copy of this -software and associated documentation files (the "Software"), to deal in the Software -without restriction, including without limitation the rights to use, copy, modify, merge, -publish, distribute, sublicense, and/or sell copies of the Software, and to permit -persons to whom the Software is furnished to do so, subject to the following conditions: - -The above copyright notice and this permission notice shall be included in all copies or -substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, -INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR -PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE -FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR -OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER -DEALINGS IN THE SOFTWARE. - -For more details: -https://opensource.org/licenses/MIT diff --git a/games/default/files/dungeon_loot/README.txt b/games/default/files/dungeon_loot/README.txt deleted file mode 100644 index e1c478dbb..000000000 --- a/games/default/files/dungeon_loot/README.txt +++ /dev/null @@ -1,11 +0,0 @@ -MultiCraft Game mod: dungeon_loot -=============================== -Adds randomly generated chests with some "loot" to generated dungeons, -an API to register additional loot is provided. -Only works if dungeons are actually enabled in mapgen flags. - -License information can be found in license.txt - -Authors of source code ----------------------- -Originally by sfan5 (MIT) diff --git a/games/default/files/dungeon_loot/init.lua b/games/default/files/dungeon_loot/init.lua deleted file mode 100644 index d9e746102..000000000 --- a/games/default/files/dungeon_loot/init.lua +++ /dev/null @@ -1,8 +0,0 @@ -dungeon_loot = {} - -dungeon_loot.CHESTS_MIN = 1 -dungeon_loot.CHESTS_MAX = 3 -dungeon_loot.STACKS_PER_CHEST_MAX = 8 - -dofile(minetest.get_modpath("dungeon_loot") .. "/loot.lua") -dofile(minetest.get_modpath("dungeon_loot") .. "/mapgen.lua") diff --git a/games/default/files/dungeon_loot/loot.lua b/games/default/files/dungeon_loot/loot.lua deleted file mode 100644 index f9cbf7471..000000000 --- a/games/default/files/dungeon_loot/loot.lua +++ /dev/null @@ -1,81 +0,0 @@ -dungeon_loot.registered_loot = { - -- buckets - {name = "bucket:bucket_empty", chance = 0.55}, - -- water in deserts or above ground, lava otherwise - {name = "bucket:bucket_water", chance = 0.45, types = {"sandstone", "desert"}}, - {name = "bucket:bucket_water", chance = 0.45, y = {0, 256}, types = {"normal"}}, - {name = "bucket:bucket_lava", chance = 0.45, y = {-64, -1}, types = {"normal"}}, - - -- various items - {name = "default:stick", chance = 0.6, count = {3, 6}}, - {name = "default:flint", chance = 0.4, count = {1, 3}}, - {name = "vessels:glass_bottle", chance = 0.35, count = {1, 4}}, --- {name = "carts:rail", chance = 0.35, count = {1, 6}}, - - -- farming / consumable - {name = "farming:string", chance = 0.5, count = {1, 8}}, - {name = "farming:wheat", chance = 0.5, count = {2, 5}}, - {name = "default:apple", chance = 0.4, count = {1, 4}}, --- {name = "farming:seed_cotton", chance = 0.4, count = {1, 4}, types = {"normal"}}, - {name = "default:cactus", chance = 0.4, count = {1, 4}, types = {"sandstone", "desert"}}, - - -- trees sappling - - {name = "default:sapling", chance = 0.5, count = {1, 2}}, - {name = "default:pine_sapling", chance = 0.5, count = {1, 2}}, - {name = "default:junglesapling", chance = 0.5, count = {1, 2}}, - {name = "default:acacia_sapling", chance = 0.5, count = {1, 2}}, - - -- minerals - {name = "default:coal_lump", chance = 0.9, count = {1, 12}}, - {name = "default:gold_ingot", chance = 0.5}, - {name = "default:steel_ingot", chance = 0.4, count = {1, 6}}, - {name = "default:diamond", chance = 0.15, count = {1, 2}}, - {name = "default:emerald", chance = 0.1, count = {1, 2}}, - - -- tools - {name = "default:sword_steel", chance = 0.6}, - {name = "default:sword_gold", chance = 0.3}, - {name = "default:sword_diamond", chance = 0.05}, - - {name = "default:pick_steel", chance = 0.3}, - {name = "default:pick_gold", chance = 0.2}, - {name = "default:pick_diamond", chance = 0.05}, - - {name = "default:shovel_steel", chance = 0.3}, - {name = "default:shovel_gold", chance = 0.2}, - {name = "default:shovel_diamond", chance = 0.05}, - - {name = "default:axe_steel", chance = 0.4}, - {name = "default:axe_gold", chance = 0.2}, - {name = "default:axe_diamond", chance = 0.05}, - - -- natural materials - {name = "default:sand", chance = 0.8, count = {4, 32}, y = {-64, 256}, types = {"normal"}}, - {name = "default:sandstonesmooth", chance = 0.8, count = {4, 32}, y = {-64, 256}, types = {"sandstone"}}, - {name = "default:mossycobble", chance = 0.8, count = {4, 32}, types = {"desert"}}, - {name = "default:dirt", chance = 0.6, count = {2, 16}, y = {-64, 256}}, - {name = "default:obsidian", chance = 0.25, count = {1, 3}, y = {-64, -512}}, -} - -function dungeon_loot.register(t) - if t.name ~= nil then - t = {t} -- single entry - end - for _, loot in ipairs(t) do - table.insert(dungeon_loot.registered_loot, loot) - end -end - -function dungeon_loot._internal_get_loot(pos_y, dungeontype) - -- filter by y pos and type - local ret = {} - for _, l in ipairs(dungeon_loot.registered_loot) do - if l.y == nil or (pos_y >= l.y[1] and pos_y <= l.y[2]) then - if l.types == nil or table.indexof(l.types, dungeontype) ~= -1 then - table.insert(ret, l) - end - end - end - return ret -end diff --git a/games/default/files/dungeon_loot/mapgen.lua b/games/default/files/dungeon_loot/mapgen.lua deleted file mode 100644 index f8c51fcdd..000000000 --- a/games/default/files/dungeon_loot/mapgen.lua +++ /dev/null @@ -1,170 +0,0 @@ -minetest.set_gen_notify({dungeon = true, temple = true}) - -local function noise3d_integer(noise, pos) - return math.abs(math.floor(noise:get3d(pos) * 0x7fffffff)) -end - -local function random_sample(rand, list, count) - local ret = {} - for n = 1, count do - local idx = rand:next(1, #list) - table.insert(ret, list[idx]) - table.remove(list, idx) - end - return ret -end - -local function find_walls(cpos) - local wall = minetest.registered_aliases["mapgen_cobble"] - local wall_alt = minetest.registered_aliases["mapgen_mossycobble"] - local wall_ss = minetest.registered_aliases["mapgen_sandstonebrick"] - local wall_ds = minetest.registered_aliases["mapgen_desert_stone"] - local is_wall = function(node) - return table.indexof({wall, wall_alt, wall_ss, wall_ds}, node.name) ~= -1 - end - - local dirs = {{x=1, z=0}, {x=-1, z=0}, {x=0, z=1}, {x=0, z=-1}} - local get_node = minetest.get_node - - local ret = {} - local mindist = {x=0, z=0} - local min = function(a, b) return a ~= 0 and math.min(a, b) or b end - local wallnode - for _, dir in ipairs(dirs) do - for i = 1, 9 do -- 9 = max room size / 2 - local pos = vector.add(cpos, {x=dir.x*i, y=0, z=dir.z*i}) - - -- continue in that direction until we find a wall-like node - local node = get_node(pos) - if is_wall(node) then - local front_below = vector.subtract(pos, {x=dir.x, y=1, z=dir.z}) - local above = vector.add(pos, {x=0, y=1, z=0}) - - -- check that it: - --- is at least 2 nodes high (not a staircase) - --- has a floor - if is_wall(get_node(front_below)) and is_wall(get_node(above)) then - table.insert(ret, {pos = pos, facing = {x=-dir.x, y=0, z=-dir.z}}) - if dir.z == 0 then - mindist.x = min(mindist.x, i-1) - else - mindist.z = min(mindist.z, i-1) - end - wallnode = node.name - end - -- abort even if it wasn't a wall cause something is in the way - break - end - end - end - - local mapping = { - [wall_ss] = "sandstone", - [wall_ds] = "desert" - } - return { - walls = ret, - size = {x=mindist.x*2, z=mindist.z*2}, - type = mapping[wallnode] or "normal" - } -end - -local function populate_chest(pos, rand, dungeontype) - --minetest.chat_send_all("chest placed at " .. minetest.pos_to_string(pos) .. " [" .. dungeontype .. "]") - --minetest.add_node(vector.add(pos, {x=0, y=1, z=0}), {name="default:torch", param2=1}) - - local item_list = dungeon_loot._internal_get_loot(pos.y, dungeontype) - -- take random (partial) sample of all possible items - assert(#item_list >= dungeon_loot.STACKS_PER_CHEST_MAX) - item_list = random_sample(rand, item_list, dungeon_loot.STACKS_PER_CHEST_MAX) - - -- apply chances / randomized amounts and collect resulting items - local items = {} - for _, loot in ipairs(item_list) do - if rand:next(0, 1000) / 1000 <= loot.chance then - local itemdef = minetest.registered_items[loot.name] - local amount = 1 - if loot.count ~= nil then - amount = rand:next(loot.count[1], loot.count[2]) - end - - if itemdef then - if itemdef.tool_capabilities then - for n = 1, amount do - local wear = rand:next(0.20 * 65535, 0.75 * 65535) -- 20% to 75% wear - table.insert(items, ItemStack({name = loot.name, wear = wear})) - end - elseif itemdef.stack_max == 1 then - -- not stackable, add separately - for n = 1, amount do - table.insert(items, loot.name) - end - else - table.insert(items, ItemStack({name = loot.name, count = amount})) - end - end - end - end - - -- place items at random places in chest - local inv = minetest.get_meta(pos):get_inventory() - local listsz = inv:get_size("main") - assert(listsz >= #items) - for _, item in ipairs(items) do - local index = rand:next(1, listsz) - if inv:get_stack("main", index):is_empty() then - inv:set_stack("main", index, item) - else - inv:add_item("main", item) -- space occupied, just put it anywhere - end - end -end - - -minetest.register_on_generated(function(minp, maxp, blockseed) - local gennotify = minetest.get_mapgen_object("gennotify") - local poslist = gennotify["dungeon"] or {} - for _, entry in ipairs(gennotify["temple"] or {}) do - table.insert(poslist, entry) - end - if #poslist == 0 then return end - - local noise = minetest.get_perlin(10115, 4, 0.5, 1) - local rand = PcgRandom(noise3d_integer(noise, poslist[1])) - - local candidates = {} - -- process at most 8 rooms to keep runtime of this predictable - local num_process = math.min(#poslist, 8) - for i = 1, num_process do - local room = find_walls(poslist[i]) - -- skip small rooms and everything that doesn't at least have 3 walls - if math.min(room.size.x, room.size.z) >= 2 and #room.walls >= 3 then - table.insert(candidates, room) - end - end - - local num_chests = rand:next(dungeon_loot.CHESTS_MIN, dungeon_loot.CHESTS_MAX) - num_chests = math.min(#candidates, num_chests) - local rooms = random_sample(rand, candidates, num_chests) - - for _, room in ipairs(rooms) do - -- choose place somewhere in front of any of the walls - local wall = room.walls[rand:next(1, #room.walls)] - local v, vi -- vector / axis that runs alongside the wall - if wall.facing.x ~= 0 then - v, vi = {x=0, y=0, z=1}, "z" - else - v, vi = {x=1, y=0, z=0}, "x" - end - local chestpos = vector.add(wall.pos, wall.facing) - local off = rand:next(-room.size[vi]/2 + 1, room.size[vi]/2 - 1) - chestpos = vector.add(chestpos, vector.multiply(v, off)) - - if minetest.get_node(chestpos).name == "air" then - -- make it face inwards to the room - local facedir = minetest.dir_to_facedir(vector.multiply(wall.facing, -1)) - minetest.add_node(chestpos, {name = "default:chest", param2 = facedir}) - populate_chest(chestpos, PcgRandom(noise3d_integer(noise, chestpos)), room.type) - end - end -end) diff --git a/games/default/files/dye/README.txt b/games/default/files/dye/README.txt deleted file mode 100644 index 469980b74..000000000 --- a/games/default/files/dye/README.txt +++ /dev/null @@ -1,9 +0,0 @@ -MultiCraft Game mod: dye -====================== -See license.txt for license information. -See init.lua for documentation. - -Authors of source code ----------------------- -Originally by Perttu Ahola (celeron55) (MIT) -Various Minetest developers and contributors (MIT) diff --git a/games/default/files/dye/init.lua b/games/default/files/dye/init.lua deleted file mode 100644 index de2731d7e..000000000 --- a/games/default/files/dye/init.lua +++ /dev/null @@ -1,114 +0,0 @@ -dye = {} - --- Make dye names and descriptions available globally - -dye.dyes = { - {"black", "Black"}, - {"blue", "Blue"}, - {"brown", "Brown"}, - {"cyan", "Cyan"}, - {"dark_green", "Dark Green"}, - {"dark_grey", "Dark Grey"}, - {"green", "Green"}, - {"grey", "Grey"}, - {"magenta", "Magenta"}, - {"orange", "Orange"}, - {"pink", "Pink"}, - {"red", "Red"}, - {"violet", "Violet"}, - {"white", "White"}, - {"yellow", "Yellow"}, -} - --- Define items - -for _, row in ipairs(dye.dyes) do - local name = row[1] - local description = row[2] - local groups = {dye = 1} - groups["color_" .. name] = 1 - - minetest.register_craftitem("dye:" .. name, { - inventory_image = "dye_" .. name .. ".png", - description = description .. " Dye", - groups = groups - }) - - minetest.register_craft({ - output = "dye:" .. name .. " 4", - recipe = { - {"group:flower,color_" .. name} - }, - }) -end - --- Manually add coal -> black dye - -minetest.register_craft({ - output = "dye:black 4", - recipe = { - {"group:coal"} - }, -}) - --- Mix recipes - -local dye_recipes = { - -- src1, src2, dst - -- RYB mixes - {"red", "blue", "violet"}, -- "purple" - {"yellow", "red", "orange"}, - {"yellow", "blue", "green"}, - -- RYB complementary mixes - {"yellow", "violet", "dark_grey"}, - {"blue", "orange", "dark_grey"}, - -- CMY mixes - approximation - {"cyan", "yellow", "green"}, - {"cyan", "magenta", "blue"}, - {"yellow", "magenta", "red"}, - -- other mixes that result in a color we have - {"red", "green", "brown"}, - {"magenta", "blue", "violet"}, - {"green", "blue", "cyan"}, - {"pink", "violet", "magenta"}, - -- mixes with black - {"white", "black", "grey"}, - {"grey", "black", "dark_grey"}, - {"green", "black", "dark_green"}, - {"orange", "black", "brown"}, - -- mixes with white - {"white", "red", "pink"}, - {"white", "dark_grey", "grey"}, - {"white", "dark_green", "green"}, -} - -for _, mix in pairs(dye_recipes) do - minetest.register_craft({ - type = "shapeless", - output = 'dye:' .. mix[3] .. ' 2', - recipe = {'dye:' .. mix[1], 'dye:' .. mix[2]}, - }) -end - -minetest.register_craft({ - output = "dye:white 3", - recipe = { - {"default:bone"}, - } -}) - -minetest.register_craft({ - output = "dye:blue 9", - recipe = { - {"default:lapisblock"}, - } -}) - -minetest.register_craft({ - output = "default:lapisblock", - recipe = { - {"dye:blue", "dye:blue", "dye:blue"}, - {"dye:blue", "dye:blue", "dye:blue"}, - {"dye:blue", "dye:blue", "dye:blue"}, - } -}) diff --git a/games/default/files/dye/license.txt b/games/default/files/dye/license.txt deleted file mode 100644 index bf9d3501c..000000000 --- a/games/default/files/dye/license.txt +++ /dev/null @@ -1,60 +0,0 @@ -License of source code ----------------------- - -The MIT License (MIT) -Copyright (C) 2012-2016 Perttu Ahola (celeron55) -Copyright (C) 2012-2016 Various Minetest developers and contributors - -Permission is hereby granted, free of charge, to any person obtaining a copy of this -software and associated documentation files (the "Software"), to deal in the Software -without restriction, including without limitation the rights to use, copy, modify, merge, -publish, distribute, sublicense, and/or sell copies of the Software, and to permit -persons to whom the Software is furnished to do so, subject to the following conditions: - -The above copyright notice and this permission notice shall be included in all copies or -substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, -INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR -PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE -FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR -OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER -DEALINGS IN THE SOFTWARE. - -For more details: -https://opensource.org/licenses/MIT - - -Licenses of media (textures) ----------------------------- - -Attribution-ShareAlike 3.0 Unported (CC BY-SA 3.0) -Copyright (C) 2012-2016 Perttu Ahola (celeron55) - -You are free to: -Share — copy and redistribute the material in any medium or format. -Adapt — remix, transform, and build upon the material for any purpose, even commercially. -The licensor cannot revoke these freedoms as long as you follow the license terms. - -Under the following terms: - -Attribution — You must give appropriate credit, provide a link to the license, and -indicate if changes were made. You may do so in any reasonable manner, but not in any way -that suggests the licensor endorses you or your use. - -ShareAlike — If you remix, transform, or build upon the material, you must distribute -your contributions under the same license as the original. - -No additional restrictions — You may not apply legal terms or technological measures that -legally restrict others from doing anything the license permits. - -Notices: - -You do not have to comply with the license for elements of the material in the public -domain or where your use is permitted by an applicable exception or limitation. -No warranties are given. The license may not give you all of the permissions necessary -for your intended use. For example, other rights such as publicity, privacy, or moral -rights may limit how you use the material. - -For more details: -http://creativecommons.org/licenses/by-sa/3.0/ diff --git a/games/default/files/dye/textures/dye_black.png b/games/default/files/dye/textures/dye_black.png deleted file mode 100644 index 2ba95bf20..000000000 Binary files a/games/default/files/dye/textures/dye_black.png and /dev/null differ diff --git a/games/default/files/dye/textures/dye_blue.png b/games/default/files/dye/textures/dye_blue.png deleted file mode 100644 index 8c33627ac..000000000 Binary files a/games/default/files/dye/textures/dye_blue.png and /dev/null differ diff --git a/games/default/files/dye/textures/dye_brown.png b/games/default/files/dye/textures/dye_brown.png deleted file mode 100644 index 3cae5d0a4..000000000 Binary files a/games/default/files/dye/textures/dye_brown.png and /dev/null differ diff --git a/games/default/files/dye/textures/dye_cyan.png b/games/default/files/dye/textures/dye_cyan.png deleted file mode 100644 index fe0c821e3..000000000 Binary files a/games/default/files/dye/textures/dye_cyan.png and /dev/null differ diff --git a/games/default/files/dye/textures/dye_dark_green.png b/games/default/files/dye/textures/dye_dark_green.png deleted file mode 100644 index 4d5d4f1d1..000000000 Binary files a/games/default/files/dye/textures/dye_dark_green.png and /dev/null differ diff --git a/games/default/files/dye/textures/dye_dark_grey.png b/games/default/files/dye/textures/dye_dark_grey.png deleted file mode 100644 index f9258ffc9..000000000 Binary files a/games/default/files/dye/textures/dye_dark_grey.png and /dev/null differ diff --git a/games/default/files/dye/textures/dye_green.png b/games/default/files/dye/textures/dye_green.png deleted file mode 100644 index e81dd9a8a..000000000 Binary files a/games/default/files/dye/textures/dye_green.png and /dev/null differ diff --git a/games/default/files/dye/textures/dye_grey.png b/games/default/files/dye/textures/dye_grey.png deleted file mode 100644 index 3281f073e..000000000 Binary files a/games/default/files/dye/textures/dye_grey.png and /dev/null differ diff --git a/games/default/files/dye/textures/dye_magenta.png b/games/default/files/dye/textures/dye_magenta.png deleted file mode 100644 index e597f4ebb..000000000 Binary files a/games/default/files/dye/textures/dye_magenta.png and /dev/null differ diff --git a/games/default/files/dye/textures/dye_orange.png b/games/default/files/dye/textures/dye_orange.png deleted file mode 100644 index aeb2b6fbd..000000000 Binary files a/games/default/files/dye/textures/dye_orange.png and /dev/null differ diff --git a/games/default/files/dye/textures/dye_pink.png b/games/default/files/dye/textures/dye_pink.png deleted file mode 100644 index 8e5a633a6..000000000 Binary files a/games/default/files/dye/textures/dye_pink.png and /dev/null differ diff --git a/games/default/files/dye/textures/dye_red.png b/games/default/files/dye/textures/dye_red.png deleted file mode 100644 index 651ef16ac..000000000 Binary files a/games/default/files/dye/textures/dye_red.png and /dev/null differ diff --git a/games/default/files/dye/textures/dye_violet.png b/games/default/files/dye/textures/dye_violet.png deleted file mode 100644 index bbcfbf8d7..000000000 Binary files a/games/default/files/dye/textures/dye_violet.png and /dev/null differ diff --git a/games/default/files/dye/textures/dye_white.png b/games/default/files/dye/textures/dye_white.png deleted file mode 100644 index 4a1816b51..000000000 Binary files a/games/default/files/dye/textures/dye_white.png and /dev/null differ diff --git a/games/default/files/dye/textures/dye_yellow.png b/games/default/files/dye/textures/dye_yellow.png deleted file mode 100644 index db0b6a52e..000000000 Binary files a/games/default/files/dye/textures/dye_yellow.png and /dev/null differ diff --git a/games/default/files/experience/init.lua b/games/default/files/experience/init.lua deleted file mode 100644 index ec7fc1fea..000000000 --- a/games/default/files/experience/init.lua +++ /dev/null @@ -1,205 +0,0 @@ -experience = {} - -local modname = minetest.get_current_modname() -local modpath = minetest.get_modpath(modname) - -dofile(modpath .. "/xp.lua") - -local MAX_LEVEL = 40 -local MAX_HUD_XP = 32 - -local ORB_LIFETIME = 60 -local ORB_SOUND_INTERVAL = 0.01 -local ORB_COLLECT_RADIUS = 3 - -local xp, _hud = {}, {} - -local get_objs_rad = minetest.get_objects_inside_radius - -local vec_new, vec_dist, vec_mul, vec_sub = - vector.new, vector.distance, vector.multiply, vector.subtract - -local function init_data(player, reset) - local name = player:get_player_name() - local _xp = minetest.deserialize(player:get_attribute("xp")) - - if not _xp or reset then - xp[name] = { - xp_bar = 0, - level = 0, - } - else - xp[name] = _xp - end -end - -if minetest.settings:get_bool("enable_damage") then - hud.register("xp_bar", { - hud_elem_type = "statbar", - position = {x = 0.5, y = 1}, - alignment = {x = -1, y = -1}, - offset = {x = -256, y = -78}, - size = {x = 31, y = 14}, - text = "expbar_full.png", - background = "expbar_empty.png", - number = 0, - max = MAX_HUD_XP, - }) - - -- level number - hud.register("lvl", { - hud_elem_type = "text", - position = {x = 0.5, y = 1}, - alignment = {x = 0, y = -10}, - offset = {x = 188, y = 56}, - number = 0x3cff00, - text = "0", - }) -end - ---[[minetest.register_on_joinplayer(function(player) - local name = player:get_player_name() - init_data(player) - - _hud[name] = {} - lvl = player:hud_add({ - hud_elem_type = "text", - position = {x = 0.5, y = 0.91}, - offset = {x = 0, y = -25}, - alignment = {x = 0, y = 0}, - number = 0x3cff00, - text = "", - }) -end)]] - -function experience.add_orb(amount, pos) - if amount == 0 then return end - for _ = 1, amount do - local area = vec_new( - pos.x + math.random(0,5) / 5 - 0.5, - pos.y, - pos.z + math.random(0,5) / 5 - 0.5) - - minetest.add_entity(area, "experience:orb") - end -end - -if minetest.settings:get_bool("enable_damage") then - minetest.register_on_dignode(function(pos, oldnode, digger) - local name = oldnode.name - local xp_min = minetest.get_item_group(name, "xp_min") - local xp_max = minetest.get_item_group(name, "xp_max") - - if xp_min and xp_max and xp_max > 0 then - experience.add_orb(math.random(xp_min, xp_max), pos) - end - end) - - minetest.register_on_joinplayer(function(player) - init_data(player) - end) - - minetest.register_on_newplayer(function(player) - init_data(player) - end) - - minetest.register_on_dieplayer(function(player) - init_data(player, true) - end) - - minetest.register_playerstep(function(dtime, playernames) - for i = 1, #playernames do - local name = playernames[i] - local player = minetest.get_player_by_name(name) - local pos = player:get_pos() - - pos.y = pos.y + 0.5 - xp[name].timer = (xp[name].timer or 0) + dtime - - for _, obj in ipairs(get_objs_rad(pos, ORB_COLLECT_RADIUS)) do - local ent = obj:get_luaentity() - if not obj:is_player() and ent and ent.name == "experience:orb" then - local orb_pos = obj:get_pos() - - if vec_dist(pos, orb_pos) <= 1 then - if xp[name].timer >= ((xp[name].last_sound or 0) + ORB_SOUND_INTERVAL) then - minetest.sound_play("orb", {to_player = name}) - xp[name].last_sound = xp[name].timer - end - - local inc = 2 * xp[name].level + 7 - - if xp[name].level >= 16 then - inc = 5 * xp[name].level - 38 - elseif xp[name].level >= 31 then - inc = 9 * xp[name].level - 158 - end - - xp[name].xp_bar = xp[name].xp_bar + (MAX_HUD_XP / inc) - obj:remove() - else - pos.y = pos.y + 0.2 - local vec = vec_mul(vec_sub(pos, orb_pos), 3) - obj:set_velocity(vec) - end - end - end - - if xp[name].xp_bar >= MAX_HUD_XP then - if xp[name].level < MAX_LEVEL then - xp[name].level = xp[name].level + 1 - xp[name].xp_bar = xp[name].xp_bar - MAX_HUD_XP - else - xp[name].xp_bar = MAX_HUD_XP - end - end - - hud.change_item(player, "xp_bar", {number = xp[name].xp_bar}) - hud.change_item(player, "lvl", {text = xp[name].level}) - - player:set_attribute("xp", minetest.serialize(xp[name])) - - --[[ player:hud_change(_hud[name].lvl, "text", xp[name].level) - player:hud_change(_hud[name].lvl, "offset", - {x = (xp[name].level >= 10 and 13 or 6), y = -202}) ]] - end - end, minetest.is_singleplayer()) -- Force step in singlplayer mode only -end - -minetest.register_entity("experience:orb", { - timer = 0, - glow = 12, - physical = true, - textures = {"orb.png"}, - visual_size = {x = 0.1, y = 0.1}, - collisionbox = {-0.1, -0.1, -0.1, 0.1, 0.1, 0.1}, - collide_with_objects = false, - - on_activate = function(self, staticdata) - local obj = self.object - obj:set_armor_groups({immortal = 1}) - obj:set_velocity(vec_new(0, 1, 0)) - obj:set_acceleration(vec_new(0, -9.81, 0)) - end, - - on_step = function(self, dtime) - local obj = self.object - self.timer = self.timer + dtime - self.last_color_change = self.last_color_change or 0 - self.color_ratio = self.color_ratio or 0 - - if self.timer > ORB_LIFETIME then - obj:remove() - elseif self.timer >= self.last_color_change + 0.001 then - if self.color_ratio >= 120 then - self.color_back = true - elseif self.color_ratio <= 0 then - self.color_back = nil - end - - self.color_ratio = self.color_ratio + (self.color_back and -10 or 10) - obj:set_texture_mod("^[colorize:#e5ff02:" .. self.color_ratio) - self.last_color_change = self.timer - end - end, -}) diff --git a/games/default/files/experience/sounds/attributes.txt b/games/default/files/experience/sounds/attributes.txt deleted file mode 100644 index e9fc44559..000000000 --- a/games/default/files/experience/sounds/attributes.txt +++ /dev/null @@ -1 +0,0 @@ -http://www.freesound.org/people/partymix/sounds/24102/ diff --git a/games/default/files/experience/sounds/level_up.ogg b/games/default/files/experience/sounds/level_up.ogg deleted file mode 100644 index c6eeb6e44..000000000 Binary files a/games/default/files/experience/sounds/level_up.ogg and /dev/null differ diff --git a/games/default/files/experience/sounds/orb.1.ogg b/games/default/files/experience/sounds/orb.1.ogg deleted file mode 100644 index 48b32a1ae..000000000 Binary files a/games/default/files/experience/sounds/orb.1.ogg and /dev/null differ diff --git a/games/default/files/experience/sounds/orb.2.ogg b/games/default/files/experience/sounds/orb.2.ogg deleted file mode 100644 index 6f6c2bd24..000000000 Binary files a/games/default/files/experience/sounds/orb.2.ogg and /dev/null differ diff --git a/games/default/files/experience/sounds/orb.3.ogg b/games/default/files/experience/sounds/orb.3.ogg deleted file mode 100644 index 3a9d69a27..000000000 Binary files a/games/default/files/experience/sounds/orb.3.ogg and /dev/null differ diff --git a/games/default/files/experience/sounds/orb.4.ogg b/games/default/files/experience/sounds/orb.4.ogg deleted file mode 100644 index 2a953a193..000000000 Binary files a/games/default/files/experience/sounds/orb.4.ogg and /dev/null differ diff --git a/games/default/files/experience/textures/expbar_empty.png b/games/default/files/experience/textures/expbar_empty.png deleted file mode 100644 index 84de53704..000000000 Binary files a/games/default/files/experience/textures/expbar_empty.png and /dev/null differ diff --git a/games/default/files/experience/textures/expbar_full.png b/games/default/files/experience/textures/expbar_full.png deleted file mode 100644 index 811bee7b2..000000000 Binary files a/games/default/files/experience/textures/expbar_full.png and /dev/null differ diff --git a/games/default/files/experience/textures/orb.png b/games/default/files/experience/textures/orb.png deleted file mode 100644 index 3df97a29f..000000000 Binary files a/games/default/files/experience/textures/orb.png and /dev/null differ diff --git a/games/default/files/experience/textures/xp_empty.png b/games/default/files/experience/textures/xp_empty.png deleted file mode 100644 index 215e0d3e4..000000000 Binary files a/games/default/files/experience/textures/xp_empty.png and /dev/null differ diff --git a/games/default/files/experience/xp.lua b/games/default/files/experience/xp.lua deleted file mode 100644 index 7628e4031..000000000 --- a/games/default/files/experience/xp.lua +++ /dev/null @@ -1,13 +0,0 @@ --- --- Experience nodes --- - ---minetest.add_group("default:clay", {xp_min = 1, xp_max = 2}) -- craft recipe -minetest.add_group("default:stone_with_coal", {xp_min = 1, xp_max = 3}) ---minetest.add_group("default:stone_with_iron", {xp_min = 2, xp_max = 4}) -minetest.add_group("default:stone_with_lapis", {xp_min = 3, xp_max = 5}) ---minetest.add_group("default:glowstone", {xp_min = 3, xp_max = 5}) ---minetest.add_group("default:stone_with_gold", {xp_min = 4, xp_max = 6}) -minetest.add_group("default:stone_with_bluestone", {xp_min = 5, xp_max = 7}) -minetest.add_group("default:stone_with_diamond", {xp_min = 6, xp_max = 8}) -minetest.add_group("default:stone_with_emerald", {xp_min = 7, xp_max = 9}) diff --git a/games/default/files/farming/README.txt b/games/default/files/farming/README.txt deleted file mode 100644 index fcebb4a6b..000000000 --- a/games/default/files/farming/README.txt +++ /dev/null @@ -1,9 +0,0 @@ -MultiCraft Game mod: farming -========================== -See license.txt for license information. - -Authors of source code ----------------------- -Originally by PilzAdam (MIT) -webdesigner97 (MIT) -Various Minetest developers and contributors (MIT) \ No newline at end of file diff --git a/games/default/files/farming/api.lua b/games/default/files/farming/api.lua deleted file mode 100644 index 4a7b93dfd..000000000 --- a/games/default/files/farming/api.lua +++ /dev/null @@ -1,391 +0,0 @@ - --- Wear out hoes, place soil --- TODO Ignore group:flower -farming.registered_plants = {} - -farming.hoe_on_use = function(itemstack, user, pointed_thing, uses) - local pt = pointed_thing - -- check if pointing at a node - if not pt then - return - end - if pt.type ~= "node" then - return - end - - local under = minetest.get_node(pt.under) - local p = {x=pt.under.x, y=pt.under.y+1, z=pt.under.z} - local above = minetest.get_node(p) - - -- return if any of the nodes is not registered - if not minetest.registered_nodes[under.name] then - return - end - if not minetest.registered_nodes[above.name] then - return - end - - -- check if the node above the pointed thing is air - if above.name ~= "air" then - return - end - - -- check if pointing at soil - if minetest.get_item_group(under.name, "soil") ~= 1 then - return - end - - -- check if (wet) soil defined - local regN = minetest.registered_nodes - if regN[under.name].soil == nil or regN[under.name].soil.wet == nil or regN[under.name].soil.dry == nil then - return - end - - if minetest.is_protected(pt.under, user:get_player_name()) then - minetest.record_protection_violation(pt.under, user:get_player_name()) - return - end - if minetest.is_protected(pt.above, user:get_player_name()) then - minetest.record_protection_violation(pt.above, user:get_player_name()) - return - end - - -- turn the node into soil and play sound - minetest.set_node(pt.under, {name = regN[under.name].soil.dry}) - minetest.sound_play("default_dig_crumbly", { - pos = pt.under, - gain = 0.5, - }) - - if not (creative and creative.is_enabled_for - and creative.is_enabled_for(user:get_player_name())) then - -- wear tool - local wdef = itemstack:get_definition() - itemstack:add_wear(65535/(uses-1)) - -- tool break sound - if itemstack:get_count() == 0 and wdef.sound and wdef.sound.breaks then - minetest.sound_play(wdef.sound.breaks, {pos = pt.above, gain = 0.5}) - end - end - return itemstack -end - --- Register new hoes -farming.register_hoe = function(name, def) - -- Check for : prefix (register new hoes in your mod's namespace) - if name:sub(1,1) ~= ":" then - name = ":" .. name - end - -- Check def table - if def.description == nil then - def.description = "Hoe" - end - if def.inventory_image == nil then - def.inventory_image = "unknown_item.png" - end - if def.max_uses == nil then - def.max_uses = 30 - end - -- Register the tool - minetest.register_tool(name, { - description = def.description, - inventory_image = def.inventory_image, - on_use = function(itemstack, user, pointed_thing) - return farming.hoe_on_use(itemstack, user, pointed_thing, def.max_uses) - end, - groups = def.groups, - sound = {breaks = "default_tool_breaks"}, - }) - -- Register its recipe - if def.recipe then - minetest.register_craft({ - output = name:sub(2), - recipe = def.recipe - }) - elseif def.material then - minetest.register_craft({ - output = name:sub(2), - recipe = { - {def.material, def.material}, - {"", "group:stick"}, - {"", "group:stick"} - } - }) - end -end - --- how often node timers for plants will tick, +/- some random value -local function tick(pos) - minetest.get_node_timer(pos):start(math.random(166, 286)) -end --- how often a growth failure tick is retried (e.g. too dark) -local function tick_again(pos) - minetest.get_node_timer(pos):start(math.random(40, 80)) -end - --- Seed placement -farming.place_seed = function(itemstack, placer, pointed_thing, plantname) - local pt = pointed_thing - -- check if pointing at a node - if not pt then - return itemstack - end - if pt.type ~= "node" then - return itemstack - end - - local under = minetest.get_node(pt.under) - local above = minetest.get_node(pt.above) - - local player_name = placer and placer:get_player_name() or "" - - if minetest.is_protected(pt.under, player_name) then - minetest.record_protection_violation(pt.under, player_name) - return - end - if minetest.is_protected(pt.above, player_name) then - minetest.record_protection_violation(pt.above, player_name) - return - end - - -- return if any of the nodes is not registered - if not minetest.registered_nodes[under.name] then - return itemstack - end - if not minetest.registered_nodes[above.name] then - return itemstack - end - - -- check if pointing at the top of the node - if pt.above.y ~= pt.under.y+1 then - return itemstack - end - - -- check if you can replace the node above the pointed node - if not minetest.registered_nodes[above.name].buildable_to then - return itemstack - end - - -- check if pointing at soil - if minetest.get_item_group(under.name, "soil") < 2 then - return itemstack - end - - -- add the node and remove 1 item from the itemstack - minetest.add_node(pt.above, {name = plantname, param2 = 1}) - tick(pt.above) - if not (creative and creative.is_enabled_for - and creative.is_enabled_for(player_name)) then - itemstack:take_item() - end - return itemstack -end - -farming.grow_plant = function(pos, elapsed) - local node = minetest.get_node(pos) - local name = node.name - local def = minetest.registered_nodes[name] - - if not def.next_plant then - -- disable timer for fully grown plant - return - end - - -- grow seed - if minetest.get_item_group(node.name, "seed") and def.fertility then - local soil_node = minetest.get_node_or_nil({x = pos.x, y = pos.y - 1, z = pos.z}) - if not soil_node then - tick_again(pos) - return - end - -- omitted is a check for light, we assume seeds can germinate in the dark. - for _, v in pairs(def.fertility) do - if minetest.get_item_group(soil_node.name, v) ~= 0 then - local placenode = {name = def.next_plant} - if def.place_param2 then - placenode.param2 = def.place_param2 - end - minetest.swap_node(pos, placenode) - if minetest.registered_nodes[def.next_plant].next_plant then - tick(pos) - return - end - end - end - - return - end - - -- check if on wet soil - local below = minetest.get_node({x = pos.x, y = pos.y - 1, z = pos.z}) - if minetest.get_item_group(below.name, "soil") < 3 then - tick_again(pos) - return - end - - -- check light - local light = minetest.get_node_light(pos) - if not light or light < def.minlight or light > def.maxlight then - tick_again(pos) - return - end - - -- grow - local placenode = {name = def.next_plant} - if def.place_param2 then - placenode.param2 = def.place_param2 - end - minetest.swap_node(pos, placenode) - - -- new timer needed? - if minetest.registered_nodes[def.next_plant].next_plant then - tick(pos) - end - return -end - --- Register plants -farming.register_plant = function(name, def) - local mname = name:split(":")[1] - local pname = name:split(":")[2] - - -- Check def table - if not def.description then - def.description = "Seed" - end - if not def.inventory_image then - def.inventory_image = "unknown_item.png" - end - if not def.steps then - return nil - end - if not def.minlight then - def.minlight = 1 - end - if not def.maxlight then - def.maxlight = 14 - end - if not def.fertility then - def.fertility = {} - end - - farming.registered_plants[pname] = def - - -- Register seed - local lbm_nodes = {mname .. ":seed_" .. pname} - local g = {seed = 1, snappy = 3, attached_node = 1, flammable = 2} - for k, v in pairs(def.fertility) do - g[v] = 1 - end - minetest.register_node(":" .. mname .. ":seed_" .. pname, { - description = def.description, - tiles = {def.inventory_image}, - inventory_image = def.inventory_image, - wield_image = def.inventory_image, - drawtype = "signlike", - groups = g, - paramtype = "light", - paramtype2 = "wallmounted", - place_param2 = def.place_param2 or nil, -- this isn't actually used for placement - walkable = false, - sunlight_propagates = true, - selection_box = { - type = "fixed", - fixed = {-0.5, -0.5, -0.5, 0.5, -5/16, 0.5}, - }, - fertility = def.fertility, - sounds = default.node_sound_dirt_defaults({ - dig = {name = "", gain = 0}, - dug = {name = "default_grass_footstep", gain = 0.2}, - place = {name = "default_place_node", gain = 0.25}, - }), - - on_place = function(itemstack, placer, pointed_thing) - local under = pointed_thing.under - local node = minetest.get_node(under) - local udef = minetest.registered_nodes[node.name] - if udef and udef.on_rightclick and - not (placer and placer:is_player() and - placer:get_player_control().sneak) then - return udef.on_rightclick(under, node, placer, itemstack, - pointed_thing) or itemstack - end - - return farming.place_seed(itemstack, placer, pointed_thing, mname .. ":seed_" .. pname) - end, - next_plant = mname .. ":" .. pname .. "_1", - on_timer = farming.grow_plant, - minlight = def.minlight, - maxlight = def.maxlight, - }) - - -- Register harvest - minetest.register_craftitem(":" .. mname .. ":" .. pname, { - description = pname:gsub("^%l", string.upper), - inventory_image = mname .. "_" .. pname .. ".png", - groups = def.groups or {flammable = 2}, - }) - - -- Register growing steps - for i = 1, def.steps do - local base_rarity = 1 - if def.steps ~= 1 then - base_rarity = 8 - (i - 1) * 7 / (def.steps - 1) - end - local drop = { - items = { - {items = {mname .. ":" .. pname}, rarity = base_rarity}, - {items = {mname .. ":" .. pname}, rarity = base_rarity * 2}, - {items = {mname .. ":seed_" .. pname}, rarity = base_rarity}, - {items = {mname .. ":seed_" .. pname}, rarity = base_rarity * 2}, - } - } - local nodegroups = {snappy = 3, flammable = 2, plant = 1, not_in_creative_inventory = 1, attached_node = 1} - nodegroups[pname] = i - - local next_plant = nil - - if i < def.steps then - next_plant = mname .. ":" .. pname .. "_" .. (i + 1) - lbm_nodes[#lbm_nodes + 1] = mname .. ":" .. pname .. "_" .. i - end - - minetest.register_node(":" .. mname .. ":" .. pname .. "_" .. i, { - drawtype = "plantlike", - waving = 1, - tiles = {mname .. "_" .. pname .. "_" .. i .. ".png"}, - paramtype = "light", - paramtype2 = def.paramtype2 or nil, - place_param2 = def.place_param2 or nil, - walkable = false, - buildable_to = true, - drop = drop, - selection_box = { - type = "fixed", - fixed = {-0.5, -0.5, -0.5, 0.5, -5/16, 0.5}, - }, - groups = nodegroups, - sounds = default.node_sound_leaves_defaults(), - next_plant = next_plant, - on_timer = farming.grow_plant, - minlight = def.minlight, - maxlight = def.maxlight, - }) - end - - -- replacement LBM for pre-nodetimer plants - minetest.register_lbm({ - name = ":" .. mname .. ":start_nodetimer_" .. pname, - nodenames = lbm_nodes, - action = function(pos, node) - tick_again(pos) - end, - }) - - -- Return - local r = { - seed = mname .. ":seed_" .. pname, - harvest = mname .. ":" .. pname - } - return r -end diff --git a/games/default/files/farming/depends.txt b/games/default/files/farming/depends.txt deleted file mode 100644 index 470ec30b9..000000000 --- a/games/default/files/farming/depends.txt +++ /dev/null @@ -1,2 +0,0 @@ -default -wool diff --git a/games/default/files/farming/hoes.lua b/games/default/files/farming/hoes.lua deleted file mode 100644 index b8be6d051..000000000 --- a/games/default/files/farming/hoes.lua +++ /dev/null @@ -1,35 +0,0 @@ -farming.register_hoe(":farming:hoe_wood", { - description = "Wooden Hoe", - inventory_image = "farming_tool_woodhoe.png", - max_uses = 30, - material = "group:wood", - groups = {flammable = 2}, -}) - -farming.register_hoe(":farming:hoe_stone", { - description = "Stone Hoe", - inventory_image = "farming_tool_stonehoe.png", - max_uses = 90, - material = "group:stone" -}) - -farming.register_hoe(":farming:hoe_steel", { - description = "Steel Hoe", - inventory_image = "farming_tool_steelhoe.png", - max_uses = 500, - material = "default:steel_ingot" -}) - -farming.register_hoe(":farming:hoe_gold", { - description = "Gold Hoe", - inventory_image = "farming_tool_goldhoe.png", - max_uses = 350, - material = "default:gold_ingot" -}) - -farming.register_hoe(":farming:hoe_diamond", { - description = "Diamond Hoe", - inventory_image = "farming_tool_diamondhoe.png", - max_uses = 1000, - material = "default:diamond" -}) diff --git a/games/default/files/farming/init.lua b/games/default/files/farming/init.lua deleted file mode 100644 index 0a2d82104..000000000 --- a/games/default/files/farming/init.lua +++ /dev/null @@ -1,145 +0,0 @@ --- Global farming namespace - -farming = {} -farming.path = minetest.get_modpath("farming") - - --- Load files - -dofile(farming.path .. "/api.lua") -dofile(farming.path .. "/nodes.lua") -dofile(farming.path .. "/hoes.lua") - - --- WHEAT - -farming.register_plant("farming:wheat", { - description = "Wheat Seed", - paramtype2 = "meshoptions", - inventory_image = "farming_wheat_seed.png", - steps = 8, - minlight = 13, - maxlight = minetest.LIGHT_MAX, - fertility = {"grassland"}, - place_param2 = 3, - groups = {food_wheat = 1, flammable = 4} -}) - -minetest.register_craftitem("farming:flour", { - description = "Flour", - inventory_image = "farming_flour.png", - groups = {food_flour = 1, flammable = 1} -}) - -minetest.register_craftitem("farming:bread", { - description = "Bread", - inventory_image = "farming_bread.png", - on_use = minetest.item_eat(5), - groups = {food_bread = 1, flammable = 2, food = 1} -}) - -minetest.register_craft({ - type = "shapeless", - output = "farming:flour", - recipe = {"farming:wheat", "farming:wheat", "farming:wheat"} -}) - -minetest.register_craft({ - type = "cooking", - cooktime = 15, - output = "farming:bread", - recipe = "farming:flour" -}) - --- String - -minetest.register_craftitem("farming:string",{ - description = "String", - inventory_image = "farming_string.png", - groups = {materials = 1} -}) - -minetest.register_craft({ - output = "farming:string", - recipe = {{"default:paper", "default:paper"}}, -}) - --- Cotton - ---[[farming.register_plant("farming:cotton", { - description = "Cotton Seed", - inventory_image = "farming_cotton_seed.png", - steps = 8, - minlight = 13, - maxlight = minetest.LIGHT_MAX, - fertility = {"grassland", "desert"}, - groups = {flammable = 4}, -}) - -minetest.register_craft({ - output = "wool:white", - recipe = { - {"farming:cotton", "farming:cotton"}, - {"farming:cotton", "farming:cotton"}, - } -}) - -minetest.register_craft({ - output = "farming:string 2", - recipe = { - {"farming:cotton"}, - {"farming:cotton"}, - } -}) -]] - --- Straw - -minetest.register_craft({ - output = "farming:straw 3", - recipe = { - {"farming:wheat", "farming:wheat", "farming:wheat"}, - {"farming:wheat", "farming:wheat", "farming:wheat"}, - {"farming:wheat", "farming:wheat", "farming:wheat"} - } -}) - -minetest.register_craft({ - output = "farming:wheat 3", - recipe = { - {"farming:straw"} - } -}) - - --- Fuels - -minetest.register_craft({ - type = "fuel", - recipe = "farming:straw", - burntime = 3 -}) - -minetest.register_craft({ - type = "fuel", - recipe = "farming:wheat", - burntime = 1 -}) - -minetest.register_craft({ - type = "fuel", - recipe = "farming:cotton", - burntime = 1 -}) - -minetest.register_craft({ - type = "fuel", - recipe = "farming:string", - burntime = 1 -}) - -minetest.register_craft({ - type = "fuel", - recipe = "farming:hoe_wood", - burntime = 5 -}) diff --git a/games/default/files/farming/license.txt b/games/default/files/farming/license.txt deleted file mode 100644 index e042f394b..000000000 --- a/games/default/files/farming/license.txt +++ /dev/null @@ -1,26 +0,0 @@ -License of source code ----------------------- - -The MIT License (MIT) -Copyright (C) 2012-2016 PilzAdam -Copyright (C) 2014-2016 webdesigner97 -Copyright (C) 2012-2016 Various Minetest developers and contributors - -Permission is hereby granted, free of charge, to any person obtaining a copy of this -software and associated documentation files (the "Software"), to deal in the Software -without restriction, including without limitation the rights to use, copy, modify, merge, -publish, distribute, sublicense, and/or sell copies of the Software, and to permit -persons to whom the Software is furnished to do so, subject to the following conditions: - -The above copyright notice and this permission notice shall be included in all copies or -substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, -INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR -PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE -FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR -OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER -DEALINGS IN THE SOFTWARE. - -For more details: -https://opensource.org/licenses/MIT diff --git a/games/default/files/farming/nodes.lua b/games/default/files/farming/nodes.lua deleted file mode 100644 index 02392f0cf..000000000 --- a/games/default/files/farming/nodes.lua +++ /dev/null @@ -1,160 +0,0 @@ -minetest.override_item("default:dirt", { - soil = { - base = "default:dirt", - dry = "farming:soil", - wet = "farming:soil_wet" - } -}) - -minetest.override_item("default:dirt_with_grass", { - soil = { - base = "default:dirt_with_grass", - dry = "farming:soil", - wet = "farming:soil_wet" - } -}) - -minetest.override_item("default:dirt_with_dry_grass", { - soil = { - base = "default:dirt_with_dry_grass", - dry = "farming:soil", - wet = "farming:soil_wet" - } -}) - ---[[minetest.override_item("default:dirt_with_rainforest_litter", { - soil = { - base = "default:dirt_with_rainforest_litter", - dry = "farming:soil", - wet = "farming:soil_wet" - } -}) - -minetest.override_item("default:dirt_with_coniferous_litter", { - soil = { - base = "default:dirt_with_coniferous_litter", - dry = "farming:soil", - wet = "farming:soil_wet" - } -})]] - -minetest.register_node("farming:soil", { - description = "Soil", - tiles = {"farming_soil.png", "default_dirt.png"}, - drop = "default:dirt", - groups = {crumbly = 3, not_in_creative_inventory = 1, soil = 2, grassland = 1, field = 1}, - sounds = default.node_sound_dirt_defaults(), - soil = { - base = "default:dirt", - dry = "farming:soil", - wet = "farming:soil_wet" - } -}) - -minetest.register_node("farming:soil_wet", { - description = "Wet Soil", - tiles = {"farming_soil_wet.png", "default_dirt.png"}, - drop = "default:dirt", - groups = {crumbly = 3, not_in_creative_inventory = 1, soil = 3, wet = 1, grassland = 1, field = 1}, - sounds = default.node_sound_dirt_defaults(), - soil = { - base = "default:dirt", - dry = "farming:soil", - wet = "farming:soil_wet" - } -}) - ---[[minetest.override_item("default:desert_sand", { - groups = {crumbly=3, falling_node=1, sand=1, soil = 1}, - soil = { - base = "default:desert_sand", - dry = "farming:desert_sand_soil", - wet = "farming:desert_sand_soil_wet" - } -}) -minetest.register_node("farming:desert_sand_soil", { - description = "Desert Sand Soil", - drop = "default:desert_sand", - tiles = {"farming_desert_sand_soil.png", "default_red_sand.png"}, - groups = {crumbly=3, not_in_creative_inventory = 1, falling_node=1, sand=1, soil = 2, desert = 1, field = 1}, - sounds = default.node_sound_sand_defaults(), - soil = { - base = "default:desert_sand", - dry = "farming:desert_sand_soil", - wet = "farming:desert_sand_soil_wet" - } -}) - -minetest.register_node("farming:desert_sand_soil_wet", { - description = "Wet Desert Sand Soil", - drop = "default:desert_sand", - tiles = {"farming_desert_sand_soil_wet.png", "farming_desert_sand_soil_wet_side.png"}, - groups = {crumbly=3, falling_node=1, sand=1, not_in_creative_inventory=1, soil=3, wet = 1, desert = 1, field = 1}, - sounds = default.node_sound_sand_defaults(), - soil = { - base = "default:desert_sand", - dry = "farming:desert_sand_soil", - wet = "farming:desert_sand_soil_wet" - } -})]] - -minetest.register_node("farming:straw", { - description = "Straw", - tiles = {"farming_straw_top.png", "farming_straw_top.png", "farming_straw_side.png"}, - is_ground_content = false, - groups = {snappy = 3, flammable = 4, fall_damage_add_percent = -30}, - sounds = default.node_sound_leaves_defaults(), -}) - -minetest.register_abm({ - label = "Farming soil", - nodenames = {"group:field"}, - interval = 15, - chance = 4, - action = function(pos, node) - local n_def = minetest.registered_nodes[node.name] or nil - local wet = n_def.soil.wet or nil - local base = n_def.soil.base or nil - local dry = n_def.soil.dry or nil - if not n_def or not n_def.soil or not wet or not base or not dry then - return - end - - pos.y = pos.y + 1 - local nn = minetest.get_node_or_nil(pos) - if not nn or not nn.name then - return - end - local nn_def = minetest.registered_nodes[nn.name] or nil - pos.y = pos.y - 1 - - if nn_def and nn_def.walkable and minetest.get_item_group(nn.name, "plant") == 0 then - minetest.set_node(pos, {name = base}) - return - end - -- check if there is water nearby - local wet_lvl = minetest.get_item_group(node.name, "wet") - if minetest.find_node_near(pos, 3, {"group:water"}) then - -- if it is dry soil and not base node, turn it into wet soil - if wet_lvl == 0 then - minetest.set_node(pos, {name = wet}) - end - else - -- only turn back if there are no unloaded blocks (and therefore - -- possible water sources) nearby - if not minetest.find_node_near(pos, 3, {"ignore"}) then - -- turn it back into base if it is already dry - if wet_lvl == 0 then - -- only turn it back if there is no plant/seed on top of it - if minetest.get_item_group(nn.name, "plant") == 0 and minetest.get_item_group(nn.name, "seed") == 0 then - minetest.set_node(pos, {name = base}) - end - - -- if its wet turn it back into dry soil - elseif wet_lvl == 1 then - minetest.set_node(pos, {name = dry}) - end - end - end - end, -}) diff --git a/games/default/files/farming/textures/farming_bread.png b/games/default/files/farming/textures/farming_bread.png deleted file mode 100644 index 61bef3276..000000000 Binary files a/games/default/files/farming/textures/farming_bread.png and /dev/null differ diff --git a/games/default/files/farming/textures/farming_flour.png b/games/default/files/farming/textures/farming_flour.png deleted file mode 100644 index e8041e772..000000000 Binary files a/games/default/files/farming/textures/farming_flour.png and /dev/null differ diff --git a/games/default/files/farming/textures/farming_soil.png b/games/default/files/farming/textures/farming_soil.png deleted file mode 100644 index ca9ebd521..000000000 Binary files a/games/default/files/farming/textures/farming_soil.png and /dev/null differ diff --git a/games/default/files/farming/textures/farming_soil_wet.png b/games/default/files/farming/textures/farming_soil_wet.png deleted file mode 100644 index b65a2af11..000000000 Binary files a/games/default/files/farming/textures/farming_soil_wet.png and /dev/null differ diff --git a/games/default/files/farming/textures/farming_straw_side.png b/games/default/files/farming/textures/farming_straw_side.png deleted file mode 100644 index a0caf082a..000000000 Binary files a/games/default/files/farming/textures/farming_straw_side.png and /dev/null differ diff --git a/games/default/files/farming/textures/farming_straw_top.png b/games/default/files/farming/textures/farming_straw_top.png deleted file mode 100644 index c425cb183..000000000 Binary files a/games/default/files/farming/textures/farming_straw_top.png and /dev/null differ diff --git a/games/default/files/farming/textures/farming_string.png b/games/default/files/farming/textures/farming_string.png deleted file mode 100644 index e77a61d81..000000000 Binary files a/games/default/files/farming/textures/farming_string.png and /dev/null differ diff --git a/games/default/files/farming/textures/farming_tool_diamondhoe.png b/games/default/files/farming/textures/farming_tool_diamondhoe.png deleted file mode 100644 index 05ae26821..000000000 Binary files a/games/default/files/farming/textures/farming_tool_diamondhoe.png and /dev/null differ diff --git a/games/default/files/farming/textures/farming_tool_goldhoe.png b/games/default/files/farming/textures/farming_tool_goldhoe.png deleted file mode 100644 index 5b9399288..000000000 Binary files a/games/default/files/farming/textures/farming_tool_goldhoe.png and /dev/null differ diff --git a/games/default/files/farming/textures/farming_tool_steelhoe.png b/games/default/files/farming/textures/farming_tool_steelhoe.png deleted file mode 100644 index 7202f93c4..000000000 Binary files a/games/default/files/farming/textures/farming_tool_steelhoe.png and /dev/null differ diff --git a/games/default/files/farming/textures/farming_tool_stonehoe.png b/games/default/files/farming/textures/farming_tool_stonehoe.png deleted file mode 100644 index e7ed0bf24..000000000 Binary files a/games/default/files/farming/textures/farming_tool_stonehoe.png and /dev/null differ diff --git a/games/default/files/farming/textures/farming_tool_woodhoe.png b/games/default/files/farming/textures/farming_tool_woodhoe.png deleted file mode 100644 index ad2450a0d..000000000 Binary files a/games/default/files/farming/textures/farming_tool_woodhoe.png and /dev/null differ diff --git a/games/default/files/farming/textures/farming_wheat.png b/games/default/files/farming/textures/farming_wheat.png deleted file mode 100644 index 489bf0e4c..000000000 Binary files a/games/default/files/farming/textures/farming_wheat.png and /dev/null differ diff --git a/games/default/files/farming/textures/farming_wheat_1.png b/games/default/files/farming/textures/farming_wheat_1.png deleted file mode 100644 index 966bbc0a6..000000000 Binary files a/games/default/files/farming/textures/farming_wheat_1.png and /dev/null differ diff --git a/games/default/files/farming/textures/farming_wheat_2.png b/games/default/files/farming/textures/farming_wheat_2.png deleted file mode 100644 index a27de875d..000000000 Binary files a/games/default/files/farming/textures/farming_wheat_2.png and /dev/null differ diff --git a/games/default/files/farming/textures/farming_wheat_3.png b/games/default/files/farming/textures/farming_wheat_3.png deleted file mode 100644 index a4c80c914..000000000 Binary files a/games/default/files/farming/textures/farming_wheat_3.png and /dev/null differ diff --git a/games/default/files/farming/textures/farming_wheat_4.png b/games/default/files/farming/textures/farming_wheat_4.png deleted file mode 100644 index c81f8ba6a..000000000 Binary files a/games/default/files/farming/textures/farming_wheat_4.png and /dev/null differ diff --git a/games/default/files/farming/textures/farming_wheat_5.png b/games/default/files/farming/textures/farming_wheat_5.png deleted file mode 100644 index 15d75bfa2..000000000 Binary files a/games/default/files/farming/textures/farming_wheat_5.png and /dev/null differ diff --git a/games/default/files/farming/textures/farming_wheat_6.png b/games/default/files/farming/textures/farming_wheat_6.png deleted file mode 100644 index 03c295225..000000000 Binary files a/games/default/files/farming/textures/farming_wheat_6.png and /dev/null differ diff --git a/games/default/files/farming/textures/farming_wheat_7.png b/games/default/files/farming/textures/farming_wheat_7.png deleted file mode 100644 index 31f8d5ddf..000000000 Binary files a/games/default/files/farming/textures/farming_wheat_7.png and /dev/null differ diff --git a/games/default/files/farming/textures/farming_wheat_8.png b/games/default/files/farming/textures/farming_wheat_8.png deleted file mode 100644 index 1ff8a5336..000000000 Binary files a/games/default/files/farming/textures/farming_wheat_8.png and /dev/null differ diff --git a/games/default/files/farming/textures/farming_wheat_seed.png b/games/default/files/farming/textures/farming_wheat_seed.png deleted file mode 100644 index d95fdec7b..000000000 Binary files a/games/default/files/farming/textures/farming_wheat_seed.png and /dev/null differ diff --git a/games/default/files/fire/README.txt b/games/default/files/fire/README.txt deleted file mode 100644 index 6387e48e0..000000000 --- a/games/default/files/fire/README.txt +++ /dev/null @@ -1,20 +0,0 @@ -MutliCraft Game mod: fire -========================= -See license.txt for license information. - -Authors of source code ----------------------- -Originally by Perttu Ahola (celeron55) (LGPLv3.0+) -Various Minetest developers and contributors (LGPLv3.0+) - -Authors of media (textures and sounds) --------------------------------------- -Copyright (C) 2012 Perttu Ahola (celeron55) (CC BY-SA 3.0) - -Dynamicell (CC BY 3.0) -http://www.freesound.org/people/Dynamicell/sounds/17548/ - fire_fire.*.ogg - -Benboncan (CC BY 3.0) -https://www.freesound.org/people/Benboncan/sounds/66457/ - fire_flint_and_steel.ogg diff --git a/games/default/files/fire/init.lua b/games/default/files/fire/init.lua deleted file mode 100644 index d808d8320..000000000 --- a/games/default/files/fire/init.lua +++ /dev/null @@ -1,343 +0,0 @@ -fire = {} - -local fire_enabled = minetest.settings:get_bool("enable_fire") -if fire_enabled == nil then - -- Neither setting specified, check whether singleplayer - fire_enabled = minetest.is_singleplayer() -end - --- --- Items --- - --- Flood flame function -local function flood_flame(pos, oldnode, newnode) - -- Play flame extinguish sound if liquid is not an 'igniter' - local nodedef = minetest.registered_items[newnode.name] - if not (nodedef and nodedef.groups and - nodedef.groups.igniter and nodedef.groups.igniter > 0) then - minetest.sound_play("fire_extinguish_flame", - {pos = pos, max_hear_distance = 16, gain = 0.15}) - end - -- Remove the flame - return false -end - --- Flame nodes -minetest.register_node("fire:basic_flame", { - drawtype = "firelike", - tiles = { - { - name = "fire_basic_flame_animated.png", - animation = { - type = "vertical_frames", - aspect_w = 32, - aspect_h = 32, - length = 1 - }, - }, - }, - inventory_image = "fire_basic_flame.png", - paramtype = "light", - light_source = 13, - walkable = false, - buildable_to = true, - sunlight_propagates = true, - floodable = true, - damage_per_second = 4, - groups = {igniter = 2, dig_immediate = 3, not_in_creative_inventory = 1}, - drop = "", - - on_timer = function(pos) - local f = minetest.find_node_near(pos, 1, {"group:flammable"}) - if not fire_enabled or not f then - minetest.remove_node(pos) - return - end - -- Restart timer - return true - end, - - on_construct = function(pos) - if not fire_enabled then - minetest.remove_node(pos) - else - minetest.get_node_timer(pos):start(math.random(30, 60)) - end - end, - - on_flood = flood_flame -}) - -minetest.register_node("fire:permanent_flame", { - description = "Permanent Flame", - drawtype = "firelike", - tiles = { - { - name = "fire_basic_flame_animated.png", - animation = { - type = "vertical_frames", - aspect_w = 16, - aspect_h = 16, - length = 1 - }, - }, - }, - inventory_image = "fire_basic_flame.png", - paramtype = "light", - light_source = 13, - walkable = false, - buildable_to = true, - sunlight_propagates = true, - floodable = true, - damage_per_second = 4, - groups = {igniter = 2, dig_immediate = 3, not_in_creative_inventory = 1}, - drop = "", - - on_flood = flood_flame -}) - - --- Flint and steel - -if fire_enabled then - minetest.register_tool("fire:flint_and_steel", { - description = "Flint and Steel", - inventory_image = "fire_flint_steel.png", - sound = {breaks = "default_tool_breaks"}, - - on_use = function(itemstack, user, pointed_thing) - local sound_pos = pointed_thing.above or user:get_pos() - minetest.sound_play("fire_flint_and_steel", - {pos = sound_pos, gain = 0.5, max_hear_distance = 8}) - local player_name = user:get_player_name() - if pointed_thing.type == "node" then - local node_under = minetest.get_node(pointed_thing.under).name - local nodedef = minetest.registered_nodes[node_under] - if not nodedef then - return - end - if minetest.is_protected(pointed_thing.under, player_name) then - minetest.chat_send_player(player_name, "This area is protected") - return - end - if nodedef.on_ignite then - nodedef.on_ignite(pointed_thing.under, user) - elseif minetest.get_item_group(node_under, "flammable") >= 1 - and minetest.get_node(pointed_thing.above).name == "air" then - minetest.set_node(pointed_thing.above, {name = "fire:basic_flame"}) - end - end - if not (creative and creative.is_enabled_for - and creative.is_enabled_for(player_name)) then - -- Wear tool - local wdef = itemstack:get_definition() - itemstack:add_wear(1000) - -- Tool break sound - if itemstack:get_count() == 0 and wdef.sound and wdef.sound.breaks then - minetest.sound_play(wdef.sound.breaks, {pos = sound_pos, gain = 0.5}) - end - return itemstack - end - end - }) - - minetest.register_craft({ - output = "fire:flint_and_steel", - recipe = { - {"default:flint", "default:steel_ingot"} - } - }) -end - --- Override coalblock to enable permanent flame above --- Coalblock is non-flammable to avoid unwanted basic_flame nodes -minetest.override_item("default:coalblock", { - after_destruct = function(pos, oldnode) - pos.y = pos.y + 1 - if minetest.get_node(pos).name == "fire:permanent_flame" then - minetest.remove_node(pos) - end - end, - on_ignite = function(pos, igniter) - local flame_pos = {x = pos.x, y = pos.y + 1, z = pos.z} - if minetest.get_node(flame_pos).name == "air" then - minetest.set_node(flame_pos, {name = "fire:permanent_flame"}) - end - end, -}) - - --- --- Sound --- - -local flame_sound = minetest.settings:get_bool("flame_sound") -if flame_sound == nil then - -- Enable if no setting present - flame_sound = true -end - -if flame_sound then - local handles = {} - local timer = 0 - - -- Parameters - local radius = 8 -- Flame node search radius around player - local cycle = 3 -- Cycle time for sound updates - - -- Update sound for player - function fire.update_player_sound(player) - local player_name = player:get_player_name() - -- Search for flame nodes in radius around player - local ppos = player:get_pos() - local areamin = vector.subtract(ppos, radius) - local areamax = vector.add(ppos, radius) - local fpos, num = minetest.find_nodes_in_area( - areamin, - areamax, - {"fire:basic_flame", "fire:permanent_flame"} - ) - -- Total number of flames in radius - local flames = (num["fire:basic_flame"] or 0) + - (num["fire:permanent_flame"] or 0) - -- Stop previous sound - if handles[player_name] then - minetest.sound_stop(handles[player_name]) - handles[player_name] = nil - end - -- If flames - if flames > 0 then - -- Find centre of flame positions - local fposmid = fpos[1] - -- If more than 1 flame - if #fpos > 1 then - local fposmin = areamax - local fposmax = areamin - for i = 1, #fpos do - local fposi = fpos[i] - if fposi.x > fposmax.x then - fposmax.x = fposi.x - end - if fposi.y > fposmax.y then - fposmax.y = fposi.y - end - if fposi.z > fposmax.z then - fposmax.z = fposi.z - end - if fposi.x < fposmin.x then - fposmin.x = fposi.x - end - if fposi.y < fposmin.y then - fposmin.y = fposi.y - end - if fposi.z < fposmin.z then - fposmin.z = fposi.z - end - end - fposmid = vector.divide(vector.add(fposmin, fposmax), 2) - end - -- Play sound - local handle = minetest.sound_play("fire_fire", { - pos = fposmid, - to_player = player_name, - gain = math.min(0.06 * (1 + flames * 0.125), 0.18), - max_hear_distance = 32, - loop = true, -- In case of lag - }) - -- Store sound handle for this player - if handle then - handles[player_name] = handle - end - end - end - - -- Cycle for updating players sounds - local cycles = {} - minetest.register_playerstep(function(dtime, playernames) - for _, name in pairs(playernames) do - local player = minetest.get_player_by_name(name) - if player and player:is_player() then - cycles[name] = cycles[name] or 0 - cycles[name] = cycles[name] + dtime - if cycles[name] >= cycle then - fire.update_player_sound(player) - cycles[name] = 0 - end - end - end - end, true) -- We can force this since it is already rate-limited - - -- Stop sound and clear handle on player leave - minetest.register_on_leaveplayer(function(player) - local player_name = player:get_player_name() - if handles[player_name] then - minetest.sound_stop(handles[player_name]) - handles[player_name] = nil - cycles[player_name] = nil - end - end) -end - - --- --- ABMs --- - -if fire_enabled then - - -- Ignite neighboring nodes, add basic flames - minetest.register_abm({ - label = "Ignite flame", - nodenames = {"group:flammable"}, - neighbors = {"group:igniter"}, - interval = 7, - chance = 12, - catch_up = false, - action = function(pos) - local p = minetest.find_node_near(pos, 1, {"air"}) - if p then - minetest.set_node(p, {name = "fire:basic_flame"}) - end - end, - }) - - -- Remove flammable nodes around basic flame - minetest.register_abm({ - label = "Remove flammable nodes", - nodenames = {"fire:basic_flame"}, - neighbors = "group:flammable", - interval = 5, - chance = 18, - catch_up = false, - action = function(pos) - local p = minetest.find_node_near(pos, 1, {"group:flammable"}) - if not p then - return - end - local flammable_node = minetest.get_node(p) - local def = minetest.registered_nodes[flammable_node.name] - if def.on_burn then - def.on_burn(p) - else - minetest.remove_node(p) - minetest.add_particlespawner({ - amount = 3, - time = 0.1, - minpos = {x = p.x - 0.1, y = p.y + 0.1, z = p.z - 0.1 }, - maxpos = {x = p.x + 0.1, y = p.y + 0.2, z = p.z + 0.1 }, - minvel = {x = 0, y = 2.5, z = 0}, - maxvel = {x = 0, y = 2.5, z = 0}, - minacc = {x = -0.15, y = -0.02, z = -0.15}, - maxacc = {x = 0.15, y = -0.01, z = 0.15}, - minexptime = 4, - maxexptime = 6, - minsize = 2, - maxsize = 4, - texture = "item_smoke.png" - }) - minetest.check_for_falling(p) - end - end, - }) -end diff --git a/games/default/files/fire/license.txt b/games/default/files/fire/license.txt deleted file mode 100644 index f3745fd94..000000000 --- a/games/default/files/fire/license.txt +++ /dev/null @@ -1,81 +0,0 @@ -License of source code ----------------------- - -GNU Lesser General Public License, version 3.0 -Copyright (C) 2012-2016 celeron55, Perttu Ahola -Copyright (C) 2012-2016 Various Minetest developers and contributors - -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: -http://www.gnu.org/licenses/lgpl-3.0.html - - -Licenses of media (textures and sounds) ---------------------------------------- - -Attribution-ShareAlike 3.0 Unported (CC BY-SA 3.0) -Copyright (C) 2012-2016 Perttu Ahola (celeron55) - -You are free to: -Share — copy and redistribute the material in any medium or format. -Adapt — remix, transform, and build upon the material for any purpose, even commercially. -The licensor cannot revoke these freedoms as long as you follow the license terms. - -Under the following terms: - -Attribution — You must give appropriate credit, provide a link to the license, and -indicate if changes were made. You may do so in any reasonable manner, but not in any way -that suggests the licensor endorses you or your use. - -ShareAlike — If you remix, transform, or build upon the material, you must distribute -your contributions under the same license as the original. - -No additional restrictions — You may not apply legal terms or technological measures that -legally restrict others from doing anything the license permits. - -Notices: - -You do not have to comply with the license for elements of the material in the public -domain or where your use is permitted by an applicable exception or limitation. -No warranties are given. The license may not give you all of the permissions necessary -for your intended use. For example, other rights such as publicity, privacy, or moral -rights may limit how you use the material. - -For more details: -http://creativecommons.org/licenses/by-sa/3.0/ - ------------------------ - -Attribution 3.0 Unported (CC BY 3.0) -Copyright (C) 2006 Dynamicell -Copyright (C) 2009 Benboncan - -You are free to: -Share — copy and redistribute the material in any medium or format. -Adapt — remix, transform, and build upon the material for any purpose, even commercially. -The licensor cannot revoke these freedoms as long as you follow the license terms. - -Under the following terms: - -Attribution — You must give appropriate credit, provide a link to the license, and -indicate if changes were made. You may do so in any reasonable manner, but not in any way -that suggests the licensor endorses you or your use. - -No additional restrictions — You may not apply legal terms or technological measures that -legally restrict others from doing anything the license permits. - -Notices: - -You do not have to comply with the license for elements of the material in the public -domain or where your use is permitted by an applicable exception or limitation. -No warranties are given. The license may not give you all of the permissions necessary -for your intended use. For example, other rights such as publicity, privacy, or moral -rights may limit how you use the material. - -For more details: -http://creativecommons.org/licenses/by/3.0/ diff --git a/games/default/files/fire/sounds/fire_extinguish_flame.1.ogg b/games/default/files/fire/sounds/fire_extinguish_flame.1.ogg deleted file mode 100644 index 42506ddff..000000000 Binary files a/games/default/files/fire/sounds/fire_extinguish_flame.1.ogg and /dev/null differ diff --git a/games/default/files/fire/sounds/fire_extinguish_flame.2.ogg b/games/default/files/fire/sounds/fire_extinguish_flame.2.ogg deleted file mode 100644 index 2747ab81c..000000000 Binary files a/games/default/files/fire/sounds/fire_extinguish_flame.2.ogg and /dev/null differ diff --git a/games/default/files/fire/sounds/fire_extinguish_flame.3.ogg b/games/default/files/fire/sounds/fire_extinguish_flame.3.ogg deleted file mode 100644 index 8baeac32e..000000000 Binary files a/games/default/files/fire/sounds/fire_extinguish_flame.3.ogg and /dev/null differ diff --git a/games/default/files/fire/sounds/fire_fire.1.ogg b/games/default/files/fire/sounds/fire_fire.1.ogg deleted file mode 100644 index cbfee4c65..000000000 Binary files a/games/default/files/fire/sounds/fire_fire.1.ogg and /dev/null differ diff --git a/games/default/files/fire/sounds/fire_fire.2.ogg b/games/default/files/fire/sounds/fire_fire.2.ogg deleted file mode 100644 index e8d0eb135..000000000 Binary files a/games/default/files/fire/sounds/fire_fire.2.ogg and /dev/null differ diff --git a/games/default/files/fire/sounds/fire_fire.3.ogg b/games/default/files/fire/sounds/fire_fire.3.ogg deleted file mode 100644 index 5cad3d9b8..000000000 Binary files a/games/default/files/fire/sounds/fire_fire.3.ogg and /dev/null differ diff --git a/games/default/files/fire/sounds/fire_flint_and_steel.ogg b/games/default/files/fire/sounds/fire_flint_and_steel.ogg deleted file mode 100644 index 6996e16fc..000000000 Binary files a/games/default/files/fire/sounds/fire_flint_and_steel.ogg and /dev/null differ diff --git a/games/default/files/fire/textures/fire_basic_flame_animated.png b/games/default/files/fire/textures/fire_basic_flame_animated.png deleted file mode 100644 index 014805561..000000000 Binary files a/games/default/files/fire/textures/fire_basic_flame_animated.png and /dev/null differ diff --git a/games/default/files/fire/textures/fire_flint_steel.png b/games/default/files/fire/textures/fire_flint_steel.png deleted file mode 100644 index c59fe5dd4..000000000 Binary files a/games/default/files/fire/textures/fire_flint_steel.png and /dev/null differ diff --git a/games/default/files/flowers/README.txt b/games/default/files/flowers/README.txt deleted file mode 100644 index a067caf24..000000000 --- a/games/default/files/flowers/README.txt +++ /dev/null @@ -1,13 +0,0 @@ -MultiCraft Game mod: flowers -========================== -See license.txt for license information. - -Authors of source code ----------------------- -Originally by Ironzorg (MIT) and VanessaE (MIT) -Various Minetest developers and contributors (MIT) - ----------------------- -3dmushrooms based on old version of VanessaE mod plantlife_modpack -https://gitlab.com/VanessaE/plantlife_modpack/tree/f11fa6e6fe12bde9c964c20e0e87906f8149485d/3dmushrooms -License for media and all other assets: WTFPL \ No newline at end of file diff --git a/games/default/files/flowers/init.lua b/games/default/files/flowers/init.lua deleted file mode 100644 index 509473baf..000000000 --- a/games/default/files/flowers/init.lua +++ /dev/null @@ -1,306 +0,0 @@ --- Namespace for functions - -flowers = {} - --- Map Generation - -dofile(minetest.get_modpath("flowers") .. "/mapgen.lua") - --- --- Flowers --- - --- Aliases for original flowers mod - -minetest.register_alias("flowers:flower_rose", "flowers:rose") -minetest.register_alias("flowers:flower_tulip", "flowers:tulip") -minetest.register_alias("flowers:flower_dandelion_yellow", "flowers:dandelion_yellow") -minetest.register_alias("flowers:flower_orchid", "flowers:orchid") -minetest.register_alias("flowers:flower_allium", "flowers:allium") -minetest.register_alias("flowers:flower_dandelion_white", "flowers:dandelion_white") -minetest.register_alias("flowers:dandelion_white", "flowers:oxeye_daisy") - --- Flower registration - -local function add_simple_flower(name, desc, box, f_groups) - -- Common flowers' groups - f_groups.snappy = 3 - f_groups.flower = 1 - f_groups.flora = 1 - f_groups.attached_node = 1 - - minetest.register_node("flowers:" .. name, { - description = desc, - drawtype = "plantlike", - waving = 1, - tiles = {"flowers_" .. name .. ".png"}, - inventory_image = "flowers_" .. name .. ".png", - wield_image = "flowers_" .. name .. ".png", - sunlight_propagates = true, - paramtype = "light", - walkable = false, - buildable_to = true, - groups = f_groups, - sounds = default.node_sound_leaves_defaults(), - selection_box = { - type = "fixed", - fixed = box - } - }) -end - -flowers.datas = { - { - "rose", - "Rose", - {-2 / 16, -0.5, -2 / 16, 2 / 16, 5 / 16, 2 / 16}, - {color_red = 1, flammable = 1} - }, - { - "tulip", - "Orange Tulip", - {-2 / 16, -0.5, -2 / 16, 2 / 16, 3 / 16, 2 / 16}, - {color_orange = 1, flammable = 1} - }, - { - "dandelion_yellow", - "Yellow Dandelion", - {-2 / 16, -0.5, -2 / 16, 2 / 16, 4 / 16, 2 / 16}, - {color_yellow = 1, flammable = 1} - }, - { - "orchid", - "Blue Orchid", - {-2 / 16, -0.5, -2 / 16, 2 / 16, 2 / 16, 2 / 16}, - {color_blue = 1, flammable = 1} - }, - { - "allium", - "Allium", - {-5 / 16, -0.5, -5 / 16, 5 / 16, -1 / 16, 5 / 16}, - {color_violet = 1, flammable = 1} - }, - { - "oxeye_daisy", - "White Oxeye", - {-5 / 16, -0.5, -5 / 16, 5 / 16, -2 / 16, 5 / 16}, - {color_white = 1, flammable = 1} - }, -} - -for _,item in pairs(flowers.datas) do - add_simple_flower(unpack(item)) -end - - --- Flower spread --- Public function to enable override by mods - -function flowers.flower_spread(pos, node) - pos.y = pos.y - 1 - local under = minetest.get_node(pos) - pos.y = pos.y + 1 - -- Replace flora with dry shrub in desert sand and silver sand, - -- as this is the only way to generate them. - -- However, preserve grasses in sand dune biomes. - if minetest.get_item_group(under.name, "sand") == 1 and - under.name ~= "default:sand" then - minetest.set_node(pos, {name = "default:dry_shrub"}) - return - end - - if minetest.get_item_group(under.name, "soil") == 0 then - return - end - - local light = minetest.get_node_light(pos) - if not light or light < 13 then - return - end - - local pos0 = vector.subtract(pos, 4) - local pos1 = vector.add(pos, 4) - -- Maximum flower density created by mapgen is 13 per 9x9 area. - -- The limit of 7 below was tuned by in-game testing to result in a maximum - -- flower density by ABM spread of 13 per 9x9 area. - -- Warning: Setting this limit theoretically without in-game testing - -- results in a maximum flower density by ABM spread that is far too high. - if #minetest.find_nodes_in_area(pos0, pos1, "group:flora") > 7 then - return - end - - local soils = minetest.find_nodes_in_area_under_air( - pos0, pos1, "group:soil") - local num_soils = #soils - if num_soils >= 1 then - for si = 1, math.min(3, num_soils) do - local soil = soils[math.random(num_soils)] - local soil_name = minetest.get_node(soil).name - local soil_above = {x = soil.x, y = soil.y + 1, z = soil.z} - light = minetest.get_node_light(soil_above) - if light and light >= 13 and - -- Only spread to same surface node - soil_name == under.name and - -- Desert sand is in the soil group - soil_name ~= "default:desert_sand" then - minetest.set_node(soil_above, {name = node.name}) - end - end - end -end - -minetest.register_abm({ - label = "Flower spread", - nodenames = {"group:flora"}, - interval = 20, - chance = 200, - action = function(...) - flowers.flower_spread(...) - end, -}) - - --- --- Mushrooms --- - -minetest.register_node("flowers:mushroom_red", { - description = "Red Mushroom", - tiles = {"3dmushrooms_red.png"}, - inventory_image = "3dmushrooms_red_inv.png", - drawtype = "mesh", - mesh = "3dmushrooms.obj", - paramtype = "light", - sunlight_propagates = true, - walkable = false, - buildable_to = true, - groups = {snappy = 3, attached_node = 1, flammable = 1, food = 1}, - sounds = default.node_sound_leaves_defaults(), - on_use = minetest.item_eat(-5), - selection_box = { - type = "fixed", - fixed = {-0.3, -0.5, -0.3, 0.3, 0, 0.3} - }, -}) - -minetest.register_node("flowers:mushroom_brown", { - description = "Brown Mushroom", - tiles = {"3dmushrooms_brown.png"}, - inventory_image = "3dmushrooms_brown_inv.png", - drawtype = "mesh", - mesh = "3dmushrooms.obj", - paramtype = "light", - sunlight_propagates = true, - walkable = false, - buildable_to = true, - groups = {food_mushroom = 1, snappy = 3, attached_node = 1, flammable = 1, food = 1}, - sounds = default.node_sound_leaves_defaults(), - on_use = minetest.item_eat(1), - selection_box = { - type = "fixed", - fixed = {-0.3, -0.5, -0.3, 0.3, 0, 0.3} - }, -}) - - --- Mushroom spread and death - -function flowers.mushroom_spread(pos, node) - if minetest.get_node_light(pos, 0.5) > 3 then - if minetest.get_node_light(pos, nil) == 15 then - minetest.remove_node(pos) - end - return - end - local positions = minetest.find_nodes_in_area_under_air( - {x = pos.x - 1, y = pos.y - 2, z = pos.z - 1}, - {x = pos.x + 1, y = pos.y + 1, z = pos.z + 1}, - {"group:soil", "group:tree"}) - if #positions == 0 then - return - end - local pos2 = positions[math.random(#positions)] - pos2.y = pos2.y + 1 - if minetest.get_node_light(pos2, 0.5) <= 3 then - minetest.set_node(pos2, {name = node.name}) - end -end - -minetest.register_abm({ - label = "Mushroom spread", - nodenames = {"flowers:mushroom_brown", "flowers:mushroom_red"}, - interval = 20, - chance = 100, - action = function(...) - flowers.mushroom_spread(...) - end, -}) - - --- These old mushroom related nodes can be simplified now - -minetest.register_alias("flowers:mushroom_spores_brown", "flowers:mushroom_brown") -minetest.register_alias("flowers:mushroom_spores_red", "flowers:mushroom_red") -minetest.register_alias("flowers:mushroom_fertile_brown", "flowers:mushroom_brown") -minetest.register_alias("flowers:mushroom_fertile_red", "flowers:mushroom_red") -minetest.register_alias("mushroom:brown_natural", "flowers:mushroom_brown") -minetest.register_alias("mushroom:red_natural", "flowers:mushroom_red") - - --- --- Waterlily --- - -minetest.register_node("flowers:waterlily", { - description = "Waterlily", - drawtype = "nodebox", - paramtype = "light", - paramtype2 = "facedir", - tiles = {"flowers_waterlily.png"}, - inventory_image = "flowers_waterlily.png", - wield_image = "flowers_waterlily.png", - liquids_pointable = true, - walkable = false, - buildable_to = true, - floodable = true, - groups = {snappy = 3, flower = 1, flammable = 1}, - sounds = default.node_sound_leaves_defaults(), - node_placement_prediction = "", - node_box = { - type = "fixed", - fixed = {-0.5, -0.5, -0.5, 0.5, -15 / 32, 0.5} - }, - selection_box = { - type = "fixed", - fixed = {-7 / 16, -0.5, -7 / 16, 7 / 16, -15 / 32, 7 / 16} - }, - - on_place = function(itemstack, placer, pointed_thing) - local pos = pointed_thing.above - local node = minetest.get_node(pointed_thing.under) - local def = minetest.registered_nodes[node.name] - local player_name = placer and placer:get_player_name() or "" - - if def and def.on_rightclick then - return def.on_rightclick(pointed_thing.under, node, placer, itemstack, - pointed_thing) - end - - if def and def.liquidtype == "source" and - minetest.get_item_group(node.name, "water") > 0 then - if not minetest.is_protected(pos, player_name) then - minetest.set_node(pos, {name = "flowers:waterlily", - param2 = math.random(0, 3)}) - if not (creative and creative.is_enabled_for - and creative.is_enabled_for(player_name)) then - itemstack:take_item() - end - else - minetest.chat_send_player(player_name, "Node is protected") - minetest.record_protection_violation(pos, player_name) - end - end - - return itemstack - end -}) diff --git a/games/default/files/flowers/license.txt b/games/default/files/flowers/license.txt deleted file mode 100644 index 419ebe5a7..000000000 --- a/games/default/files/flowers/license.txt +++ /dev/null @@ -1,63 +0,0 @@ -License of source code ----------------------- - -The MIT License (MIT) -Copyright (C) 2012-2016 Ironzorg, VanessaE -Copyright (C) 2012-2016 Various Minetest developers and contributors - -Permission is hereby granted, free of charge, to any person obtaining a copy of this -software and associated documentation files (the "Software"), to deal in the Software -without restriction, including without limitation the rights to use, copy, modify, merge, -publish, distribute, sublicense, and/or sell copies of the Software, and to permit -persons to whom the Software is furnished to do so, subject to the following conditions: - -The above copyright notice and this permission notice shall be included in all copies or -substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, -INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR -PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE -FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR -OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER -DEALINGS IN THE SOFTWARE. - -For more details: -https://opensource.org/licenses/MIT - - -Licenses of media (textures) ----------------------------- - -Attribution-ShareAlike 3.0 Unported (CC BY-SA 3.0) -Copyright (C) 2014-2016 RHRhino -Copyright (C) 2015-2016 Gambit -Copyright (C) 2016 yyt16384 -Copyright (C) 2017 paramat - -You are free to: -Share — copy and redistribute the material in any medium or format. -Adapt — remix, transform, and build upon the material for any purpose, even commercially. -The licensor cannot revoke these freedoms as long as you follow the license terms. - -Under the following terms: - -Attribution — You must give appropriate credit, provide a link to the license, and -indicate if changes were made. You may do so in any reasonable manner, but not in any way -that suggests the licensor endorses you or your use. - -ShareAlike — If you remix, transform, or build upon the material, you must distribute -your contributions under the same license as the original. - -No additional restrictions — You may not apply legal terms or technological measures that -legally restrict others from doing anything the license permits. - -Notices: - -You do not have to comply with the license for elements of the material in the public -domain or where your use is permitted by an applicable exception or limitation. -No warranties are given. The license may not give you all of the permissions necessary -for your intended use. For example, other rights such as publicity, privacy, or moral -rights may limit how you use the material. - -For more details: -http://creativecommons.org/licenses/by-sa/3.0/ diff --git a/games/default/files/flowers/mapgen.lua b/games/default/files/flowers/mapgen.lua deleted file mode 100644 index a0edb47e7..000000000 --- a/games/default/files/flowers/mapgen.lua +++ /dev/null @@ -1,174 +0,0 @@ --- --- Mgv6 --- - -local function register_mgv6_flower(flower_name) - minetest.register_decoration({ - name = "flowers:"..flower_name, - deco_type = "simple", - place_on = {"default:dirt_with_grass"}, - sidelen = 16, - noise_params = { - offset = 0, - scale = 0.006, - spread = {x = 100, y = 100, z = 100}, - seed = 436, - octaves = 3, - persist = 0.6 - }, - y_max = 30, - y_min = 1, - decoration = "flowers:"..flower_name, - }) -end - -local function register_mgv6_mushroom(mushroom_name) - minetest.register_decoration({ - name = "flowers:"..mushroom_name, - deco_type = "simple", - place_on = {"default:dirt_with_grass"}, - sidelen = 16, - noise_params = { - offset = 0, - scale = 0.04, - spread = {x = 100, y = 100, z = 100}, - seed = 7133, - octaves = 3, - persist = 0.6 - }, - y_max = 30, - y_min = 1, - decoration = "flowers:"..mushroom_name, - spawn_by = "default:tree", - num_spawn_by = 1, - }) -end - -local function register_mgv6_waterlily() - minetest.register_decoration({ - deco_type = "schematic", - place_on = {"default:dirt"}, - sidelen = 16, - noise_params = { - offset = -0.02, - scale = 0.1, - spread = {x = 100, y = 100, z = 100}, - seed = 48, - octaves = 3, - persist = 0.7 - }, - y_min = 0, - y_max = 0, - schematic = minetest.get_modpath("flowers") .. "/schematics/waterlily.mts", - rotation = "random", - }) -end - -function flowers.register_mgv6_decorations() - register_mgv6_flower("rose") - register_mgv6_flower("tulip") - register_mgv6_flower("dandelion_yellow") - register_mgv6_flower("orchid") - register_mgv6_flower("allium") - register_mgv6_flower("dandelion_white") - - register_mgv6_mushroom("mushroom_brown") - register_mgv6_mushroom("mushroom_red") - - register_mgv6_waterlily() -end - - --- --- All other biome API mapgens --- - -local function register_flower(seed, flower_name) - minetest.register_decoration({ - name = "flowers:"..flower_name, - deco_type = "simple", - place_on = {"default:dirt_with_grass"}, - sidelen = 16, - noise_params = { - offset = -0.02, - scale = 0.04, - spread = {x = 100, y = 100, z = 100}, - seed = seed, - octaves = 3, - persist = 0.6 - }, - biomes = {"stone_grassland", "sandstone_grassland", - "deciduous_forest", "coniferous_forest", "floatland_grassland", "floatland_coniferous_forest"}, - y_max = 31000, - y_min = 1, - decoration = "flowers:"..flower_name, - }) -end - -local function register_mushroom(mushroom_name) - minetest.register_decoration({ - name = "flowers:"..mushroom_name, - deco_type = "simple", - place_on = {"default:dirt_with_grass"}, - sidelen = 16, - noise_params = { - offset = 0, - scale = 0.006, - spread = {x = 250, y = 250, z = 250}, - seed = 2, - octaves = 3, - persist = 0.66 - }, - biomes = {"deciduous_forest", "coniferous_forest", - "floatland_coniferous_forest"}, - y_max = 31000, - y_min = 1, - decoration = "flowers:"..mushroom_name, - }) -end - -local function register_waterlily() - minetest.register_decoration({ - deco_type = "schematic", - place_on = {"default:dirt"}, - sidelen = 16, - noise_params = { - offset = -0.02, - scale = 0.1, - spread = {x = 100, y = 100, z = 100}, - seed = 48, - octaves = 3, - persist = 0.7 - }, - y_min = 0, - y_max = 0, - schematic = minetest.get_modpath("flowers") .. "/schematics/waterlily.mts", - rotation = "random", - }) -end - -function flowers.register_decorations() - register_flower(436, "rose") - register_flower(19822, "tulip") - register_flower(1220999, "dandelion_yellow") - register_flower(36662, "orchid") - register_flower(1133, "allium") - register_flower(73133, "dandelion_white") - - register_mushroom("mushroom_brown") - register_mushroom("mushroom_red") - - register_waterlily() -end - - --- --- Detect mapgen to select functions --- - -local mg_name = minetest.get_mapgen_setting("mg_name") -if mg_name == "v6" then - flowers.register_mgv6_decorations() -else - flowers.register_decorations() -end diff --git a/games/default/files/flowers/models/3dmushrooms.obj b/games/default/files/flowers/models/3dmushrooms.obj deleted file mode 100644 index bce1ed6e5..000000000 --- a/games/default/files/flowers/models/3dmushrooms.obj +++ /dev/null @@ -1,329 +0,0 @@ -# Blender v2.73 (sub 0) OBJ File: 'plantlife_mushroom.blend' -# www.blender.org -o Cylinder -v 0.261489 -0.177877 -0.000000 -v 0.165972 -0.203714 -0.000000 -v 0.210761 -0.224729 -0.000000 -v 0.258520 -0.211811 -0.000000 -v 0.185335 -0.171215 -0.184553 -v 0.116925 -0.199423 -0.118862 -v 0.148161 -0.219252 -0.151707 -v 0.182366 -0.205148 -0.184553 -v 0.001484 -0.155130 -0.260997 -v -0.001484 -0.189063 -0.168096 -v -0.002969 -0.206030 -0.214547 -v -0.001484 -0.189063 -0.260997 -v -0.182366 -0.139045 -0.184553 -v -0.119894 -0.178704 -0.118862 -v -0.154099 -0.192808 -0.151707 -v -0.185335 -0.172979 -0.184553 -v -0.258520 -0.132382 -0.000000 -v -0.168941 -0.174413 -0.000000 -v -0.216699 -0.187331 -0.000000 -v -0.261489 -0.166316 -0.000000 -v -0.182366 -0.139045 0.184553 -v -0.119894 -0.178704 0.118862 -v -0.154099 -0.192808 0.151707 -v -0.185335 -0.172979 0.184553 -v 0.001484 -0.155130 0.260997 -v -0.001484 -0.189063 0.168096 -v -0.002969 -0.206030 0.214547 -v -0.001484 -0.189063 0.260997 -v 0.185335 -0.171215 0.184553 -v 0.116925 -0.199423 0.118862 -v 0.148161 -0.219252 0.151708 -v 0.182366 -0.205148 0.184553 -v 0.059333 -0.075538 0.000000 -v 0.044915 -0.074277 -0.034942 -v 0.010106 -0.071232 -0.049416 -v -0.024704 -0.068186 -0.034942 -v -0.039122 -0.066925 0.000000 -v -0.024704 -0.068186 0.034942 -v 0.010106 -0.071232 0.049416 -v 0.044915 -0.074277 0.034942 -v 0.004580 -0.119744 -0.206430 -v 0.149993 -0.132466 -0.145968 -v 0.004580 -0.119744 0.206430 -v -0.140833 -0.107022 0.145968 -v 0.210225 -0.137736 -0.000000 -v 0.149993 -0.132466 0.145968 -v -0.201064 -0.101752 -0.000000 -v -0.140833 -0.107022 -0.145968 -v 0.033054 -0.500000 -0.079800 -v 0.025067 -0.177627 -0.060518 -v 0.079800 -0.500000 -0.033054 -v 0.060518 -0.177627 -0.025067 -v 0.079800 -0.500000 0.033054 -v 0.060518 -0.177627 0.025067 -v 0.033054 -0.500000 0.079800 -v 0.025067 -0.177627 0.060518 -v -0.033054 -0.500000 0.079800 -v -0.025067 -0.177627 0.060518 -v -0.079800 -0.500000 0.033054 -v -0.060518 -0.177627 0.025067 -v -0.079800 -0.500000 -0.033054 -v -0.060518 -0.177627 -0.025067 -v -0.033054 -0.500000 -0.079800 -v -0.025067 -0.177627 -0.060518 -v 0.014323 -0.253674 -0.065067 -v 0.012105 -0.382623 -0.072780 -v 0.052438 -0.253674 -0.026952 -v 0.054739 -0.382623 -0.030146 -v 0.052438 -0.253674 0.026952 -v 0.054739 -0.382623 0.030146 -v 0.014323 -0.253674 0.065067 -v 0.012105 -0.382623 0.072780 -v -0.039580 -0.253674 0.065067 -v -0.048187 -0.382623 0.072780 -v -0.077695 -0.253674 0.026952 -v -0.090820 -0.382623 0.030146 -v -0.077695 -0.253674 -0.026952 -v -0.090820 -0.382623 -0.030146 -v -0.039580 -0.253674 -0.065067 -v -0.048187 -0.382623 -0.072780 -vt 0.261010 0.917920 -vt 0.235559 0.983636 -vt 0.016350 0.764426 -vt 0.080814 0.737724 -vt 0.545568 0.235207 -vt 0.764778 0.454417 -vt 0.690996 0.484978 -vt 0.517617 0.311599 -vt 0.235559 0.235207 -vt 0.515845 0.302693 -vt 0.261010 0.302693 -vt 0.578125 0.234375 -vt 0.765625 0.234375 -vt 0.765625 0.312500 -vt 0.578125 0.312500 -vt 0.015625 0.234375 -vt 0.203125 0.234375 -vt 0.203125 0.312500 -vt 0.015625 0.312500 -vt 0.390625 0.312500 -vt 0.578125 0.390625 -vt 0.390625 0.390625 -vt 0.016350 0.454417 -vt 0.080814 0.482889 -vt 0.545569 0.983636 -vt 0.515845 0.917920 -vt 0.099043 0.730173 -vt 0.272422 0.903553 -vt 0.290733 0.368408 -vt 0.490395 0.368408 -vt 0.149550 0.709253 -vt 0.149550 0.509591 -vt 0.764778 0.764426 -vt 0.696041 0.737725 -vt 0.696041 0.482889 -vt 0.099043 0.484978 -vt 0.203125 0.390625 -vt 0.765625 0.390625 -vt 0.272422 0.311599 -vt 0.631577 0.509591 -vt 0.390625 0.234375 -vt 0.517617 0.903553 -vt 0.690996 0.730173 -vt 0.432320 0.675133 -vt 0.473823 0.633629 -vt 0.015625 0.390625 -vt 0.490395 0.850435 -vt 0.290733 0.850435 -vt 0.631577 0.709253 -vt 0.373624 0.533431 -vt 0.332121 0.574934 -vt 0.473823 0.574934 -vt 0.432320 0.533431 -vt 0.332121 0.633630 -vt 0.373624 0.675133 -vt 0.935126 0.767633 -vt 0.998032 0.830539 -vt 0.998032 0.919502 -vt 0.935126 0.982408 -vt 0.846164 0.982408 -vt 0.783257 0.919502 -vt 0.783258 0.830539 -vt 0.846164 0.767633 -vt 0.375000 0.187500 -vt 0.375000 0.031250 -vt 0.500000 0.031250 -vt 0.500000 0.187500 -vt 0.625000 0.031250 -vt 0.625000 0.187500 -vt 0.750000 0.031250 -vt 0.750000 0.187500 -vt 0.875000 0.031250 -vt 0.875000 0.187500 -vt 1.000000 0.031250 -vt 1.000000 0.187500 -vt 0.000000 0.031250 -vt 0.125000 0.031250 -vt 0.125000 0.187500 -vt 0.000000 0.187500 -vt 0.250000 0.031250 -vt 0.250000 0.187500 -vt 0.542224 0.015885 -vt 0.601585 0.075246 -vt 0.601585 0.159195 -vt 0.542224 0.218556 -vt 0.458275 0.218556 -vt 0.398914 0.159195 -vt 0.398914 0.075246 -vt 0.458275 0.015885 -vt 0.625000 0.125000 -vt 0.500000 0.125000 -vt 0.750000 0.125000 -vt 0.875000 0.125000 -vt 1.000000 0.125000 -vt 0.125000 0.125000 -vt 0.000000 0.125000 -vt 0.250000 0.125000 -vt 0.375000 0.125000 -vn -0.147000 -0.987300 0.060400 -vn -0.648700 -0.460200 0.606100 -vn -0.898800 -0.438400 0.000000 -vn -0.172000 -0.985100 0.000000 -vn 0.672500 0.376500 0.637100 -vn 0.935400 0.353500 0.000000 -vn 0.529200 0.848500 0.000000 -vn 0.396700 0.860200 0.320400 -vn -0.044900 -0.513100 -0.857100 -vn 0.558900 -0.565900 -0.606100 -vn -0.026600 -0.997800 -0.060400 -vn -0.086800 -0.992500 -0.085500 -vn -0.044900 -0.513100 0.857100 -vn 0.037800 0.432000 0.901100 -vn -0.596900 0.487600 0.637100 -vn -0.648700 -0.460200 -0.606100 -vn -0.596900 0.487600 -0.637100 -vn 0.037800 0.432000 -0.901100 -vn 0.809000 -0.587800 0.000000 -vn 0.672500 0.376500 -0.637100 -vn -0.147000 -0.987300 -0.060400 -vn -0.086800 -0.992500 0.085500 -vn -0.859800 0.510500 0.000000 -vn -0.372100 0.928200 0.000000 -vn -0.240600 0.916500 -0.319400 -vn -0.085100 -0.972600 0.216400 -vn -0.237500 -0.959200 0.153000 -vn 0.130500 -0.991400 0.000000 -vn 0.067400 -0.985900 0.153000 -vn 0.558900 -0.565900 0.606100 -vn -0.026600 -0.997800 0.060400 -vn -0.001700 -1.000000 0.000000 -vn -0.240600 0.916500 0.319400 -vn 0.077500 0.888400 0.452400 -vn -0.300700 -0.953700 0.000000 -vn 0.077500 0.888400 -0.452400 -vn 0.396700 0.860200 -0.320400 -vn 0.086200 0.978700 -0.186300 -vn 0.217800 0.967000 -0.132200 -vn -0.085100 -0.972600 -0.216400 -vn 0.067400 -0.985900 -0.153000 -vn -0.237500 -0.959200 -0.153000 -vn 0.086200 0.978700 0.186300 -vn -0.044600 0.990300 0.131300 -vn 0.272600 0.962100 0.000000 -vn 0.217800 0.967000 0.132200 -vn -0.098600 0.995100 0.000000 -vn -0.044600 0.990300 -0.131300 -vn -0.273500 -0.626100 -0.730200 -vn -0.402500 0.040600 -0.914500 -vn 0.360300 0.084000 -0.929000 -vn 0.335600 -0.581700 -0.740900 -vn 0.369900 0.027700 -0.928600 -vn 0.921100 -0.031200 -0.388000 -vn 0.913800 0.116800 -0.388800 -vn 0.921100 -0.031200 0.388000 -vn 0.913800 0.116800 0.388800 -vn 0.369900 0.027700 0.928600 -vn 0.360300 0.084000 0.929000 -vn -0.391600 0.105700 0.914000 -vn -0.402500 0.040600 0.914500 -vn -0.914200 0.156600 0.373800 -vn -0.927200 0.012400 0.374500 -vn -0.914200 0.156600 -0.373800 -vn -0.927200 0.012400 -0.374500 -vn -0.391600 0.105700 -0.914000 -vn 0.774400 -0.552100 -0.309000 -vn 0.774400 -0.552100 0.309000 -vn 0.335600 -0.581700 0.740900 -vn -0.273500 -0.626100 0.730200 -vn -0.690800 -0.658600 0.298100 -vn -0.690800 -0.658600 -0.298100 -vn 0.416700 -0.004500 -0.909100 -vn 0.925800 -0.089300 -0.367400 -vn 0.925800 -0.089300 0.367400 -vn 0.416700 -0.004500 0.909100 -vn -0.344300 0.121400 0.931000 -vn -0.896600 0.212200 0.388700 -vn -0.896600 0.212200 -0.388700 -vn -0.344300 0.121400 -0.931000 -s 1 -f 23/1/1 24/2/2 20/3/3 19/4/4 -f 29/5/5 1/6/6 45/7/7 46/8/8 -f 12/9/9 8/5/10 7/10/11 11/11/12 -f 24/12/2 28/13/13 25/14/14 21/15/15 -f 12/16/9 16/17/16 13/18/17 9/19/18 -f 4/20/19 8/15/10 5/21/20 1/22/6 -f 16/23/16 12/9/9 11/11/12 15/24/21 -f 28/25/13 24/2/2 23/1/1 27/26/22 -f 13/2/17 17/3/23 47/27/24 48/28/25 -f 10/29/26 11/11/12 7/10/11 6/30/27 -f 18/31/28 19/4/4 15/24/21 14/32/29 -f 4/6/19 32/33/30 31/34/31 3/35/32 -f 17/3/23 21/23/15 44/36/33 47/27/24 -f 32/18/30 4/20/19 1/22/6 29/37/5 -f 8/5/10 4/6/19 3/35/32 7/10/11 -f 8/15/10 12/14/9 9/38/18 5/21/20 -f 25/9/14 29/5/5 46/8/8 43/39/34 -f 6/30/27 7/10/11 3/35/32 2/40/35 -f 16/17/16 20/41/3 17/20/23 13/18/17 -f 31/34/31 32/33/30 28/25/13 27/26/22 -f 5/33/20 9/25/18 41/42/36 42/43/37 -f 41/42/36 35/44/38 34/45/39 42/43/37 -f 15/24/21 11/11/12 10/29/26 14/32/29 -f 20/41/3 24/12/2 21/15/15 17/20/23 -f 1/6/6 5/33/20 42/43/37 45/7/7 -f 19/4/4 20/3/3 16/23/16 15/24/21 -f 28/19/13 32/18/30 29/37/5 25/46/14 -f 26/47/40 27/26/22 23/1/1 22/48/41 -f 21/23/15 25/9/14 43/39/34 44/36/33 -f 9/25/18 13/2/17 48/28/25 41/42/36 -f 23/1/1 19/4/4 18/31/28 22/48/41 -f 2/40/35 3/35/32 31/34/31 30/49/42 -f 43/39/34 39/50/43 38/51/44 44/36/33 -f 45/7/7 33/52/45 40/53/46 46/8/8 -f 42/43/37 34/45/39 33/52/45 45/7/7 -f 46/8/8 40/53/46 39/50/43 43/39/34 -f 44/36/33 38/51/44 37/54/47 47/27/24 -f 47/27/24 37/54/47 36/55/48 48/28/25 -f 48/28/25 36/55/48 35/44/38 41/42/36 -f 35/44/38 36/55/48 37/54/47 38/51/44 39/50/43 40/53/46 33/52/45 34/45/39 -f 6/56/27 2/57/35 30/58/42 26/59/40 22/60/41 18/61/28 14/62/29 10/63/26 -f 63/64/49 80/65/50 66/66/51 49/67/52 -f 65/66/53 67/68/54 68/69/55 66/67/51 -f 67/68/54 69/70/56 70/71/57 68/69/55 -f 69/70/56 71/72/58 72/73/59 70/71/57 -f 71/72/58 73/74/60 74/75/61 72/73/59 -f 73/76/60 75/77/62 76/78/63 74/79/61 -f 75/77/62 77/80/64 78/81/65 76/78/63 -f 77/80/64 79/65/66 80/64/50 78/81/65 -f 49/82/52 51/83/67 53/84/68 55/85/69 57/86/70 59/87/71 61/88/72 63/89/49 -f 50/66/73 52/68/74 67/90/54 65/91/53 -f 52/68/74 54/70/75 69/92/56 67/90/54 -f 66/66/51 68/68/55 51/69/67 49/67/52 -f 54/70/75 56/72/76 71/93/58 69/92/56 -f 68/68/55 70/70/57 53/71/68 51/69/67 -f 56/72/76 58/74/77 73/94/60 71/93/58 -f 70/70/57 72/72/59 55/73/69 53/71/68 -f 58/76/77 60/77/78 75/95/62 73/96/60 -f 72/72/59 74/74/61 57/75/70 55/73/69 -f 60/77/78 62/80/79 77/97/64 75/95/62 -f 74/76/61 76/77/63 59/78/71 57/79/70 -f 62/80/79 64/65/80 79/98/66 77/97/64 -f 76/77/63 78/80/65 61/81/72 59/78/71 -f 31/34/31 27/26/22 26/47/40 30/49/42 -f 78/80/65 80/65/50 63/64/49 61/81/72 -f 79/98/66 64/65/80 50/66/73 65/91/53 -f 79/65/66 65/66/53 66/67/51 80/64/50 diff --git a/games/default/files/flowers/models/3dmushrooms_brown.png b/games/default/files/flowers/models/3dmushrooms_brown.png deleted file mode 100644 index 76f0dcb57..000000000 Binary files a/games/default/files/flowers/models/3dmushrooms_brown.png and /dev/null differ diff --git a/games/default/files/flowers/models/3dmushrooms_red.png b/games/default/files/flowers/models/3dmushrooms_red.png deleted file mode 100644 index afd3b13e9..000000000 Binary files a/games/default/files/flowers/models/3dmushrooms_red.png and /dev/null differ diff --git a/games/default/files/flowers/schematics/waterlily.mts b/games/default/files/flowers/schematics/waterlily.mts deleted file mode 100644 index 69e1d8e0c..000000000 Binary files a/games/default/files/flowers/schematics/waterlily.mts and /dev/null differ diff --git a/games/default/files/flowers/textures/3dmushrooms_brown_inv.png b/games/default/files/flowers/textures/3dmushrooms_brown_inv.png deleted file mode 100644 index 3d8255c39..000000000 Binary files a/games/default/files/flowers/textures/3dmushrooms_brown_inv.png and /dev/null differ diff --git a/games/default/files/flowers/textures/3dmushrooms_red_inv.png b/games/default/files/flowers/textures/3dmushrooms_red_inv.png deleted file mode 100644 index b03dbaa75..000000000 Binary files a/games/default/files/flowers/textures/3dmushrooms_red_inv.png and /dev/null differ diff --git a/games/default/files/flowers/textures/flowers_allium.png b/games/default/files/flowers/textures/flowers_allium.png deleted file mode 100644 index 45e30b2ee..000000000 Binary files a/games/default/files/flowers/textures/flowers_allium.png and /dev/null differ diff --git a/games/default/files/flowers/textures/flowers_dandelion_white.png b/games/default/files/flowers/textures/flowers_dandelion_white.png deleted file mode 100644 index f94b45828..000000000 Binary files a/games/default/files/flowers/textures/flowers_dandelion_white.png and /dev/null differ diff --git a/games/default/files/flowers/textures/flowers_dandelion_yellow.png b/games/default/files/flowers/textures/flowers_dandelion_yellow.png deleted file mode 100644 index 03abf792d..000000000 Binary files a/games/default/files/flowers/textures/flowers_dandelion_yellow.png and /dev/null differ diff --git a/games/default/files/flowers/textures/flowers_orchid.png b/games/default/files/flowers/textures/flowers_orchid.png deleted file mode 100644 index b43d72bd5..000000000 Binary files a/games/default/files/flowers/textures/flowers_orchid.png and /dev/null differ diff --git a/games/default/files/flowers/textures/flowers_oxeye_daisy.png b/games/default/files/flowers/textures/flowers_oxeye_daisy.png deleted file mode 100644 index 04498b5e4..000000000 Binary files a/games/default/files/flowers/textures/flowers_oxeye_daisy.png and /dev/null differ diff --git a/games/default/files/flowers/textures/flowers_rose.png b/games/default/files/flowers/textures/flowers_rose.png deleted file mode 100644 index 85e8edc13..000000000 Binary files a/games/default/files/flowers/textures/flowers_rose.png and /dev/null differ diff --git a/games/default/files/flowers/textures/flowers_tulip.png b/games/default/files/flowers/textures/flowers_tulip.png deleted file mode 100644 index d29d200e7..000000000 Binary files a/games/default/files/flowers/textures/flowers_tulip.png and /dev/null differ diff --git a/games/default/files/flowers/textures/flowers_viola.png b/games/default/files/flowers/textures/flowers_viola.png deleted file mode 100644 index 80c2e47b0..000000000 Binary files a/games/default/files/flowers/textures/flowers_viola.png and /dev/null differ diff --git a/games/default/files/flowers/textures/flowers_waterlily.png b/games/default/files/flowers/textures/flowers_waterlily.png deleted file mode 100644 index 5ccd403a4..000000000 Binary files a/games/default/files/flowers/textures/flowers_waterlily.png and /dev/null differ diff --git a/games/default/files/furniture/LICENSE b/games/default/files/furniture/LICENSE deleted file mode 100644 index 2e317385b..000000000 --- a/games/default/files/furniture/LICENSE +++ /dev/null @@ -1,21 +0,0 @@ -MIT License - -Copyright (c) 2019 Thomas S. - -Permission is hereby granted, free of charge, to any person obtaining a copy -of this software and associated documentation files (the "Software"), to deal -in the Software without restriction, including without limitation the rights -to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -copies of the Software, and to permit persons to whom the Software is -furnished to do so, subject to the following conditions: - -The above copyright notice and this permission notice shall be included in all -copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE -SOFTWARE. \ No newline at end of file diff --git a/games/default/files/furniture/README.md b/games/default/files/furniture/README.md deleted file mode 100644 index 1adc41189..000000000 --- a/games/default/files/furniture/README.md +++ /dev/null @@ -1,12 +0,0 @@ -MultiCraft Game mod: furniture -============================== - -https://github.com/minetest-mods/ts_furniture - -This mod adds basic furniture (Chairs, Tables, Small Tables, Tiny Tables, Benches). - -It was made by Thomas-S. - -It is published under the MIT license. - -Code from "Get Comfortable [cozy]" (by everamzah; published under WTFPL) was used and modified. diff --git a/games/default/files/furniture/init.lua b/games/default/files/furniture/init.lua deleted file mode 100644 index 187ddcf45..000000000 --- a/games/default/files/furniture/init.lua +++ /dev/null @@ -1,182 +0,0 @@ -ts_furniture = {} - --- If true, you can sit on chairs and benches, when right-click them. -ts_furniture.enable_sitting = false - --- The following code is from "Get Comfortable [cozy]" (by everamzah; published under WTFPL). --- Thomas S. modified it, so that it can be used in this mod ---[[minetest.register_globalstep(function(dtime) - local players = minetest.get_connected_players() - for i = 1, #players do - local name = players[i]:get_player_name() - if player_api.player_attached[name] and not players[i]:get_attach() and - (players[i]:get_player_control().up == true or - players[i]:get_player_control().down == true or - players[i]:get_player_control().left == true or - players[i]:get_player_control().right == true or - players[i]:get_player_control().jump == true) then - players[i]:set_eye_offset({ x = 0, y = 0, z = 0 }, { x = 0, y = 0, z = 0 }) - players[i]:set_physics_override(1, 1, 1) - player_api.player_attached[name] = false - player_api.set_animation(players[i], "stand", 30) - end - end -end) - -ts_furniture.sit = function(name, pos) - local player = minetest.get_player_by_name(name) - if player_api.player_attached[name] then - player:set_eye_offset({ x = 0, y = 0, z = 0 }, { x = 0, y = 0, z = 0 }) - player:set_physics_override(1, 1, 1) - player_api.player_attached[name] = false - player_api.set_animation(player, "stand", 30) - else - player:moveto(pos) - player:set_eye_offset({ x = 0, y = -7, z = 2 }, { x = 0, y = 0, z = 0 }) - player:set_physics_override(0, 0, 0) - player_api.player_attached[name] = true - player_api.set_animation(player, "sit", 30) - end -end]] - -local furnitures = { - ["chair"] = { - description = "Chair", - sitting = true, - nodebox = { - { -0.3, -0.5, 0.2, -0.2, 0.5, 0.3 }, -- foot 1 - { 0.2, -0.5, 0.2, 0.3, 0.5, 0.3 }, -- foot 2 - { 0.2, -0.5, -0.3, 0.3, -0.1, -0.2 }, -- foot 3 - { -0.3, -0.5, -0.3, -0.2, -0.1, -0.2 }, -- foot 4 - { -0.3, -0.1, -0.3, 0.3, 0, 0.2 }, -- seating - { -0.2, 0.1, 0.25, 0.2, 0.4, 0.26 } -- conector 1-2 - }, - craft = function(recipe) - return { - { "", "group:stick" }, - { recipe, recipe }, - { "group:stick", "group:stick" } - } - end - }, - ["table"] = { - description = "Table", - nodebox = { - { -0.4, -0.5, -0.4, -0.3, 0.4, -0.3 }, -- foot 1 - { 0.3, -0.5, -0.4, 0.4, 0.4, -0.3 }, -- foot 2 - { -0.4, -0.5, 0.3, -0.3, 0.4, 0.4 }, -- foot 3 - { 0.3, -0.5, 0.3, 0.4, 0.4, 0.4 }, -- foot 4 - { -0.5, 0.4, -0.5, 0.5, 0.5, 0.5 }, -- table top - }, - craft = function(recipe) - return { - { recipe, recipe, recipe }, - { "group:stick", "", "group:stick" }, - { "group:stick", "", "group:stick" } - } - end - }, - ["small_table"] = { - description = "Small Table", - nodebox = { - { -0.4, -0.5, -0.4, -0.3, 0.1, -0.3 }, -- foot 1 - { 0.3, -0.5, -0.4, 0.4, 0.1, -0.3 }, -- foot 2 - { -0.4, -0.5, 0.3, -0.3, 0.1, 0.4 }, -- foot 3 - { 0.3, -0.5, 0.3, 0.4, 0.1, 0.4 }, -- foot 4 - { -0.5, 0.1, -0.5, 0.5, 0.2, 0.5 }, -- table top - }, - craft = function(recipe) - return { - { recipe, recipe, recipe }, - { "group:stick", "", "group:stick" } - } - end - }, - ["tiny_table"] = { - description = "Tiny Table", - nodebox = { - { -0.5, -0.1, -0.5, 0.5, 0, 0.5 }, -- table top - { -0.4, -0.5, -0.5, -0.3, -0.1, 0.5 }, -- foot 1 - { 0.3, -0.5, -0.5, 0.4, -0.1, 0.5 }, -- foot 2 - }, - craft = function(recipe) - local bench_name = "ts_furniture:" .. recipe:gsub(":", "_") .. "_bench" - return { - { bench_name, bench_name } - } - end - }, - ["bench"] = { - description = "Bench", - sitting = true, - nodebox = { - { -0.5, -0.1, 0, 0.5, 0, 0.5 }, -- seating - { -0.4, -0.5, 0, -0.3, -0.1, 0.5 }, -- foot 1 - { 0.3, -0.5, 0, 0.4, -0.1, 0.5 }, -- foot 2 - }, - craft = function(recipe) - return { - { recipe, recipe }, - { "group:stick", "group:stick" } - } - end - }, -} - -local ignore_groups = { - ["wood"] = true, - ["stone"] = true, -} - -function ts_furniture.register_furniture(recipe, description, texture) - local recipe_def = minetest.registered_items[recipe] - if not recipe_def then - return - end - - local groups = {falling_node = 1} - - for k, v in pairs(recipe_def.groups) do - if not ignore_groups[k] then - groups[k] = v - end - end - - for furniture, def in pairs(furnitures) do - local node_name = "ts_furniture:" .. recipe:gsub(":", "_") .. "_" .. furniture - - def.on_rightclick = nil - - if def.sitting and ts_furniture.enable_sitting then - def.on_rightclick = function(pos, node, player, itemstack, pointed_thing) - ts_furniture.sit(player:get_player_name(), pos) - end - end - - minetest.register_node(":" .. node_name, { - description = description .. " " .. def.description, - drawtype = "nodebox", - paramtype = "light", - paramtype2 = "facedir", - sunlight_propagates = true, - tiles = { texture }, - groups = groups, - node_box = { - type = "fixed", - fixed = def.nodebox - }, - on_rightclick = def.on_rightclick - }) - - minetest.register_craft({ - output = node_name, - recipe = def.craft(recipe) - }) - end -end - -ts_furniture.register_furniture("default:birch_wood", "Birch", "default_birch_wood.png") -ts_furniture.register_furniture("default:pine_wood", "Pine", "default_pine_wood.png") -ts_furniture.register_furniture("default:acacia_wood", "Acacia", "default_acacia_wood.png") -ts_furniture.register_furniture("default:wood", "Wooden", "default_wood.png") -ts_furniture.register_furniture("default:junglewood", "Jungle Wood", "default_junglewood.png") diff --git a/games/default/files/hunger/LICENSE.txt b/games/default/files/hunger/LICENSE.txt deleted file mode 100644 index 02bbb60bc..000000000 --- a/games/default/files/hunger/LICENSE.txt +++ /dev/null @@ -1,165 +0,0 @@ - GNU LESSER GENERAL PUBLIC LICENSE - Version 3, 29 June 2007 - - Copyright (C) 2007 Free Software Foundation, Inc. - Everyone is permitted to copy and distribute verbatim copies - of this license document, but changing it is not allowed. - - - This version of the GNU Lesser General Public License incorporates -the terms and conditions of version 3 of the GNU General Public -License, supplemented by the additional permissions listed below. - - 0. Additional Definitions. - - As used herein, "this License" refers to version 3 of the GNU Lesser -General Public License, and the "GNU GPL" refers to version 3 of the GNU -General Public License. - - "The Library" refers to a covered work governed by this License, -other than an Application or a Combined Work as defined below. - - An "Application" is any work that makes use of an interface provided -by the Library, but which is not otherwise based on the Library. -Defining a subclass of a class defined by the Library is deemed a mode -of using an interface provided by the Library. - - A "Combined Work" is a work produced by combining or linking an -Application with the Library. The particular version of the Library -with which the Combined Work was made is also called the "Linked -Version". - - The "Minimal Corresponding Source" for a Combined Work means the -Corresponding Source for the Combined Work, excluding any source code -for portions of the Combined Work that, considered in isolation, are -based on the Application, and not on the Linked Version. - - The "Corresponding Application Code" for a Combined Work means the -object code and/or source code for the Application, including any data -and utility programs needed for reproducing the Combined Work from the -Application, but excluding the System Libraries of the Combined Work. - - 1. Exception to Section 3 of the GNU GPL. - - You may convey a covered work under sections 3 and 4 of this License -without being bound by section 3 of the GNU GPL. - - 2. Conveying Modified Versions. - - If you modify a copy of the Library, and, in your modifications, a -facility refers to a function or data to be supplied by an Application -that uses the facility (other than as an argument passed when the -facility is invoked), then you may convey a copy of the modified -version: - - a) under this License, provided that you make a good faith effort to - ensure that, in the event an Application does not supply the - function or data, the facility still operates, and performs - whatever part of its purpose remains meaningful, or - - b) under the GNU GPL, with none of the additional permissions of - this License applicable to that copy. - - 3. Object Code Incorporating Material from Library Header Files. - - The object code form of an Application may incorporate material from -a header file that is part of the Library. You may convey such object -code under terms of your choice, provided that, if the incorporated -material is not limited to numerical parameters, data structure -layouts and accessors, or small macros, inline functions and templates -(ten or fewer lines in length), you do both of the following: - - a) Give prominent notice with each copy of the object code that the - Library is used in it and that the Library and its use are - covered by this License. - - b) Accompany the object code with a copy of the GNU GPL and this license - document. - - 4. Combined Works. - - You may convey a Combined Work under terms of your choice that, -taken together, effectively do not restrict modification of the -portions of the Library contained in the Combined Work and reverse -engineering for debugging such modifications, if you also do each of -the following: - - a) Give prominent notice with each copy of the Combined Work that - the Library is used in it and that the Library and its use are - covered by this License. - - b) Accompany the Combined Work with a copy of the GNU GPL and this license - document. - - c) For a Combined Work that displays copyright notices during - execution, include the copyright notice for the Library among - these notices, as well as a reference directing the user to the - copies of the GNU GPL and this license document. - - d) Do one of the following: - - 0) Convey the Minimal Corresponding Source under the terms of this - License, and the Corresponding Application Code in a form - suitable for, and under terms that permit, the user to - recombine or relink the Application with a modified version of - the Linked Version to produce a modified Combined Work, in the - manner specified by section 6 of the GNU GPL for conveying - Corresponding Source. - - 1) Use a suitable shared library mechanism for linking with the - Library. A suitable mechanism is one that (a) uses at run time - a copy of the Library already present on the user's computer - system, and (b) will operate properly with a modified version - of the Library that is interface-compatible with the Linked - Version. - - e) Provide Installation Information, but only if you would otherwise - be required to provide such information under section 6 of the - GNU GPL, and only to the extent that such information is - necessary to install and execute a modified version of the - Combined Work produced by recombining or relinking the - Application with a modified version of the Linked Version. (If - you use option 4d0, the Installation Information must accompany - the Minimal Corresponding Source and Corresponding Application - Code. If you use option 4d1, you must provide the Installation - Information in the manner specified by section 6 of the GNU GPL - for conveying Corresponding Source.) - - 5. Combined Libraries. - - You may place library facilities that are a work based on the -Library side by side in a single library together with other library -facilities that are not Applications and are not covered by this -License, and convey such a combined library under terms of your -choice, if you do both of the following: - - a) Accompany the combined library with a copy of the same work based - on the Library, uncombined with any other library facilities, - conveyed under the terms of this License. - - b) Give prominent notice with the combined library that part of it - is a work based on the Library, and explaining where to find the - accompanying uncombined form of the same work. - - 6. Revised Versions of the GNU Lesser General Public License. - - The Free Software Foundation may publish revised and/or new versions -of the GNU Lesser General Public License from time to time. Such new -versions will be similar in spirit to the present version, but may -differ in detail to address new problems or concerns. - - Each version is given a distinguishing version number. If the -Library as you received it specifies that a certain numbered version -of the GNU Lesser General Public License "or any later version" -applies to it, you have the option of following the terms and -conditions either of that published version or of any later version -published by the Free Software Foundation. If the Library as you -received it does not specify a version number of the GNU Lesser -General Public License, you may choose any version of the GNU Lesser -General Public License ever published by the Free Software Foundation. - - If the Library as you received it specifies that a proxy can decide -whether future versions of the GNU Lesser General Public License shall -apply, that proxy's public statement of acceptance of any version is -permanent authorization for you to choose that version for the -Library. \ No newline at end of file diff --git a/games/default/files/hunger/README.txt b/games/default/files/hunger/README.txt deleted file mode 100644 index 2799f1d55..000000000 --- a/games/default/files/hunger/README.txt +++ /dev/null @@ -1,42 +0,0 @@ -MultiCraft Game mod: Hunger -===================== -Version: 1.1.3 - -(c) Copyright BlockMen (2015) - - -About this mod: -~~~~~~~~~~~~~~~ -This mod adds hunger mechanics to Minetest, which are based on player actions and on time. -Also it changes the eating in Minetest, e.g. an Apple does not restore Health, but it rises your saturation. -Example: 1 apple fills up the hunger bar by 1 "bread" (statbar symbol). -Although the statbar show 20 hunger points (10 breads) on the HUD you can fill it up to 30 points. - -For Modders: -~~~~~~~~~~~~ -This mod alters the behavior of minetest.item_eat(). -All callbacks that are registered via minetest.register_on_item_eat() are called AFTER this mod actions, so the itemstack -will have changed already when callbacks are called. You can get the original itemstack as 6th parameter of your function then. - -License: -~~~~~~~~ -(c) Copyright BlockMen (2015) -https://github.com/BlockMen/hunger - - -Code: -Licensed under the GNU LGPL version 3.0 or higher. -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; - -You should have received a copy of the GNU Lesser General Public -License along with this library; if not, write to the Free Software -Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA - -See LICENSE.txt and http://www.gnu.org/licenses/lgpl-3.0.txt - -Textures: -Copyright (C) MultiCraft Development Team - -Sound: WTFPL diff --git a/games/default/files/hunger/depends.txt b/games/default/files/hunger/depends.txt deleted file mode 100644 index 985a8ec51..000000000 --- a/games/default/files/hunger/depends.txt +++ /dev/null @@ -1,3 +0,0 @@ -default -flowers? -mobs? diff --git a/games/default/files/hunger/food.lua b/games/default/files/hunger/food.lua deleted file mode 100644 index 8a3529b1d..000000000 --- a/games/default/files/hunger/food.lua +++ /dev/null @@ -1,15 +0,0 @@ -local register_food = hunger.register_food - -if minetest.get_modpath("flowers") then - register_food("flowers:mushroom_red", 1, "", 3) -end - -if minetest.get_modpath("mobs") then - if mobs.mod ~= nil and mobs.mod == "redo" then - register_food("mobs:meat_raw", 4, "", 3) - register_food("mobs:pork_raw", 3, "", 3) - register_food("mobs:chicken_raw", 2, "", 3) - register_food("mobs:rabbit_raw", 2, "", 3) - register_food("mobs_monster:rotten_flesh", 1, "", 4) - end -end diff --git a/games/default/files/hunger/functions.lua b/games/default/files/hunger/functions.lua deleted file mode 100644 index 2ac2c6025..000000000 --- a/games/default/files/hunger/functions.lua +++ /dev/null @@ -1,275 +0,0 @@ --- read/write -function hunger.read(player) - local inv = player:get_inventory() - if not inv then - return nil - end - local hgp = inv:get_stack("hunger", 1):get_count() - if hgp == 0 then - hgp = 21 - inv:set_stack("hunger", 1, ItemStack({name = ":", count = hgp})) - else - hgp = hgp - end - if tonumber(hgp) > HUNGER_MAX + 1 then - hgp = HUNGER_MAX + 1 - end - return hgp - 1 -end - -function hunger.save(player) - local inv = player:get_inventory() - local name = player:get_player_name() - local value = hunger.players[name].lvl - if not inv or not value then - return nil - end - if value > HUNGER_MAX then - value = HUNGER_MAX - end - if value < 0 then - value = 0 - end - inv:set_stack("hunger", 1, ItemStack({name = ":", count = value + 1})) - return true -end - -function hunger.update_hunger(player, new_lvl) - local name = player:get_player_name() or nil - if not name then - return false - end - local lvl = hunger.players[name].lvl - if new_lvl then - lvl = new_lvl - end - if lvl > HUNGER_MAX then - lvl = HUNGER_MAX - end - hunger.players[name].lvl = lvl - if lvl > 20 then - lvl = 20 - end - hud.change_item(player, "hunger", {number = lvl}) - hunger.save(player) -end -local update_hunger = hunger.update_hunger - --- player-action based hunger changes -function hunger.handle_node_actions(pos, oldnode, player, ext) - if not player or not player:is_player() then - return - end - local name = player:get_player_name() - if not name or not hunger.players[name] then - return - end - - local exhaus = hunger.players[name].exhaus - if not exhaus then - hunger.players[name].exhaus = 0 - --return - end - - local new = HUNGER_EXHAUST_PLACE - - -- placenode event - if not ext then - new = HUNGER_EXHAUST_DIG - end - - -- assume its send by action_timer(globalstep) - if not pos and not oldnode then - new = HUNGER_EXHAUST_MOVE - end - - exhaus = exhaus + new - - if exhaus > HUNGER_EXHAUST_LVL then - exhaus = 0 - local h = tonumber(hunger.players[name].lvl) - if h > 0 then - update_hunger(player, h - 1) - end - end - - hunger.players[name].exhaus = exhaus -end - - --- Time based hunger functions -local hunger_timer = 0 -local health_timer = 0 -local action_timer = 0 - -local function hunger_globaltimer(dtime, playernames) - hunger_timer = hunger_timer + dtime - health_timer = health_timer + dtime - action_timer = action_timer + dtime - - local players_refs = {} - for _, name in pairs(playernames) do - local player = minetest.get_player_by_name(name) - if player and player:is_player() then - players_refs[#players_refs + 1] = player - end - end - - if action_timer > HUNGER_MOVE_TICK then - for _, player in ipairs(players_refs) do - local controls = player:get_player_control() - -- Determine if the player is walking - if controls.up or controls.down or controls.left or controls.right then - hunger.handle_node_actions(nil, nil, player) - end - end - action_timer = 0 - end - - -- lower saturation by 1 point after second(s) - if hunger_timer > HUNGER_TICK then - for _, player in ipairs(players_refs) do - local name = player:get_player_name() - local tab = hunger.players[name] - if tab then - local hunger = tab.lvl - if hunger > 0 then - update_hunger(player, hunger - 1) - end - end - end - hunger_timer = 0 - end - - -- heal or damage player, depending on saturation - if health_timer > HUNGER_HEALTH_TICK then - for _, player in ipairs(players_refs) do - local name = player:get_player_name() - local tab = hunger.players[name] - if tab then - local air = player:get_breath() or 0 - local hp = player:get_hp() - - -- heal player by 1 hp if not dead and saturation is > 15 (of 30) player is not drowning - if tonumber(tab.lvl) > HUNGER_HEAL_LVL and hp > 0 and air > 0 then - player:set_hp(hp + HUNGER_HEAL) - end - - -- or damage player by 1 hp if saturation is < 2 (of 30) - if tonumber(tab.lvl) < HUNGER_STARVE_LVL then - player:set_hp(hp - HUNGER_STARVE) - end - end - end - - health_timer = 0 - end -end - -minetest.register_playerstep(hunger_globaltimer, minetest.is_singleplayer()) - --- food functions -local food = hunger.food - -function hunger.register_food(name, hunger_change, replace_with_item, poisen, heal) - food[name] = {} - food[name].saturation = hunger_change -- hunger points added - food[name].replace = replace_with_item -- what item is given back after eating - food[name].poisen = poisen -- time its poisening - food[name].healing = heal -- amount of HP -end - --- Poison player -local function poisenp(tick, time, time_left, player) - time_left = time_left + tick - if time_left < time then - minetest.after(tick, poisenp, tick, time, time_left, player) - else - hud.change_item(player, "hunger", {text = "hunger_statbar_fg.png"}) - end - local hp = player:get_hp() -1 or 0 - if hp > 0 then - player:set_hp(hp) - end -end - --- wrapper for minetest.item_eat (this way we make sure other mods can't break this one) -local org_eat = core.do_item_eat -core.do_item_eat = function(hp_change, replace_with_item, itemstack, user, pointed_thing) - local old_itemstack = itemstack - itemstack = hunger.eat(hp_change, replace_with_item, itemstack, user, pointed_thing) - for _, callback in pairs(core.registered_on_item_eats) do - local result = callback(hp_change, replace_with_item, itemstack, user, pointed_thing, old_itemstack) - if result then - return result - end - end - return itemstack -end - -function hunger.eat(hp_change, replace_with_item, itemstack, user, pointed_thing) - local item = itemstack:get_name() - local def = food[item] - if not def then - def = {} - if type(hp_change) ~= "number" then - hp_change = 1 - core.log("error", "Wrong on_use() definition for item '" .. item .. "'") - end - def.saturation = hp_change * 1.3 - def.replace = replace_with_item - end - local func = hunger.item_eat(def.saturation, def.replace, def.poisen, def.healing) - return func(itemstack, user, pointed_thing) -end - -function hunger.item_eat(hunger_change, replace_with_item, poisen, heal) - return function(itemstack, user, pointed_thing) - - if itemstack:take_item() == nil and user == nil then - return itemstack - end - - local name = user:get_player_name() - if not hunger.players[name] then - return itemstack - end - local sat = tonumber(hunger.players[name].lvl or 0) - local hp = user:get_hp() - -- Saturation - if sat < HUNGER_MAX and hunger_change then - sat = sat + hunger_change - hunger.update_hunger(user, sat) - end - -- Healing - if hp < 20 and heal then - hp = hp + heal - if hp > 20 then - hp = 20 - end - user:set_hp(hp) - end - -- Poison - if poisen then - hud.change_item(user, "hunger", {text = "hunger_statbar_poisen.png"}) - poisenp(1.0, poisen, 0, user) - end - - if replace_with_item then - if itemstack:is_empty() then - itemstack:add_item(replace_with_item) - else - local inv = user:get_inventory() - if inv:room_for_item("main", {name = replace_with_item}) then - inv:add_item("main", replace_with_item) - else - local pos = user:getpos() - pos.y = math.floor(pos.y + 0.5) - core.add_item(pos, replace_with_item) - end - end - end - - return itemstack - end -end diff --git a/games/default/files/hunger/init.lua b/games/default/files/hunger/init.lua deleted file mode 100644 index dd8d6ef5f..000000000 --- a/games/default/files/hunger/init.lua +++ /dev/null @@ -1,70 +0,0 @@ -hunger = {} -hunger.players = {} -hunger.food = {} - -HUNGER_TICK = 600 -- time in seconds after that 1 hunger point is taken -HUNGER_HEALTH_TICK = 4 -- time in seconds after player gets healed/damaged -HUNGER_MOVE_TICK = 0.5 -- time in seconds after the movement is checked - -HUNGER_EXHAUST_DIG = 2 -- exhaustion increased this value after digged node -HUNGER_EXHAUST_PLACE = 1 -- exhaustion increased this value after placed -HUNGER_EXHAUST_MOVE = 2 -- exhaustion increased this value if player movement detected -HUNGER_EXHAUST_LVL = 160 -- at what exhaustion player saturation gets lowered - -HUNGER_HEAL = 1 -- number of HP player gets healed after HUNGER_HEALTH_TICK -HUNGER_HEAL_LVL = 15 -- lower level of saturation needed to get healed -HUNGER_STARVE = 1 -- number of HP player gets damaged by hunger after HUNGER_HEALTH_TICK -HUNGER_STARVE_LVL = 3 -- level of staturation that causes starving - -HUNGER_MAX = 30 -- maximum level of saturation - --- Callbacks -if minetest.settings:get_bool("enable_damage") then - - local modpath = minetest.get_modpath("hunger") - dofile(modpath .. "/functions.lua") - dofile(modpath .. "/food.lua") - - hud.register("hunger", { - hud_elem_type = "statbar", - position = {x = 0.5, y = 1}, - alignment = {x = -1, y = -1}, - offset = {x = 8, y = -108}, - size = {x = 24, y = 24}, - text = "hunger_statbar_fg.png", - background = "hunger_statbar_bg.png", - number = 20 - }) - - minetest.register_on_joinplayer(function(player) - minetest.after(0.5, function() - local inv = player:get_inventory() - if inv then - inv:set_size("hunger", 1) - - local name = player:get_player_name() - hunger.players[name] = {} - hunger.players[name].lvl = hunger.read(player) - hunger.players[name].exhaus = 0 - local lvl = hunger.players[name].lvl - if lvl > 20 then - lvl = 20 - end - - hud.change_item(player, "hunger", {number = lvl}) - end - end) - end) - - minetest.register_on_leaveplayer(function(player) - local name = player:get_player_name() - hunger.players[name] = nil - end) - - -- for exhaustion - minetest.register_on_placenode(hunger.handle_node_actions) - minetest.register_on_dignode(hunger.handle_node_actions) - minetest.register_on_respawnplayer(function(player) - hunger.update_hunger(player, 20) - end) -end diff --git a/games/default/files/hunger/textures/hunger_statbar_bg.png b/games/default/files/hunger/textures/hunger_statbar_bg.png deleted file mode 100644 index f66d36dba..000000000 Binary files a/games/default/files/hunger/textures/hunger_statbar_bg.png and /dev/null differ diff --git a/games/default/files/hunger/textures/hunger_statbar_fg.png b/games/default/files/hunger/textures/hunger_statbar_fg.png deleted file mode 100644 index 7f7e9467e..000000000 Binary files a/games/default/files/hunger/textures/hunger_statbar_fg.png and /dev/null differ diff --git a/games/default/files/hunger/textures/hunger_statbar_poisen.png b/games/default/files/hunger/textures/hunger_statbar_poisen.png deleted file mode 100644 index 10431c1e0..000000000 Binary files a/games/default/files/hunger/textures/hunger_statbar_poisen.png and /dev/null differ diff --git a/games/default/files/inventory/depends.txt b/games/default/files/inventory/depends.txt deleted file mode 100644 index c12cc51ba..000000000 --- a/games/default/files/inventory/depends.txt +++ /dev/null @@ -1,2 +0,0 @@ -default -3d_armor? diff --git a/games/default/files/inventory/init.lua b/games/default/files/inventory/init.lua deleted file mode 100644 index 86d300aa2..000000000 --- a/games/default/files/inventory/init.lua +++ /dev/null @@ -1,55 +0,0 @@ -local function drop_fields(player, name) - local inv = player:get_inventory() - for i,stack in ipairs(inv:get_list(name)) do - minetest.item_drop(stack, player, player:get_pos()) - stack:clear() - inv:set_stack(name, i, stack) - end -end - -local function set_inventory(player) - local form = "size[9,8.75]".. - default.gui_bg.. - default.listcolors.. - "background[-0.2,-0.26;9.41,9.49;formspec_inventory.png]".. - "background[-0.2,-0.26;9.41,9.49;formspec_inventory_inventory.png]".. - "image_button_exit[8.4,-0.1;0.75,0.75;close.png;exit;;true;false;close_pressed.png]".. - "list[current_player;main;0.01,4.51;9,3;9]".. - "list[current_player;main;0.01,7.74;9,1;]".. - "list[current_player;craft;4,1;2,1;1]".. - "list[current_player;craft;4,2;2,1;4]".. - "list[current_player;craftpreview;7.05,1.53;1,1;]".. - "list[detached:split;main;8,3.14;1,1;]".. - "image[1.5,0;2,4;default_player2d.png]".. - "image_button_exit[9.21,2.5;1,1;creative_home_set.png;sethome_set;;true;false]".. - "tooltip[sethome_set;Set Home;#000;#FFF]".. - "image_button_exit[9.21,3.5;1,1;creative_home_go.png;sethome_go;;true;false]".. - "tooltip[sethome_go;Go Home;#000;#FFF]" - -- Armor - if minetest.get_modpath("3d_armor") then - local player_name = player:get_player_name() - form = form .. - "list[detached:"..player_name.."_armor;armor;0,0;1,1;]".. - "list[detached:"..player_name.."_armor;armor;0,1;1,1;1]".. - "list[detached:"..player_name.."_armor;armor;0,2;1,1;2]".. - "list[detached:"..player_name.."_armor;armor;0,3;1,1;3]" - end - player:set_inventory_formspec(form) -end - --- Drop craft items on closing -minetest.register_on_player_receive_fields(function(player, formname, fields) - if fields.quit then - drop_fields(player, "craft") - end -end) - -minetest.register_on_joinplayer(function(player) - if not minetest.settings:get_bool("creative_mode") then - local inv = player:get_inventory() - if inv then - inv:set_size("main", 9*4) - end - set_inventory(player) - end -end) diff --git a/games/default/files/inventory/textures/formspec_inventory_inventory.png b/games/default/files/inventory/textures/formspec_inventory_inventory.png deleted file mode 100644 index 57b1fa255..000000000 Binary files a/games/default/files/inventory/textures/formspec_inventory_inventory.png and /dev/null differ diff --git a/games/default/files/itemframes/README.txt b/games/default/files/itemframes/README.txt deleted file mode 100644 index 05eaac9dc..000000000 --- a/games/default/files/itemframes/README.txt +++ /dev/null @@ -1,13 +0,0 @@ -MultiCraft Game mod: itemframes -========================= -This Mod Is by Zeg9 - -Based on VanessaE fork: -https://gitlab.com/VanessaE/homedecor_modpack/tree/master/itemframes - -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. - -License of source code: -http://www.gnu.org/licenses/lgpl-3.0.html \ No newline at end of file diff --git a/games/default/files/itemframes/depends.txt b/games/default/files/itemframes/depends.txt deleted file mode 100644 index 4ad96d515..000000000 --- a/games/default/files/itemframes/depends.txt +++ /dev/null @@ -1 +0,0 @@ -default diff --git a/games/default/files/itemframes/init.lua b/games/default/files/itemframes/init.lua deleted file mode 100644 index 0f5301dc2..000000000 --- a/games/default/files/itemframes/init.lua +++ /dev/null @@ -1,179 +0,0 @@ -local tmp = {} - -minetest.register_entity("itemframes:item",{ - hp_max = 1, - visual="wielditem", - visual_size={x = 0.33, y = 0.33}, - collisionbox = {0,0,0,0,0,0}, - physical=false, - textures={"air"}, - on_activate = function(self, staticdata) - if tmp.nodename ~= nil and tmp.texture ~= nil then - self.nodename = tmp.nodename - tmp.nodename = nil - self.texture = tmp.texture - tmp.texture = nil - else - if staticdata ~= nil and staticdata ~= "" then - local data = staticdata:split(';') - if data and data[1] and data[2] then - self.nodename = data[1] - self.texture = data[2] - end - end - end - if self.texture ~= nil then - self.object:set_properties({textures={self.texture}}) - end - if self.texture ~= nil and self.nodename ~= nil then - local entity_pos = vector.round(self.object:get_pos()) - local objs = minetest.get_objects_inside_radius(entity_pos, 0.5) - for _, obj in ipairs(objs) do - if obj ~= self.object and - obj:get_luaentity() and - obj:get_luaentity().name == "itemframes:item" and - obj:get_luaentity().nodename == self.nodename and - obj:get_properties() and - obj:get_properties().textures and - obj:get_properties().textures[1] == self.texture then - minetest.log("action","[itemframes] Removing extra " .. - self.texture .. " found in " .. self.nodename .. " at " .. - minetest.pos_to_string(entity_pos)) - self.object:remove() - break - end - end - end - end, - get_staticdata = function(self) - if self.nodename ~= nil and self.texture ~= nil then - return self.nodename .. ';' .. self.texture - end - return "" - end, -}) - -local facedir = {} - -facedir[0] = {x=0,y=0,z=1} -facedir[1] = {x=1,y=0,z=0} -facedir[2] = {x=0,y=0,z=-1} -facedir[3] = {x=-1,y=0,z=0} - -local remove_item = function(pos, node) - local objs = nil - if node.name == "itemframes:frame" then - objs = minetest.get_objects_inside_radius(pos, .5) - end - if objs then - for _, obj in ipairs(objs) do - if obj and obj:get_luaentity() and obj:get_luaentity().name == "itemframes:item" then - obj:remove() - end - end - end -end - -local update_item = function(pos, node) - remove_item(pos, node) - local meta = minetest.get_meta(pos) - if meta:get_string("item") ~= "" then - if node.name == "itemframes:frame" then - local posad = facedir[node.param2] - if not posad then return end - pos.x = pos.x + posad.x*6.5/16 - pos.y = pos.y + posad.y*6.5/16 - pos.z = pos.z + posad.z*6.5/16 - end - tmp.nodename = node.name - tmp.texture = ItemStack(meta:get_string("item")):get_name() - local e = minetest.add_entity(pos,"itemframes:item") - if node.name == "itemframes:frame" then - local yaw = math.pi*2 - node.param2 * math.pi/2 - e:setyaw(yaw) - end - end -end - -local drop_item = function(pos, node) - local meta = minetest.get_meta(pos) - if meta:get_string("item") ~= "" then - if node.name == "itemframes:frame" then - minetest.add_item(pos, meta:get_string("item")) - end - meta:set_string("item","") - end - remove_item(pos, node) -end - -minetest.register_node("itemframes:frame",{ - description = "Item frame", - drawtype = "nodebox", - node_box = { - type = "fixed", - fixed = {-0.5, -0.5, 7/16, 0.5, 0.5, 0.5} - }, - selection_box = { - type = "fixed", - fixed = {-0.5, -0.5, 7/16, 0.5, 0.5, 0.5} - }, - tiles = {"itemframe_background.png"}, - inventory_image = "itemframe_background.png", - paramtype = "light", - paramtype2 = "facedir", - sunlight_propagates = true, - groups = {choppy = 2, dig_immediate = 2, attached_node = 1}, - legacy_wallmounted = true, - sounds = default.node_sound_wood_defaults(), - after_place_node = function(pos, placer, itemstack) - local meta = minetest.get_meta(pos) - meta:set_string("owner",placer:get_player_name()) - meta:set_string("infotext","Item frame (owned by "..placer:get_player_name()..")") - end, - on_rightclick = function(pos, node, clicker, itemstack) - if not itemstack then return end - local meta = minetest.get_meta(pos) - local name = clicker and clicker:get_player_name() - if name == meta:get_string("owner") or - minetest.check_player_privs(name, "protection_bypass") then - drop_item(pos, node) - local s = itemstack:take_item() - meta:set_string("item",s:to_string()) - update_item(pos, node) - end - return itemstack - end, - on_punch = function(pos, node, puncher) - local meta = minetest.get_meta(pos) - local name = puncher and puncher:get_player_name() - if name == meta:get_string("owner") or - minetest.check_player_privs(name, "protection_bypass") then - drop_item(pos, node) - end - end, - can_dig = function(pos,player) - if not player then return end - local name = player and player:get_player_name() - local meta = minetest.get_meta(pos) -return name == meta:get_string("owner") or - minetest.check_player_privs(name, "protection_bypass") - end, - on_destruct = function(pos) - local meta = minetest.get_meta(pos) - local node = minetest.get_node(pos) - if meta:get_string("item") ~= "" then - drop_item(pos, node) - end - end, -}) - --- crafts - -minetest.register_craft({ - output = 'itemframes:frame', - recipe = { - {'group:stick', 'group:stick', 'group:stick'}, - {'group:stick', 'default:paper', 'group:stick'}, - {'group:stick', 'group:stick', 'group:stick'}, - } -}) diff --git a/games/default/files/itemframes/textures/itemframe_background.png b/games/default/files/itemframes/textures/itemframe_background.png deleted file mode 100644 index ca8e7958d..000000000 Binary files a/games/default/files/itemframes/textures/itemframe_background.png and /dev/null differ diff --git a/games/default/files/mobs_animal/bear.lua b/games/default/files/mobs_animal/bear.lua deleted file mode 100644 index 00d2e78ae..000000000 --- a/games/default/files/mobs_animal/bear.lua +++ /dev/null @@ -1,98 +0,0 @@ -mobs:register_mob("mobs_animal:bear", { - type = "animal", - visual = "mesh", - mesh = "mobs_bear.b3d", - collisionbox = {-0.5, -0.01, -0.5, 0.5, 1.49, 0.5}, - animation = { - speed_normal = 15, speed_run = 30, - stand_start = 0, stand_end = 30, - walk_start = 35, walk_end = 65, - run_start = 105, run_end = 135, - punch_start = 70, punch_end = 100, - }, - textures = {"mobs_bear.png"}, - sounds = { - random = "mobs_bear", - attack = "mobs_bear_angry", - }, - runaway = false, - jump = false, - walk_chance = 75, - walk_velocity = 3, - run_velocity = 3, - view_range = 10, - follow = { - "farming:blueberries", "farming:raspberries" - }, - damage = 4, - attacks_monsters = true, - pathfinding = true, - group_attack = true, - hp_min = 10, - hp_max = 15, - fall_damage = 3, - fear_height = 4, - drops = function(pos) - if rawget(_G, "experience") then - experience.add_orb(math.random(4, 6), pos) - end - return { - {name = "mobs:meat_raw"}, - {name = "mobs:meat_raw"}, - {name = "mobs:meat_raw", chance = 2}, - {name = "mobs:meat_raw", chance = 2}, - {name = "mobs:leather"}, - {name = "mobs:leather", chance = 2} - } - end, - replace_what = { - "farming:blueberry_4", "farming:raspberry_4" - }, - replace_with = "air", - replace_rate = 20, - on_rightclick = function(self, clicker) - if mobs:feed_tame(self, clicker, 10, true, true) then - return - end - if clicker:get_wielded_item():is_empty() and clicker:get_player_name() == self.owner then - if clicker:get_player_control().sneak then - self.order = "" - self.state = "walk" - self.walk_velocity = 1 - else - if self.order == "follow" then - self.order = "stand" - self.state = "stand" - self.walk_velocity = 1 - else - self.order = "follow" - self.state = "walk" - self.walk_velocity = 3 - end - end - return - end - --mobs:capture_mob(self, clicker, 0, 0, 80, false, nil) - end, - after_activate = function(self, staticdata, def, dtime) - -- replace bear using the old directx model - if self.mesh == "mobs_bear.x" then - local pos = self.object:get_pos() - if pos then - minetest.add_entity(pos, self.name) - self.object:remove() - end - end - end, -}) - -mobs:spawn({ - name = "mobs_animal:bear", - nodes = {"default:dirt", "default:sand", "default:redsand", "default:snow", "default:snowblock", "default:dirt_with_snow", "default:dirt_with_grass", "default:dirt_with_dry_grass"}, - min_light = 0, - chance = 30000, - min_height = 0, - day_toggle = true, -}) - -mobs:register_egg("mobs_animal:bear", "Bear egg", "mobs_bear_egg.png", 1) diff --git a/games/default/files/mobs_animal/bunny.lua b/games/default/files/mobs_animal/bunny.lua deleted file mode 100644 index 6713ff202..000000000 --- a/games/default/files/mobs_animal/bunny.lua +++ /dev/null @@ -1,107 +0,0 @@ -mobs:register_mob("mobs_animal:bunny", { - stepheight = 0.6, - type = "animal", - passive = true, - reach = 1, - hp_min = 1, - hp_max = 4, - collisionbox = {-0.268, -0.5, -0.268, 0.268, 0.167, 0.268}, - visual = "mesh", - mesh = "mobs_bunny.b3d", - drawtype = "front", - textures = { - {"mobs_bunny_grey.png"}, - {"mobs_bunny_brown.png"}, - {"mobs_bunny_white.png"}, - }, - runaway = true, - runaway_from = {"mobs_animal:pumba", "player"}, - jump_height = 5, - drops = function(pos) - if rawget(_G, "experience") then - experience.add_orb(math.random(1, 2), pos) - end - return { - {name = "mobs:rabbit_raw"}, - {name = "mobs:rabbit_hide", min = 0, max = 1} - } - end, - water_damage = 1, - fear_height = 2, - animation = { - speed_normal = 15, - stand_start = 1, - stand_end = 15, - walk_start = 16, - walk_end = 24, - punch_start = 16, - punch_end = 24, - }, - follow = {"farming:carrot", "farming_plus:carrot_item", "default:grass"}, - replace_rate = 10, - replace_what = {"farming:carrot_7", "farming:carrot_8", "farming_plus:carrot"}, - replace_with = "air", - on_rightclick = function(self, clicker) - - -- feed or tame - if mobs:feed_tame(self, clicker, 4, true, true) then return end - if mobs:protect(self, clicker) then return end - --if mobs:capture_mob(self, clicker, 30, 50, 80, false, nil) then return end - - -- Monty Python tribute - local item = clicker:get_wielded_item() - - if item:get_name() == "mobs:lava_orb" then - - if not mobs.is_creative(clicker:get_player_name()) then - item:take_item() - clicker:set_wielded_item(item) - end - - self.object:set_properties({ - textures = {"mobs_bunny_evil.png"}, - }) - - self.type = "monster" - self.health = 20 - self.passive = false - - return - end - end, - on_spawn = function(self) - - local pos = self.object:get_pos() ; pos.y = pos.y - 1 - - -- white snowy bunny - if minetest.find_node_near(pos, 1, - {"default:snow", "default:snowblock", "default:dirt_with_snow"}) then - self.base_texture = {"mobs_bunny_white.png"} - self.object:set_properties({textures = self.base_texture}) - -- brown desert bunny - elseif minetest.find_node_near(pos, 1, - {"default:desert_sand", "default:desert_stone"}) then - self.base_texture = {"mobs_bunny_brown.png"} - self.object:set_properties({textures = self.base_texture}) - -- grey stone bunny - elseif minetest.find_node_near(pos, 1, - {"default:stone", "default:gravel"}) then - self.base_texture = {"mobs_bunny_grey.png"} - self.object:set_properties({textures = self.base_texture}) - end - - return true -- run only once, false/nil runs every activation - end, - damage = 5, -}) - -mobs:spawn({ - name = "mobs_animal:bunny", - nodes = {"default:snow", "default:snowblock", "default:dirt_with_snow", "default:dirt_with_grass", "default:dirt_with_dry_grass"}, - min_light = 10, - chance = 20000, - min_height = 0, - day_toggle = true, -}) - -mobs:register_egg("mobs_animal:bunny", "Bunny egg", "mobs_bunny_evil.png", 1) diff --git a/games/default/files/mobs_animal/chicken.lua b/games/default/files/mobs_animal/chicken.lua deleted file mode 100644 index 70a2ccce0..000000000 --- a/games/default/files/mobs_animal/chicken.lua +++ /dev/null @@ -1,127 +0,0 @@ -mobs:register_mob("mobs_animal:chicken", { - type = "animal", - passive = true, - hp_min = 3, - hp_max = 6, - collisionbox = {-0.35, -0.01, -0.35, 0.35, 0.75, 0.35}, - visual = "mesh", - mesh = "mobs_chicken.b3d", - textures = {"mobs_chicken.png"}, - makes_footstep_sound = true, - sounds = { - random = "mobs_chicken", - }, - run_velocity = 3, - runaway = true, - drops = function(pos) - if rawget(_G, "experience") then - experience.add_orb(math.random(2, 3), pos) - end - return { - {name = "mobs:chicken_raw"} - } - end, - fall_damage = 0, - fall_speed = -8, - fear_height = 5, - animation = { - stand_start = 0, - stand_end = 20, - walk_start = 20, - walk_end = 40, - run_start = 60, - run_end = 80, - }, - follow = {"farming:seed_wheat"}, - - on_rightclick = function(self, clicker) - if mobs:feed_tame(self, clicker, 8, true, true) then return end - if mobs:protect(self, clicker) then return end - --if mobs:capture_mob(self, clicker, 30, 50, 80, false, nil) then return end - end, - - do_custom = function(self, dtime) - self.egg_timer = (self.egg_timer or 0) + dtime - if self.egg_timer < 10 then - return - end - self.egg_timer = 0 - - if self.child - or math.random(1, 100) ~= 1 then - return - end - - local pos = self.object:get_pos() - minetest.add_item(pos, "mobs:chicken_egg") - minetest.sound_play("default_place_node_hard", { - pos = pos, - gain = 1.0, - max_hear_distance = 5, - }) - end, - after_activate = function(self, staticdata, def, dtime) - -- replace chicken using the old directx model - if self.mesh == "mobs_chicken.x" then - local pos = self.object:get_pos() - if pos then - minetest.add_entity(pos, self.name) - self.object:remove() - end - end - end, - }) - -mobs:spawn({ - name = "mobs_animal:chicken", - nodes = {"default:dirt", "default:sand", "default:redsand", "default:snow", "default:snowblock", "default:dirt_with_snow", "default:dirt_with_grass"}, - min_light = 5, - chance = 20000, - min_height = 0, - day_toggle = true, -}) - -mobs:register_egg("mobs_animal:chicken", "Chicken egg", "mobs_chicken_egg_inv.png", 1) - --- egg throwing - -function egg_impact(thrower, pos, dir, hit_object) - if hit_object then - local punch_damage = { - full_punch_interval = 1.0, - damage_groups = {fleshy=1}, - } - hit_object:punch(thrower, 1.0, punch_damage, dir) - end - - if math.random(1, 8) == 8 then - pos.y = pos.y + 1 - local nod = minetest.get_node_or_nil(pos) - - if not nod or - not minetest.registered_nodes[nod.name] or - minetest.registered_nodes[nod.name].walkable == true then - return - end - - local mob = minetest.add_entity(pos, "mobs_animal:chicken") - local ent2 = mob:get_luaentity() - mob:set_properties({ - visual_size = { - x = ent2.base_size.x / 2, - y = ent2.base_size.y / 2 - }, - collisionbox = { - ent2.base_colbox[1] / 2, - ent2.base_colbox[2] / 2, - ent2.base_colbox[3] / 2, - ent2.base_colbox[4] / 2, - ent2.base_colbox[5] / 2, - ent2.base_colbox[6] / 2 - }, - }) - ent2.child = true - ent2.tamed = true - ent2.owner = thrower - end -end diff --git a/games/default/files/mobs_animal/cow.lua b/games/default/files/mobs_animal/cow.lua deleted file mode 100644 index 9b9af451b..000000000 --- a/games/default/files/mobs_animal/cow.lua +++ /dev/null @@ -1,130 +0,0 @@ -mobs:register_mob("mobs_animal:cow", { - type = "animal", - damage = 2, - hp_min = 8, - hp_max = 12, - collisionbox = {-0.9, -0.01, -0.9, 0.9, 1.65, 0.9}, - visual = "mesh", - mesh = "mobs_cow.b3d", - textures = { - {"mobs_cow.png"}, - {"mobs_cow2.png"}, - {"mobs_cow3.png"}, - }, - makes_footstep_sound = true, - sounds = { - random = "mobs_cow", - attack = "mobs_cow", - }, - run_velocity = 3, - drops = function(pos) - if rawget(_G, "experience") then - experience.add_orb(math.random(3, 5), pos) - end - return { - {name = "mobs:meat_raw"}, - {name = "mobs:meat_raw", chance = 2}, - {name = "mobs:meat_raw", chance = 2}, - {name = "mobs:leather", chance = 2}, - {name = "mobs:leather", chance = 2} - } - end, - animation = { - speed_normal = 15, - speed_run = 15, - stand_start = 0, - stand_end = 30, - walk_start = 35, - walk_end = 65, - run_start = 105, - run_end = 135, - punch_start = 70, - punch_end = 100, - }, - follow = {"farming:wheat", "default:grass"}, - view_range = 10, - replace_rate = 10, - replace_what = { - {"group:grass", "air", 0}, - {"default:dirt_with_grass", "default:dirt", -1} - }, - fear_height = 2, - on_rightclick = function(self, clicker) - -- feed or tame - if mobs:feed_tame(self, clicker, 8, true, true) then - -- if fed 7x wheat or grass then cow can be milked again - if self.food and self.food > 6 then - self.gotten = false - end - return - end - - if mobs:protect(self, clicker) then return end - --if mobs:capture_mob(self, clicker, 0, 5, 60, false, nil) then return end - - local tool = clicker:get_wielded_item() - local name = clicker:get_player_name() - - -- milk cow with empty bucket - if tool:get_name() == "bucket:bucket_empty" then - - --if self.gotten == true - if self.child == true then - return - end - - if self.gotten == true then - minetest.chat_send_player(name, - "Cow already milked!") - return - end - - local inv = clicker:get_inventory() - tool:take_item() - clicker:set_wielded_item(tool) - - if inv:room_for_item("main", {name = "mobs:bucket_milk"}) then - clicker:get_inventory():add_item("main", "mobs:bucket_milk") - else - local pos = self.object:get_pos() - pos.y = pos.y + 0.5 - minetest.add_item(pos, {name = "mobs:bucket_milk"}) - end - self.gotten = true -- milked - return - end - end, - - on_replace = function(self, pos, oldnode, newnode) - - self.food = (self.food or 0) + 1 - - -- if cow replaces 8x grass then it can be milked again - if self.food >= 8 then - self.food = 0 - self.gotten = false - end - end, - - after_activate = function(self, staticdata, def, dtime) - -- replace cow using the old directx model - if self.mesh == "mobs_cow.x" then - local pos = self.object:get_pos() - if pos then - minetest.add_entity(pos, self.name) - self.object:remove() - end - end - end, -}) - -mobs:spawn({ - name = "mobs_animal:cow", - nodes = {"default:dirt", "default:sand", "default:redsand", "default:snow", "default:snowblock", "default:dirt_with_dry_grass", "default:dirt_with_grass"}, - min_light = 5, - chance = 20000, - min_height = 0, - day_toggle = true, -}) - -mobs:register_egg("mobs_animal:cow", "Cow", "mobs_cow_egg.png", 1) diff --git a/games/default/files/mobs_animal/depends.txt b/games/default/files/mobs_animal/depends.txt deleted file mode 100644 index 4e95a3428..000000000 --- a/games/default/files/mobs_animal/depends.txt +++ /dev/null @@ -1,4 +0,0 @@ -default -mobs -dye -wool diff --git a/games/default/files/mobs_animal/dog.lua b/games/default/files/mobs_animal/dog.lua deleted file mode 100644 index 8cd663c9d..000000000 --- a/games/default/files/mobs_animal/dog.lua +++ /dev/null @@ -1,125 +0,0 @@ -mobs:register_mob("mobs_animal:wolf", { - type = "animal", - visual = "mesh", - mesh = "mobs_wolf.x", - collisionbox = {-0.4, -0.01, -0.4, 0.4, 1, 0.4}, - animation = { - speed_normal = 20, speed_run = 30, - stand_start = 10, stand_end = 20, - walk_start = 75, walk_end = 100, - run_start = 100, run_end = 130, - punch_start = 135, punch_end = 155, - }, - textures = { - {"mobs_wolf.png"}, - }, - jump = false, - walk_chance = 75, - walk_velocity = 2, - run_velocity = 3, - view_range = 7, - follow = "mobs:meat_raw", - damage = 2, - pathfinding = true, - group_attack = true, - hp_min = 8, - hp_max = 10, - fall_damage = 3, - fear_height = 4, - makes_footstep_sound = true, - sounds = { - war_cry = "mobs_wolf_attack", - death = "mobs_wolf_attack" - }, - on_rightclick = function(self, clicker) - if mobs:feed_tame(self, clicker, 2, false, true) then - if self.food == 0 then - local mob = minetest.add_entity(self.object:getpos(), "mobs_animal:dog") - local ent = mob:get_luaentity() - ent.owner = clicker:get_player_name() - ent.following = clicker - ent.order = "follow" - self.object:remove() - end - return - end - --mobs:capture_mob(self, clicker, 0, 0, 80, true, nil) - end -}) - -mobs:spawn({ - name = "mobs_animal:wolf", - nodes = {"default:dirt", "default:sand", "default:redsand", "default:snow", "default:snowblock", "default:dirt_with_snow", "default:dirt_with_grass", "default:dirt_with_dry_grass"}, - min_light = 0, - chance = 20000, - min_height = 0, - day_toggle = true, -}) - -mobs:register_egg("mobs_animal:wolf", "Wolf's egg", "wool_grey.png", 1) - --- Dog -mobs:register_mob("mobs_animal:dog", { - type = "npc", - visual = "mesh", - mesh = "mobs_wolf.x", - collisionbox = {-0.4, -0.01, -0.4, 0.4, 1, 0.4}, - animation = { - speed_normal = 20, speed_run = 30, - stand_start = 10, stand_end = 20, - walk_start = 75, walk_end = 100, - run_start = 100, run_end = 130, - punch_start = 135, punch_end = 155, - }, - textures = { - {"mobs_dog.png"} - }, - fear_height = 4, - jump = false, - walk_chance = 75, - walk_velocity = 2, - run_velocity = 4, - view_range = 15, - follow = "mobs:meat_raw", - damage = 4, - attacks_monsters = true, - pathfinding = true, - group_attack = true, - hp_min = 15, - hp_max = 25, - fall_damage = 5, - makes_footstep_sound = true, - sounds = { - war_cry = "mobs_wolf_attack", - death = "mobs_wolf_attack" - }, - on_rightclick = function(self, clicker) - if mobs:feed_tame(self, clicker, 6, true, true) then - return - end - if clicker:get_wielded_item():is_empty() and clicker:get_player_name() == self.owner then - if clicker:get_player_control().sneak then - self.order = "" - self.state = "walk" - self.walk_velocity = 2 - self.stepheight = 0.6 - else - if self.order == "follow" then - self.order = "stand" - self.state = "stand" - self.walk_velocity = 2 - self.stepheight = 0.6 - else - self.order = "follow" - self.state = "walk" - self.walk_velocity = 3 - self.stepheight = 1.1 - end - end - return - end - --mobs:capture_mob(self, clicker, 0, 0, 80, false, nil) - end -}) - -mobs:register_egg("mobs_animal:dog", "Dog Egg", "wool_brown.png", 1) diff --git a/games/default/files/mobs_animal/init.lua b/games/default/files/mobs_animal/init.lua deleted file mode 100644 index f89bdd1a4..000000000 --- a/games/default/files/mobs_animal/init.lua +++ /dev/null @@ -1,10 +0,0 @@ -local path = minetest.get_modpath("mobs_animal") - -dofile(path .. "/bear.lua") -- KrupnoPavel -dofile(path .. "/bunny.lua") -- ExeterDad -dofile(path .. "/chicken.lua") -- JKmurray -dofile(path .. "/cow.lua") -- KrupnoPavel -dofile(path .. "/dog.lua") -- KrupnoPavel -dofile(path .. "/kitten.lua") -- Jordach/BFD -dofile(path .. "/pig.lua") -- -- Warthog(Boar) by KrupnoPavel (MIT). Changed to Boar and tweaked by Kaadmy (WTFPL) and MoNTE48 (LGPLv3) -dofile(path .. "/sheep.lua") -- PilzAdam diff --git a/games/default/files/mobs_animal/kitten.lua b/games/default/files/mobs_animal/kitten.lua deleted file mode 100644 index f841b7273..000000000 --- a/games/default/files/mobs_animal/kitten.lua +++ /dev/null @@ -1,64 +0,0 @@ -mobs:register_mob("mobs_animal:kitten", { - stepheight = 0.6, - type = "animal", - passive = true, - hp_min = 8, - hp_max = 10, - collisionbox = {-0.3, -0.3, -0.3, 0.3, 0.1, 0.3}, - visual = "mesh", - visual_size = {x = 0.5, y = 0.5}, - mesh = "mobs_kitten.b3d", - textures = { - {"mobs_kitten_striped.png"}, - {"mobs_kitten_splotchy.png"}, - {"mobs_kitten_ginger.png"}, - {"mobs_kitten_sandy.png"}, - }, - sounds = { - random = "mobs_kitten", - }, - walk_velocity = 0.6, - walk_chance = 15, - run_velocity = 2, - runaway = true, - jump_height = 5, - drops = function(pos) - if rawget(_G, "experience") then - experience.add_orb(math.random(1, 2), pos) - end - return { - {name = "farming:string"} - } - end, - water_damage = 1, - fall_damage = 2, - fear_height = 3, - animation = { - speed_normal = 42, - stand_start = 97, - stand_end = 192, - walk_start = 0, - walk_end = 96, - stoodup_start = 0, - stoodup_end = 0, - }, - follow = {"mobs_animal:rat", "default:fish_raw"}, - view_range = 8, - on_rightclick = function(self, clicker) - - if mobs:feed_tame(self, clicker, 4, true, true) then return end - if mobs:protect(self, clicker) then return end - --if mobs:capture_mob(self, clicker, 50, 50, 90, false, nil) then return end - end -}) - -mobs:spawn({ - name = "mobs_animal:kitten", - nodes = {"default:dirt", "default:sand", "default:redsand", "default:snow", "default:snowblock", "default:dirt_with_snow", "default:dirt_with_grass", "default:dirt_with_dry_grass"}, - min_light = 10, - chance = 20000, - min_height = 0, - day_toggle = true, -}) - -mobs:register_egg("mobs_animal:kitten", "Cat's egg", "mobs_kitten_egg.png", 1) diff --git a/games/default/files/mobs_animal/models/mobs_bear.b3d b/games/default/files/mobs_animal/models/mobs_bear.b3d deleted file mode 100644 index 59fda3a26..000000000 Binary files a/games/default/files/mobs_animal/models/mobs_bear.b3d and /dev/null differ diff --git a/games/default/files/mobs_animal/models/mobs_bear.x b/games/default/files/mobs_animal/models/mobs_bear.x deleted file mode 100644 index f8f3fb67f..000000000 --- a/games/default/files/mobs_animal/models/mobs_bear.x +++ /dev/null @@ -1,10 +0,0 @@ -xof 0303txt 0032 - -Frame Root { - FrameTransformMatrix { - 1.000000, 0.000000, 0.000000, 0.000000, - 0.000000,-0.000000, 1.000000, 0.000000, - 0.000000, 1.000000, 0.000000, 0.000000, - 0.000000, 0.000000, 0.000000, 1.000000;; - } -} // End of Root diff --git a/games/default/files/mobs_animal/models/mobs_bunny.b3d b/games/default/files/mobs_animal/models/mobs_bunny.b3d deleted file mode 100644 index ee053bd46..000000000 Binary files a/games/default/files/mobs_animal/models/mobs_bunny.b3d and /dev/null differ diff --git a/games/default/files/mobs_animal/models/mobs_chicken.b3d b/games/default/files/mobs_animal/models/mobs_chicken.b3d deleted file mode 100644 index b024f6f9d..000000000 Binary files a/games/default/files/mobs_animal/models/mobs_chicken.b3d and /dev/null differ diff --git a/games/default/files/mobs_animal/models/mobs_chicken.x b/games/default/files/mobs_animal/models/mobs_chicken.x deleted file mode 100644 index f8f3fb67f..000000000 --- a/games/default/files/mobs_animal/models/mobs_chicken.x +++ /dev/null @@ -1,10 +0,0 @@ -xof 0303txt 0032 - -Frame Root { - FrameTransformMatrix { - 1.000000, 0.000000, 0.000000, 0.000000, - 0.000000,-0.000000, 1.000000, 0.000000, - 0.000000, 1.000000, 0.000000, 0.000000, - 0.000000, 0.000000, 0.000000, 1.000000;; - } -} // End of Root diff --git a/games/default/files/mobs_animal/models/mobs_cow.b3d b/games/default/files/mobs_animal/models/mobs_cow.b3d deleted file mode 100644 index 6e574173a..000000000 Binary files a/games/default/files/mobs_animal/models/mobs_cow.b3d and /dev/null differ diff --git a/games/default/files/mobs_animal/models/mobs_cow.x b/games/default/files/mobs_animal/models/mobs_cow.x deleted file mode 100644 index f8f3fb67f..000000000 --- a/games/default/files/mobs_animal/models/mobs_cow.x +++ /dev/null @@ -1,10 +0,0 @@ -xof 0303txt 0032 - -Frame Root { - FrameTransformMatrix { - 1.000000, 0.000000, 0.000000, 0.000000, - 0.000000,-0.000000, 1.000000, 0.000000, - 0.000000, 1.000000, 0.000000, 0.000000, - 0.000000, 0.000000, 0.000000, 1.000000;; - } -} // End of Root diff --git a/games/default/files/mobs_animal/models/mobs_kitten.b3d b/games/default/files/mobs_animal/models/mobs_kitten.b3d deleted file mode 100644 index c2478fefd..000000000 Binary files a/games/default/files/mobs_animal/models/mobs_kitten.b3d and /dev/null differ diff --git a/games/default/files/mobs_animal/models/mobs_pig.x b/games/default/files/mobs_animal/models/mobs_pig.x deleted file mode 100644 index 1856b317a..000000000 --- a/games/default/files/mobs_animal/models/mobs_pig.x +++ /dev/null @@ -1,3284 +0,0 @@ -xof 0303txt 0032 - -template XSkinMeshHeader { - <3cf169ce-ff7c-44ab-93c0-f78f62d172e2> - WORD nMaxSkinWeightsPerVertex; - WORD nMaxSkinWeightsPerFace; - WORD nBones; -} - -template SkinWeights { - <6f0d123b-bad2-4167-a0d0-80224f25fabb> - STRING transformNodeName; - DWORD nWeights; - array DWORD vertexIndices[nWeights]; - array float weights[nWeights]; - Matrix4x4 matrixOffset; -} - -Frame Root { - FrameTransformMatrix { - 1.000000, 0.000000, 0.000000, 0.000000, - 0.000000,-0.000000, 1.000000, 0.000000, - 0.000000, 1.000000, 0.000000, 0.000000, - 0.000000, 0.000000, 0.000000, 1.000000;; - } - Frame mob_armature { - FrameTransformMatrix { - 10.000000, 0.000000, 0.000000, 0.000000, - 0.000000,10.000000, 0.000000, 0.000000, - 0.000000, 0.000000,10.000000, 0.000000, - 0.000000, 0.000000, 0.000000, 1.000000;; - } - Frame mob_armature_body { - FrameTransformMatrix { - 1.000000, 0.000000, 0.000000, 0.000000, - 0.000000, 0.000000, 1.000000, 0.000000, - 0.000000,-1.000000, 0.000000, 0.000000, - 0.000000, 0.000000, 0.000000, 1.000000;; - } - } // End of mob_armature_body - Frame mob_armature_head { - FrameTransformMatrix { - 1.000000, 0.000000, 0.000000, 0.000000, - 0.000000, 1.000000, 0.000000, 0.000000, - 0.000000, 0.000000, 1.000000, 0.000000, - 0.000000, 0.500000, 0.000000, 1.000000;; - } - } // End of mob_armature_head - Frame mob_armature_fl_leg { - FrameTransformMatrix { - 1.000000, 0.000000, 0.000000, 0.000000, - 0.000000, 0.000000,-1.000000, 0.000000, - 0.000000, 1.000000, 0.000000, 0.000000, - -0.200000, 0.400000,-0.500000, 1.000000;; - } - } // End of mob_armature_fl_leg - Frame mob_armature_fr_leg { - FrameTransformMatrix { - 1.000000, 0.000000, 0.000000, 0.000000, - 0.000000, 0.000000,-1.000000, 0.000000, - 0.000000, 1.000000, 0.000000, 0.000000, - 0.200000, 0.400000,-0.500000, 1.000000;; - } - } // End of mob_armature_fr_leg - Frame mob_armature_rr_leg { - FrameTransformMatrix { - 1.000000, 0.000000, 0.000000, 0.000000, - 0.000000, 0.000000,-1.000000, 0.000000, - 0.000000, 1.000000, 0.000000, 0.000000, - 0.200000,-0.400000,-0.500000, 1.000000;; - } - } // End of mob_armature_rr_leg - Frame mob_armature_rl_leg { - FrameTransformMatrix { - 1.000000, 0.000000, 0.000000, 0.000000, - 0.000000, 0.000000,-1.000000, 0.000000, - 0.000000, 1.000000, 0.000000, 0.000000, - -0.200000,-0.400000,-0.500000, 1.000000;; - } - } // End of mob_armature_rl_leg - Frame mob { - FrameTransformMatrix { - 0.100000, 0.000000, 0.000000, 0.000000, - 0.000000, 0.100000, 0.000000, 0.000000, - 0.000000, 0.000000, 0.100000, 0.000000, - 0.000000, 0.000000, 0.000000, 1.000000;; - } - Mesh { // mob mesh - 224; - 4.000000;-6.000000; 1.000000;, - -4.000000;-6.000000; 1.000000;, - -4.000000;-6.000000;-5.000000;, - 4.000000;-6.000000;-5.000000;, - -4.000000;-6.000000; 1.000000;, - -4.000000; 6.000000; 1.000000;, - -4.000000; 6.000000;-5.000000;, - -4.000000;-6.000000;-5.000000;, - -4.000000; 6.000000; 1.000000;, - 4.000000; 6.000000; 1.000000;, - 4.000000; 6.000000;-5.000000;, - -4.000000; 6.000000;-5.000000;, - 4.000000; 6.000000; 1.000000;, - 4.000000;-6.000000; 1.000000;, - 4.000000;-6.000000;-5.000000;, - 4.000000; 6.000000;-5.000000;, - 4.000000;-6.000000;-5.000000;, - -4.000000;-6.000000;-5.000000;, - -4.000000; 6.000000;-5.000000;, - 4.000000; 6.000000;-5.000000;, - 4.000000; 6.000000; 1.000000;, - -4.000000; 6.000000; 1.000000;, - -4.000000;-6.000000; 1.000000;, - 4.000000;-6.000000; 1.000000;, - 3.500000;-5.500000;-5.000000;, - 0.500000;-5.500000;-5.000000;, - 0.500000;-5.500000;-8.000000;, - 3.500000;-5.500000;-8.000000;, - 0.500000;-5.500000;-5.000000;, - 0.500000;-2.500000;-5.000000;, - 0.500000;-2.500000;-8.000000;, - 0.500000;-5.500000;-8.000000;, - 0.500000;-2.500000;-5.000000;, - 3.500000;-2.500000;-5.000000;, - 3.500000;-2.500000;-8.000000;, - 0.500000;-2.500000;-8.000000;, - 3.500000;-2.500000;-5.000000;, - 3.500000;-5.500000;-5.000000;, - 3.500000;-5.500000;-8.000000;, - 3.500000;-2.500000;-8.000000;, - 3.500000;-5.500000;-8.000000;, - 0.500000;-5.500000;-8.000000;, - 0.500000;-2.500000;-8.000000;, - 3.500000;-2.500000;-8.000000;, - 3.500000;-2.500000;-5.000000;, - 0.500000;-2.500000;-5.000000;, - 0.500000;-5.500000;-5.000000;, - 3.500000;-5.500000;-5.000000;, - -0.500000;-5.500000;-5.000000;, - -3.500000;-5.500000;-5.000000;, - -3.500000;-5.500000;-8.000000;, - -0.500000;-5.500000;-8.000000;, - 3.000000;-5.000000;-10.000000;, - 1.000000;-5.000000;-10.000000;, - 1.000000;-3.000000;-10.000000;, - 3.000000;-3.000000;-10.000000;, - 3.000000;-3.000000;-8.000000;, - 3.000000;-5.000000;-8.000000;, - 3.000000;-5.000000;-10.000000;, - 3.000000;-3.000000;-10.000000;, - 1.000000;-3.000000;-8.000000;, - 3.000000;-3.000000;-8.000000;, - 3.000000;-3.000000;-10.000000;, - 1.000000;-3.000000;-10.000000;, - 1.000000;-5.000000;-8.000000;, - 1.000000;-3.000000;-8.000000;, - 1.000000;-3.000000;-10.000000;, - 1.000000;-5.000000;-10.000000;, - 3.000000;-5.000000;-8.000000;, - 1.000000;-5.000000;-8.000000;, - 1.000000;-5.000000;-10.000000;, - 3.000000;-5.000000;-10.000000;, - -3.500000;-5.500000;-5.000000;, - -3.500000;-2.500000;-5.000000;, - -3.500000;-2.500000;-8.000000;, - -3.500000;-5.500000;-8.000000;, - -3.500000;-2.500000;-5.000000;, - -0.500000;-2.500000;-5.000000;, - -0.500000;-2.500000;-8.000000;, - -3.500000;-2.500000;-8.000000;, - -0.500000;-2.500000;-5.000000;, - -0.500000;-5.500000;-5.000000;, - -0.500000;-5.500000;-8.000000;, - -0.500000;-2.500000;-8.000000;, - -0.500000;-5.500000;-8.000000;, - -3.500000;-5.500000;-8.000000;, - -3.500000;-2.500000;-8.000000;, - -0.500000;-2.500000;-8.000000;, - -0.500000;-2.500000;-5.000000;, - -3.500000;-2.500000;-5.000000;, - -3.500000;-5.500000;-5.000000;, - -0.500000;-5.500000;-5.000000;, - -1.000000;-5.000000;-10.000000;, - -3.000000;-5.000000;-10.000000;, - -3.000000;-3.000000;-10.000000;, - -1.000000;-3.000000;-10.000000;, - -1.000000;-3.000000;-8.000000;, - -1.000000;-5.000000;-8.000000;, - -1.000000;-5.000000;-10.000000;, - -1.000000;-3.000000;-10.000000;, - -3.000000;-3.000000;-8.000000;, - -1.000000;-3.000000;-8.000000;, - -1.000000;-3.000000;-10.000000;, - -3.000000;-3.000000;-10.000000;, - -3.000000;-5.000000;-8.000000;, - -3.000000;-3.000000;-8.000000;, - -3.000000;-3.000000;-10.000000;, - -3.000000;-5.000000;-10.000000;, - -1.000000;-5.000000;-8.000000;, - -3.000000;-5.000000;-8.000000;, - -3.000000;-5.000000;-10.000000;, - -1.000000;-5.000000;-10.000000;, - 3.500000; 2.500000;-5.000000;, - 0.500000; 2.500000;-5.000000;, - 0.500000; 2.500000;-8.000000;, - 3.500000; 2.500000;-8.000000;, - 0.500000; 2.500000;-5.000000;, - 0.500000; 5.500000;-5.000000;, - 0.500000; 5.500000;-8.000000;, - 0.500000; 2.500000;-8.000000;, - 0.500000; 5.500000;-5.000000;, - 3.500000; 5.500000;-5.000000;, - 3.500000; 5.500000;-8.000000;, - 0.500000; 5.500000;-8.000000;, - 3.500000; 5.500000;-5.000000;, - 3.500000; 2.500000;-5.000000;, - 3.500000; 2.500000;-8.000000;, - 3.500000; 5.500000;-8.000000;, - 3.500000; 2.500000;-8.000000;, - 0.500000; 2.500000;-8.000000;, - 0.500000; 5.500000;-8.000000;, - 3.500000; 5.500000;-8.000000;, - 3.500000; 5.500000;-5.000000;, - 0.500000; 5.500000;-5.000000;, - 0.500000; 2.500000;-5.000000;, - 3.500000; 2.500000;-5.000000;, - -0.500000; 2.500000;-5.000000;, - -3.500000; 2.500000;-5.000000;, - -3.500000; 2.500000;-8.000000;, - -0.500000; 2.500000;-8.000000;, - 3.000000; 3.000000;-10.000000;, - 1.000000; 3.000000;-10.000000;, - 1.000000; 5.000000;-10.000000;, - 3.000000; 5.000000;-10.000000;, - 3.000000; 5.000000;-8.000000;, - 3.000000; 3.000000;-8.000000;, - 3.000000; 3.000000;-10.000000;, - 3.000000; 5.000000;-10.000000;, - 1.000000; 5.000000;-8.000000;, - 3.000000; 5.000000;-8.000000;, - 3.000000; 5.000000;-10.000000;, - 1.000000; 5.000000;-10.000000;, - 1.000000; 3.000000;-8.000000;, - 1.000000; 5.000000;-8.000000;, - 1.000000; 5.000000;-10.000000;, - 1.000000; 3.000000;-10.000000;, - 3.000000; 3.000000;-8.000000;, - 1.000000; 3.000000;-8.000000;, - 1.000000; 3.000000;-10.000000;, - 3.000000; 3.000000;-10.000000;, - -3.500000; 2.500000;-5.000000;, - -3.500000; 5.500000;-5.000000;, - -3.500000; 5.500000;-8.000000;, - -3.500000; 2.500000;-8.000000;, - -3.500000; 5.500000;-5.000000;, - -0.500000; 5.500000;-5.000000;, - -0.500000; 5.500000;-8.000000;, - -3.500000; 5.500000;-8.000000;, - -0.500000; 5.500000;-5.000000;, - -0.500000; 2.500000;-5.000000;, - -0.500000; 2.500000;-8.000000;, - -0.500000; 5.500000;-8.000000;, - -0.500000; 2.500000;-8.000000;, - -3.500000; 2.500000;-8.000000;, - -3.500000; 5.500000;-8.000000;, - -0.500000; 5.500000;-8.000000;, - -0.500000; 5.500000;-5.000000;, - -3.500000; 5.500000;-5.000000;, - -3.500000; 2.500000;-5.000000;, - -0.500000; 2.500000;-5.000000;, - -1.000000; 3.000000;-10.000000;, - -3.000000; 3.000000;-10.000000;, - -3.000000; 5.000000;-10.000000;, - -1.000000; 5.000000;-10.000000;, - -1.000000; 5.000000;-8.000000;, - -1.000000; 3.000000;-8.000000;, - -1.000000; 3.000000;-10.000000;, - -1.000000; 5.000000;-10.000000;, - -3.000000; 5.000000;-8.000000;, - -1.000000; 5.000000;-8.000000;, - -1.000000; 5.000000;-10.000000;, - -3.000000; 5.000000;-10.000000;, - -3.000000; 3.000000;-8.000000;, - -3.000000; 5.000000;-8.000000;, - -3.000000; 5.000000;-10.000000;, - -3.000000; 3.000000;-10.000000;, - -1.000000; 3.000000;-8.000000;, - -3.000000; 3.000000;-8.000000;, - -3.000000; 3.000000;-10.000000;, - -1.000000; 3.000000;-10.000000;, - 2.000000; 7.000000; 2.000000;, - -2.000000; 7.000000; 2.000000;, - -2.000000; 3.000000; 2.000000;, - 2.000000; 3.000000; 2.000000;, - 2.000000; 3.000000;-2.000000;, - -2.000000; 3.000000;-2.000000;, - -2.000000; 7.000000;-2.000000;, - 2.000000; 7.000000;-2.000000;, - 2.000000; 7.000000; 2.000000;, - 2.000000; 3.000000; 2.000000;, - 2.000000; 3.000000;-2.000000;, - 2.000000; 7.000000;-2.000000;, - -2.000000; 7.000000; 2.000000;, - 2.000000; 7.000000; 2.000000;, - 2.000000; 7.000000;-2.000000;, - -2.000000; 7.000000;-2.000000;, - -2.000000; 3.000000; 2.000000;, - -2.000000; 7.000000; 2.000000;, - -2.000000; 7.000000;-2.000000;, - -2.000000; 3.000000;-2.000000;, - 2.000000; 3.000000; 2.000000;, - -2.000000; 3.000000; 2.000000;, - -2.000000; 3.000000;-2.000000;, - 2.000000; 3.000000;-2.000000;; - 56; - 4;3,2,1,0;, - 4;7,6,5,4;, - 4;11,10,9,8;, - 4;15,14,13,12;, - 4;19,18,17,16;, - 4;23,22,21,20;, - 4;27,26,25,24;, - 4;31,30,29,28;, - 4;35,34,33,32;, - 4;39,38,37,36;, - 4;43,42,41,40;, - 4;47,46,45,44;, - 4;51,50,49,48;, - 4;55,54,53,52;, - 4;59,58,57,56;, - 4;63,62,61,60;, - 4;67,66,65,64;, - 4;71,70,69,68;, - 4;75,74,73,72;, - 4;79,78,77,76;, - 4;83,82,81,80;, - 4;87,86,85,84;, - 4;91,90,89,88;, - 4;95,94,93,92;, - 4;99,98,97,96;, - 4;103,102,101,100;, - 4;107,106,105,104;, - 4;111,110,109,108;, - 4;115,114,113,112;, - 4;119,118,117,116;, - 4;123,122,121,120;, - 4;127,126,125,124;, - 4;131,130,129,128;, - 4;135,134,133,132;, - 4;139,138,137,136;, - 4;143,142,141,140;, - 4;147,146,145,144;, - 4;151,150,149,148;, - 4;155,154,153,152;, - 4;159,158,157,156;, - 4;163,162,161,160;, - 4;167,166,165,164;, - 4;171,170,169,168;, - 4;175,174,173,172;, - 4;179,178,177,176;, - 4;183,182,181,180;, - 4;187,186,185,184;, - 4;191,190,189,188;, - 4;195,194,193,192;, - 4;199,198,197,196;, - 4;203,202,201,200;, - 4;207,206,205,204;, - 4;211,210,209,208;, - 4;215,214,213,212;, - 4;219,218,217,216;, - 4;223,222,221,220;; - MeshNormals { // mob normals - 56; - 0.000000;-1.000000; 0.000000;, - -1.000000;-0.000000; 0.000000;, - 0.000000; 1.000000;-0.000000;, - 1.000000; 0.000000; 0.000000;, - 0.000000;-0.000000;-1.000000;, - 0.000000;-0.000000; 1.000000;, - 0.000000;-1.000000; 0.000000;, - -1.000000; 0.000000; 0.000000;, - -0.000000; 1.000000; 0.000000;, - 1.000000; 0.000000;-0.000000;, - 0.000000;-0.000000;-1.000000;, - 0.000000;-0.000000; 1.000000;, - 0.000000;-1.000000; 0.000000;, - 0.000000;-0.000000;-1.000000;, - 1.000000; 0.000000;-0.000000;, - -0.000000; 1.000000; 0.000000;, - -1.000000; 0.000000; 0.000000;, - 0.000000;-1.000000; 0.000000;, - -1.000000;-0.000000; 0.000000;, - 0.000000; 1.000000;-0.000000;, - 1.000000; 0.000000;-0.000000;, - 0.000000;-0.000000;-1.000000;, - 0.000000;-0.000000; 1.000000;, - 0.000000;-0.000000;-1.000000;, - 1.000000; 0.000000;-0.000000;, - 0.000000; 1.000000;-0.000000;, - -1.000000; 0.000000; 0.000000;, - 0.000000;-1.000000; 0.000000;, - 0.000000;-1.000000; 0.000000;, - -1.000000; 0.000000; 0.000000;, - 0.000000; 1.000000;-0.000000;, - 1.000000; 0.000000; 0.000000;, - 0.000000;-0.000000;-1.000000;, - 0.000000;-0.000000; 1.000000;, - 0.000000;-1.000000; 0.000000;, - 0.000000;-0.000000;-1.000000;, - 1.000000; 0.000000;-0.000000;, - 0.000000; 1.000000;-0.000000;, - -1.000000; 0.000000; 0.000000;, - 0.000000;-1.000000; 0.000000;, - -1.000000; 0.000000; 0.000000;, - 0.000000; 1.000000;-0.000000;, - 1.000000; 0.000000;-0.000000;, - 0.000000;-0.000000;-1.000000;, - 0.000000;-0.000000; 1.000000;, - 0.000000;-0.000000;-1.000000;, - 1.000000; 0.000000;-0.000000;, - 0.000000; 1.000000;-0.000000;, - -1.000000; 0.000000; 0.000000;, - 0.000000;-1.000000; 0.000000;, - 0.000000;-0.000000; 1.000000;, - 0.000000;-0.000000;-1.000000;, - 1.000000; 0.000000; 0.000000;, - 0.000000; 1.000000;-0.000000;, - -1.000000; 0.000000; 0.000000;, - 0.000000;-1.000000; 0.000000;; - 56; - 4;0,0,0,0;, - 4;1,1,1,1;, - 4;2,2,2,2;, - 4;3,3,3,3;, - 4;4,4,4,4;, - 4;5,5,5,5;, - 4;6,6,6,6;, - 4;7,7,7,7;, - 4;8,8,8,8;, - 4;9,9,9,9;, - 4;10,10,10,10;, - 4;11,11,11,11;, - 4;12,12,12,12;, - 4;13,13,13,13;, - 4;14,14,14,14;, - 4;15,15,15,15;, - 4;16,16,16,16;, - 4;17,17,17,17;, - 4;18,18,18,18;, - 4;19,19,19,19;, - 4;20,20,20,20;, - 4;21,21,21,21;, - 4;22,22,22,22;, - 4;23,23,23,23;, - 4;24,24,24,24;, - 4;25,25,25,25;, - 4;26,26,26,26;, - 4;27,27,27,27;, - 4;28,28,28,28;, - 4;29,29,29,29;, - 4;30,30,30,30;, - 4;31,31,31,31;, - 4;32,32,32,32;, - 4;33,33,33,33;, - 4;34,34,34,34;, - 4;35,35,35,35;, - 4;36,36,36,36;, - 4;37,37,37,37;, - 4;38,38,38,38;, - 4;39,39,39,39;, - 4;40,40,40,40;, - 4;41,41,41,41;, - 4;42,42,42,42;, - 4;43,43,43,43;, - 4;44,44,44,44;, - 4;45,45,45,45;, - 4;46,46,46,46;, - 4;47,47,47,47;, - 4;48,48,48,48;, - 4;49,49,49,49;, - 4;50,50,50,50;, - 4;51,51,51,51;, - 4;52,52,52,52;, - 4;53,53,53,53;, - 4;54,54,54,54;, - 4;55,55,55,55;; - } // End of mob normals - MeshTextureCoords { // mob UV coordinates - 224; - 1.000000; 0.500000;, - 0.750000; 0.500000;, - 0.750000; 1.000000;, - 1.000000; 1.000000;, - 0.125000; 0.500000;, - 0.500000; 0.500000;, - 0.500000; 1.000000;, - 0.125000; 1.000000;, - 0.750000; 0.500000;, - 0.500000; 0.500000;, - 0.500000; 1.000000;, - 0.750000; 1.000000;, - 0.500000; 0.500000;, - 0.125000; 0.500000;, - 0.125000; 1.000000;, - 0.500000; 1.000000;, - 0.125000; 0.500000;, - 0.500000; 0.500000;, - 0.500000; 0.000000;, - 0.125000; 0.000000;, - 0.125000; 0.500000;, - 0.500000; 0.500000;, - 0.500000; 0.000000;, - 0.125000; 0.000000;, - 0.000000; 0.750000;, - 0.125000; 0.750000;, - 0.125000; 0.500000;, - 0.000000; 0.500000;, - 0.000000; 0.750000;, - 0.125000; 0.750000;, - 0.125000; 0.500000;, - 0.000000; 0.500000;, - 0.000000; 0.750000;, - 0.125000; 0.750000;, - 0.125000; 0.500000;, - 0.000000; 0.500000;, - 0.000000; 0.750000;, - 0.125000; 0.750000;, - 0.125000; 0.500000;, - 0.000000; 0.500000;, - 0.000000; 0.250000;, - 0.125000; 0.250000;, - 0.125000; 0.000000;, - 0.000000; 0.000000;, - 0.000000; 0.250000;, - 0.125000; 0.250000;, - 0.125000; 0.000000;, - 0.000000; 0.000000;, - 0.000000; 0.750000;, - 0.125000; 0.750000;, - 0.125000; 0.500000;, - 0.000000; 0.500000;, - 0.000000; 0.500000;, - 0.125000; 0.500000;, - 0.125000; 0.250000;, - 0.000000; 0.250000;, - 0.000000; 0.750000;, - 0.125000; 0.750000;, - 0.125000; 1.000000;, - 0.000000; 1.000000;, - 0.000000; 0.750000;, - 0.125000; 0.750000;, - 0.125000; 1.000000;, - 0.000000; 1.000000;, - 0.000000; 0.750000;, - 0.125000; 0.750000;, - 0.125000; 1.000000;, - 0.000000; 1.000000;, - 0.000000; 0.750000;, - 0.125000; 0.750000;, - 0.125000; 1.000000;, - 0.000000; 1.000000;, - 0.000000; 0.750000;, - 0.125000; 0.750000;, - 0.125000; 0.500000;, - 0.000000; 0.500000;, - 0.000000; 0.750000;, - 0.125000; 0.750000;, - 0.125000; 0.500000;, - 0.000000; 0.500000;, - 0.000000; 0.750000;, - 0.125000; 0.750000;, - 0.125000; 0.500000;, - 0.000000; 0.500000;, - 0.000000; 0.250000;, - 0.125000; 0.250000;, - 0.125000; 0.000000;, - 0.000000; 0.000000;, - 0.000000; 0.250000;, - 0.125000; 0.250000;, - 0.125000; 0.000000;, - 0.000000; 0.000000;, - 0.000000; 0.500000;, - 0.125000; 0.500000;, - 0.125000; 0.250000;, - 0.000000; 0.250000;, - 0.000000; 0.750000;, - 0.125000; 0.750000;, - 0.125000; 1.000000;, - 0.000000; 1.000000;, - 0.000000; 0.750000;, - 0.125000; 0.750000;, - 0.125000; 1.000000;, - 0.000000; 1.000000;, - 0.000000; 0.750000;, - 0.125000; 0.750000;, - 0.125000; 1.000000;, - 0.000000; 1.000000;, - 0.000000; 0.750000;, - 0.125000; 0.750000;, - 0.125000; 1.000000;, - 0.000000; 1.000000;, - 0.000000; 0.750000;, - 0.125000; 0.750000;, - 0.125000; 0.500000;, - 0.000000; 0.500000;, - 0.000000; 0.750000;, - 0.125000; 0.750000;, - 0.125000; 0.500000;, - 0.000000; 0.500000;, - 0.000000; 0.750000;, - 0.125000; 0.750000;, - 0.125000; 0.500000;, - 0.000000; 0.500000;, - 0.000000; 0.750000;, - 0.125000; 0.750000;, - 0.125000; 0.500000;, - 0.000000; 0.500000;, - 0.000000; 0.250000;, - 0.125000; 0.250000;, - 0.125000; 0.000000;, - 0.000000; 0.000000;, - 0.000000; 0.250000;, - 0.125000; 0.250000;, - 0.125000; 0.000000;, - 0.000000; 0.000000;, - 0.000000; 0.750000;, - 0.125000; 0.750000;, - 0.125000; 0.500000;, - 0.000000; 0.500000;, - 0.000000; 0.500000;, - 0.125000; 0.500000;, - 0.125000; 0.250000;, - 0.000000; 0.250000;, - 0.000000; 0.750000;, - 0.125000; 0.750000;, - 0.125000; 1.000000;, - 0.000000; 1.000000;, - 0.000000; 0.750000;, - 0.125000; 0.750000;, - 0.125000; 1.000000;, - 0.000000; 1.000000;, - 0.000000; 0.750000;, - 0.125000; 0.750000;, - 0.125000; 1.000000;, - 0.000000; 1.000000;, - 0.000000; 0.750000;, - 0.125000; 0.750000;, - 0.125000; 1.000000;, - 0.000000; 1.000000;, - 0.000000; 0.750000;, - 0.125000; 0.750000;, - 0.125000; 0.500000;, - 0.000000; 0.500000;, - 0.000000; 0.750000;, - 0.125000; 0.750000;, - 0.125000; 0.500000;, - 0.000000; 0.500000;, - 0.000000; 0.750000;, - 0.125000; 0.750000;, - 0.125000; 0.500000;, - 0.000000; 0.500000;, - 0.000000; 0.250000;, - 0.125000; 0.250000;, - 0.125000; 0.000000;, - 0.000000; 0.000000;, - 0.000000; 0.250000;, - 0.125000; 0.250000;, - 0.125000; 0.000000;, - 0.000000; 0.000000;, - 0.000000; 0.500000;, - 0.125000; 0.500000;, - 0.125000; 0.250000;, - 0.000000; 0.250000;, - 0.000000; 0.750000;, - 0.125000; 0.750000;, - 0.125000; 1.000000;, - 0.000000; 1.000000;, - 0.000000; 0.750000;, - 0.125000; 0.750000;, - 0.125000; 1.000000;, - 0.000000; 1.000000;, - 0.000000; 0.750000;, - 0.125000; 0.750000;, - 0.125000; 1.000000;, - 0.000000; 1.000000;, - 0.000000; 0.750000;, - 0.125000; 0.750000;, - 0.125000; 1.000000;, - 0.000000; 1.000000;, - 0.500000; 0.250000;, - 0.625000; 0.250000;, - 0.625000; 0.000000;, - 0.500000; 0.000000;, - 0.875000; 0.500000;, - 1.000000; 0.500000;, - 1.000000; 0.250000;, - 0.875000; 0.250000;, - 0.875000; 0.000000;, - 0.750000; 0.000000;, - 0.750000; 0.250000;, - 0.875000; 0.250000;, - 0.875000; 0.000000;, - 1.000000; 0.000000;, - 1.000000; 0.250000;, - 0.875000; 0.250000;, - 0.750000; 0.000000;, - 0.875000; 0.000000;, - 0.875000; 0.250000;, - 0.750000; 0.250000;, - 0.625000; 0.250000;, - 0.750000; 0.250000;, - 0.750000; 0.000000;, - 0.625000; 0.000000;; - } // End of mob UV coordinates - XSkinMeshHeader { - 1; - 3; - 6; - } - SkinWeights { - "mob_armature_head"; - 24; - 200, - 201, - 202, - 203, - 204, - 205, - 206, - 207, - 208, - 209, - 210, - 211, - 212, - 213, - 214, - 215, - 216, - 217, - 218, - 219, - 220, - 221, - 222, - 223; - 1.000000, - 1.000000, - 1.000000, - 1.000000, - 1.000000, - 1.000000, - 1.000000, - 1.000000, - 1.000000, - 1.000000, - 1.000000, - 1.000000, - 1.000000, - 1.000000, - 1.000000, - 1.000000, - 1.000000, - 1.000000, - 1.000000, - 1.000000, - 1.000000, - 1.000000, - 1.000000, - 1.000000; - 0.100000, 0.000000, 0.000000, 0.000000, - 0.000000, 0.100000, 0.000000, 0.000000, - 0.000000, 0.000000, 0.100000, 0.000000, - 0.000000,-0.500000, 0.000000, 1.000000;; - } // End of mob_armature_head skin weights - SkinWeights { - "mob_armature_body"; - 24; - 0, - 1, - 2, - 3, - 4, - 5, - 6, - 7, - 8, - 9, - 10, - 11, - 12, - 13, - 14, - 15, - 16, - 17, - 18, - 19, - 20, - 21, - 22, - 23; - 1.000000, - 1.000000, - 1.000000, - 1.000000, - 1.000000, - 1.000000, - 1.000000, - 1.000000, - 1.000000, - 1.000000, - 1.000000, - 1.000000, - 1.000000, - 1.000000, - 1.000000, - 1.000000, - 1.000000, - 1.000000, - 1.000000, - 1.000000, - 1.000000, - 1.000000, - 1.000000, - 1.000000; - 0.100000, 0.000000, 0.000000, 0.000000, - 0.000000, 0.000000,-0.100000, 0.000000, - 0.000000, 0.100000, 0.000000, 0.000000, - 0.000000, 0.000000, 0.000000, 1.000000;; - } // End of mob_armature_body skin weights - SkinWeights { - "mob_armature_fr_leg"; - 44; - 112, - 113, - 114, - 115, - 116, - 117, - 118, - 119, - 120, - 121, - 122, - 123, - 124, - 125, - 126, - 127, - 128, - 129, - 130, - 131, - 132, - 133, - 134, - 135, - 140, - 141, - 142, - 143, - 144, - 145, - 146, - 147, - 148, - 149, - 150, - 151, - 152, - 153, - 154, - 155, - 156, - 157, - 158, - 159; - 1.000000, - 1.000000, - 1.000000, - 1.000000, - 1.000000, - 1.000000, - 1.000000, - 1.000000, - 1.000000, - 1.000000, - 1.000000, - 1.000000, - 1.000000, - 1.000000, - 1.000000, - 1.000000, - 1.000000, - 1.000000, - 1.000000, - 1.000000, - 1.000000, - 1.000000, - 1.000000, - 1.000000, - 1.000000, - 1.000000, - 1.000000, - 1.000000, - 1.000000, - 1.000000, - 1.000000, - 1.000000, - 1.000000, - 1.000000, - 1.000000, - 1.000000, - 1.000000, - 1.000000, - 1.000000, - 1.000000, - 1.000000, - 1.000000, - 1.000000, - 1.000000; - 0.100000, 0.000000, 0.000000, 0.000000, - 0.000000, 0.000000, 0.100000, 0.000000, - 0.000000,-0.100000, 0.000000, 0.000000, - -0.200000,-0.500000,-0.400000, 1.000000;; - } // End of mob_armature_fr_leg skin weights - SkinWeights { - "mob_armature_rl_leg"; - 44; - 48, - 49, - 50, - 51, - 72, - 73, - 74, - 75, - 76, - 77, - 78, - 79, - 80, - 81, - 82, - 83, - 84, - 85, - 86, - 87, - 88, - 89, - 90, - 91, - 92, - 93, - 94, - 95, - 96, - 97, - 98, - 99, - 100, - 101, - 102, - 103, - 104, - 105, - 106, - 107, - 108, - 109, - 110, - 111; - 1.000000, - 1.000000, - 1.000000, - 1.000000, - 1.000000, - 1.000000, - 1.000000, - 1.000000, - 1.000000, - 1.000000, - 1.000000, - 1.000000, - 1.000000, - 1.000000, - 1.000000, - 1.000000, - 1.000000, - 1.000000, - 1.000000, - 1.000000, - 1.000000, - 1.000000, - 1.000000, - 1.000000, - 1.000000, - 1.000000, - 1.000000, - 1.000000, - 1.000000, - 1.000000, - 1.000000, - 1.000000, - 1.000000, - 1.000000, - 1.000000, - 1.000000, - 1.000000, - 1.000000, - 1.000000, - 1.000000, - 1.000000, - 1.000000, - 1.000000, - 1.000000; - 0.100000, 0.000000, 0.000000, 0.000000, - 0.000000, 0.000000, 0.100000, 0.000000, - 0.000000,-0.100000, 0.000000, 0.000000, - 0.200000,-0.500000, 0.400000, 1.000000;; - } // End of mob_armature_rl_leg skin weights - SkinWeights { - "mob_armature_fl_leg"; - 44; - 136, - 137, - 138, - 139, - 160, - 161, - 162, - 163, - 164, - 165, - 166, - 167, - 168, - 169, - 170, - 171, - 172, - 173, - 174, - 175, - 176, - 177, - 178, - 179, - 180, - 181, - 182, - 183, - 184, - 185, - 186, - 187, - 188, - 189, - 190, - 191, - 192, - 193, - 194, - 195, - 196, - 197, - 198, - 199; - 1.000000, - 1.000000, - 1.000000, - 1.000000, - 1.000000, - 1.000000, - 1.000000, - 1.000000, - 1.000000, - 1.000000, - 1.000000, - 1.000000, - 1.000000, - 1.000000, - 1.000000, - 1.000000, - 1.000000, - 1.000000, - 1.000000, - 1.000000, - 1.000000, - 1.000000, - 1.000000, - 1.000000, - 1.000000, - 1.000000, - 1.000000, - 1.000000, - 1.000000, - 1.000000, - 1.000000, - 1.000000, - 1.000000, - 1.000000, - 1.000000, - 1.000000, - 1.000000, - 1.000000, - 1.000000, - 1.000000, - 1.000000, - 1.000000, - 1.000000, - 1.000000; - 0.100000, 0.000000, 0.000000, 0.000000, - 0.000000, 0.000000, 0.100000, 0.000000, - 0.000000,-0.100000, 0.000000, 0.000000, - 0.200000,-0.500000,-0.400000, 1.000000;; - } // End of mob_armature_fl_leg skin weights - SkinWeights { - "mob_armature_rr_leg"; - 44; - 24, - 25, - 26, - 27, - 28, - 29, - 30, - 31, - 32, - 33, - 34, - 35, - 36, - 37, - 38, - 39, - 40, - 41, - 42, - 43, - 44, - 45, - 46, - 47, - 52, - 53, - 54, - 55, - 56, - 57, - 58, - 59, - 60, - 61, - 62, - 63, - 64, - 65, - 66, - 67, - 68, - 69, - 70, - 71; - 1.000000, - 1.000000, - 1.000000, - 1.000000, - 1.000000, - 1.000000, - 1.000000, - 1.000000, - 1.000000, - 1.000000, - 1.000000, - 1.000000, - 1.000000, - 1.000000, - 1.000000, - 1.000000, - 1.000000, - 1.000000, - 1.000000, - 1.000000, - 1.000000, - 1.000000, - 1.000000, - 1.000000, - 1.000000, - 1.000000, - 1.000000, - 1.000000, - 1.000000, - 1.000000, - 1.000000, - 1.000000, - 1.000000, - 1.000000, - 1.000000, - 1.000000, - 1.000000, - 1.000000, - 1.000000, - 1.000000, - 1.000000, - 1.000000, - 1.000000, - 1.000000; - 0.100000, 0.000000, 0.000000, 0.000000, - 0.000000, 0.000000, 0.100000, 0.000000, - 0.000000,-0.100000, 0.000000, 0.000000, - -0.200000,-0.500000, 0.400000, 1.000000;; - } // End of mob_armature_rr_leg skin weights - } // End of mob mesh - } // End of mob - } // End of mob_armature -} // End of Root -AnimationSet Global { - Animation { - {mob} - AnimationKey { // Rotation - 0; - 81; - 0;4;-1.000000, 0.000000, 0.000000, 0.000000;;, - 1;4;-1.000000, 0.000000, 0.000000, 0.000000;;, - 2;4;-1.000000, 0.000000, 0.000000, 0.000000;;, - 3;4;-1.000000, 0.000000, 0.000000, 0.000000;;, - 4;4;-1.000000, 0.000000, 0.000000, 0.000000;;, - 5;4;-1.000000, 0.000000, 0.000000, 0.000000;;, - 6;4;-1.000000, 0.000000, 0.000000, 0.000000;;, - 7;4;-1.000000, 0.000000, 0.000000, 0.000000;;, - 8;4;-1.000000, 0.000000, 0.000000, 0.000000;;, - 9;4;-1.000000, 0.000000, 0.000000, 0.000000;;, - 10;4;-1.000000, 0.000000, 0.000000, 0.000000;;, - 11;4;-1.000000, 0.000000, 0.000000, 0.000000;;, - 12;4;-1.000000, 0.000000, 0.000000, 0.000000;;, - 13;4;-1.000000, 0.000000, 0.000000, 0.000000;;, - 14;4;-1.000000, 0.000000, 0.000000, 0.000000;;, - 15;4;-1.000000, 0.000000, 0.000000, 0.000000;;, - 16;4;-1.000000, 0.000000, 0.000000, 0.000000;;, - 17;4;-1.000000, 0.000000, 0.000000, 0.000000;;, - 18;4;-1.000000, 0.000000, 0.000000, 0.000000;;, - 19;4;-1.000000, 0.000000, 0.000000, 0.000000;;, - 20;4;-1.000000, 0.000000, 0.000000, 0.000000;;, - 21;4;-1.000000, 0.000000, 0.000000, 0.000000;;, - 22;4;-1.000000, 0.000000, 0.000000, 0.000000;;, - 23;4;-1.000000, 0.000000, 0.000000, 0.000000;;, - 24;4;-1.000000, 0.000000, 0.000000, 0.000000;;, - 25;4;-1.000000, 0.000000, 0.000000, 0.000000;;, - 26;4;-1.000000, 0.000000, 0.000000, 0.000000;;, - 27;4;-1.000000, 0.000000, 0.000000, 0.000000;;, - 28;4;-1.000000, 0.000000, 0.000000, 0.000000;;, - 29;4;-1.000000, 0.000000, 0.000000, 0.000000;;, - 30;4;-1.000000, 0.000000, 0.000000, 0.000000;;, - 31;4;-1.000000, 0.000000, 0.000000, 0.000000;;, - 32;4;-1.000000, 0.000000, 0.000000, 0.000000;;, - 33;4;-1.000000, 0.000000, 0.000000, 0.000000;;, - 34;4;-1.000000, 0.000000, 0.000000, 0.000000;;, - 35;4;-1.000000, 0.000000, 0.000000, 0.000000;;, - 36;4;-1.000000, 0.000000, 0.000000, 0.000000;;, - 37;4;-1.000000, 0.000000, 0.000000, 0.000000;;, - 38;4;-1.000000, 0.000000, 0.000000, 0.000000;;, - 39;4;-1.000000, 0.000000, 0.000000, 0.000000;;, - 40;4;-1.000000, 0.000000, 0.000000, 0.000000;;, - 41;4;-1.000000, 0.000000, 0.000000, 0.000000;;, - 42;4;-1.000000, 0.000000, 0.000000, 0.000000;;, - 43;4;-1.000000, 0.000000, 0.000000, 0.000000;;, - 44;4;-1.000000, 0.000000, 0.000000, 0.000000;;, - 45;4;-1.000000, 0.000000, 0.000000, 0.000000;;, - 46;4;-1.000000, 0.000000, 0.000000, 0.000000;;, - 47;4;-1.000000, 0.000000, 0.000000, 0.000000;;, - 48;4;-1.000000, 0.000000, 0.000000, 0.000000;;, - 49;4;-1.000000, 0.000000, 0.000000, 0.000000;;, - 50;4;-1.000000, 0.000000, 0.000000, 0.000000;;, - 51;4;-1.000000, 0.000000, 0.000000, 0.000000;;, - 52;4;-1.000000, 0.000000, 0.000000, 0.000000;;, - 53;4;-1.000000, 0.000000, 0.000000, 0.000000;;, - 54;4;-1.000000, 0.000000, 0.000000, 0.000000;;, - 55;4;-1.000000, 0.000000, 0.000000, 0.000000;;, - 56;4;-1.000000, 0.000000, 0.000000, 0.000000;;, - 57;4;-1.000000, 0.000000, 0.000000, 0.000000;;, - 58;4;-1.000000, 0.000000, 0.000000, 0.000000;;, - 59;4;-1.000000, 0.000000, 0.000000, 0.000000;;, - 60;4;-1.000000, 0.000000, 0.000000, 0.000000;;, - 61;4;-1.000000, 0.000000, 0.000000, 0.000000;;, - 62;4;-1.000000, 0.000000, 0.000000, 0.000000;;, - 63;4;-1.000000, 0.000000, 0.000000, 0.000000;;, - 64;4;-1.000000, 0.000000, 0.000000, 0.000000;;, - 65;4;-1.000000, 0.000000, 0.000000, 0.000000;;, - 66;4;-1.000000, 0.000000, 0.000000, 0.000000;;, - 67;4;-1.000000, 0.000000, 0.000000, 0.000000;;, - 68;4;-1.000000, 0.000000, 0.000000, 0.000000;;, - 69;4;-1.000000, 0.000000, 0.000000, 0.000000;;, - 70;4;-1.000000, 0.000000, 0.000000, 0.000000;;, - 71;4;-1.000000, 0.000000, 0.000000, 0.000000;;, - 72;4;-1.000000, 0.000000, 0.000000, 0.000000;;, - 73;4;-1.000000, 0.000000, 0.000000, 0.000000;;, - 74;4;-1.000000, 0.000000, 0.000000, 0.000000;;, - 75;4;-1.000000, 0.000000, 0.000000, 0.000000;;, - 76;4;-1.000000, 0.000000, 0.000000, 0.000000;;, - 77;4;-1.000000, 0.000000, 0.000000, 0.000000;;, - 78;4;-1.000000, 0.000000, 0.000000, 0.000000;;, - 79;4;-1.000000, 0.000000, 0.000000, 0.000000;;, - 80;4;-1.000000, 0.000000, 0.000000, 0.000000;;; - } - AnimationKey { // Scale - 1; - 81; - 0;3; 0.100000, 0.100000, 0.100000;;, - 1;3; 0.100000, 0.100000, 0.100000;;, - 2;3; 0.100000, 0.100000, 0.100000;;, - 3;3; 0.100000, 0.100000, 0.100000;;, - 4;3; 0.100000, 0.100000, 0.100000;;, - 5;3; 0.100000, 0.100000, 0.100000;;, - 6;3; 0.100000, 0.100000, 0.100000;;, - 7;3; 0.100000, 0.100000, 0.100000;;, - 8;3; 0.100000, 0.100000, 0.100000;;, - 9;3; 0.100000, 0.100000, 0.100000;;, - 10;3; 0.100000, 0.100000, 0.100000;;, - 11;3; 0.100000, 0.100000, 0.100000;;, - 12;3; 0.100000, 0.100000, 0.100000;;, - 13;3; 0.100000, 0.100000, 0.100000;;, - 14;3; 0.100000, 0.100000, 0.100000;;, - 15;3; 0.100000, 0.100000, 0.100000;;, - 16;3; 0.100000, 0.100000, 0.100000;;, - 17;3; 0.100000, 0.100000, 0.100000;;, - 18;3; 0.100000, 0.100000, 0.100000;;, - 19;3; 0.100000, 0.100000, 0.100000;;, - 20;3; 0.100000, 0.100000, 0.100000;;, - 21;3; 0.100000, 0.100000, 0.100000;;, - 22;3; 0.100000, 0.100000, 0.100000;;, - 23;3; 0.100000, 0.100000, 0.100000;;, - 24;3; 0.100000, 0.100000, 0.100000;;, - 25;3; 0.100000, 0.100000, 0.100000;;, - 26;3; 0.100000, 0.100000, 0.100000;;, - 27;3; 0.100000, 0.100000, 0.100000;;, - 28;3; 0.100000, 0.100000, 0.100000;;, - 29;3; 0.100000, 0.100000, 0.100000;;, - 30;3; 0.100000, 0.100000, 0.100000;;, - 31;3; 0.100000, 0.100000, 0.100000;;, - 32;3; 0.100000, 0.100000, 0.100000;;, - 33;3; 0.100000, 0.100000, 0.100000;;, - 34;3; 0.100000, 0.100000, 0.100000;;, - 35;3; 0.100000, 0.100000, 0.100000;;, - 36;3; 0.100000, 0.100000, 0.100000;;, - 37;3; 0.100000, 0.100000, 0.100000;;, - 38;3; 0.100000, 0.100000, 0.100000;;, - 39;3; 0.100000, 0.100000, 0.100000;;, - 40;3; 0.100000, 0.100000, 0.100000;;, - 41;3; 0.100000, 0.100000, 0.100000;;, - 42;3; 0.100000, 0.100000, 0.100000;;, - 43;3; 0.100000, 0.100000, 0.100000;;, - 44;3; 0.100000, 0.100000, 0.100000;;, - 45;3; 0.100000, 0.100000, 0.100000;;, - 46;3; 0.100000, 0.100000, 0.100000;;, - 47;3; 0.100000, 0.100000, 0.100000;;, - 48;3; 0.100000, 0.100000, 0.100000;;, - 49;3; 0.100000, 0.100000, 0.100000;;, - 50;3; 0.100000, 0.100000, 0.100000;;, - 51;3; 0.100000, 0.100000, 0.100000;;, - 52;3; 0.100000, 0.100000, 0.100000;;, - 53;3; 0.100000, 0.100000, 0.100000;;, - 54;3; 0.100000, 0.100000, 0.100000;;, - 55;3; 0.100000, 0.100000, 0.100000;;, - 56;3; 0.100000, 0.100000, 0.100000;;, - 57;3; 0.100000, 0.100000, 0.100000;;, - 58;3; 0.100000, 0.100000, 0.100000;;, - 59;3; 0.100000, 0.100000, 0.100000;;, - 60;3; 0.100000, 0.100000, 0.100000;;, - 61;3; 0.100000, 0.100000, 0.100000;;, - 62;3; 0.100000, 0.100000, 0.100000;;, - 63;3; 0.100000, 0.100000, 0.100000;;, - 64;3; 0.100000, 0.100000, 0.100000;;, - 65;3; 0.100000, 0.100000, 0.100000;;, - 66;3; 0.100000, 0.100000, 0.100000;;, - 67;3; 0.100000, 0.100000, 0.100000;;, - 68;3; 0.100000, 0.100000, 0.100000;;, - 69;3; 0.100000, 0.100000, 0.100000;;, - 70;3; 0.100000, 0.100000, 0.100000;;, - 71;3; 0.100000, 0.100000, 0.100000;;, - 72;3; 0.100000, 0.100000, 0.100000;;, - 73;3; 0.100000, 0.100000, 0.100000;;, - 74;3; 0.100000, 0.100000, 0.100000;;, - 75;3; 0.100000, 0.100000, 0.100000;;, - 76;3; 0.100000, 0.100000, 0.100000;;, - 77;3; 0.100000, 0.100000, 0.100000;;, - 78;3; 0.100000, 0.100000, 0.100000;;, - 79;3; 0.100000, 0.100000, 0.100000;;, - 80;3; 0.100000, 0.100000, 0.100000;;; - } - AnimationKey { // Position - 2; - 81; - 0;3; 0.000000, 0.000000, 0.000000;;, - 1;3; 0.000000, 0.000000, 0.000000;;, - 2;3; 0.000000, 0.000000, 0.000000;;, - 3;3; 0.000000, 0.000000, 0.000000;;, - 4;3; 0.000000, 0.000000, 0.000000;;, - 5;3; 0.000000, 0.000000, 0.000000;;, - 6;3; 0.000000, 0.000000, 0.000000;;, - 7;3; 0.000000, 0.000000, 0.000000;;, - 8;3; 0.000000, 0.000000, 0.000000;;, - 9;3; 0.000000, 0.000000, 0.000000;;, - 10;3; 0.000000, 0.000000, 0.000000;;, - 11;3; 0.000000, 0.000000, 0.000000;;, - 12;3; 0.000000, 0.000000, 0.000000;;, - 13;3; 0.000000, 0.000000, 0.000000;;, - 14;3; 0.000000, 0.000000, 0.000000;;, - 15;3; 0.000000, 0.000000, 0.000000;;, - 16;3; 0.000000, 0.000000, 0.000000;;, - 17;3; 0.000000, 0.000000, 0.000000;;, - 18;3; 0.000000, 0.000000, 0.000000;;, - 19;3; 0.000000, 0.000000, 0.000000;;, - 20;3; 0.000000, 0.000000, 0.000000;;, - 21;3; 0.000000, 0.000000, 0.000000;;, - 22;3; 0.000000, 0.000000, 0.000000;;, - 23;3; 0.000000, 0.000000, 0.000000;;, - 24;3; 0.000000, 0.000000, 0.000000;;, - 25;3; 0.000000, 0.000000, 0.000000;;, - 26;3; 0.000000, 0.000000, 0.000000;;, - 27;3; 0.000000, 0.000000, 0.000000;;, - 28;3; 0.000000, 0.000000, 0.000000;;, - 29;3; 0.000000, 0.000000, 0.000000;;, - 30;3; 0.000000, 0.000000, 0.000000;;, - 31;3; 0.000000, 0.000000, 0.000000;;, - 32;3; 0.000000, 0.000000, 0.000000;;, - 33;3; 0.000000, 0.000000, 0.000000;;, - 34;3; 0.000000, 0.000000, 0.000000;;, - 35;3; 0.000000, 0.000000, 0.000000;;, - 36;3; 0.000000, 0.000000, 0.000000;;, - 37;3; 0.000000, 0.000000, 0.000000;;, - 38;3; 0.000000, 0.000000, 0.000000;;, - 39;3; 0.000000, 0.000000, 0.000000;;, - 40;3; 0.000000, 0.000000, 0.000000;;, - 41;3; 0.000000, 0.000000, 0.000000;;, - 42;3; 0.000000, 0.000000, 0.000000;;, - 43;3; 0.000000, 0.000000, 0.000000;;, - 44;3; 0.000000, 0.000000, 0.000000;;, - 45;3; 0.000000, 0.000000, 0.000000;;, - 46;3; 0.000000, 0.000000, 0.000000;;, - 47;3; 0.000000, 0.000000, 0.000000;;, - 48;3; 0.000000, 0.000000, 0.000000;;, - 49;3; 0.000000, 0.000000, 0.000000;;, - 50;3; 0.000000, 0.000000, 0.000000;;, - 51;3; 0.000000, 0.000000, 0.000000;;, - 52;3; 0.000000, 0.000000, 0.000000;;, - 53;3; 0.000000, 0.000000, 0.000000;;, - 54;3; 0.000000, 0.000000, 0.000000;;, - 55;3; 0.000000, 0.000000, 0.000000;;, - 56;3; 0.000000, 0.000000, 0.000000;;, - 57;3; 0.000000, 0.000000, 0.000000;;, - 58;3; 0.000000, 0.000000, 0.000000;;, - 59;3; 0.000000, 0.000000, 0.000000;;, - 60;3; 0.000000, 0.000000, 0.000000;;, - 61;3; 0.000000, 0.000000, 0.000000;;, - 62;3; 0.000000, 0.000000, 0.000000;;, - 63;3; 0.000000, 0.000000, 0.000000;;, - 64;3; 0.000000, 0.000000, 0.000000;;, - 65;3; 0.000000, 0.000000, 0.000000;;, - 66;3; 0.000000, 0.000000, 0.000000;;, - 67;3; 0.000000, 0.000000, 0.000000;;, - 68;3; 0.000000, 0.000000, 0.000000;;, - 69;3; 0.000000, 0.000000, 0.000000;;, - 70;3; 0.000000, 0.000000, 0.000000;;, - 71;3; 0.000000, 0.000000, 0.000000;;, - 72;3; 0.000000, 0.000000, 0.000000;;, - 73;3; 0.000000, 0.000000, 0.000000;;, - 74;3; 0.000000, 0.000000, 0.000000;;, - 75;3; 0.000000, 0.000000, 0.000000;;, - 76;3; 0.000000, 0.000000, 0.000000;;, - 77;3; 0.000000, 0.000000, 0.000000;;, - 78;3; 0.000000, 0.000000, 0.000000;;, - 79;3; 0.000000, 0.000000, 0.000000;;, - 80;3; 0.000000, 0.000000, 0.000000;;; - } - } - Animation { - {mob_armature} - AnimationKey { // Rotation - 0; - 81; - 0;4;-1.000000, 0.000000, 0.000000, 0.000000;;, - 1;4;-1.000000, 0.000000, 0.000000, 0.000000;;, - 2;4;-1.000000, 0.000000, 0.000000, 0.000000;;, - 3;4;-1.000000, 0.000000, 0.000000, 0.000000;;, - 4;4;-1.000000, 0.000000, 0.000000, 0.000000;;, - 5;4;-1.000000, 0.000000, 0.000000, 0.000000;;, - 6;4;-1.000000, 0.000000, 0.000000, 0.000000;;, - 7;4;-1.000000, 0.000000, 0.000000, 0.000000;;, - 8;4;-1.000000, 0.000000, 0.000000, 0.000000;;, - 9;4;-1.000000, 0.000000, 0.000000, 0.000000;;, - 10;4;-1.000000, 0.000000, 0.000000, 0.000000;;, - 11;4;-1.000000, 0.000000, 0.000000, 0.000000;;, - 12;4;-1.000000, 0.000000, 0.000000, 0.000000;;, - 13;4;-1.000000, 0.000000, 0.000000, 0.000000;;, - 14;4;-1.000000, 0.000000, 0.000000, 0.000000;;, - 15;4;-1.000000, 0.000000, 0.000000, 0.000000;;, - 16;4;-1.000000, 0.000000, 0.000000, 0.000000;;, - 17;4;-1.000000, 0.000000, 0.000000, 0.000000;;, - 18;4;-1.000000, 0.000000, 0.000000, 0.000000;;, - 19;4;-1.000000, 0.000000, 0.000000, 0.000000;;, - 20;4;-1.000000, 0.000000, 0.000000, 0.000000;;, - 21;4;-1.000000, 0.000000, 0.000000, 0.000000;;, - 22;4;-1.000000, 0.000000, 0.000000, 0.000000;;, - 23;4;-1.000000, 0.000000, 0.000000, 0.000000;;, - 24;4;-1.000000, 0.000000, 0.000000, 0.000000;;, - 25;4;-1.000000, 0.000000, 0.000000, 0.000000;;, - 26;4;-1.000000, 0.000000, 0.000000, 0.000000;;, - 27;4;-1.000000, 0.000000, 0.000000, 0.000000;;, - 28;4;-1.000000, 0.000000, 0.000000, 0.000000;;, - 29;4;-1.000000, 0.000000, 0.000000, 0.000000;;, - 30;4;-1.000000, 0.000000, 0.000000, 0.000000;;, - 31;4;-1.000000, 0.000000, 0.000000, 0.000000;;, - 32;4;-1.000000, 0.000000, 0.000000, 0.000000;;, - 33;4;-1.000000, 0.000000, 0.000000, 0.000000;;, - 34;4;-1.000000, 0.000000, 0.000000, 0.000000;;, - 35;4;-1.000000, 0.000000, 0.000000, 0.000000;;, - 36;4;-1.000000, 0.000000, 0.000000, 0.000000;;, - 37;4;-1.000000, 0.000000, 0.000000, 0.000000;;, - 38;4;-1.000000, 0.000000, 0.000000, 0.000000;;, - 39;4;-1.000000, 0.000000, 0.000000, 0.000000;;, - 40;4;-1.000000, 0.000000, 0.000000, 0.000000;;, - 41;4;-1.000000, 0.000000, 0.000000, 0.000000;;, - 42;4;-1.000000, 0.000000, 0.000000, 0.000000;;, - 43;4;-1.000000, 0.000000, 0.000000, 0.000000;;, - 44;4;-1.000000, 0.000000, 0.000000, 0.000000;;, - 45;4;-1.000000, 0.000000, 0.000000, 0.000000;;, - 46;4;-1.000000, 0.000000, 0.000000, 0.000000;;, - 47;4;-1.000000, 0.000000, 0.000000, 0.000000;;, - 48;4;-1.000000, 0.000000, 0.000000, 0.000000;;, - 49;4;-1.000000, 0.000000, 0.000000, 0.000000;;, - 50;4;-1.000000, 0.000000, 0.000000, 0.000000;;, - 51;4;-1.000000, 0.000000, 0.000000, 0.000000;;, - 52;4;-1.000000, 0.000000, 0.000000, 0.000000;;, - 53;4;-1.000000, 0.000000, 0.000000, 0.000000;;, - 54;4;-1.000000, 0.000000, 0.000000, 0.000000;;, - 55;4;-1.000000, 0.000000, 0.000000, 0.000000;;, - 56;4;-1.000000, 0.000000, 0.000000, 0.000000;;, - 57;4;-1.000000, 0.000000, 0.000000, 0.000000;;, - 58;4;-1.000000, 0.000000, 0.000000, 0.000000;;, - 59;4;-1.000000, 0.000000, 0.000000, 0.000000;;, - 60;4;-1.000000, 0.000000, 0.000000, 0.000000;;, - 61;4;-1.000000, 0.000000, 0.000000, 0.000000;;, - 62;4;-1.000000, 0.000000, 0.000000, 0.000000;;, - 63;4;-1.000000, 0.000000, 0.000000, 0.000000;;, - 64;4;-1.000000, 0.000000, 0.000000, 0.000000;;, - 65;4;-1.000000, 0.000000, 0.000000, 0.000000;;, - 66;4;-1.000000, 0.000000, 0.000000, 0.000000;;, - 67;4;-1.000000, 0.000000, 0.000000, 0.000000;;, - 68;4;-1.000000, 0.000000, 0.000000, 0.000000;;, - 69;4;-1.000000, 0.000000, 0.000000, 0.000000;;, - 70;4;-1.000000, 0.000000, 0.000000, 0.000000;;, - 71;4;-1.000000, 0.000000, 0.000000, 0.000000;;, - 72;4;-1.000000, 0.000000, 0.000000, 0.000000;;, - 73;4;-1.000000, 0.000000, 0.000000, 0.000000;;, - 74;4;-1.000000, 0.000000, 0.000000, 0.000000;;, - 75;4;-1.000000, 0.000000, 0.000000, 0.000000;;, - 76;4;-1.000000, 0.000000, 0.000000, 0.000000;;, - 77;4;-1.000000, 0.000000, 0.000000, 0.000000;;, - 78;4;-1.000000, 0.000000, 0.000000, 0.000000;;, - 79;4;-1.000000, 0.000000, 0.000000, 0.000000;;, - 80;4;-1.000000, 0.000000, 0.000000, 0.000000;;; - } - AnimationKey { // Scale - 1; - 81; - 0;3;10.000000,10.000000,10.000000;;, - 1;3;10.000000,10.000000,10.000000;;, - 2;3;10.000000,10.000000,10.000000;;, - 3;3;10.000000,10.000000,10.000000;;, - 4;3;10.000000,10.000000,10.000000;;, - 5;3;10.000000,10.000000,10.000000;;, - 6;3;10.000000,10.000000,10.000000;;, - 7;3;10.000000,10.000000,10.000000;;, - 8;3;10.000000,10.000000,10.000000;;, - 9;3;10.000000,10.000000,10.000000;;, - 10;3;10.000000,10.000000,10.000000;;, - 11;3;10.000000,10.000000,10.000000;;, - 12;3;10.000000,10.000000,10.000000;;, - 13;3;10.000000,10.000000,10.000000;;, - 14;3;10.000000,10.000000,10.000000;;, - 15;3;10.000000,10.000000,10.000000;;, - 16;3;10.000000,10.000000,10.000000;;, - 17;3;10.000000,10.000000,10.000000;;, - 18;3;10.000000,10.000000,10.000000;;, - 19;3;10.000000,10.000000,10.000000;;, - 20;3;10.000000,10.000000,10.000000;;, - 21;3;10.000000,10.000000,10.000000;;, - 22;3;10.000000,10.000000,10.000000;;, - 23;3;10.000000,10.000000,10.000000;;, - 24;3;10.000000,10.000000,10.000000;;, - 25;3;10.000000,10.000000,10.000000;;, - 26;3;10.000000,10.000000,10.000000;;, - 27;3;10.000000,10.000000,10.000000;;, - 28;3;10.000000,10.000000,10.000000;;, - 29;3;10.000000,10.000000,10.000000;;, - 30;3;10.000000,10.000000,10.000000;;, - 31;3;10.000000,10.000000,10.000000;;, - 32;3;10.000000,10.000000,10.000000;;, - 33;3;10.000000,10.000000,10.000000;;, - 34;3;10.000000,10.000000,10.000000;;, - 35;3;10.000000,10.000000,10.000000;;, - 36;3;10.000000,10.000000,10.000000;;, - 37;3;10.000000,10.000000,10.000000;;, - 38;3;10.000000,10.000000,10.000000;;, - 39;3;10.000000,10.000000,10.000000;;, - 40;3;10.000000,10.000000,10.000000;;, - 41;3;10.000000,10.000000,10.000000;;, - 42;3;10.000000,10.000000,10.000000;;, - 43;3;10.000000,10.000000,10.000000;;, - 44;3;10.000000,10.000000,10.000000;;, - 45;3;10.000000,10.000000,10.000000;;, - 46;3;10.000000,10.000000,10.000000;;, - 47;3;10.000000,10.000000,10.000000;;, - 48;3;10.000000,10.000000,10.000000;;, - 49;3;10.000000,10.000000,10.000000;;, - 50;3;10.000000,10.000000,10.000000;;, - 51;3;10.000000,10.000000,10.000000;;, - 52;3;10.000000,10.000000,10.000000;;, - 53;3;10.000000,10.000000,10.000000;;, - 54;3;10.000000,10.000000,10.000000;;, - 55;3;10.000000,10.000000,10.000000;;, - 56;3;10.000000,10.000000,10.000000;;, - 57;3;10.000000,10.000000,10.000000;;, - 58;3;10.000000,10.000000,10.000000;;, - 59;3;10.000000,10.000000,10.000000;;, - 60;3;10.000000,10.000000,10.000000;;, - 61;3;10.000000,10.000000,10.000000;;, - 62;3;10.000000,10.000000,10.000000;;, - 63;3;10.000000,10.000000,10.000000;;, - 64;3;10.000000,10.000000,10.000000;;, - 65;3;10.000000,10.000000,10.000000;;, - 66;3;10.000000,10.000000,10.000000;;, - 67;3;10.000000,10.000000,10.000000;;, - 68;3;10.000000,10.000000,10.000000;;, - 69;3;10.000000,10.000000,10.000000;;, - 70;3;10.000000,10.000000,10.000000;;, - 71;3;10.000000,10.000000,10.000000;;, - 72;3;10.000000,10.000000,10.000000;;, - 73;3;10.000000,10.000000,10.000000;;, - 74;3;10.000000,10.000000,10.000000;;, - 75;3;10.000000,10.000000,10.000000;;, - 76;3;10.000000,10.000000,10.000000;;, - 77;3;10.000000,10.000000,10.000000;;, - 78;3;10.000000,10.000000,10.000000;;, - 79;3;10.000000,10.000000,10.000000;;, - 80;3;10.000000,10.000000,10.000000;;; - } - AnimationKey { // Position - 2; - 81; - 0;3; 0.000000, 0.000000, 0.000000;;, - 1;3; 0.000000, 0.000000, 0.000000;;, - 2;3; 0.000000, 0.000000, 0.000000;;, - 3;3; 0.000000, 0.000000, 0.000000;;, - 4;3; 0.000000, 0.000000, 0.000000;;, - 5;3; 0.000000, 0.000000, 0.000000;;, - 6;3; 0.000000, 0.000000, 0.000000;;, - 7;3; 0.000000, 0.000000, 0.000000;;, - 8;3; 0.000000, 0.000000, 0.000000;;, - 9;3; 0.000000, 0.000000, 0.000000;;, - 10;3; 0.000000, 0.000000, 0.000000;;, - 11;3; 0.000000, 0.000000, 0.000000;;, - 12;3; 0.000000, 0.000000, 0.000000;;, - 13;3; 0.000000, 0.000000, 0.000000;;, - 14;3; 0.000000, 0.000000, 0.000000;;, - 15;3; 0.000000, 0.000000, 0.000000;;, - 16;3; 0.000000, 0.000000, 0.000000;;, - 17;3; 0.000000, 0.000000, 0.000000;;, - 18;3; 0.000000, 0.000000, 0.000000;;, - 19;3; 0.000000, 0.000000, 0.000000;;, - 20;3; 0.000000, 0.000000, 0.000000;;, - 21;3; 0.000000, 0.000000, 0.000000;;, - 22;3; 0.000000, 0.000000, 0.000000;;, - 23;3; 0.000000, 0.000000, 0.000000;;, - 24;3; 0.000000, 0.000000, 0.000000;;, - 25;3; 0.000000, 0.000000, 0.000000;;, - 26;3; 0.000000, 0.000000, 0.000000;;, - 27;3; 0.000000, 0.000000, 0.000000;;, - 28;3; 0.000000, 0.000000, 0.000000;;, - 29;3; 0.000000, 0.000000, 0.000000;;, - 30;3; 0.000000, 0.000000, 0.000000;;, - 31;3; 0.000000, 0.000000, 0.000000;;, - 32;3; 0.000000, 0.000000, 0.000000;;, - 33;3; 0.000000, 0.000000, 0.000000;;, - 34;3; 0.000000, 0.000000, 0.000000;;, - 35;3; 0.000000, 0.000000, 0.000000;;, - 36;3; 0.000000, 0.000000, 0.000000;;, - 37;3; 0.000000, 0.000000, 0.000000;;, - 38;3; 0.000000, 0.000000, 0.000000;;, - 39;3; 0.000000, 0.000000, 0.000000;;, - 40;3; 0.000000, 0.000000, 0.000000;;, - 41;3; 0.000000, 0.000000, 0.000000;;, - 42;3; 0.000000, 0.000000, 0.000000;;, - 43;3; 0.000000, 0.000000, 0.000000;;, - 44;3; 0.000000, 0.000000, 0.000000;;, - 45;3; 0.000000, 0.000000, 0.000000;;, - 46;3; 0.000000, 0.000000, 0.000000;;, - 47;3; 0.000000, 0.000000, 0.000000;;, - 48;3; 0.000000, 0.000000, 0.000000;;, - 49;3; 0.000000, 0.000000, 0.000000;;, - 50;3; 0.000000, 0.000000, 0.000000;;, - 51;3; 0.000000, 0.000000, 0.000000;;, - 52;3; 0.000000, 0.000000, 0.000000;;, - 53;3; 0.000000, 0.000000, 0.000000;;, - 54;3; 0.000000, 0.000000, 0.000000;;, - 55;3; 0.000000, 0.000000, 0.000000;;, - 56;3; 0.000000, 0.000000, 0.000000;;, - 57;3; 0.000000, 0.000000, 0.000000;;, - 58;3; 0.000000, 0.000000, 0.000000;;, - 59;3; 0.000000, 0.000000, 0.000000;;, - 60;3; 0.000000, 0.000000, 0.000000;;, - 61;3; 0.000000, 0.000000, 0.000000;;, - 62;3; 0.000000, 0.000000, 0.000000;;, - 63;3; 0.000000, 0.000000, 0.000000;;, - 64;3; 0.000000, 0.000000, 0.000000;;, - 65;3; 0.000000, 0.000000, 0.000000;;, - 66;3; 0.000000, 0.000000, 0.000000;;, - 67;3; 0.000000, 0.000000, 0.000000;;, - 68;3; 0.000000, 0.000000, 0.000000;;, - 69;3; 0.000000, 0.000000, 0.000000;;, - 70;3; 0.000000, 0.000000, 0.000000;;, - 71;3; 0.000000, 0.000000, 0.000000;;, - 72;3; 0.000000, 0.000000, 0.000000;;, - 73;3; 0.000000, 0.000000, 0.000000;;, - 74;3; 0.000000, 0.000000, 0.000000;;, - 75;3; 0.000000, 0.000000, 0.000000;;, - 76;3; 0.000000, 0.000000, 0.000000;;, - 77;3; 0.000000, 0.000000, 0.000000;;, - 78;3; 0.000000, 0.000000, 0.000000;;, - 79;3; 0.000000, 0.000000, 0.000000;;, - 80;3; 0.000000, 0.000000, 0.000000;;; - } - } - Animation { - {mob_armature_body} - AnimationKey { // Rotation - 0; - 81; - 0;4;-0.707107, 0.707107, 0.000000, 0.000000;;, - 1;4;-0.707107, 0.707107, 0.000000, 0.000000;;, - 2;4;-0.707107, 0.707107, 0.000000, 0.000000;;, - 3;4;-0.707107, 0.707107, 0.000000, 0.000000;;, - 4;4;-0.707107, 0.707107, 0.000000, 0.000000;;, - 5;4;-0.707107, 0.707107, 0.000000, 0.000000;;, - 6;4;-0.707107, 0.707107, 0.000000, 0.000000;;, - 7;4;-0.707107, 0.707107, 0.000000, 0.000000;;, - 8;4;-0.707107, 0.707107, 0.000000, 0.000000;;, - 9;4;-0.707107, 0.707107, 0.000000, 0.000000;;, - 10;4;-0.707107, 0.707107, 0.000000, 0.000000;;, - 11;4;-0.707107, 0.707107, 0.000000, 0.000000;;, - 12;4;-0.707107, 0.707107, 0.000000, 0.000000;;, - 13;4;-0.707107, 0.707107, 0.000000, 0.000000;;, - 14;4;-0.707107, 0.707107, 0.000000, 0.000000;;, - 15;4;-0.707107, 0.707107, 0.000000, 0.000000;;, - 16;4;-0.707107, 0.707107, 0.000000, 0.000000;;, - 17;4;-0.707107, 0.707107, 0.000000, 0.000000;;, - 18;4;-0.707107, 0.707107, 0.000000, 0.000000;;, - 19;4;-0.707107, 0.707107, 0.000000, 0.000000;;, - 20;4;-0.707107, 0.707107, 0.000000, 0.000000;;, - 21;4;-0.707107, 0.707107, 0.000000, 0.000000;;, - 22;4;-0.707107, 0.707107, 0.000000, 0.000000;;, - 23;4;-0.707107, 0.707107, 0.000000, 0.000000;;, - 24;4;-0.707107, 0.707107, 0.000000, 0.000000;;, - 25;4;-0.707107, 0.707107, 0.000000, 0.000000;;, - 26;4;-0.707107, 0.707107, 0.000000, 0.000000;;, - 27;4;-0.707107, 0.707107, 0.000000, 0.000000;;, - 28;4;-0.707107, 0.707107, 0.000000, 0.000000;;, - 29;4;-0.707107, 0.707107, 0.000000, 0.000000;;, - 30;4;-0.707107, 0.707107, 0.000000, 0.000000;;, - 31;4;-0.707107, 0.707107, 0.000000, 0.000000;;, - 32;4;-0.707107, 0.707107, 0.000000, 0.000000;;, - 33;4;-0.707107, 0.707107, 0.000000, 0.000000;;, - 34;4;-0.707107, 0.707107, 0.000000, 0.000000;;, - 35;4;-0.707107, 0.707107, 0.000000, 0.000000;;, - 36;4;-0.707107, 0.707107, 0.000000, 0.000000;;, - 37;4;-0.707107, 0.707107, 0.000000, 0.000000;;, - 38;4;-0.707107, 0.707107, 0.000000, 0.000000;;, - 39;4;-0.707107, 0.707107, 0.000000, 0.000000;;, - 40;4;-0.707107, 0.707107, 0.000000, 0.000000;;, - 41;4;-0.707107, 0.707107, 0.000000, 0.000000;;, - 42;4;-0.707107, 0.707107, 0.000000, 0.000000;;, - 43;4;-0.707107, 0.707107, 0.000000, 0.000000;;, - 44;4;-0.707107, 0.707107, 0.000000, 0.000000;;, - 45;4;-0.707107, 0.707107, 0.000000, 0.000000;;, - 46;4;-0.707107, 0.707107, 0.000000, 0.000000;;, - 47;4;-0.707107, 0.707107, 0.000000, 0.000000;;, - 48;4;-0.707107, 0.707107, 0.000000, 0.000000;;, - 49;4;-0.707107, 0.707107, 0.000000, 0.000000;;, - 50;4;-0.707107, 0.707107, 0.000000, 0.000000;;, - 51;4;-0.707107, 0.707107, 0.000000, 0.000000;;, - 52;4;-0.707107, 0.707107, 0.000000, 0.000000;;, - 53;4;-0.707107, 0.707107, 0.000000, 0.000000;;, - 54;4;-0.707107, 0.707107, 0.000000, 0.000000;;, - 55;4;-0.707107, 0.707107, 0.000000, 0.000000;;, - 56;4;-0.707107, 0.707107, 0.000000, 0.000000;;, - 57;4;-0.707107, 0.707107, 0.000000, 0.000000;;, - 58;4;-0.707107, 0.707107, 0.000000, 0.000000;;, - 59;4;-0.707107, 0.707107, 0.000000, 0.000000;;, - 60;4;-0.707107, 0.707107, 0.000000, 0.000000;;, - 61;4;-0.707107, 0.707107, 0.000000, 0.000000;;, - 62;4;-0.707107, 0.707107, 0.000000, 0.000000;;, - 63;4;-0.707107, 0.707107, 0.000000, 0.000000;;, - 64;4;-0.707107, 0.707107, 0.000000, 0.000000;;, - 65;4;-0.707107, 0.707107, 0.000000, 0.000000;;, - 66;4;-0.707107, 0.707107, 0.000000, 0.000000;;, - 67;4;-0.707107, 0.707107, 0.000000, 0.000000;;, - 68;4;-0.707107, 0.707107, 0.000000, 0.000000;;, - 69;4;-0.707107, 0.707107, 0.000000, 0.000000;;, - 70;4;-0.707107, 0.707107, 0.000000, 0.000000;;, - 71;4;-0.707107, 0.707107, 0.000000, 0.000000;;, - 72;4;-0.707107, 0.707107, 0.000000, 0.000000;;, - 73;4;-0.707107, 0.707107, 0.000000, 0.000000;;, - 74;4;-0.707107, 0.707107, 0.000000, 0.000000;;, - 75;4;-0.707107, 0.707107, 0.000000, 0.000000;;, - 76;4;-0.707107, 0.707107, 0.000000, 0.000000;;, - 77;4;-0.707107, 0.707107, 0.000000, 0.000000;;, - 78;4;-0.707107, 0.707107, 0.000000, 0.000000;;, - 79;4;-0.707107, 0.707107, 0.000000, 0.000000;;, - 80;4;-0.707107, 0.707107, 0.000000, 0.000000;;; - } - AnimationKey { // Scale - 1; - 81; - 0;3; 1.000000, 1.000000, 1.000000;;, - 1;3; 1.000000, 1.000000, 1.000000;;, - 2;3; 1.000000, 1.000000, 1.000000;;, - 3;3; 1.000000, 1.000000, 1.000000;;, - 4;3; 1.000000, 1.000000, 1.000000;;, - 5;3; 1.000000, 1.000000, 1.000000;;, - 6;3; 1.000000, 1.000000, 1.000000;;, - 7;3; 1.000000, 1.000000, 1.000000;;, - 8;3; 1.000000, 1.000000, 1.000000;;, - 9;3; 1.000000, 1.000000, 1.000000;;, - 10;3; 1.000000, 1.000000, 1.000000;;, - 11;3; 1.000000, 1.000000, 1.000000;;, - 12;3; 1.000000, 1.000000, 1.000000;;, - 13;3; 1.000000, 1.000000, 1.000000;;, - 14;3; 1.000000, 1.000000, 1.000000;;, - 15;3; 1.000000, 1.000000, 1.000000;;, - 16;3; 1.000000, 1.000000, 1.000000;;, - 17;3; 1.000000, 1.000000, 1.000000;;, - 18;3; 1.000000, 1.000000, 1.000000;;, - 19;3; 1.000000, 1.000000, 1.000000;;, - 20;3; 1.000000, 1.000000, 1.000000;;, - 21;3; 1.000000, 1.000000, 1.000000;;, - 22;3; 1.000000, 1.000000, 1.000000;;, - 23;3; 1.000000, 1.000000, 1.000000;;, - 24;3; 1.000000, 1.000000, 1.000000;;, - 25;3; 1.000000, 1.000000, 1.000000;;, - 26;3; 1.000000, 1.000000, 1.000000;;, - 27;3; 1.000000, 1.000000, 1.000000;;, - 28;3; 1.000000, 1.000000, 1.000000;;, - 29;3; 1.000000, 1.000000, 1.000000;;, - 30;3; 1.000000, 1.000000, 1.000000;;, - 31;3; 1.000000, 1.000000, 1.000000;;, - 32;3; 1.000000, 1.000000, 1.000000;;, - 33;3; 1.000000, 1.000000, 1.000000;;, - 34;3; 1.000000, 1.000000, 1.000000;;, - 35;3; 1.000000, 1.000000, 1.000000;;, - 36;3; 1.000000, 1.000000, 1.000000;;, - 37;3; 1.000000, 1.000000, 1.000000;;, - 38;3; 1.000000, 1.000000, 1.000000;;, - 39;3; 1.000000, 1.000000, 1.000000;;, - 40;3; 1.000000, 1.000000, 1.000000;;, - 41;3; 1.000000, 1.000000, 1.000000;;, - 42;3; 1.000000, 1.000000, 1.000000;;, - 43;3; 1.000000, 1.000000, 1.000000;;, - 44;3; 1.000000, 1.000000, 1.000000;;, - 45;3; 1.000000, 1.000000, 1.000000;;, - 46;3; 1.000000, 1.000000, 1.000000;;, - 47;3; 1.000000, 1.000000, 1.000000;;, - 48;3; 1.000000, 1.000000, 1.000000;;, - 49;3; 1.000000, 1.000000, 1.000000;;, - 50;3; 1.000000, 1.000000, 1.000000;;, - 51;3; 1.000000, 1.000000, 1.000000;;, - 52;3; 1.000000, 1.000000, 1.000000;;, - 53;3; 1.000000, 1.000000, 1.000000;;, - 54;3; 1.000000, 1.000000, 1.000000;;, - 55;3; 1.000000, 1.000000, 1.000000;;, - 56;3; 1.000000, 1.000000, 1.000000;;, - 57;3; 1.000000, 1.000000, 1.000000;;, - 58;3; 1.000000, 1.000000, 1.000000;;, - 59;3; 1.000000, 1.000000, 1.000000;;, - 60;3; 1.000000, 1.000000, 1.000000;;, - 61;3; 1.000000, 1.000000, 1.000000;;, - 62;3; 1.000000, 1.000000, 1.000000;;, - 63;3; 1.000000, 1.000000, 1.000000;;, - 64;3; 1.000000, 1.000000, 1.000000;;, - 65;3; 1.000000, 1.000000, 1.000000;;, - 66;3; 1.000000, 1.000000, 1.000000;;, - 67;3; 1.000000, 1.000000, 1.000000;;, - 68;3; 1.000000, 1.000000, 1.000000;;, - 69;3; 1.000000, 1.000000, 1.000000;;, - 70;3; 1.000000, 1.000000, 1.000000;;, - 71;3; 1.000000, 1.000000, 1.000000;;, - 72;3; 1.000000, 1.000000, 1.000000;;, - 73;3; 1.000000, 1.000000, 1.000000;;, - 74;3; 1.000000, 1.000000, 1.000000;;, - 75;3; 1.000000, 1.000000, 1.000000;;, - 76;3; 1.000000, 1.000000, 1.000000;;, - 77;3; 1.000000, 1.000000, 1.000000;;, - 78;3; 1.000000, 1.000000, 1.000000;;, - 79;3; 1.000000, 1.000000, 1.000000;;, - 80;3; 1.000000, 1.000000, 1.000000;;; - } - AnimationKey { // Position - 2; - 81; - 0;3; 0.000000, 0.000000, 0.000000;;, - 1;3; 0.000000, 0.000000, 0.000000;;, - 2;3; 0.000000, 0.000000, 0.000000;;, - 3;3; 0.000000, 0.000000, 0.000000;;, - 4;3; 0.000000, 0.000000, 0.000000;;, - 5;3; 0.000000, 0.000000, 0.000000;;, - 6;3; 0.000000, 0.000000, 0.000000;;, - 7;3; 0.000000, 0.000000, 0.000000;;, - 8;3; 0.000000, 0.000000, 0.000000;;, - 9;3; 0.000000, 0.000000, 0.000000;;, - 10;3; 0.000000, 0.000000, 0.000000;;, - 11;3; 0.000000, 0.000000, 0.000000;;, - 12;3; 0.000000, 0.000000, 0.000000;;, - 13;3; 0.000000, 0.000000, 0.000000;;, - 14;3; 0.000000, 0.000000, 0.000000;;, - 15;3; 0.000000, 0.000000, 0.000000;;, - 16;3; 0.000000, 0.000000, 0.000000;;, - 17;3; 0.000000, 0.000000, 0.000000;;, - 18;3; 0.000000, 0.000000, 0.000000;;, - 19;3; 0.000000, 0.000000, 0.000000;;, - 20;3; 0.000000, 0.000000, 0.000000;;, - 21;3; 0.000000, 0.000000, 0.000000;;, - 22;3; 0.000000, 0.000000, 0.000000;;, - 23;3; 0.000000, 0.000000, 0.000000;;, - 24;3; 0.000000, 0.000000, 0.000000;;, - 25;3; 0.000000, 0.000000, 0.000000;;, - 26;3; 0.000000, 0.000000, 0.000000;;, - 27;3; 0.000000, 0.000000, 0.000000;;, - 28;3; 0.000000, 0.000000, 0.000000;;, - 29;3; 0.000000, 0.000000, 0.000000;;, - 30;3; 0.000000, 0.000000, 0.000000;;, - 31;3; 0.000000, 0.000000, 0.000000;;, - 32;3; 0.000000, 0.000000, 0.000000;;, - 33;3; 0.000000, 0.000000, 0.000000;;, - 34;3; 0.000000, 0.000000, 0.000000;;, - 35;3; 0.000000, 0.000000, 0.000000;;, - 36;3; 0.000000, 0.000000, 0.000000;;, - 37;3; 0.000000, 0.000000, 0.000000;;, - 38;3; 0.000000, 0.000000, 0.000000;;, - 39;3; 0.000000, 0.000000, 0.000000;;, - 40;3; 0.000000, 0.000000, 0.000000;;, - 41;3; 0.000000, 0.000000, 0.000000;;, - 42;3; 0.000000, 0.000000, 0.000000;;, - 43;3; 0.000000, 0.000000, 0.000000;;, - 44;3; 0.000000, 0.000000, 0.000000;;, - 45;3; 0.000000, 0.000000, 0.000000;;, - 46;3; 0.000000, 0.000000, 0.000000;;, - 47;3; 0.000000, 0.000000, 0.000000;;, - 48;3; 0.000000, 0.000000, 0.000000;;, - 49;3; 0.000000, 0.000000, 0.000000;;, - 50;3; 0.000000, 0.000000, 0.000000;;, - 51;3; 0.000000, 0.000000, 0.000000;;, - 52;3; 0.000000, 0.000000, 0.000000;;, - 53;3; 0.000000, 0.000000, 0.000000;;, - 54;3; 0.000000, 0.000000, 0.000000;;, - 55;3; 0.000000, 0.000000, 0.000000;;, - 56;3; 0.000000, 0.000000, 0.000000;;, - 57;3; 0.000000, 0.000000, 0.000000;;, - 58;3; 0.000000, 0.000000, 0.000000;;, - 59;3; 0.000000, 0.000000, 0.000000;;, - 60;3; 0.000000, 0.000000, 0.000000;;, - 61;3; 0.000000, 0.000000, 0.000000;;, - 62;3; 0.000000, 0.000000, 0.000000;;, - 63;3; 0.000000, 0.000000, 0.000000;;, - 64;3; 0.000000, 0.000000, 0.000000;;, - 65;3; 0.000000, 0.000000, 0.000000;;, - 66;3; 0.000000, 0.000000, 0.000000;;, - 67;3; 0.000000, 0.000000, 0.000000;;, - 68;3; 0.000000, 0.000000, 0.000000;;, - 69;3; 0.000000, 0.000000, 0.000000;;, - 70;3; 0.000000, 0.000000, 0.000000;;, - 71;3; 0.000000, 0.000000, 0.000000;;, - 72;3; 0.000000, 0.000000, 0.000000;;, - 73;3; 0.000000, 0.000000, 0.000000;;, - 74;3; 0.000000, 0.000000, 0.000000;;, - 75;3; 0.000000, 0.000000, 0.000000;;, - 76;3; 0.000000, 0.000000, 0.000000;;, - 77;3; 0.000000, 0.000000, 0.000000;;, - 78;3; 0.000000, 0.000000, 0.000000;;, - 79;3; 0.000000, 0.000000, 0.000000;;, - 80;3; 0.000000, 0.000000, 0.000000;;; - } - } - Animation { - {mob_armature_head} - AnimationKey { // Rotation - 0; - 81; - 0;4;-1.000000, 0.000000, 0.000000, 0.000000;;, - 1;4;-1.000000, 0.000000, 0.000000, 0.000000;;, - 2;4;-1.000000, 0.000000, 0.000000, 0.000000;;, - 3;4;-1.000000, 0.000000, 0.000000, 0.000000;;, - 4;4;-1.000000, 0.000000, 0.000000, 0.000000;;, - 5;4;-1.000000, 0.000000, 0.000000, 0.000000;;, - 6;4;-1.000000, 0.000000, 0.000000, 0.000000;;, - 7;4;-1.000000, 0.000000, 0.000000, 0.000000;;, - 8;4;-1.000000, 0.000000, 0.000000, 0.000000;;, - 9;4;-1.000000, 0.000000, 0.000000, 0.000000;;, - 10;4;-1.000000, 0.000000, 0.000000, 0.000000;;, - 11;4;-0.999663,-0.003850,-0.000000, 0.000000;;, - 12;4;-0.998650,-0.015436,-0.000000, 0.000000;;, - 13;4;-0.997001,-0.034274,-0.000000, 0.000000;;, - 14;4;-0.994846,-0.058913,-0.000000, 0.000000;;, - 15;4;-0.992404,-0.086825,-0.000000, 0.000000;;, - 16;4;-0.989962,-0.114736,-0.000000, 0.000000;;, - 17;4;-0.987806,-0.139375,-0.000000, 0.000000;;, - 18;4;-0.986158,-0.158212,-0.000000, 0.000000;;, - 19;4;-0.985145,-0.169798,-0.000000, 0.000000;;, - 20;4;-0.984808,-0.173648,-0.000000, 0.000000;;, - 21;4;-0.984907,-0.173618,-0.000000, 0.000000;;, - 22;4;-0.985214,-0.173381,-0.000000, 0.000000;;, - 23;4;-0.985730,-0.172650,-0.000000, 0.000000;;, - 24;4;-0.986438,-0.171068,-0.000000, 0.000000;;, - 25;4;-0.987293,-0.168258,-0.000000, 0.000000;;, - 26;4;-0.988226,-0.163915,-0.000000, 0.000000;;, - 27;4;-0.989163,-0.157887,-0.000000, 0.000000;;, - 28;4;-0.990038,-0.150198,-0.000000, 0.000000;;, - 29;4;-0.990807,-0.141005,-0.000000, 0.000000;;, - 30;4;-0.991445,-0.130526,-0.000000, 0.000000;;, - 31;4;-0.992041,-0.116177,-0.000000, 0.000000;;, - 32;4;-0.992683,-0.095337,-0.000000, 0.000000;;, - 33;4;-0.993354,-0.068711,-0.000000, 0.000000;;, - 34;4;-0.994023,-0.037915,-0.000000, 0.000000;;, - 35;4;-0.994653,-0.005514,-0.000000, 0.000000;;, - 36;4;-0.995204, 0.025354,-0.000000, 0.000000;;, - 37;4;-0.995644, 0.051703,-0.000000, 0.000000;;, - 38;4;-0.995956, 0.071371,-0.000000, 0.000000;;, - 39;4;-0.996137, 0.083256, 0.000000, 0.000000;;, - 40;4;-0.996195, 0.087156, 0.000000, 0.000000;;, - 41;4;-0.995858, 0.087126, 0.007718, 0.000675;;, - 42;4;-0.994909, 0.087043, 0.029456, 0.002577;;, - 43;4;-0.993690, 0.086937, 0.057368, 0.005019;;, - 44;4;-0.992741, 0.086854, 0.079106, 0.006921;;, - 45;4;-0.992404, 0.086824, 0.086824, 0.007596;;, - 46;4;-0.992404, 0.086824, 0.071388, 0.006246;;, - 47;4;-0.992404, 0.086824, 0.027911, 0.002442;;, - 48;4;-0.992404, 0.086824,-0.027911,-0.002442;;, - 49;4;-0.992404, 0.086824,-0.071388,-0.006246;;, - 50;4;-0.992404, 0.086824,-0.086824,-0.007596;;, - 51;4;-0.992618, 0.086854,-0.079106,-0.006921;;, - 52;4;-0.993276, 0.086937,-0.057368,-0.005019;;, - 53;4;-0.994264, 0.087043,-0.029456,-0.002577;;, - 54;4;-0.995313, 0.087126,-0.007718,-0.000675;;, - 55;4;-0.996195, 0.087156, 0.000000,-0.000000;;, - 56;4;-0.997078, 0.079408, 0.000000,-0.000000;;, - 57;4;-0.998131, 0.057587, 0.000000,-0.000000;;, - 58;4;-0.999123, 0.029569, 0.000000,-0.000000;;, - 59;4;-0.999784, 0.007747, 0.000000,-0.000000;;, - 60;4;-1.000000, 0.000000, 0.000000, 0.000000;;, - 61;4;-1.000000, 0.000000, 0.000000, 0.000000;;, - 62;4;-0.999915, 0.000000, 0.003877, 0.000000;;, - 63;4;-0.999677, 0.000000, 0.014798, 0.000000;;, - 64;4;-0.999371, 0.000000, 0.028821, 0.000000;;, - 65;4;-0.999133, 0.000000, 0.039742, 0.000000;;, - 66;4;-0.999048, 0.000000, 0.043619, 0.000000;;, - 67;4;-0.999048, 0.000000, 0.035865, 0.000000;;, - 68;4;-0.999048, 0.000000, 0.014023, 0.000000;;, - 69;4;-0.999048, 0.000000,-0.014023, 0.000000;;, - 70;4;-0.999048, 0.000000,-0.035865, 0.000000;;, - 71;4;-0.999048, 0.000000,-0.043619, 0.000000;;, - 72;4;-0.999133, 0.000000,-0.039742, 0.000000;;, - 73;4;-0.999371, 0.000000,-0.028821, 0.000000;;, - 74;4;-0.999677, 0.000000,-0.014799, 0.000000;;, - 75;4;-0.999915, 0.000000,-0.003877, 0.000000;;, - 76;4;-1.000000, 0.000000, 0.000000, 0.000000;;, - 77;4;-1.000000, 0.000000, 0.000000, 0.000000;;, - 78;4;-1.000000, 0.000000, 0.000000, 0.000000;;, - 79;4;-1.000000, 0.000000, 0.000000, 0.000000;;, - 80;4;-1.000000, 0.000000, 0.000000, 0.000000;;; - } - AnimationKey { // Scale - 1; - 81; - 0;3; 1.000000, 1.000000, 1.000000;;, - 1;3; 1.000000, 1.000000, 1.000000;;, - 2;3; 1.000000, 1.000000, 1.000000;;, - 3;3; 1.000000, 1.000000, 1.000000;;, - 4;3; 1.000000, 1.000000, 1.000000;;, - 5;3; 1.000000, 1.000000, 1.000000;;, - 6;3; 1.000000, 1.000000, 1.000000;;, - 7;3; 1.000000, 1.000000, 1.000000;;, - 8;3; 1.000000, 1.000000, 1.000000;;, - 9;3; 1.000000, 1.000000, 1.000000;;, - 10;3; 1.000000, 1.000000, 1.000000;;, - 11;3; 1.000000, 1.000000, 1.000000;;, - 12;3; 1.000000, 1.000000, 1.000000;;, - 13;3; 1.000000, 1.000000, 1.000000;;, - 14;3; 1.000000, 1.000000, 1.000000;;, - 15;3; 1.000000, 1.000000, 1.000000;;, - 16;3; 1.000000, 1.000000, 1.000000;;, - 17;3; 1.000000, 1.000000, 1.000000;;, - 18;3; 1.000000, 1.000000, 1.000000;;, - 19;3; 1.000000, 1.000000, 1.000000;;, - 20;3; 1.000000, 1.000000, 1.000000;;, - 21;3; 1.000000, 1.000000, 1.000000;;, - 22;3; 1.000000, 1.000000, 1.000000;;, - 23;3; 1.000000, 1.000000, 1.000000;;, - 24;3; 1.000000, 1.000000, 1.000000;;, - 25;3; 1.000000, 1.000000, 1.000000;;, - 26;3; 1.000000, 1.000000, 1.000000;;, - 27;3; 1.000000, 1.000000, 1.000000;;, - 28;3; 1.000000, 1.000000, 1.000000;;, - 29;3; 1.000000, 1.000000, 1.000000;;, - 30;3; 1.000000, 1.000000, 1.000000;;, - 31;3; 1.000000, 1.000000, 1.000000;;, - 32;3; 1.000000, 1.000000, 1.000000;;, - 33;3; 1.000000, 1.000000, 1.000000;;, - 34;3; 1.000000, 1.000000, 1.000000;;, - 35;3; 1.000000, 1.000000, 1.000000;;, - 36;3; 1.000000, 1.000000, 1.000000;;, - 37;3; 1.000000, 1.000000, 1.000000;;, - 38;3; 1.000000, 1.000000, 1.000000;;, - 39;3; 1.000000, 1.000000, 1.000000;;, - 40;3; 1.000000, 1.000000, 1.000000;;, - 41;3; 1.000000, 1.000000, 1.000000;;, - 42;3; 1.000000, 1.000000, 1.000000;;, - 43;3; 1.000000, 1.000000, 1.000000;;, - 44;3; 1.000000, 1.000000, 1.000000;;, - 45;3; 1.000000, 1.000000, 1.000000;;, - 46;3; 1.000000, 1.000000, 1.000000;;, - 47;3; 1.000000, 1.000000, 1.000000;;, - 48;3; 1.000000, 1.000000, 1.000000;;, - 49;3; 1.000000, 1.000000, 1.000000;;, - 50;3; 1.000000, 1.000000, 1.000000;;, - 51;3; 1.000000, 1.000000, 1.000000;;, - 52;3; 1.000000, 1.000000, 1.000000;;, - 53;3; 1.000000, 1.000000, 1.000000;;, - 54;3; 1.000000, 1.000000, 1.000000;;, - 55;3; 1.000000, 1.000000, 1.000000;;, - 56;3; 1.000000, 1.000000, 1.000000;;, - 57;3; 1.000000, 1.000000, 1.000000;;, - 58;3; 1.000000, 1.000000, 1.000000;;, - 59;3; 1.000000, 1.000000, 1.000000;;, - 60;3; 1.000000, 1.000000, 1.000000;;, - 61;3; 1.000000, 1.000000, 1.000000;;, - 62;3; 1.000000, 1.000000, 1.000000;;, - 63;3; 1.000000, 1.000000, 1.000000;;, - 64;3; 1.000000, 1.000000, 1.000000;;, - 65;3; 1.000000, 1.000000, 1.000000;;, - 66;3; 1.000000, 1.000000, 1.000000;;, - 67;3; 1.000000, 1.000000, 1.000000;;, - 68;3; 1.000000, 1.000000, 1.000000;;, - 69;3; 1.000000, 1.000000, 1.000000;;, - 70;3; 1.000000, 1.000000, 1.000000;;, - 71;3; 1.000000, 1.000000, 1.000000;;, - 72;3; 1.000000, 1.000000, 1.000000;;, - 73;3; 1.000000, 1.000000, 1.000000;;, - 74;3; 1.000000, 1.000000, 1.000000;;, - 75;3; 1.000000, 1.000000, 1.000000;;, - 76;3; 1.000000, 1.000000, 1.000000;;, - 77;3; 1.000000, 1.000000, 1.000000;;, - 78;3; 1.000000, 1.000000, 1.000000;;, - 79;3; 1.000000, 1.000000, 1.000000;;, - 80;3; 1.000000, 1.000000, 1.000000;;; - } - AnimationKey { // Position - 2; - 81; - 0;3; 0.000000, 0.500000, 0.000000;;, - 1;3; 0.000000, 0.500000, 0.000000;;, - 2;3; 0.000000, 0.500000, 0.000000;;, - 3;3; 0.000000, 0.500000, 0.000000;;, - 4;3; 0.000000, 0.500000, 0.000000;;, - 5;3; 0.000000, 0.500000, 0.000000;;, - 6;3; 0.000000, 0.500000, 0.000000;;, - 7;3; 0.000000, 0.500000, 0.000000;;, - 8;3; 0.000000, 0.500000, 0.000000;;, - 9;3; 0.000000, 0.500000, 0.000000;;, - 10;3; 0.000000, 0.500000, 0.000000;;, - 11;3; 0.000000, 0.500000, 0.000000;;, - 12;3; 0.000000, 0.500000, 0.000000;;, - 13;3; 0.000000, 0.500000, 0.000000;;, - 14;3; 0.000000, 0.500000, 0.000000;;, - 15;3; 0.000000, 0.500000, 0.000000;;, - 16;3; 0.000000, 0.500000, 0.000000;;, - 17;3; 0.000000, 0.500000, 0.000000;;, - 18;3; 0.000000, 0.500000, 0.000000;;, - 19;3; 0.000000, 0.500000, 0.000000;;, - 20;3; 0.000000, 0.500000, 0.000000;;, - 21;3; 0.000000, 0.500000, 0.000000;;, - 22;3; 0.000000, 0.500000, 0.000000;;, - 23;3; 0.000000, 0.500000, 0.000000;;, - 24;3; 0.000000, 0.500000, 0.000000;;, - 25;3; 0.000000, 0.500000, 0.000000;;, - 26;3; 0.000000, 0.500000, 0.000000;;, - 27;3; 0.000000, 0.500000, 0.000000;;, - 28;3; 0.000000, 0.500000, 0.000000;;, - 29;3; 0.000000, 0.500000, 0.000000;;, - 30;3; 0.000000, 0.500000, 0.000000;;, - 31;3; 0.000000, 0.500000, 0.000000;;, - 32;3; 0.000000, 0.500000, 0.000000;;, - 33;3; 0.000000, 0.500000, 0.000000;;, - 34;3; 0.000000, 0.500000, 0.000000;;, - 35;3; 0.000000, 0.500000, 0.000000;;, - 36;3; 0.000000, 0.500000, 0.000000;;, - 37;3; 0.000000, 0.500000, 0.000000;;, - 38;3; 0.000000, 0.500000, 0.000000;;, - 39;3; 0.000000, 0.500000, 0.000000;;, - 40;3; 0.000000, 0.500000, 0.000000;;, - 41;3; 0.000000, 0.500000, 0.000000;;, - 42;3; 0.000000, 0.500000, 0.000000;;, - 43;3; 0.000000, 0.500000, 0.000000;;, - 44;3; 0.000000, 0.500000, 0.000000;;, - 45;3; 0.000000, 0.500000, 0.000000;;, - 46;3; 0.000000, 0.500000, 0.000000;;, - 47;3; 0.000000, 0.500000, 0.000000;;, - 48;3; 0.000000, 0.500000, 0.000000;;, - 49;3; 0.000000, 0.500000, 0.000000;;, - 50;3; 0.000000, 0.500000, 0.000000;;, - 51;3; 0.000000, 0.500000, 0.000000;;, - 52;3; 0.000000, 0.500000, 0.000000;;, - 53;3; 0.000000, 0.500000, 0.000000;;, - 54;3; 0.000000, 0.500000, 0.000000;;, - 55;3; 0.000000, 0.500000, 0.000000;;, - 56;3; 0.000000, 0.500000, 0.000000;;, - 57;3; 0.000000, 0.500000, 0.000000;;, - 58;3; 0.000000, 0.500000, 0.000000;;, - 59;3; 0.000000, 0.500000, 0.000000;;, - 60;3; 0.000000, 0.500000, 0.000000;;, - 61;3; 0.000000, 0.500000, 0.000000;;, - 62;3; 0.000000, 0.500000, 0.000000;;, - 63;3; 0.000000, 0.500000, 0.000000;;, - 64;3; 0.000000, 0.500000, 0.000000;;, - 65;3; 0.000000, 0.500000, 0.000000;;, - 66;3; 0.000000, 0.500000, 0.000000;;, - 67;3; 0.000000, 0.500000, 0.000000;;, - 68;3; 0.000000, 0.500000, 0.000000;;, - 69;3; 0.000000, 0.500000, 0.000000;;, - 70;3; 0.000000, 0.500000, 0.000000;;, - 71;3; 0.000000, 0.500000, 0.000000;;, - 72;3; 0.000000, 0.500000, 0.000000;;, - 73;3; 0.000000, 0.500000, 0.000000;;, - 74;3; 0.000000, 0.500000, 0.000000;;, - 75;3; 0.000000, 0.500000, 0.000000;;, - 76;3; 0.000000, 0.500000, 0.000000;;, - 77;3; 0.000000, 0.500000, 0.000000;;, - 78;3; 0.000000, 0.500000, 0.000000;;, - 79;3; 0.000000, 0.500000, 0.000000;;, - 80;3; 0.000000, 0.500000, 0.000000;;; - } - } - Animation { - {mob_armature_fl_leg} - AnimationKey { // Rotation - 0; - 81; - 0;4;-0.707107,-0.707107, 0.000000, 0.000000;;, - 1;4;-0.707107,-0.707107, 0.000000, 0.000000;;, - 2;4;-0.707107,-0.707107, 0.000000, 0.000000;;, - 3;4;-0.707107,-0.707107, 0.000000, 0.000000;;, - 4;4;-0.707107,-0.707107, 0.000000, 0.000000;;, - 5;4;-0.707107,-0.707107, 0.000000, 0.000000;;, - 6;4;-0.707107,-0.707107, 0.000000, 0.000000;;, - 7;4;-0.707107,-0.707107, 0.000000, 0.000000;;, - 8;4;-0.707107,-0.707107, 0.000000, 0.000000;;, - 9;4;-0.707107,-0.707107, 0.000000, 0.000000;;, - 10;4;-0.707107,-0.707107, 0.000000, 0.000000;;, - 11;4;-0.707107,-0.707107, 0.000000, 0.000000;;, - 12;4;-0.707107,-0.707107, 0.000000, 0.000000;;, - 13;4;-0.707107,-0.707107, 0.000000, 0.000000;;, - 14;4;-0.707107,-0.707107, 0.000000, 0.000000;;, - 15;4;-0.707107,-0.707107, 0.000000, 0.000000;;, - 16;4;-0.707107,-0.707107, 0.000000, 0.000000;;, - 17;4;-0.707107,-0.707107, 0.000000, 0.000000;;, - 18;4;-0.707107,-0.707107, 0.000000, 0.000000;;, - 19;4;-0.707107,-0.707107, 0.000000, 0.000000;;, - 20;4;-0.707107,-0.707107, 0.000000, 0.000000;;, - 21;4;-0.707107,-0.707107, 0.000000, 0.000000;;, - 22;4;-0.707107,-0.707107, 0.000000, 0.000000;;, - 23;4;-0.707107,-0.707107, 0.000000, 0.000000;;, - 24;4;-0.707107,-0.707107, 0.000000, 0.000000;;, - 25;4;-0.707107,-0.707107, 0.000000, 0.000000;;, - 26;4;-0.707107,-0.707107, 0.000000, 0.000000;;, - 27;4;-0.707107,-0.707107, 0.000000, 0.000000;;, - 28;4;-0.707107,-0.707107, 0.000000, 0.000000;;, - 29;4;-0.707107,-0.707107, 0.000000, 0.000000;;, - 30;4;-0.707107,-0.707107, 0.000000, 0.000000;;, - 31;4;-0.707107,-0.707107, 0.000000, 0.000000;;, - 32;4;-0.707107,-0.707107, 0.000000, 0.000000;;, - 33;4;-0.707107,-0.707107, 0.000000, 0.000000;;, - 34;4;-0.707107,-0.707107, 0.000000, 0.000000;;, - 35;4;-0.707107,-0.707107, 0.000000, 0.000000;;, - 36;4;-0.707107,-0.707107, 0.000000, 0.000000;;, - 37;4;-0.707107,-0.707107, 0.000000, 0.000000;;, - 38;4;-0.707107,-0.707107, 0.000000, 0.000000;;, - 39;4;-0.707107,-0.707107, 0.000000, 0.000000;;, - 40;4;-0.707107,-0.707107, 0.000000, 0.000000;;, - 41;4;-0.707107,-0.707107, 0.000000, 0.000000;;, - 42;4;-0.707107,-0.707107, 0.000000, 0.000000;;, - 43;4;-0.707107,-0.707107, 0.000000, 0.000000;;, - 44;4;-0.707107,-0.707107, 0.000000, 0.000000;;, - 45;4;-0.707107,-0.707107, 0.000000, 0.000000;;, - 46;4;-0.707107,-0.707107, 0.000000, 0.000000;;, - 47;4;-0.707107,-0.707107, 0.000000, 0.000000;;, - 48;4;-0.707107,-0.707107, 0.000000, 0.000000;;, - 49;4;-0.707107,-0.707107, 0.000000, 0.000000;;, - 50;4;-0.707107,-0.707107, 0.000000, 0.000000;;, - 51;4;-0.707107,-0.707107, 0.000000, 0.000000;;, - 52;4;-0.707107,-0.707107, 0.000000, 0.000000;;, - 53;4;-0.707107,-0.707107, 0.000000, 0.000000;;, - 54;4;-0.707107,-0.707107, 0.000000, 0.000000;;, - 55;4;-0.707107,-0.707107, 0.000000, 0.000000;;, - 56;4;-0.707107,-0.707107, 0.000000, 0.000000;;, - 57;4;-0.707107,-0.707107, 0.000000, 0.000000;;, - 58;4;-0.707107,-0.707107, 0.000000, 0.000000;;, - 59;4;-0.707107,-0.707107, 0.000000, 0.000000;;, - 60;4;-0.707107,-0.707107, 0.000000, 0.000000;;, - 61;4;-0.707107,-0.707107, 0.000000, 0.000000;;, - 62;4;-0.701389,-0.712346, 0.000000, 0.000000;;, - 63;4;-0.685285,-0.727103, 0.000000, 0.000000;;, - 64;4;-0.664608,-0.746050, 0.000000, 0.000000;;, - 65;4;-0.648505,-0.760806, 0.000000, 0.000000;;, - 66;4;-0.642788,-0.766044, 0.000000, 0.000000;;, - 67;4;-0.645520,-0.763312, 0.000000, 0.000000;;, - 68;4;-0.653744,-0.755088, 0.000000, 0.000000;;, - 69;4;-0.667115,-0.741717, 0.000000, 0.000000;;, - 70;4;-0.684604,-0.724228, 0.000000, 0.000000;;, - 71;4;-0.704416,-0.704416, 0.000000, 0.000000;;, - 72;4;-0.724228,-0.684604, 0.000000, 0.000000;;, - 73;4;-0.741717,-0.667115, 0.000000, 0.000000;;, - 74;4;-0.755088,-0.653744, 0.000000, 0.000000;;, - 75;4;-0.763312,-0.645520, 0.000000, 0.000000;;, - 76;4;-0.766044,-0.642788, 0.000000, 0.000000;;, - 77;4;-0.763312,-0.645520, 0.000000, 0.000000;;, - 78;4;-0.755089,-0.653743, 0.000000, 0.000000;;, - 79;4;-0.741719,-0.667113, 0.000000, 0.000000;;, - 80;4;-0.724231,-0.684601, 0.000000, 0.000000;;; - } - AnimationKey { // Scale - 1; - 81; - 0;3; 1.000000, 1.000000, 1.000000;;, - 1;3; 1.000000, 1.000000, 1.000000;;, - 2;3; 1.000000, 1.000000, 1.000000;;, - 3;3; 1.000000, 1.000000, 1.000000;;, - 4;3; 1.000000, 1.000000, 1.000000;;, - 5;3; 1.000000, 1.000000, 1.000000;;, - 6;3; 1.000000, 1.000000, 1.000000;;, - 7;3; 1.000000, 1.000000, 1.000000;;, - 8;3; 1.000000, 1.000000, 1.000000;;, - 9;3; 1.000000, 1.000000, 1.000000;;, - 10;3; 1.000000, 1.000000, 1.000000;;, - 11;3; 1.000000, 1.000000, 1.000000;;, - 12;3; 1.000000, 1.000000, 1.000000;;, - 13;3; 1.000000, 1.000000, 1.000000;;, - 14;3; 1.000000, 1.000000, 1.000000;;, - 15;3; 1.000000, 1.000000, 1.000000;;, - 16;3; 1.000000, 1.000000, 1.000000;;, - 17;3; 1.000000, 1.000000, 1.000000;;, - 18;3; 1.000000, 1.000000, 1.000000;;, - 19;3; 1.000000, 1.000000, 1.000000;;, - 20;3; 1.000000, 1.000000, 1.000000;;, - 21;3; 1.000000, 1.000000, 1.000000;;, - 22;3; 1.000000, 1.000000, 1.000000;;, - 23;3; 1.000000, 1.000000, 1.000000;;, - 24;3; 1.000000, 1.000000, 1.000000;;, - 25;3; 1.000000, 1.000000, 1.000000;;, - 26;3; 1.000000, 1.000000, 1.000000;;, - 27;3; 1.000000, 1.000000, 1.000000;;, - 28;3; 1.000000, 1.000000, 1.000000;;, - 29;3; 1.000000, 1.000000, 1.000000;;, - 30;3; 1.000000, 1.000000, 1.000000;;, - 31;3; 1.000000, 1.000000, 1.000000;;, - 32;3; 1.000000, 1.000000, 1.000000;;, - 33;3; 1.000000, 1.000000, 1.000000;;, - 34;3; 1.000000, 1.000000, 1.000000;;, - 35;3; 1.000000, 1.000000, 1.000000;;, - 36;3; 1.000000, 1.000000, 1.000000;;, - 37;3; 1.000000, 1.000000, 1.000000;;, - 38;3; 1.000000, 1.000000, 1.000000;;, - 39;3; 1.000000, 1.000000, 1.000000;;, - 40;3; 1.000000, 1.000000, 1.000000;;, - 41;3; 1.000000, 1.000000, 1.000000;;, - 42;3; 1.000000, 1.000000, 1.000000;;, - 43;3; 1.000000, 1.000000, 1.000000;;, - 44;3; 1.000000, 1.000000, 1.000000;;, - 45;3; 1.000000, 1.000000, 1.000000;;, - 46;3; 1.000000, 1.000000, 1.000000;;, - 47;3; 1.000000, 1.000000, 1.000000;;, - 48;3; 1.000000, 1.000000, 1.000000;;, - 49;3; 1.000000, 1.000000, 1.000000;;, - 50;3; 1.000000, 1.000000, 1.000000;;, - 51;3; 1.000000, 1.000000, 1.000000;;, - 52;3; 1.000000, 1.000000, 1.000000;;, - 53;3; 1.000000, 1.000000, 1.000000;;, - 54;3; 1.000000, 1.000000, 1.000000;;, - 55;3; 1.000000, 1.000000, 1.000000;;, - 56;3; 1.000000, 1.000000, 1.000000;;, - 57;3; 1.000000, 1.000000, 1.000000;;, - 58;3; 1.000000, 1.000000, 1.000000;;, - 59;3; 1.000000, 1.000000, 1.000000;;, - 60;3; 1.000000, 1.000000, 1.000000;;, - 61;3; 1.000000, 1.000000, 1.000000;;, - 62;3; 1.000000, 1.000000, 1.000000;;, - 63;3; 1.000000, 1.000000, 1.000000;;, - 64;3; 1.000000, 1.000000, 1.000000;;, - 65;3; 1.000000, 1.000000, 1.000000;;, - 66;3; 1.000000, 1.000000, 1.000000;;, - 67;3; 1.000000, 1.000000, 1.000000;;, - 68;3; 1.000000, 1.000000, 1.000000;;, - 69;3; 1.000000, 1.000000, 1.000000;;, - 70;3; 1.000000, 1.000000, 1.000000;;, - 71;3; 1.000000, 1.000000, 1.000000;;, - 72;3; 1.000000, 1.000000, 1.000000;;, - 73;3; 1.000000, 1.000000, 1.000000;;, - 74;3; 1.000000, 1.000000, 1.000000;;, - 75;3; 1.000000, 1.000000, 1.000000;;, - 76;3; 1.000000, 1.000000, 1.000000;;, - 77;3; 1.000000, 1.000000, 1.000000;;, - 78;3; 1.000000, 1.000000, 1.000000;;, - 79;3; 1.000000, 1.000000, 1.000000;;, - 80;3; 1.000000, 1.000000, 1.000000;;; - } - AnimationKey { // Position - 2; - 81; - 0;3;-0.200000, 0.400000,-0.500000;;, - 1;3;-0.200000, 0.400000,-0.500000;;, - 2;3;-0.200000, 0.400000,-0.500000;;, - 3;3;-0.200000, 0.400000,-0.500000;;, - 4;3;-0.200000, 0.400000,-0.500000;;, - 5;3;-0.200000, 0.400000,-0.500000;;, - 6;3;-0.200000, 0.400000,-0.500000;;, - 7;3;-0.200000, 0.400000,-0.500000;;, - 8;3;-0.200000, 0.400000,-0.500000;;, - 9;3;-0.200000, 0.400000,-0.500000;;, - 10;3;-0.200000, 0.400000,-0.500000;;, - 11;3;-0.200000, 0.400000,-0.500000;;, - 12;3;-0.200000, 0.400000,-0.500000;;, - 13;3;-0.200000, 0.400000,-0.500000;;, - 14;3;-0.200000, 0.400000,-0.500000;;, - 15;3;-0.200000, 0.400000,-0.500000;;, - 16;3;-0.200000, 0.400000,-0.500000;;, - 17;3;-0.200000, 0.400000,-0.500000;;, - 18;3;-0.200000, 0.400000,-0.500000;;, - 19;3;-0.200000, 0.400000,-0.500000;;, - 20;3;-0.200000, 0.400000,-0.500000;;, - 21;3;-0.200000, 0.400000,-0.500000;;, - 22;3;-0.200000, 0.400000,-0.500000;;, - 23;3;-0.200000, 0.400000,-0.500000;;, - 24;3;-0.200000, 0.400000,-0.500000;;, - 25;3;-0.200000, 0.400000,-0.500000;;, - 26;3;-0.200000, 0.400000,-0.500000;;, - 27;3;-0.200000, 0.400000,-0.500000;;, - 28;3;-0.200000, 0.400000,-0.500000;;, - 29;3;-0.200000, 0.400000,-0.500000;;, - 30;3;-0.200000, 0.400000,-0.500000;;, - 31;3;-0.200000, 0.400000,-0.500000;;, - 32;3;-0.200000, 0.400000,-0.500000;;, - 33;3;-0.200000, 0.400000,-0.500000;;, - 34;3;-0.200000, 0.400000,-0.500000;;, - 35;3;-0.200000, 0.400000,-0.500000;;, - 36;3;-0.200000, 0.400000,-0.500000;;, - 37;3;-0.200000, 0.400000,-0.500000;;, - 38;3;-0.200000, 0.400000,-0.500000;;, - 39;3;-0.200000, 0.400000,-0.500000;;, - 40;3;-0.200000, 0.400000,-0.500000;;, - 41;3;-0.200000, 0.400000,-0.500000;;, - 42;3;-0.200000, 0.400000,-0.500000;;, - 43;3;-0.200000, 0.400000,-0.500000;;, - 44;3;-0.200000, 0.400000,-0.500000;;, - 45;3;-0.200000, 0.400000,-0.500000;;, - 46;3;-0.200000, 0.400000,-0.500000;;, - 47;3;-0.200000, 0.400000,-0.500000;;, - 48;3;-0.200000, 0.400000,-0.500000;;, - 49;3;-0.200000, 0.400000,-0.500000;;, - 50;3;-0.200000, 0.400000,-0.500000;;, - 51;3;-0.200000, 0.400000,-0.500000;;, - 52;3;-0.200000, 0.400000,-0.500000;;, - 53;3;-0.200000, 0.400000,-0.500000;;, - 54;3;-0.200000, 0.400000,-0.500000;;, - 55;3;-0.200000, 0.400000,-0.500000;;, - 56;3;-0.200000, 0.400000,-0.500000;;, - 57;3;-0.200000, 0.400000,-0.500000;;, - 58;3;-0.200000, 0.400000,-0.500000;;, - 59;3;-0.200000, 0.400000,-0.500000;;, - 60;3;-0.200000, 0.400000,-0.500000;;, - 61;3;-0.200000, 0.400000,-0.500000;;, - 62;3;-0.200000, 0.400000,-0.500000;;, - 63;3;-0.200000, 0.400000,-0.500000;;, - 64;3;-0.200000, 0.400000,-0.500000;;, - 65;3;-0.200000, 0.400000,-0.500000;;, - 66;3;-0.200000, 0.400000,-0.500000;;, - 67;3;-0.200000, 0.400000,-0.500000;;, - 68;3;-0.200000, 0.400000,-0.500000;;, - 69;3;-0.200000, 0.400000,-0.500000;;, - 70;3;-0.200000, 0.400000,-0.500000;;, - 71;3;-0.200000, 0.400000,-0.500000;;, - 72;3;-0.200000, 0.400000,-0.500000;;, - 73;3;-0.200000, 0.400000,-0.500000;;, - 74;3;-0.200000, 0.400000,-0.500000;;, - 75;3;-0.200000, 0.400000,-0.500000;;, - 76;3;-0.200000, 0.400000,-0.500000;;, - 77;3;-0.200000, 0.400000,-0.500000;;, - 78;3;-0.200000, 0.400000,-0.500000;;, - 79;3;-0.200000, 0.400000,-0.500000;;, - 80;3;-0.200000, 0.400000,-0.500000;;; - } - } - Animation { - {mob_armature_fr_leg} - AnimationKey { // Rotation - 0; - 81; - 0;4;-0.707107,-0.707107, 0.000000, 0.000000;;, - 1;4;-0.707107,-0.707107, 0.000000, 0.000000;;, - 2;4;-0.707107,-0.707107, 0.000000, 0.000000;;, - 3;4;-0.707107,-0.707107, 0.000000, 0.000000;;, - 4;4;-0.707107,-0.707107, 0.000000, 0.000000;;, - 5;4;-0.707107,-0.707107, 0.000000, 0.000000;;, - 6;4;-0.707107,-0.707107, 0.000000, 0.000000;;, - 7;4;-0.707107,-0.707107, 0.000000, 0.000000;;, - 8;4;-0.707107,-0.707107, 0.000000, 0.000000;;, - 9;4;-0.707107,-0.707107, 0.000000, 0.000000;;, - 10;4;-0.707107,-0.707107, 0.000000, 0.000000;;, - 11;4;-0.707107,-0.707107, 0.000000, 0.000000;;, - 12;4;-0.707107,-0.707107, 0.000000, 0.000000;;, - 13;4;-0.707107,-0.707107, 0.000000, 0.000000;;, - 14;4;-0.707107,-0.707107, 0.000000, 0.000000;;, - 15;4;-0.707107,-0.707107, 0.000000, 0.000000;;, - 16;4;-0.707107,-0.707107, 0.000000, 0.000000;;, - 17;4;-0.707107,-0.707107, 0.000000, 0.000000;;, - 18;4;-0.707107,-0.707107, 0.000000, 0.000000;;, - 19;4;-0.707107,-0.707107, 0.000000, 0.000000;;, - 20;4;-0.707107,-0.707107, 0.000000, 0.000000;;, - 21;4;-0.707107,-0.707107, 0.000000, 0.000000;;, - 22;4;-0.707107,-0.707107, 0.000000, 0.000000;;, - 23;4;-0.707107,-0.707107, 0.000000, 0.000000;;, - 24;4;-0.707107,-0.707107, 0.000000, 0.000000;;, - 25;4;-0.707107,-0.707107, 0.000000, 0.000000;;, - 26;4;-0.707107,-0.707107, 0.000000, 0.000000;;, - 27;4;-0.707107,-0.707107, 0.000000, 0.000000;;, - 28;4;-0.707107,-0.707107, 0.000000, 0.000000;;, - 29;4;-0.707107,-0.707107, 0.000000, 0.000000;;, - 30;4;-0.707107,-0.707107, 0.000000, 0.000000;;, - 31;4;-0.707107,-0.707107, 0.000000, 0.000000;;, - 32;4;-0.707107,-0.707107, 0.000000, 0.000000;;, - 33;4;-0.707107,-0.707107, 0.000000, 0.000000;;, - 34;4;-0.707107,-0.707107, 0.000000, 0.000000;;, - 35;4;-0.707107,-0.707107, 0.000000, 0.000000;;, - 36;4;-0.707107,-0.707107, 0.000000, 0.000000;;, - 37;4;-0.707107,-0.707107, 0.000000, 0.000000;;, - 38;4;-0.707107,-0.707107, 0.000000, 0.000000;;, - 39;4;-0.707107,-0.707107, 0.000000, 0.000000;;, - 40;4;-0.707107,-0.707107, 0.000000, 0.000000;;, - 41;4;-0.707107,-0.707107, 0.000000, 0.000000;;, - 42;4;-0.707107,-0.707107, 0.000000, 0.000000;;, - 43;4;-0.707107,-0.707107, 0.000000, 0.000000;;, - 44;4;-0.707107,-0.707107, 0.000000, 0.000000;;, - 45;4;-0.707107,-0.707107, 0.000000, 0.000000;;, - 46;4;-0.707107,-0.707107, 0.000000, 0.000000;;, - 47;4;-0.707107,-0.707107, 0.000000, 0.000000;;, - 48;4;-0.707107,-0.707107, 0.000000, 0.000000;;, - 49;4;-0.707107,-0.707107, 0.000000, 0.000000;;, - 50;4;-0.707107,-0.707107, 0.000000, 0.000000;;, - 51;4;-0.707107,-0.707107, 0.000000, 0.000000;;, - 52;4;-0.707107,-0.707107, 0.000000, 0.000000;;, - 53;4;-0.707107,-0.707107, 0.000000, 0.000000;;, - 54;4;-0.707107,-0.707107, 0.000000, 0.000000;;, - 55;4;-0.707107,-0.707107, 0.000000, 0.000000;;, - 56;4;-0.707107,-0.707107, 0.000000, 0.000000;;, - 57;4;-0.707107,-0.707107, 0.000000, 0.000000;;, - 58;4;-0.707107,-0.707107, 0.000000, 0.000000;;, - 59;4;-0.707107,-0.707107, 0.000000, 0.000000;;, - 60;4;-0.707107,-0.707107, 0.000000, 0.000000;;, - 61;4;-0.707107,-0.707107, 0.000000, 0.000000;;, - 62;4;-0.712346,-0.701389, 0.000000, 0.000000;;, - 63;4;-0.727103,-0.685285, 0.000000, 0.000000;;, - 64;4;-0.746050,-0.664608, 0.000000, 0.000000;;, - 65;4;-0.760806,-0.648505, 0.000000, 0.000000;;, - 66;4;-0.766044,-0.642788, 0.000000, 0.000000;;, - 67;4;-0.763312,-0.645520, 0.000000, 0.000000;;, - 68;4;-0.755088,-0.653744, 0.000000, 0.000000;;, - 69;4;-0.741717,-0.667115, 0.000000, 0.000000;;, - 70;4;-0.724228,-0.684604, 0.000000, 0.000000;;, - 71;4;-0.704416,-0.704416, 0.000000, 0.000000;;, - 72;4;-0.684604,-0.724228, 0.000000, 0.000000;;, - 73;4;-0.667115,-0.741717, 0.000000, 0.000000;;, - 74;4;-0.653744,-0.755088, 0.000000, 0.000000;;, - 75;4;-0.645520,-0.763312, 0.000000, 0.000000;;, - 76;4;-0.642788,-0.766044, 0.000000, 0.000000;;, - 77;4;-0.645520,-0.763312, 0.000000, 0.000000;;, - 78;4;-0.653743,-0.755089, 0.000000, 0.000000;;, - 79;4;-0.667113,-0.741719, 0.000000, 0.000000;;, - 80;4;-0.684601,-0.724231, 0.000000, 0.000000;;; - } - AnimationKey { // Scale - 1; - 81; - 0;3; 1.000000, 1.000000, 1.000000;;, - 1;3; 1.000000, 1.000000, 1.000000;;, - 2;3; 1.000000, 1.000000, 1.000000;;, - 3;3; 1.000000, 1.000000, 1.000000;;, - 4;3; 1.000000, 1.000000, 1.000000;;, - 5;3; 1.000000, 1.000000, 1.000000;;, - 6;3; 1.000000, 1.000000, 1.000000;;, - 7;3; 1.000000, 1.000000, 1.000000;;, - 8;3; 1.000000, 1.000000, 1.000000;;, - 9;3; 1.000000, 1.000000, 1.000000;;, - 10;3; 1.000000, 1.000000, 1.000000;;, - 11;3; 1.000000, 1.000000, 1.000000;;, - 12;3; 1.000000, 1.000000, 1.000000;;, - 13;3; 1.000000, 1.000000, 1.000000;;, - 14;3; 1.000000, 1.000000, 1.000000;;, - 15;3; 1.000000, 1.000000, 1.000000;;, - 16;3; 1.000000, 1.000000, 1.000000;;, - 17;3; 1.000000, 1.000000, 1.000000;;, - 18;3; 1.000000, 1.000000, 1.000000;;, - 19;3; 1.000000, 1.000000, 1.000000;;, - 20;3; 1.000000, 1.000000, 1.000000;;, - 21;3; 1.000000, 1.000000, 1.000000;;, - 22;3; 1.000000, 1.000000, 1.000000;;, - 23;3; 1.000000, 1.000000, 1.000000;;, - 24;3; 1.000000, 1.000000, 1.000000;;, - 25;3; 1.000000, 1.000000, 1.000000;;, - 26;3; 1.000000, 1.000000, 1.000000;;, - 27;3; 1.000000, 1.000000, 1.000000;;, - 28;3; 1.000000, 1.000000, 1.000000;;, - 29;3; 1.000000, 1.000000, 1.000000;;, - 30;3; 1.000000, 1.000000, 1.000000;;, - 31;3; 1.000000, 1.000000, 1.000000;;, - 32;3; 1.000000, 1.000000, 1.000000;;, - 33;3; 1.000000, 1.000000, 1.000000;;, - 34;3; 1.000000, 1.000000, 1.000000;;, - 35;3; 1.000000, 1.000000, 1.000000;;, - 36;3; 1.000000, 1.000000, 1.000000;;, - 37;3; 1.000000, 1.000000, 1.000000;;, - 38;3; 1.000000, 1.000000, 1.000000;;, - 39;3; 1.000000, 1.000000, 1.000000;;, - 40;3; 1.000000, 1.000000, 1.000000;;, - 41;3; 1.000000, 1.000000, 1.000000;;, - 42;3; 1.000000, 1.000000, 1.000000;;, - 43;3; 1.000000, 1.000000, 1.000000;;, - 44;3; 1.000000, 1.000000, 1.000000;;, - 45;3; 1.000000, 1.000000, 1.000000;;, - 46;3; 1.000000, 1.000000, 1.000000;;, - 47;3; 1.000000, 1.000000, 1.000000;;, - 48;3; 1.000000, 1.000000, 1.000000;;, - 49;3; 1.000000, 1.000000, 1.000000;;, - 50;3; 1.000000, 1.000000, 1.000000;;, - 51;3; 1.000000, 1.000000, 1.000000;;, - 52;3; 1.000000, 1.000000, 1.000000;;, - 53;3; 1.000000, 1.000000, 1.000000;;, - 54;3; 1.000000, 1.000000, 1.000000;;, - 55;3; 1.000000, 1.000000, 1.000000;;, - 56;3; 1.000000, 1.000000, 1.000000;;, - 57;3; 1.000000, 1.000000, 1.000000;;, - 58;3; 1.000000, 1.000000, 1.000000;;, - 59;3; 1.000000, 1.000000, 1.000000;;, - 60;3; 1.000000, 1.000000, 1.000000;;, - 61;3; 1.000000, 1.000000, 1.000000;;, - 62;3; 1.000000, 1.000000, 1.000000;;, - 63;3; 1.000000, 1.000000, 1.000000;;, - 64;3; 1.000000, 1.000000, 1.000000;;, - 65;3; 1.000000, 1.000000, 1.000000;;, - 66;3; 1.000000, 1.000000, 1.000000;;, - 67;3; 1.000000, 1.000000, 1.000000;;, - 68;3; 1.000000, 1.000000, 1.000000;;, - 69;3; 1.000000, 1.000000, 1.000000;;, - 70;3; 1.000000, 1.000000, 1.000000;;, - 71;3; 1.000000, 1.000000, 1.000000;;, - 72;3; 1.000000, 1.000000, 1.000000;;, - 73;3; 1.000000, 1.000000, 1.000000;;, - 74;3; 1.000000, 1.000000, 1.000000;;, - 75;3; 1.000000, 1.000000, 1.000000;;, - 76;3; 1.000000, 1.000000, 1.000000;;, - 77;3; 1.000000, 1.000000, 1.000000;;, - 78;3; 1.000000, 1.000000, 1.000000;;, - 79;3; 1.000000, 1.000000, 1.000000;;, - 80;3; 1.000000, 1.000000, 1.000000;;; - } - AnimationKey { // Position - 2; - 81; - 0;3; 0.200000, 0.400000,-0.500000;;, - 1;3; 0.200000, 0.400000,-0.500000;;, - 2;3; 0.200000, 0.400000,-0.500000;;, - 3;3; 0.200000, 0.400000,-0.500000;;, - 4;3; 0.200000, 0.400000,-0.500000;;, - 5;3; 0.200000, 0.400000,-0.500000;;, - 6;3; 0.200000, 0.400000,-0.500000;;, - 7;3; 0.200000, 0.400000,-0.500000;;, - 8;3; 0.200000, 0.400000,-0.500000;;, - 9;3; 0.200000, 0.400000,-0.500000;;, - 10;3; 0.200000, 0.400000,-0.500000;;, - 11;3; 0.200000, 0.400000,-0.500000;;, - 12;3; 0.200000, 0.400000,-0.500000;;, - 13;3; 0.200000, 0.400000,-0.500000;;, - 14;3; 0.200000, 0.400000,-0.500000;;, - 15;3; 0.200000, 0.400000,-0.500000;;, - 16;3; 0.200000, 0.400000,-0.500000;;, - 17;3; 0.200000, 0.400000,-0.500000;;, - 18;3; 0.200000, 0.400000,-0.500000;;, - 19;3; 0.200000, 0.400000,-0.500000;;, - 20;3; 0.200000, 0.400000,-0.500000;;, - 21;3; 0.200000, 0.400000,-0.500000;;, - 22;3; 0.200000, 0.400000,-0.500000;;, - 23;3; 0.200000, 0.400000,-0.500000;;, - 24;3; 0.200000, 0.400000,-0.500000;;, - 25;3; 0.200000, 0.400000,-0.500000;;, - 26;3; 0.200000, 0.400000,-0.500000;;, - 27;3; 0.200000, 0.400000,-0.500000;;, - 28;3; 0.200000, 0.400000,-0.500000;;, - 29;3; 0.200000, 0.400000,-0.500000;;, - 30;3; 0.200000, 0.400000,-0.500000;;, - 31;3; 0.200000, 0.400000,-0.500000;;, - 32;3; 0.200000, 0.400000,-0.500000;;, - 33;3; 0.200000, 0.400000,-0.500000;;, - 34;3; 0.200000, 0.400000,-0.500000;;, - 35;3; 0.200000, 0.400000,-0.500000;;, - 36;3; 0.200000, 0.400000,-0.500000;;, - 37;3; 0.200000, 0.400000,-0.500000;;, - 38;3; 0.200000, 0.400000,-0.500000;;, - 39;3; 0.200000, 0.400000,-0.500000;;, - 40;3; 0.200000, 0.400000,-0.500000;;, - 41;3; 0.200000, 0.400000,-0.500000;;, - 42;3; 0.200000, 0.400000,-0.500000;;, - 43;3; 0.200000, 0.400000,-0.500000;;, - 44;3; 0.200000, 0.400000,-0.500000;;, - 45;3; 0.200000, 0.400000,-0.500000;;, - 46;3; 0.200000, 0.400000,-0.500000;;, - 47;3; 0.200000, 0.400000,-0.500000;;, - 48;3; 0.200000, 0.400000,-0.500000;;, - 49;3; 0.200000, 0.400000,-0.500000;;, - 50;3; 0.200000, 0.400000,-0.500000;;, - 51;3; 0.200000, 0.400000,-0.500000;;, - 52;3; 0.200000, 0.400000,-0.500000;;, - 53;3; 0.200000, 0.400000,-0.500000;;, - 54;3; 0.200000, 0.400000,-0.500000;;, - 55;3; 0.200000, 0.400000,-0.500000;;, - 56;3; 0.200000, 0.400000,-0.500000;;, - 57;3; 0.200000, 0.400000,-0.500000;;, - 58;3; 0.200000, 0.400000,-0.500000;;, - 59;3; 0.200000, 0.400000,-0.500000;;, - 60;3; 0.200000, 0.400000,-0.500000;;, - 61;3; 0.200000, 0.400000,-0.500000;;, - 62;3; 0.200000, 0.400000,-0.500000;;, - 63;3; 0.200000, 0.400000,-0.500000;;, - 64;3; 0.200000, 0.400000,-0.500000;;, - 65;3; 0.200000, 0.400000,-0.500000;;, - 66;3; 0.200000, 0.400000,-0.500000;;, - 67;3; 0.200000, 0.400000,-0.500000;;, - 68;3; 0.200000, 0.400000,-0.500000;;, - 69;3; 0.200000, 0.400000,-0.500000;;, - 70;3; 0.200000, 0.400000,-0.500000;;, - 71;3; 0.200000, 0.400000,-0.500000;;, - 72;3; 0.200000, 0.400000,-0.500000;;, - 73;3; 0.200000, 0.400000,-0.500000;;, - 74;3; 0.200000, 0.400000,-0.500000;;, - 75;3; 0.200000, 0.400000,-0.500000;;, - 76;3; 0.200000, 0.400000,-0.500000;;, - 77;3; 0.200000, 0.400000,-0.500000;;, - 78;3; 0.200000, 0.400000,-0.500000;;, - 79;3; 0.200000, 0.400000,-0.500000;;, - 80;3; 0.200000, 0.400000,-0.500000;;; - } - } - Animation { - {mob_armature_rr_leg} - AnimationKey { // Rotation - 0; - 81; - 0;4;-0.707107,-0.707107, 0.000000, 0.000000;;, - 1;4;-0.707107,-0.707107, 0.000000, 0.000000;;, - 2;4;-0.707107,-0.707107, 0.000000, 0.000000;;, - 3;4;-0.707107,-0.707107, 0.000000, 0.000000;;, - 4;4;-0.707107,-0.707107, 0.000000, 0.000000;;, - 5;4;-0.707107,-0.707107, 0.000000, 0.000000;;, - 6;4;-0.707107,-0.707107, 0.000000, 0.000000;;, - 7;4;-0.707107,-0.707107, 0.000000, 0.000000;;, - 8;4;-0.707107,-0.707107, 0.000000, 0.000000;;, - 9;4;-0.707107,-0.707107, 0.000000, 0.000000;;, - 10;4;-0.707107,-0.707107, 0.000000, 0.000000;;, - 11;4;-0.707107,-0.707107, 0.000000, 0.000000;;, - 12;4;-0.707107,-0.707107, 0.000000, 0.000000;;, - 13;4;-0.707107,-0.707107, 0.000000, 0.000000;;, - 14;4;-0.707107,-0.707107, 0.000000, 0.000000;;, - 15;4;-0.707107,-0.707107, 0.000000, 0.000000;;, - 16;4;-0.707107,-0.707107, 0.000000, 0.000000;;, - 17;4;-0.707107,-0.707107, 0.000000, 0.000000;;, - 18;4;-0.707107,-0.707107, 0.000000, 0.000000;;, - 19;4;-0.707107,-0.707107, 0.000000, 0.000000;;, - 20;4;-0.707107,-0.707107, 0.000000, 0.000000;;, - 21;4;-0.707107,-0.707107, 0.000000, 0.000000;;, - 22;4;-0.707107,-0.707107, 0.000000, 0.000000;;, - 23;4;-0.707107,-0.707107, 0.000000, 0.000000;;, - 24;4;-0.707107,-0.707107, 0.000000, 0.000000;;, - 25;4;-0.707107,-0.707107, 0.000000, 0.000000;;, - 26;4;-0.707107,-0.707107, 0.000000, 0.000000;;, - 27;4;-0.707107,-0.707107, 0.000000, 0.000000;;, - 28;4;-0.707107,-0.707107, 0.000000, 0.000000;;, - 29;4;-0.707107,-0.707107, 0.000000, 0.000000;;, - 30;4;-0.707107,-0.707107, 0.000000, 0.000000;;, - 31;4;-0.707107,-0.707107, 0.000000, 0.000000;;, - 32;4;-0.707107,-0.707107, 0.000000, 0.000000;;, - 33;4;-0.707107,-0.707107, 0.000000, 0.000000;;, - 34;4;-0.707107,-0.707107, 0.000000, 0.000000;;, - 35;4;-0.707107,-0.707107, 0.000000, 0.000000;;, - 36;4;-0.707107,-0.707107, 0.000000, 0.000000;;, - 37;4;-0.707107,-0.707107, 0.000000, 0.000000;;, - 38;4;-0.707107,-0.707107, 0.000000, 0.000000;;, - 39;4;-0.707107,-0.707107, 0.000000, 0.000000;;, - 40;4;-0.707107,-0.707107, 0.000000, 0.000000;;, - 41;4;-0.707107,-0.707107, 0.000000, 0.000000;;, - 42;4;-0.707107,-0.707107, 0.000000, 0.000000;;, - 43;4;-0.707107,-0.707107, 0.000000, 0.000000;;, - 44;4;-0.707107,-0.707107, 0.000000, 0.000000;;, - 45;4;-0.707107,-0.707107, 0.000000, 0.000000;;, - 46;4;-0.707107,-0.707107, 0.000000, 0.000000;;, - 47;4;-0.707107,-0.707107, 0.000000, 0.000000;;, - 48;4;-0.707107,-0.707107, 0.000000, 0.000000;;, - 49;4;-0.707107,-0.707107, 0.000000, 0.000000;;, - 50;4;-0.707107,-0.707107, 0.000000, 0.000000;;, - 51;4;-0.707107,-0.707107, 0.000000, 0.000000;;, - 52;4;-0.707107,-0.707107, 0.000000, 0.000000;;, - 53;4;-0.707107,-0.707107, 0.000000, 0.000000;;, - 54;4;-0.707107,-0.707107, 0.000000, 0.000000;;, - 55;4;-0.707107,-0.707107, 0.000000, 0.000000;;, - 56;4;-0.707107,-0.707107, 0.000000, 0.000000;;, - 57;4;-0.707107,-0.707107, 0.000000, 0.000000;;, - 58;4;-0.707107,-0.707107, 0.000000, 0.000000;;, - 59;4;-0.707107,-0.707107, 0.000000, 0.000000;;, - 60;4;-0.707107,-0.707107, 0.000000, 0.000000;;, - 61;4;-0.707107,-0.707107, 0.000000, 0.000000;;, - 62;4;-0.701389,-0.712346, 0.000000, 0.000000;;, - 63;4;-0.685285,-0.727103, 0.000000, 0.000000;;, - 64;4;-0.664608,-0.746050, 0.000000, 0.000000;;, - 65;4;-0.648505,-0.760806, 0.000000, 0.000000;;, - 66;4;-0.642788,-0.766044, 0.000000, 0.000000;;, - 67;4;-0.645520,-0.763312, 0.000000, 0.000000;;, - 68;4;-0.653744,-0.755088, 0.000000, 0.000000;;, - 69;4;-0.667115,-0.741717, 0.000000, 0.000000;;, - 70;4;-0.684604,-0.724228, 0.000000, 0.000000;;, - 71;4;-0.704416,-0.704416, 0.000000, 0.000000;;, - 72;4;-0.724228,-0.684604, 0.000000, 0.000000;;, - 73;4;-0.741717,-0.667115, 0.000000, 0.000000;;, - 74;4;-0.755088,-0.653744, 0.000000, 0.000000;;, - 75;4;-0.763312,-0.645520, 0.000000, 0.000000;;, - 76;4;-0.766044,-0.642788, 0.000000, 0.000000;;, - 77;4;-0.763312,-0.645520, 0.000000, 0.000000;;, - 78;4;-0.755089,-0.653743, 0.000000, 0.000000;;, - 79;4;-0.741719,-0.667113, 0.000000, 0.000000;;, - 80;4;-0.724231,-0.684601, 0.000000, 0.000000;;; - } - AnimationKey { // Scale - 1; - 81; - 0;3; 1.000000, 1.000000, 1.000000;;, - 1;3; 1.000000, 1.000000, 1.000000;;, - 2;3; 1.000000, 1.000000, 1.000000;;, - 3;3; 1.000000, 1.000000, 1.000000;;, - 4;3; 1.000000, 1.000000, 1.000000;;, - 5;3; 1.000000, 1.000000, 1.000000;;, - 6;3; 1.000000, 1.000000, 1.000000;;, - 7;3; 1.000000, 1.000000, 1.000000;;, - 8;3; 1.000000, 1.000000, 1.000000;;, - 9;3; 1.000000, 1.000000, 1.000000;;, - 10;3; 1.000000, 1.000000, 1.000000;;, - 11;3; 1.000000, 1.000000, 1.000000;;, - 12;3; 1.000000, 1.000000, 1.000000;;, - 13;3; 1.000000, 1.000000, 1.000000;;, - 14;3; 1.000000, 1.000000, 1.000000;;, - 15;3; 1.000000, 1.000000, 1.000000;;, - 16;3; 1.000000, 1.000000, 1.000000;;, - 17;3; 1.000000, 1.000000, 1.000000;;, - 18;3; 1.000000, 1.000000, 1.000000;;, - 19;3; 1.000000, 1.000000, 1.000000;;, - 20;3; 1.000000, 1.000000, 1.000000;;, - 21;3; 1.000000, 1.000000, 1.000000;;, - 22;3; 1.000000, 1.000000, 1.000000;;, - 23;3; 1.000000, 1.000000, 1.000000;;, - 24;3; 1.000000, 1.000000, 1.000000;;, - 25;3; 1.000000, 1.000000, 1.000000;;, - 26;3; 1.000000, 1.000000, 1.000000;;, - 27;3; 1.000000, 1.000000, 1.000000;;, - 28;3; 1.000000, 1.000000, 1.000000;;, - 29;3; 1.000000, 1.000000, 1.000000;;, - 30;3; 1.000000, 1.000000, 1.000000;;, - 31;3; 1.000000, 1.000000, 1.000000;;, - 32;3; 1.000000, 1.000000, 1.000000;;, - 33;3; 1.000000, 1.000000, 1.000000;;, - 34;3; 1.000000, 1.000000, 1.000000;;, - 35;3; 1.000000, 1.000000, 1.000000;;, - 36;3; 1.000000, 1.000000, 1.000000;;, - 37;3; 1.000000, 1.000000, 1.000000;;, - 38;3; 1.000000, 1.000000, 1.000000;;, - 39;3; 1.000000, 1.000000, 1.000000;;, - 40;3; 1.000000, 1.000000, 1.000000;;, - 41;3; 1.000000, 1.000000, 1.000000;;, - 42;3; 1.000000, 1.000000, 1.000000;;, - 43;3; 1.000000, 1.000000, 1.000000;;, - 44;3; 1.000000, 1.000000, 1.000000;;, - 45;3; 1.000000, 1.000000, 1.000000;;, - 46;3; 1.000000, 1.000000, 1.000000;;, - 47;3; 1.000000, 1.000000, 1.000000;;, - 48;3; 1.000000, 1.000000, 1.000000;;, - 49;3; 1.000000, 1.000000, 1.000000;;, - 50;3; 1.000000, 1.000000, 1.000000;;, - 51;3; 1.000000, 1.000000, 1.000000;;, - 52;3; 1.000000, 1.000000, 1.000000;;, - 53;3; 1.000000, 1.000000, 1.000000;;, - 54;3; 1.000000, 1.000000, 1.000000;;, - 55;3; 1.000000, 1.000000, 1.000000;;, - 56;3; 1.000000, 1.000000, 1.000000;;, - 57;3; 1.000000, 1.000000, 1.000000;;, - 58;3; 1.000000, 1.000000, 1.000000;;, - 59;3; 1.000000, 1.000000, 1.000000;;, - 60;3; 1.000000, 1.000000, 1.000000;;, - 61;3; 1.000000, 1.000000, 1.000000;;, - 62;3; 1.000000, 1.000000, 1.000000;;, - 63;3; 1.000000, 1.000000, 1.000000;;, - 64;3; 1.000000, 1.000000, 1.000000;;, - 65;3; 1.000000, 1.000000, 1.000000;;, - 66;3; 1.000000, 1.000000, 1.000000;;, - 67;3; 1.000000, 1.000000, 1.000000;;, - 68;3; 1.000000, 1.000000, 1.000000;;, - 69;3; 1.000000, 1.000000, 1.000000;;, - 70;3; 1.000000, 1.000000, 1.000000;;, - 71;3; 1.000000, 1.000000, 1.000000;;, - 72;3; 1.000000, 1.000000, 1.000000;;, - 73;3; 1.000000, 1.000000, 1.000000;;, - 74;3; 1.000000, 1.000000, 1.000000;;, - 75;3; 1.000000, 1.000000, 1.000000;;, - 76;3; 1.000000, 1.000000, 1.000000;;, - 77;3; 1.000000, 1.000000, 1.000000;;, - 78;3; 1.000000, 1.000000, 1.000000;;, - 79;3; 1.000000, 1.000000, 1.000000;;, - 80;3; 1.000000, 1.000000, 1.000000;;; - } - AnimationKey { // Position - 2; - 81; - 0;3; 0.200000,-0.400000,-0.500000;;, - 1;3; 0.200000,-0.400000,-0.500000;;, - 2;3; 0.200000,-0.400000,-0.500000;;, - 3;3; 0.200000,-0.400000,-0.500000;;, - 4;3; 0.200000,-0.400000,-0.500000;;, - 5;3; 0.200000,-0.400000,-0.500000;;, - 6;3; 0.200000,-0.400000,-0.500000;;, - 7;3; 0.200000,-0.400000,-0.500000;;, - 8;3; 0.200000,-0.400000,-0.500000;;, - 9;3; 0.200000,-0.400000,-0.500000;;, - 10;3; 0.200000,-0.400000,-0.500000;;, - 11;3; 0.200000,-0.400000,-0.500000;;, - 12;3; 0.200000,-0.400000,-0.500000;;, - 13;3; 0.200000,-0.400000,-0.500000;;, - 14;3; 0.200000,-0.400000,-0.500000;;, - 15;3; 0.200000,-0.400000,-0.500000;;, - 16;3; 0.200000,-0.400000,-0.500000;;, - 17;3; 0.200000,-0.400000,-0.500000;;, - 18;3; 0.200000,-0.400000,-0.500000;;, - 19;3; 0.200000,-0.400000,-0.500000;;, - 20;3; 0.200000,-0.400000,-0.500000;;, - 21;3; 0.200000,-0.400000,-0.500000;;, - 22;3; 0.200000,-0.400000,-0.500000;;, - 23;3; 0.200000,-0.400000,-0.500000;;, - 24;3; 0.200000,-0.400000,-0.500000;;, - 25;3; 0.200000,-0.400000,-0.500000;;, - 26;3; 0.200000,-0.400000,-0.500000;;, - 27;3; 0.200000,-0.400000,-0.500000;;, - 28;3; 0.200000,-0.400000,-0.500000;;, - 29;3; 0.200000,-0.400000,-0.500000;;, - 30;3; 0.200000,-0.400000,-0.500000;;, - 31;3; 0.200000,-0.400000,-0.500000;;, - 32;3; 0.200000,-0.400000,-0.500000;;, - 33;3; 0.200000,-0.400000,-0.500000;;, - 34;3; 0.200000,-0.400000,-0.500000;;, - 35;3; 0.200000,-0.400000,-0.500000;;, - 36;3; 0.200000,-0.400000,-0.500000;;, - 37;3; 0.200000,-0.400000,-0.500000;;, - 38;3; 0.200000,-0.400000,-0.500000;;, - 39;3; 0.200000,-0.400000,-0.500000;;, - 40;3; 0.200000,-0.400000,-0.500000;;, - 41;3; 0.200000,-0.400000,-0.500000;;, - 42;3; 0.200000,-0.400000,-0.500000;;, - 43;3; 0.200000,-0.400000,-0.500000;;, - 44;3; 0.200000,-0.400000,-0.500000;;, - 45;3; 0.200000,-0.400000,-0.500000;;, - 46;3; 0.200000,-0.400000,-0.500000;;, - 47;3; 0.200000,-0.400000,-0.500000;;, - 48;3; 0.200000,-0.400000,-0.500000;;, - 49;3; 0.200000,-0.400000,-0.500000;;, - 50;3; 0.200000,-0.400000,-0.500000;;, - 51;3; 0.200000,-0.400000,-0.500000;;, - 52;3; 0.200000,-0.400000,-0.500000;;, - 53;3; 0.200000,-0.400000,-0.500000;;, - 54;3; 0.200000,-0.400000,-0.500000;;, - 55;3; 0.200000,-0.400000,-0.500000;;, - 56;3; 0.200000,-0.400000,-0.500000;;, - 57;3; 0.200000,-0.400000,-0.500000;;, - 58;3; 0.200000,-0.400000,-0.500000;;, - 59;3; 0.200000,-0.400000,-0.500000;;, - 60;3; 0.200000,-0.400000,-0.500000;;, - 61;3; 0.200000,-0.400000,-0.500000;;, - 62;3; 0.200000,-0.400000,-0.500000;;, - 63;3; 0.200000,-0.400000,-0.500000;;, - 64;3; 0.200000,-0.400000,-0.500000;;, - 65;3; 0.200000,-0.400000,-0.500000;;, - 66;3; 0.200000,-0.400000,-0.500000;;, - 67;3; 0.200000,-0.400000,-0.500000;;, - 68;3; 0.200000,-0.400000,-0.500000;;, - 69;3; 0.200000,-0.400000,-0.500000;;, - 70;3; 0.200000,-0.400000,-0.500000;;, - 71;3; 0.200000,-0.400000,-0.500000;;, - 72;3; 0.200000,-0.400000,-0.500000;;, - 73;3; 0.200000,-0.400000,-0.500000;;, - 74;3; 0.200000,-0.400000,-0.500000;;, - 75;3; 0.200000,-0.400000,-0.500000;;, - 76;3; 0.200000,-0.400000,-0.500000;;, - 77;3; 0.200000,-0.400000,-0.500000;;, - 78;3; 0.200000,-0.400000,-0.500000;;, - 79;3; 0.200000,-0.400000,-0.500000;;, - 80;3; 0.200000,-0.400000,-0.500000;;; - } - } - Animation { - {mob_armature_rl_leg} - AnimationKey { // Rotation - 0; - 81; - 0;4;-0.707107,-0.707107, 0.000000, 0.000000;;, - 1;4;-0.707107,-0.707107, 0.000000, 0.000000;;, - 2;4;-0.707107,-0.707107, 0.000000, 0.000000;;, - 3;4;-0.707107,-0.707107, 0.000000, 0.000000;;, - 4;4;-0.707107,-0.707107, 0.000000, 0.000000;;, - 5;4;-0.707107,-0.707107, 0.000000, 0.000000;;, - 6;4;-0.707107,-0.707107, 0.000000, 0.000000;;, - 7;4;-0.707107,-0.707107, 0.000000, 0.000000;;, - 8;4;-0.707107,-0.707107, 0.000000, 0.000000;;, - 9;4;-0.707107,-0.707107, 0.000000, 0.000000;;, - 10;4;-0.707107,-0.707107, 0.000000, 0.000000;;, - 11;4;-0.707107,-0.707107, 0.000000, 0.000000;;, - 12;4;-0.707107,-0.707107, 0.000000, 0.000000;;, - 13;4;-0.707107,-0.707107, 0.000000, 0.000000;;, - 14;4;-0.707107,-0.707107, 0.000000, 0.000000;;, - 15;4;-0.707107,-0.707107, 0.000000, 0.000000;;, - 16;4;-0.707107,-0.707107, 0.000000, 0.000000;;, - 17;4;-0.707107,-0.707107, 0.000000, 0.000000;;, - 18;4;-0.707107,-0.707107, 0.000000, 0.000000;;, - 19;4;-0.707107,-0.707107, 0.000000, 0.000000;;, - 20;4;-0.707107,-0.707107, 0.000000, 0.000000;;, - 21;4;-0.707107,-0.707107, 0.000000, 0.000000;;, - 22;4;-0.707107,-0.707107, 0.000000, 0.000000;;, - 23;4;-0.707107,-0.707107, 0.000000, 0.000000;;, - 24;4;-0.707107,-0.707107, 0.000000, 0.000000;;, - 25;4;-0.707107,-0.707107, 0.000000, 0.000000;;, - 26;4;-0.707107,-0.707107, 0.000000, 0.000000;;, - 27;4;-0.707107,-0.707107, 0.000000, 0.000000;;, - 28;4;-0.707107,-0.707107, 0.000000, 0.000000;;, - 29;4;-0.707107,-0.707107, 0.000000, 0.000000;;, - 30;4;-0.707107,-0.707107, 0.000000, 0.000000;;, - 31;4;-0.707107,-0.707107, 0.000000, 0.000000;;, - 32;4;-0.707107,-0.707107, 0.000000, 0.000000;;, - 33;4;-0.707107,-0.707107, 0.000000, 0.000000;;, - 34;4;-0.707107,-0.707107, 0.000000, 0.000000;;, - 35;4;-0.707107,-0.707107, 0.000000, 0.000000;;, - 36;4;-0.707107,-0.707107, 0.000000, 0.000000;;, - 37;4;-0.707107,-0.707107, 0.000000, 0.000000;;, - 38;4;-0.707107,-0.707107, 0.000000, 0.000000;;, - 39;4;-0.707107,-0.707107, 0.000000, 0.000000;;, - 40;4;-0.707107,-0.707107, 0.000000, 0.000000;;, - 41;4;-0.707107,-0.707107, 0.000000, 0.000000;;, - 42;4;-0.707107,-0.707107, 0.000000, 0.000000;;, - 43;4;-0.707107,-0.707107, 0.000000, 0.000000;;, - 44;4;-0.707107,-0.707107, 0.000000, 0.000000;;, - 45;4;-0.707107,-0.707107, 0.000000, 0.000000;;, - 46;4;-0.707107,-0.707107, 0.000000, 0.000000;;, - 47;4;-0.707107,-0.707107, 0.000000, 0.000000;;, - 48;4;-0.707107,-0.707107, 0.000000, 0.000000;;, - 49;4;-0.707107,-0.707107, 0.000000, 0.000000;;, - 50;4;-0.707107,-0.707107, 0.000000, 0.000000;;, - 51;4;-0.707107,-0.707107, 0.000000, 0.000000;;, - 52;4;-0.707107,-0.707107, 0.000000, 0.000000;;, - 53;4;-0.707107,-0.707107, 0.000000, 0.000000;;, - 54;4;-0.707107,-0.707107, 0.000000, 0.000000;;, - 55;4;-0.707107,-0.707107, 0.000000, 0.000000;;, - 56;4;-0.707107,-0.707107, 0.000000, 0.000000;;, - 57;4;-0.707107,-0.707107, 0.000000, 0.000000;;, - 58;4;-0.707107,-0.707107, 0.000000, 0.000000;;, - 59;4;-0.707107,-0.707107, 0.000000, 0.000000;;, - 60;4;-0.707107,-0.707107, 0.000000, 0.000000;;, - 61;4;-0.707107,-0.707107, 0.000000, 0.000000;;, - 62;4;-0.712346,-0.701389, 0.000000, 0.000000;;, - 63;4;-0.727103,-0.685285, 0.000000, 0.000000;;, - 64;4;-0.746050,-0.664608, 0.000000, 0.000000;;, - 65;4;-0.760806,-0.648505, 0.000000, 0.000000;;, - 66;4;-0.766044,-0.642788, 0.000000, 0.000000;;, - 67;4;-0.763312,-0.645520, 0.000000, 0.000000;;, - 68;4;-0.755088,-0.653744, 0.000000, 0.000000;;, - 69;4;-0.741717,-0.667115, 0.000000, 0.000000;;, - 70;4;-0.724228,-0.684604, 0.000000, 0.000000;;, - 71;4;-0.704416,-0.704416, 0.000000, 0.000000;;, - 72;4;-0.684604,-0.724228, 0.000000, 0.000000;;, - 73;4;-0.667115,-0.741717, 0.000000, 0.000000;;, - 74;4;-0.653744,-0.755088, 0.000000, 0.000000;;, - 75;4;-0.645520,-0.763312, 0.000000, 0.000000;;, - 76;4;-0.642788,-0.766044, 0.000000, 0.000000;;, - 77;4;-0.645520,-0.763312, 0.000000, 0.000000;;, - 78;4;-0.653743,-0.755089, 0.000000, 0.000000;;, - 79;4;-0.667113,-0.741719, 0.000000, 0.000000;;, - 80;4;-0.684601,-0.724231, 0.000000, 0.000000;;; - } - AnimationKey { // Scale - 1; - 81; - 0;3; 1.000000, 1.000000, 1.000000;;, - 1;3; 1.000000, 1.000000, 1.000000;;, - 2;3; 1.000000, 1.000000, 1.000000;;, - 3;3; 1.000000, 1.000000, 1.000000;;, - 4;3; 1.000000, 1.000000, 1.000000;;, - 5;3; 1.000000, 1.000000, 1.000000;;, - 6;3; 1.000000, 1.000000, 1.000000;;, - 7;3; 1.000000, 1.000000, 1.000000;;, - 8;3; 1.000000, 1.000000, 1.000000;;, - 9;3; 1.000000, 1.000000, 1.000000;;, - 10;3; 1.000000, 1.000000, 1.000000;;, - 11;3; 1.000000, 1.000000, 1.000000;;, - 12;3; 1.000000, 1.000000, 1.000000;;, - 13;3; 1.000000, 1.000000, 1.000000;;, - 14;3; 1.000000, 1.000000, 1.000000;;, - 15;3; 1.000000, 1.000000, 1.000000;;, - 16;3; 1.000000, 1.000000, 1.000000;;, - 17;3; 1.000000, 1.000000, 1.000000;;, - 18;3; 1.000000, 1.000000, 1.000000;;, - 19;3; 1.000000, 1.000000, 1.000000;;, - 20;3; 1.000000, 1.000000, 1.000000;;, - 21;3; 1.000000, 1.000000, 1.000000;;, - 22;3; 1.000000, 1.000000, 1.000000;;, - 23;3; 1.000000, 1.000000, 1.000000;;, - 24;3; 1.000000, 1.000000, 1.000000;;, - 25;3; 1.000000, 1.000000, 1.000000;;, - 26;3; 1.000000, 1.000000, 1.000000;;, - 27;3; 1.000000, 1.000000, 1.000000;;, - 28;3; 1.000000, 1.000000, 1.000000;;, - 29;3; 1.000000, 1.000000, 1.000000;;, - 30;3; 1.000000, 1.000000, 1.000000;;, - 31;3; 1.000000, 1.000000, 1.000000;;, - 32;3; 1.000000, 1.000000, 1.000000;;, - 33;3; 1.000000, 1.000000, 1.000000;;, - 34;3; 1.000000, 1.000000, 1.000000;;, - 35;3; 1.000000, 1.000000, 1.000000;;, - 36;3; 1.000000, 1.000000, 1.000000;;, - 37;3; 1.000000, 1.000000, 1.000000;;, - 38;3; 1.000000, 1.000000, 1.000000;;, - 39;3; 1.000000, 1.000000, 1.000000;;, - 40;3; 1.000000, 1.000000, 1.000000;;, - 41;3; 1.000000, 1.000000, 1.000000;;, - 42;3; 1.000000, 1.000000, 1.000000;;, - 43;3; 1.000000, 1.000000, 1.000000;;, - 44;3; 1.000000, 1.000000, 1.000000;;, - 45;3; 1.000000, 1.000000, 1.000000;;, - 46;3; 1.000000, 1.000000, 1.000000;;, - 47;3; 1.000000, 1.000000, 1.000000;;, - 48;3; 1.000000, 1.000000, 1.000000;;, - 49;3; 1.000000, 1.000000, 1.000000;;, - 50;3; 1.000000, 1.000000, 1.000000;;, - 51;3; 1.000000, 1.000000, 1.000000;;, - 52;3; 1.000000, 1.000000, 1.000000;;, - 53;3; 1.000000, 1.000000, 1.000000;;, - 54;3; 1.000000, 1.000000, 1.000000;;, - 55;3; 1.000000, 1.000000, 1.000000;;, - 56;3; 1.000000, 1.000000, 1.000000;;, - 57;3; 1.000000, 1.000000, 1.000000;;, - 58;3; 1.000000, 1.000000, 1.000000;;, - 59;3; 1.000000, 1.000000, 1.000000;;, - 60;3; 1.000000, 1.000000, 1.000000;;, - 61;3; 1.000000, 1.000000, 1.000000;;, - 62;3; 1.000000, 1.000000, 1.000000;;, - 63;3; 1.000000, 1.000000, 1.000000;;, - 64;3; 1.000000, 1.000000, 1.000000;;, - 65;3; 1.000000, 1.000000, 1.000000;;, - 66;3; 1.000000, 1.000000, 1.000000;;, - 67;3; 1.000000, 1.000000, 1.000000;;, - 68;3; 1.000000, 1.000000, 1.000000;;, - 69;3; 1.000000, 1.000000, 1.000000;;, - 70;3; 1.000000, 1.000000, 1.000000;;, - 71;3; 1.000000, 1.000000, 1.000000;;, - 72;3; 1.000000, 1.000000, 1.000000;;, - 73;3; 1.000000, 1.000000, 1.000000;;, - 74;3; 1.000000, 1.000000, 1.000000;;, - 75;3; 1.000000, 1.000000, 1.000000;;, - 76;3; 1.000000, 1.000000, 1.000000;;, - 77;3; 1.000000, 1.000000, 1.000000;;, - 78;3; 1.000000, 1.000000, 1.000000;;, - 79;3; 1.000000, 1.000000, 1.000000;;, - 80;3; 1.000000, 1.000000, 1.000000;;; - } - AnimationKey { // Position - 2; - 81; - 0;3;-0.200000,-0.400000,-0.500000;;, - 1;3;-0.200000,-0.400000,-0.500000;;, - 2;3;-0.200000,-0.400000,-0.500000;;, - 3;3;-0.200000,-0.400000,-0.500000;;, - 4;3;-0.200000,-0.400000,-0.500000;;, - 5;3;-0.200000,-0.400000,-0.500000;;, - 6;3;-0.200000,-0.400000,-0.500000;;, - 7;3;-0.200000,-0.400000,-0.500000;;, - 8;3;-0.200000,-0.400000,-0.500000;;, - 9;3;-0.200000,-0.400000,-0.500000;;, - 10;3;-0.200000,-0.400000,-0.500000;;, - 11;3;-0.200000,-0.400000,-0.500000;;, - 12;3;-0.200000,-0.400000,-0.500000;;, - 13;3;-0.200000,-0.400000,-0.500000;;, - 14;3;-0.200000,-0.400000,-0.500000;;, - 15;3;-0.200000,-0.400000,-0.500000;;, - 16;3;-0.200000,-0.400000,-0.500000;;, - 17;3;-0.200000,-0.400000,-0.500000;;, - 18;3;-0.200000,-0.400000,-0.500000;;, - 19;3;-0.200000,-0.400000,-0.500000;;, - 20;3;-0.200000,-0.400000,-0.500000;;, - 21;3;-0.200000,-0.400000,-0.500000;;, - 22;3;-0.200000,-0.400000,-0.500000;;, - 23;3;-0.200000,-0.400000,-0.500000;;, - 24;3;-0.200000,-0.400000,-0.500000;;, - 25;3;-0.200000,-0.400000,-0.500000;;, - 26;3;-0.200000,-0.400000,-0.500000;;, - 27;3;-0.200000,-0.400000,-0.500000;;, - 28;3;-0.200000,-0.400000,-0.500000;;, - 29;3;-0.200000,-0.400000,-0.500000;;, - 30;3;-0.200000,-0.400000,-0.500000;;, - 31;3;-0.200000,-0.400000,-0.500000;;, - 32;3;-0.200000,-0.400000,-0.500000;;, - 33;3;-0.200000,-0.400000,-0.500000;;, - 34;3;-0.200000,-0.400000,-0.500000;;, - 35;3;-0.200000,-0.400000,-0.500000;;, - 36;3;-0.200000,-0.400000,-0.500000;;, - 37;3;-0.200000,-0.400000,-0.500000;;, - 38;3;-0.200000,-0.400000,-0.500000;;, - 39;3;-0.200000,-0.400000,-0.500000;;, - 40;3;-0.200000,-0.400000,-0.500000;;, - 41;3;-0.200000,-0.400000,-0.500000;;, - 42;3;-0.200000,-0.400000,-0.500000;;, - 43;3;-0.200000,-0.400000,-0.500000;;, - 44;3;-0.200000,-0.400000,-0.500000;;, - 45;3;-0.200000,-0.400000,-0.500000;;, - 46;3;-0.200000,-0.400000,-0.500000;;, - 47;3;-0.200000,-0.400000,-0.500000;;, - 48;3;-0.200000,-0.400000,-0.500000;;, - 49;3;-0.200000,-0.400000,-0.500000;;, - 50;3;-0.200000,-0.400000,-0.500000;;, - 51;3;-0.200000,-0.400000,-0.500000;;, - 52;3;-0.200000,-0.400000,-0.500000;;, - 53;3;-0.200000,-0.400000,-0.500000;;, - 54;3;-0.200000,-0.400000,-0.500000;;, - 55;3;-0.200000,-0.400000,-0.500000;;, - 56;3;-0.200000,-0.400000,-0.500000;;, - 57;3;-0.200000,-0.400000,-0.500000;;, - 58;3;-0.200000,-0.400000,-0.500000;;, - 59;3;-0.200000,-0.400000,-0.500000;;, - 60;3;-0.200000,-0.400000,-0.500000;;, - 61;3;-0.200000,-0.400000,-0.500000;;, - 62;3;-0.200000,-0.400000,-0.500000;;, - 63;3;-0.200000,-0.400000,-0.500000;;, - 64;3;-0.200000,-0.400000,-0.500000;;, - 65;3;-0.200000,-0.400000,-0.500000;;, - 66;3;-0.200000,-0.400000,-0.500000;;, - 67;3;-0.200000,-0.400000,-0.500000;;, - 68;3;-0.200000,-0.400000,-0.500000;;, - 69;3;-0.200000,-0.400000,-0.500000;;, - 70;3;-0.200000,-0.400000,-0.500000;;, - 71;3;-0.200000,-0.400000,-0.500000;;, - 72;3;-0.200000,-0.400000,-0.500000;;, - 73;3;-0.200000,-0.400000,-0.500000;;, - 74;3;-0.200000,-0.400000,-0.500000;;, - 75;3;-0.200000,-0.400000,-0.500000;;, - 76;3;-0.200000,-0.400000,-0.500000;;, - 77;3;-0.200000,-0.400000,-0.500000;;, - 78;3;-0.200000,-0.400000,-0.500000;;, - 79;3;-0.200000,-0.400000,-0.500000;;, - 80;3;-0.200000,-0.400000,-0.500000;;; - } - } -} // End of AnimationSet Global diff --git a/games/default/files/mobs_animal/models/mobs_sheep.b3d b/games/default/files/mobs_animal/models/mobs_sheep.b3d deleted file mode 100644 index bcf2dfc5c..000000000 Binary files a/games/default/files/mobs_animal/models/mobs_sheep.b3d and /dev/null differ diff --git a/games/default/files/mobs_animal/models/mobs_sheep_shaved.b3d b/games/default/files/mobs_animal/models/mobs_sheep_shaved.b3d deleted file mode 100644 index 857b406ae..000000000 Binary files a/games/default/files/mobs_animal/models/mobs_sheep_shaved.b3d and /dev/null differ diff --git a/games/default/files/mobs_animal/models/mobs_wolf.x b/games/default/files/mobs_animal/models/mobs_wolf.x deleted file mode 100644 index 4c7aace54..000000000 --- a/games/default/files/mobs_animal/models/mobs_wolf.x +++ /dev/null @@ -1,7420 +0,0 @@ -xof 0303txt 0032 - -template XSkinMeshHeader { - <3cf169ce-ff7c-44ab-93c0-f78f62d172e2> - WORD nMaxSkinWeightsPerVertex; - WORD nMaxSkinWeightsPerFace; - WORD nBones; -} - -template SkinWeights { - <6f0d123b-bad2-4167-a0d0-80224f25fabb> - STRING transformNodeName; - DWORD nWeights; - array DWORD vertexIndices[nWeights]; - array float weights[nWeights]; - Matrix4x4 matrixOffset; -} - -Frame Root { - FrameTransformMatrix { - 1.000000, 0.000000, 0.000000, 0.000000, - 0.000000, 0.000000, 1.000000, 0.000000, - 0.000000, 1.000000,-0.000000, 0.000000, - 0.000000, 0.000000, 0.000000, 1.000000;; - } - Frame Armature { - FrameTransformMatrix { - 2.153459, 0.000000, 0.000000, 0.000000, - 0.000000, 2.153459, 0.000000, 0.000000, - 0.000000, 0.000000, 2.153459, 0.000000, - -11.632589, 0.094256, 0.169731, 1.000000;; - } - Frame Armature_Body { - FrameTransformMatrix { - 1.000000, 0.000000, 0.000000, 0.000000, - 0.000000, 0.996529, 0.083252, 0.000000, - 0.000000,-0.083252, 0.996529, 0.000000, - 5.378092,-1.647068, 2.876912, 1.000000;; - } - Frame Armature_noga3 { - FrameTransformMatrix { - 0.000000,-0.996529, 0.083252, 0.000000, - -0.000000,-0.083252,-0.996529, 0.000000, - 1.000000, 0.000000,-0.000000, 0.000000, - 0.618225, 0.037596,-0.622362, 1.000000;; - } - } //End of Armature_noga3 - Frame Armature_noga1 { - FrameTransformMatrix { - 0.000000,-0.996529, 0.083252, 0.000000, - -0.000000,-0.083252,-0.996529, 0.000000, - 1.000000, 0.000000,-0.000000, 0.000000, - 0.618225, 3.072911,-0.875938, 1.000000;; - } - } //End of Armature_noga1 - Frame Armature_noga4 { - FrameTransformMatrix { - 0.000000,-0.996529, 0.083252, 0.000000, - -0.000000,-0.083252,-0.996529, 0.000000, - 1.000000, 0.000000,-0.000000, 0.000000, - -0.648382, 0.037596,-0.622362, 1.000000;; - } - } //End of Armature_noga4 - Frame Armature_noga2 { - FrameTransformMatrix { - 0.000000,-0.996529, 0.083252, 0.000000, - -0.000000,-0.083252,-0.996529, 0.000000, - 1.000000, 0.000000,-0.000000, 0.000000, - -0.648382, 3.072911,-0.875938, 1.000000;; - } - } //End of Armature_noga2 - Frame Armature_hvost { - FrameTransformMatrix { - 1.000000, 0.000000,-0.000000, 0.000000, - -0.000000,-0.522249,-0.852793, 0.000000, - -0.000000, 0.852793,-0.522249, 0.000000, - 0.000000,-0.295864,-0.017687, 1.000000;; - } - } //End of Armature_hvost - Frame Armature_sheya { - FrameTransformMatrix { - 0.997121, 0.074946,-0.011510, 0.000000, - -0.075824, 0.985074,-0.154533, 0.000000, - -0.000243, 0.154961, 0.987921, 0.000000, - 0.000000, 3.260104, 0.242284, 1.000000;; - } - Frame Armature_head { - FrameTransformMatrix { - 0.997121,-0.075824,-0.000243, 0.000000, - 0.075813, 0.996898, 0.021119, 0.000000, - -0.001359,-0.021076, 0.999777, 0.000000, - 0.068728, 0.903770, 0.009841, 1.000000;; - } - } //End of Armature_head - Frame Armature_zubi { - FrameTransformMatrix { - 0.997121,-0.075824,-0.000243, 0.000000, - 0.075658, 0.994708, 0.069515, 0.000000, - -0.005029,-0.069333, 0.997581, 0.000000, - 0.205805, 1.974131,-0.481359, 1.000000;; - } - } //End of Armature_zubi - } //End of Armature_sheya - } //End of Armature_Body - } //End of Armature - Frame Cube { - FrameTransformMatrix { - 2.153459, 0.000000, 0.000000, 0.000000, - 0.000000, 2.153459, 0.000000, 0.000000, - 0.000000, 0.000000, 2.153459, 0.000000, - -0.137034,-0.235439, 6.856374, 1.000000;; - } - Mesh { //Mesh Mesh - 344; - -1.000000; 0.155088;-0.615504;, - -1.000000; 2.052689;-0.915563;, - -1.000000; 2.052689; 0.915563;, - -1.000000; 0.155088; 0.615504;, - -1.000000; 2.052689;-0.915563;, - 1.000000; 2.052689;-0.915563;, - 1.000000; 2.052689; 0.915563;, - -1.000000; 2.052689; 0.915563;, - 1.000000; 0.155088;-0.615504;, - 1.000000;-1.728900;-0.764941;, - 1.000000;-1.728900; 0.565265;, - 1.000000; 0.155088; 0.615504;, - 1.000000;-1.728900;-0.764941;, - -1.000000;-1.728900;-0.764941;, - -1.000000;-1.728900; 0.565265;, - 1.000000;-1.728900; 0.565265;, - 1.000000; 0.155088;-0.615504;, - 1.000000; 2.052689;-0.915563;, - -1.000000; 2.052689;-0.915563;, - -1.000000; 0.155088;-0.615504;, - -1.000000; 0.155088; 0.615504;, - -1.000000; 2.052689; 0.915563;, - 1.000000; 2.052689; 0.915563;, - 1.000000; 0.155088; 0.615504;, - -1.000000;-1.728900;-0.764941;, - -1.000000; 0.155088;-0.615504;, - -1.000000; 0.155088; 0.615504;, - -1.000000;-1.728900; 0.565265;, - 1.000000; 2.052689;-0.915563;, - 1.000000; 0.155088;-0.615504;, - 1.000000; 0.155088; 0.615504;, - 1.000000; 2.052689; 0.915563;, - 1.000000;-1.728900;-0.764941;, - 1.000000; 0.155088;-0.615504;, - -1.000000; 0.155088;-0.615504;, - -1.000000;-1.728900;-0.764941;, - -1.000000;-1.728900; 0.565265;, - -1.000000; 0.155088; 0.615504;, - 1.000000; 0.155088; 0.615504;, - 1.000000;-1.728900; 0.565265;, - -0.478282; 1.627421;-0.497030;, - -0.478282; 2.777568;-0.242289;, - -0.478282; 2.571347; 0.688789;, - -0.478282; 1.421201; 0.434048;, - -0.478282; 2.777568;-0.242289;, - 0.646717; 2.777568;-0.242289;, - 0.646717; 2.571347; 0.688789;, - -0.478282; 2.571347; 0.688789;, - 0.646717; 2.777568;-0.242289;, - 0.646717; 1.627421;-0.497030;, - 0.646717; 1.421201; 0.434048;, - 0.646717; 2.571347; 0.688789;, - 0.646717; 1.627421;-0.497030;, - -0.478282; 1.627421;-0.497030;, - -0.478282; 1.421201; 0.434048;, - 0.646717; 1.421201; 0.434048;, - 0.646717; 1.627421;-0.497030;, - 0.646717; 2.777568;-0.242289;, - -0.478282; 2.777568;-0.242289;, - -0.478282; 1.627421;-0.497030;, - -0.478282; 1.421201; 0.434048;, - -0.478282; 2.571347; 0.688789;, - 0.646717; 2.571347; 0.688789;, - 0.646717; 1.421201; 0.434048;, - -0.671784; 2.547537;-0.382663;, - -0.671784; 3.191954;-0.382663;, - -0.671784; 3.191954; 0.728308;, - -0.671784; 2.547537; 0.728308;, - 0.512005; 3.820444;-0.294064;, - -0.394370; 3.820444;-0.294064;, - -0.671784; 3.191954;-0.382663;, - 0.789419; 3.191954;-0.382663;, - 0.789419; 3.191954;-0.382663;, - 0.789419; 2.547537;-0.382663;, - 0.789419; 2.547537; 0.728308;, - 0.789419; 3.191954; 0.728308;, - 0.789419; 2.547537;-0.382663;, - -0.671784; 2.547537;-0.382663;, - -0.671784; 2.547537; 0.728308;, - 0.789419; 2.547537; 0.728308;, - 0.789419; 2.547537;-0.382663;, - 0.789419; 3.191954;-0.382663;, - -0.671784; 3.191954;-0.382663;, - -0.671784; 2.547537;-0.382663;, - -0.671784; 2.547537; 0.728308;, - -0.671784; 3.191954; 0.728308;, - 0.789419; 3.191954; 0.728308;, - 0.789419; 2.547537; 0.728308;, - 0.512005; 4.671586;-0.294064;, - -0.394370; 4.671586;-0.294064;, - -0.394370; 3.820444;-0.294064;, - 0.512005; 3.820444;-0.294064;, - -0.394370; 3.820444; 0.345902;, - 0.512005; 3.820444; 0.345902;, - 0.789419; 3.191954; 0.728308;, - -0.671784; 3.191954; 0.728308;, - 0.512005; 3.820444; 0.345902;, - 0.512005; 3.820444;-0.294064;, - 0.789419; 3.191954;-0.382663;, - 0.789419; 3.191954; 0.728308;, - -0.671784; 3.191954; 0.728308;, - -0.671784; 3.191954;-0.382663;, - -0.394370; 3.820444;-0.294064;, - -0.394370; 3.820444; 0.345902;, - -0.394370; 4.671586;-0.294064;, - 0.512005; 4.671586;-0.294064;, - 0.512005; 4.671586; 0.345902;, - -0.394370; 4.671586; 0.345902;, - -0.394370; 3.820444; 0.345902;, - -0.394370; 3.820444;-0.294064;, - -0.394370; 4.671586;-0.294064;, - -0.394370; 4.671586; 0.345902;, - -0.394370; 4.671586; 0.345902;, - 0.512005; 4.671586; 0.345902;, - 0.512005; 3.820444; 0.345902;, - -0.394370; 3.820444; 0.345902;, - 0.512005; 4.671586; 0.345902;, - 0.512005; 4.671586;-0.294064;, - 0.512005; 3.820444;-0.294064;, - 0.512005; 3.820444; 0.345902;, - 0.278519; 2.361271; 0.644022;, - 0.278519; 2.654585; 0.644022;, - 0.520551; 2.654585; 1.302632;, - 0.520551; 2.361271; 1.302632;, - 0.278519; 2.654585; 0.644022;, - 0.787799; 2.696650; 0.644022;, - 0.798712; 2.696650; 1.302632;, - 0.520551; 2.654585; 1.302632;, - 0.787799; 2.696650; 0.644022;, - 0.787799; 2.403336; 0.644022;, - 0.798712; 2.403336; 1.302632;, - 0.798712; 2.696650; 1.302632;, - 0.787799; 2.403336; 0.644022;, - 0.278519; 2.361271; 0.644022;, - 0.520551; 2.361271; 1.302632;, - 0.798712; 2.403336; 1.302632;, - 0.787799; 2.403336; 0.644022;, - 0.787799; 2.696650; 0.644022;, - 0.278519; 2.654585; 0.644022;, - 0.278519; 2.361271; 0.644022;, - 0.520551; 2.361271; 1.302632;, - 0.520551; 2.654585; 1.302632;, - 0.798712; 2.696650; 1.302632;, - 0.798712; 2.403336; 1.302632;, - -0.681576; 2.380263; 0.632819;, - -0.681576; 2.673577; 0.632819;, - -0.646066; 2.673577; 1.291429;, - -0.646066; 2.380263; 1.291429;, - -0.681576; 2.673577; 0.632819;, - -0.172296; 2.673577; 0.632819;, - -0.391654; 2.673577; 1.291429;, - -0.646066; 2.673577; 1.291429;, - -0.172296; 2.673577; 0.632819;, - -0.172296; 2.380263; 0.632819;, - -0.391654; 2.380263; 1.291429;, - -0.391654; 2.673577; 1.291429;, - -0.172296; 2.380263; 0.632819;, - -0.681576; 2.380263; 0.632819;, - -0.646066; 2.380263; 1.291429;, - -0.391654; 2.380263; 1.291429;, - -0.172296; 2.380263; 0.632819;, - -0.172296; 2.673577; 0.632819;, - -0.681576; 2.673577; 0.632819;, - -0.681576; 2.380263; 0.632819;, - -0.646066; 2.380263; 1.291429;, - -0.646066; 2.673577; 1.291429;, - -0.391654; 2.673577; 1.291429;, - -0.391654; 2.380263; 1.291429;, - -0.120377;-2.912002;-1.784416;, - -0.120377;-2.476886;-2.017185;, - -0.255799;-2.099858;-1.559360;, - -0.255799;-2.740405;-1.216694;, - -0.120377;-2.476886;-2.017185;, - 0.335223;-2.476886;-2.017185;, - 0.470645;-2.099858;-1.559360;, - -0.255799;-2.099858;-1.559360;, - 0.335223;-2.476886;-2.017185;, - 0.335223;-2.912002;-1.784416;, - 0.470645;-2.740405;-1.216694;, - 0.470645;-2.099858;-1.559360;, - 0.335223;-2.912002;-1.784416;, - -0.120377;-2.912002;-1.784416;, - -0.255799;-2.740405;-1.216694;, - 0.470645;-2.740405;-1.216694;, - 0.335223;-2.912002;-1.784416;, - 0.335223;-2.476886;-2.017185;, - -0.120377;-2.476886;-2.017185;, - -0.120377;-2.912002;-1.784416;, - -0.154317;-1.667699; 0.122275;, - -0.154317;-1.356034;-0.044453;, - 0.369163;-1.356034;-0.044453;, - 0.369163;-1.667699; 0.122275;, - -0.255799;-2.255081;-0.309479;, - -0.255799;-1.614535;-0.652145;, - -0.154317;-1.356034;-0.044453;, - -0.154317;-1.667699; 0.122275;, - -0.255799;-1.614535;-0.652145;, - 0.470645;-1.614535;-0.652145;, - 0.369163;-1.356034;-0.044453;, - -0.154317;-1.356034;-0.044453;, - 0.470645;-1.614535;-0.652145;, - 0.470645;-2.255081;-0.309479;, - 0.369163;-1.667699; 0.122275;, - 0.369163;-1.356034;-0.044453;, - 0.470645;-2.255081;-0.309479;, - -0.255799;-2.255081;-0.309479;, - -0.154317;-1.667699; 0.122275;, - 0.369163;-1.667699; 0.122275;, - 0.470645;-2.099858;-1.559360;, - 0.470645;-2.740405;-1.216694;, - 0.470645;-2.255081;-0.309479;, - 0.470645;-1.614535;-0.652145;, - 0.470645;-2.740405;-1.216694;, - -0.255799;-2.740405;-1.216694;, - -0.255799;-2.255081;-0.309479;, - 0.470645;-2.255081;-0.309479;, - -0.792844; 1.496758;-3.209955;, - -0.792844; 1.849385;-3.209955;, - -0.884154; 1.982406;-0.866022;, - -0.884154; 1.363736;-0.866022;, - 0.819857; 1.496758;-3.209955;, - 0.819857; 1.849385;-3.209955;, - 0.440400; 1.849385;-3.209955;, - 0.440400; 1.496758;-3.209955;, - -0.255799;-2.099858;-1.559360;, - 0.470645;-2.099858;-1.559360;, - 0.470645;-1.614535;-0.652145;, - -0.255799;-1.614535;-0.652145;, - 0.440400; 1.496758;-3.209955;, - 0.440400; 1.849385;-3.209955;, - 0.349091; 1.982406;-0.866022;, - 0.349091; 1.363736;-0.866022;, - -0.255799;-2.740405;-1.216694;, - -0.255799;-2.099858;-1.559360;, - -0.255799;-1.614535;-0.652145;, - -0.255799;-2.255081;-0.309479;, - 0.349091; 1.363736;-0.866022;, - 0.349091; 1.982406;-0.866022;, - 0.911166; 1.982406;-0.866022;, - 0.911166; 1.363736;-0.866022;, - 0.440400; 1.849385;-3.209955;, - 0.819857; 1.849385;-3.209955;, - 0.911166; 1.982406;-0.866022;, - 0.349091; 1.982406;-0.866022;, - -0.413388; 1.496758;-3.209955;, - -0.413388; 1.849385;-3.209955;, - -0.792844; 1.849385;-3.209955;, - -0.792844; 1.496758;-3.209955;, - 0.819857; 1.496758;-3.209955;, - 0.440400; 1.496758;-3.209955;, - 0.349091; 1.363736;-0.866022;, - 0.911166; 1.363736;-0.866022;, - 0.819857; 1.849385;-3.209955;, - 0.819857; 1.496758;-3.209955;, - 0.911166; 1.363736;-0.866022;, - 0.911166; 1.982406;-0.866022;, - -0.884154; 1.363736;-0.866022;, - -0.884154; 1.982406;-0.866022;, - -0.322078; 1.982406;-0.866022;, - -0.322078; 1.363736;-0.866022;, - -0.792844; 1.849385;-3.209955;, - -0.413388; 1.849385;-3.209955;, - -0.322078; 1.982406;-0.866022;, - -0.884154; 1.982406;-0.866022;, - -0.413388; 1.496758;-3.209955;, - -0.792844; 1.496758;-3.209955;, - -0.884154; 1.363736;-0.866022;, - -0.322078; 1.363736;-0.866022;, - -0.413388; 1.849385;-3.209955;, - -0.413388; 1.496758;-3.209955;, - -0.322078; 1.363736;-0.866022;, - -0.322078; 1.982406;-0.866022;, - -0.792844;-1.578270;-3.209955;, - -0.792844;-1.225643;-3.209955;, - -0.884154;-1.092621;-0.866022;, - -0.884154;-1.711292;-0.866022;, - -0.413388;-1.578270;-3.209955;, - -0.413388;-1.225643;-3.209955;, - -0.792844;-1.225643;-3.209955;, - -0.792844;-1.578270;-3.209955;, - -0.884154;-1.711292;-0.866022;, - -0.884154;-1.092621;-0.866022;, - -0.322078;-1.092621;-0.866022;, - -0.322078;-1.711292;-0.866022;, - -0.792844;-1.225643;-3.209955;, - -0.413388;-1.225643;-3.209955;, - -0.322078;-1.092621;-0.866022;, - -0.884154;-1.092621;-0.866022;, - -0.413388;-1.578270;-3.209955;, - -0.792844;-1.578270;-3.209955;, - -0.884154;-1.711292;-0.866022;, - -0.322078;-1.711292;-0.866022;, - -0.413388;-1.225643;-3.209955;, - -0.413388;-1.578270;-3.209955;, - -0.322078;-1.711292;-0.866022;, - -0.322078;-1.092621;-0.866022;, - 0.483946;-1.578270;-3.209955;, - 0.483946;-1.225643;-3.209955;, - 0.392636;-1.092621;-0.866022;, - 0.392636;-1.711292;-0.866022;, - 0.863402;-1.578270;-3.209955;, - 0.863402;-1.225643;-3.209955;, - 0.483946;-1.225643;-3.209955;, - 0.483946;-1.578270;-3.209955;, - 0.392636;-1.711292;-0.866022;, - 0.392636;-1.092621;-0.866022;, - 0.954712;-1.092621;-0.866022;, - 0.954712;-1.711292;-0.866022;, - 0.483946;-1.225643;-3.209955;, - 0.863402;-1.225643;-3.209955;, - 0.954712;-1.092621;-0.866022;, - 0.392636;-1.092621;-0.866022;, - 0.863402;-1.578270;-3.209955;, - 0.483946;-1.578270;-3.209955;, - 0.392636;-1.711292;-0.866022;, - 0.954712;-1.711292;-0.866022;, - 0.863402;-1.225643;-3.209955;, - 0.863402;-1.578270;-3.209955;, - 0.954712;-1.711292;-0.866022;, - 0.954712;-1.092621;-0.866022;, - -0.256903; 3.727607;-0.368337;, - -0.256903; 4.656346;-0.368337;, - -0.256903; 4.656346;-0.315211;, - -0.256903; 3.727607;-0.315211;, - -0.256903; 4.656346;-0.368337;, - 0.410987; 4.656346;-0.368337;, - 0.410987; 4.656346;-0.315211;, - -0.256903; 4.656346;-0.315211;, - 0.410987; 4.656346;-0.368337;, - 0.410987; 3.727607;-0.368337;, - 0.410987; 3.727607;-0.315211;, - 0.410987; 4.656346;-0.315211;, - 0.410987; 3.727607;-0.368337;, - -0.256903; 3.727607;-0.368337;, - -0.256903; 3.727607;-0.315211;, - 0.410987; 3.727607;-0.315211;, - 0.410987; 3.727607;-0.368337;, - 0.410987; 4.656346;-0.368337;, - -0.256903; 4.656346;-0.368337;, - -0.256903; 3.727607;-0.368337;, - -0.256903; 3.727607;-0.315211;, - -0.256903; 4.656346;-0.315211;, - 0.410987; 4.656346;-0.315211;, - 0.410987; 3.727607;-0.315211;; - 86; - 4;0;1;2;3;, - 4;4;5;6;7;, - 4;8;9;10;11;, - 4;12;13;14;15;, - 4;16;17;18;19;, - 4;20;21;22;23;, - 4;24;25;26;27;, - 4;28;29;30;31;, - 4;32;33;34;35;, - 4;36;37;38;39;, - 4;40;41;42;43;, - 4;44;45;46;47;, - 4;48;49;50;51;, - 4;52;53;54;55;, - 4;56;57;58;59;, - 4;60;61;62;63;, - 4;64;65;66;67;, - 4;68;69;70;71;, - 4;72;73;74;75;, - 4;76;77;78;79;, - 4;80;81;82;83;, - 4;84;85;86;87;, - 4;88;89;90;91;, - 4;92;93;94;95;, - 4;96;97;98;99;, - 4;100;101;102;103;, - 4;104;105;106;107;, - 4;108;109;110;111;, - 4;112;113;114;115;, - 4;116;117;118;119;, - 4;120;121;122;123;, - 4;124;125;126;127;, - 4;128;129;130;131;, - 4;132;133;134;135;, - 4;136;137;138;139;, - 4;140;141;142;143;, - 4;144;145;146;147;, - 4;148;149;150;151;, - 4;152;153;154;155;, - 4;156;157;158;159;, - 4;160;161;162;163;, - 4;164;165;166;167;, - 4;168;169;170;171;, - 4;172;173;174;175;, - 4;176;177;178;179;, - 4;180;181;182;183;, - 4;184;185;186;187;, - 4;188;189;190;191;, - 4;192;193;194;195;, - 4;196;197;198;199;, - 4;200;201;202;203;, - 4;204;205;206;207;, - 4;208;209;210;211;, - 4;212;213;214;215;, - 4;216;217;218;219;, - 4;220;221;222;223;, - 4;224;225;226;227;, - 4;228;229;230;231;, - 4;232;233;234;235;, - 4;236;237;238;239;, - 4;240;241;242;243;, - 4;244;245;246;247;, - 4;248;249;250;251;, - 4;252;253;254;255;, - 4;256;257;258;259;, - 4;260;261;262;263;, - 4;264;265;266;267;, - 4;268;269;270;271;, - 4;272;273;274;275;, - 4;276;277;278;279;, - 4;280;281;282;283;, - 4;284;285;286;287;, - 4;288;289;290;291;, - 4;292;293;294;295;, - 4;296;297;298;299;, - 4;300;301;302;303;, - 4;304;305;306;307;, - 4;308;309;310;311;, - 4;312;313;314;315;, - 4;316;317;318;319;, - 4;320;321;322;323;, - 4;324;325;326;327;, - 4;328;329;330;331;, - 4;332;333;334;335;, - 4;336;337;338;339;, - 4;340;341;342;343;; - MeshNormals { //Mesh Normals - 344; - -1.000000; 0.000000; 0.000000;, - -1.000000; 0.000000; 0.000000;, - -1.000000; 0.000000; 0.000000;, - -1.000000; 0.000000; 0.000000;, - 0.000000; 1.000000;-0.000000;, - 0.000000; 1.000000;-0.000000;, - 0.000000; 1.000000;-0.000000;, - 0.000000; 1.000000;-0.000000;, - 1.000000; 0.000000;-0.000000;, - 1.000000; 0.000000;-0.000000;, - 1.000000; 0.000000;-0.000000;, - 1.000000; 0.000000;-0.000000;, - 0.000000;-1.000000; 0.000000;, - 0.000000;-1.000000; 0.000000;, - 0.000000;-1.000000; 0.000000;, - 0.000000;-1.000000; 0.000000;, - 0.000000;-0.156185;-0.987728;, - 0.000000;-0.156185;-0.987728;, - 0.000000;-0.156185;-0.987728;, - 0.000000;-0.156185;-0.987728;, - -0.000000;-0.156185; 0.987728;, - -0.000000;-0.156185; 0.987728;, - -0.000000;-0.156185; 0.987728;, - -0.000000;-0.156185; 0.987728;, - -1.000000; 0.000000; 0.000000;, - -1.000000; 0.000000; 0.000000;, - -1.000000; 0.000000; 0.000000;, - -1.000000; 0.000000; 0.000000;, - 1.000000; 0.000000;-0.000000;, - 1.000000; 0.000000;-0.000000;, - 1.000000; 0.000000;-0.000000;, - 1.000000; 0.000000;-0.000000;, - 0.000000; 0.079071;-0.996869;, - 0.000000; 0.079071;-0.996869;, - 0.000000; 0.079071;-0.996869;, - 0.000000; 0.079071;-0.996869;, - 0.000000;-0.026657; 0.999645;, - 0.000000;-0.026657; 0.999645;, - 0.000000;-0.026657; 0.999645;, - 0.000000;-0.026657; 0.999645;, - -1.000000; 0.000000; 0.000000;, - -1.000000; 0.000000; 0.000000;, - -1.000000; 0.000000; 0.000000;, - -1.000000; 0.000000; 0.000000;, - 0.000000; 0.976339; 0.216245;, - 0.000000; 0.976339; 0.216245;, - 0.000000; 0.976339; 0.216245;, - 0.000000; 0.976339; 0.216245;, - 1.000000; 0.000000;-0.000000;, - 1.000000; 0.000000;-0.000000;, - 1.000000; 0.000000;-0.000000;, - 1.000000; 0.000000;-0.000000;, - 0.000000;-0.976339;-0.216245;, - 0.000000;-0.976339;-0.216245;, - 0.000000;-0.976339;-0.216245;, - 0.000000;-0.976339;-0.216245;, - 0.000000; 0.216245;-0.976339;, - 0.000000; 0.216245;-0.976339;, - 0.000000; 0.216245;-0.976339;, - 0.000000; 0.216245;-0.976339;, - 0.000000;-0.216245; 0.976339;, - 0.000000;-0.216245; 0.976339;, - 0.000000;-0.216245; 0.976339;, - 0.000000;-0.216245; 0.976339;, - -1.000000; 0.000000; 0.000000;, - -1.000000; 0.000000; 0.000000;, - -1.000000; 0.000000; 0.000000;, - -1.000000; 0.000000; 0.000000;, - 0.000000; 0.139591;-0.990209;, - 0.000000; 0.139591;-0.990209;, - 0.000000; 0.139591;-0.990209;, - 0.000000; 0.139591;-0.990209;, - 1.000000; 0.000000;-0.000000;, - 1.000000; 0.000000;-0.000000;, - 1.000000; 0.000000;-0.000000;, - 1.000000; 0.000000;-0.000000;, - 0.000000;-1.000000; 0.000000;, - 0.000000;-1.000000; 0.000000;, - 0.000000;-1.000000; 0.000000;, - 0.000000;-1.000000; 0.000000;, - -0.000000; 0.000000;-1.000000;, - -0.000000; 0.000000;-1.000000;, - -0.000000; 0.000000;-1.000000;, - -0.000000; 0.000000;-1.000000;, - -0.000000; 0.000000; 1.000000;, - -0.000000; 0.000000; 1.000000;, - -0.000000; 0.000000; 1.000000;, - -0.000000; 0.000000; 1.000000;, - 0.000000;-0.000000;-1.000000;, - 0.000000;-0.000000;-1.000000;, - 0.000000;-0.000000;-1.000000;, - 0.000000;-0.000000;-1.000000;, - 0.000000; 0.519795; 0.854291;, - 0.000000; 0.519795; 0.854291;, - 0.000000; 0.519795; 0.854291;, - 0.000000; 0.519795; 0.854291;, - 0.914843; 0.403810; 0.000000;, - 0.914843; 0.403810; 0.000000;, - 0.914843; 0.403810; 0.000000;, - 0.914843; 0.403810; 0.000000;, - -0.914843; 0.403810; 0.000000;, - -0.914843; 0.403810; 0.000000;, - -0.914843; 0.403810; 0.000000;, - -0.914843; 0.403810; 0.000000;, - 0.000000; 1.000000;-0.000000;, - 0.000000; 1.000000;-0.000000;, - 0.000000; 1.000000;-0.000000;, - 0.000000; 1.000000;-0.000000;, - -1.000000; 0.000000; 0.000000;, - -1.000000; 0.000000; 0.000000;, - -1.000000; 0.000000; 0.000000;, - -1.000000; 0.000000; 0.000000;, - 0.000000; 0.000000; 1.000000;, - 0.000000; 0.000000; 1.000000;, - 0.000000; 0.000000; 1.000000;, - 0.000000; 0.000000; 1.000000;, - 1.000000; 0.000000; 0.000000;, - 1.000000; 0.000000; 0.000000;, - 1.000000; 0.000000; 0.000000;, - 1.000000; 0.000000; 0.000000;, - -0.938627; 0.000000; 0.344935;, - -0.938627; 0.000000; 0.344935;, - -0.938627; 0.000000; 0.344935;, - -0.938627; 0.000000; 0.344935;, - -0.106213; 0.994134; 0.020396;, - -0.106213; 0.994134; 0.020396;, - -0.106213; 0.994134; 0.020396;, - -0.106213; 0.994134; 0.020396;, - 0.999863; 0.000000;-0.016567;, - 0.999863; 0.000000;-0.016567;, - 0.999863; 0.000000;-0.016567;, - 0.999863; 0.000000;-0.016567;, - 0.106213;-0.994134;-0.020396;, - 0.106213;-0.994134;-0.020396;, - 0.106213;-0.994134;-0.020396;, - 0.106213;-0.994134;-0.020396;, - -0.000000; 0.000000;-1.000000;, - -0.000000; 0.000000;-1.000000;, - -0.000000; 0.000000;-1.000000;, - -0.000000; 0.000000;-1.000000;, - -0.000000; 0.000000; 1.000000;, - -0.000000; 0.000000; 1.000000;, - -0.000000; 0.000000; 1.000000;, - -0.000000; 0.000000; 1.000000;, - -0.998550; 0.000000; 0.053839;, - -0.998550; 0.000000; 0.053839;, - -0.998550; 0.000000; 0.053839;, - -0.998550; 0.000000; 0.053839;, - 0.000000; 1.000000;-0.000000;, - 0.000000; 1.000000;-0.000000;, - 0.000000; 1.000000;-0.000000;, - 0.000000; 1.000000;-0.000000;, - 0.948761; 0.000000; 0.315995;, - 0.948761; 0.000000; 0.315995;, - 0.948761; 0.000000; 0.315995;, - 0.948761; 0.000000; 0.315995;, - 0.000000;-1.000000; 0.000000;, - 0.000000;-1.000000; 0.000000;, - 0.000000;-1.000000; 0.000000;, - 0.000000;-1.000000; 0.000000;, - -0.000000; 0.000000;-1.000000;, - -0.000000; 0.000000;-1.000000;, - -0.000000; 0.000000;-1.000000;, - -0.000000; 0.000000;-1.000000;, - -0.000000; 0.000000; 1.000000;, - -0.000000; 0.000000; 1.000000;, - -0.000000; 0.000000; 1.000000;, - -0.000000; 0.000000; 1.000000;, - -0.973941;-0.106983;-0.199983;, - -0.973941;-0.106983;-0.199983;, - -0.973941;-0.106983;-0.199983;, - -0.973941;-0.106983;-0.199983;, - 0.000000; 0.771934;-0.635703;, - 0.000000; 0.771934;-0.635703;, - 0.000000; 0.771934;-0.635703;, - 0.000000; 0.771934;-0.635703;, - 0.973941;-0.106983;-0.199983;, - 0.973941;-0.106983;-0.199983;, - 0.973941;-0.106983;-0.199983;, - 0.973941;-0.106983;-0.199983;, - 0.000000;-0.957230; 0.289329;, - 0.000000;-0.957230; 0.289329;, - 0.000000;-0.957230; 0.289329;, - 0.000000;-0.957230; 0.289329;, - 0.000000;-0.471704;-0.881757;, - 0.000000;-0.471704;-0.881757;, - 0.000000;-0.471704;-0.881757;, - 0.000000;-0.471704;-0.881757;, - 0.000000; 0.471704; 0.881757;, - 0.000000; 0.471704; 0.881757;, - 0.000000; 0.471704; 0.881757;, - 0.000000; 0.471704; 0.881757;, - -0.988307; 0.071924; 0.134447;, - -0.988307; 0.071924; 0.134447;, - -0.988307; 0.071924; 0.134447;, - -0.988307; 0.071924; 0.134447;, - 0.000000; 0.920205;-0.391438;, - 0.000000; 0.920205;-0.391438;, - 0.000000; 0.920205;-0.391438;, - 0.000000; 0.920205;-0.391438;, - 0.988307; 0.071924; 0.134447;, - 0.988307; 0.071924; 0.134447;, - 0.988307; 0.071924; 0.134447;, - 0.988307; 0.071924; 0.134447;, - 0.000000;-0.592261; 0.805746;, - 0.000000;-0.592261; 0.805746;, - 0.000000;-0.592261; 0.805746;, - 0.000000;-0.592261; 0.805746;, - 1.000000; 0.000000;-0.000000;, - 1.000000; 0.000000;-0.000000;, - 1.000000; 0.000000;-0.000000;, - 1.000000; 0.000000;-0.000000;, - 0.000000;-0.881757; 0.471704;, - 0.000000;-0.881757; 0.471704;, - 0.000000;-0.881757; 0.471704;, - 0.000000;-0.881757; 0.471704;, - -0.999242; 0.000000;-0.038926;, - -0.999242; 0.000000;-0.038926;, - -0.999242; 0.000000;-0.038926;, - -0.999242; 0.000000;-0.038926;, - -0.000000; 0.000000;-1.000000;, - -0.000000; 0.000000;-1.000000;, - -0.000000; 0.000000;-1.000000;, - -0.000000; 0.000000;-1.000000;, - 0.000000; 0.881757;-0.471704;, - 0.000000; 0.881757;-0.471704;, - 0.000000; 0.881757;-0.471704;, - 0.000000; 0.881757;-0.471704;, - -0.999242; 0.000000;-0.038926;, - -0.999242; 0.000000;-0.038926;, - -0.999242; 0.000000;-0.038926;, - -0.999242; 0.000000;-0.038926;, - -1.000000; 0.000000; 0.000000;, - -1.000000; 0.000000; 0.000000;, - -1.000000; 0.000000; 0.000000;, - -1.000000; 0.000000; 0.000000;, - -0.000000; 0.000000; 1.000000;, - -0.000000; 0.000000; 1.000000;, - -0.000000; 0.000000; 1.000000;, - -0.000000; 0.000000; 1.000000;, - 0.000000; 0.998394;-0.056660;, - 0.000000; 0.998394;-0.056660;, - 0.000000; 0.998394;-0.056660;, - 0.000000; 0.998394;-0.056660;, - -0.000000; 0.000000;-1.000000;, - -0.000000; 0.000000;-1.000000;, - -0.000000; 0.000000;-1.000000;, - -0.000000; 0.000000;-1.000000;, - 0.000000;-0.998394;-0.056660;, - 0.000000;-0.998394;-0.056660;, - 0.000000;-0.998394;-0.056660;, - 0.000000;-0.998394;-0.056660;, - 0.999242; 0.000000;-0.038926;, - 0.999242; 0.000000;-0.038926;, - 0.999242; 0.000000;-0.038926;, - 0.999242; 0.000000;-0.038926;, - -0.000000; 0.000000; 1.000000;, - -0.000000; 0.000000; 1.000000;, - -0.000000; 0.000000; 1.000000;, - -0.000000; 0.000000; 1.000000;, - 0.000000; 0.998394;-0.056660;, - 0.000000; 0.998394;-0.056660;, - 0.000000; 0.998394;-0.056660;, - 0.000000; 0.998394;-0.056660;, - 0.000000;-0.998394;-0.056660;, - 0.000000;-0.998394;-0.056660;, - 0.000000;-0.998394;-0.056660;, - 0.000000;-0.998394;-0.056660;, - 0.999242; 0.000000;-0.038926;, - 0.999242; 0.000000;-0.038926;, - 0.999242; 0.000000;-0.038926;, - 0.999242; 0.000000;-0.038926;, - -0.999242; 0.000000;-0.038926;, - -0.999242; 0.000000;-0.038926;, - -0.999242; 0.000000;-0.038926;, - -0.999242; 0.000000;-0.038926;, - -0.000000; 0.000000;-1.000000;, - -0.000000; 0.000000;-1.000000;, - -0.000000; 0.000000;-1.000000;, - -0.000000; 0.000000;-1.000000;, - -0.000000; 0.000000; 1.000000;, - -0.000000; 0.000000; 1.000000;, - -0.000000; 0.000000; 1.000000;, - -0.000000; 0.000000; 1.000000;, - 0.000000; 0.998394;-0.056660;, - 0.000000; 0.998394;-0.056660;, - 0.000000; 0.998394;-0.056660;, - 0.000000; 0.998394;-0.056660;, - 0.000000;-0.998394;-0.056660;, - 0.000000;-0.998394;-0.056660;, - 0.000000;-0.998394;-0.056660;, - 0.000000;-0.998394;-0.056660;, - 0.999242; 0.000000;-0.038926;, - 0.999242; 0.000000;-0.038926;, - 0.999242; 0.000000;-0.038926;, - 0.999242; 0.000000;-0.038926;, - -0.999242; 0.000000;-0.038926;, - -0.999242; 0.000000;-0.038926;, - -0.999242; 0.000000;-0.038926;, - -0.999242; 0.000000;-0.038926;, - -0.000000; 0.000000;-1.000000;, - -0.000000; 0.000000;-1.000000;, - -0.000000; 0.000000;-1.000000;, - -0.000000; 0.000000;-1.000000;, - -0.000000; 0.000000; 1.000000;, - -0.000000; 0.000000; 1.000000;, - -0.000000; 0.000000; 1.000000;, - -0.000000; 0.000000; 1.000000;, - 0.000000; 0.998394;-0.056660;, - 0.000000; 0.998394;-0.056660;, - 0.000000; 0.998394;-0.056660;, - 0.000000; 0.998394;-0.056660;, - 0.000000;-0.998394;-0.056660;, - 0.000000;-0.998394;-0.056660;, - 0.000000;-0.998394;-0.056660;, - 0.000000;-0.998394;-0.056660;, - 0.999242; 0.000000;-0.038926;, - 0.999242; 0.000000;-0.038926;, - 0.999242; 0.000000;-0.038926;, - 0.999242; 0.000000;-0.038926;, - -1.000000; 0.000000; 0.000000;, - -1.000000; 0.000000; 0.000000;, - -1.000000; 0.000000; 0.000000;, - -1.000000; 0.000000; 0.000000;, - 0.000000; 1.000000;-0.000000;, - 0.000000; 1.000000;-0.000000;, - 0.000000; 1.000000;-0.000000;, - 0.000000; 1.000000;-0.000000;, - 1.000000; 0.000000;-0.000000;, - 1.000000; 0.000000;-0.000000;, - 1.000000; 0.000000;-0.000000;, - 1.000000; 0.000000;-0.000000;, - 0.000000;-1.000000; 0.000000;, - 0.000000;-1.000000; 0.000000;, - 0.000000;-1.000000; 0.000000;, - 0.000000;-1.000000; 0.000000;, - -0.000000; 0.000000;-1.000000;, - -0.000000; 0.000000;-1.000000;, - -0.000000; 0.000000;-1.000000;, - -0.000000; 0.000000;-1.000000;, - -0.000000; 0.000000; 1.000000;, - -0.000000; 0.000000; 1.000000;, - -0.000000; 0.000000; 1.000000;, - -0.000000; 0.000000; 1.000000;; - 86; - 4;0;1;2;3;, - 4;4;5;6;7;, - 4;8;9;10;11;, - 4;12;13;14;15;, - 4;16;17;18;19;, - 4;20;21;22;23;, - 4;24;25;26;27;, - 4;28;29;30;31;, - 4;32;33;34;35;, - 4;36;37;38;39;, - 4;40;41;42;43;, - 4;44;45;46;47;, - 4;48;49;50;51;, - 4;52;53;54;55;, - 4;56;57;58;59;, - 4;60;61;62;63;, - 4;64;65;66;67;, - 4;68;69;70;71;, - 4;72;73;74;75;, - 4;76;77;78;79;, - 4;80;81;82;83;, - 4;84;85;86;87;, - 4;88;89;90;91;, - 4;92;93;94;95;, - 4;96;97;98;99;, - 4;100;101;102;103;, - 4;104;105;106;107;, - 4;108;109;110;111;, - 4;112;113;114;115;, - 4;116;117;118;119;, - 4;120;121;122;123;, - 4;124;125;126;127;, - 4;128;129;130;131;, - 4;132;133;134;135;, - 4;136;137;138;139;, - 4;140;141;142;143;, - 4;144;145;146;147;, - 4;148;149;150;151;, - 4;152;153;154;155;, - 4;156;157;158;159;, - 4;160;161;162;163;, - 4;164;165;166;167;, - 4;168;169;170;171;, - 4;172;173;174;175;, - 4;176;177;178;179;, - 4;180;181;182;183;, - 4;184;185;186;187;, - 4;188;189;190;191;, - 4;192;193;194;195;, - 4;196;197;198;199;, - 4;200;201;202;203;, - 4;204;205;206;207;, - 4;208;209;210;211;, - 4;212;213;214;215;, - 4;216;217;218;219;, - 4;220;221;222;223;, - 4;224;225;226;227;, - 4;228;229;230;231;, - 4;232;233;234;235;, - 4;236;237;238;239;, - 4;240;241;242;243;, - 4;244;245;246;247;, - 4;248;249;250;251;, - 4;252;253;254;255;, - 4;256;257;258;259;, - 4;260;261;262;263;, - 4;264;265;266;267;, - 4;268;269;270;271;, - 4;272;273;274;275;, - 4;276;277;278;279;, - 4;280;281;282;283;, - 4;284;285;286;287;, - 4;288;289;290;291;, - 4;292;293;294;295;, - 4;296;297;298;299;, - 4;300;301;302;303;, - 4;304;305;306;307;, - 4;308;309;310;311;, - 4;312;313;314;315;, - 4;316;317;318;319;, - 4;320;321;322;323;, - 4;324;325;326;327;, - 4;328;329;330;331;, - 4;332;333;334;335;, - 4;336;337;338;339;, - 4;340;341;342;343;; - } //End of Mesh Normals - MeshMaterialList { //Mesh Material List - 1; - 1; - 0;; - Material Default_Material { - 0.800000; 0.800000; 0.800000; 0.800000;; - 96.078431; - 0.500000; 0.500000; 0.500000;; - 0.000000; 0.000000; 0.000000;; - } - } //End of Mesh Material List - MeshTextureCoords { //Mesh UV Coordinates - 344; - 0.444664; 0.882740;, - 0.453010; 0.994603;, - 0.352139; 0.990704;, - 0.370352; 0.882084;, - 0.699615; 0.826957;, - 0.888198; 0.826957;, - 0.888198; 0.999617;, - 0.699615; 0.999617;, - 0.566940; 0.877116;, - 0.559308; 0.768256;, - 0.664340; 0.764336;, - 0.671138; 0.868138;, - 0.999617; 0.397190;, - 0.811034; 0.397190;, - 0.811034; 0.271762;, - 0.999617; 0.271762;, - 0.566940; 0.877116;, - 0.565483; 0.991269;, - 0.453010; 0.994603;, - 0.444664; 0.882740;, - 0.370352; 0.882084;, - 0.352139; 0.990704;, - 0.243744; 0.976452;, - 0.255729; 0.872295;, - 0.447331; 0.770867;, - 0.444664; 0.882740;, - 0.370352; 0.882084;, - 0.373731; 0.773298;, - 0.565483; 0.991269;, - 0.566940; 0.877116;, - 0.671138; 0.868138;, - 0.670488; 0.977139;, - 0.559308; 0.768256;, - 0.566940; 0.877116;, - 0.444664; 0.882740;, - 0.447331; 0.770867;, - 0.373731; 0.773298;, - 0.370352; 0.882084;, - 0.255729; 0.872295;, - 0.261819; 0.766836;, - 0.694945; 0.168323;, - 0.694945; 0.057246;, - 0.784866; 0.057246;, - 0.784866; 0.168323;, - 0.978885; 0.802852;, - 0.978885; 0.908930;, - 0.888965; 0.908930;, - 0.888965; 0.802852;, - 0.980864; 0.057246;, - 0.980864; 0.168323;, - 0.890944; 0.168323;, - 0.890944; 0.057246;, - 0.995043; 0.999617;, - 0.888965; 0.999617;, - 0.888965; 0.909696;, - 0.995043; 0.909696;, - 0.588867; 0.168323;, - 0.588867; 0.057246;, - 0.694945; 0.057246;, - 0.694945; 0.168323;, - 0.784866; 0.168323;, - 0.784866; 0.057246;, - 0.890944; 0.057246;, - 0.890944; 0.168323;, - 0.581893; 0.381313;, - 0.525981; 0.490259;, - 0.379618; 0.402841;, - 0.398054; 0.301018;, - 0.815523; 0.662938;, - 0.815524; 0.728486;, - 0.769623; 0.748548;, - 0.769623; 0.642876;, - 0.048873; 0.480128;, - 0.006488; 0.386718;, - 0.167529; 0.313647;, - 0.194276; 0.403737;, - 0.988636; 0.730470;, - 0.896211; 0.730470;, - 0.896211; 0.660198;, - 0.988636; 0.660198;, - 0.723019; 0.642876;, - 0.769623; 0.642876;, - 0.769623; 0.748548;, - 0.723019; 0.748548;, - 0.398054; 0.301018;, - 0.379618; 0.402841;, - 0.194276; 0.403737;, - 0.167529; 0.313647;, - 0.877077; 0.662938;, - 0.877077; 0.728486;, - 0.815524; 0.728486;, - 0.815523; 0.662938;, - 0.357048; 0.517540;, - 0.216152; 0.507657;, - 0.194276; 0.403737;, - 0.379618; 0.402841;, - 0.216152; 0.507657;, - 0.120216; 0.568830;, - 0.048873; 0.480128;, - 0.194276; 0.403737;, - 0.379618; 0.402841;, - 0.525981; 0.490259;, - 0.444034; 0.577428;, - 0.357048; 0.517540;, - 0.362490; 0.686881;, - 0.215162; 0.682739;, - 0.251936; 0.612341;, - 0.315469; 0.601729;, - 0.357048; 0.517540;, - 0.444034; 0.577428;, - 0.362490; 0.686881;, - 0.315469; 0.601729;, - 0.315469; 0.601729;, - 0.251936; 0.612341;, - 0.216152; 0.507657;, - 0.357048; 0.517540;, - 0.251936; 0.612341;, - 0.215162; 0.682739;, - 0.120216; 0.568830;, - 0.216152; 0.507657;, - 0.882221; 0.248633;, - 0.854668; 0.246226;, - 0.860426; 0.180315;, - 0.887978; 0.182722;, - 0.854668; 0.246226;, - 0.811034; 0.225788;, - 0.836391; 0.169090;, - 0.860426; 0.180315;, - 0.955560; 0.229325;, - 0.928738; 0.236069;, - 0.913594; 0.175833;, - 0.940417; 0.169090;, - 0.928738; 0.236069;, - 0.882221; 0.248633;, - 0.887978; 0.182722;, - 0.913594; 0.175833;, - 0.568666; 0.188259;, - 0.570943; 0.215822;, - 0.522758; 0.215822;, - 0.520482; 0.188259;, - 0.557028; 0.187492;, - 0.557028; 0.159835;, - 0.583256; 0.155869;, - 0.583256; 0.183526;, - 0.831256; 0.582510;, - 0.811034; 0.563643;, - 0.853460; 0.518170;, - 0.873682; 0.537037;, - 0.941763; 0.626056;, - 0.893812; 0.623471;, - 0.917809; 0.562573;, - 0.941763; 0.563864;, - 0.893812; 0.623471;, - 0.868081; 0.613331;, - 0.892078; 0.552433;, - 0.917809; 0.562573;, - 0.868081; 0.613331;, - 0.831256; 0.582510;, - 0.873682; 0.537037;, - 0.892078; 0.552433;, - 0.680049; 0.227106;, - 0.680049; 0.254763;, - 0.632028; 0.254763;, - 0.632028; 0.227106;, - 0.631262; 0.227106;, - 0.631262; 0.254763;, - 0.607273; 0.254763;, - 0.607273; 0.227106;, - 0.151813; 0.952191;, - 0.112345; 0.947279;, - 0.113514; 0.904716;, - 0.158003; 0.906790;, - 0.112345; 0.947279;, - 0.077106; 0.948022;, - 0.069721; 0.907057;, - 0.113514; 0.904716;, - 0.077106; 0.948022;, - 0.041465; 0.957980;, - 0.021003; 0.917204;, - 0.069721; 0.907057;, - 0.189475; 0.963315;, - 0.151813; 0.952191;, - 0.158003; 0.906790;, - 0.212875; 0.914749;, - 0.563441; 0.216588;, - 0.563441; 0.263118;, - 0.520482; 0.263118;, - 0.520482; 0.216588;, - 0.758717; 0.826190;, - 0.758717; 0.792862;, - 0.808077; 0.792862;, - 0.808077; 0.826190;, - 0.160570; 0.844684;, - 0.116458; 0.842962;, - 0.117818; 0.795850;, - 0.145830; 0.795143;, - 0.116458; 0.842962;, - 0.069466; 0.841189;, - 0.076449; 0.791324;, - 0.117818; 0.795850;, - 0.069466; 0.841189;, - 0.014746; 0.837740;, - 0.047872; 0.785711;, - 0.076449; 0.791324;, - 0.209296; 0.833892;, - 0.160570; 0.844684;, - 0.145830; 0.795143;, - 0.184389; 0.782622;, - 0.069721; 0.907057;, - 0.021003; 0.917204;, - 0.014746; 0.837740;, - 0.069466; 0.841189;, - 0.212875; 0.914749;, - 0.158003; 0.906790;, - 0.160570; 0.844684;, - 0.209296; 0.833892;, - 0.696701; 0.623144;, - 0.663486; 0.624673;, - 0.640785; 0.404303;, - 0.699058; 0.401620;, - 0.556261; 0.154243;, - 0.556261; 0.187492;, - 0.520482; 0.187492;, - 0.520482; 0.154243;, - 0.113514; 0.904716;, - 0.069721; 0.907057;, - 0.069466; 0.841189;, - 0.116458; 0.842962;, - 0.696269; 0.621054;, - 0.663054; 0.622583;, - 0.640352; 0.402213;, - 0.698626; 0.399530;, - 0.158003; 0.906790;, - 0.113514; 0.904716;, - 0.116458; 0.842962;, - 0.160570; 0.844684;, - 0.621714; 0.314631;, - 0.680049; 0.314631;, - 0.680049; 0.367630;, - 0.621714; 0.367630;, - 0.663054; 0.622583;, - 0.627632; 0.627630;, - 0.587883; 0.409689;, - 0.640352; 0.402213;, - 0.844623; 0.792862;, - 0.844623; 0.826112;, - 0.808843; 0.826112;, - 0.808843; 0.792862;, - 0.732005; 0.622825;, - 0.696269; 0.621054;, - 0.698626; 0.399530;, - 0.751560; 0.402153;, - 0.764905; 0.627630;, - 0.732005; 0.622825;, - 0.751560; 0.402153;, - 0.809283; 0.410584;, - 0.699615; 0.773191;, - 0.757950; 0.773191;, - 0.757950; 0.826190;, - 0.699615; 0.826190;, - 0.663486; 0.624673;, - 0.628065; 0.629720;, - 0.588315; 0.411779;, - 0.640785; 0.404303;, - 0.732437; 0.624915;, - 0.696701; 0.623144;, - 0.699058; 0.401620;, - 0.751992; 0.404243;, - 0.765338; 0.629720;, - 0.732437; 0.624915;, - 0.751992; 0.404243;, - 0.809715; 0.412674;, - 0.697254; 0.619480;, - 0.664039; 0.621009;, - 0.641336; 0.400639;, - 0.699610; 0.397956;, - 0.680049; 0.193089;, - 0.680049; 0.226339;, - 0.644269; 0.226339;, - 0.644269; 0.193089;, - 0.680049; 0.255529;, - 0.680049; 0.313865;, - 0.627050; 0.313865;, - 0.627050; 0.255529;, - 0.664039; 0.621009;, - 0.628617; 0.626056;, - 0.588867; 0.408115;, - 0.641336; 0.400639;, - 0.732989; 0.621251;, - 0.697254; 0.619480;, - 0.699610; 0.397956;, - 0.752544; 0.400579;, - 0.765890; 0.626056;, - 0.732989; 0.621251;, - 0.752544; 0.400579;, - 0.810267; 0.409010;, - 0.697253; 0.620613;, - 0.664039; 0.622143;, - 0.641336; 0.401773;, - 0.699610; 0.399090;, - 0.643503; 0.193089;, - 0.643503; 0.226339;, - 0.607723; 0.226339;, - 0.607723; 0.193089;, - 0.573481; 0.263885;, - 0.573481; 0.322220;, - 0.520482; 0.322220;, - 0.520482; 0.263885;, - 0.664039; 0.622143;, - 0.628617; 0.627190;, - 0.588867; 0.409249;, - 0.641336; 0.401773;, - 0.732989; 0.622384;, - 0.697253; 0.620613;, - 0.699610; 0.399090;, - 0.752544; 0.401713;, - 0.765890; 0.627190;, - 0.732989; 0.622384;, - 0.752544; 0.401713;, - 0.810267; 0.410144;, - 0.000000; 1.000000;, - 0.000000; 1.000000;, - 0.000000; 1.000000;, - 0.000000; 1.000000;, - 0.000000; 1.000000;, - 0.000000; 1.000000;, - 0.000000; 1.000000;, - 0.000000; 1.000000;, - 0.000000; 1.000000;, - 0.000000; 1.000000;, - 0.000000; 1.000000;, - 0.000000; 1.000000;, - 0.000000; 1.000000;, - 0.000000; 1.000000;, - 0.000000; 1.000000;, - 0.000000; 1.000000;, - 0.000000; 1.000000;, - 0.000000; 1.000000;, - 0.000000; 1.000000;, - 0.000000; 1.000000;, - 0.000000; 1.000000;, - 0.000000; 1.000000;, - 0.000000; 1.000000;, - 0.000000; 1.000000;; - } //End of Mesh UV Coordinates - XSkinMeshHeader { - 1; - 3; - 9; - } - SkinWeights { - "Armature_Body"; - 40; - 0, - 1, - 2, - 3, - 4, - 5, - 6, - 7, - 8, - 9, - 10, - 11, - 12, - 13, - 14, - 15, - 16, - 17, - 18, - 19, - 20, - 21, - 22, - 23, - 24, - 25, - 26, - 27, - 28, - 29, - 30, - 31, - 32, - 33, - 34, - 35, - 36, - 37, - 38, - 39; - 1.000000, - 1.000000, - 1.000000, - 1.000000, - 1.000000, - 1.000000, - 1.000000, - 1.000000, - 1.000000, - 1.000000, - 1.000000, - 1.000000, - 1.000000, - 1.000000, - 1.000000, - 1.000000, - 1.000000, - 1.000000, - 1.000000, - 1.000000, - 1.000000, - 1.000000, - 1.000000, - 1.000000, - 1.000000, - 1.000000, - 1.000000, - 1.000000, - 1.000000, - 1.000000, - 1.000000, - 1.000000, - 1.000000, - 1.000000, - 1.000000, - 1.000000, - 1.000000, - 1.000000, - 1.000000, - 1.000000; - 1.000000, 0.000000, 0.000000, 0.000000, - 0.000000, 0.996529,-0.083252, 0.000000, - 0.000000, 0.083252, 0.996529, 0.000000, - -0.039910, 1.507776, 0.102992, 1.000000;; - } //End of Armature_Body Skin Weights - SkinWeights { - "Armature_zubi"; - 24; - 320, - 321, - 322, - 323, - 324, - 325, - 326, - 327, - 328, - 329, - 330, - 331, - 332, - 333, - 334, - 335, - 336, - 337, - 338, - 339, - 340, - 341, - 342, - 343; - 1.000000, - 1.000000, - 1.000000, - 1.000000, - 1.000000, - 1.000000, - 1.000000, - 1.000000, - 1.000000, - 1.000000, - 1.000000, - 1.000000, - 1.000000, - 1.000000, - 1.000000, - 1.000000, - 1.000000, - 1.000000, - 1.000000, - 1.000000, - 1.000000, - 1.000000, - 1.000000, - 1.000000; - 1.000000,-0.000000, 0.000000, 0.000000, - 0.000000, 0.999497, 0.031712, 0.000000, - -0.000000,-0.031712, 0.999497, 0.000000, - -0.095553,-3.687672, 0.221770, 1.000000;; - } //End of Armature_zubi Skin Weights - SkinWeights { - "Armature_hvost"; - 56; - 168, - 169, - 170, - 171, - 172, - 173, - 174, - 175, - 176, - 177, - 178, - 179, - 180, - 181, - 182, - 183, - 184, - 185, - 186, - 187, - 188, - 189, - 190, - 191, - 192, - 193, - 194, - 195, - 196, - 197, - 198, - 199, - 200, - 201, - 202, - 203, - 204, - 205, - 206, - 207, - 208, - 209, - 210, - 211, - 212, - 213, - 214, - 215, - 224, - 225, - 226, - 227, - 232, - 233, - 234, - 235; - 1.000000, - 1.000000, - 1.000000, - 1.000000, - 1.000000, - 1.000000, - 1.000000, - 1.000000, - 1.000000, - 1.000000, - 1.000000, - 1.000000, - 1.000000, - 1.000000, - 1.000000, - 1.000000, - 1.000000, - 1.000000, - 1.000000, - 1.000000, - 1.000000, - 1.000000, - 1.000000, - 1.000000, - 1.000000, - 1.000000, - 1.000000, - 1.000000, - 1.000000, - 1.000000, - 1.000000, - 1.000000, - 1.000000, - 1.000000, - 1.000000, - 1.000000, - 1.000000, - 1.000000, - 1.000000, - 1.000000, - 1.000000, - 1.000000, - 1.000000, - 1.000000, - 1.000000, - 1.000000, - 1.000000, - 1.000000, - 1.000000, - 1.000000, - 1.000000, - 1.000000, - 1.000000, - 1.000000, - 1.000000, - 1.000000; - 1.000000,-0.000000,-0.000000, 0.000000, - 0.000000,-0.449440, 0.893311, 0.000000, - -0.000000,-0.893311,-0.449440, 0.000000, - -0.039909,-1.044864, 1.475107, 1.000000;; - } //End of Armature_hvost Skin Weights - SkinWeights { - "Armature_head"; - 104; - 64, - 65, - 66, - 67, - 68, - 69, - 70, - 71, - 72, - 73, - 74, - 75, - 76, - 77, - 78, - 79, - 80, - 81, - 82, - 83, - 84, - 85, - 86, - 87, - 88, - 89, - 90, - 91, - 92, - 93, - 94, - 95, - 96, - 97, - 98, - 99, - 100, - 101, - 102, - 103, - 104, - 105, - 106, - 107, - 108, - 109, - 110, - 111, - 112, - 113, - 114, - 115, - 116, - 117, - 118, - 119, - 120, - 121, - 122, - 123, - 124, - 125, - 126, - 127, - 128, - 129, - 130, - 131, - 132, - 133, - 134, - 135, - 136, - 137, - 138, - 139, - 140, - 141, - 142, - 143, - 144, - 145, - 146, - 147, - 148, - 149, - 150, - 151, - 152, - 153, - 154, - 155, - 156, - 157, - 158, - 159, - 160, - 161, - 162, - 163, - 164, - 165, - 166, - 167; - 1.000000, - 1.000000, - 1.000000, - 1.000000, - 1.000000, - 1.000000, - 1.000000, - 1.000000, - 1.000000, - 1.000000, - 1.000000, - 1.000000, - 1.000000, - 1.000000, - 1.000000, - 1.000000, - 1.000000, - 1.000000, - 1.000000, - 1.000000, - 1.000000, - 1.000000, - 1.000000, - 1.000000, - 1.000000, - 1.000000, - 1.000000, - 1.000000, - 1.000000, - 1.000000, - 1.000000, - 1.000000, - 1.000000, - 1.000000, - 1.000000, - 1.000000, - 1.000000, - 1.000000, - 1.000000, - 1.000000, - 1.000000, - 1.000000, - 1.000000, - 1.000000, - 1.000000, - 1.000000, - 1.000000, - 1.000000, - 1.000000, - 1.000000, - 1.000000, - 1.000000, - 1.000000, - 1.000000, - 1.000000, - 1.000000, - 1.000000, - 1.000000, - 1.000000, - 1.000000, - 1.000000, - 1.000000, - 1.000000, - 1.000000, - 1.000000, - 1.000000, - 1.000000, - 1.000000, - 1.000000, - 1.000000, - 1.000000, - 1.000000, - 1.000000, - 1.000000, - 1.000000, - 1.000000, - 1.000000, - 1.000000, - 1.000000, - 1.000000, - 1.000000, - 1.000000, - 1.000000, - 1.000000, - 1.000000, - 1.000000, - 1.000000, - 1.000000, - 1.000000, - 1.000000, - 1.000000, - 1.000000, - 1.000000, - 1.000000, - 1.000000, - 1.000000, - 1.000000, - 1.000000, - 1.000000, - 1.000000, - 1.000000, - 1.000000, - 1.000000, - 1.000000; - 1.000000,-0.000000, 0.000000, 0.000000, - -0.000000, 0.998694, 0.051097, 0.000000, - -0.000000,-0.051097, 0.998694, 0.000000, - -0.039910,-2.624220,-0.363653, 1.000000;; - } //End of Armature_head Skin Weights - SkinWeights { - "Armature_noga2"; - 24; - 216, - 217, - 218, - 219, - 244, - 245, - 246, - 247, - 256, - 257, - 258, - 259, - 260, - 261, - 262, - 263, - 264, - 265, - 266, - 267, - 268, - 269, - 270, - 271; - 1.000000, - 1.000000, - 1.000000, - 1.000000, - 1.000000, - 1.000000, - 1.000000, - 1.000000, - 1.000000, - 1.000000, - 1.000000, - 1.000000, - 1.000000, - 1.000000, - 1.000000, - 1.000000, - 1.000000, - 1.000000, - 1.000000, - 1.000000, - 1.000000, - 1.000000, - 1.000000, - 1.000000; - 0.000000,-0.000000, 1.000000, 0.000000, - -1.000000,-0.000000, 0.000000, 0.000000, - -0.000000,-1.000000,-0.000000, 0.000000, - 1.641199,-0.845231, 0.608472, 1.000000;; - } //End of Armature_noga2 Skin Weights - SkinWeights { - "Armature_noga1"; - 24; - 220, - 221, - 222, - 223, - 228, - 229, - 230, - 231, - 236, - 237, - 238, - 239, - 240, - 241, - 242, - 243, - 248, - 249, - 250, - 251, - 252, - 253, - 254, - 255; - 1.000000, - 1.000000, - 1.000000, - 1.000000, - 1.000000, - 1.000000, - 1.000000, - 1.000000, - 1.000000, - 1.000000, - 1.000000, - 1.000000, - 1.000000, - 1.000000, - 1.000000, - 1.000000, - 1.000000, - 1.000000, - 1.000000, - 1.000000, - 1.000000, - 1.000000, - 1.000000, - 1.000000; - 0.000000,-0.000000, 1.000000, 0.000000, - -1.000000,-0.000000, 0.000000, 0.000000, - -0.000000,-1.000000,-0.000000, 0.000000, - 1.641199,-0.845231,-0.658136, 1.000000;; - } //End of Armature_noga1 Skin Weights - SkinWeights { - "Armature_sheya"; - 24; - 40, - 41, - 42, - 43, - 44, - 45, - 46, - 47, - 48, - 49, - 50, - 51, - 52, - 53, - 54, - 55, - 56, - 57, - 58, - 59, - 60, - 61, - 62, - 63; - 1.000000, - 1.000000, - 1.000000, - 1.000000, - 1.000000, - 1.000000, - 1.000000, - 1.000000, - 1.000000, - 1.000000, - 1.000000, - 1.000000, - 1.000000, - 1.000000, - 1.000000, - 1.000000, - 1.000000, - 1.000000, - 1.000000, - 1.000000, - 1.000000, - 1.000000, - 1.000000, - 1.000000; - 0.997121,-0.075824,-0.000243, 0.000000, - 0.075644, 0.994519, 0.072177, 0.000000, - -0.005231,-0.071988, 0.997392, 0.000000, - -0.169522,-1.701621,-0.409142, 1.000000;; - } //End of Armature_sheya Skin Weights - SkinWeights { - "Armature_noga4"; - 24; - 272, - 273, - 274, - 275, - 276, - 277, - 278, - 279, - 280, - 281, - 282, - 283, - 284, - 285, - 286, - 287, - 288, - 289, - 290, - 291, - 292, - 293, - 294, - 295; - 1.000000, - 1.000000, - 1.000000, - 1.000000, - 1.000000, - 1.000000, - 1.000000, - 1.000000, - 1.000000, - 1.000000, - 1.000000, - 1.000000, - 1.000000, - 1.000000, - 1.000000, - 1.000000, - 1.000000, - 1.000000, - 1.000000, - 1.000000, - 1.000000, - 1.000000, - 1.000000, - 1.000000; - 0.000000,-0.000000, 1.000000, 0.000000, - -1.000000,-0.000000, 0.000000, 0.000000, - -0.000000,-1.000000,-0.000000, 0.000000, - -1.404690,-0.845231, 0.608472, 1.000000;; - } //End of Armature_noga4 Skin Weights - SkinWeights { - "Armature_noga3"; - 24; - 296, - 297, - 298, - 299, - 300, - 301, - 302, - 303, - 304, - 305, - 306, - 307, - 308, - 309, - 310, - 311, - 312, - 313, - 314, - 315, - 316, - 317, - 318, - 319; - 1.000000, - 1.000000, - 1.000000, - 1.000000, - 1.000000, - 1.000000, - 1.000000, - 1.000000, - 1.000000, - 1.000000, - 1.000000, - 1.000000, - 1.000000, - 1.000000, - 1.000000, - 1.000000, - 1.000000, - 1.000000, - 1.000000, - 1.000000, - 1.000000, - 1.000000, - 1.000000, - 1.000000; - 0.000000,-0.000000, 1.000000, 0.000000, - -1.000000,-0.000000, 0.000000, 0.000000, - -0.000000,-1.000000,-0.000000, 0.000000, - -1.404690,-0.845231,-0.658136, 1.000000;; - } //End of Armature_noga3 Skin Weights - } //End of Mesh Mesh - } //End of Cube -} //End of Root Frame -AnimationSet { - Animation { - {Armature} - AnimationKey { //Position - 2; - 156; - 0;3; -11.632589, 0.094256, 0.169731;;, - 1;3; -11.632589, 0.094256, 0.169731;;, - 2;3; -11.632589, 0.094256, 0.169731;;, - 3;3; -11.632589, 0.094256, 0.169731;;, - 4;3; -11.632589, 0.094256, 0.169731;;, - 5;3; -11.632589, 0.094256, 0.169731;;, - 6;3; -11.632589, 0.094256, 0.169731;;, - 7;3; -11.632589, 0.094256, 0.169731;;, - 8;3; -11.632589, 0.094256, 0.169731;;, - 9;3; -11.632589, 0.094256, 0.169731;;, - 10;3; -11.632589, 0.094256, 0.169731;;, - 11;3; -11.632589, 0.094256, 0.169731;;, - 12;3; -11.632589, 0.094256, 0.169731;;, - 13;3; -11.632589, 0.094256, 0.169731;;, - 14;3; -11.632589, 0.094256, 0.169731;;, - 15;3; -11.632589, 0.094256, 0.169731;;, - 16;3; -11.632589, 0.094256, 0.169731;;, - 17;3; -11.632589, 0.094256, 0.169731;;, - 18;3; -11.632589, 0.094256, 0.169731;;, - 19;3; -11.632589, 0.094256, 0.169731;;, - 20;3; -11.632589, 0.094256, 0.169731;;, - 21;3; -11.632589, 0.094256, 0.169731;;, - 22;3; -11.632589, 0.094256, 0.169731;;, - 23;3; -11.632589, 0.094256, 0.169731;;, - 24;3; -11.632589, 0.094256, 0.169731;;, - 25;3; -11.632589, 0.094256, 0.169731;;, - 26;3; -11.632589, 0.094256, 0.169731;;, - 27;3; -11.632589, 0.094256, 0.169731;;, - 28;3; -11.632589, 0.094256, 0.169731;;, - 29;3; -11.632589, 0.094256, 0.169731;;, - 30;3; -11.632589, 0.094256, 0.169731;;, - 31;3; -11.632589, 0.094256, 0.169731;;, - 32;3; -11.632589, 0.094256, 0.169731;;, - 33;3; -11.632589, 0.094256, 0.169731;;, - 34;3; -11.632589, 0.094256, 0.169731;;, - 35;3; -11.632589, 0.094256, 0.169731;;, - 36;3; -11.632589, 0.094256, 0.169731;;, - 37;3; -11.632589, 0.094256, 0.169731;;, - 38;3; -11.632589, 0.094256, 0.169731;;, - 39;3; -11.632589, 0.094256, 0.169731;;, - 40;3; -11.632589, 0.094256, 0.169731;;, - 41;3; -11.632589, 0.094256, 0.169731;;, - 42;3; -11.632589, 0.094256, 0.169731;;, - 43;3; -11.632589, 0.094256, 0.169731;;, - 44;3; -11.632589, 0.094256, 0.169731;;, - 45;3; -11.632589, 0.094256, 0.169731;;, - 46;3; -11.632589, 0.094256, 0.169731;;, - 47;3; -11.632589, 0.094256, 0.169731;;, - 48;3; -11.632589, 0.094256, 0.169731;;, - 49;3; -11.632589, 0.094256, 0.169731;;, - 50;3; -11.632589, 0.094256, 0.169731;;, - 51;3; -11.632589, 0.094256, 0.169731;;, - 52;3; -11.632589, 0.094256, 0.169731;;, - 53;3; -11.632589, 0.094256, 0.169731;;, - 54;3; -11.632589, 0.094256, 0.169731;;, - 55;3; -11.632589, 0.094256, 0.169731;;, - 56;3; -11.632589, 0.094256, 0.169731;;, - 57;3; -11.632589, 0.094256, 0.169731;;, - 58;3; -11.632589, 0.094256, 0.169731;;, - 59;3; -11.632589, 0.094256, 0.169731;;, - 60;3; -11.632589, 0.094256, 0.169731;;, - 61;3; -11.632589, 0.094256, 0.169731;;, - 62;3; -11.632589, 0.094256, 0.169731;;, - 63;3; -11.632589, 0.094256, 0.169731;;, - 64;3; -11.632589, 0.094256, 0.169731;;, - 65;3; -11.632589, 0.094256, 0.169731;;, - 66;3; -11.632589, 0.094256, 0.169731;;, - 67;3; -11.632589, 0.094256, 0.169731;;, - 68;3; -11.632589, 0.094256, 0.169731;;, - 69;3; -11.632589, 0.094256, 0.169731;;, - 70;3; -11.632589, 0.094256, 0.169731;;, - 71;3; -11.632589, 0.094256, 0.169731;;, - 72;3; -11.632589, 0.094256, 0.169731;;, - 73;3; -11.632589, 0.094256, 0.169731;;, - 74;3; -11.632589, 0.094256, 0.169731;;, - 75;3; -11.632589, 0.094256, 0.169731;;, - 76;3; -11.632589, 0.094256, 0.169731;;, - 77;3; -11.632589, 0.094256, 0.169731;;, - 78;3; -11.632589, 0.094256, 0.169731;;, - 79;3; -11.632589, 0.094256, 0.169731;;, - 80;3; -11.632589, 0.094256, 0.169731;;, - 81;3; -11.632589, 0.094256, 0.169731;;, - 82;3; -11.632589, 0.094256, 0.169731;;, - 83;3; -11.632589, 0.094256, 0.169731;;, - 84;3; -11.632589, 0.094256, 0.169731;;, - 85;3; -11.632589, 0.094256, 0.169731;;, - 86;3; -11.632589, 0.094256, 0.169731;;, - 87;3; -11.632589, 0.094256, 0.169731;;, - 88;3; -11.632589, 0.094256, 0.169731;;, - 89;3; -11.632589, 0.094256, 0.169731;;, - 90;3; -11.632589, 0.094256, 0.169731;;, - 91;3; -11.632589, 0.094256, 0.169731;;, - 92;3; -11.632589, 0.094256, 0.169731;;, - 93;3; -11.632589, 0.094256, 0.169731;;, - 94;3; -11.632589, 0.094256, 0.169731;;, - 95;3; -11.632589, 0.094256, 0.169731;;, - 96;3; -11.632589, 0.094256, 0.169731;;, - 97;3; -11.632589, 0.094256, 0.169731;;, - 98;3; -11.632589, 0.094256, 0.169731;;, - 99;3; -11.632589, 0.094256, 0.169731;;, - 100;3; -11.632589, 0.094256, 0.169731;;, - 101;3; -11.632589, 0.094256, 0.169731;;, - 102;3; -11.632589, 0.094256, 0.169731;;, - 103;3; -11.632589, 0.094256, 0.169731;;, - 104;3; -11.632589, 0.094256, 0.169731;;, - 105;3; -11.632589, 0.094256, 0.169731;;, - 106;3; -11.632589, 0.094256, 0.169731;;, - 107;3; -11.632589, 0.094256, 0.169731;;, - 108;3; -11.632589, 0.094256, 0.169731;;, - 109;3; -11.632589, 0.094256, 0.169731;;, - 110;3; -11.632589, 0.094256, 0.169731;;, - 111;3; -11.632589, 0.094256, 0.169731;;, - 112;3; -11.632589, 0.094256, 0.169731;;, - 113;3; -11.632589, 0.094256, 0.169731;;, - 114;3; -11.632589, 0.094256, 0.169731;;, - 115;3; -11.632589, 0.094256, 0.169731;;, - 116;3; -11.632589, 0.094256, 0.169731;;, - 117;3; -11.632589, 0.094256, 0.169731;;, - 118;3; -11.632589, 0.094256, 0.169731;;, - 119;3; -11.632589, 0.094256, 0.169731;;, - 120;3; -11.632589, 0.094256, 0.169731;;, - 121;3; -11.632589, 0.094256, 0.169731;;, - 122;3; -11.632589, 0.094256, 0.169731;;, - 123;3; -11.632589, 0.094256, 0.169731;;, - 124;3; -11.632589, 0.094256, 0.169731;;, - 125;3; -11.632589, 0.094256, 0.169731;;, - 126;3; -11.632589, 0.094256, 0.169731;;, - 127;3; -11.632589, 0.094256, 0.169731;;, - 128;3; -11.632589, 0.094256, 0.169731;;, - 129;3; -11.632589, 0.094256, 0.169731;;, - 130;3; -11.632589, 0.094256, 0.169731;;, - 131;3; -11.632589, 0.094256, 0.169731;;, - 132;3; -11.632589, 0.094256, 0.169731;;, - 133;3; -11.632589, 0.094256, 0.169731;;, - 134;3; -11.632589, 0.094256, 0.169731;;, - 135;3; -11.632589, 0.094256, 0.169731;;, - 136;3; -11.632589, 0.094256, 0.169731;;, - 137;3; -11.632589, 0.094256, 0.169731;;, - 138;3; -11.632589, 0.094256, 0.169731;;, - 139;3; -11.632589, 0.094256, 0.169731;;, - 140;3; -11.632589, 0.094256, 0.169731;;, - 141;3; -11.632589, 0.094256, 0.169731;;, - 142;3; -11.632589, 0.094256, 0.169731;;, - 143;3; -11.632589, 0.094256, 0.169731;;, - 144;3; -11.632589, 0.094256, 0.169731;;, - 145;3; -11.632589, 0.094256, 0.169731;;, - 146;3; -11.632589, 0.094256, 0.169731;;, - 147;3; -11.632589, 0.094256, 0.169731;;, - 148;3; -11.632589, 0.094256, 0.169731;;, - 149;3; -11.632589, 0.094256, 0.169731;;, - 150;3; -11.632589, 0.094256, 0.169731;;, - 151;3; -11.632589, 0.094256, 0.169731;;, - 152;3; -11.632589, 0.094256, 0.169731;;, - 153;3; -11.632589, 0.094256, 0.169731;;, - 154;3; -11.632589, 0.094256, 0.169731;;, - 155;3; -11.632589, 0.094256, 0.169731;;; - } - AnimationKey { //Rotation - 0; - 156; - 0;4; -1.000000, 0.000000, 0.000000, 0.000000;;, - 1;4; -1.000000, 0.000000, 0.000000, 0.000000;;, - 2;4; -1.000000, 0.000000, 0.000000, 0.000000;;, - 3;4; -1.000000, 0.000000, 0.000000, 0.000000;;, - 4;4; -1.000000, 0.000000, 0.000000, 0.000000;;, - 5;4; -1.000000, 0.000000, 0.000000, 0.000000;;, - 6;4; -1.000000, 0.000000, 0.000000, 0.000000;;, - 7;4; -1.000000, 0.000000, 0.000000, 0.000000;;, - 8;4; -1.000000, 0.000000, 0.000000, 0.000000;;, - 9;4; -1.000000, 0.000000, 0.000000, 0.000000;;, - 10;4; -1.000000, 0.000000, 0.000000, 0.000000;;, - 11;4; -1.000000, 0.000000, 0.000000, 0.000000;;, - 12;4; -1.000000, 0.000000, 0.000000, 0.000000;;, - 13;4; -1.000000, 0.000000, 0.000000, 0.000000;;, - 14;4; -1.000000, 0.000000, 0.000000, 0.000000;;, - 15;4; -1.000000, 0.000000, 0.000000, 0.000000;;, - 16;4; -1.000000, 0.000000, 0.000000, 0.000000;;, - 17;4; -1.000000, 0.000000, 0.000000, 0.000000;;, - 18;4; -1.000000, 0.000000, 0.000000, 0.000000;;, - 19;4; -1.000000, 0.000000, 0.000000, 0.000000;;, - 20;4; -1.000000, 0.000000, 0.000000, 0.000000;;, - 21;4; -1.000000, 0.000000, 0.000000, 0.000000;;, - 22;4; -1.000000, 0.000000, 0.000000, 0.000000;;, - 23;4; -1.000000, 0.000000, 0.000000, 0.000000;;, - 24;4; -1.000000, 0.000000, 0.000000, 0.000000;;, - 25;4; -1.000000, 0.000000, 0.000000, 0.000000;;, - 26;4; -1.000000, 0.000000, 0.000000, 0.000000;;, - 27;4; -1.000000, 0.000000, 0.000000, 0.000000;;, - 28;4; -1.000000, 0.000000, 0.000000, 0.000000;;, - 29;4; -1.000000, 0.000000, 0.000000, 0.000000;;, - 30;4; -1.000000, 0.000000, 0.000000, 0.000000;;, - 31;4; -1.000000, 0.000000, 0.000000, 0.000000;;, - 32;4; -1.000000, 0.000000, 0.000000, 0.000000;;, - 33;4; -1.000000, 0.000000, 0.000000, 0.000000;;, - 34;4; -1.000000, 0.000000, 0.000000, 0.000000;;, - 35;4; -1.000000, 0.000000, 0.000000, 0.000000;;, - 36;4; -1.000000, 0.000000, 0.000000, 0.000000;;, - 37;4; -1.000000, 0.000000, 0.000000, 0.000000;;, - 38;4; -1.000000, 0.000000, 0.000000, 0.000000;;, - 39;4; -1.000000, 0.000000, 0.000000, 0.000000;;, - 40;4; -1.000000, 0.000000, 0.000000, 0.000000;;, - 41;4; -1.000000, 0.000000, 0.000000, 0.000000;;, - 42;4; -1.000000, 0.000000, 0.000000, 0.000000;;, - 43;4; -1.000000, 0.000000, 0.000000, 0.000000;;, - 44;4; -1.000000, 0.000000, 0.000000, 0.000000;;, - 45;4; -1.000000, 0.000000, 0.000000, 0.000000;;, - 46;4; -1.000000, 0.000000, 0.000000, 0.000000;;, - 47;4; -1.000000, 0.000000, 0.000000, 0.000000;;, - 48;4; -1.000000, 0.000000, 0.000000, 0.000000;;, - 49;4; -1.000000, 0.000000, 0.000000, 0.000000;;, - 50;4; -1.000000, 0.000000, 0.000000, 0.000000;;, - 51;4; -1.000000, 0.000000, 0.000000, 0.000000;;, - 52;4; -1.000000, 0.000000, 0.000000, 0.000000;;, - 53;4; -1.000000, 0.000000, 0.000000, 0.000000;;, - 54;4; -1.000000, 0.000000, 0.000000, 0.000000;;, - 55;4; -1.000000, 0.000000, 0.000000, 0.000000;;, - 56;4; -1.000000, 0.000000, 0.000000, 0.000000;;, - 57;4; -1.000000, 0.000000, 0.000000, 0.000000;;, - 58;4; -1.000000, 0.000000, 0.000000, 0.000000;;, - 59;4; -1.000000, 0.000000, 0.000000, 0.000000;;, - 60;4; -1.000000, 0.000000, 0.000000, 0.000000;;, - 61;4; -1.000000, 0.000000, 0.000000, 0.000000;;, - 62;4; -1.000000, 0.000000, 0.000000, 0.000000;;, - 63;4; -1.000000, 0.000000, 0.000000, 0.000000;;, - 64;4; -1.000000, 0.000000, 0.000000, 0.000000;;, - 65;4; -1.000000, 0.000000, 0.000000, 0.000000;;, - 66;4; -1.000000, 0.000000, 0.000000, 0.000000;;, - 67;4; -1.000000, 0.000000, 0.000000, 0.000000;;, - 68;4; -1.000000, 0.000000, 0.000000, 0.000000;;, - 69;4; -1.000000, 0.000000, 0.000000, 0.000000;;, - 70;4; -1.000000, 0.000000, 0.000000, 0.000000;;, - 71;4; -1.000000, 0.000000, 0.000000, 0.000000;;, - 72;4; -1.000000, 0.000000, 0.000000, 0.000000;;, - 73;4; -1.000000, 0.000000, 0.000000, 0.000000;;, - 74;4; -1.000000, 0.000000, 0.000000, 0.000000;;, - 75;4; -1.000000, 0.000000, 0.000000, 0.000000;;, - 76;4; -1.000000, 0.000000, 0.000000, 0.000000;;, - 77;4; -1.000000, 0.000000, 0.000000, 0.000000;;, - 78;4; -1.000000, 0.000000, 0.000000, 0.000000;;, - 79;4; -1.000000, 0.000000, 0.000000, 0.000000;;, - 80;4; -1.000000, 0.000000, 0.000000, 0.000000;;, - 81;4; -1.000000, 0.000000, 0.000000, 0.000000;;, - 82;4; -1.000000, 0.000000, 0.000000, 0.000000;;, - 83;4; -1.000000, 0.000000, 0.000000, 0.000000;;, - 84;4; -1.000000, 0.000000, 0.000000, 0.000000;;, - 85;4; -1.000000, 0.000000, 0.000000, 0.000000;;, - 86;4; -1.000000, 0.000000, 0.000000, 0.000000;;, - 87;4; -1.000000, 0.000000, 0.000000, 0.000000;;, - 88;4; -1.000000, 0.000000, 0.000000, 0.000000;;, - 89;4; -1.000000, 0.000000, 0.000000, 0.000000;;, - 90;4; -1.000000, 0.000000, 0.000000, 0.000000;;, - 91;4; -1.000000, 0.000000, 0.000000, 0.000000;;, - 92;4; -1.000000, 0.000000, 0.000000, 0.000000;;, - 93;4; -1.000000, 0.000000, 0.000000, 0.000000;;, - 94;4; -1.000000, 0.000000, 0.000000, 0.000000;;, - 95;4; -1.000000, 0.000000, 0.000000, 0.000000;;, - 96;4; -1.000000, 0.000000, 0.000000, 0.000000;;, - 97;4; -1.000000, 0.000000, 0.000000, 0.000000;;, - 98;4; -1.000000, 0.000000, 0.000000, 0.000000;;, - 99;4; -1.000000, 0.000000, 0.000000, 0.000000;;, - 100;4; -1.000000, 0.000000, 0.000000, 0.000000;;, - 101;4; -1.000000, 0.000000, 0.000000, 0.000000;;, - 102;4; -1.000000, 0.000000, 0.000000, 0.000000;;, - 103;4; -1.000000, 0.000000, 0.000000, 0.000000;;, - 104;4; -1.000000, 0.000000, 0.000000, 0.000000;;, - 105;4; -1.000000, 0.000000, 0.000000, 0.000000;;, - 106;4; -1.000000, 0.000000, 0.000000, 0.000000;;, - 107;4; -1.000000, 0.000000, 0.000000, 0.000000;;, - 108;4; -1.000000, 0.000000, 0.000000, 0.000000;;, - 109;4; -1.000000, 0.000000, 0.000000, 0.000000;;, - 110;4; -1.000000, 0.000000, 0.000000, 0.000000;;, - 111;4; -1.000000, 0.000000, 0.000000, 0.000000;;, - 112;4; -1.000000, 0.000000, 0.000000, 0.000000;;, - 113;4; -1.000000, 0.000000, 0.000000, 0.000000;;, - 114;4; -1.000000, 0.000000, 0.000000, 0.000000;;, - 115;4; -1.000000, 0.000000, 0.000000, 0.000000;;, - 116;4; -1.000000, 0.000000, 0.000000, 0.000000;;, - 117;4; -1.000000, 0.000000, 0.000000, 0.000000;;, - 118;4; -1.000000, 0.000000, 0.000000, 0.000000;;, - 119;4; -1.000000, 0.000000, 0.000000, 0.000000;;, - 120;4; -1.000000, 0.000000, 0.000000, 0.000000;;, - 121;4; -1.000000, 0.000000, 0.000000, 0.000000;;, - 122;4; -1.000000, 0.000000, 0.000000, 0.000000;;, - 123;4; -1.000000, 0.000000, 0.000000, 0.000000;;, - 124;4; -1.000000, 0.000000, 0.000000, 0.000000;;, - 125;4; -1.000000, 0.000000, 0.000000, 0.000000;;, - 126;4; -1.000000, 0.000000, 0.000000, 0.000000;;, - 127;4; -1.000000, 0.000000, 0.000000, 0.000000;;, - 128;4; -1.000000, 0.000000, 0.000000, 0.000000;;, - 129;4; -1.000000, 0.000000, 0.000000, 0.000000;;, - 130;4; -1.000000, 0.000000, 0.000000, 0.000000;;, - 131;4; -1.000000, 0.000000, 0.000000, 0.000000;;, - 132;4; -1.000000, 0.000000, 0.000000, 0.000000;;, - 133;4; -1.000000, 0.000000, 0.000000, 0.000000;;, - 134;4; -1.000000, 0.000000, 0.000000, 0.000000;;, - 135;4; -1.000000, 0.000000, 0.000000, 0.000000;;, - 136;4; -1.000000, 0.000000, 0.000000, 0.000000;;, - 137;4; -1.000000, 0.000000, 0.000000, 0.000000;;, - 138;4; -1.000000, 0.000000, 0.000000, 0.000000;;, - 139;4; -1.000000, 0.000000, 0.000000, 0.000000;;, - 140;4; -1.000000, 0.000000, 0.000000, 0.000000;;, - 141;4; -1.000000, 0.000000, 0.000000, 0.000000;;, - 142;4; -1.000000, 0.000000, 0.000000, 0.000000;;, - 143;4; -1.000000, 0.000000, 0.000000, 0.000000;;, - 144;4; -1.000000, 0.000000, 0.000000, 0.000000;;, - 145;4; -1.000000, 0.000000, 0.000000, 0.000000;;, - 146;4; -1.000000, 0.000000, 0.000000, 0.000000;;, - 147;4; -1.000000, 0.000000, 0.000000, 0.000000;;, - 148;4; -1.000000, 0.000000, 0.000000, 0.000000;;, - 149;4; -1.000000, 0.000000, 0.000000, 0.000000;;, - 150;4; -1.000000, 0.000000, 0.000000, 0.000000;;, - 151;4; -1.000000, 0.000000, 0.000000, 0.000000;;, - 152;4; -1.000000, 0.000000, 0.000000, 0.000000;;, - 153;4; -1.000000, 0.000000, 0.000000, 0.000000;;, - 154;4; -1.000000, 0.000000, 0.000000, 0.000000;;, - 155;4; -1.000000, 0.000000, 0.000000, 0.000000;;; - } - AnimationKey { //Scale - 1; - 156; - 0;3; 2.153459, 2.153459, 2.153459;;, - 1;3; 2.153459, 2.153459, 2.153459;;, - 2;3; 2.153459, 2.153459, 2.153459;;, - 3;3; 2.153459, 2.153459, 2.153459;;, - 4;3; 2.153459, 2.153459, 2.153459;;, - 5;3; 2.153459, 2.153459, 2.153459;;, - 6;3; 2.153459, 2.153459, 2.153459;;, - 7;3; 2.153459, 2.153459, 2.153459;;, - 8;3; 2.153459, 2.153459, 2.153459;;, - 9;3; 2.153459, 2.153459, 2.153459;;, - 10;3; 2.153459, 2.153459, 2.153459;;, - 11;3; 2.153459, 2.153459, 2.153459;;, - 12;3; 2.153459, 2.153459, 2.153459;;, - 13;3; 2.153459, 2.153459, 2.153459;;, - 14;3; 2.153459, 2.153459, 2.153459;;, - 15;3; 2.153459, 2.153459, 2.153459;;, - 16;3; 2.153459, 2.153459, 2.153459;;, - 17;3; 2.153459, 2.153459, 2.153459;;, - 18;3; 2.153459, 2.153459, 2.153459;;, - 19;3; 2.153459, 2.153459, 2.153459;;, - 20;3; 2.153459, 2.153459, 2.153459;;, - 21;3; 2.153459, 2.153459, 2.153459;;, - 22;3; 2.153459, 2.153459, 2.153459;;, - 23;3; 2.153459, 2.153459, 2.153459;;, - 24;3; 2.153459, 2.153459, 2.153459;;, - 25;3; 2.153459, 2.153459, 2.153459;;, - 26;3; 2.153459, 2.153459, 2.153459;;, - 27;3; 2.153459, 2.153459, 2.153459;;, - 28;3; 2.153459, 2.153459, 2.153459;;, - 29;3; 2.153459, 2.153459, 2.153459;;, - 30;3; 2.153459, 2.153459, 2.153459;;, - 31;3; 2.153459, 2.153459, 2.153459;;, - 32;3; 2.153459, 2.153459, 2.153459;;, - 33;3; 2.153459, 2.153459, 2.153459;;, - 34;3; 2.153459, 2.153459, 2.153459;;, - 35;3; 2.153459, 2.153459, 2.153459;;, - 36;3; 2.153459, 2.153459, 2.153459;;, - 37;3; 2.153459, 2.153459, 2.153459;;, - 38;3; 2.153459, 2.153459, 2.153459;;, - 39;3; 2.153459, 2.153459, 2.153459;;, - 40;3; 2.153459, 2.153459, 2.153459;;, - 41;3; 2.153459, 2.153459, 2.153459;;, - 42;3; 2.153459, 2.153459, 2.153459;;, - 43;3; 2.153459, 2.153459, 2.153459;;, - 44;3; 2.153459, 2.153459, 2.153459;;, - 45;3; 2.153459, 2.153459, 2.153459;;, - 46;3; 2.153459, 2.153459, 2.153459;;, - 47;3; 2.153459, 2.153459, 2.153459;;, - 48;3; 2.153459, 2.153459, 2.153459;;, - 49;3; 2.153459, 2.153459, 2.153459;;, - 50;3; 2.153459, 2.153459, 2.153459;;, - 51;3; 2.153459, 2.153459, 2.153459;;, - 52;3; 2.153459, 2.153459, 2.153459;;, - 53;3; 2.153459, 2.153459, 2.153459;;, - 54;3; 2.153459, 2.153459, 2.153459;;, - 55;3; 2.153459, 2.153459, 2.153459;;, - 56;3; 2.153459, 2.153459, 2.153459;;, - 57;3; 2.153459, 2.153459, 2.153459;;, - 58;3; 2.153459, 2.153459, 2.153459;;, - 59;3; 2.153459, 2.153459, 2.153459;;, - 60;3; 2.153459, 2.153459, 2.153459;;, - 61;3; 2.153459, 2.153459, 2.153459;;, - 62;3; 2.153459, 2.153459, 2.153459;;, - 63;3; 2.153459, 2.153459, 2.153459;;, - 64;3; 2.153459, 2.153459, 2.153459;;, - 65;3; 2.153459, 2.153459, 2.153459;;, - 66;3; 2.153459, 2.153459, 2.153459;;, - 67;3; 2.153459, 2.153459, 2.153459;;, - 68;3; 2.153459, 2.153459, 2.153459;;, - 69;3; 2.153459, 2.153459, 2.153459;;, - 70;3; 2.153459, 2.153459, 2.153459;;, - 71;3; 2.153459, 2.153459, 2.153459;;, - 72;3; 2.153459, 2.153459, 2.153459;;, - 73;3; 2.153459, 2.153459, 2.153459;;, - 74;3; 2.153459, 2.153459, 2.153459;;, - 75;3; 2.153459, 2.153459, 2.153459;;, - 76;3; 2.153459, 2.153459, 2.153459;;, - 77;3; 2.153459, 2.153459, 2.153459;;, - 78;3; 2.153459, 2.153459, 2.153459;;, - 79;3; 2.153459, 2.153459, 2.153459;;, - 80;3; 2.153459, 2.153459, 2.153459;;, - 81;3; 2.153459, 2.153459, 2.153459;;, - 82;3; 2.153459, 2.153459, 2.153459;;, - 83;3; 2.153459, 2.153459, 2.153459;;, - 84;3; 2.153459, 2.153459, 2.153459;;, - 85;3; 2.153459, 2.153459, 2.153459;;, - 86;3; 2.153459, 2.153459, 2.153459;;, - 87;3; 2.153459, 2.153459, 2.153459;;, - 88;3; 2.153459, 2.153459, 2.153459;;, - 89;3; 2.153459, 2.153459, 2.153459;;, - 90;3; 2.153459, 2.153459, 2.153459;;, - 91;3; 2.153459, 2.153459, 2.153459;;, - 92;3; 2.153459, 2.153459, 2.153459;;, - 93;3; 2.153459, 2.153459, 2.153459;;, - 94;3; 2.153459, 2.153459, 2.153459;;, - 95;3; 2.153459, 2.153459, 2.153459;;, - 96;3; 2.153459, 2.153459, 2.153459;;, - 97;3; 2.153459, 2.153459, 2.153459;;, - 98;3; 2.153459, 2.153459, 2.153459;;, - 99;3; 2.153459, 2.153459, 2.153459;;, - 100;3; 2.153459, 2.153459, 2.153459;;, - 101;3; 2.153459, 2.153459, 2.153459;;, - 102;3; 2.153459, 2.153459, 2.153459;;, - 103;3; 2.153459, 2.153459, 2.153459;;, - 104;3; 2.153459, 2.153459, 2.153459;;, - 105;3; 2.153459, 2.153459, 2.153459;;, - 106;3; 2.153459, 2.153459, 2.153459;;, - 107;3; 2.153459, 2.153459, 2.153459;;, - 108;3; 2.153459, 2.153459, 2.153459;;, - 109;3; 2.153459, 2.153459, 2.153459;;, - 110;3; 2.153459, 2.153459, 2.153459;;, - 111;3; 2.153459, 2.153459, 2.153459;;, - 112;3; 2.153459, 2.153459, 2.153459;;, - 113;3; 2.153459, 2.153459, 2.153459;;, - 114;3; 2.153459, 2.153459, 2.153459;;, - 115;3; 2.153459, 2.153459, 2.153459;;, - 116;3; 2.153459, 2.153459, 2.153459;;, - 117;3; 2.153459, 2.153459, 2.153459;;, - 118;3; 2.153459, 2.153459, 2.153459;;, - 119;3; 2.153459, 2.153459, 2.153459;;, - 120;3; 2.153459, 2.153459, 2.153459;;, - 121;3; 2.153459, 2.153459, 2.153459;;, - 122;3; 2.153459, 2.153459, 2.153459;;, - 123;3; 2.153459, 2.153459, 2.153459;;, - 124;3; 2.153459, 2.153459, 2.153459;;, - 125;3; 2.153459, 2.153459, 2.153459;;, - 126;3; 2.153459, 2.153459, 2.153459;;, - 127;3; 2.153459, 2.153459, 2.153459;;, - 128;3; 2.153459, 2.153459, 2.153459;;, - 129;3; 2.153459, 2.153459, 2.153459;;, - 130;3; 2.153459, 2.153459, 2.153459;;, - 131;3; 2.153459, 2.153459, 2.153459;;, - 132;3; 2.153459, 2.153459, 2.153459;;, - 133;3; 2.153459, 2.153459, 2.153459;;, - 134;3; 2.153459, 2.153459, 2.153459;;, - 135;3; 2.153459, 2.153459, 2.153459;;, - 136;3; 2.153459, 2.153459, 2.153459;;, - 137;3; 2.153459, 2.153459, 2.153459;;, - 138;3; 2.153459, 2.153459, 2.153459;;, - 139;3; 2.153459, 2.153459, 2.153459;;, - 140;3; 2.153459, 2.153459, 2.153459;;, - 141;3; 2.153459, 2.153459, 2.153459;;, - 142;3; 2.153459, 2.153459, 2.153459;;, - 143;3; 2.153459, 2.153459, 2.153459;;, - 144;3; 2.153459, 2.153459, 2.153459;;, - 145;3; 2.153459, 2.153459, 2.153459;;, - 146;3; 2.153459, 2.153459, 2.153459;;, - 147;3; 2.153459, 2.153459, 2.153459;;, - 148;3; 2.153459, 2.153459, 2.153459;;, - 149;3; 2.153459, 2.153459, 2.153459;;, - 150;3; 2.153459, 2.153459, 2.153459;;, - 151;3; 2.153459, 2.153459, 2.153459;;, - 152;3; 2.153459, 2.153459, 2.153459;;, - 153;3; 2.153459, 2.153459, 2.153459;;, - 154;3; 2.153459, 2.153459, 2.153459;;, - 155;3; 2.153459, 2.153459, 2.153459;;; - } - } - Animation { - {Armature_Body} - AnimationKey { //Position - 2; - 156; - 0;3; 5.378092,-1.647068, 2.876912;;, - 1;3; 5.378092,-1.647068, 2.876912;;, - 2;3; 5.378092,-1.647068, 2.876912;;, - 3;3; 5.378092,-1.647068, 2.876912;;, - 4;3; 5.378092,-1.647068, 2.876912;;, - 5;3; 5.378092,-1.647068, 2.876912;;, - 6;3; 5.378092,-1.647068, 2.876912;;, - 7;3; 5.378092,-1.647068, 2.876912;;, - 8;3; 5.378092,-1.647068, 2.876912;;, - 9;3; 5.378092,-1.647068, 2.876912;;, - 10;3; 5.378092,-1.647068, 2.876912;;, - 11;3; 5.378092,-1.647068, 2.876912;;, - 12;3; 5.378092,-1.647068, 2.876912;;, - 13;3; 5.378092,-1.647068, 2.876912;;, - 14;3; 5.378092,-1.647068, 2.876912;;, - 15;3; 5.378092,-1.647068, 2.876912;;, - 16;3; 5.378092,-1.647068, 2.876912;;, - 17;3; 5.378092,-1.647068, 2.876912;;, - 18;3; 5.378092,-1.647068, 2.876912;;, - 19;3; 5.378092,-1.647068, 2.876912;;, - 20;3; 5.378092,-1.647068, 2.876912;;, - 21;3; 5.378092,-1.647068, 2.876912;;, - 22;3; 5.378092,-1.647068, 2.876912;;, - 23;3; 5.378092,-1.647068, 2.876912;;, - 24;3; 5.378092,-1.647068, 2.876912;;, - 25;3; 5.378092,-1.647068, 2.876912;;, - 26;3; 5.378092,-1.647068, 2.876912;;, - 27;3; 5.378092,-1.647068, 2.876912;;, - 28;3; 5.378092,-1.647068, 2.876912;;, - 29;3; 5.378092,-1.647068, 2.876912;;, - 30;3; 5.378092,-1.647068, 2.876912;;, - 31;3; 5.378092,-1.647068, 2.876912;;, - 32;3; 5.378092,-1.647068, 2.876912;;, - 33;3; 5.378092,-1.647068, 2.876912;;, - 34;3; 5.378092,-1.647068, 2.876912;;, - 35;3; 5.378092,-1.647068, 2.876912;;, - 36;3; 5.378092,-1.647068, 2.876912;;, - 37;3; 5.378092,-1.647068, 2.876912;;, - 38;3; 5.378092,-1.647068, 2.876912;;, - 39;3; 5.378092,-1.647068, 2.876912;;, - 40;3; 5.378092,-1.647068, 2.876912;;, - 41;3; 5.378092,-1.647068, 2.876912;;, - 42;3; 5.378092,-1.647068, 2.876912;;, - 43;3; 5.378092,-1.647068, 2.876912;;, - 44;3; 5.378092,-1.647068, 2.876912;;, - 45;3; 5.378092,-1.647068, 2.876912;;, - 46;3; 5.378092,-1.647068, 2.876912;;, - 47;3; 5.378092,-1.647068, 2.876912;;, - 48;3; 5.378092,-1.647068, 2.876912;;, - 49;3; 5.378092,-1.647068, 2.876912;;, - 50;3; 5.378092,-1.647068, 2.876912;;, - 51;3; 5.378092,-1.647068, 2.876912;;, - 52;3; 5.378092,-1.647068, 2.876912;;, - 53;3; 5.378092,-1.647068, 2.876912;;, - 54;3; 5.378092,-1.647068, 2.876912;;, - 55;3; 5.378092,-1.647068, 2.876912;;, - 56;3; 5.378092,-1.647068, 2.876912;;, - 57;3; 5.378092,-1.647068, 2.876912;;, - 58;3; 5.378092,-1.647068, 2.876912;;, - 59;3; 5.378092,-1.647068, 2.876912;;, - 60;3; 5.378092,-1.647068, 2.876912;;, - 61;3; 5.378092,-1.647068, 2.876912;;, - 62;3; 5.378092,-1.647068, 2.876912;;, - 63;3; 5.378092,-1.647068, 2.876912;;, - 64;3; 5.378092,-1.647068, 2.876912;;, - 65;3; 5.378092,-1.647068, 2.876912;;, - 66;3; 5.378092,-1.647068, 2.876912;;, - 67;3; 5.378092,-1.647068, 2.876912;;, - 68;3; 5.378092,-1.647068, 2.876912;;, - 69;3; 5.378092,-1.647068, 2.876912;;, - 70;3; 5.378092,-1.647068, 2.876912;;, - 71;3; 5.378092,-1.647068, 2.876912;;, - 72;3; 5.378092,-1.647068, 2.876912;;, - 73;3; 5.378092,-1.647068, 2.876912;;, - 74;3; 5.378092,-1.647068, 2.876912;;, - 75;3; 5.378092,-1.647068, 2.876912;;, - 76;3; 5.378092,-1.647068, 2.876912;;, - 77;3; 5.378092,-1.647068, 2.876912;;, - 78;3; 5.378092,-1.647068, 2.876912;;, - 79;3; 5.378092,-1.647068, 2.876912;;, - 80;3; 5.378092,-1.647068, 2.876912;;, - 81;3; 5.378092,-1.647068, 2.876912;;, - 82;3; 5.378092,-1.647068, 2.876912;;, - 83;3; 5.378092,-1.647068, 2.876912;;, - 84;3; 5.378092,-1.647068, 2.876912;;, - 85;3; 5.378092,-1.647068, 2.876912;;, - 86;3; 5.378092,-1.647068, 2.876912;;, - 87;3; 5.378092,-1.647068, 2.876912;;, - 88;3; 5.378092,-1.647068, 2.876912;;, - 89;3; 5.378092,-1.647068, 2.876912;;, - 90;3; 5.378092,-1.647068, 2.876912;;, - 91;3; 5.378092,-1.647068, 2.876912;;, - 92;3; 5.378092,-1.647068, 2.876912;;, - 93;3; 5.378092,-1.647068, 2.876912;;, - 94;3; 5.378092,-1.647068, 2.876912;;, - 95;3; 5.378092,-1.647068, 2.876912;;, - 96;3; 5.378092,-1.647068, 2.876912;;, - 97;3; 5.378092,-1.647068, 2.876912;;, - 98;3; 5.378092,-1.647068, 2.876912;;, - 99;3; 5.378092,-1.647068, 2.876912;;, - 100;3; 5.378092,-1.647068, 2.876912;;, - 101;3; 5.378092,-1.647068, 2.876912;;, - 102;3; 5.378092,-1.647068, 2.876912;;, - 103;3; 5.378092,-1.647068, 2.876912;;, - 104;3; 5.378092,-1.647068, 2.876912;;, - 105;3; 5.378092,-1.647068, 2.876912;;, - 106;3; 5.378092,-1.647068, 2.876912;;, - 107;3; 5.378092,-1.647068, 2.876912;;, - 108;3; 5.378092,-1.647068, 2.876912;;, - 109;3; 5.378092,-1.647068, 2.876912;;, - 110;3; 5.378092,-1.647068, 2.876912;;, - 111;3; 5.378092,-1.647068, 2.876912;;, - 112;3; 5.378092,-1.647068, 2.876912;;, - 113;3; 5.378092,-1.647068, 2.876912;;, - 114;3; 5.378092,-1.647068, 2.876912;;, - 115;3; 5.378092,-1.647068, 2.876912;;, - 116;3; 5.378092,-1.647068, 2.876912;;, - 117;3; 5.378092,-1.647068, 2.876912;;, - 118;3; 5.378092,-1.647068, 2.876912;;, - 119;3; 5.378092,-1.647068, 2.876912;;, - 120;3; 5.378092,-1.647068, 2.876912;;, - 121;3; 5.378092,-1.647068, 2.876912;;, - 122;3; 5.378092,-1.647068, 2.876912;;, - 123;3; 5.378092,-1.647068, 2.876912;;, - 124;3; 5.378092,-1.647068, 2.876912;;, - 125;3; 5.378092,-1.647068, 2.876912;;, - 126;3; 5.378092,-1.647068, 2.876912;;, - 127;3; 5.378092,-1.647068, 2.876912;;, - 128;3; 5.378092,-1.647068, 2.876912;;, - 129;3; 5.378092,-1.647068, 2.876912;;, - 130;3; 5.378092,-1.647068, 2.876912;;, - 131;3; 5.378092,-1.647068, 2.876912;;, - 132;3; 5.378092,-1.647068, 2.876912;;, - 133;3; 5.378092,-1.647068, 2.876912;;, - 134;3; 5.378092,-1.647068, 2.876912;;, - 135;3; 5.378092,-1.647068, 2.876912;;, - 136;3; 5.378092,-1.187825, 2.736182;;, - 137;3; 5.378092,-0.728790, 2.595572;;, - 138;3; 5.378092,-0.729070, 2.598489;;, - 139;3; 5.378092,-0.730037, 2.606928;;, - 140;3; 5.378092,-0.731865, 2.620276;;, - 141;3; 5.378092,-0.734711, 2.637750;;, - 142;3; 5.378092,-0.738697, 2.658450;;, - 143;3; 5.378092,-0.743910, 2.681418;;, - 144;3; 5.378092,-0.750400, 2.705708;;, - 145;3; 5.378092,-0.758182, 2.730444;;, - 146;3; 5.378092,-0.767245, 2.754857;;, - 147;3; 5.378092,-0.777552, 2.778308;;, - 148;3; 5.378092,-0.789052, 2.800292;;, - 149;3; 5.378092,-0.801685, 2.820429;;, - 150;3; 5.378092,-0.863997, 2.838559;;, - 151;3; 5.378092,-1.019046, 2.853992;;, - 152;3; 5.378092,-1.234415, 2.865585;;, - 153;3; 5.378092,-1.447600, 2.872756;;, - 154;3; 5.378092,-1.595927, 2.876091;;, - 155;3; 5.378092,-1.647068, 2.876912;;; - } - AnimationKey { //Rotation - 0; - 156; - 0;4; -0.999132, 0.041662, 0.000000, 0.000000;;, - 1;4; -0.999132, 0.041662, 0.000000, 0.000000;;, - 2;4; -0.999132, 0.041662, 0.000000, 0.000000;;, - 3;4; -0.999132, 0.041662, 0.000000, 0.000000;;, - 4;4; -0.999132, 0.041662, 0.000000, 0.000000;;, - 5;4; -0.999132, 0.041662, 0.000000, 0.000000;;, - 6;4; -0.999132, 0.041662, 0.000000, 0.000000;;, - 7;4; -0.999132, 0.041662, 0.000000, 0.000000;;, - 8;4; -0.999132, 0.041662, 0.000000, 0.000000;;, - 9;4; -0.999132, 0.041662, 0.000000, 0.000000;;, - 10;4; -0.999132, 0.041662, 0.000000, 0.000000;;, - 11;4; -0.999132, 0.041662, 0.000000, 0.000000;;, - 12;4; -0.999132, 0.041662, 0.000000, 0.000000;;, - 13;4; -0.999132, 0.041662, 0.000000, 0.000000;;, - 14;4; -0.999132, 0.041662, 0.000000, 0.000000;;, - 15;4; -0.999132, 0.041662, 0.000000, 0.000000;;, - 16;4; -0.999132, 0.041662, 0.000000, 0.000000;;, - 17;4; -0.999132, 0.041662, 0.000000, 0.000000;;, - 18;4; -0.999132, 0.041662, 0.000000, 0.000000;;, - 19;4; -0.999132, 0.041662, 0.000000, 0.000000;;, - 20;4; -0.999132, 0.041662, 0.000000, 0.000000;;, - 21;4; -0.999132, 0.041662, 0.000000, 0.000000;;, - 22;4; -0.999132, 0.041662, 0.000000, 0.000000;;, - 23;4; -0.999132, 0.041662, 0.000000, 0.000000;;, - 24;4; -0.999132, 0.041662, 0.000000, 0.000000;;, - 25;4; -0.999132, 0.041662, 0.000000, 0.000000;;, - 26;4; -0.999132, 0.041662, 0.000000, 0.000000;;, - 27;4; -0.999132, 0.041662, 0.000000, 0.000000;;, - 28;4; -0.999132, 0.041662, 0.000000, 0.000000;;, - 29;4; -0.999132, 0.041662, 0.000000, 0.000000;;, - 30;4; -0.999132, 0.041662, 0.000000, 0.000000;;, - 31;4; -0.999132, 0.041662, 0.000000, 0.000000;;, - 32;4; -0.999132, 0.041662, 0.000000, 0.000000;;, - 33;4; -0.999132, 0.041662, 0.000000, 0.000000;;, - 34;4; -0.999132, 0.041662, 0.000000, 0.000000;;, - 35;4; -0.999132, 0.041662, 0.000000, 0.000000;;, - 36;4; -0.999132, 0.041662, 0.000000, 0.000000;;, - 37;4; -0.999132, 0.041662, 0.000000, 0.000000;;, - 38;4; -0.999132, 0.041662, 0.000000, 0.000000;;, - 39;4; -0.999132, 0.041662, 0.000000, 0.000000;;, - 40;4; -0.999132, 0.041662, 0.000000, 0.000000;;, - 41;4; -0.999132, 0.041662, 0.000000, 0.000000;;, - 42;4; -0.999132, 0.041662, 0.000000, 0.000000;;, - 43;4; -0.999132, 0.041662, 0.000000, 0.000000;;, - 44;4; -0.999132, 0.041662, 0.000000, 0.000000;;, - 45;4; -0.999132, 0.041662, 0.000000, 0.000000;;, - 46;4; -0.999132, 0.041662, 0.000000, 0.000000;;, - 47;4; -0.999132, 0.041662, 0.000000, 0.000000;;, - 48;4; -0.999132, 0.041662, 0.000000, 0.000000;;, - 49;4; -0.999132, 0.041662, 0.000000, 0.000000;;, - 50;4; -0.999132, 0.041662, 0.000000, 0.000000;;, - 51;4; -0.999132, 0.041662, 0.000000, 0.000000;;, - 52;4; -0.999132, 0.041662, 0.000000, 0.000000;;, - 53;4; -0.999132, 0.041662, 0.000000, 0.000000;;, - 54;4; -0.999132, 0.041662, 0.000000, 0.000000;;, - 55;4; -0.999132, 0.041662, 0.000000, 0.000000;;, - 56;4; -0.999132, 0.041662, 0.000000, 0.000000;;, - 57;4; -0.999132, 0.041662, 0.000000, 0.000000;;, - 58;4; -0.999132, 0.041662, 0.000000, 0.000000;;, - 59;4; -0.999132, 0.041662, 0.000000, 0.000000;;, - 60;4; -0.999132, 0.041662, 0.000000, 0.000000;;, - 61;4; -0.999132, 0.041662, 0.000000, 0.000000;;, - 62;4; -0.999132, 0.041662, 0.000000, 0.000000;;, - 63;4; -0.999132, 0.041662, 0.000000, 0.000000;;, - 64;4; -0.999132, 0.041662, 0.000000, 0.000000;;, - 65;4; -0.999132, 0.041662, 0.000000, 0.000000;;, - 66;4; -0.999132, 0.041662, 0.000000, 0.000000;;, - 67;4; -0.999132, 0.041662, 0.000000, 0.000000;;, - 68;4; -0.999132, 0.041662, 0.000000, 0.000000;;, - 69;4; -0.999132, 0.041662, 0.000000, 0.000000;;, - 70;4; -0.999132, 0.041662, 0.000000, 0.000000;;, - 71;4; -0.999132, 0.041662, 0.000000, 0.000000;;, - 72;4; -0.999132, 0.041662, 0.000000, 0.000000;;, - 73;4; -0.999132, 0.041662, 0.000000, 0.000000;;, - 74;4; -0.999132, 0.041662, 0.000000, 0.000000;;, - 75;4; -0.999132, 0.041662, 0.000000, 0.000000;;, - 76;4; -0.999132, 0.041662, 0.000000, 0.000000;;, - 77;4; -0.999132, 0.041662, 0.000000, 0.000000;;, - 78;4; -0.999132, 0.041662, 0.000000, 0.000000;;, - 79;4; -0.999132, 0.041662, 0.000000, 0.000000;;, - 80;4; -0.999132, 0.041662, 0.000000, 0.000000;;, - 81;4; -0.999132, 0.041662, 0.000000, 0.000000;;, - 82;4; -0.999132, 0.041662, 0.000000, 0.000000;;, - 83;4; -0.999132, 0.041662, 0.000000, 0.000000;;, - 84;4; -0.999132, 0.041662, 0.000000, 0.000000;;, - 85;4; -0.999132, 0.041662, 0.000000, 0.000000;;, - 86;4; -0.999132, 0.041662, 0.000000, 0.000000;;, - 87;4; -0.999132, 0.041662, 0.000000, 0.000000;;, - 88;4; -0.999132, 0.041662, 0.000000, 0.000000;;, - 89;4; -0.999132, 0.041662, 0.000000, 0.000000;;, - 90;4; -0.999132, 0.041662, 0.000000, 0.000000;;, - 91;4; -0.999132, 0.041662, 0.000000, 0.000000;;, - 92;4; -0.999132, 0.041662, 0.000000, 0.000000;;, - 93;4; -0.999132, 0.041662, 0.000000, 0.000000;;, - 94;4; -0.999132, 0.041662, 0.000000, 0.000000;;, - 95;4; -0.999132, 0.041662, 0.000000, 0.000000;;, - 96;4; -0.999132, 0.041662, 0.000000, 0.000000;;, - 97;4; -0.999132, 0.041662, 0.000000, 0.000000;;, - 98;4; -0.999132, 0.041662, 0.000000, 0.000000;;, - 99;4; -0.999132, 0.041662, 0.000000, 0.000000;;, - 100;4; -0.999132, 0.041662, 0.000000, 0.000000;;, - 101;4; -0.999132, 0.041662, 0.000000, 0.000000;;, - 102;4; -0.999132, 0.041662, 0.000000, 0.000000;;, - 103;4; -0.999132, 0.041662, 0.000000, 0.000000;;, - 104;4; -0.999132, 0.041662, 0.000000, 0.000000;;, - 105;4; -0.999132, 0.041662, 0.000000, 0.000000;;, - 106;4; -0.999132, 0.041662, 0.000000, 0.000000;;, - 107;4; -0.999132, 0.041662, 0.000000, 0.000000;;, - 108;4; -0.999132, 0.041662, 0.000000, 0.000000;;, - 109;4; -0.999132, 0.041662, 0.000000, 0.000000;;, - 110;4; -0.999132, 0.041662, 0.000000, 0.000000;;, - 111;4; -0.999132, 0.041662, 0.000000, 0.000000;;, - 112;4; -0.999132, 0.041662, 0.000000, 0.000000;;, - 113;4; -0.999132, 0.041662, 0.000000, 0.000000;;, - 114;4; -0.999132, 0.041662, 0.000000, 0.000000;;, - 115;4; -0.999132, 0.041662, 0.000000, 0.000000;;, - 116;4; -0.999132, 0.041662, 0.000000, 0.000000;;, - 117;4; -0.999132, 0.041662, 0.000000, 0.000000;;, - 118;4; -0.999132, 0.041662, 0.000000, 0.000000;;, - 119;4; -0.999132, 0.041662, 0.000000, 0.000000;;, - 120;4; -0.999132, 0.041662, 0.000000, 0.000000;;, - 121;4; -0.999132, 0.041662, 0.000000, 0.000000;;, - 122;4; -0.999132, 0.041662, 0.000000, 0.000000;;, - 123;4; -0.999132, 0.041662, 0.000000, 0.000000;;, - 124;4; -0.999132, 0.041662, 0.000000, 0.000000;;, - 125;4; -0.999132, 0.041662, 0.000000, 0.000000;;, - 126;4; -0.999132, 0.041662, 0.000000, 0.000000;;, - 127;4; -0.999132, 0.041662, 0.000000, 0.000000;;, - 128;4; -0.999132, 0.041662, 0.000000, 0.000000;;, - 129;4; -0.999132, 0.041662, 0.000000, 0.000000;;, - 130;4; -0.999132, 0.041662, 0.000000, 0.000000;;, - 131;4; -0.999132, 0.041662, 0.000000, 0.000000;;, - 132;4; -0.999132, 0.041662, 0.000000, 0.000000;;, - 133;4; -0.999132, 0.041662, 0.000000, 0.000000;;, - 134;4; -0.999132, 0.041662, 0.000000, 0.000000;;, - 135;4; -0.999132, 0.041662, 0.000000, 0.000000;;, - 136;4; -0.999132, 0.041662, 0.000000, 0.000000;;, - 137;4; -0.999132, 0.041662, 0.000000, 0.000000;;, - 138;4; -0.999132, 0.041662, 0.000000, 0.000000;;, - 139;4; -0.999132, 0.041662, 0.000000, 0.000000;;, - 140;4; -0.999132, 0.041662, 0.000000, 0.000000;;, - 141;4; -0.999132, 0.041662, 0.000000, 0.000000;;, - 142;4; -0.999132, 0.041662, 0.000000, 0.000000;;, - 143;4; -0.999132, 0.041662, 0.000000, 0.000000;;, - 144;4; -0.999132, 0.041662, 0.000000, 0.000000;;, - 145;4; -0.999132, 0.041662, 0.000000, 0.000000;;, - 146;4; -0.999132, 0.041662, 0.000000, 0.000000;;, - 147;4; -0.999132, 0.041662, 0.000000, 0.000000;;, - 148;4; -0.999132, 0.041662, 0.000000, 0.000000;;, - 149;4; -0.999132, 0.041662, 0.000000, 0.000000;;, - 150;4; -0.999132, 0.041662, 0.000000, 0.000000;;, - 151;4; -0.999132, 0.041662, 0.000000, 0.000000;;, - 152;4; -0.999132, 0.041662, 0.000000, 0.000000;;, - 153;4; -0.999132, 0.041662, 0.000000, 0.000000;;, - 154;4; -0.999132, 0.041662, 0.000000, 0.000000;;, - 155;4; -0.999132, 0.041662, 0.000000, 0.000000;;; - } - AnimationKey { //Scale - 1; - 156; - 0;3; 1.000000, 1.000000, 1.000000;;, - 1;3; 1.000000, 1.000000, 1.000000;;, - 2;3; 1.000000, 1.000000, 1.000000;;, - 3;3; 1.000000, 1.000000, 1.000000;;, - 4;3; 1.000000, 1.000000, 1.000000;;, - 5;3; 1.000000, 1.000000, 1.000000;;, - 6;3; 1.000000, 1.000000, 1.000000;;, - 7;3; 1.000000, 1.000000, 1.000000;;, - 8;3; 1.000000, 1.000000, 1.000000;;, - 9;3; 1.000000, 1.000000, 1.000000;;, - 10;3; 1.000000, 1.000000, 1.000000;;, - 11;3; 1.000000, 1.000000, 1.000000;;, - 12;3; 1.000000, 1.000000, 1.000000;;, - 13;3; 1.000000, 1.000000, 1.000000;;, - 14;3; 1.000000, 1.000000, 1.000000;;, - 15;3; 1.000000, 1.000000, 1.000000;;, - 16;3; 1.000000, 1.000000, 1.000000;;, - 17;3; 1.000000, 1.000000, 1.000000;;, - 18;3; 1.000000, 1.000000, 1.000000;;, - 19;3; 1.000000, 1.000000, 1.000000;;, - 20;3; 1.000000, 1.000000, 1.000000;;, - 21;3; 1.000000, 1.000000, 1.000000;;, - 22;3; 1.000000, 1.000000, 1.000000;;, - 23;3; 1.000000, 1.000000, 1.000000;;, - 24;3; 1.000000, 1.000000, 1.000000;;, - 25;3; 1.000000, 1.000000, 1.000000;;, - 26;3; 1.000000, 1.000000, 1.000000;;, - 27;3; 1.000000, 1.000000, 1.000000;;, - 28;3; 1.000000, 1.000000, 1.000000;;, - 29;3; 1.000000, 1.000000, 1.000000;;, - 30;3; 1.000000, 1.000000, 1.000000;;, - 31;3; 1.000000, 1.000000, 1.000000;;, - 32;3; 1.000000, 1.000000, 1.000000;;, - 33;3; 1.000000, 1.000000, 1.000000;;, - 34;3; 1.000000, 1.000000, 1.000000;;, - 35;3; 1.000000, 1.000000, 1.000000;;, - 36;3; 1.000000, 1.000000, 1.000000;;, - 37;3; 1.000000, 1.000000, 1.000000;;, - 38;3; 1.000000, 1.000000, 1.000000;;, - 39;3; 1.000000, 1.000000, 1.000000;;, - 40;3; 1.000000, 1.000000, 1.000000;;, - 41;3; 1.000000, 1.000000, 1.000000;;, - 42;3; 1.000000, 1.000000, 1.000000;;, - 43;3; 1.000000, 1.000000, 1.000000;;, - 44;3; 1.000000, 1.000000, 1.000000;;, - 45;3; 1.000000, 1.000000, 1.000000;;, - 46;3; 1.000000, 1.000000, 1.000000;;, - 47;3; 1.000000, 1.000000, 1.000000;;, - 48;3; 1.000000, 1.000000, 1.000000;;, - 49;3; 1.000000, 1.000000, 1.000000;;, - 50;3; 1.000000, 1.000000, 1.000000;;, - 51;3; 1.000000, 1.000000, 1.000000;;, - 52;3; 1.000000, 1.000000, 1.000000;;, - 53;3; 1.000000, 1.000000, 1.000000;;, - 54;3; 1.000000, 1.000000, 1.000000;;, - 55;3; 1.000000, 1.000000, 1.000000;;, - 56;3; 1.000000, 1.000000, 1.000000;;, - 57;3; 1.000000, 1.000000, 1.000000;;, - 58;3; 1.000000, 1.000000, 1.000000;;, - 59;3; 1.000000, 1.000000, 1.000000;;, - 60;3; 1.000000, 1.000000, 1.000000;;, - 61;3; 1.000000, 1.000000, 1.000000;;, - 62;3; 1.000000, 1.000000, 1.000000;;, - 63;3; 1.000000, 1.000000, 1.000000;;, - 64;3; 1.000000, 1.000000, 1.000000;;, - 65;3; 1.000000, 1.000000, 1.000000;;, - 66;3; 1.000000, 1.000000, 1.000000;;, - 67;3; 1.000000, 1.000000, 1.000000;;, - 68;3; 1.000000, 1.000000, 1.000000;;, - 69;3; 1.000000, 1.000000, 1.000000;;, - 70;3; 1.000000, 1.000000, 1.000000;;, - 71;3; 1.000000, 1.000000, 1.000000;;, - 72;3; 1.000000, 1.000000, 1.000000;;, - 73;3; 1.000000, 1.000000, 1.000000;;, - 74;3; 1.000000, 1.000000, 1.000000;;, - 75;3; 1.000000, 1.000000, 1.000000;;, - 76;3; 1.000000, 1.000000, 1.000000;;, - 77;3; 1.000000, 1.000000, 1.000000;;, - 78;3; 1.000000, 1.000000, 1.000000;;, - 79;3; 1.000000, 1.000000, 1.000000;;, - 80;3; 1.000000, 1.000000, 1.000000;;, - 81;3; 1.000000, 1.000000, 1.000000;;, - 82;3; 1.000000, 1.000000, 1.000000;;, - 83;3; 1.000000, 1.000000, 1.000000;;, - 84;3; 1.000000, 1.000000, 1.000000;;, - 85;3; 1.000000, 1.000000, 1.000000;;, - 86;3; 1.000000, 1.000000, 1.000000;;, - 87;3; 1.000000, 1.000000, 1.000000;;, - 88;3; 1.000000, 1.000000, 1.000000;;, - 89;3; 1.000000, 1.000000, 1.000000;;, - 90;3; 1.000000, 1.000000, 1.000000;;, - 91;3; 1.000000, 1.000000, 1.000000;;, - 92;3; 1.000000, 1.000000, 1.000000;;, - 93;3; 1.000000, 1.000000, 1.000000;;, - 94;3; 1.000000, 1.000000, 1.000000;;, - 95;3; 1.000000, 1.000000, 1.000000;;, - 96;3; 1.000000, 1.000000, 1.000000;;, - 97;3; 1.000000, 1.000000, 1.000000;;, - 98;3; 1.000000, 1.000000, 1.000000;;, - 99;3; 1.000000, 1.000000, 1.000000;;, - 100;3; 1.000000, 1.000000, 1.000000;;, - 101;3; 1.000000, 1.000000, 1.000000;;, - 102;3; 1.000000, 1.000000, 1.000000;;, - 103;3; 1.000000, 1.000000, 1.000000;;, - 104;3; 1.000000, 1.000000, 1.000000;;, - 105;3; 1.000000, 1.000000, 1.000000;;, - 106;3; 1.000000, 1.000000, 1.000000;;, - 107;3; 1.000000, 1.000000, 1.000000;;, - 108;3; 1.000000, 1.000000, 1.000000;;, - 109;3; 1.000000, 1.000000, 1.000000;;, - 110;3; 1.000000, 1.000000, 1.000000;;, - 111;3; 1.000000, 1.000000, 1.000000;;, - 112;3; 1.000000, 1.000000, 1.000000;;, - 113;3; 1.000000, 1.000000, 1.000000;;, - 114;3; 1.000000, 1.000000, 1.000000;;, - 115;3; 1.000000, 1.000000, 1.000000;;, - 116;3; 1.000000, 1.000000, 1.000000;;, - 117;3; 1.000000, 1.000000, 1.000000;;, - 118;3; 1.000000, 1.000000, 1.000000;;, - 119;3; 1.000000, 1.000000, 1.000000;;, - 120;3; 1.000000, 1.000000, 1.000000;;, - 121;3; 1.000000, 1.000000, 1.000000;;, - 122;3; 1.000000, 1.000000, 1.000000;;, - 123;3; 1.000000, 1.000000, 1.000000;;, - 124;3; 1.000000, 1.000000, 1.000000;;, - 125;3; 1.000000, 1.000000, 1.000000;;, - 126;3; 1.000000, 1.000000, 1.000000;;, - 127;3; 1.000000, 1.000000, 1.000000;;, - 128;3; 1.000000, 1.000000, 1.000000;;, - 129;3; 1.000000, 1.000000, 1.000000;;, - 130;3; 1.000000, 1.000000, 1.000000;;, - 131;3; 1.000000, 1.000000, 1.000000;;, - 132;3; 1.000000, 1.000000, 1.000000;;, - 133;3; 1.000000, 1.000000, 1.000000;;, - 134;3; 1.000000, 1.000000, 1.000000;;, - 135;3; 1.000000, 1.000000, 1.000000;;, - 136;3; 1.000000, 1.000000, 1.000000;;, - 137;3; 1.000000, 1.000000, 1.000000;;, - 138;3; 1.000000, 1.000000, 1.000000;;, - 139;3; 1.000000, 1.000000, 1.000000;;, - 140;3; 1.000000, 1.000000, 1.000000;;, - 141;3; 1.000000, 1.000000, 1.000000;;, - 142;3; 1.000000, 1.000000, 1.000000;;, - 143;3; 1.000000, 1.000000, 1.000000;;, - 144;3; 1.000000, 1.000000, 1.000000;;, - 145;3; 1.000000, 1.000000, 1.000000;;, - 146;3; 1.000000, 1.000000, 1.000000;;, - 147;3; 1.000000, 1.000000, 1.000000;;, - 148;3; 1.000000, 1.000000, 1.000000;;, - 149;3; 1.000000, 1.000000, 1.000000;;, - 150;3; 1.000000, 1.000000, 1.000000;;, - 151;3; 1.000000, 1.000000, 1.000000;;, - 152;3; 1.000000, 1.000000, 1.000000;;, - 153;3; 1.000000, 1.000000, 1.000000;;, - 154;3; 1.000000, 1.000000, 1.000000;;, - 155;3; 1.000000, 1.000000, 1.000000;;; - } - } - Animation { - {Armature_noga3} - AnimationKey { //Position - 2; - 156; - 0;3; 0.618225, 0.037596,-0.622362;;, - 1;3; 0.618225, 0.037596,-0.622362;;, - 2;3; 0.618225, 0.037596,-0.622362;;, - 3;3; 0.618225, 0.037596,-0.622362;;, - 4;3; 0.618225, 0.037596,-0.622362;;, - 5;3; 0.618225, 0.037596,-0.622362;;, - 6;3; 0.618225, 0.037596,-0.622362;;, - 7;3; 0.618225, 0.037596,-0.622362;;, - 8;3; 0.618225, 0.037596,-0.622362;;, - 9;3; 0.618225, 0.037596,-0.622362;;, - 10;3; 0.618225, 0.037596,-0.622362;;, - 11;3; 0.618225, 0.037596,-0.622362;;, - 12;3; 0.618225, 0.037596,-0.622362;;, - 13;3; 0.618225, 0.037596,-0.622362;;, - 14;3; 0.618225, 0.037596,-0.622362;;, - 15;3; 0.618225, 0.037596,-0.622362;;, - 16;3; 0.618225, 0.037596,-0.622362;;, - 17;3; 0.618225, 0.037596,-0.622362;;, - 18;3; 0.618225, 0.037596,-0.622362;;, - 19;3; 0.618225, 0.037596,-0.622362;;, - 20;3; 0.618225, 0.037596,-0.622362;;, - 21;3; 0.618225, 0.037596,-0.622362;;, - 22;3; 0.618225, 0.037596,-0.622362;;, - 23;3; 0.618225, 0.037596,-0.622362;;, - 24;3; 0.618225, 0.037596,-0.622362;;, - 25;3; 0.618225, 0.037596,-0.622362;;, - 26;3; 0.618225, 0.037596,-0.622362;;, - 27;3; 0.618225, 0.037596,-0.622362;;, - 28;3; 0.618225, 0.037596,-0.622362;;, - 29;3; 0.618225, 0.037596,-0.622362;;, - 30;3; 0.618225, 0.037596,-0.622362;;, - 31;3; 0.618225, 0.037596,-0.622362;;, - 32;3; 0.618225, 0.037596,-0.622362;;, - 33;3; 0.618225, 0.037596,-0.622362;;, - 34;3; 0.618225, 0.037596,-0.622362;;, - 35;3; 0.618225, 0.037596,-0.622362;;, - 36;3; 0.618225, 0.037596,-0.622362;;, - 37;3; 0.618225, 0.037596,-0.622362;;, - 38;3; 0.618225, 0.037596,-0.622362;;, - 39;3; 0.618225, 0.037596,-0.622362;;, - 40;3; 0.618225, 0.037596,-0.622362;;, - 41;3; 0.618225, 0.037596,-0.622362;;, - 42;3; 0.618225, 0.037596,-0.622362;;, - 43;3; 0.618225, 0.037596,-0.622362;;, - 44;3; 0.618225, 0.037596,-0.622362;;, - 45;3; 0.618225, 0.037596,-0.622362;;, - 46;3; 0.618225, 0.037596,-0.622362;;, - 47;3; 0.618225, 0.037596,-0.622362;;, - 48;3; 0.618225, 0.037596,-0.622362;;, - 49;3; 0.618225, 0.037596,-0.622362;;, - 50;3; 0.618225, 0.037596,-0.622362;;, - 51;3; 0.618225, 0.037596,-0.622362;;, - 52;3; 0.618225, 0.037596,-0.622362;;, - 53;3; 0.618225, 0.037596,-0.622362;;, - 54;3; 0.618225, 0.037596,-0.622362;;, - 55;3; 0.618225, 0.037596,-0.622362;;, - 56;3; 0.618225, 0.037596,-0.622362;;, - 57;3; 0.618225, 0.037596,-0.622362;;, - 58;3; 0.618225, 0.037596,-0.622362;;, - 59;3; 0.618225, 0.037596,-0.622362;;, - 60;3; 0.618225, 0.037596,-0.622362;;, - 61;3; 0.618225, 0.037596,-0.622362;;, - 62;3; 0.618225, 0.037596,-0.622362;;, - 63;3; 0.618225, 0.037596,-0.622362;;, - 64;3; 0.618225, 0.037596,-0.622362;;, - 65;3; 0.618225, 0.037596,-0.622362;;, - 66;3; 0.618225, 0.037596,-0.622362;;, - 67;3; 0.618225, 0.037596,-0.622362;;, - 68;3; 0.618225, 0.037596,-0.622362;;, - 69;3; 0.618225, 0.037596,-0.622362;;, - 70;3; 0.618225, 0.037596,-0.622362;;, - 71;3; 0.618225, 0.037596,-0.622362;;, - 72;3; 0.618225, 0.037596,-0.622362;;, - 73;3; 0.618225, 0.037596,-0.622362;;, - 74;3; 0.618225, 0.037596,-0.622362;;, - 75;3; 0.618225, 0.037596,-0.622362;;, - 76;3; 0.618225, 0.037596,-0.622362;;, - 77;3; 0.618225, 0.037596,-0.622362;;, - 78;3; 0.618225, 0.037596,-0.622362;;, - 79;3; 0.618225, 0.037596,-0.622362;;, - 80;3; 0.618225, 0.037596,-0.622362;;, - 81;3; 0.618225, 0.037596,-0.622362;;, - 82;3; 0.618225, 0.037596,-0.622362;;, - 83;3; 0.618225, 0.037596,-0.622362;;, - 84;3; 0.618225, 0.037596,-0.622362;;, - 85;3; 0.618225, 0.037596,-0.622362;;, - 86;3; 0.618225, 0.037596,-0.622362;;, - 87;3; 0.618225, 0.037596,-0.622362;;, - 88;3; 0.618225, 0.037596,-0.622362;;, - 89;3; 0.618225, 0.037596,-0.622362;;, - 90;3; 0.618225, 0.037596,-0.622362;;, - 91;3; 0.618225, 0.037596,-0.622362;;, - 92;3; 0.618225, 0.037596,-0.622362;;, - 93;3; 0.618225, 0.037596,-0.622362;;, - 94;3; 0.618225, 0.037596,-0.622362;;, - 95;3; 0.618225, 0.037596,-0.622362;;, - 96;3; 0.618225, 0.037596,-0.622362;;, - 97;3; 0.618225, 0.037596,-0.622362;;, - 98;3; 0.618225, 0.037596,-0.622362;;, - 99;3; 0.618225, 0.037596,-0.622362;;, - 100;3; 0.618225, 0.037596,-0.622362;;, - 101;3; 0.618225, 0.037596,-0.622362;;, - 102;3; 0.618225, 0.037596,-0.622362;;, - 103;3; 0.618225, 0.037596,-0.622362;;, - 104;3; 0.618225, 0.037596,-0.622362;;, - 105;3; 0.618225, 0.037596,-0.622362;;, - 106;3; 0.618225, 0.037596,-0.622362;;, - 107;3; 0.618225, 0.037596,-0.622362;;, - 108;3; 0.618225, 0.037596,-0.622362;;, - 109;3; 0.618225, 0.037596,-0.622362;;, - 110;3; 0.618225, 0.037596,-0.622362;;, - 111;3; 0.618225, 0.037596,-0.622362;;, - 112;3; 0.618225, 0.037596,-0.622362;;, - 113;3; 0.618225, 0.037596,-0.622362;;, - 114;3; 0.618225, 0.037596,-0.622362;;, - 115;3; 0.618225, 0.037596,-0.622362;;, - 116;3; 0.618225, 0.037596,-0.622362;;, - 117;3; 0.618225, 0.037596,-0.622362;;, - 118;3; 0.618225, 0.037596,-0.622362;;, - 119;3; 0.618225, 0.037596,-0.622362;;, - 120;3; 0.618225, 0.037596,-0.622362;;, - 121;3; 0.618225, 0.037596,-0.622362;;, - 122;3; 0.618225, 0.037596,-0.622362;;, - 123;3; 0.618225, 0.037596,-0.622362;;, - 124;3; 0.618225, 0.037596,-0.622362;;, - 125;3; 0.618225, 0.037596,-0.622362;;, - 126;3; 0.618225, 0.037596,-0.622362;;, - 127;3; 0.618225, 0.037596,-0.622362;;, - 128;3; 0.618225, 0.037596,-0.622362;;, - 129;3; 0.618225, 0.037596,-0.622362;;, - 130;3; 0.618225, 0.037596,-0.622362;;, - 131;3; 0.618225, 0.037596,-0.622362;;, - 132;3; 0.618225, 0.037596,-0.622362;;, - 133;3; 0.618225, 0.037596,-0.622362;;, - 134;3; 0.618225, 0.037596,-0.622362;;, - 135;3; 0.618225, 0.037596,-0.622362;;, - 136;3; 0.618225, 0.037596,-0.622363;;, - 137;3; 0.618225, 0.037596,-0.622363;;, - 138;3; 0.618225, 0.037596,-0.622362;;, - 139;3; 0.618225, 0.037596,-0.622363;;, - 140;3; 0.618225, 0.037596,-0.622362;;, - 141;3; 0.618225, 0.037596,-0.622362;;, - 142;3; 0.618225, 0.037596,-0.622363;;, - 143;3; 0.618225, 0.037596,-0.622363;;, - 144;3; 0.618225, 0.037596,-0.622362;;, - 145;3; 0.618225, 0.037596,-0.622362;;, - 146;3; 0.618225, 0.037596,-0.622362;;, - 147;3; 0.618225, 0.037596,-0.622363;;, - 148;3; 0.618225, 0.037596,-0.622363;;, - 149;3; 0.618225, 0.037596,-0.622363;;, - 150;3; 0.618225, 0.037596,-0.622363;;, - 151;3; 0.618225, 0.037596,-0.622362;;, - 152;3; 0.618225, 0.037596,-0.622363;;, - 153;3; 0.618225, 0.037596,-0.622362;;, - 154;3; 0.618225, 0.037596,-0.622363;;, - 155;3; 0.618225, 0.037596,-0.622362;;; - } - AnimationKey { //Rotation - 0; - 156; - 0;4; -0.478735,-0.520397, 0.478735,-0.520397;;, - 1;4; -0.478735,-0.520397, 0.478735,-0.520397;;, - 2;4; -0.478735,-0.520397, 0.478735,-0.520397;;, - 3;4; -0.478735,-0.520397, 0.478735,-0.520397;;, - 4;4; -0.478735,-0.520397, 0.478735,-0.520397;;, - 5;4; -0.478735,-0.520397, 0.478735,-0.520397;;, - 6;4; -0.478735,-0.520397, 0.478735,-0.520397;;, - 7;4; -0.478735,-0.520397, 0.478735,-0.520397;;, - 8;4; -0.478735,-0.520397, 0.478735,-0.520397;;, - 9;4; -0.478735,-0.520397, 0.478735,-0.520397;;, - 10;4; -0.478735,-0.520397, 0.478735,-0.520397;;, - 11;4; -0.478735,-0.520397, 0.478735,-0.520397;;, - 12;4; -0.478735,-0.520397, 0.478735,-0.520397;;, - 13;4; -0.478735,-0.520397, 0.478735,-0.520397;;, - 14;4; -0.478735,-0.520397, 0.478735,-0.520397;;, - 15;4; -0.478735,-0.520397, 0.478735,-0.520397;;, - 16;4; -0.478735,-0.520397, 0.478735,-0.520397;;, - 17;4; -0.478735,-0.520397, 0.478735,-0.520397;;, - 18;4; -0.478735,-0.520397, 0.478735,-0.520397;;, - 19;4; -0.478735,-0.520397, 0.478735,-0.520397;;, - 20;4; -0.478735,-0.520397, 0.478735,-0.520397;;, - 21;4; -0.478735,-0.520397, 0.478735,-0.520397;;, - 22;4; -0.478735,-0.520397, 0.478735,-0.520397;;, - 23;4; -0.478735,-0.520397, 0.478735,-0.520397;;, - 24;4; -0.478735,-0.520397, 0.478735,-0.520397;;, - 25;4; -0.478735,-0.520397, 0.478735,-0.520397;;, - 26;4; -0.478735,-0.520397, 0.478735,-0.520397;;, - 27;4; -0.478735,-0.520397, 0.478735,-0.520397;;, - 28;4; -0.478735,-0.520397, 0.478735,-0.520397;;, - 29;4; -0.478735,-0.520397, 0.478735,-0.520397;;, - 30;4; -0.478735,-0.520397, 0.478735,-0.520397;;, - 31;4; -0.478735,-0.520397, 0.478735,-0.520397;;, - 32;4; -0.478735,-0.520397, 0.478735,-0.520397;;, - 33;4; -0.478735,-0.520397, 0.478735,-0.520397;;, - 34;4; -0.478735,-0.520397, 0.478735,-0.520397;;, - 35;4; -0.478735,-0.520397, 0.478735,-0.520397;;, - 36;4; -0.478735,-0.520397, 0.478735,-0.520397;;, - 37;4; -0.478735,-0.520397, 0.478735,-0.520397;;, - 38;4; -0.478735,-0.520397, 0.478735,-0.520397;;, - 39;4; -0.478735,-0.520397, 0.478735,-0.520397;;, - 40;4; -0.478735,-0.520397, 0.478735,-0.520397;;, - 41;4; -0.478735,-0.520397, 0.478735,-0.520397;;, - 42;4; -0.478735,-0.520397, 0.478735,-0.520397;;, - 43;4; -0.478735,-0.520397, 0.478735,-0.520397;;, - 44;4; -0.478735,-0.520397, 0.478735,-0.520397;;, - 45;4; -0.478735,-0.520397, 0.478735,-0.520397;;, - 46;4; -0.478735,-0.520397, 0.478735,-0.520397;;, - 47;4; -0.478735,-0.520397, 0.478735,-0.520397;;, - 48;4; -0.478735,-0.520397, 0.478735,-0.520397;;, - 49;4; -0.478735,-0.520397, 0.478735,-0.520397;;, - 50;4; -0.478735,-0.520397, 0.478735,-0.520397;;, - 51;4; -0.478735,-0.520397, 0.478735,-0.520397;;, - 52;4; -0.478735,-0.520397, 0.478735,-0.520397;;, - 53;4; -0.478735,-0.520397, 0.478735,-0.520397;;, - 54;4; -0.478735,-0.520397, 0.478735,-0.520397;;, - 55;4; -0.478735,-0.520397, 0.478735,-0.520397;;, - 56;4; -0.478735,-0.520397, 0.478735,-0.520397;;, - 57;4; -0.478735,-0.520397, 0.478735,-0.520397;;, - 58;4; -0.478735,-0.520397, 0.478735,-0.520397;;, - 59;4; -0.478735,-0.520397, 0.478735,-0.520397;;, - 60;4; -0.478735,-0.520397, 0.478735,-0.520397;;, - 61;4; -0.478735,-0.520397, 0.478735,-0.520397;;, - 62;4; -0.478735,-0.520397, 0.478735,-0.520397;;, - 63;4; -0.478735,-0.520397, 0.478735,-0.520397;;, - 64;4; -0.478735,-0.520397, 0.478735,-0.520397;;, - 65;4; -0.478735,-0.520397, 0.478735,-0.520397;;, - 66;4; -0.478735,-0.520397, 0.478735,-0.520397;;, - 67;4; -0.478735,-0.520397, 0.478735,-0.520397;;, - 68;4; -0.478735,-0.520397, 0.478735,-0.520397;;, - 69;4; -0.478735,-0.520397, 0.478735,-0.520397;;, - 70;4; -0.478735,-0.520397, 0.478735,-0.520397;;, - 71;4; -0.478735,-0.520397, 0.478735,-0.520397;;, - 72;4; -0.478735,-0.520397, 0.478735,-0.520397;;, - 73;4; -0.478735,-0.520397, 0.478735,-0.520397;;, - 74;4; -0.478735,-0.520397, 0.478735,-0.520397;;, - 75;4; -0.478735,-0.520397, 0.478735,-0.520397;;, - 76;4; -0.478735,-0.520397, 0.478735,-0.520397;;, - 77;4; -0.474286,-0.523982, 0.474286,-0.523982;;, - 78;4; -0.461337,-0.534416, 0.461337,-0.534416;;, - 79;4; -0.442723,-0.549415, 0.442723,-0.549415;;, - 80;4; -0.424110,-0.564414, 0.424110,-0.564414;;, - 81;4; -0.411163,-0.574847, 0.411163,-0.574847;;, - 82;4; -0.406714,-0.578432, 0.406714,-0.578432;;, - 83;4; -0.408802,-0.576511, 0.408802,-0.576511;;, - 84;4; -0.415106,-0.570712, 0.415106,-0.570712;;, - 85;4; -0.425500,-0.561150, 0.425500,-0.561150;;, - 86;4; -0.439529,-0.548244, 0.439529,-0.548244;;, - 87;4; -0.456329,-0.532789, 0.456329,-0.532789;;, - 88;4; -0.474639,-0.515945, 0.474639,-0.515945;;, - 89;4; -0.492950,-0.499100, 0.492950,-0.499100;;, - 90;4; -0.509750,-0.483645, 0.509750,-0.483645;;, - 91;4; -0.523779,-0.470739, 0.523779,-0.470739;;, - 92;4; -0.534173,-0.461177, 0.534173,-0.461177;;, - 93;4; -0.540477,-0.455378, 0.540477,-0.455378;;, - 94;4; -0.542565,-0.453457, 0.542565,-0.453457;;, - 95;4; -0.538622,-0.457592, 0.538622,-0.457592;;, - 96;4; -0.527147,-0.469626, 0.527147,-0.469626;;, - 97;4; -0.510651,-0.486926, 0.510651,-0.486926;;, - 98;4; -0.494154,-0.504227, 0.494154,-0.504227;;, - 99;4; -0.482678,-0.516262, 0.482678,-0.516262;;, - 100;4; -0.478735,-0.520397, 0.478735,-0.520397;;, - 101;4; -0.478735,-0.520397, 0.478735,-0.520397;;, - 102;4; -0.478735,-0.520397, 0.478735,-0.520397;;, - 103;4; -0.478735,-0.520397, 0.478735,-0.520397;;, - 104;4; -0.478735,-0.520397, 0.478735,-0.520397;;, - 105;4; -0.478735,-0.520397, 0.478735,-0.520397;;, - 106;4; -0.478735,-0.520397, 0.478735,-0.520397;;, - 107;4; -0.490465,-0.502499, 0.490465,-0.502499;;, - 108;4; -0.524578,-0.450433, 0.524578,-0.450433;;, - 109;4; -0.573580,-0.375622, 0.573580,-0.375622;;, - 110;4; -0.622557,-0.300834, 0.622557,-0.300834;;, - 111;4; -0.656625,-0.248811, 0.656625,-0.248810;;, - 112;4; -0.668334,-0.230932, 0.668334,-0.230932;;, - 113;4; -0.661874,-0.237181, 0.661874,-0.237181;;, - 114;4; -0.642405,-0.256080, 0.642405,-0.256080;;, - 115;4; -0.610375,-0.287321, 0.610375,-0.287321;;, - 116;4; -0.567273,-0.329627, 0.567273,-0.329627;;, - 117;4; -0.515861,-0.380508, 0.515861,-0.380508;;, - 118;4; -0.460128,-0.436291, 0.460128,-0.436291;;, - 119;4; -0.404820,-0.492536, 0.404820,-0.492536;;, - 120;4; -0.354654,-0.544771, 0.354654,-0.544771;;, - 121;4; -0.313535,-0.589233, 0.313535,-0.589233;;, - 122;4; -0.284114,-0.623311, 0.284114,-0.623311;;, - 123;4; -0.267759,-0.645594, 0.267759,-0.645594;;, - 124;4; -0.264803,-0.655652, 0.264803,-0.655652;;, - 125;4; -0.280825,-0.650350, 0.280825,-0.650350;;, - 126;4; -0.320283,-0.627132, 0.320283,-0.627132;;, - 127;4; -0.374971,-0.591542, 0.374971,-0.591542;;, - 128;4; -0.428834,-0.555035, 0.428834,-0.555035;;, - 129;4; -0.466013,-0.529303, 0.466013,-0.529303;;, - 130;4; -0.478735,-0.520397, 0.478735,-0.520397;;, - 131;4; -0.478735,-0.520397, 0.478735,-0.520397;;, - 132;4; -0.478735,-0.520397, 0.478735,-0.520397;;, - 133;4; -0.478735,-0.520397, 0.478735,-0.520397;;, - 134;4; -0.478735,-0.520397, 0.478735,-0.520397;;, - 135;4; -0.478735,-0.520397, 0.478735,-0.520397;;, - 136;4; -0.421019,-0.563519, 0.421019,-0.563519;;, - 137;4; -0.363310,-0.606635, 0.363310,-0.606635;;, - 138;4; -0.364209,-0.605990, 0.364209,-0.605990;;, - 139;4; -0.366735,-0.604180, 0.366735,-0.604180;;, - 140;4; -0.370579,-0.601425, 0.370579,-0.601425;;, - 141;4; -0.375380,-0.597985, 0.375380,-0.597985;;, - 142;4; -0.380746,-0.594141, 0.380746,-0.594141;;, - 143;4; -0.386282,-0.590175, 0.386282,-0.590175;;, - 144;4; -0.391619,-0.586352, 0.391619,-0.586352;;, - 145;4; -0.396433,-0.582903, 0.396433,-0.582903;;, - 146;4; -0.400456,-0.580021, 0.400456,-0.580021;;, - 147;4; -0.403482,-0.577853, 0.403482,-0.577853;;, - 148;4; -0.405364,-0.576505, 0.405364,-0.576505;;, - 149;4; -0.406005,-0.576046, 0.406005,-0.576046;;, - 150;4; -0.398008,-0.581360, 0.398008,-0.581360;;, - 151;4; -0.380894,-0.592732, 0.380894,-0.592732;;, - 152;4; -0.372894,-0.598048, 0.372894,-0.598048;;, - 153;4; -0.398445,-0.579305, 0.398445,-0.579305;;, - 154;4; -0.453128,-0.539191, 0.453128,-0.539191;;, - 155;4; -0.478735,-0.520397, 0.478735,-0.520397;;; - } - AnimationKey { //Scale - 1; - 156; - 0;3; 1.000000, 1.000000, 1.000000;;, - 1;3; 1.000000, 1.000000, 1.000000;;, - 2;3; 1.000000, 1.000000, 1.000000;;, - 3;3; 1.000000, 1.000000, 1.000000;;, - 4;3; 1.000000, 1.000000, 1.000000;;, - 5;3; 1.000000, 1.000000, 1.000000;;, - 6;3; 1.000000, 1.000000, 1.000000;;, - 7;3; 1.000000, 1.000000, 1.000000;;, - 8;3; 1.000000, 1.000000, 1.000000;;, - 9;3; 1.000000, 1.000000, 1.000000;;, - 10;3; 1.000000, 1.000000, 1.000000;;, - 11;3; 1.000000, 1.000000, 1.000000;;, - 12;3; 1.000000, 1.000000, 1.000000;;, - 13;3; 1.000000, 1.000000, 1.000000;;, - 14;3; 1.000000, 1.000000, 1.000000;;, - 15;3; 1.000000, 1.000000, 1.000000;;, - 16;3; 1.000000, 1.000000, 1.000000;;, - 17;3; 1.000000, 1.000000, 1.000000;;, - 18;3; 1.000000, 1.000000, 1.000000;;, - 19;3; 1.000000, 1.000000, 1.000000;;, - 20;3; 1.000000, 1.000000, 1.000000;;, - 21;3; 1.000000, 1.000000, 1.000000;;, - 22;3; 1.000000, 1.000000, 1.000000;;, - 23;3; 1.000000, 1.000000, 1.000000;;, - 24;3; 1.000000, 1.000000, 1.000000;;, - 25;3; 1.000000, 1.000000, 1.000000;;, - 26;3; 1.000000, 1.000000, 1.000000;;, - 27;3; 1.000000, 1.000000, 1.000000;;, - 28;3; 1.000000, 1.000000, 1.000000;;, - 29;3; 1.000000, 1.000000, 1.000000;;, - 30;3; 1.000000, 1.000000, 1.000000;;, - 31;3; 1.000000, 1.000000, 1.000000;;, - 32;3; 1.000000, 1.000000, 1.000000;;, - 33;3; 1.000000, 1.000000, 1.000000;;, - 34;3; 1.000000, 1.000000, 1.000000;;, - 35;3; 1.000000, 1.000000, 1.000000;;, - 36;3; 1.000000, 1.000000, 1.000000;;, - 37;3; 1.000000, 1.000000, 1.000000;;, - 38;3; 1.000000, 1.000000, 1.000000;;, - 39;3; 1.000000, 1.000000, 1.000000;;, - 40;3; 1.000000, 1.000000, 1.000000;;, - 41;3; 1.000000, 1.000000, 1.000000;;, - 42;3; 1.000000, 1.000000, 1.000000;;, - 43;3; 1.000000, 1.000000, 1.000000;;, - 44;3; 1.000000, 1.000000, 1.000000;;, - 45;3; 1.000000, 1.000000, 1.000000;;, - 46;3; 1.000000, 1.000000, 1.000000;;, - 47;3; 1.000000, 1.000000, 1.000000;;, - 48;3; 1.000000, 1.000000, 1.000000;;, - 49;3; 1.000000, 1.000000, 1.000000;;, - 50;3; 1.000000, 1.000000, 1.000000;;, - 51;3; 1.000000, 1.000000, 1.000000;;, - 52;3; 1.000000, 1.000000, 1.000000;;, - 53;3; 1.000000, 1.000000, 1.000000;;, - 54;3; 1.000000, 1.000000, 1.000000;;, - 55;3; 1.000000, 1.000000, 1.000000;;, - 56;3; 1.000000, 1.000000, 1.000000;;, - 57;3; 1.000000, 1.000000, 1.000000;;, - 58;3; 1.000000, 1.000000, 1.000000;;, - 59;3; 1.000000, 1.000000, 1.000000;;, - 60;3; 1.000000, 1.000000, 1.000000;;, - 61;3; 1.000000, 1.000000, 1.000000;;, - 62;3; 1.000000, 1.000000, 1.000000;;, - 63;3; 1.000000, 1.000000, 1.000000;;, - 64;3; 1.000000, 1.000000, 1.000000;;, - 65;3; 1.000000, 1.000000, 1.000000;;, - 66;3; 1.000000, 1.000000, 1.000000;;, - 67;3; 1.000000, 1.000000, 1.000000;;, - 68;3; 1.000000, 1.000000, 1.000000;;, - 69;3; 1.000000, 1.000000, 1.000000;;, - 70;3; 1.000000, 1.000000, 1.000000;;, - 71;3; 1.000000, 1.000000, 1.000000;;, - 72;3; 1.000000, 1.000000, 1.000000;;, - 73;3; 1.000000, 1.000000, 1.000000;;, - 74;3; 1.000000, 1.000000, 1.000000;;, - 75;3; 1.000000, 1.000000, 1.000000;;, - 76;3; 1.000000, 1.000000, 1.000000;;, - 77;3; 1.000000, 1.000000, 1.000000;;, - 78;3; 1.000000, 1.000000, 1.000000;;, - 79;3; 1.000000, 1.000000, 1.000000;;, - 80;3; 1.000000, 1.000000, 1.000000;;, - 81;3; 1.000000, 1.000000, 1.000000;;, - 82;3; 1.000000, 1.000000, 1.000000;;, - 83;3; 1.000000, 1.000000, 1.000000;;, - 84;3; 1.000000, 1.000000, 1.000000;;, - 85;3; 1.000000, 1.000000, 1.000000;;, - 86;3; 1.000000, 1.000000, 1.000000;;, - 87;3; 1.000000, 1.000000, 1.000000;;, - 88;3; 1.000000, 1.000000, 1.000000;;, - 89;3; 1.000000, 1.000000, 1.000000;;, - 90;3; 1.000000, 1.000000, 1.000000;;, - 91;3; 1.000000, 1.000000, 1.000000;;, - 92;3; 1.000000, 1.000000, 1.000000;;, - 93;3; 1.000000, 1.000000, 1.000000;;, - 94;3; 1.000000, 1.000000, 1.000000;;, - 95;3; 1.000000, 1.000000, 1.000000;;, - 96;3; 1.000000, 1.000000, 1.000000;;, - 97;3; 1.000000, 1.000000, 1.000000;;, - 98;3; 1.000000, 1.000000, 1.000000;;, - 99;3; 1.000000, 1.000000, 1.000000;;, - 100;3; 1.000000, 1.000000, 1.000000;;, - 101;3; 1.000000, 1.000000, 1.000000;;, - 102;3; 1.000000, 1.000000, 1.000000;;, - 103;3; 1.000000, 1.000000, 1.000000;;, - 104;3; 1.000000, 1.000000, 1.000000;;, - 105;3; 1.000000, 1.000000, 1.000000;;, - 106;3; 1.000000, 1.000000, 1.000000;;, - 107;3; 1.000000, 1.000000, 1.000000;;, - 108;3; 1.000000, 1.000000, 1.000000;;, - 109;3; 1.000000, 1.000000, 1.000000;;, - 110;3; 1.000000, 1.000000, 1.000000;;, - 111;3; 1.000000, 1.000000, 1.000000;;, - 112;3; 1.000000, 1.000000, 1.000000;;, - 113;3; 1.000000, 1.000000, 1.000000;;, - 114;3; 1.000000, 1.000000, 1.000000;;, - 115;3; 1.000000, 1.000000, 1.000000;;, - 116;3; 1.000000, 1.000000, 1.000000;;, - 117;3; 1.000000, 1.000000, 1.000000;;, - 118;3; 1.000000, 1.000000, 1.000000;;, - 119;3; 1.000000, 1.000000, 1.000000;;, - 120;3; 1.000000, 1.000000, 1.000000;;, - 121;3; 1.000000, 1.000000, 1.000000;;, - 122;3; 1.000000, 1.000000, 1.000000;;, - 123;3; 1.000000, 1.000000, 1.000000;;, - 124;3; 1.000000, 1.000000, 1.000000;;, - 125;3; 1.000000, 1.000000, 1.000000;;, - 126;3; 1.000000, 1.000000, 1.000000;;, - 127;3; 1.000000, 1.000000, 1.000000;;, - 128;3; 1.000000, 1.000000, 1.000000;;, - 129;3; 1.000000, 1.000000, 1.000000;;, - 130;3; 1.000000, 1.000000, 1.000000;;, - 131;3; 1.000000, 1.000000, 1.000000;;, - 132;3; 1.000000, 1.000000, 1.000000;;, - 133;3; 1.000000, 1.000000, 1.000000;;, - 134;3; 1.000000, 1.000000, 1.000000;;, - 135;3; 1.000000, 1.000000, 1.000000;;, - 136;3; 1.000000, 1.000000, 1.000000;;, - 137;3; 1.000000, 1.000000, 1.000000;;, - 138;3; 1.000000, 1.000000, 1.000000;;, - 139;3; 1.000000, 1.000000, 1.000000;;, - 140;3; 1.000000, 1.000000, 1.000000;;, - 141;3; 1.000000, 1.000000, 1.000000;;, - 142;3; 1.000000, 1.000000, 1.000000;;, - 143;3; 1.000000, 1.000000, 1.000000;;, - 144;3; 1.000000, 1.000000, 1.000000;;, - 145;3; 1.000000, 1.000000, 1.000000;;, - 146;3; 1.000000, 1.000000, 1.000000;;, - 147;3; 1.000000, 1.000000, 1.000000;;, - 148;3; 1.000000, 1.000000, 1.000000;;, - 149;3; 1.000000, 1.000000, 1.000000;;, - 150;3; 1.000000, 1.000000, 1.000000;;, - 151;3; 1.000000, 1.000000, 1.000000;;, - 152;3; 1.000000, 1.000000, 1.000000;;, - 153;3; 1.000000, 1.000000, 1.000000;;, - 154;3; 1.000000, 1.000000, 1.000000;;, - 155;3; 1.000000, 1.000000, 1.000000;;; - } - } - Animation { - {Armature_noga1} - AnimationKey { //Position - 2; - 156; - 0;3; 0.618225, 3.072911,-0.875938;;, - 1;3; 0.618225, 3.072911,-0.875938;;, - 2;3; 0.618225, 3.072911,-0.875938;;, - 3;3; 0.618225, 3.072911,-0.875938;;, - 4;3; 0.618225, 3.072911,-0.875938;;, - 5;3; 0.618225, 3.072911,-0.875938;;, - 6;3; 0.618225, 3.072911,-0.875938;;, - 7;3; 0.618225, 3.072911,-0.875938;;, - 8;3; 0.618225, 3.072911,-0.875938;;, - 9;3; 0.618225, 3.072911,-0.875938;;, - 10;3; 0.618225, 3.072911,-0.875938;;, - 11;3; 0.618225, 3.072911,-0.875938;;, - 12;3; 0.618225, 3.072911,-0.875938;;, - 13;3; 0.618225, 3.072911,-0.875938;;, - 14;3; 0.618225, 3.072911,-0.875938;;, - 15;3; 0.618225, 3.072911,-0.875938;;, - 16;3; 0.618225, 3.072911,-0.875938;;, - 17;3; 0.618225, 3.072911,-0.875938;;, - 18;3; 0.618225, 3.072911,-0.875938;;, - 19;3; 0.618225, 3.072911,-0.875938;;, - 20;3; 0.618225, 3.072911,-0.875938;;, - 21;3; 0.618225, 3.072911,-0.875938;;, - 22;3; 0.618225, 3.072911,-0.875938;;, - 23;3; 0.618225, 3.072911,-0.875938;;, - 24;3; 0.618225, 3.072911,-0.875938;;, - 25;3; 0.618225, 3.072911,-0.875938;;, - 26;3; 0.618225, 3.072911,-0.875938;;, - 27;3; 0.618225, 3.072911,-0.875938;;, - 28;3; 0.618225, 3.072911,-0.875938;;, - 29;3; 0.618225, 3.072911,-0.875938;;, - 30;3; 0.618225, 3.072911,-0.875938;;, - 31;3; 0.618225, 3.072911,-0.875938;;, - 32;3; 0.618225, 3.072911,-0.875938;;, - 33;3; 0.618225, 3.072911,-0.875938;;, - 34;3; 0.618225, 3.072911,-0.875938;;, - 35;3; 0.618225, 3.072911,-0.875938;;, - 36;3; 0.618225, 3.072911,-0.875938;;, - 37;3; 0.618225, 3.072911,-0.875938;;, - 38;3; 0.618225, 3.072911,-0.875938;;, - 39;3; 0.618225, 3.072911,-0.875938;;, - 40;3; 0.618225, 3.072911,-0.875938;;, - 41;3; 0.618225, 3.072911,-0.875938;;, - 42;3; 0.618225, 3.072911,-0.875938;;, - 43;3; 0.618225, 3.072911,-0.875938;;, - 44;3; 0.618225, 3.072911,-0.875938;;, - 45;3; 0.618225, 3.072911,-0.875938;;, - 46;3; 0.618225, 3.072911,-0.875938;;, - 47;3; 0.618225, 3.072911,-0.875938;;, - 48;3; 0.618225, 3.072911,-0.875938;;, - 49;3; 0.618225, 3.072911,-0.875938;;, - 50;3; 0.618225, 3.072911,-0.875938;;, - 51;3; 0.618225, 3.072911,-0.875938;;, - 52;3; 0.618225, 3.072911,-0.875938;;, - 53;3; 0.618225, 3.072911,-0.875938;;, - 54;3; 0.618225, 3.072911,-0.875938;;, - 55;3; 0.618225, 3.072911,-0.875938;;, - 56;3; 0.618225, 3.072911,-0.875938;;, - 57;3; 0.618225, 3.072911,-0.875938;;, - 58;3; 0.618225, 3.072911,-0.875938;;, - 59;3; 0.618225, 3.072911,-0.875938;;, - 60;3; 0.618225, 3.072911,-0.875938;;, - 61;3; 0.618225, 3.072911,-0.875938;;, - 62;3; 0.618225, 3.072911,-0.875938;;, - 63;3; 0.618225, 3.072911,-0.875938;;, - 64;3; 0.618225, 3.072911,-0.875938;;, - 65;3; 0.618225, 3.072911,-0.875938;;, - 66;3; 0.618225, 3.072911,-0.875938;;, - 67;3; 0.618225, 3.072911,-0.875938;;, - 68;3; 0.618225, 3.072911,-0.875938;;, - 69;3; 0.618225, 3.072911,-0.875938;;, - 70;3; 0.618225, 3.072911,-0.875938;;, - 71;3; 0.618225, 3.072911,-0.875938;;, - 72;3; 0.618225, 3.072911,-0.875938;;, - 73;3; 0.618225, 3.072911,-0.875938;;, - 74;3; 0.618225, 3.072911,-0.875938;;, - 75;3; 0.618225, 3.072911,-0.875938;;, - 76;3; 0.618225, 3.072911,-0.875938;;, - 77;3; 0.618225, 3.072911,-0.875938;;, - 78;3; 0.618225, 3.072911,-0.875938;;, - 79;3; 0.618225, 3.072911,-0.875938;;, - 80;3; 0.618225, 3.072911,-0.875938;;, - 81;3; 0.618225, 3.072911,-0.875938;;, - 82;3; 0.618225, 3.072911,-0.875938;;, - 83;3; 0.618225, 3.072911,-0.875938;;, - 84;3; 0.618225, 3.072911,-0.875938;;, - 85;3; 0.618225, 3.072911,-0.875938;;, - 86;3; 0.618225, 3.072911,-0.875938;;, - 87;3; 0.618225, 3.072911,-0.875938;;, - 88;3; 0.618225, 3.072911,-0.875938;;, - 89;3; 0.618225, 3.072911,-0.875938;;, - 90;3; 0.618225, 3.072911,-0.875938;;, - 91;3; 0.618225, 3.072911,-0.875938;;, - 92;3; 0.618225, 3.072911,-0.875938;;, - 93;3; 0.618225, 3.072911,-0.875938;;, - 94;3; 0.618225, 3.072911,-0.875938;;, - 95;3; 0.618225, 3.072911,-0.875938;;, - 96;3; 0.618225, 3.072911,-0.875938;;, - 97;3; 0.618225, 3.072911,-0.875938;;, - 98;3; 0.618225, 3.072911,-0.875938;;, - 99;3; 0.618225, 3.072911,-0.875938;;, - 100;3; 0.618225, 3.072911,-0.875938;;, - 101;3; 0.618225, 3.072911,-0.875938;;, - 102;3; 0.618225, 3.072911,-0.875938;;, - 103;3; 0.618225, 3.072911,-0.875938;;, - 104;3; 0.618225, 3.072911,-0.875938;;, - 105;3; 0.618225, 3.072911,-0.875938;;, - 106;3; 0.618225, 3.072911,-0.875938;;, - 107;3; 0.618225, 3.072911,-0.875938;;, - 108;3; 0.618225, 3.072911,-0.875938;;, - 109;3; 0.618225, 3.072911,-0.875938;;, - 110;3; 0.618225, 3.072911,-0.875938;;, - 111;3; 0.618225, 3.072911,-0.875938;;, - 112;3; 0.618225, 3.072911,-0.875938;;, - 113;3; 0.618225, 3.072911,-0.875938;;, - 114;3; 0.618225, 3.072911,-0.875938;;, - 115;3; 0.618225, 3.072911,-0.875938;;, - 116;3; 0.618225, 3.072911,-0.875938;;, - 117;3; 0.618225, 3.072911,-0.875938;;, - 118;3; 0.618225, 3.072911,-0.875938;;, - 119;3; 0.618225, 3.072911,-0.875938;;, - 120;3; 0.618225, 3.072911,-0.875938;;, - 121;3; 0.618225, 3.072911,-0.875938;;, - 122;3; 0.618225, 3.072911,-0.875938;;, - 123;3; 0.618225, 3.072911,-0.875938;;, - 124;3; 0.618225, 3.072911,-0.875938;;, - 125;3; 0.618225, 3.072911,-0.875938;;, - 126;3; 0.618225, 3.072911,-0.875938;;, - 127;3; 0.618225, 3.072911,-0.875938;;, - 128;3; 0.618225, 3.072911,-0.875938;;, - 129;3; 0.618225, 3.072911,-0.875938;;, - 130;3; 0.618225, 3.072911,-0.875938;;, - 131;3; 0.618225, 3.072911,-0.875938;;, - 132;3; 0.618225, 3.072911,-0.875938;;, - 133;3; 0.618225, 3.072911,-0.875938;;, - 134;3; 0.618225, 3.072911,-0.875938;;, - 135;3; 0.618225, 3.072911,-0.875938;;, - 136;3; 0.618225, 3.072911,-0.875938;;, - 137;3; 0.618225, 3.072911,-0.875938;;, - 138;3; 0.618225, 3.072911,-0.875938;;, - 139;3; 0.618225, 3.072911,-0.875938;;, - 140;3; 0.618225, 3.072911,-0.875938;;, - 141;3; 0.618225, 3.072911,-0.875938;;, - 142;3; 0.618225, 3.072911,-0.875938;;, - 143;3; 0.618225, 3.072911,-0.875938;;, - 144;3; 0.618225, 3.072911,-0.875938;;, - 145;3; 0.618225, 3.072911,-0.875938;;, - 146;3; 0.618225, 3.072911,-0.875938;;, - 147;3; 0.618225, 3.072911,-0.875938;;, - 148;3; 0.618225, 3.072911,-0.875938;;, - 149;3; 0.618225, 3.072911,-0.875938;;, - 150;3; 0.618225, 3.072911,-0.875938;;, - 151;3; 0.618225, 3.072911,-0.875938;;, - 152;3; 0.618225, 3.072911,-0.875938;;, - 153;3; 0.618225, 3.072911,-0.875938;;, - 154;3; 0.618225, 3.072911,-0.875938;;, - 155;3; 0.618225, 3.072911,-0.875938;;; - } - AnimationKey { //Rotation - 0; - 156; - 0;4; -0.478735,-0.520397, 0.478735,-0.520397;;, - 1;4; -0.478735,-0.520397, 0.478735,-0.520397;;, - 2;4; -0.478735,-0.520397, 0.478735,-0.520397;;, - 3;4; -0.478735,-0.520397, 0.478735,-0.520397;;, - 4;4; -0.478735,-0.520397, 0.478735,-0.520397;;, - 5;4; -0.478735,-0.520397, 0.478735,-0.520397;;, - 6;4; -0.478735,-0.520397, 0.478735,-0.520397;;, - 7;4; -0.478735,-0.520397, 0.478735,-0.520397;;, - 8;4; -0.478735,-0.520397, 0.478735,-0.520397;;, - 9;4; -0.478735,-0.520397, 0.478735,-0.520397;;, - 10;4; -0.478735,-0.520397, 0.478735,-0.520397;;, - 11;4; -0.478735,-0.520397, 0.478735,-0.520397;;, - 12;4; -0.478735,-0.520397, 0.478735,-0.520397;;, - 13;4; -0.478735,-0.520397, 0.478735,-0.520397;;, - 14;4; -0.478735,-0.520397, 0.478735,-0.520397;;, - 15;4; -0.478735,-0.520397, 0.478735,-0.520397;;, - 16;4; -0.478735,-0.520397, 0.478735,-0.520397;;, - 17;4; -0.478735,-0.520397, 0.478735,-0.520397;;, - 18;4; -0.478735,-0.520397, 0.478735,-0.520397;;, - 19;4; -0.478735,-0.520397, 0.478735,-0.520397;;, - 20;4; -0.478735,-0.520397, 0.478735,-0.520397;;, - 21;4; -0.478735,-0.520397, 0.478735,-0.520397;;, - 22;4; -0.478735,-0.520397, 0.478735,-0.520397;;, - 23;4; -0.478735,-0.520397, 0.478735,-0.520397;;, - 24;4; -0.478735,-0.520397, 0.478735,-0.520397;;, - 25;4; -0.478735,-0.520397, 0.478735,-0.520397;;, - 26;4; -0.478735,-0.520397, 0.478735,-0.520397;;, - 27;4; -0.478735,-0.520397, 0.478735,-0.520397;;, - 28;4; -0.478735,-0.520397, 0.478735,-0.520397;;, - 29;4; -0.478735,-0.520397, 0.478735,-0.520397;;, - 30;4; -0.478735,-0.520397, 0.478735,-0.520397;;, - 31;4; -0.478735,-0.520397, 0.478735,-0.520397;;, - 32;4; -0.478735,-0.520397, 0.478735,-0.520397;;, - 33;4; -0.478735,-0.520397, 0.478735,-0.520397;;, - 34;4; -0.478735,-0.520397, 0.478735,-0.520397;;, - 35;4; -0.478735,-0.520397, 0.478735,-0.520397;;, - 36;4; -0.478735,-0.520397, 0.478735,-0.520397;;, - 37;4; -0.478735,-0.520397, 0.478735,-0.520397;;, - 38;4; -0.478735,-0.520397, 0.478735,-0.520397;;, - 39;4; -0.478735,-0.520397, 0.478735,-0.520397;;, - 40;4; -0.478735,-0.520397, 0.478735,-0.520397;;, - 41;4; -0.478735,-0.520397, 0.478735,-0.520397;;, - 42;4; -0.478735,-0.520397, 0.478735,-0.520397;;, - 43;4; -0.478735,-0.520397, 0.478735,-0.520397;;, - 44;4; -0.478735,-0.520397, 0.478735,-0.520397;;, - 45;4; -0.478735,-0.520397, 0.478735,-0.520397;;, - 46;4; -0.478735,-0.520397, 0.478735,-0.520397;;, - 47;4; -0.478735,-0.520397, 0.478735,-0.520397;;, - 48;4; -0.478735,-0.520397, 0.478735,-0.520397;;, - 49;4; -0.478735,-0.520397, 0.478735,-0.520397;;, - 50;4; -0.478735,-0.520397, 0.478735,-0.520397;;, - 51;4; -0.478735,-0.520397, 0.478735,-0.520397;;, - 52;4; -0.478735,-0.520397, 0.478735,-0.520397;;, - 53;4; -0.478735,-0.520397, 0.478735,-0.520397;;, - 54;4; -0.478735,-0.520397, 0.478735,-0.520397;;, - 55;4; -0.478735,-0.520397, 0.478735,-0.520397;;, - 56;4; -0.478735,-0.520397, 0.478735,-0.520397;;, - 57;4; -0.478735,-0.520397, 0.478735,-0.520397;;, - 58;4; -0.478735,-0.520397, 0.478735,-0.520397;;, - 59;4; -0.478735,-0.520397, 0.478735,-0.520397;;, - 60;4; -0.478735,-0.520397, 0.478735,-0.520397;;, - 61;4; -0.478735,-0.520397, 0.478735,-0.520397;;, - 62;4; -0.478735,-0.520397, 0.478735,-0.520397;;, - 63;4; -0.478735,-0.520397, 0.478735,-0.520397;;, - 64;4; -0.478735,-0.520397, 0.478735,-0.520397;;, - 65;4; -0.478735,-0.520397, 0.478735,-0.520397;;, - 66;4; -0.478735,-0.520397, 0.478735,-0.520397;;, - 67;4; -0.478735,-0.520397, 0.478735,-0.520397;;, - 68;4; -0.478735,-0.520397, 0.478735,-0.520397;;, - 69;4; -0.478735,-0.520397, 0.478735,-0.520397;;, - 70;4; -0.478735,-0.520397, 0.478735,-0.520397;;, - 71;4; -0.478735,-0.520397, 0.478735,-0.520397;;, - 72;4; -0.478735,-0.520397, 0.478735,-0.520397;;, - 73;4; -0.478735,-0.520397, 0.478735,-0.520397;;, - 74;4; -0.478735,-0.520397, 0.478735,-0.520397;;, - 75;4; -0.478735,-0.520397, 0.478735,-0.520397;;, - 76;4; -0.478735,-0.520397, 0.478735,-0.520397;;, - 77;4; -0.482678,-0.516262, 0.482678,-0.516262;;, - 78;4; -0.494154,-0.504227, 0.494154,-0.504227;;, - 79;4; -0.510651,-0.486926, 0.510651,-0.486926;;, - 80;4; -0.527147,-0.469626, 0.527147,-0.469626;;, - 81;4; -0.538622,-0.457592, 0.538622,-0.457592;;, - 82;4; -0.542565,-0.453457, 0.542565,-0.453457;;, - 83;4; -0.540477,-0.455378, 0.540477,-0.455378;;, - 84;4; -0.534173,-0.461177, 0.534173,-0.461177;;, - 85;4; -0.523779,-0.470740, 0.523779,-0.470740;;, - 86;4; -0.509749,-0.483646, 0.509749,-0.483645;;, - 87;4; -0.492950,-0.499100, 0.492950,-0.499100;;, - 88;4; -0.474639,-0.515945, 0.474639,-0.515945;;, - 89;4; -0.456329,-0.532789, 0.456329,-0.532789;;, - 90;4; -0.439529,-0.548244, 0.439529,-0.548244;;, - 91;4; -0.425500,-0.561150, 0.425500,-0.561150;;, - 92;4; -0.415106,-0.570712, 0.415106,-0.570712;;, - 93;4; -0.408802,-0.576511, 0.408802,-0.576511;;, - 94;4; -0.406714,-0.578432, 0.406714,-0.578432;;, - 95;4; -0.411163,-0.574847, 0.411163,-0.574847;;, - 96;4; -0.424110,-0.564414, 0.424110,-0.564414;;, - 97;4; -0.442723,-0.549416, 0.442723,-0.549415;;, - 98;4; -0.461337,-0.534416, 0.461337,-0.534416;;, - 99;4; -0.474286,-0.523982, 0.474286,-0.523982;;, - 100;4; -0.478735,-0.520397, 0.478735,-0.520397;;, - 101;4; -0.478735,-0.520397, 0.478735,-0.520397;;, - 102;4; -0.478735,-0.520397, 0.478735,-0.520397;;, - 103;4; -0.478735,-0.520397, 0.478735,-0.520397;;, - 104;4; -0.478735,-0.520397, 0.478735,-0.520397;;, - 105;4; -0.478735,-0.520397, 0.478735,-0.520397;;, - 106;4; -0.478735,-0.520397, 0.478735,-0.520397;;, - 107;4; -0.491310,-0.499783, 0.491310,-0.499783;;, - 108;4; -0.527875,-0.439824, 0.527875,-0.439824;;, - 109;4; -0.580385,-0.353680, 0.580385,-0.353680;;, - 110;4; -0.632861,-0.267568, 0.632861,-0.267568;;, - 111;4; -0.669363,-0.207667, 0.669363,-0.207667;;, - 112;4; -0.681910,-0.187081, 0.681910,-0.187081;;, - 113;4; -0.675079,-0.193992, 0.675079,-0.193992;;, - 114;4; -0.654499,-0.214898, 0.654499,-0.214898;;, - 115;4; -0.620650,-0.249464, 0.620650,-0.249464;;, - 116;4; -0.575119,-0.296284, 0.575119,-0.296284;;, - 117;4; -0.520839,-0.352614, 0.520839,-0.352614;;, - 118;4; -0.462040,-0.414402, 0.462040,-0.414402;;, - 119;4; -0.403751,-0.476744, 0.403751,-0.476744;;, - 120;4; -0.350964,-0.534697, 0.350964,-0.534697;;, - 121;4; -0.307811,-0.584103, 0.307811,-0.584103;;, - 122;4; -0.277091,-0.622069, 0.277091,-0.622069;;, - 123;4; -0.260242,-0.647032, 0.260242,-0.647032;;, - 124;4; -0.257613,-0.658510, 0.257613,-0.658510;;, - 125;4; -0.274638,-0.653639, 0.274638,-0.653639;;, - 126;4; -0.315588,-0.630125, 0.315588,-0.630124;;, - 127;4; -0.372016,-0.593669, 0.372016,-0.593669;;, - 128;4; -0.427452,-0.556114, 0.427452,-0.556114;;, - 129;4; -0.465668,-0.529588, 0.465668,-0.529588;;, - 130;4; -0.478735,-0.520397, 0.478735,-0.520397;;, - 131;4; -0.478735,-0.520397, 0.478735,-0.520397;;, - 132;4; -0.478735,-0.520397, 0.478735,-0.520397;;, - 133;4; -0.478735,-0.520397, 0.478735,-0.520397;;, - 134;4; -0.478735,-0.520397, 0.478735,-0.520397;;, - 135;4; -0.478735,-0.520397, 0.478735,-0.520397;;, - 136;4; -0.532148,-0.458394, 0.532148,-0.458394;;, - 137;4; -0.585542,-0.396409, 0.585542,-0.396409;;, - 138;4; -0.585686,-0.396666, 0.585686,-0.396666;;, - 139;4; -0.585870,-0.397588, 0.585870,-0.397588;;, - 140;4; -0.585704,-0.399404, 0.585704,-0.399404;;, - 141;4; -0.584786,-0.402326, 0.584786,-0.402326;;, - 142;4; -0.582734,-0.406537, 0.582734,-0.406537;;, - 143;4; -0.579209,-0.412177, 0.579209,-0.412177;;, - 144;4; -0.573938,-0.419337, 0.573938,-0.419337;;, - 145;4; -0.566723,-0.428060, 0.566723,-0.428060;;, - 146;4; -0.557438,-0.438344, 0.557438,-0.438344;;, - 147;4; -0.546028,-0.450151, 0.546028,-0.450151;;, - 148;4; -0.532491,-0.463419, 0.532491,-0.463419;;, - 149;4; -0.516871,-0.478066, 0.516871,-0.478066;;, - 150;4; -0.479547,-0.511265, 0.479547,-0.511265;;, - 151;4; -0.422801,-0.561035, 0.422801,-0.561035;;, - 152;4; -0.398209,-0.582521, 0.398209,-0.582521;;, - 153;4; -0.417653,-0.567522, 0.417653,-0.567522;;, - 154;4; -0.459264,-0.535421, 0.459264,-0.535421;;, - 155;4; -0.478735,-0.520397, 0.478735,-0.520397;;; - } - AnimationKey { //Scale - 1; - 156; - 0;3; 1.000000, 1.000000, 1.000000;;, - 1;3; 1.000000, 1.000000, 1.000000;;, - 2;3; 1.000000, 1.000000, 1.000000;;, - 3;3; 1.000000, 1.000000, 1.000000;;, - 4;3; 1.000000, 1.000000, 1.000000;;, - 5;3; 1.000000, 1.000000, 1.000000;;, - 6;3; 1.000000, 1.000000, 1.000000;;, - 7;3; 1.000000, 1.000000, 1.000000;;, - 8;3; 1.000000, 1.000000, 1.000000;;, - 9;3; 1.000000, 1.000000, 1.000000;;, - 10;3; 1.000000, 1.000000, 1.000000;;, - 11;3; 1.000000, 1.000000, 1.000000;;, - 12;3; 1.000000, 1.000000, 1.000000;;, - 13;3; 1.000000, 1.000000, 1.000000;;, - 14;3; 1.000000, 1.000000, 1.000000;;, - 15;3; 1.000000, 1.000000, 1.000000;;, - 16;3; 1.000000, 1.000000, 1.000000;;, - 17;3; 1.000000, 1.000000, 1.000000;;, - 18;3; 1.000000, 1.000000, 1.000000;;, - 19;3; 1.000000, 1.000000, 1.000000;;, - 20;3; 1.000000, 1.000000, 1.000000;;, - 21;3; 1.000000, 1.000000, 1.000000;;, - 22;3; 1.000000, 1.000000, 1.000000;;, - 23;3; 1.000000, 1.000000, 1.000000;;, - 24;3; 1.000000, 1.000000, 1.000000;;, - 25;3; 1.000000, 1.000000, 1.000000;;, - 26;3; 1.000000, 1.000000, 1.000000;;, - 27;3; 1.000000, 1.000000, 1.000000;;, - 28;3; 1.000000, 1.000000, 1.000000;;, - 29;3; 1.000000, 1.000000, 1.000000;;, - 30;3; 1.000000, 1.000000, 1.000000;;, - 31;3; 1.000000, 1.000000, 1.000000;;, - 32;3; 1.000000, 1.000000, 1.000000;;, - 33;3; 1.000000, 1.000000, 1.000000;;, - 34;3; 1.000000, 1.000000, 1.000000;;, - 35;3; 1.000000, 1.000000, 1.000000;;, - 36;3; 1.000000, 1.000000, 1.000000;;, - 37;3; 1.000000, 1.000000, 1.000000;;, - 38;3; 1.000000, 1.000000, 1.000000;;, - 39;3; 1.000000, 1.000000, 1.000000;;, - 40;3; 1.000000, 1.000000, 1.000000;;, - 41;3; 1.000000, 1.000000, 1.000000;;, - 42;3; 1.000000, 1.000000, 1.000000;;, - 43;3; 1.000000, 1.000000, 1.000000;;, - 44;3; 1.000000, 1.000000, 1.000000;;, - 45;3; 1.000000, 1.000000, 1.000000;;, - 46;3; 1.000000, 1.000000, 1.000000;;, - 47;3; 1.000000, 1.000000, 1.000000;;, - 48;3; 1.000000, 1.000000, 1.000000;;, - 49;3; 1.000000, 1.000000, 1.000000;;, - 50;3; 1.000000, 1.000000, 1.000000;;, - 51;3; 1.000000, 1.000000, 1.000000;;, - 52;3; 1.000000, 1.000000, 1.000000;;, - 53;3; 1.000000, 1.000000, 1.000000;;, - 54;3; 1.000000, 1.000000, 1.000000;;, - 55;3; 1.000000, 1.000000, 1.000000;;, - 56;3; 1.000000, 1.000000, 1.000000;;, - 57;3; 1.000000, 1.000000, 1.000000;;, - 58;3; 1.000000, 1.000000, 1.000000;;, - 59;3; 1.000000, 1.000000, 1.000000;;, - 60;3; 1.000000, 1.000000, 1.000000;;, - 61;3; 1.000000, 1.000000, 1.000000;;, - 62;3; 1.000000, 1.000000, 1.000000;;, - 63;3; 1.000000, 1.000000, 1.000000;;, - 64;3; 1.000000, 1.000000, 1.000000;;, - 65;3; 1.000000, 1.000000, 1.000000;;, - 66;3; 1.000000, 1.000000, 1.000000;;, - 67;3; 1.000000, 1.000000, 1.000000;;, - 68;3; 1.000000, 1.000000, 1.000000;;, - 69;3; 1.000000, 1.000000, 1.000000;;, - 70;3; 1.000000, 1.000000, 1.000000;;, - 71;3; 1.000000, 1.000000, 1.000000;;, - 72;3; 1.000000, 1.000000, 1.000000;;, - 73;3; 1.000000, 1.000000, 1.000000;;, - 74;3; 1.000000, 1.000000, 1.000000;;, - 75;3; 1.000000, 1.000000, 1.000000;;, - 76;3; 1.000000, 1.000000, 1.000000;;, - 77;3; 1.000000, 1.000000, 1.000000;;, - 78;3; 1.000000, 1.000000, 1.000000;;, - 79;3; 1.000000, 1.000000, 1.000000;;, - 80;3; 1.000000, 1.000000, 1.000000;;, - 81;3; 1.000000, 1.000000, 1.000000;;, - 82;3; 1.000000, 1.000000, 1.000000;;, - 83;3; 1.000000, 1.000000, 1.000000;;, - 84;3; 1.000000, 1.000000, 1.000000;;, - 85;3; 1.000000, 1.000000, 1.000000;;, - 86;3; 1.000000, 1.000000, 1.000000;;, - 87;3; 1.000000, 1.000000, 1.000000;;, - 88;3; 1.000000, 1.000000, 1.000000;;, - 89;3; 1.000000, 1.000000, 1.000000;;, - 90;3; 1.000000, 1.000000, 1.000000;;, - 91;3; 1.000000, 1.000000, 1.000000;;, - 92;3; 1.000000, 1.000000, 1.000000;;, - 93;3; 1.000000, 1.000000, 1.000000;;, - 94;3; 1.000000, 1.000000, 1.000000;;, - 95;3; 1.000000, 1.000000, 1.000000;;, - 96;3; 1.000000, 1.000000, 1.000000;;, - 97;3; 1.000000, 1.000000, 1.000000;;, - 98;3; 1.000000, 1.000000, 1.000000;;, - 99;3; 1.000000, 1.000000, 1.000000;;, - 100;3; 1.000000, 1.000000, 1.000000;;, - 101;3; 1.000000, 1.000000, 1.000000;;, - 102;3; 1.000000, 1.000000, 1.000000;;, - 103;3; 1.000000, 1.000000, 1.000000;;, - 104;3; 1.000000, 1.000000, 1.000000;;, - 105;3; 1.000000, 1.000000, 1.000000;;, - 106;3; 1.000000, 1.000000, 1.000000;;, - 107;3; 1.000000, 1.000000, 1.000000;;, - 108;3; 1.000000, 1.000000, 1.000000;;, - 109;3; 1.000000, 1.000000, 1.000000;;, - 110;3; 1.000000, 1.000000, 1.000000;;, - 111;3; 1.000000, 1.000000, 1.000000;;, - 112;3; 1.000000, 1.000000, 1.000000;;, - 113;3; 1.000000, 1.000000, 1.000000;;, - 114;3; 1.000000, 1.000000, 1.000000;;, - 115;3; 1.000000, 1.000000, 1.000000;;, - 116;3; 1.000000, 1.000000, 1.000000;;, - 117;3; 1.000000, 1.000000, 1.000000;;, - 118;3; 1.000000, 1.000000, 1.000000;;, - 119;3; 1.000000, 1.000000, 1.000000;;, - 120;3; 1.000000, 1.000000, 1.000000;;, - 121;3; 1.000000, 1.000000, 1.000000;;, - 122;3; 1.000000, 1.000000, 1.000000;;, - 123;3; 1.000000, 1.000000, 1.000000;;, - 124;3; 1.000000, 1.000000, 1.000000;;, - 125;3; 1.000000, 1.000000, 1.000000;;, - 126;3; 1.000000, 1.000000, 1.000000;;, - 127;3; 1.000000, 1.000000, 1.000000;;, - 128;3; 1.000000, 1.000000, 1.000000;;, - 129;3; 1.000000, 1.000000, 1.000000;;, - 130;3; 1.000000, 1.000000, 1.000000;;, - 131;3; 1.000000, 1.000000, 1.000000;;, - 132;3; 1.000000, 1.000000, 1.000000;;, - 133;3; 1.000000, 1.000000, 1.000000;;, - 134;3; 1.000000, 1.000000, 1.000000;;, - 135;3; 1.000000, 1.000000, 1.000000;;, - 136;3; 1.000000, 1.000000, 1.000000;;, - 137;3; 1.000000, 1.000000, 1.000000;;, - 138;3; 1.000000, 1.000000, 1.000000;;, - 139;3; 1.000000, 1.000000, 1.000000;;, - 140;3; 1.000000, 1.000000, 1.000000;;, - 141;3; 1.000000, 1.000000, 1.000000;;, - 142;3; 1.000000, 1.000000, 1.000000;;, - 143;3; 1.000000, 1.000000, 1.000000;;, - 144;3; 1.000000, 1.000000, 1.000000;;, - 145;3; 1.000000, 1.000000, 1.000000;;, - 146;3; 1.000000, 1.000000, 1.000000;;, - 147;3; 1.000000, 1.000000, 1.000000;;, - 148;3; 1.000000, 1.000000, 1.000000;;, - 149;3; 1.000000, 1.000000, 1.000000;;, - 150;3; 1.000000, 1.000000, 1.000000;;, - 151;3; 1.000000, 1.000000, 1.000000;;, - 152;3; 1.000000, 1.000000, 1.000000;;, - 153;3; 1.000000, 1.000000, 1.000000;;, - 154;3; 1.000000, 1.000000, 1.000000;;, - 155;3; 1.000000, 1.000000, 1.000000;;; - } - } - Animation { - {Armature_noga4} - AnimationKey { //Position - 2; - 156; - 0;3; -0.648382, 0.037596,-0.622362;;, - 1;3; -0.648382, 0.037596,-0.622362;;, - 2;3; -0.648382, 0.037596,-0.622362;;, - 3;3; -0.648382, 0.037596,-0.622362;;, - 4;3; -0.648382, 0.037596,-0.622362;;, - 5;3; -0.648382, 0.037596,-0.622362;;, - 6;3; -0.648382, 0.037596,-0.622362;;, - 7;3; -0.648382, 0.037596,-0.622362;;, - 8;3; -0.648382, 0.037596,-0.622362;;, - 9;3; -0.648382, 0.037596,-0.622362;;, - 10;3; -0.648382, 0.037596,-0.622362;;, - 11;3; -0.648382, 0.037596,-0.622362;;, - 12;3; -0.648382, 0.037596,-0.622362;;, - 13;3; -0.648382, 0.037596,-0.622362;;, - 14;3; -0.648382, 0.037596,-0.622362;;, - 15;3; -0.648382, 0.037596,-0.622362;;, - 16;3; -0.648382, 0.037596,-0.622362;;, - 17;3; -0.648382, 0.037596,-0.622362;;, - 18;3; -0.648382, 0.037596,-0.622362;;, - 19;3; -0.648382, 0.037596,-0.622362;;, - 20;3; -0.648382, 0.037596,-0.622362;;, - 21;3; -0.648382, 0.037596,-0.622362;;, - 22;3; -0.648382, 0.037596,-0.622362;;, - 23;3; -0.648382, 0.037596,-0.622362;;, - 24;3; -0.648382, 0.037596,-0.622362;;, - 25;3; -0.648382, 0.037596,-0.622362;;, - 26;3; -0.648382, 0.037596,-0.622362;;, - 27;3; -0.648382, 0.037596,-0.622362;;, - 28;3; -0.648382, 0.037596,-0.622362;;, - 29;3; -0.648382, 0.037596,-0.622362;;, - 30;3; -0.648382, 0.037596,-0.622362;;, - 31;3; -0.648382, 0.037596,-0.622362;;, - 32;3; -0.648382, 0.037596,-0.622362;;, - 33;3; -0.648382, 0.037596,-0.622362;;, - 34;3; -0.648382, 0.037596,-0.622362;;, - 35;3; -0.648382, 0.037596,-0.622362;;, - 36;3; -0.648382, 0.037596,-0.622362;;, - 37;3; -0.648382, 0.037596,-0.622362;;, - 38;3; -0.648382, 0.037596,-0.622362;;, - 39;3; -0.648382, 0.037596,-0.622362;;, - 40;3; -0.648382, 0.037596,-0.622362;;, - 41;3; -0.648382, 0.037596,-0.622362;;, - 42;3; -0.648382, 0.037596,-0.622362;;, - 43;3; -0.648382, 0.037596,-0.622362;;, - 44;3; -0.648382, 0.037596,-0.622362;;, - 45;3; -0.648382, 0.037596,-0.622362;;, - 46;3; -0.648382, 0.037596,-0.622362;;, - 47;3; -0.648382, 0.037596,-0.622362;;, - 48;3; -0.648382, 0.037596,-0.622362;;, - 49;3; -0.648382, 0.037596,-0.622362;;, - 50;3; -0.648382, 0.037596,-0.622362;;, - 51;3; -0.648382, 0.037596,-0.622362;;, - 52;3; -0.648382, 0.037596,-0.622362;;, - 53;3; -0.648382, 0.037596,-0.622362;;, - 54;3; -0.648382, 0.037596,-0.622362;;, - 55;3; -0.648382, 0.037596,-0.622362;;, - 56;3; -0.648382, 0.037596,-0.622362;;, - 57;3; -0.648382, 0.037596,-0.622362;;, - 58;3; -0.648382, 0.037596,-0.622362;;, - 59;3; -0.648382, 0.037596,-0.622362;;, - 60;3; -0.648382, 0.037596,-0.622362;;, - 61;3; -0.648382, 0.037596,-0.622362;;, - 62;3; -0.648382, 0.037596,-0.622362;;, - 63;3; -0.648382, 0.037596,-0.622362;;, - 64;3; -0.648382, 0.037596,-0.622362;;, - 65;3; -0.648382, 0.037596,-0.622362;;, - 66;3; -0.648382, 0.037596,-0.622362;;, - 67;3; -0.648382, 0.037596,-0.622362;;, - 68;3; -0.648382, 0.037596,-0.622362;;, - 69;3; -0.648382, 0.037596,-0.622362;;, - 70;3; -0.648382, 0.037596,-0.622362;;, - 71;3; -0.648382, 0.037596,-0.622362;;, - 72;3; -0.648382, 0.037596,-0.622362;;, - 73;3; -0.648382, 0.037596,-0.622362;;, - 74;3; -0.648382, 0.037596,-0.622362;;, - 75;3; -0.648382, 0.037596,-0.622362;;, - 76;3; -0.648382, 0.037596,-0.622362;;, - 77;3; -0.648382, 0.037596,-0.622362;;, - 78;3; -0.648382, 0.037596,-0.622362;;, - 79;3; -0.648382, 0.037596,-0.622362;;, - 80;3; -0.648382, 0.037596,-0.622362;;, - 81;3; -0.648382, 0.037596,-0.622362;;, - 82;3; -0.648382, 0.037596,-0.622362;;, - 83;3; -0.648382, 0.037596,-0.622362;;, - 84;3; -0.648382, 0.037596,-0.622362;;, - 85;3; -0.648382, 0.037596,-0.622362;;, - 86;3; -0.648382, 0.037596,-0.622362;;, - 87;3; -0.648382, 0.037596,-0.622362;;, - 88;3; -0.648382, 0.037596,-0.622362;;, - 89;3; -0.648382, 0.037596,-0.622362;;, - 90;3; -0.648382, 0.037596,-0.622362;;, - 91;3; -0.648382, 0.037596,-0.622362;;, - 92;3; -0.648382, 0.037596,-0.622362;;, - 93;3; -0.648382, 0.037596,-0.622362;;, - 94;3; -0.648382, 0.037596,-0.622362;;, - 95;3; -0.648382, 0.037596,-0.622362;;, - 96;3; -0.648382, 0.037596,-0.622362;;, - 97;3; -0.648382, 0.037596,-0.622362;;, - 98;3; -0.648382, 0.037596,-0.622362;;, - 99;3; -0.648382, 0.037596,-0.622362;;, - 100;3; -0.648382, 0.037596,-0.622362;;, - 101;3; -0.648382, 0.037596,-0.622362;;, - 102;3; -0.648382, 0.037596,-0.622362;;, - 103;3; -0.648382, 0.037596,-0.622362;;, - 104;3; -0.648382, 0.037596,-0.622362;;, - 105;3; -0.648382, 0.037596,-0.622362;;, - 106;3; -0.648382, 0.037596,-0.622362;;, - 107;3; -0.648382, 0.037596,-0.622362;;, - 108;3; -0.648382, 0.037596,-0.622362;;, - 109;3; -0.648382, 0.037596,-0.622362;;, - 110;3; -0.648382, 0.037596,-0.622362;;, - 111;3; -0.648382, 0.037596,-0.622362;;, - 112;3; -0.648382, 0.037596,-0.622362;;, - 113;3; -0.648382, 0.037596,-0.622362;;, - 114;3; -0.648382, 0.037596,-0.622362;;, - 115;3; -0.648382, 0.037596,-0.622362;;, - 116;3; -0.648382, 0.037596,-0.622362;;, - 117;3; -0.648382, 0.037596,-0.622362;;, - 118;3; -0.648382, 0.037596,-0.622362;;, - 119;3; -0.648382, 0.037596,-0.622362;;, - 120;3; -0.648382, 0.037596,-0.622362;;, - 121;3; -0.648382, 0.037596,-0.622362;;, - 122;3; -0.648382, 0.037596,-0.622362;;, - 123;3; -0.648382, 0.037596,-0.622362;;, - 124;3; -0.648382, 0.037596,-0.622362;;, - 125;3; -0.648382, 0.037596,-0.622362;;, - 126;3; -0.648382, 0.037596,-0.622362;;, - 127;3; -0.648382, 0.037596,-0.622362;;, - 128;3; -0.648382, 0.037596,-0.622362;;, - 129;3; -0.648382, 0.037596,-0.622362;;, - 130;3; -0.648382, 0.037596,-0.622362;;, - 131;3; -0.648382, 0.037596,-0.622362;;, - 132;3; -0.648382, 0.037596,-0.622362;;, - 133;3; -0.648382, 0.037596,-0.622362;;, - 134;3; -0.648382, 0.037596,-0.622362;;, - 135;3; -0.648382, 0.037596,-0.622362;;, - 136;3; -0.648382, 0.037596,-0.622363;;, - 137;3; -0.648382, 0.037596,-0.622363;;, - 138;3; -0.648382, 0.037596,-0.622362;;, - 139;3; -0.648382, 0.037596,-0.622363;;, - 140;3; -0.648382, 0.037596,-0.622362;;, - 141;3; -0.648382, 0.037596,-0.622362;;, - 142;3; -0.648382, 0.037596,-0.622363;;, - 143;3; -0.648382, 0.037596,-0.622363;;, - 144;3; -0.648382, 0.037596,-0.622362;;, - 145;3; -0.648382, 0.037596,-0.622362;;, - 146;3; -0.648382, 0.037596,-0.622362;;, - 147;3; -0.648382, 0.037596,-0.622363;;, - 148;3; -0.648382, 0.037596,-0.622363;;, - 149;3; -0.648382, 0.037596,-0.622363;;, - 150;3; -0.648382, 0.037596,-0.622363;;, - 151;3; -0.648382, 0.037596,-0.622362;;, - 152;3; -0.648382, 0.037596,-0.622363;;, - 153;3; -0.648382, 0.037596,-0.622362;;, - 154;3; -0.648382, 0.037596,-0.622363;;, - 155;3; -0.648382, 0.037596,-0.622362;;; - } - AnimationKey { //Rotation - 0; - 156; - 0;4; -0.478735,-0.520397, 0.478735,-0.520397;;, - 1;4; -0.478735,-0.520397, 0.478735,-0.520397;;, - 2;4; -0.478735,-0.520397, 0.478735,-0.520397;;, - 3;4; -0.478735,-0.520397, 0.478735,-0.520397;;, - 4;4; -0.478735,-0.520397, 0.478735,-0.520397;;, - 5;4; -0.478735,-0.520397, 0.478735,-0.520397;;, - 6;4; -0.478735,-0.520397, 0.478735,-0.520397;;, - 7;4; -0.478735,-0.520397, 0.478735,-0.520397;;, - 8;4; -0.478735,-0.520397, 0.478735,-0.520397;;, - 9;4; -0.478735,-0.520397, 0.478735,-0.520397;;, - 10;4; -0.478735,-0.520397, 0.478735,-0.520397;;, - 11;4; -0.478735,-0.520397, 0.478735,-0.520397;;, - 12;4; -0.478735,-0.520397, 0.478735,-0.520397;;, - 13;4; -0.478735,-0.520397, 0.478735,-0.520397;;, - 14;4; -0.478735,-0.520397, 0.478735,-0.520397;;, - 15;4; -0.478735,-0.520397, 0.478735,-0.520397;;, - 16;4; -0.478735,-0.520397, 0.478735,-0.520397;;, - 17;4; -0.478735,-0.520397, 0.478735,-0.520397;;, - 18;4; -0.478735,-0.520397, 0.478735,-0.520397;;, - 19;4; -0.478735,-0.520397, 0.478735,-0.520397;;, - 20;4; -0.478735,-0.520397, 0.478735,-0.520397;;, - 21;4; -0.478735,-0.520397, 0.478735,-0.520397;;, - 22;4; -0.478735,-0.520397, 0.478735,-0.520397;;, - 23;4; -0.478735,-0.520397, 0.478735,-0.520397;;, - 24;4; -0.478735,-0.520397, 0.478735,-0.520397;;, - 25;4; -0.478735,-0.520397, 0.478735,-0.520397;;, - 26;4; -0.478735,-0.520397, 0.478735,-0.520397;;, - 27;4; -0.478735,-0.520397, 0.478735,-0.520397;;, - 28;4; -0.478735,-0.520397, 0.478735,-0.520397;;, - 29;4; -0.478735,-0.520397, 0.478735,-0.520397;;, - 30;4; -0.478735,-0.520397, 0.478735,-0.520397;;, - 31;4; -0.478735,-0.520397, 0.478735,-0.520397;;, - 32;4; -0.478735,-0.520397, 0.478735,-0.520397;;, - 33;4; -0.478735,-0.520397, 0.478735,-0.520397;;, - 34;4; -0.478735,-0.520397, 0.478735,-0.520397;;, - 35;4; -0.478735,-0.520397, 0.478735,-0.520397;;, - 36;4; -0.478735,-0.520397, 0.478735,-0.520397;;, - 37;4; -0.478735,-0.520397, 0.478735,-0.520397;;, - 38;4; -0.478735,-0.520397, 0.478735,-0.520397;;, - 39;4; -0.478735,-0.520397, 0.478735,-0.520397;;, - 40;4; -0.478735,-0.520397, 0.478735,-0.520397;;, - 41;4; -0.478735,-0.520397, 0.478735,-0.520397;;, - 42;4; -0.478735,-0.520397, 0.478735,-0.520397;;, - 43;4; -0.478735,-0.520397, 0.478735,-0.520397;;, - 44;4; -0.478735,-0.520397, 0.478735,-0.520397;;, - 45;4; -0.478735,-0.520397, 0.478735,-0.520397;;, - 46;4; -0.478735,-0.520397, 0.478735,-0.520397;;, - 47;4; -0.478735,-0.520397, 0.478735,-0.520397;;, - 48;4; -0.478735,-0.520397, 0.478735,-0.520397;;, - 49;4; -0.478735,-0.520397, 0.478735,-0.520397;;, - 50;4; -0.478735,-0.520397, 0.478735,-0.520397;;, - 51;4; -0.478735,-0.520397, 0.478735,-0.520397;;, - 52;4; -0.478735,-0.520397, 0.478735,-0.520397;;, - 53;4; -0.478735,-0.520397, 0.478735,-0.520397;;, - 54;4; -0.478735,-0.520397, 0.478735,-0.520397;;, - 55;4; -0.478735,-0.520397, 0.478735,-0.520397;;, - 56;4; -0.478735,-0.520397, 0.478735,-0.520397;;, - 57;4; -0.478735,-0.520397, 0.478735,-0.520397;;, - 58;4; -0.478735,-0.520397, 0.478735,-0.520397;;, - 59;4; -0.478735,-0.520397, 0.478735,-0.520397;;, - 60;4; -0.478735,-0.520397, 0.478735,-0.520397;;, - 61;4; -0.478735,-0.520397, 0.478735,-0.520397;;, - 62;4; -0.478735,-0.520397, 0.478735,-0.520397;;, - 63;4; -0.478735,-0.520397, 0.478735,-0.520397;;, - 64;4; -0.478735,-0.520397, 0.478735,-0.520397;;, - 65;4; -0.478735,-0.520397, 0.478735,-0.520397;;, - 66;4; -0.478735,-0.520397, 0.478735,-0.520397;;, - 67;4; -0.478735,-0.520397, 0.478735,-0.520397;;, - 68;4; -0.478735,-0.520397, 0.478735,-0.520397;;, - 69;4; -0.478735,-0.520397, 0.478735,-0.520397;;, - 70;4; -0.478735,-0.520397, 0.478735,-0.520397;;, - 71;4; -0.478735,-0.520397, 0.478735,-0.520397;;, - 72;4; -0.478735,-0.520397, 0.478735,-0.520397;;, - 73;4; -0.478735,-0.520397, 0.478735,-0.520397;;, - 74;4; -0.478735,-0.520397, 0.478735,-0.520397;;, - 75;4; -0.478735,-0.520397, 0.478735,-0.520397;;, - 76;4; -0.478735,-0.520397, 0.478735,-0.520397;;, - 77;4; -0.482678,-0.516262, 0.482678,-0.516262;;, - 78;4; -0.494154,-0.504227, 0.494154,-0.504227;;, - 79;4; -0.510651,-0.486926, 0.510651,-0.486926;;, - 80;4; -0.527147,-0.469626, 0.527147,-0.469626;;, - 81;4; -0.538622,-0.457592, 0.538622,-0.457592;;, - 82;4; -0.542565,-0.453457, 0.542565,-0.453457;;, - 83;4; -0.540477,-0.455378, 0.540477,-0.455378;;, - 84;4; -0.534173,-0.461177, 0.534173,-0.461177;;, - 85;4; -0.523779,-0.470740, 0.523779,-0.470740;;, - 86;4; -0.509749,-0.483646, 0.509749,-0.483645;;, - 87;4; -0.492950,-0.499100, 0.492950,-0.499100;;, - 88;4; -0.474639,-0.515945, 0.474639,-0.515945;;, - 89;4; -0.456329,-0.532789, 0.456329,-0.532789;;, - 90;4; -0.439529,-0.548244, 0.439529,-0.548244;;, - 91;4; -0.425500,-0.561150, 0.425500,-0.561150;;, - 92;4; -0.415106,-0.570712, 0.415106,-0.570712;;, - 93;4; -0.408802,-0.576511, 0.408802,-0.576511;;, - 94;4; -0.406714,-0.578432, 0.406714,-0.578432;;, - 95;4; -0.411163,-0.574847, 0.411163,-0.574847;;, - 96;4; -0.424110,-0.564414, 0.424110,-0.564414;;, - 97;4; -0.442723,-0.549416, 0.442723,-0.549415;;, - 98;4; -0.461337,-0.534416, 0.461337,-0.534416;;, - 99;4; -0.474286,-0.523982, 0.474286,-0.523982;;, - 100;4; -0.478735,-0.520397, 0.478735,-0.520397;;, - 101;4; -0.478735,-0.520397, 0.478735,-0.520397;;, - 102;4; -0.478735,-0.520397, 0.478735,-0.520397;;, - 103;4; -0.478735,-0.520397, 0.478735,-0.520397;;, - 104;4; -0.478735,-0.520397, 0.478735,-0.520397;;, - 105;4; -0.478735,-0.520397, 0.478735,-0.520397;;, - 106;4; -0.478735,-0.520397, 0.478735,-0.520397;;, - 107;4; -0.463086,-0.529658, 0.463086,-0.529658;;, - 108;4; -0.417557,-0.556598, 0.417557,-0.556598;;, - 109;4; -0.352132,-0.595304, 0.352132,-0.595304;;, - 110;4; -0.286723,-0.633995, 0.286723,-0.633995;;, - 111;4; -0.241223,-0.660908, 0.241223,-0.660908;;, - 112;4; -0.225588,-0.670157, 0.225588,-0.670157;;, - 113;4; -0.231994,-0.664266, 0.231994,-0.664266;;, - 114;4; -0.251338,-0.646487, 0.251338,-0.646487;;, - 115;4; -0.283247,-0.617183, 0.283247,-0.617183;;, - 116;4; -0.326335,-0.577654, 0.326335,-0.577654;;, - 117;4; -0.377964,-0.530352, 0.377964,-0.530352;;, - 118;4; -0.434283,-0.478850, 0.434283,-0.478850;;, - 119;4; -0.490670,-0.427420, 0.490670,-0.427420;;, - 120;4; -0.542496,-0.380332, 0.542496,-0.380332;;, - 121;4; -0.585897,-0.341144, 0.585897,-0.341144;;, - 122;4; -0.618218,-0.312288, 0.618218,-0.312288;;, - 123;4; -0.638054,-0.295043, 0.638054,-0.295043;;, - 124;4; -0.645014,-0.289754, 0.645014,-0.289754;;, - 125;4; -0.635188,-0.304482, 0.635188,-0.304482;;, - 126;4; -0.605463,-0.346110, 0.605463,-0.346110;;, - 127;4; -0.562409,-0.405604, 0.562409,-0.405604;;, - 128;4; -0.519210,-0.464968, 0.519210,-0.464968;;, - 129;4; -0.489096,-0.506226, 0.489096,-0.506226;;, - 130;4; -0.478735,-0.520397, 0.478735,-0.520397;;, - 131;4; -0.478735,-0.520397, 0.478735,-0.520397;;, - 132;4; -0.478735,-0.520397, 0.478735,-0.520397;;, - 133;4; -0.478735,-0.520397, 0.478735,-0.520397;;, - 134;4; -0.478735,-0.520397, 0.478735,-0.520397;;, - 135;4; -0.478735,-0.520397, 0.478735,-0.520397;;, - 136;4; -0.423044,-0.562297, 0.423044,-0.562297;;, - 137;4; -0.367362,-0.604190, 0.367362,-0.604190;;, - 138;4; -0.367425,-0.604203, 0.367425,-0.604203;;, - 139;4; -0.367732,-0.604136, 0.367732,-0.604136;;, - 140;4; -0.368467,-0.603827, 0.368467,-0.603826;;, - 141;4; -0.369808,-0.603107, 0.369808,-0.603107;;, - 142;4; -0.371920,-0.601824, 0.371920,-0.601824;;, - 143;4; -0.374937,-0.599842, 0.374937,-0.599842;;, - 144;4; -0.378962,-0.597057, 0.378962,-0.597057;;, - 145;4; -0.384059,-0.593396, 0.384059,-0.593396;;, - 146;4; -0.390257,-0.588817, 0.390257,-0.588817;;, - 147;4; -0.397555,-0.583306, 0.397556,-0.583306;;, - 148;4; -0.405929,-0.576873, 0.405929,-0.576872;;, - 149;4; -0.415336,-0.569543, 0.415336,-0.569543;;, - 150;4; -0.440564,-0.548042, 0.440564,-0.548042;;, - 151;4; -0.480982,-0.513021, 0.480982,-0.513021;;, - 152;4; -0.499219,-0.498090, 0.499219,-0.498090;;, - 153;4; -0.494667,-0.503910, 0.494667,-0.503910;;, - 154;4; -0.483869,-0.515211, 0.483869,-0.515211;;, - 155;4; -0.478735,-0.520397, 0.478735,-0.520397;;; - } - AnimationKey { //Scale - 1; - 156; - 0;3; 1.000000, 1.000000, 1.000000;;, - 1;3; 1.000000, 1.000000, 1.000000;;, - 2;3; 1.000000, 1.000000, 1.000000;;, - 3;3; 1.000000, 1.000000, 1.000000;;, - 4;3; 1.000000, 1.000000, 1.000000;;, - 5;3; 1.000000, 1.000000, 1.000000;;, - 6;3; 1.000000, 1.000000, 1.000000;;, - 7;3; 1.000000, 1.000000, 1.000000;;, - 8;3; 1.000000, 1.000000, 1.000000;;, - 9;3; 1.000000, 1.000000, 1.000000;;, - 10;3; 1.000000, 1.000000, 1.000000;;, - 11;3; 1.000000, 1.000000, 1.000000;;, - 12;3; 1.000000, 1.000000, 1.000000;;, - 13;3; 1.000000, 1.000000, 1.000000;;, - 14;3; 1.000000, 1.000000, 1.000000;;, - 15;3; 1.000000, 1.000000, 1.000000;;, - 16;3; 1.000000, 1.000000, 1.000000;;, - 17;3; 1.000000, 1.000000, 1.000000;;, - 18;3; 1.000000, 1.000000, 1.000000;;, - 19;3; 1.000000, 1.000000, 1.000000;;, - 20;3; 1.000000, 1.000000, 1.000000;;, - 21;3; 1.000000, 1.000000, 1.000000;;, - 22;3; 1.000000, 1.000000, 1.000000;;, - 23;3; 1.000000, 1.000000, 1.000000;;, - 24;3; 1.000000, 1.000000, 1.000000;;, - 25;3; 1.000000, 1.000000, 1.000000;;, - 26;3; 1.000000, 1.000000, 1.000000;;, - 27;3; 1.000000, 1.000000, 1.000000;;, - 28;3; 1.000000, 1.000000, 1.000000;;, - 29;3; 1.000000, 1.000000, 1.000000;;, - 30;3; 1.000000, 1.000000, 1.000000;;, - 31;3; 1.000000, 1.000000, 1.000000;;, - 32;3; 1.000000, 1.000000, 1.000000;;, - 33;3; 1.000000, 1.000000, 1.000000;;, - 34;3; 1.000000, 1.000000, 1.000000;;, - 35;3; 1.000000, 1.000000, 1.000000;;, - 36;3; 1.000000, 1.000000, 1.000000;;, - 37;3; 1.000000, 1.000000, 1.000000;;, - 38;3; 1.000000, 1.000000, 1.000000;;, - 39;3; 1.000000, 1.000000, 1.000000;;, - 40;3; 1.000000, 1.000000, 1.000000;;, - 41;3; 1.000000, 1.000000, 1.000000;;, - 42;3; 1.000000, 1.000000, 1.000000;;, - 43;3; 1.000000, 1.000000, 1.000000;;, - 44;3; 1.000000, 1.000000, 1.000000;;, - 45;3; 1.000000, 1.000000, 1.000000;;, - 46;3; 1.000000, 1.000000, 1.000000;;, - 47;3; 1.000000, 1.000000, 1.000000;;, - 48;3; 1.000000, 1.000000, 1.000000;;, - 49;3; 1.000000, 1.000000, 1.000000;;, - 50;3; 1.000000, 1.000000, 1.000000;;, - 51;3; 1.000000, 1.000000, 1.000000;;, - 52;3; 1.000000, 1.000000, 1.000000;;, - 53;3; 1.000000, 1.000000, 1.000000;;, - 54;3; 1.000000, 1.000000, 1.000000;;, - 55;3; 1.000000, 1.000000, 1.000000;;, - 56;3; 1.000000, 1.000000, 1.000000;;, - 57;3; 1.000000, 1.000000, 1.000000;;, - 58;3; 1.000000, 1.000000, 1.000000;;, - 59;3; 1.000000, 1.000000, 1.000000;;, - 60;3; 1.000000, 1.000000, 1.000000;;, - 61;3; 1.000000, 1.000000, 1.000000;;, - 62;3; 1.000000, 1.000000, 1.000000;;, - 63;3; 1.000000, 1.000000, 1.000000;;, - 64;3; 1.000000, 1.000000, 1.000000;;, - 65;3; 1.000000, 1.000000, 1.000000;;, - 66;3; 1.000000, 1.000000, 1.000000;;, - 67;3; 1.000000, 1.000000, 1.000000;;, - 68;3; 1.000000, 1.000000, 1.000000;;, - 69;3; 1.000000, 1.000000, 1.000000;;, - 70;3; 1.000000, 1.000000, 1.000000;;, - 71;3; 1.000000, 1.000000, 1.000000;;, - 72;3; 1.000000, 1.000000, 1.000000;;, - 73;3; 1.000000, 1.000000, 1.000000;;, - 74;3; 1.000000, 1.000000, 1.000000;;, - 75;3; 1.000000, 1.000000, 1.000000;;, - 76;3; 1.000000, 1.000000, 1.000000;;, - 77;3; 1.000000, 1.000000, 1.000000;;, - 78;3; 1.000000, 1.000000, 1.000000;;, - 79;3; 1.000000, 1.000000, 1.000000;;, - 80;3; 1.000000, 1.000000, 1.000000;;, - 81;3; 1.000000, 1.000000, 1.000000;;, - 82;3; 1.000000, 1.000000, 1.000000;;, - 83;3; 1.000000, 1.000000, 1.000000;;, - 84;3; 1.000000, 1.000000, 1.000000;;, - 85;3; 1.000000, 1.000000, 1.000000;;, - 86;3; 1.000000, 1.000000, 1.000000;;, - 87;3; 1.000000, 1.000000, 1.000000;;, - 88;3; 1.000000, 1.000000, 1.000000;;, - 89;3; 1.000000, 1.000000, 1.000000;;, - 90;3; 1.000000, 1.000000, 1.000000;;, - 91;3; 1.000000, 1.000000, 1.000000;;, - 92;3; 1.000000, 1.000000, 1.000000;;, - 93;3; 1.000000, 1.000000, 1.000000;;, - 94;3; 1.000000, 1.000000, 1.000000;;, - 95;3; 1.000000, 1.000000, 1.000000;;, - 96;3; 1.000000, 1.000000, 1.000000;;, - 97;3; 1.000000, 1.000000, 1.000000;;, - 98;3; 1.000000, 1.000000, 1.000000;;, - 99;3; 1.000000, 1.000000, 1.000000;;, - 100;3; 1.000000, 1.000000, 1.000000;;, - 101;3; 1.000000, 1.000000, 1.000000;;, - 102;3; 1.000000, 1.000000, 1.000000;;, - 103;3; 1.000000, 1.000000, 1.000000;;, - 104;3; 1.000000, 1.000000, 1.000000;;, - 105;3; 1.000000, 1.000000, 1.000000;;, - 106;3; 1.000000, 1.000000, 1.000000;;, - 107;3; 1.000000, 1.000000, 1.000000;;, - 108;3; 1.000000, 1.000000, 1.000000;;, - 109;3; 1.000000, 1.000000, 1.000000;;, - 110;3; 1.000000, 1.000000, 1.000000;;, - 111;3; 1.000000, 1.000000, 1.000000;;, - 112;3; 1.000000, 1.000000, 1.000000;;, - 113;3; 1.000000, 1.000000, 1.000000;;, - 114;3; 1.000000, 1.000000, 1.000000;;, - 115;3; 1.000000, 1.000000, 1.000000;;, - 116;3; 1.000000, 1.000000, 1.000000;;, - 117;3; 1.000000, 1.000000, 1.000000;;, - 118;3; 1.000000, 1.000000, 1.000000;;, - 119;3; 1.000000, 1.000000, 1.000000;;, - 120;3; 1.000000, 1.000000, 1.000000;;, - 121;3; 1.000000, 1.000000, 1.000000;;, - 122;3; 1.000000, 1.000000, 1.000000;;, - 123;3; 1.000000, 1.000000, 1.000000;;, - 124;3; 1.000000, 1.000000, 1.000000;;, - 125;3; 1.000000, 1.000000, 1.000000;;, - 126;3; 1.000000, 1.000000, 1.000000;;, - 127;3; 1.000000, 1.000000, 1.000000;;, - 128;3; 1.000000, 1.000000, 1.000000;;, - 129;3; 1.000000, 1.000000, 1.000000;;, - 130;3; 1.000000, 1.000000, 1.000000;;, - 131;3; 1.000000, 1.000000, 1.000000;;, - 132;3; 1.000000, 1.000000, 1.000000;;, - 133;3; 1.000000, 1.000000, 1.000000;;, - 134;3; 1.000000, 1.000000, 1.000000;;, - 135;3; 1.000000, 1.000000, 1.000000;;, - 136;3; 1.000000, 1.000000, 1.000000;;, - 137;3; 1.000000, 1.000000, 1.000000;;, - 138;3; 1.000000, 1.000000, 1.000000;;, - 139;3; 1.000000, 1.000000, 1.000000;;, - 140;3; 1.000000, 1.000000, 1.000000;;, - 141;3; 1.000000, 1.000000, 1.000000;;, - 142;3; 1.000000, 1.000000, 1.000000;;, - 143;3; 1.000000, 1.000000, 1.000000;;, - 144;3; 1.000000, 1.000000, 1.000000;;, - 145;3; 1.000000, 1.000000, 1.000000;;, - 146;3; 1.000000, 1.000000, 1.000000;;, - 147;3; 1.000000, 1.000000, 1.000000;;, - 148;3; 1.000000, 1.000000, 1.000000;;, - 149;3; 1.000000, 1.000000, 1.000000;;, - 150;3; 1.000000, 1.000000, 1.000000;;, - 151;3; 1.000000, 1.000000, 1.000000;;, - 152;3; 1.000000, 1.000000, 1.000000;;, - 153;3; 1.000000, 1.000000, 1.000000;;, - 154;3; 1.000000, 1.000000, 1.000000;;, - 155;3; 1.000000, 1.000000, 1.000000;;; - } - } - Animation { - {Armature_noga2} - AnimationKey { //Position - 2; - 156; - 0;3; -0.648382, 3.072911,-0.875938;;, - 1;3; -0.648382, 3.072911,-0.875938;;, - 2;3; -0.648382, 3.072911,-0.875938;;, - 3;3; -0.648382, 3.072911,-0.875938;;, - 4;3; -0.648382, 3.072911,-0.875938;;, - 5;3; -0.648382, 3.072911,-0.875938;;, - 6;3; -0.648382, 3.072911,-0.875938;;, - 7;3; -0.648382, 3.072911,-0.875938;;, - 8;3; -0.648382, 3.072911,-0.875938;;, - 9;3; -0.648382, 3.072911,-0.875938;;, - 10;3; -0.648382, 3.072911,-0.875938;;, - 11;3; -0.648382, 3.072911,-0.875938;;, - 12;3; -0.648382, 3.072911,-0.875938;;, - 13;3; -0.648382, 3.072911,-0.875938;;, - 14;3; -0.648382, 3.072911,-0.875938;;, - 15;3; -0.648382, 3.072911,-0.875938;;, - 16;3; -0.648382, 3.072911,-0.875938;;, - 17;3; -0.648382, 3.072911,-0.875938;;, - 18;3; -0.648382, 3.072911,-0.875938;;, - 19;3; -0.648382, 3.072911,-0.875938;;, - 20;3; -0.648382, 3.072911,-0.875938;;, - 21;3; -0.648382, 3.072911,-0.875938;;, - 22;3; -0.648382, 3.072911,-0.875938;;, - 23;3; -0.648382, 3.072911,-0.875938;;, - 24;3; -0.648382, 3.072911,-0.875938;;, - 25;3; -0.648382, 3.072911,-0.875938;;, - 26;3; -0.648382, 3.072911,-0.875938;;, - 27;3; -0.648382, 3.072911,-0.875938;;, - 28;3; -0.648382, 3.072911,-0.875938;;, - 29;3; -0.648382, 3.072911,-0.875938;;, - 30;3; -0.648382, 3.072911,-0.875938;;, - 31;3; -0.648382, 3.072911,-0.875938;;, - 32;3; -0.648382, 3.072911,-0.875938;;, - 33;3; -0.648382, 3.072911,-0.875938;;, - 34;3; -0.648382, 3.072911,-0.875938;;, - 35;3; -0.648382, 3.072911,-0.875938;;, - 36;3; -0.648382, 3.072911,-0.875938;;, - 37;3; -0.648382, 3.072911,-0.875938;;, - 38;3; -0.648382, 3.072911,-0.875938;;, - 39;3; -0.648382, 3.072911,-0.875938;;, - 40;3; -0.648382, 3.072911,-0.875938;;, - 41;3; -0.648382, 3.072911,-0.875938;;, - 42;3; -0.648382, 3.072911,-0.875938;;, - 43;3; -0.648382, 3.072911,-0.875938;;, - 44;3; -0.648382, 3.072911,-0.875938;;, - 45;3; -0.648382, 3.072911,-0.875938;;, - 46;3; -0.648382, 3.072911,-0.875938;;, - 47;3; -0.648382, 3.072911,-0.875938;;, - 48;3; -0.648382, 3.072911,-0.875938;;, - 49;3; -0.648382, 3.072911,-0.875938;;, - 50;3; -0.648382, 3.072911,-0.875938;;, - 51;3; -0.648382, 3.072911,-0.875938;;, - 52;3; -0.648382, 3.072911,-0.875938;;, - 53;3; -0.648382, 3.072911,-0.875938;;, - 54;3; -0.648382, 3.072911,-0.875938;;, - 55;3; -0.648382, 3.072911,-0.875938;;, - 56;3; -0.648382, 3.072911,-0.875938;;, - 57;3; -0.648382, 3.072911,-0.875938;;, - 58;3; -0.648382, 3.072911,-0.875938;;, - 59;3; -0.648382, 3.072911,-0.875938;;, - 60;3; -0.648382, 3.072911,-0.875938;;, - 61;3; -0.648382, 3.072911,-0.875938;;, - 62;3; -0.648382, 3.072911,-0.875938;;, - 63;3; -0.648382, 3.072911,-0.875938;;, - 64;3; -0.648382, 3.072911,-0.875938;;, - 65;3; -0.648382, 3.072911,-0.875938;;, - 66;3; -0.648382, 3.072911,-0.875938;;, - 67;3; -0.648382, 3.072911,-0.875938;;, - 68;3; -0.648382, 3.072911,-0.875938;;, - 69;3; -0.648382, 3.072911,-0.875938;;, - 70;3; -0.648382, 3.072911,-0.875938;;, - 71;3; -0.648382, 3.072911,-0.875938;;, - 72;3; -0.648382, 3.072911,-0.875938;;, - 73;3; -0.648382, 3.072911,-0.875938;;, - 74;3; -0.648382, 3.072911,-0.875938;;, - 75;3; -0.648382, 3.072911,-0.875938;;, - 76;3; -0.648382, 3.072911,-0.875938;;, - 77;3; -0.648382, 3.072911,-0.875938;;, - 78;3; -0.648382, 3.072911,-0.875938;;, - 79;3; -0.648382, 3.072911,-0.875938;;, - 80;3; -0.648382, 3.072911,-0.875938;;, - 81;3; -0.648382, 3.072911,-0.875938;;, - 82;3; -0.648382, 3.072911,-0.875938;;, - 83;3; -0.648382, 3.072911,-0.875938;;, - 84;3; -0.648382, 3.072911,-0.875938;;, - 85;3; -0.648382, 3.072911,-0.875938;;, - 86;3; -0.648382, 3.072911,-0.875938;;, - 87;3; -0.648382, 3.072911,-0.875938;;, - 88;3; -0.648382, 3.072911,-0.875938;;, - 89;3; -0.648382, 3.072911,-0.875938;;, - 90;3; -0.648382, 3.072911,-0.875938;;, - 91;3; -0.648382, 3.072911,-0.875938;;, - 92;3; -0.648382, 3.072911,-0.875938;;, - 93;3; -0.648382, 3.072911,-0.875938;;, - 94;3; -0.648382, 3.072911,-0.875938;;, - 95;3; -0.648382, 3.072911,-0.875938;;, - 96;3; -0.648382, 3.072911,-0.875938;;, - 97;3; -0.648382, 3.072911,-0.875938;;, - 98;3; -0.648382, 3.072911,-0.875938;;, - 99;3; -0.648382, 3.072911,-0.875938;;, - 100;3; -0.648382, 3.072911,-0.875938;;, - 101;3; -0.648382, 3.072911,-0.875938;;, - 102;3; -0.648382, 3.072911,-0.875938;;, - 103;3; -0.648382, 3.072911,-0.875938;;, - 104;3; -0.648382, 3.072911,-0.875938;;, - 105;3; -0.648382, 3.072911,-0.875938;;, - 106;3; -0.648382, 3.072911,-0.875938;;, - 107;3; -0.648382, 3.072911,-0.875938;;, - 108;3; -0.648382, 3.072911,-0.875938;;, - 109;3; -0.648382, 3.072911,-0.875938;;, - 110;3; -0.648382, 3.072911,-0.875938;;, - 111;3; -0.648382, 3.072911,-0.875938;;, - 112;3; -0.648382, 3.072911,-0.875938;;, - 113;3; -0.648382, 3.072911,-0.875938;;, - 114;3; -0.648382, 3.072911,-0.875938;;, - 115;3; -0.648382, 3.072911,-0.875938;;, - 116;3; -0.648382, 3.072911,-0.875938;;, - 117;3; -0.648382, 3.072911,-0.875938;;, - 118;3; -0.648382, 3.072911,-0.875938;;, - 119;3; -0.648382, 3.072911,-0.875938;;, - 120;3; -0.648382, 3.072911,-0.875938;;, - 121;3; -0.648382, 3.072911,-0.875938;;, - 122;3; -0.648382, 3.072911,-0.875938;;, - 123;3; -0.648382, 3.072911,-0.875938;;, - 124;3; -0.648382, 3.072911,-0.875938;;, - 125;3; -0.648382, 3.072911,-0.875938;;, - 126;3; -0.648382, 3.072911,-0.875938;;, - 127;3; -0.648382, 3.072911,-0.875938;;, - 128;3; -0.648382, 3.072911,-0.875938;;, - 129;3; -0.648382, 3.072911,-0.875938;;, - 130;3; -0.648382, 3.072911,-0.875938;;, - 131;3; -0.648382, 3.072911,-0.875938;;, - 132;3; -0.648382, 3.072911,-0.875938;;, - 133;3; -0.648382, 3.072911,-0.875938;;, - 134;3; -0.648382, 3.072911,-0.875938;;, - 135;3; -0.648382, 3.072911,-0.875938;;, - 136;3; -0.648382, 3.072911,-0.875938;;, - 137;3; -0.648382, 3.072911,-0.875938;;, - 138;3; -0.648382, 3.072911,-0.875938;;, - 139;3; -0.648382, 3.072911,-0.875938;;, - 140;3; -0.648382, 3.072911,-0.875938;;, - 141;3; -0.648382, 3.072911,-0.875938;;, - 142;3; -0.648382, 3.072911,-0.875938;;, - 143;3; -0.648382, 3.072911,-0.875938;;, - 144;3; -0.648382, 3.072911,-0.875938;;, - 145;3; -0.648382, 3.072911,-0.875938;;, - 146;3; -0.648382, 3.072911,-0.875938;;, - 147;3; -0.648382, 3.072911,-0.875938;;, - 148;3; -0.648382, 3.072911,-0.875938;;, - 149;3; -0.648382, 3.072911,-0.875938;;, - 150;3; -0.648382, 3.072911,-0.875938;;, - 151;3; -0.648382, 3.072911,-0.875938;;, - 152;3; -0.648382, 3.072911,-0.875938;;, - 153;3; -0.648382, 3.072911,-0.875938;;, - 154;3; -0.648382, 3.072911,-0.875938;;, - 155;3; -0.648382, 3.072911,-0.875938;;; - } - AnimationKey { //Rotation - 0; - 156; - 0;4; -0.478735,-0.520397, 0.478735,-0.520397;;, - 1;4; -0.478735,-0.520397, 0.478735,-0.520397;;, - 2;4; -0.478735,-0.520397, 0.478735,-0.520397;;, - 3;4; -0.478735,-0.520397, 0.478735,-0.520397;;, - 4;4; -0.478735,-0.520397, 0.478735,-0.520397;;, - 5;4; -0.478735,-0.520397, 0.478735,-0.520397;;, - 6;4; -0.478735,-0.520397, 0.478735,-0.520397;;, - 7;4; -0.478735,-0.520397, 0.478735,-0.520397;;, - 8;4; -0.478735,-0.520397, 0.478735,-0.520397;;, - 9;4; -0.478735,-0.520397, 0.478735,-0.520397;;, - 10;4; -0.478735,-0.520397, 0.478735,-0.520397;;, - 11;4; -0.478735,-0.520397, 0.478735,-0.520397;;, - 12;4; -0.478735,-0.520397, 0.478735,-0.520397;;, - 13;4; -0.478735,-0.520397, 0.478735,-0.520397;;, - 14;4; -0.478735,-0.520397, 0.478735,-0.520397;;, - 15;4; -0.478735,-0.520397, 0.478735,-0.520397;;, - 16;4; -0.478735,-0.520397, 0.478735,-0.520397;;, - 17;4; -0.478735,-0.520397, 0.478735,-0.520397;;, - 18;4; -0.478735,-0.520397, 0.478735,-0.520397;;, - 19;4; -0.478735,-0.520397, 0.478735,-0.520397;;, - 20;4; -0.478735,-0.520397, 0.478735,-0.520397;;, - 21;4; -0.478735,-0.520397, 0.478735,-0.520397;;, - 22;4; -0.478735,-0.520397, 0.478735,-0.520397;;, - 23;4; -0.478735,-0.520397, 0.478735,-0.520397;;, - 24;4; -0.478735,-0.520397, 0.478735,-0.520397;;, - 25;4; -0.478735,-0.520397, 0.478735,-0.520397;;, - 26;4; -0.478735,-0.520397, 0.478735,-0.520397;;, - 27;4; -0.478735,-0.520397, 0.478735,-0.520397;;, - 28;4; -0.478735,-0.520397, 0.478735,-0.520397;;, - 29;4; -0.478735,-0.520397, 0.478735,-0.520397;;, - 30;4; -0.478735,-0.520397, 0.478735,-0.520397;;, - 31;4; -0.478735,-0.520397, 0.478735,-0.520397;;, - 32;4; -0.478735,-0.520397, 0.478735,-0.520397;;, - 33;4; -0.478735,-0.520397, 0.478735,-0.520397;;, - 34;4; -0.478735,-0.520397, 0.478735,-0.520397;;, - 35;4; -0.478735,-0.520397, 0.478735,-0.520397;;, - 36;4; -0.478735,-0.520397, 0.478735,-0.520397;;, - 37;4; -0.478735,-0.520397, 0.478735,-0.520397;;, - 38;4; -0.478735,-0.520397, 0.478735,-0.520397;;, - 39;4; -0.478735,-0.520397, 0.478735,-0.520397;;, - 40;4; -0.478735,-0.520397, 0.478735,-0.520397;;, - 41;4; -0.478735,-0.520397, 0.478735,-0.520397;;, - 42;4; -0.478735,-0.520397, 0.478735,-0.520397;;, - 43;4; -0.478735,-0.520397, 0.478735,-0.520397;;, - 44;4; -0.478735,-0.520397, 0.478735,-0.520397;;, - 45;4; -0.478735,-0.520397, 0.478735,-0.520397;;, - 46;4; -0.478735,-0.520397, 0.478735,-0.520397;;, - 47;4; -0.478735,-0.520397, 0.478735,-0.520397;;, - 48;4; -0.478735,-0.520397, 0.478735,-0.520397;;, - 49;4; -0.478735,-0.520397, 0.478735,-0.520397;;, - 50;4; -0.478735,-0.520397, 0.478735,-0.520397;;, - 51;4; -0.478735,-0.520397, 0.478735,-0.520397;;, - 52;4; -0.478735,-0.520397, 0.478735,-0.520397;;, - 53;4; -0.478735,-0.520397, 0.478735,-0.520397;;, - 54;4; -0.478735,-0.520397, 0.478735,-0.520397;;, - 55;4; -0.478735,-0.520397, 0.478735,-0.520397;;, - 56;4; -0.478735,-0.520397, 0.478735,-0.520397;;, - 57;4; -0.478735,-0.520397, 0.478735,-0.520397;;, - 58;4; -0.478735,-0.520397, 0.478735,-0.520397;;, - 59;4; -0.478735,-0.520397, 0.478735,-0.520397;;, - 60;4; -0.478735,-0.520397, 0.478735,-0.520397;;, - 61;4; -0.478735,-0.520397, 0.478735,-0.520397;;, - 62;4; -0.478735,-0.520397, 0.478735,-0.520397;;, - 63;4; -0.478735,-0.520397, 0.478735,-0.520397;;, - 64;4; -0.478735,-0.520397, 0.478735,-0.520397;;, - 65;4; -0.478735,-0.520397, 0.478735,-0.520397;;, - 66;4; -0.478735,-0.520397, 0.478735,-0.520397;;, - 67;4; -0.478735,-0.520397, 0.478735,-0.520397;;, - 68;4; -0.478735,-0.520397, 0.478735,-0.520397;;, - 69;4; -0.478735,-0.520397, 0.478735,-0.520397;;, - 70;4; -0.478735,-0.520397, 0.478735,-0.520397;;, - 71;4; -0.478735,-0.520397, 0.478735,-0.520397;;, - 72;4; -0.478735,-0.520397, 0.478735,-0.520397;;, - 73;4; -0.478735,-0.520397, 0.478735,-0.520397;;, - 74;4; -0.478735,-0.520397, 0.478735,-0.520397;;, - 75;4; -0.478735,-0.520397, 0.478735,-0.520397;;, - 76;4; -0.478735,-0.520397, 0.478735,-0.520397;;, - 77;4; -0.474286,-0.523982, 0.474286,-0.523982;;, - 78;4; -0.461337,-0.534416, 0.461337,-0.534416;;, - 79;4; -0.442723,-0.549415, 0.442723,-0.549415;;, - 80;4; -0.424110,-0.564414, 0.424110,-0.564414;;, - 81;4; -0.411163,-0.574847, 0.411163,-0.574847;;, - 82;4; -0.406714,-0.578432, 0.406714,-0.578432;;, - 83;4; -0.408802,-0.576511, 0.408802,-0.576511;;, - 84;4; -0.415106,-0.570712, 0.415106,-0.570712;;, - 85;4; -0.425500,-0.561150, 0.425500,-0.561150;;, - 86;4; -0.439529,-0.548244, 0.439529,-0.548244;;, - 87;4; -0.456329,-0.532789, 0.456329,-0.532789;;, - 88;4; -0.474639,-0.515945, 0.474639,-0.515945;;, - 89;4; -0.492950,-0.499100, 0.492950,-0.499100;;, - 90;4; -0.509750,-0.483645, 0.509750,-0.483645;;, - 91;4; -0.523779,-0.470739, 0.523779,-0.470739;;, - 92;4; -0.534173,-0.461177, 0.534173,-0.461177;;, - 93;4; -0.540477,-0.455378, 0.540477,-0.455378;;, - 94;4; -0.542565,-0.453457, 0.542565,-0.453457;;, - 95;4; -0.538622,-0.457592, 0.538622,-0.457592;;, - 96;4; -0.527147,-0.469626, 0.527147,-0.469626;;, - 97;4; -0.510651,-0.486926, 0.510651,-0.486926;;, - 98;4; -0.494154,-0.504227, 0.494154,-0.504227;;, - 99;4; -0.482678,-0.516262, 0.482678,-0.516262;;, - 100;4; -0.478735,-0.520397, 0.478735,-0.520397;;, - 101;4; -0.478735,-0.520397, 0.478735,-0.520397;;, - 102;4; -0.478735,-0.520397, 0.478735,-0.520397;;, - 103;4; -0.478735,-0.520397, 0.478735,-0.520397;;, - 104;4; -0.478735,-0.520397, 0.478735,-0.520397;;, - 105;4; -0.478735,-0.520397, 0.478735,-0.520397;;, - 106;4; -0.478735,-0.520397, 0.478735,-0.520397;;, - 107;4; -0.459849,-0.531450, 0.459849,-0.531450;;, - 108;4; -0.404704,-0.563369, 0.404704,-0.563369;;, - 109;4; -0.324936,-0.608630, 0.324936,-0.608630;;, - 110;4; -0.244150,-0.652732, 0.244150,-0.652732;;, - 111;4; -0.186185,-0.681484, 0.186185,-0.681484;;, - 112;4; -0.163186,-0.688019, 0.163186,-0.688019;;, - 113;4; -0.167199,-0.675519, 0.167199,-0.675519;;, - 114;4; -0.188605,-0.647883, 0.188605,-0.647883;;, - 115;4; -0.226968,-0.605645, 0.226968,-0.605645;;, - 116;4; -0.280509,-0.550553, 0.280509,-0.550553;;, - 117;4; -0.345782,-0.485840, 0.345782,-0.485840;;, - 118;4; -0.417713,-0.416166, 0.417713,-0.416166;;, - 119;4; -0.490176,-0.347070, 0.490176,-0.347070;;, - 120;4; -0.557006,-0.284050, 0.557006,-0.284050;;, - 121;4; -0.613026,-0.231653, 0.613026,-0.231653;;, - 122;4; -0.654651,-0.192961, 0.654651,-0.192961;;, - 123;4; -0.679949,-0.169555, 0.679949,-0.169555;;, - 124;4; -0.688343,-0.161817, 0.688343,-0.161817;;, - 125;4; -0.675400,-0.183963, 0.675400,-0.183963;;, - 126;4; -0.637747,-0.248401, 0.637747,-0.248401;;, - 127;4; -0.583614,-0.341036, 0.583614,-0.341036;;, - 128;4; -0.529441,-0.433709, 0.529441,-0.433709;;, - 129;4; -0.491712,-0.498218, 0.491712,-0.498218;;, - 130;4; -0.478735,-0.520397, 0.478735,-0.520397;;, - 131;4; -0.478735,-0.520397, 0.478735,-0.520397;;, - 132;4; -0.478735,-0.520397, 0.478735,-0.520397;;, - 133;4; -0.478735,-0.520397, 0.478735,-0.520397;;, - 134;4; -0.478735,-0.520397, 0.478735,-0.520397;;, - 135;4; -0.478735,-0.520397, 0.478735,-0.520397;;, - 136;4; -0.536290,-0.452136, 0.536290,-0.452136;;, - 137;4; -0.593818,-0.383901, 0.593818,-0.383901;;, - 138;4; -0.592025,-0.386049, 0.592025,-0.386049;;, - 139;4; -0.586989,-0.392082, 0.586989,-0.392082;;, - 140;4; -0.579326,-0.401264, 0.579326,-0.401264;;, - 141;4; -0.569759,-0.412729, 0.569759,-0.412729;;, - 142;4; -0.559069,-0.425541, 0.559069,-0.425541;;, - 143;4; -0.548041,-0.438760, 0.548041,-0.438760;;, - 144;4; -0.537411,-0.451504, 0.537411,-0.451504;;, - 145;4; -0.527823,-0.462997, 0.527823,-0.462997;;, - 146;4; -0.519810,-0.472602, 0.519810,-0.472602;;, - 147;4; -0.513782,-0.479828, 0.513782,-0.479828;;, - 148;4; -0.510034,-0.484321, 0.510034,-0.484321;;, - 149;4; -0.508756,-0.485852, 0.508756,-0.485852;;, - 150;4; -0.520938,-0.472488, 0.520938,-0.472488;;, - 151;4; -0.547004,-0.443890, 0.547004,-0.443890;;, - 152;4; -0.559186,-0.430525, 0.559186,-0.430525;;, - 153;4; -0.539768,-0.452220, 0.539768,-0.452220;;, - 154;4; -0.498201,-0.498658, 0.498201,-0.498657;;, - 155;4; -0.478735,-0.520397, 0.478735,-0.520397;;; - } - AnimationKey { //Scale - 1; - 156; - 0;3; 1.000000, 1.000000, 1.000000;;, - 1;3; 1.000000, 1.000000, 1.000000;;, - 2;3; 1.000000, 1.000000, 1.000000;;, - 3;3; 1.000000, 1.000000, 1.000000;;, - 4;3; 1.000000, 1.000000, 1.000000;;, - 5;3; 1.000000, 1.000000, 1.000000;;, - 6;3; 1.000000, 1.000000, 1.000000;;, - 7;3; 1.000000, 1.000000, 1.000000;;, - 8;3; 1.000000, 1.000000, 1.000000;;, - 9;3; 1.000000, 1.000000, 1.000000;;, - 10;3; 1.000000, 1.000000, 1.000000;;, - 11;3; 1.000000, 1.000000, 1.000000;;, - 12;3; 1.000000, 1.000000, 1.000000;;, - 13;3; 1.000000, 1.000000, 1.000000;;, - 14;3; 1.000000, 1.000000, 1.000000;;, - 15;3; 1.000000, 1.000000, 1.000000;;, - 16;3; 1.000000, 1.000000, 1.000000;;, - 17;3; 1.000000, 1.000000, 1.000000;;, - 18;3; 1.000000, 1.000000, 1.000000;;, - 19;3; 1.000000, 1.000000, 1.000000;;, - 20;3; 1.000000, 1.000000, 1.000000;;, - 21;3; 1.000000, 1.000000, 1.000000;;, - 22;3; 1.000000, 1.000000, 1.000000;;, - 23;3; 1.000000, 1.000000, 1.000000;;, - 24;3; 1.000000, 1.000000, 1.000000;;, - 25;3; 1.000000, 1.000000, 1.000000;;, - 26;3; 1.000000, 1.000000, 1.000000;;, - 27;3; 1.000000, 1.000000, 1.000000;;, - 28;3; 1.000000, 1.000000, 1.000000;;, - 29;3; 1.000000, 1.000000, 1.000000;;, - 30;3; 1.000000, 1.000000, 1.000000;;, - 31;3; 1.000000, 1.000000, 1.000000;;, - 32;3; 1.000000, 1.000000, 1.000000;;, - 33;3; 1.000000, 1.000000, 1.000000;;, - 34;3; 1.000000, 1.000000, 1.000000;;, - 35;3; 1.000000, 1.000000, 1.000000;;, - 36;3; 1.000000, 1.000000, 1.000000;;, - 37;3; 1.000000, 1.000000, 1.000000;;, - 38;3; 1.000000, 1.000000, 1.000000;;, - 39;3; 1.000000, 1.000000, 1.000000;;, - 40;3; 1.000000, 1.000000, 1.000000;;, - 41;3; 1.000000, 1.000000, 1.000000;;, - 42;3; 1.000000, 1.000000, 1.000000;;, - 43;3; 1.000000, 1.000000, 1.000000;;, - 44;3; 1.000000, 1.000000, 1.000000;;, - 45;3; 1.000000, 1.000000, 1.000000;;, - 46;3; 1.000000, 1.000000, 1.000000;;, - 47;3; 1.000000, 1.000000, 1.000000;;, - 48;3; 1.000000, 1.000000, 1.000000;;, - 49;3; 1.000000, 1.000000, 1.000000;;, - 50;3; 1.000000, 1.000000, 1.000000;;, - 51;3; 1.000000, 1.000000, 1.000000;;, - 52;3; 1.000000, 1.000000, 1.000000;;, - 53;3; 1.000000, 1.000000, 1.000000;;, - 54;3; 1.000000, 1.000000, 1.000000;;, - 55;3; 1.000000, 1.000000, 1.000000;;, - 56;3; 1.000000, 1.000000, 1.000000;;, - 57;3; 1.000000, 1.000000, 1.000000;;, - 58;3; 1.000000, 1.000000, 1.000000;;, - 59;3; 1.000000, 1.000000, 1.000000;;, - 60;3; 1.000000, 1.000000, 1.000000;;, - 61;3; 1.000000, 1.000000, 1.000000;;, - 62;3; 1.000000, 1.000000, 1.000000;;, - 63;3; 1.000000, 1.000000, 1.000000;;, - 64;3; 1.000000, 1.000000, 1.000000;;, - 65;3; 1.000000, 1.000000, 1.000000;;, - 66;3; 1.000000, 1.000000, 1.000000;;, - 67;3; 1.000000, 1.000000, 1.000000;;, - 68;3; 1.000000, 1.000000, 1.000000;;, - 69;3; 1.000000, 1.000000, 1.000000;;, - 70;3; 1.000000, 1.000000, 1.000000;;, - 71;3; 1.000000, 1.000000, 1.000000;;, - 72;3; 1.000000, 1.000000, 1.000000;;, - 73;3; 1.000000, 1.000000, 1.000000;;, - 74;3; 1.000000, 1.000000, 1.000000;;, - 75;3; 1.000000, 1.000000, 1.000000;;, - 76;3; 1.000000, 1.000000, 1.000000;;, - 77;3; 1.000000, 1.000000, 1.000000;;, - 78;3; 1.000000, 1.000000, 1.000000;;, - 79;3; 1.000000, 1.000000, 1.000000;;, - 80;3; 1.000000, 1.000000, 1.000000;;, - 81;3; 1.000000, 1.000000, 1.000000;;, - 82;3; 1.000000, 1.000000, 1.000000;;, - 83;3; 1.000000, 1.000000, 1.000000;;, - 84;3; 1.000000, 1.000000, 1.000000;;, - 85;3; 1.000000, 1.000000, 1.000000;;, - 86;3; 1.000000, 1.000000, 1.000000;;, - 87;3; 1.000000, 1.000000, 1.000000;;, - 88;3; 1.000000, 1.000000, 1.000000;;, - 89;3; 1.000000, 1.000000, 1.000000;;, - 90;3; 1.000000, 1.000000, 1.000000;;, - 91;3; 1.000000, 1.000000, 1.000000;;, - 92;3; 1.000000, 1.000000, 1.000000;;, - 93;3; 1.000000, 1.000000, 1.000000;;, - 94;3; 1.000000, 1.000000, 1.000000;;, - 95;3; 1.000000, 1.000000, 1.000000;;, - 96;3; 1.000000, 1.000000, 1.000000;;, - 97;3; 1.000000, 1.000000, 1.000000;;, - 98;3; 1.000000, 1.000000, 1.000000;;, - 99;3; 1.000000, 1.000000, 1.000000;;, - 100;3; 1.000000, 1.000000, 1.000000;;, - 101;3; 1.000000, 1.000000, 1.000000;;, - 102;3; 1.000000, 1.000000, 1.000000;;, - 103;3; 1.000000, 1.000000, 1.000000;;, - 104;3; 1.000000, 1.000000, 1.000000;;, - 105;3; 1.000000, 1.000000, 1.000000;;, - 106;3; 1.000000, 1.000000, 1.000000;;, - 107;3; 1.000000, 1.000000, 1.000000;;, - 108;3; 1.000000, 1.000000, 1.000000;;, - 109;3; 1.000000, 1.000000, 1.000000;;, - 110;3; 1.000000, 1.000000, 1.000000;;, - 111;3; 1.000000, 1.000000, 1.000000;;, - 112;3; 1.000000, 1.000000, 1.000000;;, - 113;3; 1.000000, 1.000000, 1.000000;;, - 114;3; 1.000000, 1.000000, 1.000000;;, - 115;3; 1.000000, 1.000000, 1.000000;;, - 116;3; 1.000000, 1.000000, 1.000000;;, - 117;3; 1.000000, 1.000000, 1.000000;;, - 118;3; 1.000000, 1.000000, 1.000000;;, - 119;3; 1.000000, 1.000000, 1.000000;;, - 120;3; 1.000000, 1.000000, 1.000000;;, - 121;3; 1.000000, 1.000000, 1.000000;;, - 122;3; 1.000000, 1.000000, 1.000000;;, - 123;3; 1.000000, 1.000000, 1.000000;;, - 124;3; 1.000000, 1.000000, 1.000000;;, - 125;3; 1.000000, 1.000000, 1.000000;;, - 126;3; 1.000000, 1.000000, 1.000000;;, - 127;3; 1.000000, 1.000000, 1.000000;;, - 128;3; 1.000000, 1.000000, 1.000000;;, - 129;3; 1.000000, 1.000000, 1.000000;;, - 130;3; 1.000000, 1.000000, 1.000000;;, - 131;3; 1.000000, 1.000000, 1.000000;;, - 132;3; 1.000000, 1.000000, 1.000000;;, - 133;3; 1.000000, 1.000000, 1.000000;;, - 134;3; 1.000000, 1.000000, 1.000000;;, - 135;3; 1.000000, 1.000000, 1.000000;;, - 136;3; 1.000000, 1.000000, 1.000000;;, - 137;3; 1.000000, 1.000000, 1.000000;;, - 138;3; 1.000000, 1.000000, 1.000000;;, - 139;3; 1.000000, 1.000000, 1.000000;;, - 140;3; 1.000000, 1.000000, 1.000000;;, - 141;3; 1.000000, 1.000000, 1.000000;;, - 142;3; 1.000000, 1.000000, 1.000000;;, - 143;3; 1.000000, 1.000000, 1.000000;;, - 144;3; 1.000000, 1.000000, 1.000000;;, - 145;3; 1.000000, 1.000000, 1.000000;;, - 146;3; 1.000000, 1.000000, 1.000000;;, - 147;3; 1.000000, 1.000000, 1.000000;;, - 148;3; 1.000000, 1.000000, 1.000000;;, - 149;3; 1.000000, 1.000000, 1.000000;;, - 150;3; 1.000000, 1.000000, 1.000000;;, - 151;3; 1.000000, 1.000000, 1.000000;;, - 152;3; 1.000000, 1.000000, 1.000000;;, - 153;3; 1.000000, 1.000000, 1.000000;;, - 154;3; 1.000000, 1.000000, 1.000000;;, - 155;3; 1.000000, 1.000000, 1.000000;;; - } - } - Animation { - {Armature_hvost} - AnimationKey { //Position - 2; - 156; - 0;3; 0.000000,-0.295864,-0.017687;;, - 1;3; 0.000000,-0.295864,-0.017687;;, - 2;3; 0.000000,-0.295864,-0.017687;;, - 3;3; 0.000000,-0.295864,-0.017687;;, - 4;3; 0.000000,-0.295864,-0.017687;;, - 5;3; 0.000000,-0.295864,-0.017687;;, - 6;3; 0.000000,-0.295864,-0.017687;;, - 7;3; 0.000000,-0.295864,-0.017687;;, - 8;3; 0.000000,-0.295864,-0.017687;;, - 9;3; 0.000000,-0.295864,-0.017687;;, - 10;3; 0.000000,-0.295864,-0.017687;;, - 11;3; 0.000000,-0.295864,-0.017687;;, - 12;3; 0.000000,-0.295864,-0.017687;;, - 13;3; 0.000000,-0.295864,-0.017687;;, - 14;3; 0.000000,-0.295864,-0.017687;;, - 15;3; 0.000000,-0.295864,-0.017687;;, - 16;3; 0.000000,-0.295864,-0.017687;;, - 17;3; 0.000000,-0.295864,-0.017687;;, - 18;3; 0.000000,-0.295864,-0.017687;;, - 19;3; 0.000000,-0.295864,-0.017687;;, - 20;3; 0.000000,-0.295864,-0.017687;;, - 21;3; 0.000000,-0.295864,-0.017687;;, - 22;3; 0.000000,-0.295864,-0.017687;;, - 23;3; 0.000000,-0.295864,-0.017687;;, - 24;3; 0.000000,-0.295864,-0.017687;;, - 25;3; 0.000000,-0.295864,-0.017687;;, - 26;3; 0.000000,-0.295864,-0.017687;;, - 27;3; 0.000000,-0.295864,-0.017687;;, - 28;3; 0.000000,-0.295864,-0.017687;;, - 29;3; 0.000000,-0.295864,-0.017687;;, - 30;3; 0.000000,-0.295864,-0.017687;;, - 31;3; 0.000000,-0.295864,-0.017687;;, - 32;3; 0.000000,-0.295864,-0.017687;;, - 33;3; 0.000000,-0.295864,-0.017687;;, - 34;3; 0.000000,-0.295864,-0.017687;;, - 35;3; 0.000000,-0.295864,-0.017687;;, - 36;3; 0.000000,-0.295864,-0.017687;;, - 37;3; 0.000000,-0.295864,-0.017687;;, - 38;3; 0.000000,-0.295864,-0.017687;;, - 39;3; 0.000000,-0.295864,-0.017687;;, - 40;3; 0.000000,-0.295864,-0.017687;;, - 41;3; 0.000000,-0.295864,-0.017687;;, - 42;3; 0.000000,-0.295864,-0.017687;;, - 43;3; 0.000000,-0.295864,-0.017687;;, - 44;3; 0.000000,-0.295864,-0.017687;;, - 45;3; 0.000000,-0.295864,-0.017687;;, - 46;3; 0.000000,-0.295864,-0.017687;;, - 47;3; 0.000000,-0.295864,-0.017687;;, - 48;3; 0.000000,-0.295864,-0.017687;;, - 49;3; 0.000000,-0.295864,-0.017687;;, - 50;3; 0.000000,-0.295864,-0.017687;;, - 51;3; 0.000000,-0.295864,-0.017687;;, - 52;3; 0.000000,-0.295864,-0.017687;;, - 53;3; 0.000000,-0.295864,-0.017687;;, - 54;3; 0.000000,-0.295864,-0.017687;;, - 55;3; 0.000000,-0.295864,-0.017687;;, - 56;3; 0.000000,-0.295864,-0.017687;;, - 57;3; 0.000000,-0.295864,-0.017687;;, - 58;3; 0.000000,-0.295864,-0.017687;;, - 59;3; 0.000000,-0.295864,-0.017687;;, - 60;3; 0.000000,-0.295864,-0.017687;;, - 61;3; 0.000000,-0.295864,-0.017687;;, - 62;3; 0.000000,-0.295864,-0.017687;;, - 63;3; 0.000000,-0.295864,-0.017687;;, - 64;3; 0.000000,-0.295864,-0.017687;;, - 65;3; 0.000000,-0.295864,-0.017687;;, - 66;3; 0.000000,-0.295864,-0.017687;;, - 67;3; 0.000000,-0.295864,-0.017687;;, - 68;3; 0.000000,-0.295864,-0.017687;;, - 69;3; 0.000000,-0.295864,-0.017687;;, - 70;3; 0.000000,-0.295864,-0.017687;;, - 71;3; 0.000000,-0.295864,-0.017687;;, - 72;3; 0.000000,-0.295864,-0.017687;;, - 73;3; 0.000000,-0.295864,-0.017687;;, - 74;3; 0.000000,-0.295864,-0.017687;;, - 75;3; 0.000000,-0.295864,-0.017687;;, - 76;3; 0.000000,-0.295864,-0.017687;;, - 77;3; 0.000000,-0.295864,-0.017687;;, - 78;3; 0.000000,-0.295864,-0.017687;;, - 79;3; 0.000000,-0.295864,-0.017687;;, - 80;3; 0.000000,-0.295864,-0.017687;;, - 81;3; 0.000000,-0.295864,-0.017687;;, - 82;3; 0.000000,-0.295864,-0.017687;;, - 83;3; 0.000000,-0.295864,-0.017687;;, - 84;3; 0.000000,-0.295864,-0.017687;;, - 85;3; 0.000000,-0.295864,-0.017687;;, - 86;3; 0.000000,-0.295864,-0.017687;;, - 87;3; 0.000000,-0.295864,-0.017687;;, - 88;3; 0.000000,-0.295864,-0.017687;;, - 89;3; 0.000000,-0.295864,-0.017687;;, - 90;3; 0.000000,-0.295864,-0.017687;;, - 91;3; 0.000000,-0.295864,-0.017687;;, - 92;3; 0.000000,-0.295864,-0.017687;;, - 93;3; 0.000000,-0.295864,-0.017687;;, - 94;3; 0.000000,-0.295864,-0.017687;;, - 95;3; 0.000000,-0.295864,-0.017687;;, - 96;3; 0.000000,-0.295864,-0.017687;;, - 97;3; 0.000000,-0.295864,-0.017687;;, - 98;3; 0.000000,-0.295864,-0.017687;;, - 99;3; 0.000000,-0.295864,-0.017687;;, - 100;3; 0.000000,-0.295864,-0.017687;;, - 101;3; 0.000000,-0.295864,-0.017687;;, - 102;3; 0.000000,-0.295864,-0.017687;;, - 103;3; 0.000000,-0.295864,-0.017687;;, - 104;3; 0.000000,-0.295864,-0.017687;;, - 105;3; 0.000000,-0.295864,-0.017687;;, - 106;3; 0.000000,-0.295864,-0.017687;;, - 107;3; 0.000000,-0.295864,-0.017687;;, - 108;3; 0.000000,-0.295864,-0.017687;;, - 109;3; 0.000000,-0.295864,-0.017687;;, - 110;3; 0.000000,-0.295864,-0.017687;;, - 111;3; 0.000000,-0.295864,-0.017687;;, - 112;3; 0.000000,-0.295864,-0.017687;;, - 113;3; 0.000000,-0.295864,-0.017687;;, - 114;3; 0.000000,-0.295864,-0.017687;;, - 115;3; 0.000000,-0.295864,-0.017687;;, - 116;3; 0.000000,-0.295864,-0.017687;;, - 117;3; 0.000000,-0.295864,-0.017687;;, - 118;3; 0.000000,-0.295864,-0.017687;;, - 119;3; 0.000000,-0.295864,-0.017687;;, - 120;3; 0.000000,-0.295864,-0.017687;;, - 121;3; 0.000000,-0.295864,-0.017687;;, - 122;3; 0.000000,-0.295864,-0.017687;;, - 123;3; 0.000000,-0.295864,-0.017687;;, - 124;3; 0.000000,-0.295864,-0.017687;;, - 125;3; 0.000000,-0.295864,-0.017687;;, - 126;3; 0.000000,-0.295864,-0.017687;;, - 127;3; 0.000000,-0.295864,-0.017687;;, - 128;3; 0.000000,-0.295864,-0.017687;;, - 129;3; 0.000000,-0.295864,-0.017687;;, - 130;3; 0.000000,-0.295864,-0.017687;;, - 131;3; 0.000000,-0.295864,-0.017687;;, - 132;3; 0.000000,-0.295864,-0.017687;;, - 133;3; 0.000000,-0.295864,-0.017687;;, - 134;3; 0.000000,-0.295864,-0.017687;;, - 135;3; 0.000000,-0.295864,-0.017687;;, - 136;3; 0.000000,-0.295864,-0.017687;;, - 137;3; 0.000000,-0.295864,-0.017687;;, - 138;3; 0.000000,-0.295864,-0.017687;;, - 139;3; 0.000000,-0.295864,-0.017687;;, - 140;3; 0.000000,-0.295864,-0.017687;;, - 141;3; 0.000000,-0.295864,-0.017687;;, - 142;3; 0.000000,-0.295864,-0.017687;;, - 143;3; 0.000000,-0.295864,-0.017687;;, - 144;3; 0.000000,-0.295864,-0.017687;;, - 145;3; 0.000000,-0.295864,-0.017687;;, - 146;3; 0.000000,-0.295864,-0.017687;;, - 147;3; 0.000000,-0.295864,-0.017687;;, - 148;3; 0.000000,-0.295864,-0.017687;;, - 149;3; 0.000000,-0.295864,-0.017687;;, - 150;3; 0.000000,-0.295864,-0.017687;;, - 151;3; 0.000000,-0.295864,-0.017687;;, - 152;3; 0.000000,-0.295864,-0.017687;;, - 153;3; 0.000000,-0.295864,-0.017687;;, - 154;3; 0.000000,-0.295864,-0.017687;;, - 155;3; 0.000000,-0.295864,-0.017687;;; - } - AnimationKey { //Rotation - 0; - 156; - 0;4; -0.488749,-0.872425,-0.000000, 0.000000;;, - 1;4; -0.488749,-0.872425,-0.000000, 0.000000;;, - 2;4; -0.488749,-0.872425,-0.000000, 0.000000;;, - 3;4; -0.488749,-0.872425,-0.000000, 0.000000;;, - 4;4; -0.488749,-0.872425,-0.000000, 0.000000;;, - 5;4; -0.488749,-0.872425,-0.000000, 0.000000;;, - 6;4; -0.488749,-0.872425,-0.000000, 0.000000;;, - 7;4; -0.488749,-0.872425,-0.000000, 0.000000;;, - 8;4; -0.488749,-0.872425,-0.000000, 0.000000;;, - 9;4; -0.488749,-0.872425,-0.000000, 0.000000;;, - 10;4; -0.488749,-0.872425,-0.000000, 0.000000;;, - 11;4; -0.487739,-0.870622, 0.021531, 0.023041;;, - 12;4; -0.485578,-0.866764, 0.067591, 0.072336;;, - 13;4; -0.484568,-0.864961, 0.089115, 0.095371;;, - 14;4; -0.484568,-0.864961, 0.078105, 0.083589;;, - 15;4; -0.484568,-0.864961, 0.046063, 0.049297;;, - 16;4; -0.484568,-0.864961, 0.000000, 0.000000;;, - 17;4; -0.484568,-0.864961,-0.046062,-0.049296;;, - 18;4; -0.484568,-0.864961,-0.078105,-0.083588;;, - 19;4; -0.484568,-0.864961,-0.089115,-0.095371;;, - 20;4; -0.485505,-0.866634,-0.063411,-0.066145;;, - 21;4; -0.487527,-0.870243,-0.008405,-0.003602;;, - 22;4; -0.488515,-0.872007, 0.017311, 0.025632;;, - 23;4; -0.488578,-0.872119, 0.016836, 0.024930;;, - 24;4; -0.488632,-0.872216, 0.015413, 0.022823;;, - 25;4; -0.488675,-0.872293, 0.013128, 0.019440;;, - 26;4; -0.488708,-0.872351, 0.010222, 0.015137;;, - 27;4; -0.488729,-0.872389, 0.007087, 0.010495;;, - 28;4; -0.488741,-0.872411, 0.004182, 0.006192;;, - 29;4; -0.488747,-0.872421, 0.001897, 0.002809;;, - 30;4; -0.488749,-0.872424, 0.000474, 0.000702;;, - 31;4; -0.488749,-0.872425,-0.000000, 0.000000;;, - 32;4; -0.487739,-0.870622, 0.021530, 0.023040;;, - 33;4; -0.485578,-0.866764, 0.067591, 0.072335;;, - 34;4; -0.484568,-0.864961, 0.089115, 0.095371;;, - 35;4; -0.484568,-0.864961, 0.078105, 0.083589;;, - 36;4; -0.484568,-0.864961, 0.046063, 0.049297;;, - 37;4; -0.484568,-0.864961,-0.000000, 0.000000;;, - 38;4; -0.484568,-0.864961,-0.046063,-0.049297;;, - 39;4; -0.484568,-0.864961,-0.078105,-0.083589;;, - 40;4; -0.484568,-0.864961,-0.089115,-0.095371;;, - 41;4; -0.485578,-0.866764,-0.067592,-0.072335;;, - 42;4; -0.487739,-0.870622,-0.021532,-0.023040;;, - 43;4; -0.488749,-0.872425,-0.000000, 0.000000;;, - 44;4; -0.488749,-0.872425,-0.000000, 0.000000;;, - 45;4; -0.488749,-0.872425,-0.000000, 0.000000;;, - 46;4; -0.488749,-0.872425,-0.000000, 0.000000;;, - 47;4; -0.488749,-0.872425,-0.000000, 0.000000;;, - 48;4; -0.488749,-0.872425,-0.000000, 0.000000;;, - 49;4; -0.488749,-0.872425,-0.000000, 0.000000;;, - 50;4; -0.488749,-0.872425,-0.000000, 0.000000;;, - 51;4; -0.488749,-0.872425,-0.000000, 0.000000;;, - 52;4; -0.488749,-0.872425,-0.000000, 0.000000;;, - 53;4; -0.488749,-0.872425,-0.000000, 0.000000;;, - 54;4; -0.488749,-0.872425,-0.000000, 0.000000;;, - 55;4; -0.488749,-0.872425,-0.000000, 0.000000;;, - 56;4; -0.488749,-0.872425,-0.000000, 0.000000;;, - 57;4; -0.488749,-0.872425,-0.000000, 0.000000;;, - 58;4; -0.488749,-0.872425,-0.000000, 0.000000;;, - 59;4; -0.488749,-0.872425,-0.000000, 0.000000;;, - 60;4; -0.488749,-0.872425,-0.000000, 0.000000;;, - 61;4; -0.488749,-0.872425,-0.000000, 0.000000;;, - 62;4; -0.488749,-0.872425,-0.000000, 0.000000;;, - 63;4; -0.488749,-0.872425,-0.000000, 0.000000;;, - 64;4; -0.488749,-0.872425,-0.000000, 0.000000;;, - 65;4; -0.488749,-0.872425,-0.000000, 0.000000;;, - 66;4; -0.488749,-0.872425,-0.000000, 0.000000;;, - 67;4; -0.488749,-0.872425,-0.000000, 0.000000;;, - 68;4; -0.488749,-0.872425,-0.000000, 0.000000;;, - 69;4; -0.488749,-0.872425,-0.000000, 0.000000;;, - 70;4; -0.488749,-0.872425,-0.000000, 0.000000;;, - 71;4; -0.488749,-0.872425,-0.000000, 0.000000;;, - 72;4; -0.488749,-0.872425,-0.000000, 0.000000;;, - 73;4; -0.488749,-0.872425,-0.000000, 0.000000;;, - 74;4; -0.488749,-0.872425,-0.000000, 0.000000;;, - 75;4; -0.488749,-0.872425,-0.000000, 0.000000;;, - 76;4; -0.488749,-0.872425,-0.000000, 0.000000;;, - 77;4; -0.475808,-0.877594,-0.000049,-0.000523;;, - 78;4; -0.436940,-0.893029,-0.000173,-0.002149;;, - 79;4; -0.377893,-0.916244,-0.000300,-0.004762;;, - 80;4; -0.312673,-0.941466,-0.000330,-0.007910;;, - 81;4; -0.256835,-0.962415,-0.000187,-0.011003;;, - 82;4; -0.219444,-0.975530, 0.000150,-0.013640;;, - 83;4; -0.193318,-0.983639, 0.000681,-0.016160;;, - 84;4; -0.169382,-0.990265, 0.001418,-0.019016;;, - 85;4; -0.148030,-0.995304, 0.002349,-0.022159;;, - 86;4; -0.129628,-0.998721, 0.003440,-0.025501;;, - 87;4; -0.114440,-1.000587, 0.004639,-0.028910;;, - 88;4; -0.102546,-1.001108, 0.005873,-0.032223;;, - 89;4; -0.093793,-1.000608, 0.007057,-0.035264;;, - 90;4; -0.087804,-0.999487, 0.008111,-0.037878;;, - 91;4; -0.084054,-0.998144, 0.008972,-0.039952;;, - 92;4; -0.081975,-0.996922, 0.009598,-0.041429;;, - 93;4; -0.081039,-0.996075, 0.009973,-0.042296;;, - 94;4; -0.080808,-0.995769, 0.010096,-0.042576;;, - 95;4; -0.106019,-0.988144, 0.009473,-0.039946;;, - 96;4; -0.179360,-0.965968, 0.007657,-0.032292;;, - 97;4; -0.284763,-0.934105, 0.005048,-0.021288;;, - 98;4; -0.390175,-0.902238, 0.002439,-0.010284;;, - 99;4; -0.463531,-0.880054, 0.000624,-0.002630;;, - 100;4; -0.488749,-0.872425,-0.000000, 0.000000;;, - 101;4; -0.488749,-0.872425,-0.000000, 0.000000;;, - 102;4; -0.488749,-0.872425,-0.000000, 0.000000;;, - 103;4; -0.488749,-0.872425,-0.000000, 0.000000;;, - 104;4; -0.488749,-0.872425,-0.000000, 0.000000;;, - 105;4; -0.488749,-0.872425,-0.000000, 0.000000;;, - 106;4; -0.488749,-0.872425,-0.000000, 0.000000;;, - 107;4; -0.475808,-0.877594,-0.000049,-0.000523;;, - 108;4; -0.436940,-0.893029,-0.000173,-0.002149;;, - 109;4; -0.377893,-0.916244,-0.000300,-0.004762;;, - 110;4; -0.312673,-0.941466,-0.000330,-0.007910;;, - 111;4; -0.256835,-0.962415,-0.000187,-0.011003;;, - 112;4; -0.219444,-0.975530, 0.000150,-0.013640;;, - 113;4; -0.193318,-0.983639, 0.000681,-0.016160;;, - 114;4; -0.169382,-0.990265, 0.001418,-0.019016;;, - 115;4; -0.148030,-0.995304, 0.002349,-0.022159;;, - 116;4; -0.129628,-0.998721, 0.003440,-0.025501;;, - 117;4; -0.114440,-1.000587, 0.004639,-0.028910;;, - 118;4; -0.102546,-1.001108, 0.005873,-0.032223;;, - 119;4; -0.093793,-1.000608, 0.007057,-0.035264;;, - 120;4; -0.087804,-0.999487, 0.008111,-0.037878;;, - 121;4; -0.084054,-0.998144, 0.008972,-0.039952;;, - 122;4; -0.081975,-0.996922, 0.009598,-0.041429;;, - 123;4; -0.081039,-0.996075, 0.009973,-0.042296;;, - 124;4; -0.080808,-0.995769, 0.010096,-0.042576;;, - 125;4; -0.106019,-0.988144, 0.009473,-0.039946;;, - 126;4; -0.179360,-0.965968, 0.007657,-0.032292;;, - 127;4; -0.284763,-0.934105, 0.005048,-0.021288;;, - 128;4; -0.390175,-0.902238, 0.002439,-0.010284;;, - 129;4; -0.463531,-0.880054, 0.000624,-0.002630;;, - 130;4; -0.488749,-0.872425,-0.000000, 0.000000;;, - 131;4; -0.488749,-0.872425,-0.000000, 0.000000;;, - 132;4; -0.488749,-0.872425,-0.000000, 0.000000;;, - 133;4; -0.488749,-0.872425,-0.000000, 0.000000;;, - 134;4; -0.488749,-0.872425,-0.000000, 0.000000;;, - 135;4; -0.488749,-0.872425,-0.000000, 0.000000;;, - 136;4; -0.069762,-0.905220,-0.000000, 0.000000;;, - 137;4; 0.348011,-0.937491, 0.000000, 0.000000;;, - 138;4; 0.332428,-0.936184, 0.000000, 0.000000;;, - 139;4; 0.294691,-0.933103, 0.000000, 0.000000;;, - 140;4; 0.243447,-0.929002, 0.000000, 0.000000;;, - 141;4; 0.183838,-0.924297, 0.000000, 0.000000;;, - 142;4; 0.119262,-0.919250, 0.000000, 0.000000;;, - 143;4; 0.052141,-0.914041, 0.000000, 0.000000;;, - 144;4; -0.015689,-0.908803,-0.000000, 0.000000;;, - 145;4; -0.082761,-0.903642,-0.000000, 0.000000;;, - 146;4; -0.147851,-0.898644,-0.000000, 0.000000;;, - 147;4; -0.209896,-0.893885,-0.000000, 0.000000;;, - 148;4; -0.267935,-0.889435,-0.000000, 0.000000;;, - 149;4; -0.321076,-0.885358,-0.000000, 0.000000;;, - 150;4; -0.368460,-0.881718,-0.000000, 0.000000;;, - 151;4; -0.409240,-0.878580,-0.000000, 0.000000;;, - 152;4; -0.442564,-0.876008,-0.000000, 0.000000;;, - 153;4; -0.467550,-0.874074,-0.000000, 0.000000;;, - 154;4; -0.483275,-0.872852,-0.000000, 0.000000;;, - 155;4; -0.488749,-0.872425,-0.000000, 0.000000;;; - } - AnimationKey { //Scale - 1; - 156; - 0;3; 1.000000, 1.000000, 1.000000;;, - 1;3; 1.000000, 1.000000, 1.000000;;, - 2;3; 1.000000, 1.000000, 1.000000;;, - 3;3; 1.000000, 1.000000, 1.000000;;, - 4;3; 1.000000, 1.000000, 1.000000;;, - 5;3; 1.000000, 1.000000, 1.000000;;, - 6;3; 1.000000, 1.000000, 1.000000;;, - 7;3; 1.000000, 1.000000, 1.000000;;, - 8;3; 1.000000, 1.000000, 1.000000;;, - 9;3; 1.000000, 1.000000, 1.000000;;, - 10;3; 1.000000, 1.000000, 1.000000;;, - 11;3; 1.000000, 1.000000, 1.000000;;, - 12;3; 1.000000, 1.000000, 1.000000;;, - 13;3; 1.000000, 1.000000, 1.000000;;, - 14;3; 1.000000, 1.000000, 1.000000;;, - 15;3; 1.000000, 1.000000, 1.000000;;, - 16;3; 1.000000, 1.000000, 1.000000;;, - 17;3; 1.000000, 1.000000, 1.000000;;, - 18;3; 1.000000, 1.000000, 1.000000;;, - 19;3; 1.000000, 1.000000, 1.000000;;, - 20;3; 1.000000, 1.000000, 1.000000;;, - 21;3; 1.000000, 1.000000, 1.000000;;, - 22;3; 1.000000, 1.000000, 1.000000;;, - 23;3; 1.000000, 1.000000, 1.000000;;, - 24;3; 1.000000, 1.000000, 1.000000;;, - 25;3; 1.000000, 1.000000, 1.000000;;, - 26;3; 1.000000, 1.000000, 1.000000;;, - 27;3; 1.000000, 1.000000, 1.000000;;, - 28;3; 1.000000, 1.000000, 1.000000;;, - 29;3; 1.000000, 1.000000, 1.000000;;, - 30;3; 1.000000, 1.000000, 1.000000;;, - 31;3; 1.000000, 1.000000, 1.000000;;, - 32;3; 1.000000, 1.000000, 1.000000;;, - 33;3; 1.000000, 1.000000, 1.000000;;, - 34;3; 1.000000, 1.000000, 1.000000;;, - 35;3; 1.000000, 1.000000, 1.000000;;, - 36;3; 1.000000, 1.000000, 1.000000;;, - 37;3; 1.000000, 1.000000, 1.000000;;, - 38;3; 1.000000, 1.000000, 1.000000;;, - 39;3; 1.000000, 1.000000, 1.000000;;, - 40;3; 1.000000, 1.000000, 1.000000;;, - 41;3; 1.000000, 1.000000, 1.000000;;, - 42;3; 1.000000, 1.000000, 1.000000;;, - 43;3; 1.000000, 1.000000, 1.000000;;, - 44;3; 1.000000, 1.000000, 1.000000;;, - 45;3; 1.000000, 1.000000, 1.000000;;, - 46;3; 1.000000, 1.000000, 1.000000;;, - 47;3; 1.000000, 1.000000, 1.000000;;, - 48;3; 1.000000, 1.000000, 1.000000;;, - 49;3; 1.000000, 1.000000, 1.000000;;, - 50;3; 1.000000, 1.000000, 1.000000;;, - 51;3; 1.000000, 1.000000, 1.000000;;, - 52;3; 1.000000, 1.000000, 1.000000;;, - 53;3; 1.000000, 1.000000, 1.000000;;, - 54;3; 1.000000, 1.000000, 1.000000;;, - 55;3; 1.000000, 1.000000, 1.000000;;, - 56;3; 1.000000, 1.000000, 1.000000;;, - 57;3; 1.000000, 1.000000, 1.000000;;, - 58;3; 1.000000, 1.000000, 1.000000;;, - 59;3; 1.000000, 1.000000, 1.000000;;, - 60;3; 1.000000, 1.000000, 1.000000;;, - 61;3; 1.000000, 1.000000, 1.000000;;, - 62;3; 1.000000, 1.000000, 1.000000;;, - 63;3; 1.000000, 1.000000, 1.000000;;, - 64;3; 1.000000, 1.000000, 1.000000;;, - 65;3; 1.000000, 1.000000, 1.000000;;, - 66;3; 1.000000, 1.000000, 1.000000;;, - 67;3; 1.000000, 1.000000, 1.000000;;, - 68;3; 1.000000, 1.000000, 1.000000;;, - 69;3; 1.000000, 1.000000, 1.000000;;, - 70;3; 1.000000, 1.000000, 1.000000;;, - 71;3; 1.000000, 1.000000, 1.000000;;, - 72;3; 1.000000, 1.000000, 1.000000;;, - 73;3; 1.000000, 1.000000, 1.000000;;, - 74;3; 1.000000, 1.000000, 1.000000;;, - 75;3; 1.000000, 1.000000, 1.000000;;, - 76;3; 1.000000, 1.000000, 1.000000;;, - 77;3; 1.000000, 1.000000, 1.000000;;, - 78;3; 1.000000, 1.000000, 1.000000;;, - 79;3; 1.000000, 1.000000, 1.000000;;, - 80;3; 1.000000, 1.000000, 1.000000;;, - 81;3; 1.000000, 1.000000, 1.000000;;, - 82;3; 1.000000, 1.000000, 1.000000;;, - 83;3; 1.000000, 1.000000, 1.000000;;, - 84;3; 1.000000, 1.000000, 1.000000;;, - 85;3; 1.000000, 1.000000, 1.000000;;, - 86;3; 1.000000, 1.000000, 1.000000;;, - 87;3; 1.000000, 1.000000, 1.000000;;, - 88;3; 1.000000, 1.000000, 1.000000;;, - 89;3; 1.000000, 1.000000, 1.000000;;, - 90;3; 1.000000, 1.000000, 1.000000;;, - 91;3; 1.000000, 1.000000, 1.000000;;, - 92;3; 1.000000, 1.000000, 1.000000;;, - 93;3; 1.000000, 1.000000, 1.000000;;, - 94;3; 1.000000, 1.000000, 1.000000;;, - 95;3; 1.000000, 1.000000, 1.000000;;, - 96;3; 1.000000, 1.000000, 1.000000;;, - 97;3; 1.000000, 1.000000, 1.000000;;, - 98;3; 1.000000, 1.000000, 1.000000;;, - 99;3; 1.000000, 1.000000, 1.000000;;, - 100;3; 1.000000, 1.000000, 1.000000;;, - 101;3; 1.000000, 1.000000, 1.000000;;, - 102;3; 1.000000, 1.000000, 1.000000;;, - 103;3; 1.000000, 1.000000, 1.000000;;, - 104;3; 1.000000, 1.000000, 1.000000;;, - 105;3; 1.000000, 1.000000, 1.000000;;, - 106;3; 1.000000, 1.000000, 1.000000;;, - 107;3; 1.000000, 1.000000, 1.000000;;, - 108;3; 1.000000, 1.000000, 1.000000;;, - 109;3; 1.000000, 1.000000, 1.000000;;, - 110;3; 1.000000, 1.000000, 1.000000;;, - 111;3; 1.000000, 1.000000, 1.000000;;, - 112;3; 1.000000, 1.000000, 1.000000;;, - 113;3; 1.000000, 1.000000, 1.000000;;, - 114;3; 1.000000, 1.000000, 1.000000;;, - 115;3; 1.000000, 1.000000, 1.000000;;, - 116;3; 1.000000, 1.000000, 1.000000;;, - 117;3; 1.000000, 1.000000, 1.000000;;, - 118;3; 1.000000, 1.000000, 1.000000;;, - 119;3; 1.000000, 1.000000, 1.000000;;, - 120;3; 1.000000, 1.000000, 1.000000;;, - 121;3; 1.000000, 1.000000, 1.000000;;, - 122;3; 1.000000, 1.000000, 1.000000;;, - 123;3; 1.000000, 1.000000, 1.000000;;, - 124;3; 1.000000, 1.000000, 1.000000;;, - 125;3; 1.000000, 1.000000, 1.000000;;, - 126;3; 1.000000, 1.000000, 1.000000;;, - 127;3; 1.000000, 1.000000, 1.000000;;, - 128;3; 1.000000, 1.000000, 1.000000;;, - 129;3; 1.000000, 1.000000, 1.000000;;, - 130;3; 1.000000, 1.000000, 1.000000;;, - 131;3; 1.000000, 1.000000, 1.000000;;, - 132;3; 1.000000, 1.000000, 1.000000;;, - 133;3; 1.000000, 1.000000, 1.000000;;, - 134;3; 1.000000, 1.000000, 1.000000;;, - 135;3; 1.000000, 1.000000, 1.000000;;, - 136;3; 1.000000, 1.000000, 1.000000;;, - 137;3; 1.000000, 1.000000, 1.000000;;, - 138;3; 1.000000, 1.000000, 1.000000;;, - 139;3; 1.000000, 1.000000, 1.000000;;, - 140;3; 1.000000, 1.000000, 1.000000;;, - 141;3; 1.000000, 1.000000, 1.000000;;, - 142;3; 1.000000, 1.000000, 1.000000;;, - 143;3; 1.000000, 1.000000, 1.000000;;, - 144;3; 1.000000, 1.000000, 1.000000;;, - 145;3; 1.000000, 1.000000, 1.000000;;, - 146;3; 1.000000, 1.000000, 1.000000;;, - 147;3; 1.000000, 1.000000, 1.000000;;, - 148;3; 1.000000, 1.000000, 1.000000;;, - 149;3; 1.000000, 1.000000, 1.000000;;, - 150;3; 1.000000, 1.000000, 1.000000;;, - 151;3; 1.000000, 1.000000, 1.000000;;, - 152;3; 1.000000, 1.000000, 1.000000;;, - 153;3; 1.000000, 1.000000, 1.000000;;, - 154;3; 1.000000, 1.000000, 1.000000;;, - 155;3; 1.000000, 1.000000, 1.000000;;; - } - } - Animation { - {Armature_sheya} - AnimationKey { //Position - 2; - 156; - 0;3; 0.000000, 3.260104, 0.242284;;, - 1;3; 0.000000, 3.260104, 0.242284;;, - 2;3; 0.000000, 3.260104, 0.242284;;, - 3;3; 0.000000, 3.260104, 0.242284;;, - 4;3; 0.000000, 3.260104, 0.242284;;, - 5;3; 0.000000, 3.260104, 0.242284;;, - 6;3; 0.000000, 3.260104, 0.242284;;, - 7;3; 0.000000, 3.260104, 0.242284;;, - 8;3; 0.000000, 3.260104, 0.242284;;, - 9;3; 0.000000, 3.260104, 0.242284;;, - 10;3; 0.000000, 3.260104, 0.242284;;, - 11;3; 0.000000, 3.260104, 0.242284;;, - 12;3; 0.000000, 3.260104, 0.242284;;, - 13;3; 0.000000, 3.260104, 0.242284;;, - 14;3; 0.000000, 3.260104, 0.242284;;, - 15;3; 0.000000, 3.260104, 0.242284;;, - 16;3; 0.000000, 3.260104, 0.242284;;, - 17;3; 0.000000, 3.260104, 0.242284;;, - 18;3; 0.000000, 3.260104, 0.242284;;, - 19;3; 0.000000, 3.260104, 0.242284;;, - 20;3; 0.000000, 3.260104, 0.242284;;, - 21;3; 0.000000, 3.260104, 0.242284;;, - 22;3; 0.000000, 3.260104, 0.242284;;, - 23;3; 0.000000, 3.260104, 0.242284;;, - 24;3; 0.000000, 3.260104, 0.242284;;, - 25;3; 0.000000, 3.260104, 0.242284;;, - 26;3; 0.000000, 3.260104, 0.242284;;, - 27;3; 0.000000, 3.260104, 0.242284;;, - 28;3; 0.000000, 3.260104, 0.242284;;, - 29;3; 0.000000, 3.260104, 0.242284;;, - 30;3; 0.000000, 3.260104, 0.242284;;, - 31;3; 0.000000, 3.260104, 0.242284;;, - 32;3; 0.000000, 3.260104, 0.242284;;, - 33;3; 0.000000, 3.260104, 0.242284;;, - 34;3; 0.000000, 3.260104, 0.242284;;, - 35;3; 0.000000, 3.260104, 0.242284;;, - 36;3; 0.000000, 3.260104, 0.242284;;, - 37;3; 0.000000, 3.260104, 0.242284;;, - 38;3; 0.000000, 3.260104, 0.242284;;, - 39;3; 0.000000, 3.260104, 0.242284;;, - 40;3; 0.000000, 3.260104, 0.242284;;, - 41;3; 0.000000, 3.260104, 0.242284;;, - 42;3; 0.000000, 3.260104, 0.242284;;, - 43;3; 0.000000, 3.260104, 0.242284;;, - 44;3; 0.000000, 3.260104, 0.242284;;, - 45;3; 0.000000, 3.260104, 0.242284;;, - 46;3; 0.000000, 3.260104, 0.242284;;, - 47;3; 0.000000, 3.260104, 0.242284;;, - 48;3; 0.000000, 3.260104, 0.242284;;, - 49;3; 0.000000, 3.260104, 0.242284;;, - 50;3; 0.000000, 3.260104, 0.242284;;, - 51;3; 0.000000, 3.260104, 0.242284;;, - 52;3; 0.000000, 3.260104, 0.242284;;, - 53;3; 0.000000, 3.260104, 0.242284;;, - 54;3; 0.000000, 3.260104, 0.242284;;, - 55;3; 0.000000, 3.260104, 0.242284;;, - 56;3; 0.000000, 3.260104, 0.242284;;, - 57;3; 0.000000, 3.260104, 0.242284;;, - 58;3; 0.000000, 3.260104, 0.242284;;, - 59;3; 0.000000, 3.260104, 0.242284;;, - 60;3; 0.000000, 3.260104, 0.242284;;, - 61;3; 0.000000, 3.260104, 0.242284;;, - 62;3; 0.000000, 3.260104, 0.242284;;, - 63;3; 0.000000, 3.260104, 0.242284;;, - 64;3; 0.000000, 3.260104, 0.242284;;, - 65;3; 0.000000, 3.260104, 0.242284;;, - 66;3; 0.000000, 3.260104, 0.242284;;, - 67;3; 0.000000, 3.260104, 0.242284;;, - 68;3; 0.000000, 3.260104, 0.242284;;, - 69;3; 0.000000, 3.260104, 0.242284;;, - 70;3; 0.000000, 3.260104, 0.242284;;, - 71;3; 0.000000, 3.260104, 0.242284;;, - 72;3; 0.000000, 3.260104, 0.242284;;, - 73;3; 0.000000, 3.260104, 0.242284;;, - 74;3; 0.000000, 3.260104, 0.242284;;, - 75;3; 0.000000, 3.260104, 0.242284;;, - 76;3; 0.000000, 3.260104, 0.242284;;, - 77;3; 0.000000, 3.260104, 0.242284;;, - 78;3; 0.000000, 3.260104, 0.242284;;, - 79;3; 0.000000, 3.260104, 0.242284;;, - 80;3; 0.000000, 3.260104, 0.242284;;, - 81;3; 0.000000, 3.260104, 0.242284;;, - 82;3; 0.000000, 3.260104, 0.242284;;, - 83;3; 0.000000, 3.260104, 0.242284;;, - 84;3; 0.000000, 3.260104, 0.242284;;, - 85;3; 0.000000, 3.260104, 0.242284;;, - 86;3; 0.000000, 3.260104, 0.242284;;, - 87;3; 0.000000, 3.260104, 0.242284;;, - 88;3; 0.000000, 3.260104, 0.242284;;, - 89;3; 0.000000, 3.260104, 0.242284;;, - 90;3; 0.000000, 3.260104, 0.242284;;, - 91;3; 0.000000, 3.260104, 0.242284;;, - 92;3; 0.000000, 3.260104, 0.242284;;, - 93;3; 0.000000, 3.260104, 0.242284;;, - 94;3; 0.000000, 3.260104, 0.242284;;, - 95;3; 0.000000, 3.260104, 0.242284;;, - 96;3; 0.000000, 3.260104, 0.242284;;, - 97;3; 0.000000, 3.260104, 0.242284;;, - 98;3; 0.000000, 3.260104, 0.242284;;, - 99;3; 0.000000, 3.260104, 0.242284;;, - 100;3; 0.000000, 3.260104, 0.242284;;, - 101;3; 0.000000, 3.260104, 0.242284;;, - 102;3; 0.000000, 3.260104, 0.242284;;, - 103;3; 0.000000, 3.260104, 0.242284;;, - 104;3; 0.000000, 3.260104, 0.242284;;, - 105;3; 0.000000, 3.260104, 0.242284;;, - 106;3; 0.000000, 3.260104, 0.242284;;, - 107;3; 0.000000, 3.260104, 0.242284;;, - 108;3; 0.000000, 3.260104, 0.242284;;, - 109;3; 0.000000, 3.260104, 0.242284;;, - 110;3; 0.000000, 3.260104, 0.242284;;, - 111;3; 0.000000, 3.260104, 0.242284;;, - 112;3; 0.000000, 3.260104, 0.242284;;, - 113;3; 0.000000, 3.260104, 0.242284;;, - 114;3; 0.000000, 3.260104, 0.242284;;, - 115;3; 0.000000, 3.260104, 0.242284;;, - 116;3; 0.000000, 3.260104, 0.242284;;, - 117;3; 0.000000, 3.260104, 0.242284;;, - 118;3; 0.000000, 3.260104, 0.242284;;, - 119;3; 0.000000, 3.260104, 0.242284;;, - 120;3; 0.000000, 3.260104, 0.242284;;, - 121;3; 0.000000, 3.260104, 0.242284;;, - 122;3; 0.000000, 3.260104, 0.242284;;, - 123;3; 0.000000, 3.260104, 0.242284;;, - 124;3; 0.000000, 3.260104, 0.242284;;, - 125;3; 0.000000, 3.260104, 0.242284;;, - 126;3; 0.000000, 3.260104, 0.242284;;, - 127;3; 0.000000, 3.260104, 0.242284;;, - 128;3; 0.000000, 3.260104, 0.242284;;, - 129;3; 0.000000, 3.260104, 0.242284;;, - 130;3; 0.000000, 3.260104, 0.242284;;, - 131;3; 0.000000, 3.260104, 0.242284;;, - 132;3; 0.000000, 3.260104, 0.242284;;, - 133;3; 0.000000, 3.260104, 0.242284;;, - 134;3; 0.000000, 3.260104, 0.242284;;, - 135;3; 0.000000, 3.260104, 0.242284;;, - 136;3; 0.000000, 3.260104, 0.242284;;, - 137;3; 0.000000, 3.260104, 0.242284;;, - 138;3; 0.000000, 3.260104, 0.242284;;, - 139;3; 0.000000, 3.260104, 0.242284;;, - 140;3; 0.000000, 3.260104, 0.242284;;, - 141;3; 0.000000, 3.260104, 0.242284;;, - 142;3; 0.000000, 3.260104, 0.242284;;, - 143;3; 0.000000, 3.260104, 0.242284;;, - 144;3; 0.000000, 3.260104, 0.242284;;, - 145;3; 0.000000, 3.260104, 0.242284;;, - 146;3; 0.000000, 3.260104, 0.242284;;, - 147;3; 0.000000, 3.260104, 0.242284;;, - 148;3; 0.000000, 3.260104, 0.242284;;, - 149;3; 0.000000, 3.260104, 0.242284;;, - 150;3; 0.000000, 3.260104, 0.242284;;, - 151;3; 0.000000, 3.260104, 0.242284;;, - 152;3; 0.000000, 3.260104, 0.242284;;, - 153;3; 0.000000, 3.260104, 0.242284;;, - 154;3; 0.000000, 3.260104, 0.242284;;, - 155;3; 0.000000, 3.260104, 0.242284;;; - } - AnimationKey { //Rotation - 0; - 156; - 0;4; -0.996257,-0.077664, 0.002827, 0.037834;;, - 1;4; -0.996257,-0.077664, 0.002827, 0.037834;;, - 2;4; -0.996257,-0.077664, 0.002827, 0.037834;;, - 3;4; -0.996257,-0.077664, 0.002827, 0.037834;;, - 4;4; -0.996257,-0.077664, 0.002827, 0.037834;;, - 5;4; -0.996257,-0.077664, 0.002827, 0.037834;;, - 6;4; -0.996257,-0.077664, 0.002827, 0.037834;;, - 7;4; -0.996257,-0.077664, 0.002827, 0.037834;;, - 8;4; -0.996257,-0.077664, 0.002827, 0.037834;;, - 9;4; -0.996257,-0.077664, 0.002827, 0.037834;;, - 10;4; -0.996257,-0.077664, 0.002827, 0.037834;;, - 11;4; -0.996257,-0.077664, 0.002827, 0.037834;;, - 12;4; -0.996257,-0.077664, 0.002827, 0.037834;;, - 13;4; -0.996257,-0.077664, 0.002827, 0.037834;;, - 14;4; -0.996257,-0.077664, 0.002827, 0.037834;;, - 15;4; -0.996257,-0.077664, 0.002827, 0.037834;;, - 16;4; -0.996257,-0.077664, 0.002827, 0.037834;;, - 17;4; -0.996257,-0.077664, 0.002827, 0.037834;;, - 18;4; -0.996257,-0.077664, 0.002827, 0.037834;;, - 19;4; -0.996257,-0.077664, 0.002827, 0.037834;;, - 20;4; -0.996257,-0.077664, 0.002827, 0.037834;;, - 21;4; -0.996257,-0.077664, 0.002827, 0.037834;;, - 22;4; -0.996257,-0.077664, 0.002827, 0.037834;;, - 23;4; -0.996257,-0.077664, 0.002827, 0.037834;;, - 24;4; -0.996257,-0.077664, 0.002827, 0.037834;;, - 25;4; -0.996257,-0.077664, 0.002827, 0.037834;;, - 26;4; -0.996257,-0.077664, 0.002827, 0.037834;;, - 27;4; -0.994416,-0.057162, 0.003586, 0.037647;;, - 28;4; -0.989056, 0.002484, 0.005794, 0.037102;;, - 29;4; -0.981349, 0.088206, 0.008966, 0.036319;;, - 30;4; -0.973641, 0.173928, 0.012139, 0.035535;;, - 31;4; -0.968281, 0.233575, 0.014346, 0.034991;;, - 32;4; -0.966440, 0.254077, 0.015105, 0.034803;;, - 33;4; -0.966440, 0.254077, 0.015105, 0.034803;;, - 34;4; -0.966440, 0.254077, 0.015105, 0.034803;;, - 35;4; -0.966440, 0.254077, 0.015105, 0.034803;;, - 36;4; -0.966440, 0.254077, 0.015105, 0.034803;;, - 37;4; -0.966440, 0.254077, 0.015105, 0.034803;;, - 38;4; -0.966440, 0.254077, 0.015105, 0.034803;;, - 39;4; -0.964339, 0.215537, 0.049348, 0.013417;;, - 40;4; -0.959308, 0.112805, 0.138792,-0.042483;;, - 41;4; -0.955516, 0.004698, 0.228007,-0.098299;;, - 42;4; -0.956542,-0.047448, 0.261727,-0.119483;;, - 43;4; -0.961848,-0.061756, 0.245284,-0.109587;;, - 44;4; -0.970009,-0.071634, 0.198581,-0.081241;;, - 45;4; -0.979672,-0.076820, 0.131773,-0.040622;;, - 46;4; -0.988486,-0.078307, 0.065092,-0.000055;;, - 47;4; -0.994313,-0.078015, 0.018746, 0.028147;;, - 48;4; -0.996257,-0.077664, 0.002827, 0.037834;;, - 49;4; -0.996257,-0.077664, 0.002827, 0.037834;;, - 50;4; -0.996257,-0.077664, 0.002827, 0.037834;;, - 51;4; -0.996257,-0.077664, 0.002827, 0.037834;;, - 52;4; -0.996257,-0.077664, 0.002827, 0.037834;;, - 53;4; -0.996257,-0.077664, 0.002827, 0.037834;;, - 54;4; -0.996257,-0.077664, 0.002827, 0.037834;;, - 55;4; -0.996257,-0.077664, 0.002827, 0.037834;;, - 56;4; -0.996486,-0.073439, 0.002987, 0.037818;;, - 57;4; -0.997129,-0.061537, 0.003438, 0.037774;;, - 58;4; -0.997954,-0.046256, 0.004016, 0.037717;;, - 59;4; -0.998597,-0.034355, 0.004466, 0.037672;;, - 60;4; -0.998826,-0.030129, 0.004626, 0.037657;;, - 61;4; -0.998798,-0.030648, 0.004606, 0.037659;;, - 62;4; -0.998717,-0.032151, 0.004550, 0.037664;;, - 63;4; -0.998587,-0.034552, 0.004459, 0.037673;;, - 64;4; -0.998414,-0.037754, 0.004338, 0.037685;;, - 65;4; -0.998204,-0.041642, 0.004190, 0.037700;;, - 66;4; -0.997964,-0.046086, 0.004022, 0.037716;;, - 67;4; -0.997702,-0.050936, 0.003839, 0.037734;;, - 68;4; -0.997427,-0.056020, 0.003646, 0.037753;;, - 69;4; -0.997150,-0.061137, 0.003453, 0.037772;;, - 70;4; -0.996885,-0.066057, 0.003267, 0.037791;;, - 71;4; -0.996644,-0.070510, 0.003098, 0.037807;;, - 72;4; -0.996445,-0.074185, 0.002959, 0.037821;;, - 73;4; -0.996309,-0.076713, 0.002863, 0.037831;;, - 74;4; -0.996257,-0.077664, 0.002827, 0.037834;;, - 75;4; -0.996257,-0.077664, 0.002827, 0.037834;;, - 76;4; -0.996257,-0.077664, 0.002827, 0.037834;;, - 77;4; -0.996410,-0.074932, 0.002931, 0.037824;;, - 78;4; -0.996852,-0.066980, 0.003232, 0.037795;;, - 79;4; -0.997489,-0.055549, 0.003664, 0.037753;;, - 80;4; -0.998126,-0.044117, 0.004097, 0.037711;;, - 81;4; -0.998568,-0.036165, 0.004398, 0.037682;;, - 82;4; -0.998721,-0.033433, 0.004502, 0.037672;;, - 83;4; -0.998568,-0.036165, 0.004398, 0.037682;;, - 84;4; -0.998126,-0.044117, 0.004097, 0.037711;;, - 85;4; -0.997489,-0.055549, 0.003664, 0.037753;;, - 86;4; -0.996852,-0.066980, 0.003232, 0.037795;;, - 87;4; -0.996410,-0.074932, 0.002931, 0.037824;;, - 88;4; -0.996257,-0.077664, 0.002827, 0.037834;;, - 89;4; -0.996430,-0.074206, 0.002958, 0.037821;;, - 90;4; -0.996931,-0.064141, 0.003339, 0.037781;;, - 91;4; -0.997651,-0.049673, 0.003886, 0.037725;;, - 92;4; -0.998372,-0.035204, 0.004433, 0.037669;;, - 93;4; -0.998873,-0.025139, 0.004814, 0.037630;;, - 94;4; -0.999045,-0.021681, 0.004944, 0.037616;;, - 95;4; -0.998873,-0.025139, 0.004814, 0.037630;;, - 96;4; -0.998372,-0.035204, 0.004433, 0.037669;;, - 97;4; -0.997651,-0.049673, 0.003886, 0.037725;;, - 98;4; -0.996931,-0.064141, 0.003339, 0.037781;;, - 99;4; -0.996430,-0.074206, 0.002958, 0.037821;;, - 100;4; -0.996257,-0.077664, 0.002827, 0.037834;;, - 101;4; -0.996257,-0.077664, 0.002827, 0.037834;;, - 102;4; -0.996257,-0.077664, 0.002827, 0.037834;;, - 103;4; -0.996257,-0.077664, 0.002827, 0.037834;;, - 104;4; -0.996257,-0.077664, 0.002827, 0.037834;;, - 105;4; -0.996257,-0.077664, 0.002827, 0.037834;;, - 106;4; -0.996257,-0.077664, 0.002827, 0.037834;;, - 107;4; -0.996410,-0.074932, 0.002931, 0.037824;;, - 108;4; -0.996852,-0.066980, 0.003232, 0.037795;;, - 109;4; -0.997489,-0.055549, 0.003664, 0.037753;;, - 110;4; -0.998126,-0.044117, 0.004097, 0.037711;;, - 111;4; -0.998568,-0.036165, 0.004398, 0.037682;;, - 112;4; -0.998721,-0.033433, 0.004502, 0.037672;;, - 113;4; -0.998568,-0.036165, 0.004398, 0.037682;;, - 114;4; -0.998126,-0.044117, 0.004097, 0.037711;;, - 115;4; -0.997489,-0.055549, 0.003664, 0.037753;;, - 116;4; -0.996852,-0.066980, 0.003232, 0.037795;;, - 117;4; -0.996410,-0.074932, 0.002931, 0.037824;;, - 118;4; -0.996257,-0.077664, 0.002827, 0.037834;;, - 119;4; -0.996430,-0.074206, 0.002958, 0.037821;;, - 120;4; -0.996931,-0.064141, 0.003339, 0.037781;;, - 121;4; -0.997651,-0.049673, 0.003886, 0.037725;;, - 122;4; -0.998372,-0.035204, 0.004433, 0.037669;;, - 123;4; -0.998873,-0.025139, 0.004814, 0.037630;;, - 124;4; -0.999045,-0.021681, 0.004944, 0.037616;;, - 125;4; -0.998873,-0.025139, 0.004814, 0.037630;;, - 126;4; -0.998372,-0.035204, 0.004433, 0.037669;;, - 127;4; -0.997651,-0.049673, 0.003886, 0.037725;;, - 128;4; -0.996931,-0.064141, 0.003339, 0.037781;;, - 129;4; -0.996430,-0.074206, 0.002958, 0.037821;;, - 130;4; -0.996257,-0.077664, 0.002827, 0.037834;;, - 131;4; -0.996257,-0.077664, 0.002827, 0.037834;;, - 132;4; -0.996257,-0.077664, 0.002827, 0.037834;;, - 133;4; -0.996257,-0.077664, 0.002827, 0.037834;;, - 134;4; -0.996257,-0.077664, 0.002827, 0.037834;;, - 135;4; -0.996257,-0.077664, 0.002827, 0.037834;;, - 136;4; -0.996257,-0.077664, 0.002827, 0.037834;;, - 137;4; -0.996257,-0.077664, 0.002827, 0.037834;;, - 138;4; -0.996257,-0.077664, 0.002827, 0.037834;;, - 139;4; -0.996257,-0.077664, 0.002827, 0.037834;;, - 140;4; -0.996257,-0.077664, 0.002827, 0.037834;;, - 141;4; -0.996257,-0.077664, 0.002827, 0.037834;;, - 142;4; -0.996257,-0.077664, 0.002827, 0.037834;;, - 143;4; -0.996257,-0.077664, 0.002827, 0.037834;;, - 144;4; -0.996257,-0.077664, 0.002827, 0.037834;;, - 145;4; -0.996257,-0.077664, 0.002827, 0.037834;;, - 146;4; -0.996257,-0.077664, 0.002827, 0.037834;;, - 147;4; -0.996257,-0.077664, 0.002827, 0.037834;;, - 148;4; -0.996257,-0.077664, 0.002827, 0.037834;;, - 149;4; -0.996257,-0.077664, 0.002827, 0.037834;;, - 150;4; -0.996257,-0.077664, 0.002827, 0.037834;;, - 151;4; -0.996257,-0.077664, 0.002827, 0.037834;;, - 152;4; -0.996257,-0.077664, 0.002827, 0.037834;;, - 153;4; -0.996257,-0.077664, 0.002827, 0.037834;;, - 154;4; -0.996257,-0.077664, 0.002827, 0.037834;;, - 155;4; -0.996257,-0.077664, 0.002827, 0.037834;;; - } - AnimationKey { //Scale - 1; - 156; - 0;3; 1.000000, 1.000000, 1.000000;;, - 1;3; 1.000000, 1.000000, 1.000000;;, - 2;3; 1.000000, 1.000000, 1.000000;;, - 3;3; 1.000000, 1.000000, 1.000000;;, - 4;3; 1.000000, 1.000000, 1.000000;;, - 5;3; 1.000000, 1.000000, 1.000000;;, - 6;3; 1.000000, 1.000000, 1.000000;;, - 7;3; 1.000000, 1.000000, 1.000000;;, - 8;3; 1.000000, 1.000000, 1.000000;;, - 9;3; 1.000000, 1.000000, 1.000000;;, - 10;3; 1.000000, 1.000000, 1.000000;;, - 11;3; 1.000000, 1.000000, 1.000000;;, - 12;3; 1.000000, 1.000000, 1.000000;;, - 13;3; 1.000000, 1.000000, 1.000000;;, - 14;3; 1.000000, 1.000000, 1.000000;;, - 15;3; 1.000000, 1.000000, 1.000000;;, - 16;3; 1.000000, 1.000000, 1.000000;;, - 17;3; 1.000000, 1.000000, 1.000000;;, - 18;3; 1.000000, 1.000000, 1.000000;;, - 19;3; 1.000000, 1.000000, 1.000000;;, - 20;3; 1.000000, 1.000000, 1.000000;;, - 21;3; 1.000000, 1.000000, 1.000000;;, - 22;3; 1.000000, 1.000000, 1.000000;;, - 23;3; 1.000000, 1.000000, 1.000000;;, - 24;3; 1.000000, 1.000000, 1.000000;;, - 25;3; 1.000000, 1.000000, 1.000000;;, - 26;3; 1.000000, 1.000000, 1.000000;;, - 27;3; 1.000000, 1.000000, 1.000000;;, - 28;3; 1.000000, 1.000000, 1.000000;;, - 29;3; 1.000000, 1.000000, 1.000000;;, - 30;3; 1.000000, 1.000000, 1.000000;;, - 31;3; 1.000000, 1.000000, 1.000000;;, - 32;3; 1.000000, 1.000000, 1.000000;;, - 33;3; 1.000000, 1.000000, 1.000000;;, - 34;3; 1.000000, 1.000000, 1.000000;;, - 35;3; 1.000000, 1.000000, 1.000000;;, - 36;3; 1.000000, 1.000000, 1.000000;;, - 37;3; 1.000000, 1.000000, 1.000000;;, - 38;3; 1.000000, 1.000000, 1.000000;;, - 39;3; 1.000000, 1.000000, 1.000000;;, - 40;3; 1.000000, 1.000000, 1.000000;;, - 41;3; 1.000000, 1.000000, 1.000000;;, - 42;3; 1.000000, 1.000000, 1.000000;;, - 43;3; 1.000000, 1.000000, 1.000000;;, - 44;3; 1.000000, 1.000000, 1.000000;;, - 45;3; 1.000000, 1.000000, 1.000000;;, - 46;3; 1.000000, 1.000000, 1.000000;;, - 47;3; 1.000000, 1.000000, 1.000000;;, - 48;3; 1.000000, 1.000000, 1.000000;;, - 49;3; 1.000000, 1.000000, 1.000000;;, - 50;3; 1.000000, 1.000000, 1.000000;;, - 51;3; 1.000000, 1.000000, 1.000000;;, - 52;3; 1.000000, 1.000000, 1.000000;;, - 53;3; 1.000000, 1.000000, 1.000000;;, - 54;3; 1.000000, 1.000000, 1.000000;;, - 55;3; 1.000000, 1.000000, 1.000000;;, - 56;3; 1.000000, 1.000000, 1.000000;;, - 57;3; 1.000000, 1.000000, 1.000000;;, - 58;3; 1.000000, 1.000000, 1.000000;;, - 59;3; 1.000000, 1.000000, 1.000000;;, - 60;3; 1.000000, 1.000000, 1.000000;;, - 61;3; 1.000000, 1.000000, 1.000000;;, - 62;3; 1.000000, 1.000000, 1.000000;;, - 63;3; 1.000000, 1.000000, 1.000000;;, - 64;3; 1.000000, 1.000000, 1.000000;;, - 65;3; 1.000000, 1.000000, 1.000000;;, - 66;3; 1.000000, 1.000000, 1.000000;;, - 67;3; 1.000000, 1.000000, 1.000000;;, - 68;3; 1.000000, 1.000000, 1.000000;;, - 69;3; 1.000000, 1.000000, 1.000000;;, - 70;3; 1.000000, 1.000000, 1.000000;;, - 71;3; 1.000000, 1.000000, 1.000000;;, - 72;3; 1.000000, 1.000000, 1.000000;;, - 73;3; 1.000000, 1.000000, 1.000000;;, - 74;3; 1.000000, 1.000000, 1.000000;;, - 75;3; 1.000000, 1.000000, 1.000000;;, - 76;3; 1.000000, 1.000000, 1.000000;;, - 77;3; 1.000000, 1.000000, 1.000000;;, - 78;3; 1.000000, 1.000000, 1.000000;;, - 79;3; 1.000000, 1.000000, 1.000000;;, - 80;3; 1.000000, 1.000000, 1.000000;;, - 81;3; 1.000000, 1.000000, 1.000000;;, - 82;3; 1.000000, 1.000000, 1.000000;;, - 83;3; 1.000000, 1.000000, 1.000000;;, - 84;3; 1.000000, 1.000000, 1.000000;;, - 85;3; 1.000000, 1.000000, 1.000000;;, - 86;3; 1.000000, 1.000000, 1.000000;;, - 87;3; 1.000000, 1.000000, 1.000000;;, - 88;3; 1.000000, 1.000000, 1.000000;;, - 89;3; 1.000000, 1.000000, 1.000000;;, - 90;3; 1.000000, 1.000000, 1.000000;;, - 91;3; 1.000000, 1.000000, 1.000000;;, - 92;3; 1.000000, 1.000000, 1.000000;;, - 93;3; 1.000000, 1.000000, 1.000000;;, - 94;3; 1.000000, 1.000000, 1.000000;;, - 95;3; 1.000000, 1.000000, 1.000000;;, - 96;3; 1.000000, 1.000000, 1.000000;;, - 97;3; 1.000000, 1.000000, 1.000000;;, - 98;3; 1.000000, 1.000000, 1.000000;;, - 99;3; 1.000000, 1.000000, 1.000000;;, - 100;3; 1.000000, 1.000000, 1.000000;;, - 101;3; 1.000000, 1.000000, 1.000000;;, - 102;3; 1.000000, 1.000000, 1.000000;;, - 103;3; 1.000000, 1.000000, 1.000000;;, - 104;3; 1.000000, 1.000000, 1.000000;;, - 105;3; 1.000000, 1.000000, 1.000000;;, - 106;3; 1.000000, 1.000000, 1.000000;;, - 107;3; 1.000000, 1.000000, 1.000000;;, - 108;3; 1.000000, 1.000000, 1.000000;;, - 109;3; 1.000000, 1.000000, 1.000000;;, - 110;3; 1.000000, 1.000000, 1.000000;;, - 111;3; 1.000000, 1.000000, 1.000000;;, - 112;3; 1.000000, 1.000000, 1.000000;;, - 113;3; 1.000000, 1.000000, 1.000000;;, - 114;3; 1.000000, 1.000000, 1.000000;;, - 115;3; 1.000000, 1.000000, 1.000000;;, - 116;3; 1.000000, 1.000000, 1.000000;;, - 117;3; 1.000000, 1.000000, 1.000000;;, - 118;3; 1.000000, 1.000000, 1.000000;;, - 119;3; 1.000000, 1.000000, 1.000000;;, - 120;3; 1.000000, 1.000000, 1.000000;;, - 121;3; 1.000000, 1.000000, 1.000000;;, - 122;3; 1.000000, 1.000000, 1.000000;;, - 123;3; 1.000000, 1.000000, 1.000000;;, - 124;3; 1.000000, 1.000000, 1.000000;;, - 125;3; 1.000000, 1.000000, 1.000000;;, - 126;3; 1.000000, 1.000000, 1.000000;;, - 127;3; 1.000000, 1.000000, 1.000000;;, - 128;3; 1.000000, 1.000000, 1.000000;;, - 129;3; 1.000000, 1.000000, 1.000000;;, - 130;3; 1.000000, 1.000000, 1.000000;;, - 131;3; 1.000000, 1.000000, 1.000000;;, - 132;3; 1.000000, 1.000000, 1.000000;;, - 133;3; 1.000000, 1.000000, 1.000000;;, - 134;3; 1.000000, 1.000000, 1.000000;;, - 135;3; 1.000000, 1.000000, 1.000000;;, - 136;3; 1.000000, 1.000000, 1.000000;;, - 137;3; 1.000000, 1.000000, 1.000000;;, - 138;3; 1.000000, 1.000000, 1.000000;;, - 139;3; 1.000000, 1.000000, 1.000000;;, - 140;3; 1.000000, 1.000000, 1.000000;;, - 141;3; 1.000000, 1.000000, 1.000000;;, - 142;3; 1.000000, 1.000000, 1.000000;;, - 143;3; 1.000000, 1.000000, 1.000000;;, - 144;3; 1.000000, 1.000000, 1.000000;;, - 145;3; 1.000000, 1.000000, 1.000000;;, - 146;3; 1.000000, 1.000000, 1.000000;;, - 147;3; 1.000000, 1.000000, 1.000000;;, - 148;3; 1.000000, 1.000000, 1.000000;;, - 149;3; 1.000000, 1.000000, 1.000000;;, - 150;3; 1.000000, 1.000000, 1.000000;;, - 151;3; 1.000000, 1.000000, 1.000000;;, - 152;3; 1.000000, 1.000000, 1.000000;;, - 153;3; 1.000000, 1.000000, 1.000000;;, - 154;3; 1.000000, 1.000000, 1.000000;;, - 155;3; 1.000000, 1.000000, 1.000000;;; - } - } - Animation { - {Armature_head} - AnimationKey { //Position - 2; - 156; - 0;3; 0.068728, 0.903770, 0.009841;;, - 1;3; 0.068728, 0.903770, 0.009841;;, - 2;3; 0.068728, 0.903770, 0.009841;;, - 3;3; 0.068728, 0.903770, 0.009841;;, - 4;3; 0.068728, 0.903770, 0.009841;;, - 5;3; 0.068728, 0.903770, 0.009841;;, - 6;3; 0.068728, 0.903770, 0.009841;;, - 7;3; 0.068728, 0.903770, 0.009841;;, - 8;3; 0.068728, 0.903770, 0.009841;;, - 9;3; 0.068728, 0.903770, 0.009841;;, - 10;3; 0.068728, 0.903770, 0.009841;;, - 11;3; 0.068728, 0.903770, 0.009841;;, - 12;3; 0.068728, 0.903770, 0.009841;;, - 13;3; 0.068728, 0.903770, 0.009841;;, - 14;3; 0.068728, 0.903770, 0.009841;;, - 15;3; 0.068728, 0.903770, 0.009841;;, - 16;3; 0.068728, 0.903770, 0.009841;;, - 17;3; 0.068728, 0.903770, 0.009841;;, - 18;3; 0.068728, 0.903770, 0.009841;;, - 19;3; 0.068728, 0.903770, 0.009841;;, - 20;3; 0.068728, 0.903770, 0.009841;;, - 21;3; 0.068728, 0.903770, 0.009841;;, - 22;3; 0.068728, 0.903770, 0.009841;;, - 23;3; 0.068728, 0.903770, 0.009841;;, - 24;3; 0.068728, 0.903770, 0.009841;;, - 25;3; 0.068728, 0.903770, 0.009841;;, - 26;3; 0.068728, 0.903770, 0.009841;;, - 27;3; 0.068728, 0.903770, 0.009841;;, - 28;3; 0.068728, 0.903770, 0.009841;;, - 29;3; 0.068728, 0.903770, 0.009841;;, - 30;3; 0.068728, 0.903770, 0.009841;;, - 31;3; 0.068728, 0.903770, 0.009841;;, - 32;3; 0.068728, 0.903770, 0.009841;;, - 33;3; 0.068728, 0.903770, 0.009841;;, - 34;3; 0.068728, 0.903770, 0.009841;;, - 35;3; 0.068728, 0.903770, 0.009841;;, - 36;3; 0.068728, 0.903770, 0.009841;;, - 37;3; 0.068728, 0.903770, 0.009841;;, - 38;3; 0.068728, 0.903770, 0.009841;;, - 39;3; 0.068728, 0.903770, 0.009841;;, - 40;3; 0.068728, 0.903770, 0.009841;;, - 41;3; 0.068728, 0.903770, 0.009840;;, - 42;3; 0.068728, 0.903770, 0.009841;;, - 43;3; 0.068728, 0.903770, 0.009841;;, - 44;3; 0.068728, 0.903770, 0.009841;;, - 45;3; 0.068728, 0.903770, 0.009841;;, - 46;3; 0.068728, 0.903770, 0.009841;;, - 47;3; 0.068727, 0.903770, 0.009841;;, - 48;3; 0.068728, 0.903770, 0.009841;;, - 49;3; 0.068728, 0.903770, 0.009841;;, - 50;3; 0.068728, 0.903770, 0.009841;;, - 51;3; 0.068728, 0.903770, 0.009841;;, - 52;3; 0.068728, 0.903770, 0.009841;;, - 53;3; 0.068728, 0.903770, 0.009841;;, - 54;3; 0.068728, 0.903770, 0.009841;;, - 55;3; 0.068728, 0.903770, 0.009841;;, - 56;3; 0.068728, 0.903770, 0.009841;;, - 57;3; 0.068728, 0.903770, 0.009841;;, - 58;3; 0.068728, 0.903770, 0.009841;;, - 59;3; 0.068728, 0.903770, 0.009841;;, - 60;3; 0.068728, 0.903770, 0.009841;;, - 61;3; 0.068728, 0.903770, 0.009841;;, - 62;3; 0.068727, 0.903770, 0.009841;;, - 63;3; 0.068728, 0.903770, 0.009841;;, - 64;3; 0.068728, 0.903770, 0.009841;;, - 65;3; 0.068727, 0.903770, 0.009841;;, - 66;3; 0.068728, 0.903769, 0.009841;;, - 67;3; 0.068728, 0.903770, 0.009841;;, - 68;3; 0.068728, 0.903770, 0.009841;;, - 69;3; 0.068727, 0.903770, 0.009841;;, - 70;3; 0.068728, 0.903770, 0.009841;;, - 71;3; 0.068728, 0.903770, 0.009841;;, - 72;3; 0.068728, 0.903770, 0.009841;;, - 73;3; 0.068728, 0.903770, 0.009841;;, - 74;3; 0.068728, 0.903770, 0.009841;;, - 75;3; 0.068728, 0.903770, 0.009841;;, - 76;3; 0.068728, 0.903770, 0.009841;;, - 77;3; 0.068728, 0.903770, 0.009841;;, - 78;3; 0.068728, 0.903770, 0.009841;;, - 79;3; 0.068728, 0.903770, 0.009841;;, - 80;3; 0.068728, 0.903770, 0.009841;;, - 81;3; 0.068728, 0.903770, 0.009841;;, - 82;3; 0.068728, 0.903770, 0.009841;;, - 83;3; 0.068728, 0.903770, 0.009841;;, - 84;3; 0.068728, 0.903770, 0.009841;;, - 85;3; 0.068728, 0.903770, 0.009841;;, - 86;3; 0.068728, 0.903770, 0.009841;;, - 87;3; 0.068728, 0.903770, 0.009841;;, - 88;3; 0.068728, 0.903770, 0.009841;;, - 89;3; 0.068728, 0.903770, 0.009841;;, - 90;3; 0.068728, 0.903770, 0.009841;;, - 91;3; 0.068728, 0.903770, 0.009841;;, - 92;3; 0.068728, 0.903769, 0.009841;;, - 93;3; 0.068728, 0.903770, 0.009841;;, - 94;3; 0.068728, 0.903770, 0.009841;;, - 95;3; 0.068728, 0.903770, 0.009841;;, - 96;3; 0.068728, 0.903770, 0.009841;;, - 97;3; 0.068728, 0.903770, 0.009841;;, - 98;3; 0.068728, 0.903770, 0.009841;;, - 99;3; 0.068728, 0.903770, 0.009841;;, - 100;3; 0.068728, 0.903770, 0.009841;;, - 101;3; 0.068728, 0.903770, 0.009841;;, - 102;3; 0.068728, 0.903770, 0.009841;;, - 103;3; 0.068728, 0.903770, 0.009841;;, - 104;3; 0.068728, 0.903770, 0.009841;;, - 105;3; 0.068728, 0.903770, 0.009841;;, - 106;3; 0.068728, 0.903770, 0.009841;;, - 107;3; 0.068728, 0.903770, 0.009841;;, - 108;3; 0.068728, 0.903770, 0.009841;;, - 109;3; 0.068728, 0.903770, 0.009841;;, - 110;3; 0.068728, 0.903770, 0.009841;;, - 111;3; 0.068728, 0.903770, 0.009841;;, - 112;3; 0.068728, 0.903770, 0.009841;;, - 113;3; 0.068728, 0.903770, 0.009841;;, - 114;3; 0.068728, 0.903770, 0.009841;;, - 115;3; 0.068728, 0.903770, 0.009841;;, - 116;3; 0.068728, 0.903770, 0.009841;;, - 117;3; 0.068728, 0.903770, 0.009841;;, - 118;3; 0.068728, 0.903770, 0.009841;;, - 119;3; 0.068728, 0.903770, 0.009841;;, - 120;3; 0.068728, 0.903770, 0.009841;;, - 121;3; 0.068728, 0.903770, 0.009841;;, - 122;3; 0.068728, 0.903769, 0.009841;;, - 123;3; 0.068728, 0.903770, 0.009841;;, - 124;3; 0.068728, 0.903770, 0.009841;;, - 125;3; 0.068728, 0.903770, 0.009841;;, - 126;3; 0.068728, 0.903770, 0.009841;;, - 127;3; 0.068728, 0.903770, 0.009841;;, - 128;3; 0.068728, 0.903770, 0.009841;;, - 129;3; 0.068728, 0.903770, 0.009841;;, - 130;3; 0.068728, 0.903770, 0.009841;;, - 131;3; 0.068728, 0.903770, 0.009841;;, - 132;3; 0.068728, 0.903770, 0.009841;;, - 133;3; 0.068728, 0.903770, 0.009841;;, - 134;3; 0.068728, 0.903770, 0.009841;;, - 135;3; 0.068728, 0.903770, 0.009841;;, - 136;3; 0.068728, 0.903770, 0.009841;;, - 137;3; 0.068728, 0.903770, 0.009841;;, - 138;3; 0.068728, 0.903770, 0.009841;;, - 139;3; 0.068728, 0.903770, 0.009841;;, - 140;3; 0.068727, 0.903770, 0.009841;;, - 141;3; 0.068727, 0.903770, 0.009841;;, - 142;3; 0.068728, 0.903770, 0.009841;;, - 143;3; 0.068728, 0.903770, 0.009841;;, - 144;3; 0.068728, 0.903770, 0.009841;;, - 145;3; 0.068728, 0.903770, 0.009841;;, - 146;3; 0.068728, 0.903770, 0.009841;;, - 147;3; 0.068728, 0.903770, 0.009841;;, - 148;3; 0.068728, 0.903770, 0.009841;;, - 149;3; 0.068728, 0.903770, 0.009841;;, - 150;3; 0.068728, 0.903770, 0.009841;;, - 151;3; 0.068728, 0.903770, 0.009841;;, - 152;3; 0.068727, 0.903770, 0.009841;;, - 153;3; 0.068728, 0.903770, 0.009841;;, - 154;3; 0.068728, 0.903770, 0.009841;;, - 155;3; 0.068728, 0.903770, 0.009841;;; - } - AnimationKey { //Rotation - 0; - 156; - 0;4; -0.999224, 0.010557,-0.000279,-0.037939;;, - 1;4; -0.999224, 0.010557,-0.000279,-0.037939;;, - 2;4; -0.999224, 0.010557,-0.000279,-0.037939;;, - 3;4; -0.999224, 0.010557,-0.000279,-0.037939;;, - 4;4; -0.999224, 0.010557,-0.000279,-0.037939;;, - 5;4; -0.999224, 0.010557,-0.000279,-0.037939;;, - 6;4; -0.999224, 0.010557,-0.000279,-0.037939;;, - 7;4; -0.999224, 0.010557,-0.000279,-0.037939;;, - 8;4; -0.999224, 0.010557,-0.000279,-0.037939;;, - 9;4; -0.999224, 0.010557,-0.000279,-0.037939;;, - 10;4; -0.999224, 0.010557,-0.000279,-0.037939;;, - 11;4; -0.999224, 0.010557,-0.000279,-0.037939;;, - 12;4; -0.999224, 0.010557,-0.000279,-0.037939;;, - 13;4; -0.999224, 0.010557,-0.000279,-0.037939;;, - 14;4; -0.999224, 0.010557,-0.000279,-0.037939;;, - 15;4; -0.999224, 0.010557,-0.000279,-0.037939;;, - 16;4; -0.999224, 0.010557,-0.000279,-0.037939;;, - 17;4; -0.999224, 0.010557,-0.000279,-0.037939;;, - 18;4; -0.999224, 0.010557,-0.000279,-0.037939;;, - 19;4; -0.999224, 0.010557,-0.000279,-0.037939;;, - 20;4; -0.999224, 0.010557,-0.000279,-0.037939;;, - 21;4; -0.999224, 0.010557,-0.000279,-0.037939;;, - 22;4; -0.999224, 0.010557,-0.000279,-0.037939;;, - 23;4; -0.999224, 0.010557,-0.000279,-0.037939;;, - 24;4; -0.999224, 0.010557,-0.000279,-0.037939;;, - 25;4; -0.999224, 0.010557,-0.000279,-0.037939;;, - 26;4; -0.999224, 0.010557,-0.000279,-0.037939;;, - 27;4; -0.999224, 0.010557,-0.000279,-0.037939;;, - 28;4; -0.999224, 0.010557,-0.000279,-0.037939;;, - 29;4; -0.999224, 0.010557,-0.000279,-0.037939;;, - 30;4; -0.998171, 0.013972,-0.008803,-0.037500;;, - 31;4; -0.994966, 0.024053,-0.034555,-0.036053;;, - 32;4; -0.989862, 0.039359,-0.075148,-0.033468;;, - 33;4; -0.983646, 0.056616,-0.123797,-0.029809;;, - 34;4; -0.977455, 0.071656,-0.171048,-0.025368;;, - 35;4; -0.972271, 0.081255,-0.208929,-0.020539;;, - 36;4; -0.968611, 0.084035,-0.233422,-0.015649;;, - 37;4; -0.965922, 0.082324,-0.249225,-0.009544;;, - 38;4; -0.963643, 0.078387,-0.261222,-0.001252;;, - 39;4; -0.961951, 0.072304,-0.268792, 0.007979;;, - 40;4; -0.960922, 0.064810,-0.272343, 0.016105;;, - 41;4; -0.960466, 0.056998,-0.273293, 0.021361;;, - 42;4; -0.960402, 0.049704,-0.273175, 0.023091;;, - 43;4; -0.962856, 0.042018,-0.256114, 0.019319;;, - 44;4; -0.969855, 0.033096,-0.206980, 0.008347;;, - 45;4; -0.979877, 0.024089,-0.136502,-0.007426;;, - 46;4; -0.989882, 0.016649,-0.066081,-0.023198;;, - 47;4; -0.996836, 0.012036,-0.017106,-0.034169;;, - 48;4; -0.999224, 0.010557,-0.000279,-0.037939;;, - 49;4; -0.999224, 0.010557,-0.000279,-0.037939;;, - 50;4; -0.999224, 0.010557,-0.000279,-0.037939;;, - 51;4; -0.999224, 0.010557,-0.000279,-0.037939;;, - 52;4; -0.999224, 0.010557,-0.000279,-0.037939;;, - 53;4; -0.999224, 0.010557,-0.000279,-0.037939;;, - 54;4; -0.999224, 0.010557,-0.000279,-0.037939;;, - 55;4; -0.999224, 0.010557,-0.000279,-0.037939;;, - 56;4; -0.999224, 0.010557,-0.000279,-0.037939;;, - 57;4; -0.999224, 0.010557,-0.000279,-0.037939;;, - 58;4; -0.999224, 0.010557,-0.000279,-0.037939;;, - 59;4; -0.999224, 0.010557,-0.000279,-0.037939;;, - 60;4; -0.999224, 0.010557,-0.000279,-0.037939;;, - 61;4; -0.999224, 0.010557,-0.000279,-0.037939;;, - 62;4; -0.999224, 0.010557,-0.000279,-0.037939;;, - 63;4; -0.999224, 0.010557,-0.000279,-0.037939;;, - 64;4; -0.999224, 0.010557,-0.000279,-0.037939;;, - 65;4; -0.999224, 0.010557,-0.000279,-0.037939;;, - 66;4; -0.999224, 0.010557,-0.000279,-0.037939;;, - 67;4; -0.999224, 0.010557,-0.000279,-0.037939;;, - 68;4; -0.999224, 0.010557,-0.000279,-0.037939;;, - 69;4; -0.999224, 0.010557,-0.000279,-0.037939;;, - 70;4; -0.999224, 0.010557,-0.000279,-0.037939;;, - 71;4; -0.999224, 0.010557,-0.000279,-0.037939;;, - 72;4; -0.999224, 0.010557,-0.000279,-0.037939;;, - 73;4; -0.999224, 0.010557,-0.000279,-0.037939;;, - 74;4; -0.999224, 0.010557,-0.000279,-0.037939;;, - 75;4; -0.999224, 0.010557,-0.000279,-0.037939;;, - 76;4; -0.999224, 0.010557,-0.000279,-0.037939;;, - 77;4; -0.998942, 0.010323,-0.006375,-0.037836;;, - 78;4; -0.998114, 0.009640,-0.024116,-0.037539;;, - 79;4; -0.996912, 0.008659,-0.049619,-0.037111;;, - 80;4; -0.995684, 0.007678,-0.075122,-0.036681;;, - 81;4; -0.994788, 0.006994,-0.092863,-0.036381;;, - 82;4; -0.994407, 0.006759,-0.098958,-0.036275;;, - 83;4; -0.994301, 0.006876,-0.095847,-0.036318;;, - 84;4; -0.994200, 0.007231,-0.086457,-0.036455;;, - 85;4; -0.994107, 0.007818,-0.070972,-0.036684;;, - 86;4; -0.994024, 0.008611,-0.050073,-0.036994;;, - 87;4; -0.993951, 0.009561,-0.025046,-0.037367;;, - 88;4; -0.993891, 0.010596, 0.002231,-0.037774;;, - 89;4; -0.993843, 0.011631, 0.029508,-0.038181;;, - 90;4; -0.993807, 0.012581, 0.054535,-0.038555;;, - 91;4; -0.993783, 0.013374, 0.075434,-0.038868;;, - 92;4; -0.993767, 0.013962, 0.090919,-0.039100;;, - 93;4; -0.993759, 0.014319, 0.100309,-0.039240;;, - 94;4; -0.993757, 0.014437, 0.103420,-0.039287;;, - 95;4; -0.994095, 0.014197, 0.097014,-0.039204;;, - 96;4; -0.995077, 0.013500, 0.078371,-0.038961;;, - 97;4; -0.996491, 0.012497, 0.051571,-0.038613;;, - 98;4; -0.997904, 0.011494, 0.024771,-0.038264;;, - 99;4; -0.998887, 0.010797, 0.006127,-0.038022;;, - 100;4; -0.999224, 0.010557,-0.000279,-0.037939;;, - 101;4; -0.999224, 0.010557,-0.000279,-0.037939;;, - 102;4; -0.999224, 0.010557,-0.000279,-0.037939;;, - 103;4; -0.999224, 0.010557,-0.000279,-0.037939;;, - 104;4; -0.999224, 0.010557,-0.000279,-0.037939;;, - 105;4; -0.999224, 0.010557,-0.000279,-0.037939;;, - 106;4; -0.999224, 0.010557,-0.000279,-0.037939;;, - 107;4; -0.998942, 0.010323,-0.006375,-0.037836;;, - 108;4; -0.998114, 0.009640,-0.024116,-0.037539;;, - 109;4; -0.996912, 0.008659,-0.049619,-0.037111;;, - 110;4; -0.995684, 0.007678,-0.075122,-0.036681;;, - 111;4; -0.994788, 0.006994,-0.092863,-0.036381;;, - 112;4; -0.994407, 0.006759,-0.098958,-0.036275;;, - 113;4; -0.994301, 0.006876,-0.095847,-0.036318;;, - 114;4; -0.994200, 0.007231,-0.086457,-0.036455;;, - 115;4; -0.994107, 0.007818,-0.070972,-0.036684;;, - 116;4; -0.994024, 0.008611,-0.050073,-0.036994;;, - 117;4; -0.993951, 0.009561,-0.025046,-0.037367;;, - 118;4; -0.993891, 0.010596, 0.002231,-0.037774;;, - 119;4; -0.993843, 0.011631, 0.029508,-0.038181;;, - 120;4; -0.993807, 0.012581, 0.054535,-0.038555;;, - 121;4; -0.993783, 0.013374, 0.075434,-0.038868;;, - 122;4; -0.993767, 0.013962, 0.090919,-0.039100;;, - 123;4; -0.993759, 0.014319, 0.100309,-0.039240;;, - 124;4; -0.993757, 0.014437, 0.103420,-0.039287;;, - 125;4; -0.994095, 0.014197, 0.097014,-0.039204;;, - 126;4; -0.995077, 0.013500, 0.078371,-0.038961;;, - 127;4; -0.996491, 0.012497, 0.051571,-0.038613;;, - 128;4; -0.997904, 0.011494, 0.024771,-0.038264;;, - 129;4; -0.998887, 0.010797, 0.006127,-0.038022;;, - 130;4; -0.999224, 0.010557,-0.000279,-0.037939;;, - 131;4; -0.999224, 0.010557,-0.000279,-0.037939;;, - 132;4; -0.999224, 0.010557,-0.000279,-0.037939;;, - 133;4; -0.999224, 0.010557,-0.000279,-0.037939;;, - 134;4; -0.999224, 0.010557,-0.000279,-0.037939;;, - 135;4; -0.999224, 0.010557,-0.000279,-0.037939;;, - 136;4; -0.995675, 0.034507,-0.001189,-0.037807;;, - 137;4; -0.985676, 0.101940,-0.003750,-0.037435;;, - 138;4; -0.972838, 0.188502,-0.007038,-0.036958;;, - 139;4; -0.962840, 0.255921,-0.009599,-0.036587;;, - 140;4; -0.959291, 0.279862,-0.010509,-0.036455;;, - 141;4; -0.959683, 0.277217,-0.010408,-0.036470;;, - 142;4; -0.960868, 0.269222,-0.010104,-0.036514;;, - 143;4; -0.962840, 0.255919,-0.009599,-0.036587;;, - 144;4; -0.965558, 0.237587,-0.008903,-0.036688;;, - 145;4; -0.968937, 0.214805,-0.008037,-0.036814;;, - 146;4; -0.972839, 0.188493,-0.007038,-0.036958;;, - 147;4; -0.977079, 0.159901,-0.005952,-0.037116;;, - 148;4; -0.981436, 0.130518,-0.004836,-0.037278;;, - 149;4; -0.985676, 0.101926,-0.003750,-0.037435;;, - 150;4; -0.989578, 0.075614,-0.002750,-0.037580;;, - 151;4; -0.992956, 0.052832,-0.001885,-0.037706;;, - 152;4; -0.995675, 0.034500,-0.001189,-0.037807;;, - 153;4; -0.997647, 0.021197,-0.000683,-0.037880;;, - 154;4; -0.998832, 0.013202,-0.000380,-0.037924;;, - 155;4; -0.999224, 0.010557,-0.000279,-0.037939;;; - } - AnimationKey { //Scale - 1; - 156; - 0;3; 1.000000, 1.000000, 1.000000;;, - 1;3; 1.000000, 1.000000, 1.000000;;, - 2;3; 1.000000, 1.000000, 1.000000;;, - 3;3; 1.000000, 1.000000, 1.000000;;, - 4;3; 1.000000, 1.000000, 1.000000;;, - 5;3; 1.000000, 1.000000, 1.000000;;, - 6;3; 1.000000, 1.000000, 1.000000;;, - 7;3; 1.000000, 1.000000, 1.000000;;, - 8;3; 1.000000, 1.000000, 1.000000;;, - 9;3; 1.000000, 1.000000, 1.000000;;, - 10;3; 1.000000, 1.000000, 1.000000;;, - 11;3; 1.000000, 1.000000, 1.000000;;, - 12;3; 1.000000, 1.000000, 1.000000;;, - 13;3; 1.000000, 1.000000, 1.000000;;, - 14;3; 1.000000, 1.000000, 1.000000;;, - 15;3; 1.000000, 1.000000, 1.000000;;, - 16;3; 1.000000, 1.000000, 1.000000;;, - 17;3; 1.000000, 1.000000, 1.000000;;, - 18;3; 1.000000, 1.000000, 1.000000;;, - 19;3; 1.000000, 1.000000, 1.000000;;, - 20;3; 1.000000, 1.000000, 1.000000;;, - 21;3; 1.000000, 1.000000, 1.000000;;, - 22;3; 1.000000, 1.000000, 1.000000;;, - 23;3; 1.000000, 1.000000, 1.000000;;, - 24;3; 1.000000, 1.000000, 1.000000;;, - 25;3; 1.000000, 1.000000, 1.000000;;, - 26;3; 1.000000, 1.000000, 1.000000;;, - 27;3; 1.000000, 1.000000, 1.000000;;, - 28;3; 1.000000, 1.000000, 1.000000;;, - 29;3; 1.000000, 1.000000, 1.000000;;, - 30;3; 1.000000, 1.000000, 1.000000;;, - 31;3; 1.000000, 1.000000, 1.000000;;, - 32;3; 1.000000, 1.000000, 1.000000;;, - 33;3; 1.000000, 1.000000, 1.000000;;, - 34;3; 1.000000, 1.000000, 1.000000;;, - 35;3; 1.000000, 1.000000, 1.000000;;, - 36;3; 1.000000, 1.000000, 1.000000;;, - 37;3; 1.000000, 1.000000, 1.000000;;, - 38;3; 1.000000, 1.000000, 1.000000;;, - 39;3; 1.000000, 1.000000, 1.000000;;, - 40;3; 1.000000, 1.000000, 1.000000;;, - 41;3; 1.000000, 1.000000, 1.000000;;, - 42;3; 1.000000, 1.000000, 1.000000;;, - 43;3; 1.000000, 1.000000, 1.000000;;, - 44;3; 1.000000, 1.000000, 1.000000;;, - 45;3; 1.000000, 1.000000, 1.000000;;, - 46;3; 1.000000, 1.000000, 1.000000;;, - 47;3; 1.000000, 1.000000, 1.000000;;, - 48;3; 1.000000, 1.000000, 1.000000;;, - 49;3; 1.000000, 1.000000, 1.000000;;, - 50;3; 1.000000, 1.000000, 1.000000;;, - 51;3; 1.000000, 1.000000, 1.000000;;, - 52;3; 1.000000, 1.000000, 1.000000;;, - 53;3; 1.000000, 1.000000, 1.000000;;, - 54;3; 1.000000, 1.000000, 1.000000;;, - 55;3; 1.000000, 1.000000, 1.000000;;, - 56;3; 1.000000, 1.000000, 1.000000;;, - 57;3; 1.000000, 1.000000, 1.000000;;, - 58;3; 1.000000, 1.000000, 1.000000;;, - 59;3; 1.000000, 1.000000, 1.000000;;, - 60;3; 1.000000, 1.000000, 1.000000;;, - 61;3; 1.000000, 1.000000, 1.000000;;, - 62;3; 1.000000, 1.000000, 1.000000;;, - 63;3; 1.000000, 1.000000, 1.000000;;, - 64;3; 1.000000, 1.000000, 1.000000;;, - 65;3; 1.000000, 1.000000, 1.000000;;, - 66;3; 1.000000, 1.000000, 1.000000;;, - 67;3; 1.000000, 1.000000, 1.000000;;, - 68;3; 1.000000, 1.000000, 1.000000;;, - 69;3; 1.000000, 1.000000, 1.000000;;, - 70;3; 1.000000, 1.000000, 1.000000;;, - 71;3; 1.000000, 1.000000, 1.000000;;, - 72;3; 1.000000, 1.000000, 1.000000;;, - 73;3; 1.000000, 1.000000, 1.000000;;, - 74;3; 1.000000, 1.000000, 1.000000;;, - 75;3; 1.000000, 1.000000, 1.000000;;, - 76;3; 1.000000, 1.000000, 1.000000;;, - 77;3; 1.000000, 1.000000, 1.000000;;, - 78;3; 1.000000, 1.000000, 1.000000;;, - 79;3; 1.000000, 1.000000, 1.000000;;, - 80;3; 1.000000, 1.000000, 1.000000;;, - 81;3; 1.000000, 1.000000, 1.000000;;, - 82;3; 1.000000, 1.000000, 1.000000;;, - 83;3; 1.000000, 1.000000, 1.000000;;, - 84;3; 1.000000, 1.000000, 1.000000;;, - 85;3; 1.000000, 1.000000, 1.000000;;, - 86;3; 1.000000, 1.000000, 1.000000;;, - 87;3; 1.000000, 1.000000, 1.000000;;, - 88;3; 1.000000, 1.000000, 1.000000;;, - 89;3; 1.000000, 1.000000, 1.000000;;, - 90;3; 1.000000, 1.000000, 1.000000;;, - 91;3; 1.000000, 1.000000, 1.000000;;, - 92;3; 1.000000, 1.000000, 1.000000;;, - 93;3; 1.000000, 1.000000, 1.000000;;, - 94;3; 1.000000, 1.000000, 1.000000;;, - 95;3; 1.000000, 1.000000, 1.000000;;, - 96;3; 1.000000, 1.000000, 1.000000;;, - 97;3; 1.000000, 1.000000, 1.000000;;, - 98;3; 1.000000, 1.000000, 1.000000;;, - 99;3; 1.000000, 1.000000, 1.000000;;, - 100;3; 1.000000, 1.000000, 1.000000;;, - 101;3; 1.000000, 1.000000, 1.000000;;, - 102;3; 1.000000, 1.000000, 1.000000;;, - 103;3; 1.000000, 1.000000, 1.000000;;, - 104;3; 1.000000, 1.000000, 1.000000;;, - 105;3; 1.000000, 1.000000, 1.000000;;, - 106;3; 1.000000, 1.000000, 1.000000;;, - 107;3; 1.000000, 1.000000, 1.000000;;, - 108;3; 1.000000, 1.000000, 1.000000;;, - 109;3; 1.000000, 1.000000, 1.000000;;, - 110;3; 1.000000, 1.000000, 1.000000;;, - 111;3; 1.000000, 1.000000, 1.000000;;, - 112;3; 1.000000, 1.000000, 1.000000;;, - 113;3; 1.000000, 1.000000, 1.000000;;, - 114;3; 1.000000, 1.000000, 1.000000;;, - 115;3; 1.000000, 1.000000, 1.000000;;, - 116;3; 1.000000, 1.000000, 1.000000;;, - 117;3; 1.000000, 1.000000, 1.000000;;, - 118;3; 1.000000, 1.000000, 1.000000;;, - 119;3; 1.000000, 1.000000, 1.000000;;, - 120;3; 1.000000, 1.000000, 1.000000;;, - 121;3; 1.000000, 1.000000, 1.000000;;, - 122;3; 1.000000, 1.000000, 1.000000;;, - 123;3; 1.000000, 1.000000, 1.000000;;, - 124;3; 1.000000, 1.000000, 1.000000;;, - 125;3; 1.000000, 1.000000, 1.000000;;, - 126;3; 1.000000, 1.000000, 1.000000;;, - 127;3; 1.000000, 1.000000, 1.000000;;, - 128;3; 1.000000, 1.000000, 1.000000;;, - 129;3; 1.000000, 1.000000, 1.000000;;, - 130;3; 1.000000, 1.000000, 1.000000;;, - 131;3; 1.000000, 1.000000, 1.000000;;, - 132;3; 1.000000, 1.000000, 1.000000;;, - 133;3; 1.000000, 1.000000, 1.000000;;, - 134;3; 1.000000, 1.000000, 1.000000;;, - 135;3; 1.000000, 1.000000, 1.000000;;, - 136;3; 1.000000, 1.000000, 1.000000;;, - 137;3; 1.000000, 1.000000, 1.000000;;, - 138;3; 1.000000, 1.000000, 1.000000;;, - 139;3; 1.000000, 1.000000, 1.000000;;, - 140;3; 1.000000, 1.000000, 1.000000;;, - 141;3; 1.000000, 1.000000, 1.000000;;, - 142;3; 1.000000, 1.000000, 1.000000;;, - 143;3; 1.000000, 1.000000, 1.000000;;, - 144;3; 1.000000, 1.000000, 1.000000;;, - 145;3; 1.000000, 1.000000, 1.000000;;, - 146;3; 1.000000, 1.000000, 1.000000;;, - 147;3; 1.000000, 1.000000, 1.000000;;, - 148;3; 1.000000, 1.000000, 1.000000;;, - 149;3; 1.000000, 1.000000, 1.000000;;, - 150;3; 1.000000, 1.000000, 1.000000;;, - 151;3; 1.000000, 1.000000, 1.000000;;, - 152;3; 1.000000, 1.000000, 1.000000;;, - 153;3; 1.000000, 1.000000, 1.000000;;, - 154;3; 1.000000, 1.000000, 1.000000;;, - 155;3; 1.000000, 1.000000, 1.000000;;; - } - } - Animation { - {Armature_zubi} - AnimationKey { //Position - 2; - 156; - 0;3; 0.205805, 1.974131,-0.481359;;, - 1;3; 0.205805, 1.974131,-0.481359;;, - 2;3; 0.205805, 1.974131,-0.481359;;, - 3;3; 0.205805, 1.974131,-0.481359;;, - 4;3; 0.205805, 1.974131,-0.481359;;, - 5;3; 0.205805, 1.974131,-0.481359;;, - 6;3; 0.205805, 1.974131,-0.481359;;, - 7;3; 0.205805, 1.974131,-0.481359;;, - 8;3; 0.205805, 1.974131,-0.481359;;, - 9;3; 0.205805, 1.974131,-0.481359;;, - 10;3; 0.205805, 1.974131,-0.481359;;, - 11;3; 0.205805, 1.974131,-0.481359;;, - 12;3; 0.205805, 1.974131,-0.481359;;, - 13;3; 0.205805, 1.974131,-0.481359;;, - 14;3; 0.205805, 1.974131,-0.481359;;, - 15;3; 0.205805, 1.974131,-0.481359;;, - 16;3; 0.205805, 1.974131,-0.481359;;, - 17;3; 0.205805, 1.974131,-0.481359;;, - 18;3; 0.205805, 1.974131,-0.481359;;, - 19;3; 0.205805, 1.974131,-0.481359;;, - 20;3; 0.205805, 1.974131,-0.481359;;, - 21;3; 0.205805, 1.974131,-0.481359;;, - 22;3; 0.205805, 1.974131,-0.481359;;, - 23;3; 0.205805, 1.974131,-0.481359;;, - 24;3; 0.205805, 1.974131,-0.481359;;, - 25;3; 0.205805, 1.974131,-0.481359;;, - 26;3; 0.205805, 1.974131,-0.481359;;, - 27;3; 0.205806, 1.974131,-0.481358;;, - 28;3; 0.205805, 1.974131,-0.481358;;, - 29;3; 0.205805, 1.974131,-0.481359;;, - 30;3; 0.205805, 1.974131,-0.481358;;, - 31;3; 0.205806, 1.974131,-0.481358;;, - 32;3; 0.205805, 1.974131,-0.481358;;, - 33;3; 0.205805, 1.974131,-0.481358;;, - 34;3; 0.205805, 1.974131,-0.481358;;, - 35;3; 0.205805, 1.974131,-0.481358;;, - 36;3; 0.205805, 1.974131,-0.481358;;, - 37;3; 0.205805, 1.974131,-0.481358;;, - 38;3; 0.205805, 1.974131,-0.481358;;, - 39;3; 0.205805, 1.974131,-0.481359;;, - 40;3; 0.205805, 1.974131,-0.481358;;, - 41;3; 0.205805, 1.974131,-0.481359;;, - 42;3; 0.205805, 1.974131,-0.481358;;, - 43;3; 0.205805, 1.974131,-0.481358;;, - 44;3; 0.205805, 1.974131,-0.481359;;, - 45;3; 0.205806, 1.974131,-0.481359;;, - 46;3; 0.205805, 1.974131,-0.481358;;, - 47;3; 0.205805, 1.974131,-0.481359;;, - 48;3; 0.205805, 1.974131,-0.481359;;, - 49;3; 0.205805, 1.974131,-0.481359;;, - 50;3; 0.205805, 1.974131,-0.481359;;, - 51;3; 0.205805, 1.974131,-0.481359;;, - 52;3; 0.205805, 1.974131,-0.481359;;, - 53;3; 0.205805, 1.974131,-0.481359;;, - 54;3; 0.205805, 1.974131,-0.481359;;, - 55;3; 0.205805, 1.974131,-0.481359;;, - 56;3; 0.205805, 1.974131,-0.481359;;, - 57;3; 0.205805, 1.974131,-0.481359;;, - 58;3; 0.205805, 1.974131,-0.481359;;, - 59;3; 0.205805, 1.974131,-0.481359;;, - 60;3; 0.205805, 1.974131,-0.481358;;, - 61;3; 0.205805, 1.974131,-0.481359;;, - 62;3; 0.205805, 1.974131,-0.481359;;, - 63;3; 0.205805, 1.974131,-0.481359;;, - 64;3; 0.205805, 1.974131,-0.481359;;, - 65;3; 0.205805, 1.974131,-0.481359;;, - 66;3; 0.205805, 1.974131,-0.481359;;, - 67;3; 0.205805, 1.974131,-0.481359;;, - 68;3; 0.205805, 1.974131,-0.481359;;, - 69;3; 0.205805, 1.974131,-0.481359;;, - 70;3; 0.205805, 1.974131,-0.481359;;, - 71;3; 0.205805, 1.974131,-0.481359;;, - 72;3; 0.205805, 1.974131,-0.481358;;, - 73;3; 0.205805, 1.974131,-0.481358;;, - 74;3; 0.205805, 1.974131,-0.481359;;, - 75;3; 0.205805, 1.974131,-0.481359;;, - 76;3; 0.205805, 1.974131,-0.481359;;, - 77;3; 0.205805, 1.974131,-0.481359;;, - 78;3; 0.205805, 1.974131,-0.481359;;, - 79;3; 0.205805, 1.974131,-0.481359;;, - 80;3; 0.205805, 1.974131,-0.481358;;, - 81;3; 0.205805, 1.974131,-0.481359;;, - 82;3; 0.205805, 1.974131,-0.481359;;, - 83;3; 0.205805, 1.974131,-0.481359;;, - 84;3; 0.205805, 1.974131,-0.481358;;, - 85;3; 0.205805, 1.974131,-0.481359;;, - 86;3; 0.205805, 1.974131,-0.481358;;, - 87;3; 0.205805, 1.974131,-0.481359;;, - 88;3; 0.205805, 1.974131,-0.481359;;, - 89;3; 0.205805, 1.974131,-0.481358;;, - 90;3; 0.205805, 1.974131,-0.481359;;, - 91;3; 0.205805, 1.974131,-0.481359;;, - 92;3; 0.205805, 1.974131,-0.481359;;, - 93;3; 0.205806, 1.974131,-0.481359;;, - 94;3; 0.205805, 1.974131,-0.481359;;, - 95;3; 0.205806, 1.974131,-0.481359;;, - 96;3; 0.205805, 1.974131,-0.481359;;, - 97;3; 0.205805, 1.974131,-0.481358;;, - 98;3; 0.205805, 1.974131,-0.481359;;, - 99;3; 0.205805, 1.974131,-0.481359;;, - 100;3; 0.205805, 1.974131,-0.481359;;, - 101;3; 0.205805, 1.974131,-0.481359;;, - 102;3; 0.205805, 1.974131,-0.481359;;, - 103;3; 0.205805, 1.974131,-0.481359;;, - 104;3; 0.205805, 1.974131,-0.481359;;, - 105;3; 0.205805, 1.974131,-0.481359;;, - 106;3; 0.205805, 1.974131,-0.481359;;, - 107;3; 0.205805, 1.974131,-0.481359;;, - 108;3; 0.205805, 1.974131,-0.481359;;, - 109;3; 0.205805, 1.974131,-0.481359;;, - 110;3; 0.205805, 1.974131,-0.481358;;, - 111;3; 0.205805, 1.974131,-0.481359;;, - 112;3; 0.205805, 1.974131,-0.481359;;, - 113;3; 0.205805, 1.974131,-0.481359;;, - 114;3; 0.205805, 1.974131,-0.481358;;, - 115;3; 0.205805, 1.974131,-0.481359;;, - 116;3; 0.205805, 1.974131,-0.481358;;, - 117;3; 0.205805, 1.974131,-0.481359;;, - 118;3; 0.205805, 1.974131,-0.481359;;, - 119;3; 0.205805, 1.974131,-0.481358;;, - 120;3; 0.205805, 1.974131,-0.481359;;, - 121;3; 0.205805, 1.974131,-0.481359;;, - 122;3; 0.205805, 1.974131,-0.481359;;, - 123;3; 0.205806, 1.974131,-0.481359;;, - 124;3; 0.205805, 1.974131,-0.481359;;, - 125;3; 0.205806, 1.974131,-0.481359;;, - 126;3; 0.205805, 1.974131,-0.481359;;, - 127;3; 0.205805, 1.974131,-0.481358;;, - 128;3; 0.205805, 1.974131,-0.481359;;, - 129;3; 0.205805, 1.974131,-0.481359;;, - 130;3; 0.205805, 1.974131,-0.481359;;, - 131;3; 0.205805, 1.974131,-0.481359;;, - 132;3; 0.205805, 1.974131,-0.481359;;, - 133;3; 0.205805, 1.974131,-0.481359;;, - 134;3; 0.205805, 1.974131,-0.481359;;, - 135;3; 0.205805, 1.974131,-0.481359;;, - 136;3; 0.205805, 1.974131,-0.481359;;, - 137;3; 0.205805, 1.974131,-0.481358;;, - 138;3; 0.205741, 1.973247,-0.469110;;, - 139;3; 0.205551, 1.970632,-0.432877;;, - 140;3; 0.205261, 1.966648,-0.377679;;, - 141;3; 0.204933, 1.962130,-0.315077;;, - 142;3; 0.204643, 1.958146,-0.259887;;, - 143;3; 0.204453, 1.955532,-0.223662;;, - 144;3; 0.204389, 1.954648,-0.211417;;, - 145;3; 0.204415, 1.955004,-0.216358;;, - 146;3; 0.204494, 1.956080,-0.231258;;, - 147;3; 0.204621, 1.957843,-0.255685;;, - 148;3; 0.204792, 1.960192,-0.288231;;, - 149;3; 0.204992, 1.962942,-0.326329;;, - 150;3; 0.205202, 1.965835,-0.366412;;, - 151;3; 0.205402, 1.968585,-0.404515;;, - 152;3; 0.205572, 1.970935,-0.437071;;, - 153;3; 0.205701, 1.972699,-0.461508;;, - 154;3; 0.205779, 1.973774,-0.476414;;, - 155;3; 0.205805, 1.974131,-0.481359;;; - } - AnimationKey { //Rotation - 0; - 156; - 0;4; -0.998675, 0.034758,-0.001198,-0.037921;;, - 1;4; -0.998675, 0.034758,-0.001198,-0.037921;;, - 2;4; -0.998675, 0.034758,-0.001198,-0.037921;;, - 3;4; -0.998675, 0.034758,-0.001198,-0.037921;;, - 4;4; -0.998675, 0.034758,-0.001198,-0.037921;;, - 5;4; -0.998675, 0.034758,-0.001198,-0.037921;;, - 6;4; -0.998675, 0.034758,-0.001198,-0.037921;;, - 7;4; -0.998675, 0.034758,-0.001198,-0.037921;;, - 8;4; -0.998675, 0.034758,-0.001198,-0.037921;;, - 9;4; -0.998675, 0.034758,-0.001198,-0.037921;;, - 10;4; -0.998675, 0.034758,-0.001198,-0.037921;;, - 11;4; -0.998675, 0.034758,-0.001198,-0.037921;;, - 12;4; -0.998675, 0.034758,-0.001198,-0.037921;;, - 13;4; -0.998675, 0.034758,-0.001198,-0.037921;;, - 14;4; -0.998675, 0.034758,-0.001198,-0.037921;;, - 15;4; -0.998675, 0.034758,-0.001198,-0.037921;;, - 16;4; -0.998675, 0.034758,-0.001198,-0.037921;;, - 17;4; -0.998675, 0.034758,-0.001198,-0.037921;;, - 18;4; -0.998675, 0.034758,-0.001198,-0.037921;;, - 19;4; -0.998675, 0.034758,-0.001198,-0.037921;;, - 20;4; -0.998675, 0.034758,-0.001198,-0.037921;;, - 21;4; -0.998675, 0.034758,-0.001198,-0.037921;;, - 22;4; -0.998675, 0.034758,-0.001198,-0.037921;;, - 23;4; -0.998675, 0.034758,-0.001198,-0.037921;;, - 24;4; -0.998675, 0.034758,-0.001198,-0.037921;;, - 25;4; -0.998675, 0.034758,-0.001198,-0.037921;;, - 26;4; -0.998675, 0.034758,-0.001198,-0.037921;;, - 27;4; -0.998675, 0.034758,-0.001198,-0.037921;;, - 28;4; -0.998675, 0.034758,-0.001198,-0.037921;;, - 29;4; -0.998675, 0.034758,-0.001198,-0.037921;;, - 30;4; -0.998675, 0.034758,-0.001198,-0.037921;;, - 31;4; -0.998675, 0.034758,-0.001198,-0.037921;;, - 32;4; -0.998675, 0.034758,-0.001198,-0.037921;;, - 33;4; -0.998675, 0.034758,-0.001198,-0.037921;;, - 34;4; -0.998675, 0.034758,-0.001198,-0.037921;;, - 35;4; -0.998675, 0.034758,-0.001198,-0.037921;;, - 36;4; -0.998675, 0.034758,-0.001198,-0.037921;;, - 37;4; -0.998675, 0.034758,-0.001198,-0.037921;;, - 38;4; -0.998675, 0.034758,-0.001198,-0.037921;;, - 39;4; -0.998675, 0.034758,-0.001198,-0.037921;;, - 40;4; -0.998675, 0.034758,-0.001198,-0.037921;;, - 41;4; -0.998675, 0.034758,-0.001198,-0.037921;;, - 42;4; -0.998675, 0.034758,-0.001198,-0.037921;;, - 43;4; -0.998675, 0.034758,-0.001198,-0.037921;;, - 44;4; -0.998675, 0.034758,-0.001198,-0.037921;;, - 45;4; -0.998675, 0.034758,-0.001198,-0.037921;;, - 46;4; -0.998675, 0.034758,-0.001198,-0.037921;;, - 47;4; -0.998675, 0.034758,-0.001198,-0.037921;;, - 48;4; -0.998675, 0.034758,-0.001198,-0.037921;;, - 49;4; -0.998675, 0.034758,-0.001198,-0.037921;;, - 50;4; -0.998675, 0.034758,-0.001198,-0.037921;;, - 51;4; -0.998675, 0.034758,-0.001198,-0.037921;;, - 52;4; -0.998675, 0.034758,-0.001198,-0.037921;;, - 53;4; -0.998675, 0.034758,-0.001198,-0.037921;;, - 54;4; -0.998675, 0.034758,-0.001198,-0.037921;;, - 55;4; -0.998675, 0.034758,-0.001198,-0.037921;;, - 56;4; -0.998675, 0.034758,-0.001198,-0.037921;;, - 57;4; -0.998675, 0.034758,-0.001198,-0.037921;;, - 58;4; -0.998675, 0.034758,-0.001198,-0.037921;;, - 59;4; -0.998675, 0.034758,-0.001198,-0.037921;;, - 60;4; -0.998675, 0.034758,-0.001198,-0.037921;;, - 61;4; -0.998675, 0.034758,-0.001198,-0.037921;;, - 62;4; -0.998675, 0.034758,-0.001198,-0.037921;;, - 63;4; -0.998675, 0.034758,-0.001198,-0.037921;;, - 64;4; -0.998675, 0.034758,-0.001198,-0.037921;;, - 65;4; -0.998675, 0.034758,-0.001198,-0.037921;;, - 66;4; -0.998675, 0.034758,-0.001198,-0.037921;;, - 67;4; -0.998675, 0.034758,-0.001198,-0.037921;;, - 68;4; -0.998675, 0.034758,-0.001198,-0.037921;;, - 69;4; -0.998675, 0.034758,-0.001198,-0.037921;;, - 70;4; -0.998675, 0.034758,-0.001198,-0.037921;;, - 71;4; -0.998675, 0.034758,-0.001198,-0.037921;;, - 72;4; -0.998675, 0.034758,-0.001198,-0.037921;;, - 73;4; -0.998675, 0.034758,-0.001198,-0.037921;;, - 74;4; -0.998675, 0.034758,-0.001198,-0.037921;;, - 75;4; -0.998675, 0.034758,-0.001198,-0.037921;;, - 76;4; -0.998675, 0.034758,-0.001198,-0.037921;;, - 77;4; -0.998675, 0.034758,-0.001198,-0.037921;;, - 78;4; -0.998675, 0.034758,-0.001198,-0.037921;;, - 79;4; -0.998675, 0.034758,-0.001198,-0.037921;;, - 80;4; -0.998675, 0.034758,-0.001198,-0.037921;;, - 81;4; -0.998675, 0.034758,-0.001198,-0.037921;;, - 82;4; -0.998675, 0.034758,-0.001198,-0.037921;;, - 83;4; -0.998675, 0.034758,-0.001198,-0.037921;;, - 84;4; -0.998675, 0.034758,-0.001198,-0.037921;;, - 85;4; -0.998675, 0.034758,-0.001198,-0.037921;;, - 86;4; -0.998675, 0.034758,-0.001198,-0.037921;;, - 87;4; -0.998675, 0.034758,-0.001198,-0.037921;;, - 88;4; -0.998675, 0.034758,-0.001198,-0.037921;;, - 89;4; -0.998675, 0.034758,-0.001198,-0.037921;;, - 90;4; -0.998675, 0.034758,-0.001198,-0.037921;;, - 91;4; -0.998675, 0.034758,-0.001198,-0.037921;;, - 92;4; -0.998675, 0.034758,-0.001198,-0.037921;;, - 93;4; -0.998675, 0.034758,-0.001198,-0.037921;;, - 94;4; -0.998675, 0.034758,-0.001198,-0.037921;;, - 95;4; -0.998675, 0.034758,-0.001198,-0.037921;;, - 96;4; -0.998675, 0.034758,-0.001198,-0.037921;;, - 97;4; -0.998675, 0.034758,-0.001198,-0.037921;;, - 98;4; -0.998675, 0.034758,-0.001198,-0.037921;;, - 99;4; -0.998675, 0.034758,-0.001198,-0.037921;;, - 100;4; -0.998675, 0.034758,-0.001198,-0.037921;;, - 101;4; -0.998675, 0.034758,-0.001198,-0.037921;;, - 102;4; -0.998675, 0.034758,-0.001198,-0.037921;;, - 103;4; -0.998675, 0.034758,-0.001198,-0.037921;;, - 104;4; -0.998675, 0.034758,-0.001198,-0.037921;;, - 105;4; -0.998675, 0.034758,-0.001198,-0.037921;;, - 106;4; -0.998675, 0.034758,-0.001198,-0.037921;;, - 107;4; -0.998675, 0.034758,-0.001198,-0.037921;;, - 108;4; -0.998675, 0.034758,-0.001198,-0.037921;;, - 109;4; -0.998675, 0.034758,-0.001198,-0.037921;;, - 110;4; -0.998675, 0.034758,-0.001198,-0.037921;;, - 111;4; -0.998675, 0.034758,-0.001198,-0.037921;;, - 112;4; -0.998675, 0.034758,-0.001198,-0.037921;;, - 113;4; -0.998675, 0.034758,-0.001198,-0.037921;;, - 114;4; -0.998675, 0.034758,-0.001198,-0.037921;;, - 115;4; -0.998675, 0.034758,-0.001198,-0.037921;;, - 116;4; -0.998675, 0.034758,-0.001198,-0.037921;;, - 117;4; -0.998675, 0.034758,-0.001198,-0.037921;;, - 118;4; -0.998675, 0.034758,-0.001198,-0.037921;;, - 119;4; -0.998675, 0.034758,-0.001198,-0.037921;;, - 120;4; -0.998675, 0.034758,-0.001198,-0.037921;;, - 121;4; -0.998675, 0.034758,-0.001198,-0.037921;;, - 122;4; -0.998675, 0.034758,-0.001198,-0.037921;;, - 123;4; -0.998675, 0.034758,-0.001198,-0.037921;;, - 124;4; -0.998675, 0.034758,-0.001198,-0.037921;;, - 125;4; -0.998675, 0.034758,-0.001198,-0.037921;;, - 126;4; -0.998675, 0.034758,-0.001198,-0.037921;;, - 127;4; -0.998675, 0.034758,-0.001198,-0.037921;;, - 128;4; -0.998675, 0.034758,-0.001198,-0.037921;;, - 129;4; -0.998675, 0.034758,-0.001198,-0.037921;;, - 130;4; -0.998675, 0.034758,-0.001198,-0.037921;;, - 131;4; -0.998675, 0.034758,-0.001198,-0.037921;;, - 132;4; -0.998675, 0.034758,-0.001198,-0.037921;;, - 133;4; -0.998675, 0.034758,-0.001198,-0.037921;;, - 134;4; -0.998675, 0.034758,-0.001198,-0.037921;;, - 135;4; -0.998675, 0.034758,-0.001198,-0.037921;;, - 136;4; -0.983274,-0.110884, 0.004330,-0.037318;;, - 137;4; -0.965858,-0.256281, 0.009848,-0.036639;;, - 138;4; -0.962184,-0.231571, 0.008909,-0.036503;;, - 139;4; -0.958140,-0.158361, 0.006129,-0.036358;;, - 140;4; -0.954044,-0.046823, 0.001894,-0.036216;;, - 141;4; -0.950374, 0.079679,-0.002909,-0.036092;;, - 142;4; -0.947594, 0.191226,-0.007145,-0.036000;;, - 143;4; -0.945944, 0.264464,-0.009926,-0.035947;;, - 144;4; -0.945422, 0.289230,-0.010866,-0.035930;;, - 145;4; -0.946397, 0.284568,-0.010689,-0.035966;;, - 146;4; -0.949337, 0.270516,-0.010155,-0.036076;;, - 147;4; -0.954156, 0.247481,-0.009280,-0.036256;;, - 148;4; -0.960578, 0.216794,-0.008114,-0.036496;;, - 149;4; -0.968095, 0.180879,-0.006750,-0.036777;;, - 150;4; -0.976003, 0.143096,-0.005314,-0.037073;;, - 151;4; -0.983520, 0.107183,-0.003950,-0.037354;;, - 152;4; -0.989941, 0.076500,-0.002784,-0.037594;;, - 153;4; -0.994761, 0.053469,-0.001909,-0.037774;;, - 154;4; -0.997701, 0.039419,-0.001375,-0.037884;;, - 155;4; -0.998675, 0.034758,-0.001198,-0.037921;;; - } - AnimationKey { //Scale - 1; - 156; - 0;3; 1.000000, 1.000000, 1.000000;;, - 1;3; 1.000000, 1.000000, 1.000000;;, - 2;3; 1.000000, 1.000000, 1.000000;;, - 3;3; 1.000000, 1.000000, 1.000000;;, - 4;3; 1.000000, 1.000000, 1.000000;;, - 5;3; 1.000000, 1.000000, 1.000000;;, - 6;3; 1.000000, 1.000000, 1.000000;;, - 7;3; 1.000000, 1.000000, 1.000000;;, - 8;3; 1.000000, 1.000000, 1.000000;;, - 9;3; 1.000000, 1.000000, 1.000000;;, - 10;3; 1.000000, 1.000000, 1.000000;;, - 11;3; 1.000000, 1.000000, 1.000000;;, - 12;3; 1.000000, 1.000000, 1.000000;;, - 13;3; 1.000000, 1.000000, 1.000000;;, - 14;3; 1.000000, 1.000000, 1.000000;;, - 15;3; 1.000000, 1.000000, 1.000000;;, - 16;3; 1.000000, 1.000000, 1.000000;;, - 17;3; 1.000000, 1.000000, 1.000000;;, - 18;3; 1.000000, 1.000000, 1.000000;;, - 19;3; 1.000000, 1.000000, 1.000000;;, - 20;3; 1.000000, 1.000000, 1.000000;;, - 21;3; 1.000000, 1.000000, 1.000000;;, - 22;3; 1.000000, 1.000000, 1.000000;;, - 23;3; 1.000000, 1.000000, 1.000000;;, - 24;3; 1.000000, 1.000000, 1.000000;;, - 25;3; 1.000000, 1.000000, 1.000000;;, - 26;3; 1.000000, 1.000000, 1.000000;;, - 27;3; 1.000000, 1.000000, 1.000000;;, - 28;3; 1.000000, 1.000000, 1.000000;;, - 29;3; 1.000000, 1.000000, 1.000000;;, - 30;3; 1.000000, 1.000000, 1.000000;;, - 31;3; 1.000000, 1.000000, 1.000000;;, - 32;3; 1.000000, 1.000000, 1.000000;;, - 33;3; 1.000000, 1.000000, 1.000000;;, - 34;3; 1.000000, 1.000000, 1.000000;;, - 35;3; 1.000000, 1.000000, 1.000000;;, - 36;3; 1.000000, 1.000000, 1.000000;;, - 37;3; 1.000000, 1.000000, 1.000000;;, - 38;3; 1.000000, 1.000000, 1.000000;;, - 39;3; 1.000000, 1.000000, 1.000000;;, - 40;3; 1.000000, 1.000000, 1.000000;;, - 41;3; 1.000000, 1.000000, 1.000000;;, - 42;3; 1.000000, 1.000000, 1.000000;;, - 43;3; 1.000000, 1.000000, 1.000000;;, - 44;3; 1.000000, 1.000000, 1.000000;;, - 45;3; 1.000000, 1.000000, 1.000000;;, - 46;3; 1.000000, 1.000000, 1.000000;;, - 47;3; 1.000000, 1.000000, 1.000000;;, - 48;3; 1.000000, 1.000000, 1.000000;;, - 49;3; 1.000000, 1.000000, 1.000000;;, - 50;3; 1.000000, 1.000000, 1.000000;;, - 51;3; 1.000000, 1.000000, 1.000000;;, - 52;3; 1.000000, 1.000000, 1.000000;;, - 53;3; 1.000000, 1.000000, 1.000000;;, - 54;3; 1.000000, 1.000000, 1.000000;;, - 55;3; 1.000000, 1.000000, 1.000000;;, - 56;3; 1.000000, 1.000000, 1.000000;;, - 57;3; 1.000000, 1.000000, 1.000000;;, - 58;3; 1.000000, 1.000000, 1.000000;;, - 59;3; 1.000000, 1.000000, 1.000000;;, - 60;3; 1.000000, 1.000000, 1.000000;;, - 61;3; 1.000000, 1.000000, 1.000000;;, - 62;3; 1.000000, 1.000000, 1.000000;;, - 63;3; 1.000000, 1.000000, 1.000000;;, - 64;3; 1.000000, 1.000000, 1.000000;;, - 65;3; 1.000000, 1.000000, 1.000000;;, - 66;3; 1.000000, 1.000000, 1.000000;;, - 67;3; 1.000000, 1.000000, 1.000000;;, - 68;3; 1.000000, 1.000000, 1.000000;;, - 69;3; 1.000000, 1.000000, 1.000000;;, - 70;3; 1.000000, 1.000000, 1.000000;;, - 71;3; 1.000000, 1.000000, 1.000000;;, - 72;3; 1.000000, 1.000000, 1.000000;;, - 73;3; 1.000000, 1.000000, 1.000000;;, - 74;3; 1.000000, 1.000000, 1.000000;;, - 75;3; 1.000000, 1.000000, 1.000000;;, - 76;3; 1.000000, 1.000000, 1.000000;;, - 77;3; 1.000000, 1.000000, 1.000000;;, - 78;3; 1.000000, 1.000000, 1.000000;;, - 79;3; 1.000000, 1.000000, 1.000000;;, - 80;3; 1.000000, 1.000000, 1.000000;;, - 81;3; 1.000000, 1.000000, 1.000000;;, - 82;3; 1.000000, 1.000000, 1.000000;;, - 83;3; 1.000000, 1.000000, 1.000000;;, - 84;3; 1.000000, 1.000000, 1.000000;;, - 85;3; 1.000000, 1.000000, 1.000000;;, - 86;3; 1.000000, 1.000000, 1.000000;;, - 87;3; 1.000000, 1.000000, 1.000000;;, - 88;3; 1.000000, 1.000000, 1.000000;;, - 89;3; 1.000000, 1.000000, 1.000000;;, - 90;3; 1.000000, 1.000000, 1.000000;;, - 91;3; 1.000000, 1.000000, 1.000000;;, - 92;3; 1.000000, 1.000000, 1.000000;;, - 93;3; 1.000000, 1.000000, 1.000000;;, - 94;3; 1.000000, 1.000000, 1.000000;;, - 95;3; 1.000000, 1.000000, 1.000000;;, - 96;3; 1.000000, 1.000000, 1.000000;;, - 97;3; 1.000000, 1.000000, 1.000000;;, - 98;3; 1.000000, 1.000000, 1.000000;;, - 99;3; 1.000000, 1.000000, 1.000000;;, - 100;3; 1.000000, 1.000000, 1.000000;;, - 101;3; 1.000000, 1.000000, 1.000000;;, - 102;3; 1.000000, 1.000000, 1.000000;;, - 103;3; 1.000000, 1.000000, 1.000000;;, - 104;3; 1.000000, 1.000000, 1.000000;;, - 105;3; 1.000000, 1.000000, 1.000000;;, - 106;3; 1.000000, 1.000000, 1.000000;;, - 107;3; 1.000000, 1.000000, 1.000000;;, - 108;3; 1.000000, 1.000000, 1.000000;;, - 109;3; 1.000000, 1.000000, 1.000000;;, - 110;3; 1.000000, 1.000000, 1.000000;;, - 111;3; 1.000000, 1.000000, 1.000000;;, - 112;3; 1.000000, 1.000000, 1.000000;;, - 113;3; 1.000000, 1.000000, 1.000000;;, - 114;3; 1.000000, 1.000000, 1.000000;;, - 115;3; 1.000000, 1.000000, 1.000000;;, - 116;3; 1.000000, 1.000000, 1.000000;;, - 117;3; 1.000000, 1.000000, 1.000000;;, - 118;3; 1.000000, 1.000000, 1.000000;;, - 119;3; 1.000000, 1.000000, 1.000000;;, - 120;3; 1.000000, 1.000000, 1.000000;;, - 121;3; 1.000000, 1.000000, 1.000000;;, - 122;3; 1.000000, 1.000000, 1.000000;;, - 123;3; 1.000000, 1.000000, 1.000000;;, - 124;3; 1.000000, 1.000000, 1.000000;;, - 125;3; 1.000000, 1.000000, 1.000000;;, - 126;3; 1.000000, 1.000000, 1.000000;;, - 127;3; 1.000000, 1.000000, 1.000000;;, - 128;3; 1.000000, 1.000000, 1.000000;;, - 129;3; 1.000000, 1.000000, 1.000000;;, - 130;3; 1.000000, 1.000000, 1.000000;;, - 131;3; 1.000000, 1.000000, 1.000000;;, - 132;3; 1.000000, 1.000000, 1.000000;;, - 133;3; 1.000000, 1.000000, 1.000000;;, - 134;3; 1.000000, 1.000000, 1.000000;;, - 135;3; 1.000000, 1.000000, 1.000000;;, - 136;3; 1.000000, 1.000000, 1.000000;;, - 137;3; 1.000000, 1.000000, 1.000000;;, - 138;3; 1.000000, 1.000000, 1.000000;;, - 139;3; 1.000000, 1.000000, 1.000000;;, - 140;3; 1.000000, 1.000000, 1.000000;;, - 141;3; 1.000000, 1.000000, 1.000000;;, - 142;3; 1.000000, 1.000000, 1.000000;;, - 143;3; 1.000000, 1.000000, 1.000000;;, - 144;3; 1.000000, 1.000000, 1.000000;;, - 145;3; 1.000000, 1.000000, 1.000000;;, - 146;3; 1.000000, 1.000000, 1.000000;;, - 147;3; 1.000000, 1.000000, 1.000000;;, - 148;3; 1.000000, 1.000000, 1.000000;;, - 149;3; 1.000000, 1.000000, 1.000000;;, - 150;3; 1.000000, 1.000000, 1.000000;;, - 151;3; 1.000000, 1.000000, 1.000000;;, - 152;3; 1.000000, 1.000000, 1.000000;;, - 153;3; 1.000000, 1.000000, 1.000000;;, - 154;3; 1.000000, 1.000000, 1.000000;;, - 155;3; 1.000000, 1.000000, 1.000000;;; - } - } - Animation { - {Cube} - AnimationKey { //Position - 2; - 156; - 0;3; -0.137034,-0.235439, 6.856374;;, - 1;3; -0.137034,-0.235439, 6.856374;;, - 2;3; -0.137034,-0.235439, 6.856374;;, - 3;3; -0.137034,-0.235439, 6.856374;;, - 4;3; -0.137034,-0.235439, 6.856374;;, - 5;3; -0.137034,-0.235439, 6.856374;;, - 6;3; -0.137034,-0.235439, 6.856374;;, - 7;3; -0.137034,-0.235439, 6.856374;;, - 8;3; -0.137034,-0.235439, 6.856374;;, - 9;3; -0.137034,-0.235439, 6.856374;;, - 10;3; -0.137034,-0.235439, 6.856374;;, - 11;3; -0.137034,-0.235439, 6.856374;;, - 12;3; -0.137034,-0.235439, 6.856374;;, - 13;3; -0.137034,-0.235439, 6.856374;;, - 14;3; -0.137034,-0.235439, 6.856374;;, - 15;3; -0.137034,-0.235439, 6.856374;;, - 16;3; -0.137034,-0.235439, 6.856374;;, - 17;3; -0.137034,-0.235439, 6.856374;;, - 18;3; -0.137034,-0.235439, 6.856374;;, - 19;3; -0.137034,-0.235439, 6.856374;;, - 20;3; -0.137034,-0.235439, 6.856374;;, - 21;3; -0.137034,-0.235439, 6.856374;;, - 22;3; -0.137034,-0.235439, 6.856374;;, - 23;3; -0.137034,-0.235439, 6.856374;;, - 24;3; -0.137034,-0.235439, 6.856374;;, - 25;3; -0.137034,-0.235439, 6.856374;;, - 26;3; -0.137034,-0.235439, 6.856374;;, - 27;3; -0.137034,-0.235439, 6.856374;;, - 28;3; -0.137034,-0.235439, 6.856374;;, - 29;3; -0.137034,-0.235439, 6.856374;;, - 30;3; -0.137034,-0.235439, 6.856374;;, - 31;3; -0.137034,-0.235439, 6.856374;;, - 32;3; -0.137034,-0.235439, 6.856374;;, - 33;3; -0.137034,-0.235439, 6.856374;;, - 34;3; -0.137034,-0.235439, 6.856374;;, - 35;3; -0.137034,-0.235439, 6.856374;;, - 36;3; -0.137034,-0.235439, 6.856374;;, - 37;3; -0.137034,-0.235439, 6.856374;;, - 38;3; -0.137034,-0.235439, 6.856374;;, - 39;3; -0.137034,-0.235439, 6.856374;;, - 40;3; -0.137034,-0.235439, 6.856374;;, - 41;3; -0.137034,-0.235439, 6.856374;;, - 42;3; -0.137034,-0.235439, 6.856374;;, - 43;3; -0.137034,-0.235439, 6.856374;;, - 44;3; -0.137034,-0.235439, 6.856374;;, - 45;3; -0.137034,-0.235439, 6.856374;;, - 46;3; -0.137034,-0.235439, 6.856374;;, - 47;3; -0.137034,-0.235439, 6.856374;;, - 48;3; -0.137034,-0.235439, 6.856374;;, - 49;3; -0.137034,-0.235439, 6.856374;;, - 50;3; -0.137034,-0.235439, 6.856374;;, - 51;3; -0.137034,-0.235439, 6.856374;;, - 52;3; -0.137034,-0.235439, 6.856374;;, - 53;3; -0.137034,-0.235439, 6.856374;;, - 54;3; -0.137034,-0.235439, 6.856374;;, - 55;3; -0.137034,-0.235439, 6.856374;;, - 56;3; -0.137034,-0.235439, 6.856374;;, - 57;3; -0.137034,-0.235439, 6.856374;;, - 58;3; -0.137034,-0.235439, 6.856374;;, - 59;3; -0.137034,-0.235439, 6.856374;;, - 60;3; -0.137034,-0.235439, 6.856374;;, - 61;3; -0.137034,-0.235439, 6.856374;;, - 62;3; -0.137034,-0.235439, 6.856374;;, - 63;3; -0.137034,-0.235439, 6.856374;;, - 64;3; -0.137034,-0.235439, 6.856374;;, - 65;3; -0.137034,-0.235439, 6.856374;;, - 66;3; -0.137034,-0.235439, 6.856374;;, - 67;3; -0.137034,-0.235439, 6.856374;;, - 68;3; -0.137034,-0.235439, 6.856374;;, - 69;3; -0.137034,-0.235439, 6.856374;;, - 70;3; -0.137034,-0.235439, 6.856374;;, - 71;3; -0.137034,-0.235439, 6.856374;;, - 72;3; -0.137034,-0.235439, 6.856374;;, - 73;3; -0.137034,-0.235439, 6.856374;;, - 74;3; -0.137034,-0.235439, 6.856374;;, - 75;3; -0.137034,-0.235439, 6.856374;;, - 76;3; -0.137034,-0.235439, 6.856374;;, - 77;3; -0.137034,-0.235439, 6.856374;;, - 78;3; -0.137034,-0.235439, 6.856374;;, - 79;3; -0.137034,-0.235439, 6.856374;;, - 80;3; -0.137034,-0.235439, 6.856374;;, - 81;3; -0.137034,-0.235439, 6.856374;;, - 82;3; -0.137034,-0.235439, 6.856374;;, - 83;3; -0.137034,-0.235439, 6.856374;;, - 84;3; -0.137034,-0.235439, 6.856374;;, - 85;3; -0.137034,-0.235439, 6.856374;;, - 86;3; -0.137034,-0.235439, 6.856374;;, - 87;3; -0.137034,-0.235439, 6.856374;;, - 88;3; -0.137034,-0.235439, 6.856374;;, - 89;3; -0.137034,-0.235439, 6.856374;;, - 90;3; -0.137034,-0.235439, 6.856374;;, - 91;3; -0.137034,-0.235439, 6.856374;;, - 92;3; -0.137034,-0.235439, 6.856374;;, - 93;3; -0.137034,-0.235439, 6.856374;;, - 94;3; -0.137034,-0.235439, 6.856374;;, - 95;3; -0.137034,-0.235439, 6.856374;;, - 96;3; -0.137034,-0.235439, 6.856374;;, - 97;3; -0.137034,-0.235439, 6.856374;;, - 98;3; -0.137034,-0.235439, 6.856374;;, - 99;3; -0.137034,-0.235439, 6.856374;;, - 100;3; -0.137034,-0.235439, 6.856374;;, - 101;3; -0.137034,-0.235439, 6.856374;;, - 102;3; -0.137034,-0.235439, 6.856374;;, - 103;3; -0.137034,-0.235439, 6.856374;;, - 104;3; -0.137034,-0.235439, 6.856374;;, - 105;3; -0.137034,-0.235439, 6.856374;;, - 106;3; -0.137034,-0.235439, 6.856374;;, - 107;3; -0.137034,-0.235439, 6.856374;;, - 108;3; -0.137034,-0.235439, 6.856374;;, - 109;3; -0.137034,-0.235439, 6.856374;;, - 110;3; -0.137034,-0.235439, 6.856374;;, - 111;3; -0.137034,-0.235439, 6.856374;;, - 112;3; -0.137034,-0.235439, 6.856374;;, - 113;3; -0.137034,-0.235439, 6.856374;;, - 114;3; -0.137034,-0.235439, 6.856374;;, - 115;3; -0.137034,-0.235439, 6.856374;;, - 116;3; -0.137034,-0.235439, 6.856374;;, - 117;3; -0.137034,-0.235439, 6.856374;;, - 118;3; -0.137034,-0.235439, 6.856374;;, - 119;3; -0.137034,-0.235439, 6.856374;;, - 120;3; -0.137034,-0.235439, 6.856374;;, - 121;3; -0.137034,-0.235439, 6.856374;;, - 122;3; -0.137034,-0.235439, 6.856374;;, - 123;3; -0.137034,-0.235439, 6.856374;;, - 124;3; -0.137034,-0.235439, 6.856374;;, - 125;3; -0.137034,-0.235439, 6.856374;;, - 126;3; -0.137034,-0.235439, 6.856374;;, - 127;3; -0.137034,-0.235439, 6.856374;;, - 128;3; -0.137034,-0.235439, 6.856374;;, - 129;3; -0.137034,-0.235439, 6.856374;;, - 130;3; -0.137034,-0.235439, 6.856374;;, - 131;3; -0.137034,-0.235439, 6.856374;;, - 132;3; -0.137034,-0.235439, 6.856374;;, - 133;3; -0.137034,-0.235439, 6.856374;;, - 134;3; -0.137034,-0.235439, 6.856374;;, - 135;3; -0.137034,-0.235439, 6.856374;;, - 136;3; -0.137034,-0.235439, 6.856374;;, - 137;3; -0.137034,-0.235439, 6.856374;;, - 138;3; -0.137034,-0.235439, 6.856374;;, - 139;3; -0.137034,-0.235439, 6.856374;;, - 140;3; -0.137034,-0.235439, 6.856374;;, - 141;3; -0.137034,-0.235439, 6.856374;;, - 142;3; -0.137034,-0.235439, 6.856374;;, - 143;3; -0.137034,-0.235439, 6.856374;;, - 144;3; -0.137034,-0.235439, 6.856374;;, - 145;3; -0.137034,-0.235439, 6.856374;;, - 146;3; -0.137034,-0.235439, 6.856374;;, - 147;3; -0.137034,-0.235439, 6.856374;;, - 148;3; -0.137034,-0.235439, 6.856374;;, - 149;3; -0.137034,-0.235439, 6.856374;;, - 150;3; -0.137034,-0.235439, 6.856374;;, - 151;3; -0.137034,-0.235439, 6.856374;;, - 152;3; -0.137034,-0.235439, 6.856374;;, - 153;3; -0.137034,-0.235439, 6.856374;;, - 154;3; -0.137034,-0.235439, 6.856374;;, - 155;3; -0.137034,-0.235439, 6.856374;;; - } - AnimationKey { //Rotation - 0; - 156; - 0;4; -1.000000, 0.000000, 0.000000, 0.000000;;, - 1;4; -1.000000, 0.000000, 0.000000, 0.000000;;, - 2;4; -1.000000, 0.000000, 0.000000, 0.000000;;, - 3;4; -1.000000, 0.000000, 0.000000, 0.000000;;, - 4;4; -1.000000, 0.000000, 0.000000, 0.000000;;, - 5;4; -1.000000, 0.000000, 0.000000, 0.000000;;, - 6;4; -1.000000, 0.000000, 0.000000, 0.000000;;, - 7;4; -1.000000, 0.000000, 0.000000, 0.000000;;, - 8;4; -1.000000, 0.000000, 0.000000, 0.000000;;, - 9;4; -1.000000, 0.000000, 0.000000, 0.000000;;, - 10;4; -1.000000, 0.000000, 0.000000, 0.000000;;, - 11;4; -1.000000, 0.000000, 0.000000, 0.000000;;, - 12;4; -1.000000, 0.000000, 0.000000, 0.000000;;, - 13;4; -1.000000, 0.000000, 0.000000, 0.000000;;, - 14;4; -1.000000, 0.000000, 0.000000, 0.000000;;, - 15;4; -1.000000, 0.000000, 0.000000, 0.000000;;, - 16;4; -1.000000, 0.000000, 0.000000, 0.000000;;, - 17;4; -1.000000, 0.000000, 0.000000, 0.000000;;, - 18;4; -1.000000, 0.000000, 0.000000, 0.000000;;, - 19;4; -1.000000, 0.000000, 0.000000, 0.000000;;, - 20;4; -1.000000, 0.000000, 0.000000, 0.000000;;, - 21;4; -1.000000, 0.000000, 0.000000, 0.000000;;, - 22;4; -1.000000, 0.000000, 0.000000, 0.000000;;, - 23;4; -1.000000, 0.000000, 0.000000, 0.000000;;, - 24;4; -1.000000, 0.000000, 0.000000, 0.000000;;, - 25;4; -1.000000, 0.000000, 0.000000, 0.000000;;, - 26;4; -1.000000, 0.000000, 0.000000, 0.000000;;, - 27;4; -1.000000, 0.000000, 0.000000, 0.000000;;, - 28;4; -1.000000, 0.000000, 0.000000, 0.000000;;, - 29;4; -1.000000, 0.000000, 0.000000, 0.000000;;, - 30;4; -1.000000, 0.000000, 0.000000, 0.000000;;, - 31;4; -1.000000, 0.000000, 0.000000, 0.000000;;, - 32;4; -1.000000, 0.000000, 0.000000, 0.000000;;, - 33;4; -1.000000, 0.000000, 0.000000, 0.000000;;, - 34;4; -1.000000, 0.000000, 0.000000, 0.000000;;, - 35;4; -1.000000, 0.000000, 0.000000, 0.000000;;, - 36;4; -1.000000, 0.000000, 0.000000, 0.000000;;, - 37;4; -1.000000, 0.000000, 0.000000, 0.000000;;, - 38;4; -1.000000, 0.000000, 0.000000, 0.000000;;, - 39;4; -1.000000, 0.000000, 0.000000, 0.000000;;, - 40;4; -1.000000, 0.000000, 0.000000, 0.000000;;, - 41;4; -1.000000, 0.000000, 0.000000, 0.000000;;, - 42;4; -1.000000, 0.000000, 0.000000, 0.000000;;, - 43;4; -1.000000, 0.000000, 0.000000, 0.000000;;, - 44;4; -1.000000, 0.000000, 0.000000, 0.000000;;, - 45;4; -1.000000, 0.000000, 0.000000, 0.000000;;, - 46;4; -1.000000, 0.000000, 0.000000, 0.000000;;, - 47;4; -1.000000, 0.000000, 0.000000, 0.000000;;, - 48;4; -1.000000, 0.000000, 0.000000, 0.000000;;, - 49;4; -1.000000, 0.000000, 0.000000, 0.000000;;, - 50;4; -1.000000, 0.000000, 0.000000, 0.000000;;, - 51;4; -1.000000, 0.000000, 0.000000, 0.000000;;, - 52;4; -1.000000, 0.000000, 0.000000, 0.000000;;, - 53;4; -1.000000, 0.000000, 0.000000, 0.000000;;, - 54;4; -1.000000, 0.000000, 0.000000, 0.000000;;, - 55;4; -1.000000, 0.000000, 0.000000, 0.000000;;, - 56;4; -1.000000, 0.000000, 0.000000, 0.000000;;, - 57;4; -1.000000, 0.000000, 0.000000, 0.000000;;, - 58;4; -1.000000, 0.000000, 0.000000, 0.000000;;, - 59;4; -1.000000, 0.000000, 0.000000, 0.000000;;, - 60;4; -1.000000, 0.000000, 0.000000, 0.000000;;, - 61;4; -1.000000, 0.000000, 0.000000, 0.000000;;, - 62;4; -1.000000, 0.000000, 0.000000, 0.000000;;, - 63;4; -1.000000, 0.000000, 0.000000, 0.000000;;, - 64;4; -1.000000, 0.000000, 0.000000, 0.000000;;, - 65;4; -1.000000, 0.000000, 0.000000, 0.000000;;, - 66;4; -1.000000, 0.000000, 0.000000, 0.000000;;, - 67;4; -1.000000, 0.000000, 0.000000, 0.000000;;, - 68;4; -1.000000, 0.000000, 0.000000, 0.000000;;, - 69;4; -1.000000, 0.000000, 0.000000, 0.000000;;, - 70;4; -1.000000, 0.000000, 0.000000, 0.000000;;, - 71;4; -1.000000, 0.000000, 0.000000, 0.000000;;, - 72;4; -1.000000, 0.000000, 0.000000, 0.000000;;, - 73;4; -1.000000, 0.000000, 0.000000, 0.000000;;, - 74;4; -1.000000, 0.000000, 0.000000, 0.000000;;, - 75;4; -1.000000, 0.000000, 0.000000, 0.000000;;, - 76;4; -1.000000, 0.000000, 0.000000, 0.000000;;, - 77;4; -1.000000, 0.000000, 0.000000, 0.000000;;, - 78;4; -1.000000, 0.000000, 0.000000, 0.000000;;, - 79;4; -1.000000, 0.000000, 0.000000, 0.000000;;, - 80;4; -1.000000, 0.000000, 0.000000, 0.000000;;, - 81;4; -1.000000, 0.000000, 0.000000, 0.000000;;, - 82;4; -1.000000, 0.000000, 0.000000, 0.000000;;, - 83;4; -1.000000, 0.000000, 0.000000, 0.000000;;, - 84;4; -1.000000, 0.000000, 0.000000, 0.000000;;, - 85;4; -1.000000, 0.000000, 0.000000, 0.000000;;, - 86;4; -1.000000, 0.000000, 0.000000, 0.000000;;, - 87;4; -1.000000, 0.000000, 0.000000, 0.000000;;, - 88;4; -1.000000, 0.000000, 0.000000, 0.000000;;, - 89;4; -1.000000, 0.000000, 0.000000, 0.000000;;, - 90;4; -1.000000, 0.000000, 0.000000, 0.000000;;, - 91;4; -1.000000, 0.000000, 0.000000, 0.000000;;, - 92;4; -1.000000, 0.000000, 0.000000, 0.000000;;, - 93;4; -1.000000, 0.000000, 0.000000, 0.000000;;, - 94;4; -1.000000, 0.000000, 0.000000, 0.000000;;, - 95;4; -1.000000, 0.000000, 0.000000, 0.000000;;, - 96;4; -1.000000, 0.000000, 0.000000, 0.000000;;, - 97;4; -1.000000, 0.000000, 0.000000, 0.000000;;, - 98;4; -1.000000, 0.000000, 0.000000, 0.000000;;, - 99;4; -1.000000, 0.000000, 0.000000, 0.000000;;, - 100;4; -1.000000, 0.000000, 0.000000, 0.000000;;, - 101;4; -1.000000, 0.000000, 0.000000, 0.000000;;, - 102;4; -1.000000, 0.000000, 0.000000, 0.000000;;, - 103;4; -1.000000, 0.000000, 0.000000, 0.000000;;, - 104;4; -1.000000, 0.000000, 0.000000, 0.000000;;, - 105;4; -1.000000, 0.000000, 0.000000, 0.000000;;, - 106;4; -1.000000, 0.000000, 0.000000, 0.000000;;, - 107;4; -1.000000, 0.000000, 0.000000, 0.000000;;, - 108;4; -1.000000, 0.000000, 0.000000, 0.000000;;, - 109;4; -1.000000, 0.000000, 0.000000, 0.000000;;, - 110;4; -1.000000, 0.000000, 0.000000, 0.000000;;, - 111;4; -1.000000, 0.000000, 0.000000, 0.000000;;, - 112;4; -1.000000, 0.000000, 0.000000, 0.000000;;, - 113;4; -1.000000, 0.000000, 0.000000, 0.000000;;, - 114;4; -1.000000, 0.000000, 0.000000, 0.000000;;, - 115;4; -1.000000, 0.000000, 0.000000, 0.000000;;, - 116;4; -1.000000, 0.000000, 0.000000, 0.000000;;, - 117;4; -1.000000, 0.000000, 0.000000, 0.000000;;, - 118;4; -1.000000, 0.000000, 0.000000, 0.000000;;, - 119;4; -1.000000, 0.000000, 0.000000, 0.000000;;, - 120;4; -1.000000, 0.000000, 0.000000, 0.000000;;, - 121;4; -1.000000, 0.000000, 0.000000, 0.000000;;, - 122;4; -1.000000, 0.000000, 0.000000, 0.000000;;, - 123;4; -1.000000, 0.000000, 0.000000, 0.000000;;, - 124;4; -1.000000, 0.000000, 0.000000, 0.000000;;, - 125;4; -1.000000, 0.000000, 0.000000, 0.000000;;, - 126;4; -1.000000, 0.000000, 0.000000, 0.000000;;, - 127;4; -1.000000, 0.000000, 0.000000, 0.000000;;, - 128;4; -1.000000, 0.000000, 0.000000, 0.000000;;, - 129;4; -1.000000, 0.000000, 0.000000, 0.000000;;, - 130;4; -1.000000, 0.000000, 0.000000, 0.000000;;, - 131;4; -1.000000, 0.000000, 0.000000, 0.000000;;, - 132;4; -1.000000, 0.000000, 0.000000, 0.000000;;, - 133;4; -1.000000, 0.000000, 0.000000, 0.000000;;, - 134;4; -1.000000, 0.000000, 0.000000, 0.000000;;, - 135;4; -1.000000, 0.000000, 0.000000, 0.000000;;, - 136;4; -1.000000, 0.000000, 0.000000, 0.000000;;, - 137;4; -1.000000, 0.000000, 0.000000, 0.000000;;, - 138;4; -1.000000, 0.000000, 0.000000, 0.000000;;, - 139;4; -1.000000, 0.000000, 0.000000, 0.000000;;, - 140;4; -1.000000, 0.000000, 0.000000, 0.000000;;, - 141;4; -1.000000, 0.000000, 0.000000, 0.000000;;, - 142;4; -1.000000, 0.000000, 0.000000, 0.000000;;, - 143;4; -1.000000, 0.000000, 0.000000, 0.000000;;, - 144;4; -1.000000, 0.000000, 0.000000, 0.000000;;, - 145;4; -1.000000, 0.000000, 0.000000, 0.000000;;, - 146;4; -1.000000, 0.000000, 0.000000, 0.000000;;, - 147;4; -1.000000, 0.000000, 0.000000, 0.000000;;, - 148;4; -1.000000, 0.000000, 0.000000, 0.000000;;, - 149;4; -1.000000, 0.000000, 0.000000, 0.000000;;, - 150;4; -1.000000, 0.000000, 0.000000, 0.000000;;, - 151;4; -1.000000, 0.000000, 0.000000, 0.000000;;, - 152;4; -1.000000, 0.000000, 0.000000, 0.000000;;, - 153;4; -1.000000, 0.000000, 0.000000, 0.000000;;, - 154;4; -1.000000, 0.000000, 0.000000, 0.000000;;, - 155;4; -1.000000, 0.000000, 0.000000, 0.000000;;; - } - AnimationKey { //Scale - 1; - 156; - 0;3; 2.153459, 2.153459, 2.153459;;, - 1;3; 2.153459, 2.153459, 2.153459;;, - 2;3; 2.153459, 2.153459, 2.153459;;, - 3;3; 2.153459, 2.153459, 2.153459;;, - 4;3; 2.153459, 2.153459, 2.153459;;, - 5;3; 2.153459, 2.153459, 2.153459;;, - 6;3; 2.153459, 2.153459, 2.153459;;, - 7;3; 2.153459, 2.153459, 2.153459;;, - 8;3; 2.153459, 2.153459, 2.153459;;, - 9;3; 2.153459, 2.153459, 2.153459;;, - 10;3; 2.153459, 2.153459, 2.153459;;, - 11;3; 2.153459, 2.153459, 2.153459;;, - 12;3; 2.153459, 2.153459, 2.153459;;, - 13;3; 2.153459, 2.153459, 2.153459;;, - 14;3; 2.153459, 2.153459, 2.153459;;, - 15;3; 2.153459, 2.153459, 2.153459;;, - 16;3; 2.153459, 2.153459, 2.153459;;, - 17;3; 2.153459, 2.153459, 2.153459;;, - 18;3; 2.153459, 2.153459, 2.153459;;, - 19;3; 2.153459, 2.153459, 2.153459;;, - 20;3; 2.153459, 2.153459, 2.153459;;, - 21;3; 2.153459, 2.153459, 2.153459;;, - 22;3; 2.153459, 2.153459, 2.153459;;, - 23;3; 2.153459, 2.153459, 2.153459;;, - 24;3; 2.153459, 2.153459, 2.153459;;, - 25;3; 2.153459, 2.153459, 2.153459;;, - 26;3; 2.153459, 2.153459, 2.153459;;, - 27;3; 2.153459, 2.153459, 2.153459;;, - 28;3; 2.153459, 2.153459, 2.153459;;, - 29;3; 2.153459, 2.153459, 2.153459;;, - 30;3; 2.153459, 2.153459, 2.153459;;, - 31;3; 2.153459, 2.153459, 2.153459;;, - 32;3; 2.153459, 2.153459, 2.153459;;, - 33;3; 2.153459, 2.153459, 2.153459;;, - 34;3; 2.153459, 2.153459, 2.153459;;, - 35;3; 2.153459, 2.153459, 2.153459;;, - 36;3; 2.153459, 2.153459, 2.153459;;, - 37;3; 2.153459, 2.153459, 2.153459;;, - 38;3; 2.153459, 2.153459, 2.153459;;, - 39;3; 2.153459, 2.153459, 2.153459;;, - 40;3; 2.153459, 2.153459, 2.153459;;, - 41;3; 2.153459, 2.153459, 2.153459;;, - 42;3; 2.153459, 2.153459, 2.153459;;, - 43;3; 2.153459, 2.153459, 2.153459;;, - 44;3; 2.153459, 2.153459, 2.153459;;, - 45;3; 2.153459, 2.153459, 2.153459;;, - 46;3; 2.153459, 2.153459, 2.153459;;, - 47;3; 2.153459, 2.153459, 2.153459;;, - 48;3; 2.153459, 2.153459, 2.153459;;, - 49;3; 2.153459, 2.153459, 2.153459;;, - 50;3; 2.153459, 2.153459, 2.153459;;, - 51;3; 2.153459, 2.153459, 2.153459;;, - 52;3; 2.153459, 2.153459, 2.153459;;, - 53;3; 2.153459, 2.153459, 2.153459;;, - 54;3; 2.153459, 2.153459, 2.153459;;, - 55;3; 2.153459, 2.153459, 2.153459;;, - 56;3; 2.153459, 2.153459, 2.153459;;, - 57;3; 2.153459, 2.153459, 2.153459;;, - 58;3; 2.153459, 2.153459, 2.153459;;, - 59;3; 2.153459, 2.153459, 2.153459;;, - 60;3; 2.153459, 2.153459, 2.153459;;, - 61;3; 2.153459, 2.153459, 2.153459;;, - 62;3; 2.153459, 2.153459, 2.153459;;, - 63;3; 2.153459, 2.153459, 2.153459;;, - 64;3; 2.153459, 2.153459, 2.153459;;, - 65;3; 2.153459, 2.153459, 2.153459;;, - 66;3; 2.153459, 2.153459, 2.153459;;, - 67;3; 2.153459, 2.153459, 2.153459;;, - 68;3; 2.153459, 2.153459, 2.153459;;, - 69;3; 2.153459, 2.153459, 2.153459;;, - 70;3; 2.153459, 2.153459, 2.153459;;, - 71;3; 2.153459, 2.153459, 2.153459;;, - 72;3; 2.153459, 2.153459, 2.153459;;, - 73;3; 2.153459, 2.153459, 2.153459;;, - 74;3; 2.153459, 2.153459, 2.153459;;, - 75;3; 2.153459, 2.153459, 2.153459;;, - 76;3; 2.153459, 2.153459, 2.153459;;, - 77;3; 2.153459, 2.153459, 2.153459;;, - 78;3; 2.153459, 2.153459, 2.153459;;, - 79;3; 2.153459, 2.153459, 2.153459;;, - 80;3; 2.153459, 2.153459, 2.153459;;, - 81;3; 2.153459, 2.153459, 2.153459;;, - 82;3; 2.153459, 2.153459, 2.153459;;, - 83;3; 2.153459, 2.153459, 2.153459;;, - 84;3; 2.153459, 2.153459, 2.153459;;, - 85;3; 2.153459, 2.153459, 2.153459;;, - 86;3; 2.153459, 2.153459, 2.153459;;, - 87;3; 2.153459, 2.153459, 2.153459;;, - 88;3; 2.153459, 2.153459, 2.153459;;, - 89;3; 2.153459, 2.153459, 2.153459;;, - 90;3; 2.153459, 2.153459, 2.153459;;, - 91;3; 2.153459, 2.153459, 2.153459;;, - 92;3; 2.153459, 2.153459, 2.153459;;, - 93;3; 2.153459, 2.153459, 2.153459;;, - 94;3; 2.153459, 2.153459, 2.153459;;, - 95;3; 2.153459, 2.153459, 2.153459;;, - 96;3; 2.153459, 2.153459, 2.153459;;, - 97;3; 2.153459, 2.153459, 2.153459;;, - 98;3; 2.153459, 2.153459, 2.153459;;, - 99;3; 2.153459, 2.153459, 2.153459;;, - 100;3; 2.153459, 2.153459, 2.153459;;, - 101;3; 2.153459, 2.153459, 2.153459;;, - 102;3; 2.153459, 2.153459, 2.153459;;, - 103;3; 2.153459, 2.153459, 2.153459;;, - 104;3; 2.153459, 2.153459, 2.153459;;, - 105;3; 2.153459, 2.153459, 2.153459;;, - 106;3; 2.153459, 2.153459, 2.153459;;, - 107;3; 2.153459, 2.153459, 2.153459;;, - 108;3; 2.153459, 2.153459, 2.153459;;, - 109;3; 2.153459, 2.153459, 2.153459;;, - 110;3; 2.153459, 2.153459, 2.153459;;, - 111;3; 2.153459, 2.153459, 2.153459;;, - 112;3; 2.153459, 2.153459, 2.153459;;, - 113;3; 2.153459, 2.153459, 2.153459;;, - 114;3; 2.153459, 2.153459, 2.153459;;, - 115;3; 2.153459, 2.153459, 2.153459;;, - 116;3; 2.153459, 2.153459, 2.153459;;, - 117;3; 2.153459, 2.153459, 2.153459;;, - 118;3; 2.153459, 2.153459, 2.153459;;, - 119;3; 2.153459, 2.153459, 2.153459;;, - 120;3; 2.153459, 2.153459, 2.153459;;, - 121;3; 2.153459, 2.153459, 2.153459;;, - 122;3; 2.153459, 2.153459, 2.153459;;, - 123;3; 2.153459, 2.153459, 2.153459;;, - 124;3; 2.153459, 2.153459, 2.153459;;, - 125;3; 2.153459, 2.153459, 2.153459;;, - 126;3; 2.153459, 2.153459, 2.153459;;, - 127;3; 2.153459, 2.153459, 2.153459;;, - 128;3; 2.153459, 2.153459, 2.153459;;, - 129;3; 2.153459, 2.153459, 2.153459;;, - 130;3; 2.153459, 2.153459, 2.153459;;, - 131;3; 2.153459, 2.153459, 2.153459;;, - 132;3; 2.153459, 2.153459, 2.153459;;, - 133;3; 2.153459, 2.153459, 2.153459;;, - 134;3; 2.153459, 2.153459, 2.153459;;, - 135;3; 2.153459, 2.153459, 2.153459;;, - 136;3; 2.153459, 2.153459, 2.153459;;, - 137;3; 2.153459, 2.153459, 2.153459;;, - 138;3; 2.153459, 2.153459, 2.153459;;, - 139;3; 2.153459, 2.153459, 2.153459;;, - 140;3; 2.153459, 2.153459, 2.153459;;, - 141;3; 2.153459, 2.153459, 2.153459;;, - 142;3; 2.153459, 2.153459, 2.153459;;, - 143;3; 2.153459, 2.153459, 2.153459;;, - 144;3; 2.153459, 2.153459, 2.153459;;, - 145;3; 2.153459, 2.153459, 2.153459;;, - 146;3; 2.153459, 2.153459, 2.153459;;, - 147;3; 2.153459, 2.153459, 2.153459;;, - 148;3; 2.153459, 2.153459, 2.153459;;, - 149;3; 2.153459, 2.153459, 2.153459;;, - 150;3; 2.153459, 2.153459, 2.153459;;, - 151;3; 2.153459, 2.153459, 2.153459;;, - 152;3; 2.153459, 2.153459, 2.153459;;, - 153;3; 2.153459, 2.153459, 2.153459;;, - 154;3; 2.153459, 2.153459, 2.153459;;, - 155;3; 2.153459, 2.153459, 2.153459;;; - } - } -} //End of AnimationSet diff --git a/games/default/files/mobs_animal/pig.lua b/games/default/files/mobs_animal/pig.lua deleted file mode 100644 index 4c0b54ebb..000000000 --- a/games/default/files/mobs_animal/pig.lua +++ /dev/null @@ -1,57 +0,0 @@ -mobs:register_mob("mobs_animal:pig", { - type = "animal", - group_attack = true, - damage = 2, - hp_min = 5, - hp_max = 15, - collisionbox = {-0.4, -1, -0.4, 0.4, 0.1, 0.4}, - visual = "mesh", - mesh = "mobs_pig.x", - textures = { - {"mobs_pig.png"}, - }, - makes_footstep_sound = true, - sounds = { - random = "mobs_pig", - attack = "mobs_pig_angry", - }, - walk_velocity = 2, - run_velocity = 3, - follow = {"default:apple", "farming:potato"}, - drops = function(pos) - if rawget(_G, "experience") then - experience.add_orb(math.random(1,3), pos) -- random amount between 1 and 3 - end - - return { - {name = "mobs:pork_raw"}, - {name = "mobs:pork_raw", chance = 2}, - {name = "mobs:pork_raw", chance = 2} - } - end, - fear_height = 2, - animation = { - speed_normal = 20, - stand_start = 0, - stand_end = 60, - walk_start = 61, - walk_end = 80, - punch_start = 90, - punch_end = 110, - }, - on_rightclick = function (self, clicker) - mobs:feed_tame(self, clicker, 8, true, true) - --mobs:capture_mob(self, clicker, 0, 5, 50, false, nil) - end, -}) - -mobs:spawn({ - name = "mobs_animal:pig", - nodes = {"default:dirt", "default:sand", "default:redsand", "default:snow", "default:snowblock", "default:dirt_with_snow", "default:dirt_with_grass", "default:dirt_with_dry_grass"}, - min_light = 5, - chance = 20000, - min_height = 0, - day_toggle = true, -}) - -mobs:register_egg("mobs_animal:pig", "Pig egg", "mobs_pig_egg.png", 1) diff --git a/games/default/files/mobs_animal/readme.md b/games/default/files/mobs_animal/readme.md deleted file mode 100644 index da3c0d351..000000000 --- a/games/default/files/mobs_animal/readme.md +++ /dev/null @@ -1,36 +0,0 @@ - -ANIMAL MOBS - -Bee - -- Tends to buzz around flowers and gives honey when killed, you can also right-click a bee to pick it up and place in inventory. 3x bee's in a row can craft a beehive. - -Bunny - -- Bunnies appear in green grass areas (prairie biome in ethereal) and can be tamed with 4 carrots. Can also be picked up and placed in inventory and gives 1-2 meat when killed. - -Chicken - -- Found in green areas (bamboo biome in ethereal) and lays eggs on flat ground, Can be picked up and placed in inventory and gives 1-2 raw chicken when killed. Feed 8x wheat seed to breed. - -Cow - -- Wanders around eating grass/wheat and can be right-clicked with empty bucket to get milk. Cows will defend themselves when hit and can be right-clicked with 8x wheat to tame and breed. - -Kitten - -- Found on green grass these cute cats walk around and can be picked up and placed in inventory as pets or right-clicked with 4x raw fish (found in ethereal) and tamed. - -Rat - -- Typically found around stone they can be picked up and cooked for eating. - -Sheep - -- Green grass and wheat munchers that can be clipped using shears to give 1-3 wool. Feed sheep 8x wheat to regrow wool, tame and breed. Right-click a tamed sheep with dye to change it's colour. Will drop 1-3 meat when killed. - -Warthog - -- Warthogs unlike pigs defend themselves when hit and give 1-3 raw pork when killed, they can also be right-clicked with 8x apples to tame or breed. - -Note: After breeding animals need to rest for 4 minutes, baby animals take 4 minutes to grow up and feeding them helps them grow quicker... diff --git a/games/default/files/mobs_animal/sheep.lua b/games/default/files/mobs_animal/sheep.lua deleted file mode 100644 index d8f6be9ab..000000000 --- a/games/default/files/mobs_animal/sheep.lua +++ /dev/null @@ -1,196 +0,0 @@ -local dyes = dye.dyes - -for i = 1, #dyes do - local name, desc = unpack(dyes[i]) - - mobs:register_mob("mobs_animal:sheep_" .. name, { - stay_near = {"farming:straw", 10}, - type = "animal", - passive = true, - hp_min = 6, - hp_max = 10, - collisionbox = {-0.4, -1, -0.4, 0.4, 0.3, 0.4}, - visual = "mesh", - mesh = "mobs_sheep.b3d", - textures = {"mobs_sheep_" .. name .. ".png"}, - gotten_texture = {"mobs_sheep_shaved.png"}, - gotten_mesh = "mobs_sheep_shaved.b3d", - makes_footstep_sound = true, - sounds = { - random = "mobs_sheep", - damage = "mobs_sheep_angry", - }, - runaway = true, - jump_height = 3, - drops = function(pos) - if rawget(_G, "experience") then - experience.add_orb(math.random(2, 4), pos) - end - return { - {name = "mobs:meat_raw"}, - {name = "mobs:meat_raw", chance = 2}, - {name = "wool:" .. name} - } - end, - animation = { - speed_normal = 15, - speed_run = 15, - stand_start = 0, - stand_end = 80, - walk_start = 81, - walk_end = 100, - }, - follow = {"farming:wheat", "default:grass"}, - replace_rate = 10, - replace_what = { - {"group:grass", "air", -1}, - {"default:dirt_with_grass", "default:dirt", -2} - }, - fear_height = 3, - on_replace = function(self, pos, oldnode, newnode) - - self.food = (self.food or 0) + 1 - - -- if sheep replaces 8x grass then it regrows wool - if self.food >= 8 then - - self.food = 0 - self.gotten = false - - self.object:set_properties({ - textures = {"mobs_sheep_" .. name .. ".png"}, - mesh = "mobs_sheep.b3d", - }) - end - end, - on_rightclick = function(self, clicker) - --are we feeding? - if mobs:feed_tame(self, clicker, 8, true, true) then - --if fed 7x grass or wheat then sheep regrows wool - if self.food and self.food > 6 then - self.gotten = false - self.object:set_properties({ - textures = {"mobs_sheep_" .. name .. ".png"}, - mesh = "mobs_sheep.b3d", - }) - end - return - end - - local item = clicker:get_wielded_item() - local itemname = item:get_name() - local player = clicker:get_player_name() - - --are we giving a haircut> - if itemname == "mobs:shears" then - if self.gotten or self.child - or player ~= self.owner - or not minetest.get_modpath("wool") then - return - end - self.gotten = true -- shaved - local obj = minetest.add_item( - self.object:get_pos(), - ItemStack( "wool:" .. name .. " " .. math.random(1, 3) ) - ) - if obj then - obj:setvelocity({ - x = math.random(-1, 1), - y = 5, - z = math.random(-1, 1) - }) - end - item:add_wear(650) -- 100 uses - clicker:set_wielded_item(item) - self.object:set_properties({ - textures = {"mobs_sheep_shaved.png"}, - mesh = "mobs_sheep_shaved.b3d", - }) - return - end - - --are we coloring? - if itemname:find("dye:") then - if self.gotten == false - and self.child == false - and self.tamed == true - and player == self.owner then - local colr = string.split(itemname, ":")[2] - for i = 1, #dyes do - local name = unpack(dyes[i]) - - if name == colr then - local pos = self.object:get_pos() - self.object:remove() - local mob = minetest.add_entity(pos, "mobs_animal:sheep_" .. colr) - local ent = mob:get_luaentity() - ent.owner = player - ent.tamed = true - - -- take item - if not mobs.is_creative(player) or - not minetest.is_singleplayer() then - item:take_item() - clicker:set_wielded_item(item) - end - break - end - end - end - return - end - - if mobs:protect(self, clicker) then return end - --if mobs:capture_mob(self, clicker, 0, 5, 60, false, nil) then return end - end - }) - - minetest.register_alias("mobs_animal:sheep_" .. name, "mobs_animal:sheep_white") -end - -mobs:register_egg("mobs_animal:sheep_white", "White Sheep egg", "wool_white.png", 1) - -mobs:spawn({ - name = "mobs_animal:sheep_white", - nodes = {"default:dirt", "default:sand", "default:redsand", "default:snow", "default:snowblock", "default:dirt_with_snow", "default:dirt_with_grass"}, - min_light = 7, - chance = 100000, - min_height = 0, - day_toggle = true, -}) - -mobs:spawn({ - name = "mobs_animal:sheep_grey", - nodes = {"default:dirt", "default:sand", "default:redsand", "default:snow", "default:snowblock", "default:dirt_with_snow", "default:dirt_with_grass"}, - min_light = 7, - chance = 100000, - min_height = 0, - day_toggle = true, -}) - -mobs:spawn({ - name = "mobs_animal:sheep_dark_grey", - nodes = {"default:dirt", "default:sand", "default:redsand", "default:snow", "default:snowblock", "default:dirt_with_snow", "default:dirt_with_grass"}, - min_light = 7, - chance = 100000, - min_height = 0, - day_toggle = true, -}) - -mobs:spawn({ - name = "mobs_animal:sheep_black", - nodes = {"default:dirt", "default:sand", "default:redsand", "default:dirt_with_dry_grass", "default:dirt_with_grass"}, - min_light = 7, - chance = 100000, - min_height = 0, - day_toggle = true, -}) - -mobs:spawn({ - name = "mobs_animal:sheep_brown", - nodes = {"default:dirt", "default:sand", "default:redsand", "default:dirt_with_dry_grass", "default:dirt_with_grass"}, - min_light = 7, - chance = 100000, - min_height = 0, - day_toggle = true, -}) diff --git a/games/default/files/mobs_animal/sounds/mobs_bear.ogg b/games/default/files/mobs_animal/sounds/mobs_bear.ogg deleted file mode 100644 index 3e5623f4f..000000000 Binary files a/games/default/files/mobs_animal/sounds/mobs_bear.ogg and /dev/null differ diff --git a/games/default/files/mobs_animal/sounds/mobs_bear_angry.ogg b/games/default/files/mobs_animal/sounds/mobs_bear_angry.ogg deleted file mode 100644 index 7b7e9a1e0..000000000 Binary files a/games/default/files/mobs_animal/sounds/mobs_bear_angry.ogg and /dev/null differ diff --git a/games/default/files/mobs_animal/sounds/mobs_kitten.ogg b/games/default/files/mobs_animal/sounds/mobs_kitten.ogg deleted file mode 100644 index 2496dd8f1..000000000 Binary files a/games/default/files/mobs_animal/sounds/mobs_kitten.ogg and /dev/null differ diff --git a/games/default/files/mobs_animal/sounds/mobs_sheep_angry.ogg b/games/default/files/mobs_animal/sounds/mobs_sheep_angry.ogg deleted file mode 100644 index 7d957ab05..000000000 Binary files a/games/default/files/mobs_animal/sounds/mobs_sheep_angry.ogg and /dev/null differ diff --git a/games/default/files/mobs_animal/sounds/mobs_wolf_attack.ogg b/games/default/files/mobs_animal/sounds/mobs_wolf_attack.ogg deleted file mode 100644 index 4b06f5154..000000000 Binary files a/games/default/files/mobs_animal/sounds/mobs_wolf_attack.ogg and /dev/null differ diff --git a/games/default/files/mobs_animal/textures/mobs_bear.png b/games/default/files/mobs_animal/textures/mobs_bear.png deleted file mode 100644 index 7ed02ed6f..000000000 Binary files a/games/default/files/mobs_animal/textures/mobs_bear.png and /dev/null differ diff --git a/games/default/files/mobs_animal/textures/mobs_bear_egg.png b/games/default/files/mobs_animal/textures/mobs_bear_egg.png deleted file mode 100644 index ca53bd32e..000000000 Binary files a/games/default/files/mobs_animal/textures/mobs_bear_egg.png and /dev/null differ diff --git a/games/default/files/mobs_animal/textures/mobs_bunny_brown.png b/games/default/files/mobs_animal/textures/mobs_bunny_brown.png deleted file mode 100644 index 45a35b672..000000000 Binary files a/games/default/files/mobs_animal/textures/mobs_bunny_brown.png and /dev/null differ diff --git a/games/default/files/mobs_animal/textures/mobs_bunny_evil.png b/games/default/files/mobs_animal/textures/mobs_bunny_evil.png deleted file mode 100644 index 19a4c78fc..000000000 Binary files a/games/default/files/mobs_animal/textures/mobs_bunny_evil.png and /dev/null differ diff --git a/games/default/files/mobs_animal/textures/mobs_bunny_grey.png b/games/default/files/mobs_animal/textures/mobs_bunny_grey.png deleted file mode 100644 index 9e402d0c4..000000000 Binary files a/games/default/files/mobs_animal/textures/mobs_bunny_grey.png and /dev/null differ diff --git a/games/default/files/mobs_animal/textures/mobs_bunny_white.png b/games/default/files/mobs_animal/textures/mobs_bunny_white.png deleted file mode 100644 index 74fe4a6e2..000000000 Binary files a/games/default/files/mobs_animal/textures/mobs_bunny_white.png and /dev/null differ diff --git a/games/default/files/mobs_animal/textures/mobs_chicken.png b/games/default/files/mobs_animal/textures/mobs_chicken.png deleted file mode 100644 index c455dbc61..000000000 Binary files a/games/default/files/mobs_animal/textures/mobs_chicken.png and /dev/null differ diff --git a/games/default/files/mobs_animal/textures/mobs_chicken_egg_inv.png b/games/default/files/mobs_animal/textures/mobs_chicken_egg_inv.png deleted file mode 100644 index 8aa427e9d..000000000 Binary files a/games/default/files/mobs_animal/textures/mobs_chicken_egg_inv.png and /dev/null differ diff --git a/games/default/files/mobs_animal/textures/mobs_cow.png b/games/default/files/mobs_animal/textures/mobs_cow.png deleted file mode 100644 index 0b7aeeb4b..000000000 Binary files a/games/default/files/mobs_animal/textures/mobs_cow.png and /dev/null differ diff --git a/games/default/files/mobs_animal/textures/mobs_cow2.png b/games/default/files/mobs_animal/textures/mobs_cow2.png deleted file mode 100644 index 920074425..000000000 Binary files a/games/default/files/mobs_animal/textures/mobs_cow2.png and /dev/null differ diff --git a/games/default/files/mobs_animal/textures/mobs_cow3.png b/games/default/files/mobs_animal/textures/mobs_cow3.png deleted file mode 100644 index 45be24fb0..000000000 Binary files a/games/default/files/mobs_animal/textures/mobs_cow3.png and /dev/null differ diff --git a/games/default/files/mobs_animal/textures/mobs_cow_egg.png b/games/default/files/mobs_animal/textures/mobs_cow_egg.png deleted file mode 100644 index fecaf6cee..000000000 Binary files a/games/default/files/mobs_animal/textures/mobs_cow_egg.png and /dev/null differ diff --git a/games/default/files/mobs_animal/textures/mobs_dog.png b/games/default/files/mobs_animal/textures/mobs_dog.png deleted file mode 100644 index 81f9f4452..000000000 Binary files a/games/default/files/mobs_animal/textures/mobs_dog.png and /dev/null differ diff --git a/games/default/files/mobs_animal/textures/mobs_kitten_egg.png b/games/default/files/mobs_animal/textures/mobs_kitten_egg.png deleted file mode 100644 index 7f94c3870..000000000 Binary files a/games/default/files/mobs_animal/textures/mobs_kitten_egg.png and /dev/null differ diff --git a/games/default/files/mobs_animal/textures/mobs_kitten_ginger.png b/games/default/files/mobs_animal/textures/mobs_kitten_ginger.png deleted file mode 100644 index 916816976..000000000 Binary files a/games/default/files/mobs_animal/textures/mobs_kitten_ginger.png and /dev/null differ diff --git a/games/default/files/mobs_animal/textures/mobs_kitten_sandy.png b/games/default/files/mobs_animal/textures/mobs_kitten_sandy.png deleted file mode 100644 index 86347d7c2..000000000 Binary files a/games/default/files/mobs_animal/textures/mobs_kitten_sandy.png and /dev/null differ diff --git a/games/default/files/mobs_animal/textures/mobs_kitten_splotchy.png b/games/default/files/mobs_animal/textures/mobs_kitten_splotchy.png deleted file mode 100644 index 851c12225..000000000 Binary files a/games/default/files/mobs_animal/textures/mobs_kitten_splotchy.png and /dev/null differ diff --git a/games/default/files/mobs_animal/textures/mobs_kitten_striped.png b/games/default/files/mobs_animal/textures/mobs_kitten_striped.png deleted file mode 100644 index cdb66820e..000000000 Binary files a/games/default/files/mobs_animal/textures/mobs_kitten_striped.png and /dev/null differ diff --git a/games/default/files/mobs_animal/textures/mobs_pig.png b/games/default/files/mobs_animal/textures/mobs_pig.png deleted file mode 100644 index b8eb78866..000000000 Binary files a/games/default/files/mobs_animal/textures/mobs_pig.png and /dev/null differ diff --git a/games/default/files/mobs_animal/textures/mobs_pig_egg.png b/games/default/files/mobs_animal/textures/mobs_pig_egg.png deleted file mode 100644 index b2b753a52..000000000 Binary files a/games/default/files/mobs_animal/textures/mobs_pig_egg.png and /dev/null differ diff --git a/games/default/files/mobs_animal/textures/mobs_sheep_black.png b/games/default/files/mobs_animal/textures/mobs_sheep_black.png deleted file mode 100644 index 583651f29..000000000 Binary files a/games/default/files/mobs_animal/textures/mobs_sheep_black.png and /dev/null differ diff --git a/games/default/files/mobs_animal/textures/mobs_sheep_blue.png b/games/default/files/mobs_animal/textures/mobs_sheep_blue.png deleted file mode 100644 index ad4e24ce4..000000000 Binary files a/games/default/files/mobs_animal/textures/mobs_sheep_blue.png and /dev/null differ diff --git a/games/default/files/mobs_animal/textures/mobs_sheep_brown.png b/games/default/files/mobs_animal/textures/mobs_sheep_brown.png deleted file mode 100644 index 6cc2b2fb5..000000000 Binary files a/games/default/files/mobs_animal/textures/mobs_sheep_brown.png and /dev/null differ diff --git a/games/default/files/mobs_animal/textures/mobs_sheep_cyan.png b/games/default/files/mobs_animal/textures/mobs_sheep_cyan.png deleted file mode 100644 index bffb0cd73..000000000 Binary files a/games/default/files/mobs_animal/textures/mobs_sheep_cyan.png and /dev/null differ diff --git a/games/default/files/mobs_animal/textures/mobs_sheep_dark_green.png b/games/default/files/mobs_animal/textures/mobs_sheep_dark_green.png deleted file mode 100644 index d131546c0..000000000 Binary files a/games/default/files/mobs_animal/textures/mobs_sheep_dark_green.png and /dev/null differ diff --git a/games/default/files/mobs_animal/textures/mobs_sheep_dark_grey.png b/games/default/files/mobs_animal/textures/mobs_sheep_dark_grey.png deleted file mode 100644 index 85968ca29..000000000 Binary files a/games/default/files/mobs_animal/textures/mobs_sheep_dark_grey.png and /dev/null differ diff --git a/games/default/files/mobs_animal/textures/mobs_sheep_green.png b/games/default/files/mobs_animal/textures/mobs_sheep_green.png deleted file mode 100644 index 994ec1003..000000000 Binary files a/games/default/files/mobs_animal/textures/mobs_sheep_green.png and /dev/null differ diff --git a/games/default/files/mobs_animal/textures/mobs_sheep_grey.png b/games/default/files/mobs_animal/textures/mobs_sheep_grey.png deleted file mode 100644 index fec2b5cc4..000000000 Binary files a/games/default/files/mobs_animal/textures/mobs_sheep_grey.png and /dev/null differ diff --git a/games/default/files/mobs_animal/textures/mobs_sheep_magenta.png b/games/default/files/mobs_animal/textures/mobs_sheep_magenta.png deleted file mode 100644 index d81b8b652..000000000 Binary files a/games/default/files/mobs_animal/textures/mobs_sheep_magenta.png and /dev/null differ diff --git a/games/default/files/mobs_animal/textures/mobs_sheep_orange.png b/games/default/files/mobs_animal/textures/mobs_sheep_orange.png deleted file mode 100644 index 81663a02a..000000000 Binary files a/games/default/files/mobs_animal/textures/mobs_sheep_orange.png and /dev/null differ diff --git a/games/default/files/mobs_animal/textures/mobs_sheep_pink.png b/games/default/files/mobs_animal/textures/mobs_sheep_pink.png deleted file mode 100644 index 5006cadda..000000000 Binary files a/games/default/files/mobs_animal/textures/mobs_sheep_pink.png and /dev/null differ diff --git a/games/default/files/mobs_animal/textures/mobs_sheep_red.png b/games/default/files/mobs_animal/textures/mobs_sheep_red.png deleted file mode 100644 index 29f531385..000000000 Binary files a/games/default/files/mobs_animal/textures/mobs_sheep_red.png and /dev/null differ diff --git a/games/default/files/mobs_animal/textures/mobs_sheep_shaved.png b/games/default/files/mobs_animal/textures/mobs_sheep_shaved.png deleted file mode 100644 index b844059ae..000000000 Binary files a/games/default/files/mobs_animal/textures/mobs_sheep_shaved.png and /dev/null differ diff --git a/games/default/files/mobs_animal/textures/mobs_sheep_violet.png b/games/default/files/mobs_animal/textures/mobs_sheep_violet.png deleted file mode 100644 index a794a5f31..000000000 Binary files a/games/default/files/mobs_animal/textures/mobs_sheep_violet.png and /dev/null differ diff --git a/games/default/files/mobs_animal/textures/mobs_sheep_white.png b/games/default/files/mobs_animal/textures/mobs_sheep_white.png deleted file mode 100644 index b100a9499..000000000 Binary files a/games/default/files/mobs_animal/textures/mobs_sheep_white.png and /dev/null differ diff --git a/games/default/files/mobs_animal/textures/mobs_sheep_yellow.png b/games/default/files/mobs_animal/textures/mobs_sheep_yellow.png deleted file mode 100644 index ccf1aaea8..000000000 Binary files a/games/default/files/mobs_animal/textures/mobs_sheep_yellow.png and /dev/null differ diff --git a/games/default/files/mobs_animal/textures/mobs_wolf.png b/games/default/files/mobs_animal/textures/mobs_wolf.png deleted file mode 100644 index 26301e011..000000000 Binary files a/games/default/files/mobs_animal/textures/mobs_wolf.png and /dev/null differ diff --git a/games/default/files/mobs_monster/init.lua b/games/default/files/mobs_monster/init.lua deleted file mode 100644 index 774028768..000000000 --- a/games/default/files/mobs_monster/init.lua +++ /dev/null @@ -1,5 +0,0 @@ -local path = minetest.get_modpath("mobs_monster") - -dofile(path .. "/skeleton.lua") -- Blockmen -dofile(path .. "/spider.lua") -- AspireMint -dofile(path .. "/zombie.lua") -- Blockmen diff --git a/games/default/files/mobs_monster/models/mobs_spider.b3d b/games/default/files/mobs_monster/models/mobs_spider.b3d deleted file mode 100644 index e1b1662fc..000000000 Binary files a/games/default/files/mobs_monster/models/mobs_spider.b3d and /dev/null differ diff --git a/games/default/files/mobs_monster/models/mobs_spider.x b/games/default/files/mobs_monster/models/mobs_spider.x deleted file mode 100644 index f8f3fb67f..000000000 --- a/games/default/files/mobs_monster/models/mobs_spider.x +++ /dev/null @@ -1,10 +0,0 @@ -xof 0303txt 0032 - -Frame Root { - FrameTransformMatrix { - 1.000000, 0.000000, 0.000000, 0.000000, - 0.000000,-0.000000, 1.000000, 0.000000, - 0.000000, 1.000000, 0.000000, 0.000000, - 0.000000, 0.000000, 0.000000, 1.000000;; - } -} // End of Root diff --git a/games/default/files/mobs_monster/models/mobs_zombie.b3d b/games/default/files/mobs_monster/models/mobs_zombie.b3d deleted file mode 100644 index 2b0e909e3..000000000 Binary files a/games/default/files/mobs_monster/models/mobs_zombie.b3d and /dev/null differ diff --git a/games/default/files/mobs_monster/models/mobs_zombie.x b/games/default/files/mobs_monster/models/mobs_zombie.x deleted file mode 100644 index f8f3fb67f..000000000 --- a/games/default/files/mobs_monster/models/mobs_zombie.x +++ /dev/null @@ -1,10 +0,0 @@ -xof 0303txt 0032 - -Frame Root { - FrameTransformMatrix { - 1.000000, 0.000000, 0.000000, 0.000000, - 0.000000,-0.000000, 1.000000, 0.000000, - 0.000000, 1.000000, 0.000000, 0.000000, - 0.000000, 0.000000, 0.000000, 1.000000;; - } -} // End of Root diff --git a/games/default/files/mobs_monster/readme.md b/games/default/files/mobs_monster/readme.md deleted file mode 100644 index 299654cf5..000000000 --- a/games/default/files/mobs_monster/readme.md +++ /dev/null @@ -1,9 +0,0 @@ -MONSTER MOBS - -Spider - -- Found in dark holes inside desertstone (crystal biomes in ethereal), spiders wait for prey to amble past and strike. They are mostly docile during the day though unless hit. Will drop string when killed. - -Zombie - -Skeleton diff --git a/games/default/files/mobs_monster/skeleton.lua b/games/default/files/mobs_monster/skeleton.lua deleted file mode 100644 index 5c22cab53..000000000 --- a/games/default/files/mobs_monster/skeleton.lua +++ /dev/null @@ -1,61 +0,0 @@ -mobs:register_mob("mobs_monster:skeleton", { - type = "monster", - visual = "mesh", - mesh = "mobs_zombie.b3d", - textures = {"mobs_skeleton.png"}, - collisionbox = {-0.25, -1, -0.3, 0.25, 0.75, 0.3}, - animation = { - speed_normal = 10, speed_run = 15, - stand_start = 0, stand_end = 79, - walk_start = 168, walk_end = 188, - run_start = 168, run_end = 188 - }, - makes_footstep_sound = true, - sounds = { - random = "mobs_skeleton", - war_cry = "mobs_zombie.3", - attack = "mobs_zombie.2", - damage = "mobs_zombie_hit", - death = "mobs_zombie_death", - }, - hp_min = 10, - hp_max = 15, - light_damage = 1, - lava_damage = 5, - damage = 1, - group_attack = true, - view_range = 15, - walk_chance = 75, - walk_velocity = 0.5, - run_velocity = 0.5, - jump = false, - drops = function(pos) - if rawget(_G, "experience") then - experience.add_orb(math.random(2, 4), pos) - end - return { - {name = "default:bone", chance = 2}, - {name = "default:bone", chance = 2} - } - end, - after_activate = function(self, staticdata, def, dtime) - -- replace skeleton using the old directx model - if self.mesh == "mobs_zombie.x" then - local pos = self.object:get_pos() - if pos then - minetest.add_entity(pos, self.name) - self.object:remove() - end - end - end, -}) - -mobs:spawn({ - name = "mobs_monster:skeleton", - nodes = {"default:dirt", "default:sandstone", "default:sand", "default:redsand", "default:stone", "default:snowblock", "default:dirt_with_snow", "default:dirt_with_grass", "default:dirt_with_dry_grass", "default:cobble", "default:mossycobble"}, - max_light = 10, - chance = 15000, - min_height = -64, -}) - -mobs:register_egg("mobs_monster:skeleton", "Skeleton egg", "mobs_chicken_egg.png^default_bone.png", 1) diff --git a/games/default/files/mobs_monster/sounds/mobs_skeleton.ogg b/games/default/files/mobs_monster/sounds/mobs_skeleton.ogg deleted file mode 100644 index e62217d30..000000000 Binary files a/games/default/files/mobs_monster/sounds/mobs_skeleton.ogg and /dev/null differ diff --git a/games/default/files/mobs_monster/sounds/mobs_spider.ogg b/games/default/files/mobs_monster/sounds/mobs_spider.ogg deleted file mode 100644 index 41050067a..000000000 Binary files a/games/default/files/mobs_monster/sounds/mobs_spider.ogg and /dev/null differ diff --git a/games/default/files/mobs_monster/sounds/mobs_zombie.1.ogg b/games/default/files/mobs_monster/sounds/mobs_zombie.1.ogg deleted file mode 100644 index 501395ed2..000000000 Binary files a/games/default/files/mobs_monster/sounds/mobs_zombie.1.ogg and /dev/null differ diff --git a/games/default/files/mobs_monster/sounds/mobs_zombie.2.ogg b/games/default/files/mobs_monster/sounds/mobs_zombie.2.ogg deleted file mode 100644 index 88b052fc2..000000000 Binary files a/games/default/files/mobs_monster/sounds/mobs_zombie.2.ogg and /dev/null differ diff --git a/games/default/files/mobs_monster/sounds/mobs_zombie.3.ogg b/games/default/files/mobs_monster/sounds/mobs_zombie.3.ogg deleted file mode 100644 index 685692fe9..000000000 Binary files a/games/default/files/mobs_monster/sounds/mobs_zombie.3.ogg and /dev/null differ diff --git a/games/default/files/mobs_monster/sounds/mobs_zombie_attack.ogg b/games/default/files/mobs_monster/sounds/mobs_zombie_attack.ogg deleted file mode 100644 index 79b886bfb..000000000 Binary files a/games/default/files/mobs_monster/sounds/mobs_zombie_attack.ogg and /dev/null differ diff --git a/games/default/files/mobs_monster/sounds/mobs_zombie_death.ogg b/games/default/files/mobs_monster/sounds/mobs_zombie_death.ogg deleted file mode 100644 index ded4ddc8e..000000000 Binary files a/games/default/files/mobs_monster/sounds/mobs_zombie_death.ogg and /dev/null differ diff --git a/games/default/files/mobs_monster/sounds/mobs_zombie_hit.ogg b/games/default/files/mobs_monster/sounds/mobs_zombie_hit.ogg deleted file mode 100644 index 30217b10c..000000000 Binary files a/games/default/files/mobs_monster/sounds/mobs_zombie_hit.ogg and /dev/null differ diff --git a/games/default/files/mobs_monster/spider.lua b/games/default/files/mobs_monster/spider.lua deleted file mode 100644 index ec0c1bcb2..000000000 --- a/games/default/files/mobs_monster/spider.lua +++ /dev/null @@ -1,143 +0,0 @@ --- Spider by AspireMint (fishyWET (CC-BY-SA 3.0 license for texture) -mobs:register_mob("mobs_monster:spider", { - docile_by_day = true, - group_attack = true, - type = "monster", - passive = false, - damage = 2, - hp_min = 15, - hp_max = 20, - collisionbox = {-0.8, -0.5, -0.8, 0.8, 0, 0.8}, - visual = "mesh", - mesh = "mobs_spider.b3d", - textures = { - {"mobs_spider.png"}, - {"mobs_spider_grey.png"}, - {"mobs_spider_orange.png"}, - }, - sounds = { - random = "mobs_spider", - attack = "mobs_spider", - }, - run_velocity = 3, - view_range = 15, - floats = 0, - drops = function(pos) - if rawget(_G, "experience") then - experience.add_orb(math.random(2, 4), pos) - end - return { - {name = "farming:string"}, - {name = "farming:string", chance = 2} - } - end, - water_damage = 5, - animation = { - speed_normal = 15, - speed_run = 20, - stand_start = 0, - stand_end = 0, - walk_start = 1, - walk_end = 21, - run_start = 1, - run_end = 21, - punch_start = 25, - punch_end = 45, - }, - after_activate = function(self, staticdata, def, dtime) - -- replace spider using the old directx model - if self.mesh == "mobs_spider.x" then - local pos = self.object:get_pos() - if pos then - minetest.add_entity(pos, self.name) - self.object:remove() - end - end - end, -}) - -mobs:spawn({ - name = "mobs_monster:spider", - nodes = {"default:dirt", "default:sandstone", "default:sand", "default:redsand", "default:redsand", "default:stone", "default:dirt_with_snow", "default:dirt_with_grass", "default:dirt_with_dry_grass", "default:cobble", "default:mossycobble"}, - max_light = 12, - chance = 20000, - min_height = -64, -}) - -mobs:register_egg("mobs_monster:spider", "Spider egg", "mobs_chicken_egg.png^mobs_cobweb.png", 1) -mobs:register_egg("mobs_monster:small_spider", "Small Spider egg", "mobs_chicken_egg.png^mobs_cobweb.png", 1) - --- Small spider - -mobs:register_mob("mobs_monster:small_spider", { - --docile_by_day = true, - group_attack = true, - type = "animal", - passive = false, - damage = 1, - hp_min = 5, - hp_max = 10, - collisionbox = {-0.3, -0.15, -0.3, 0.3, 0.05, 0.3}, - visual = "mesh", - mesh = "mobs_spider.b3d", - textures = { - {"mobs_spider.png"}, - {"mobs_spider_grey.png"}, - {"mobs_spider_orange.png"}, - }, - visual_size = {x = 0.3, y = 0.3}, - sounds = { - random = "mobs_spider", - attack = "mobs_spider", - }, - run_velocity = 3, - view_range = 10, - floats = 0, - drops = function(pos) - if rawget(_G, "experience") then - experience.add_orb(math.random(1, 2), pos) - end - return { - {name = "farming:string"} - } - end, - water_damage = 5, - animation = { - speed_normal = 15, - speed_run = 20, - stand_start = 0, - stand_end = 0, - walk_start = 1, - walk_end = 21, - run_start = 1, - run_end = 21, - punch_start = 25, - punch_end = 45, - }, - after_activate = function(self, staticdata, def, dtime) - -- replace spider using the old directx model - if self.mesh == "mobs_spider.x" then - local pos = self.object:get_pos() - if pos then - minetest.add_entity(pos, self.name) - self.object:remove() - end - end - end, -}) - -mobs:spawn({ - name = "mobs_monster:small_spider", - nodes = {"default:dirt", "default:sandstone", "default:sand", "default:redsand", "default:redsand", "default:stone", "default:dirt_with_snow", "default:dirt_with_grass", "default:dirt_with_dry_grass", "default:cobble", "default:mossycobble"}, - chance = 20000, - min_height = -64, -}) - -minetest.register_craft({ - output = "mobs:cobweb", - recipe = { - {"farming:string", "farming:string", "farming:string"}, - {"farming:string", "farming:string", "farming:string"}, - {"farming:string", "farming:string", "farming:string"}, - } -}) diff --git a/games/default/files/mobs_monster/textures/mobs_skeleton.png b/games/default/files/mobs_monster/textures/mobs_skeleton.png deleted file mode 100644 index 1f1b42224..000000000 Binary files a/games/default/files/mobs_monster/textures/mobs_skeleton.png and /dev/null differ diff --git a/games/default/files/mobs_monster/textures/mobs_spider.png b/games/default/files/mobs_monster/textures/mobs_spider.png deleted file mode 100644 index ed34c857d..000000000 Binary files a/games/default/files/mobs_monster/textures/mobs_spider.png and /dev/null differ diff --git a/games/default/files/mobs_monster/textures/mobs_spider_grey.png b/games/default/files/mobs_monster/textures/mobs_spider_grey.png deleted file mode 100644 index eccd2025c..000000000 Binary files a/games/default/files/mobs_monster/textures/mobs_spider_grey.png and /dev/null differ diff --git a/games/default/files/mobs_monster/textures/mobs_spider_orange.png b/games/default/files/mobs_monster/textures/mobs_spider_orange.png deleted file mode 100644 index 92ef0986f..000000000 Binary files a/games/default/files/mobs_monster/textures/mobs_spider_orange.png and /dev/null differ diff --git a/games/default/files/mobs_monster/textures/mobs_zombie.png b/games/default/files/mobs_monster/textures/mobs_zombie.png deleted file mode 100644 index 629fdf93b..000000000 Binary files a/games/default/files/mobs_monster/textures/mobs_zombie.png and /dev/null differ diff --git a/games/default/files/mobs_monster/textures/zombie_head.png b/games/default/files/mobs_monster/textures/zombie_head.png deleted file mode 100644 index 431595e3d..000000000 Binary files a/games/default/files/mobs_monster/textures/zombie_head.png and /dev/null differ diff --git a/games/default/files/mobs_monster/zombie.lua b/games/default/files/mobs_monster/zombie.lua deleted file mode 100644 index 0677d0978..000000000 --- a/games/default/files/mobs_monster/zombie.lua +++ /dev/null @@ -1,60 +0,0 @@ -mobs:register_mob("mobs_monster:zombie", { - type = "monster", - visual = "mesh", - mesh = "mobs_zombie.b3d", - textures = {"mobs_zombie.png"}, - collisionbox = {-0.25, -1, -0.3, 0.25, 0.75, 0.3}, - animation = { - speed_normal = 10, speed_run = 15, - stand_start = 0, stand_end = 79, - walk_start = 168, walk_end = 188, - run_start = 168, run_end = 188 - }, - makes_footstep_sound = true, - sounds = { - random = "mobs_zombie.1", - war_cry = "mobs_zombie.3", - attack = "mobs_zombie.2", - damage = "mobs_zombie_hit", - death = "mobs_zombie_death", - }, - hp_min = 15, - hp_max = 25, - light_damage = 1, - damage = 2, - group_attack = true, - view_range = 15, - walk_chance = 75, - walk_velocity = 0.5, - run_velocity = 0.5, - jump = false, - drops = function(pos) - if rawget(_G, "experience") then - experience.add_orb(math.random(3, 5), pos) - end - return { - {name = "mobs_monster:rotten_flesh"}, - {name = "mobs_monster:rotten_flesh", chance = 2}, - {name = "mobs_monster:rotten_flesh", chance = 2} - } - end, - after_activate = function(self, staticdata, def, dtime) - -- replace zombies using the old directx model - if self.mesh == "mobs_zombie.x" then - local pos = self.object:get_pos() - if pos then - minetest.add_entity(pos, self.name) - self.object:remove() - end - end - end, }) - -mobs:spawn({ - name = "mobs_monster:zombie", - nodes = {"default:dirt", "default:sandstone", "default:sand", "default:redsand", "default:stone", "default:snowblock", "default:dirt_with_snow", "default:dirt_with_grass", "default:dirt_with_dry_grass", "default:cobble", "default:mossycobble"}, - max_light = 10, - chance = 15000, - min_height = -64, -}) - -mobs:register_egg("mobs_monster:zombie", "Zombie Head", "zombie_head.png", 0) diff --git a/games/default/files/mobs_redo/api.lua b/games/default/files/mobs_redo/api.lua deleted file mode 100644 index e71123fdb..000000000 --- a/games/default/files/mobs_redo/api.lua +++ /dev/null @@ -1,4197 +0,0 @@ --- Mobs Api - -local use_cmi = minetest.global_exists("cmi") - -mobs = { - mod = "redo", - version = "20190630", - invis = minetest.global_exists("invisibility") and invisibility or {}, -} - --- creative check -local creative_cache = minetest.settings:get_bool("creative_mode") -function mobs.is_creative(name) - return creative_cache or minetest.check_player_privs(name, {creative = true}) -end - --- localize math functions -local pi = math.pi -local square = math.sqrt -local sin = math.sin -local cos = math.cos -local abs = math.abs -local min = math.min -local max = math.max -local atann = math.atan -local random = math.random -local floor = math.floor -local atan = function(x) - if not x or x ~= x then - --error("atan bassed NaN") - return 0 - else - return atann(x) - end -end - - --- Load settings -local mobs_spawn = minetest.settings:get_bool("mobs_spawn") ~= false -local peaceful_only = minetest.settings:get_bool("only_peaceful_mobs") -local disable_blood = minetest.settings:get_bool("mobs_disable_blood") ~= true -local mobs_drop_items = minetest.settings:get_bool("mobs_drop_items") ~= false -local mobs_griefing = minetest.settings:get_bool("mobs_griefing") ~= false -local creative = minetest.settings:get_bool("creative_mode") -local spawn_protected = minetest.settings:get_bool("mobs_spawn_protected") ~= false -local remove_far = minetest.settings:get_bool("remove_far_mobs") ~= false -local difficulty = tonumber(minetest.settings:get("mob_difficulty")) or 1.0 -local show_health = minetest.settings:get_bool("mob_show_health") ~= true -local max_per_block = tonumber(minetest.settings:get("max_objects_per_block")) -local mob_chance_multiplier = tonumber(minetest.settings:get("mob_chance_multiplier") or 1) -local lifetime = 1200 -- 20 min -local spawn_interval = 10 -if not minetest.is_singleplayer() then - lifetime = 300 -- 5 min - spawn_interval = 60 -end - --- Peaceful mode message so players will know there are no monsters -if peaceful_only then - minetest.register_on_joinplayer(function(player) - minetest.chat_send_player(player:get_player_name(), - "** Peaceful Mode Active - No Monsters Will Spawn") - end) -end - --- calculate aoc range for mob count -local aoc_range = tonumber(minetest.settings:get("active_block_range")) * 16 - --- pathfinding settings -local enable_pathfinding = minetest.is_singleplayer() -- disable pathfinder in multiplayer -local stuck_timeout = 3 -- how long before mob gets stuck in place and starts searching -local stuck_path_timeout = 10 -- how long will mob follow path before giving up - --- default nodes -local node_fire = "fire:basic_flame" -local node_permanent_flame = "fire:permanent_flame" -local node_ice = "default:ice" -local node_snowblock = "default:snowblock" -local node_snow = "default:snow" -mobs.fallback_node = minetest.registered_aliases["mapgen_dirt"] or "default:dirt" - -local mob_class = { - attack_type = "dogfight", - stepheight = 1.1, - fly_in = "air", - owner = "", - order = "", - jump_height = 4, - lifetimer = lifetime, - physical = true, - collisionbox = {-0.25, -0.25, -0.25, 0.25, 0.25, 0.25}, - visual_size = {x = 1, y = 1}, - makes_footstep_sound = false, - view_range = 5, - walk_velocity = 1, - run_velocity = 2, - light_damage = 0, - light_damage_min = 12, - light_damage_max = 15, - water_damage = 0, - lava_damage = 5, - suffocation = 2, - fall_damage = 1, - fall_speed = -10, -- must be lower than -2 (default: -10) - drops = {}, - armor = 100, - runaway = false, - sounds = {}, - jump = true, - knock_back = true, - walk_chance = 50, - stand_chance = 30, - attack_chance = 5, - passive = false, - blood_amount = 5, - blood_texture = "mobs_blood.png", - shoot_offset = 0, - floats = 1, -- floats in water by default - replace_offset = 0, - timer = 0, - env_damage_timer = 0, -- only used when state = "attack" - tamed = false, - pause_timer = 0, - horny = false, - hornytimer = 0, - child = false, - gotten = false, - health = 0, - reach = 2, - htimer = 0, - docile_by_day = false, - time_of_day = 0.5, - fear_height = 0, - runaway_timer = 0, - immune_to = {}, - explosion_timer = 3, - allow_fuse_reset = true, - stop_to_explode = true, - dogshoot_count = 0, - dogshoot_count_max = 5, - dogshoot_count2_max = 5, - group_attack = false, - attack_monsters = false, - attack_animals = false, - attack_players = true, - attack_npcs = true, - facing_fence = false, - _cmi_is_mob = true, -} -local mob_class_meta = {__index = mob_class} - --- play sound -function mob_class:mob_sound(sound) - - if sound then - minetest.sound_play(sound, { - object = self.object, - gain = 1.0, - max_hear_distance = self.sounds.distance - }) - end -end - - --- attack player/mob -function mob_class:do_attack(player) - - if self.state == "attack" then - return - end - - self.attack = player - self.state = "attack" - - if random(0, 100) < 90 then - self:mob_sound(self.sounds.war_cry) - end -end - - --- calculate distance -local get_distance = function(a, b) - - local x, y, z = a.x - b.x, a.y - b.y, a.z - b.z - - return square(x * x + y * y + z * z) -end - - --- collision function based on jordan4ibanez' open_ai mod -function mob_class:collision() - - local pos = self.object:get_pos() - local vel = self.object:get_velocity() - local x, z = 0, 0 - local width = -self.collisionbox[1] + self.collisionbox[4] + 0.5 - - for _,object in ipairs(minetest.get_objects_inside_radius(pos, width)) do - - if object:is_player() - or (object:get_luaentity() - and object:get_luaentity()._cmi_is_mob == true - and object ~= self.object) then - - local pos2 = object:get_pos() - local vec = {x = pos.x - pos2.x, z = pos.z - pos2.z} - - x = x + vec.x - z = z + vec.z - end - end - - return({x, z}) -end - - --- move mob in facing direction -function mob_class:set_velocity(v) - - local c_x, c_y = 0, 0 - - -- can mob be pushed, if so calculate direction - if self.pushable then - c_x, c_y = unpack(self:collision()) - end - - -- halt mob if it has been ordered to stay - if self.order == "stand" then - self.object:set_velocity({x = 0, y = 0, z = 0}) - return - end - - local yaw = (self.object:get_yaw() or 0) + self.rotate - - self.object:set_velocity({ - x = (sin(yaw) * -v) + c_x, - y = self.object:get_velocity().y, - z = (cos(yaw) * v) + c_y, - }) -end - --- global version of above function -function mobs:set_velocity(entity, v) - mob_class.set_velocity(entity, v) -end - - --- calculate mob velocity -function mob_class:get_velocity() - - local v = self.object:get_velocity() - - return (v.x * v.x + v.z * v.z) ^ 0.5 -end - - --- set and return valid yaw -function mob_class:set_yaw(yaw, delay) - - if not yaw or yaw ~= yaw then - yaw = 0 - end - - delay = delay or 0 - - if delay == 0 then - self.object:set_yaw(yaw) - return yaw - end - - self.target_yaw = yaw - self.delay = delay - - return self.target_yaw -end - --- global function to set mob yaw -function mobs:yaw(entity, yaw, delay) - mob_class.set_yaw(entity, yaw, delay) -end - - --- set defined animation -function mob_class:set_animation(anim, force) - - if not self.animation - or not anim then return end - - self.animation.current = self.animation.current or "" - - -- only set different animation for attacks when using same set - if force ~= true and anim ~= "punch" and anim ~= "shoot" - and string.find(self.animation.current, anim) then - return - end - - -- check for more than one animation - local num = 0 - - for n = 1, 4 do - - if self.animation[anim .. n .. "_start"] - and self.animation[anim .. n .. "_end"] then - num = n - end - end - - -- choose random animation from set - if num > 0 then - num = random(0, num) - anim = anim .. (num ~= 0 and num or "") - end - - if anim == self.animation.current - or not self.animation[anim .. "_start"] - or not self.animation[anim .. "_end"] then - return - end - - self.animation.current = anim - - self.object:set_animation({ - x = self.animation[anim .. "_start"], - y = self.animation[anim .. "_end"]}, - self.animation[anim .. "_speed"] or self.animation.speed_normal or 15, - 0, self.animation[anim .. "_loop"] ~= false) -end - --- above function exported for mount.lua -function mobs:set_animation(entity, anim) - mob_class.set_animation(entity, anim) -end - - --- check line of sight (BrunoMine) -local line_of_sight = function(self, pos1, pos2, stepsize) - - stepsize = stepsize or 1 - - local s, pos = minetest.line_of_sight(pos1, pos2, stepsize) - - -- normal walking and flying mobs can see you through air - if s == true then - return true - end - - -- New pos1 to be analyzed - local npos1 = {x = pos1.x, y = pos1.y, z = pos1.z} - - local r, pos = minetest.line_of_sight(npos1, pos2, stepsize) - - -- Checks the return - if r == true then return true end - - -- Nodename found - local nn = minetest.get_node(pos).name - - -- Target Distance (td) to travel - local td = get_distance(pos1, pos2) - - -- Actual Distance (ad) traveled - local ad = 0 - - -- It continues to advance in the line of sight in search of a real - -- obstruction which counts as 'normal' nodebox. - while minetest.registered_nodes[nn] - and (minetest.registered_nodes[nn].walkable == false) do --- or minetest.registered_nodes[nn].drawtype == "nodebox") do - - -- Check if you can still move forward - if td < ad + stepsize then - return true -- Reached the target - end - - -- Moves the analyzed pos - local d = get_distance(pos1, pos2) - - npos1.x = ((pos2.x - pos1.x) / d * stepsize) + pos1.x - npos1.y = ((pos2.y - pos1.y) / d * stepsize) + pos1.y - npos1.z = ((pos2.z - pos1.z) / d * stepsize) + pos1.z - - -- NaN checks - if d == 0 - or npos1.x ~= npos1.x - or npos1.y ~= npos1.y - or npos1.z ~= npos1.z then - return false - end - - ad = ad + stepsize - - -- scan again - r, pos = minetest.line_of_sight(npos1, pos2, stepsize) - - if r == true then return true end - - -- New Nodename found - nn = minetest.get_node(pos).name - - end - - return false -end - - --- check line of sight (by BrunoMine, tweaked by Astrobe) -local new_line_of_sight = function(self, pos1, pos2, stepsize) - - if not pos1 or not pos2 then return end - - stepsize = stepsize or 1 - - local stepv = vector.multiply(vector.direction(pos1, pos2), stepsize) - - local s, pos = minetest.line_of_sight(pos1, pos2, stepsize) - - -- normal walking and flying mobs can see you through air - if s == true then return true end - - -- New pos1 to be analyzed - local npos1 = {x = pos1.x, y = pos1.y, z = pos1.z} - - local r, pos = minetest.line_of_sight(npos1, pos2, stepsize) - - -- Checks the return - if r == true then return true end - - -- Nodename found - local nn = minetest.get_node(pos).name - - -- It continues to advance in the line of sight in search of a real - -- obstruction which counts as 'normal' nodebox. - while minetest.registered_nodes[nn] - and (minetest.registered_nodes[nn].walkable == false) do --- or minetest.registered_nodes[nn].drawtype == "nodebox") do - - npos1 = vector.add(npos1, stepv) - - if get_distance(npos1, pos2) < stepsize then return true end - - -- scan again - r, pos = minetest.line_of_sight(npos1, pos2, stepsize) - - if r == true then return true end - - -- New Nodename found - nn = minetest.get_node(pos).name - end - - return false -end - --- check line of sight using raycasting (thanks Astrobe) -local ray_line_of_sight = function(self, pos1, pos2) - - local ray = minetest.raycast(pos1, pos2, true, false) - local thing = ray:next() - - while thing do - - if thing.type == "object" - and thing.ref ~= self.object - and not thing.ref:is_player() then return false end - - if thing.type == "node" then - local name = minetest.get_node(thing.under).name - - if minetest.registered_items[name] - and minetest.registered_items[name].walkable then return false end - end - - thing = ray:next() - end - - return true -end - -function mob_class:line_of_sight(pos1, pos2, stepsize) - return line_of_sight(self, pos1, pos2, stepsize) --- return ray_line_of_sight(self, pos1, pos2) -- MT 5.0 -end - --- global function -function mobs:line_of_sight(entity, pos1, pos2, stepsize) - return entity:line_of_sight(pos1, pos2, stepsize) -end - - -function mob_class:attempt_flight_correction() - - if self:flight_check() then return true end - - -- We are not flying in what we are supposed to. - -- See if we can find intended flight medium and return to it - local pos = self.object:get_pos() - local searchnodes = self.fly_in - - if type(searchnodes) == "string" then - searchnodes = {self.fly_in} - end - - local flyable_nodes = minetest.find_nodes_in_area( - {x = pos.x - 1, y = pos.y - 1, z = pos.z - 1}, - {x = pos.x + 1, y = pos.y + 1, z = pos.z + 1}, - searchnodes) - - if #flyable_nodes < 1 then - return false - end - - local escape_target = flyable_nodes[math.random(1,#flyable_nodes)] - local escape_direction = vector.direction(pos, escape_target) - - self.object:set_velocity( - vector.multiply(escape_direction, self.run_velocity)) - - return true -end - - --- are we flying in what we are suppose to? (taikedz) -function mob_class:flight_check() - - local def = minetest.registered_nodes[self.standing_in] - - if not def then return false end -- nil check - - if type(self.fly_in) == "string" - and self.standing_in == self.fly_in then - - return true - - elseif type(self.fly_in) == "table" then - - for _,fly_in in pairs(self.fly_in) do - - if self.standing_in == fly_in then - - return true - end - end - end - - -- stops mobs getting stuck inside stairs and plantlike nodes - if def.drawtype ~= "airlike" - and def.drawtype ~= "liquid" - and def.drawtype ~= "flowingliquid" then - return true - end - - return false -end - - --- if self.stay_near set then check periodically for nodes and turn to face/move -function mob_class:do_stay_near() - - if not self.stay_near then return false end - - local pos = self.object:get_pos() - local searchnodes = self.stay_near[1] - local chance = self.stay_near[2] or 10 - - if random(1, chance) > 1 then - return false - end - - if type(searchnodes) == "string" then - searchnodes = {self.stay_near[1]} - end - - local r = self.view_range - local nearby_nodes = minetest.find_nodes_in_area( - {x = pos.x - r, y = pos.y - 1, z = pos.z - r}, - {x = pos.x + r, y = pos.y + 1, z = pos.z + r}, - searchnodes) - - if #nearby_nodes < 1 then - return false - end - - local target = nearby_nodes[math.random(1, #nearby_nodes)] - local direction = vector.direction(pos, target) - - local vec = { - x = target.x - pos.x, - z = target.z - pos.z - } - - yaw = (atan(vec.z / vec.x) + pi / 2) - self.rotate - - if target.x > pos.x then - yaw = yaw + pi - end - - yaw = self:set_yaw(yaw, 4) - - self:set_animation("walk") - - self:set_velocity(self.walk_velocity) - - return true -end - - --- custom particle effects -local effect = function(pos, amount, texture, min_size, max_size, radius, gravity, glow) - - radius = radius or 2 - min_size = min_size or 0.5 - max_size = max_size or 1 - gravity = gravity or -10 - glow = glow or 0 - - minetest.add_particlespawner({ - amount = amount, - time = 0.25, - minpos = pos, - maxpos = pos, - minvel = {x = -radius, y = -radius, z = -radius}, - maxvel = {x = radius, y = radius, z = radius}, - minacc = {x = 0, y = gravity, z = 0}, - maxacc = {x = 0, y = gravity, z = 0}, - minexptime = 0.1, - maxexptime = 1, - minsize = min_size, - maxsize = max_size, - texture = texture, - glow = glow, - }) -end - - --- update nametag colour -function mob_class:update_tag() - - local col = "#00FF00" - local qua = self.hp_max / 4 - - if self.health <= floor(qua * 3) then - col = "#FFFF00" - end - - if self.health <= floor(qua * 2) then - col = "#FF6600" - end - - if self.health <= floor(qua) then - col = "#FF0000" - end - - self.object:set_properties({ - nametag = self.nametag, - nametag_color = col - }) -end - - --- drop items -function mob_class:item_drop() - local pos = self.object:get_pos() - self.drops = type(self.drops) == "function" and self.drops(pos) or self.drops -- XP - - -- check for nil or no drops - if not self.drops or #self.drops == 0 then - return - end - - -- no drops if disabled by setting - if not mobs_drop_items then return end - - -- no drops for child mobs - if self.child then return end - - -- was mob killed by player? - local death_by_player = self.cause_of_death and self.cause_of_death.puncher - and self.cause_of_death.puncher:is_player() or nil - - local obj, item, num - - for n = 1, #self.drops do - - if random(1, self.drops[n].chance or 1) == 1 then - - num = random(self.drops[n].min or 1, self.drops[n].max or 1) - item = self.drops[n].name - - -- cook items on a hot death - if self.cause_of_death.hot then - - local output = minetest.get_craft_result({ - method = "cooking", width = 1, items = {item}}) - - if output and output.item and not output.item:is_empty() then - item = output.item:get_name() - end - end - - -- only drop rare items (drops.min=0) if killed by player - if death_by_player then - obj = minetest.add_item(pos, ItemStack(item .. " " .. num)) - - elseif self.drops[n].min ~= 0 then - obj = minetest.add_item(pos, ItemStack(item .. " " .. num)) - end - - if obj and obj:get_luaentity() then - - obj:set_velocity({ - x = random(-10, 10) / 9, - y = 6, - z = random(-10, 10) / 9, - }) - - elseif obj then - obj:remove() -- item does not exist - end - end - end - - self.drops = {} -end - - --- check if mob is dead or only hurt -function mob_class:check_for_death(cmi_cause) - - -- has health actually changed? - if self.health == self.old_health and self.health > 0 then - return - end - - self.old_health = self.health - - -- still got some health? play hurt sound - if self.health > 0 then - - self:mob_sound(self.sounds.damage) - - -- make sure health isn't higher than max - if self.health > self.hp_max then - self.health = self.hp_max - end - - -- backup nametag so we can show health stats - if not self.nametag2 then - self.nametag2 = self.nametag or "" - end - - if show_health - and (cmi_cause and cmi_cause.type == "punch") then - - self.htimer = 2 - self.nametag = "Health: " .. self.health .. " / " .. self.hp_max - - self:update_tag() - end - - return false - end - - self.cause_of_death = cmi_cause - - -- drop items - self:item_drop() - - self:mob_sound(self.sounds.death) - - local pos = self.object:get_pos() - - -- execute custom death function - if self.on_die then - - self:on_die(pos) - - if use_cmi then - cmi.notify_die(self.object, cmi_cause) - end - - self.object:remove() - - return true - end - - -- default death function and die animation (if defined) - if self.animation - and self.animation.die_start - and self.animation.die_end then - - local frames = self.animation.die_end - self.animation.die_start - local speed = self.animation.die_speed or 15 - local length = max(frames / speed, 0) - - self.attack = nil - self.v_start = false - self.timer = 0 - self.blinktimer = 0 - self.passive = true - self.state = "die" - self:set_velocity(0) - self:set_animation("die") - - minetest.after(length, function(self) - - if use_cmi and self.object:get_luaentity() then - cmi.notify_die(self.object, cmi_cause) - end - - self.object:remove() - end, self) - else - - if use_cmi then - cmi.notify_die(self.object, cmi_cause) - end - - self.object:remove() - end - --- effect(pos, 20, "item_smoke.png") - - return true -end - - --- is mob facing a cliff -function mob_class:is_at_cliff() - - if self.fear_height == 0 then -- 0 for no falling protection! - return false - end - - local yaw = self.object:get_yaw() - local dir_x = -sin(yaw) * (self.collisionbox[4] + 0.5) - local dir_z = cos(yaw) * (self.collisionbox[4] + 0.5) - local pos = self.object:get_pos() - local ypos = pos.y + self.collisionbox[2] -- just above floor - - if minetest.line_of_sight( - {x = pos.x + dir_x, y = ypos, z = pos.z + dir_z}, - {x = pos.x + dir_x, y = ypos - self.fear_height, z = pos.z + dir_z} - , 1) then - - return true - end - - return false -end - - --- get node but use fallback for nil or unknown -local node_ok = function(pos, fallback) - - fallback = fallback or mobs.fallback_node - - local node = minetest.get_node_or_nil(pos) - - if node and minetest.registered_nodes[node.name] then - return node - end - - return minetest.registered_nodes[fallback] -end - - --- environmental damage (water, lava, fire, light etc.) -function mob_class:do_env_damage() - - -- feed/tame text timer (so mob 'full' messages dont spam chat) - if self.htimer > 0 then - self.htimer = self.htimer - 1 - end - - -- reset nametag after showing health stats - if self.htimer < 1 and self.nametag2 then - - self.nametag = self.nametag2 - self.nametag2 = nil - - self:update_tag() - end - - local pos = self.object:get_pos() - - self.time_of_day = minetest.get_timeofday() - - -- remove mob if standing inside ignore node - if self.standing_in == "ignore" then - self.object:remove() - return - end - - -- is mob light sensative, or scared of the dark :P - if self.light_damage ~= 0 then - - local light = minetest.get_node_light(pos) or 0 - if light >= self.light_damage_min - and light <= self.light_damage_max then - self.health = self.health - self.light_damage - pos.y = pos.y + 0.75 -- for particle effect position - effect(pos, 5, "heart.png") - if show_health then - self.nametag = "Health: " .. self.health .. " / " .. self.hp_max - self:update_tag() - end - if self:check_for_death({type = "light"}) then return end - end - end - - local nodef = minetest.registered_nodes[self.standing_in] - - pos.y = pos.y + 1 -- for particle effect position - - -- water - if self.water_damage - and nodef.groups.water then - - if self.water_damage ~= 0 then - - self.health = self.health - self.water_damage - - effect(pos, 5, "bubble.png", nil, nil, 1, nil) - - if self:check_for_death({type = "environment", - pos = pos, node = self.standing_in}) then return end - end - - -- lava or fire or ignition source - elseif self.lava_damage - and nodef.groups.igniter then --- and (nodef.groups.lava --- or self.standing_in == node_fire --- or self.standing_in == node_permanent_flame) then - - if self.lava_damage ~= 0 then - - self.health = self.health - self.lava_damage - - effect(pos, 5, "fire_basic_flame.png", nil, nil, 1, nil) - - if self:check_for_death({type = "environment", - pos = pos, node = self.standing_in, hot = true}) then return end - end - - -- damage_per_second node check - elseif nodef.damage_per_second ~= 0 then - - self.health = self.health - nodef.damage_per_second - - effect(pos, 5, "item_smoke.png") - - if self:check_for_death({type = "environment", - pos = pos, node = self.standing_in}) then return end - end ---[[ - --- suffocation inside solid node - if self.suffocation ~= 0 - and nodef.walkable == true - and nodef.groups.disable_suffocation ~= 1 - and nodef.drawtype == "normal" then - - self.health = self.health - self.suffocation - - if self:check_for_death({type = "environment", - pos = pos, node = self.standing_in}) then return end - end -]] - self:check_for_death({type = "unknown"}) -end - - --- jump if facing a solid node (not fences or gates) -function mob_class:do_jump() - - if not self.jump - or self.jump_height == 0 - or self.fly - or self.child - or self.order == "stand" then - return false - end - - self.facing_fence = false - - -- something stopping us while moving? - if self.state ~= "stand" - and self:get_velocity() > 0.5 - and self.object:get_velocity().y ~= 0 then - return false - end - - local pos = self.object:get_pos() - local yaw = self.object:get_yaw() - - -- what is mob standing on? - pos.y = pos.y + self.collisionbox[2] - 0.2 - - local nod = node_ok(pos) - ---print ("standing on:", nod.name, pos.y) - - if minetest.registered_nodes[nod.name].walkable == false then - return false - end - - -- where is front - local dir_x = -sin(yaw) * (self.collisionbox[4] + 0.5) - local dir_z = cos(yaw) * (self.collisionbox[4] + 0.5) - - -- what is in front of mob? - local nod = node_ok({ - x = pos.x + dir_x, - y = pos.y + 0.5, - z = pos.z + dir_z - }) - - -- thin blocks that do not need to be jumped - if nod.name == node_snow then - return false - end - ---print ("in front:", nod.name, pos.y + 0.5) - - if self.walk_chance == 0 - or minetest.registered_items[nod.name].walkable then - - if not nod.name:find("fence") - and not nod.name:find("gate") then - - local v = self.object:get_velocity() - - v.y = self.jump_height - - self:set_animation("jump") -- only when defined - - self.object:set_velocity(v) - - -- when in air move forward - minetest.after(0.3, function(self, v) - - if self.object:get_luaentity() then - - self.object:set_acceleration({ - x = v.x * 2,--1.5, - y = 0, - z = v.z * 2,--1.5 - }) - end - end, self, v) - - if self:get_velocity() > 0 then - self:mob_sound(self.sounds.jump) - end - else - self.facing_fence = true - end - - -- if we jumped against a block/wall 4 times then turn - if self.object:get_velocity().x ~= 0 - or self.object:get_velocity().z ~= 0 then - - self.jump_count = (self.jump_count or 0) + 1 ---print ("----", self.jump_count) - if self.jump_count == 4 then - - local yaw = self.object:get_yaw() or 0 - - yaw = self:set_yaw(yaw + 1.35, 8) ---print ("---- turn") - self.jump_count = 0 - end - end - - return true - end - - return false -end - - --- blast damage to entities nearby (modified from TNT mod) -local entity_physics = function(pos, radius) - - radius = radius * 2 - - local objs = minetest.get_objects_inside_radius(pos, radius) - local obj_pos, dist - - for n = 1, #objs do - - obj_pos = objs[n]:get_pos() - - dist = get_distance(pos, obj_pos) - - if dist < 1 then dist = 1 end - - local damage = floor((4 / dist) * radius) - local ent = objs[n]:get_luaentity() - - -- punches work on entities AND players - objs[n]:punch(objs[n], 1.0, { - full_punch_interval = 1.0, - damage_groups = {fleshy = damage}, - }, pos) - end -end - - --- should mob follow what I'm holding ? -function mob_class:follow_holding(clicker) - - if mobs.invis[clicker:get_player_name()] then - return false - end - - local item = clicker:get_wielded_item() - local t = type(self.follow) - - -- single item - if t == "string" - and item:get_name() == self.follow then - return true - - -- multiple items - elseif t == "table" then - - for no = 1, #self.follow do - - if self.follow[no] == item:get_name() then - return true - end - end - end - - return false -end - - --- find two animals of same type and breed if nearby and horny -function mob_class:breed() - - -- child takes 240 seconds before growing into adult - if self.child == true then - - self.hornytimer = self.hornytimer + 1 - - if self.hornytimer > 240 then - - self.child = false - self.hornytimer = 0 - - self.object:set_properties({ - textures = self.base_texture, - mesh = self.base_mesh, - visual_size = self.base_size, - collisionbox = self.base_colbox, - selectionbox = self.base_selbox, - }) - - -- custom function when child grows up - if self.on_grown then - self.on_grown(self) - else - -- jump when fully grown so as not to fall into ground - self.object:set_velocity({ - x = 0, - y = self.jump_height, - z = 0 - }) - end - end - - return - end - - -- horny animal can mate for 40 seconds, - -- afterwards horny animal cannot mate again for 200 seconds - if self.horny == true - and self.hornytimer < 240 then - - self.hornytimer = self.hornytimer + 1 - - if self.hornytimer >= 240 then - self.hornytimer = 0 - self.horny = false - end - end - - -- find another same animal who is also horny and mate if nearby - if self.horny == true - and self.hornytimer <= 40 then - - local pos = self.object:get_pos() - - effect({x = pos.x, y = pos.y + 1, z = pos.z}, 8, "heart.png", 3, 4, 1, 0.1) - - local objs = minetest.get_objects_inside_radius(pos, 3) - local num = 0 - local ent = nil - - for n = 1, #objs do - - ent = objs[n]:get_luaentity() - - -- check for same animal with different colour - local canmate = false - - if ent then - - if ent.name == self.name then - canmate = true - else - local entname = string.split(ent.name,":") - local selfname = string.split(self.name,":") - - if entname[1] == selfname[1] then - entname = string.split(entname[2],"_") - selfname = string.split(selfname[2],"_") - - if entname[1] == selfname[1] then - canmate = true - end - end - end - end - - if ent - and canmate == true - and ent.horny == true - and ent.hornytimer <= 40 then - num = num + 1 - end - - -- found your mate? then have a baby - if num > 1 then - - self.hornytimer = 41 - ent.hornytimer = 41 - - -- spawn baby - minetest.after(5, function(self, ent) - - if not self.object:get_luaentity() then - return - end - - -- custom breed function - if self.on_breed then - - -- when false skip going any further - if self:on_breed(ent) == false then - return - end - else - effect(pos, 15, "heart.png", 1, 2, 2, 15, 5) - end - - local mob = minetest.add_entity(pos, self.name) - local ent2 = mob:get_luaentity() - local textures = self.base_texture - - -- using specific child texture (if found) - if self.child_texture then - textures = self.child_texture[1] - end - - -- and resize to half height - mob:set_properties({ - textures = textures, - visual_size = { - x = self.base_size.x * .5, - y = self.base_size.y * .5, - }, - collisionbox = { - self.base_colbox[1] * .5, - self.base_colbox[2] * .5, - self.base_colbox[3] * .5, - self.base_colbox[4] * .5, - self.base_colbox[5] * .5, - self.base_colbox[6] * .5, - }, - selectionbox = { - self.base_selbox[1] * .5, - self.base_selbox[2] * .5, - self.base_selbox[3] * .5, - self.base_selbox[4] * .5, - self.base_selbox[5] * .5, - self.base_selbox[6] * .5, - }, - }) - -- tamed and owned by parents' owner - ent2.child = true - ent2.tamed = true - ent2.owner = self.owner - end, self, ent) - - num = 0 - - break - end - end - end -end - - --- find and replace what mob is looking for (grass, wheat etc.) -function mob_class:replace(pos) - - if not mobs_griefing - or not self.replace_rate - or not self.replace_what - or self.child == true - or self.object:get_velocity().y ~= 0 - or random(1, self.replace_rate) > 1 then - return - end - - local what, with, y_offset - - if type(self.replace_what[1]) == "table" then - - local num = random(#self.replace_what) - - what = self.replace_what[num][1] or "" - with = self.replace_what[num][2] or "" - y_offset = self.replace_what[num][3] or 0 - else - what = self.replace_what - with = self.replace_with or "" - y_offset = self.replace_offset or 0 - end - - pos.y = pos.y + y_offset - - if #minetest.find_nodes_in_area(pos, pos, what) > 0 then - --- print ("replace node = ".. minetest.get_node(pos).name, pos.y) - - local oldnode = {name = what} - local newnode = {name = with} - local on_replace_return - - if self.on_replace then - on_replace_return = self:on_replace(pos, oldnode, newnode) - end - - if on_replace_return ~= false then - minetest.set_node(pos, {name = with}) - end - end -end - - --- check if daytime and also if mob is docile during daylight hours -function mob_class:day_docile() - - if self.docile_by_day == false then - - return false - - elseif self.docile_by_day == true - and self.time_of_day > 0.2 - and self.time_of_day < 0.8 then - - return true - end -end - - -local los_switcher = false -local height_switcher = false - --- path finding and smart mob routine by rnd, line_of_sight and other edits by Elkien3 -function mob_class:smart_mobs(s, p, dist, dtime) - - local s1 = self.path.lastpos - - local target_pos = self.attack:get_pos() - - -- is it becoming stuck? - if abs(s1.x - s.x) + abs(s1.z - s.z) < .5 then - self.path.stuck_timer = self.path.stuck_timer + dtime - else - self.path.stuck_timer = 0 - end - - self.path.lastpos = {x = s.x, y = s.y, z = s.z} - - local use_pathfind = false - local has_lineofsight = minetest.line_of_sight( - {x = s.x, y = (s.y) + .5, z = s.z}, - {x = target_pos.x, y = (target_pos.y) + 1.5, z = target_pos.z}, .2) - - -- im stuck, search for path - if not has_lineofsight then - - if los_switcher == true then - use_pathfind = true - los_switcher = false - end -- cannot see target! - else - if los_switcher == false then - - los_switcher = true - use_pathfind = false - - minetest.after(1, function(self) - - if self.object:get_luaentity() then - - if has_lineofsight then - self.path.following = false - end - end - end, self) - end -- can see target! - end - - if (self.path.stuck_timer > stuck_timeout and not self.path.following) then - - use_pathfind = true - self.path.stuck_timer = 0 - - minetest.after(1, function(self) - - if self.object:get_luaentity() then - - if has_lineofsight then - self.path.following = false - end - end - end, self) - end - - if (self.path.stuck_timer > stuck_path_timeout and self.path.following) then - - use_pathfind = true - self.path.stuck_timer = 0 - - minetest.after(1, function(self) - - if self.object:get_luaentity() then - - if has_lineofsight then - self.path.following = false - end - end - end, self) - end - - if abs(vector.subtract(s,target_pos).y) > self.stepheight then - - if height_switcher then - use_pathfind = true - height_switcher = false - end - else - if not height_switcher then - use_pathfind = false - height_switcher = true - end - end - - if use_pathfind then - -- lets try find a path, first take care of positions - -- since pathfinder is very sensitive - local sheight = self.collisionbox[5] - self.collisionbox[2] - - -- round position to center of node to avoid stuck in walls - -- also adjust height for player models! - s.x = floor(s.x + 0.5) --- s.y = floor(s.y + 0.5) - sheight - s.z = floor(s.z + 0.5) - - local ssight, sground = minetest.line_of_sight(s, { - x = s.x, y = s.y - 4, z = s.z}, 1) - - -- determine node above ground - if not ssight then - s.y = sground.y + 1 - end - - local p1 = self.attack:get_pos() - - p1.x = floor(p1.x + 0.5) - p1.y = floor(p1.y + 0.5) - p1.z = floor(p1.z + 0.5) - - local dropheight = 6 - if self.fear_height ~= 0 then dropheight = self.fear_height end - - self.path.way = minetest.find_path(s, p1, 16, self.stepheight, dropheight, "Dijkstra") - ---[[ - -- show path using particles - if self.path.way and #self.path.way > 0 then - print ("-- path length:" .. tonumber(#self.path.way)) - for _,pos in pairs(self.path.way) do - minetest.add_particle({ - pos = pos, - velocity = {x=0, y=0, z=0}, - acceleration = {x=0, y=0, z=0}, - expirationtime = 1, - size = 4, - collisiondetection = false, - vertical = false, - texture = "heart.png", - }) - end - end -]] - - self.state = "" - self:do_attack(self.attack) - - -- no path found, try something else - if not self.path.way then - - self.path.following = false - - -- lets make way by digging/building if not accessible - if self.pathfinding == 2 and mobs_griefing then - - -- is player higher than mob? - if s.y < p1.y then - - -- build upwards - if not minetest.is_protected(s, "") then - - local ndef1 = minetest.registered_nodes[self.standing_in] - - if ndef1 and (ndef1.buildable_to or ndef1.groups.liquid) then - - minetest.set_node(s, {name = mobs.fallback_node}) - end - end - - local sheight = math.ceil(self.collisionbox[5]) + 1 - - -- assume mob is 2 blocks high so it digs above its head - s.y = s.y + sheight - - -- remove one block above to make room to jump - if not minetest.is_protected(s, "") then - - local node1 = node_ok(s, "air").name - local ndef1 = minetest.registered_nodes[node1] - - if node1 ~= "air" - and node1 ~= "ignore" - and ndef1 - and not ndef1.groups.level - and not ndef1.groups.unbreakable - and not ndef1.groups.liquid then - - minetest.set_node(s, {name = "air"}) - minetest.add_item(s, ItemStack(node1)) - - end - end - - s.y = s.y - sheight - self.object:set_pos({x = s.x, y = s.y + 2, z = s.z}) - - else -- dig 2 blocks to make door toward player direction - - local yaw1 = self.object:get_yaw() + pi / 2 - local p1 = { - x = s.x + cos(yaw1), - y = s.y, - z = s.z + sin(yaw1) - } - - if not minetest.is_protected(p1, "") then - - local node1 = node_ok(p1, "air").name - local ndef1 = minetest.registered_nodes[node1] - - if node1 ~= "air" - and node1 ~= "ignore" - and ndef1 - and not ndef1.groups.level - and not ndef1.groups.unbreakable - and not ndef1.groups.liquid then - - minetest.add_item(p1, ItemStack(node1)) - minetest.set_node(p1, {name = "air"}) - end - - p1.y = p1.y + 1 - node1 = node_ok(p1, "air").name - ndef1 = minetest.registered_nodes[node1] - - if node1 ~= "air" - and node1 ~= "ignore" - and ndef1 - and not ndef1.groups.level - and not ndef1.groups.unbreakable - and not ndef1.groups.liquid then - - minetest.add_item(p1, ItemStack(node1)) - minetest.set_node(p1, {name = "air"}) - end - - end - end - end - - -- will try again in 2 second - self.path.stuck_timer = stuck_timeout - 2 - - -- frustration! cant find the damn path :( - --self:mob_sound(self.sounds.random) - else - -- yay i found path - self:mob_sound(self.sounds.war_cry) - self:set_velocity(self.walk_velocity) - - -- follow path now that it has it - self.path.following = true - end - end -end - - --- specific attacks -local specific_attack = function(list, what) - - -- no list so attack default (player, animals etc.) - if list == nil then - return true - end - - -- found entity on list to attack? - for no = 1, #list do - - if list[no] == what then - return true - end - end - - return false -end - - --- general attack function for all mobs ========== -function mob_class:general_attack() - - -- return if already attacking, passive or docile during day - if self.passive - or self.state == "attack" - or self:day_docile() then - return - end - - local s = self.object:get_pos() - local objs = minetest.get_objects_inside_radius(s, self.view_range) - - -- remove entities we aren't interested in - for n = 1, #objs do - - local ent = objs[n]:get_luaentity() - - -- are we a player? - if objs[n]:is_player() then - - -- if player invisible or mob not setup to attack then remove from list - if self.attack_players == false - or (self.owner and self.type ~= "monster") - or mobs.invis[objs[n]:get_player_name()] - or not specific_attack(self.specific_attack, "player") then - objs[n] = nil ---print("- pla", n) - end - - -- or are we a mob? - elseif ent and ent._cmi_is_mob then - - -- remove mobs not to attack - if self.name == ent.name - or (not self.attack_animals and ent.type == "animal") - or (not self.attack_monsters and ent.type == "monster") - or (not self.attack_npcs and ent.type == "npc") - or not specific_attack(self.specific_attack, ent.name) then - objs[n] = nil ---print("- mob", n, self.name, ent.name) - end - - -- remove all other entities - else ---print(" -obj", n) - objs[n] = nil - end - end - - local p, sp, dist, min_player - local min_dist = self.view_range + 1 - - -- go through remaining entities and select closest - for _,player in pairs(objs) do - - p = player:get_pos() - sp = s - - dist = get_distance(p, s) - - -- aim higher to make looking up hills more realistic - p.y = p.y + 1 - sp.y = sp.y + 1 - - -- choose closest player to attack that isnt self - if dist ~= 0 - and dist < min_dist - and self:line_of_sight(sp, p, 2) == true then - min_dist = dist - min_player = player - end - end - - -- attack closest player or mob - if min_player and random(1, 100) > self.attack_chance then - self:do_attack(min_player) - end -end - - --- specific runaway -local specific_runaway = function(list, what) - - -- no list so do not run - if list == nil then - return false - end - - -- found entity on list to attack? - for no = 1, #list do - - if list[no] == what then - return true - end - end - - return false -end - - --- find someone to runaway from -function mob_class:do_runaway_from() - - if not self.runaway_from then - return - end - - local s = self.object:get_pos() - local p, sp, dist, pname - local player, obj, min_player, name - local min_dist = self.view_range + 1 - local objs = minetest.get_objects_inside_radius(s, self.view_range) - - for n = 1, #objs do - - if objs[n]:is_player() then - - pname = objs[n]:get_player_name() - - if mobs.invis[pname] - or self.owner == pname then - - name = "" - else - player = objs[n] - name = "player" - end - else - obj = objs[n]:get_luaentity() - - if obj then - player = obj.object - name = obj.name or "" - end - end - - -- find specific mob to runaway from - if name ~= "" and name ~= self.name - and specific_runaway(self.runaway_from, name) then - - p = player:get_pos() - sp = s - - -- aim higher to make looking up hills more realistic - p.y = p.y + 1 - sp.y = sp.y + 1 - - dist = get_distance(p, s) - - -- choose closest player/mob to runaway from - if dist < min_dist - and self:line_of_sight(sp, p, 2) == true then - min_dist = dist - min_player = player - end - end - end - - if min_player then - - local lp = player:get_pos() - local vec = { - x = lp.x - s.x, - y = lp.y - s.y, - z = lp.z - s.z - } - - local yaw = (atan(vec.z / vec.x) + 3 * pi / 2) - self.rotate - - if lp.x > s.x then - yaw = yaw + pi - end - - yaw = self:set_yaw(yaw, 4) - self.state = "runaway" - self.runaway_timer = 3 - self.following = nil - end -end - - --- follow player if owner or holding item, if fish outta water then flop -function mob_class:follow_flop() - -- find player to follow - if (self.follow ~= "" or self.order == "follow") and - not self.following and - self.state ~= "attack" and - self.state ~= "runaway" then - if self.player_iter == nil then - self.player_iter = minetest.get_player_iter() - end - local pos = self.object:get_pos() - for _ = 1, players_per_step do - local name = self.player_iter() - if not name then - self.player_iter = nil - break - end - local player = minetest.get_player_by_name(name) - if player and not mobs.invis[name] and - get_distance(player:get_pos(), pos) < self.view_range then - self.following = player - break - end - end - end - - if self.type == "npc" - and self.order == "follow" - and self.state ~= "attack" - and self.owner ~= "" then - - -- npc stop following player if not owner - if self.following - and self.owner - and self.owner ~= self.following:get_player_name() then - self.following = nil - end - else - -- stop following player if not holding specific item - if self.following - and self.following:is_player() - and self:follow_holding(self.following) == false then - self.following = nil - end - - end - - -- follow that thing - if self.following then - - local s = self.object:get_pos() - local p - - if self.following:is_player() then - - p = self.following:get_pos() - - elseif self.following.object then - - p = self.following.object:get_pos() - end - - if p then - - local dist = get_distance(p, s) - - -- dont follow if out of range - if dist > self.view_range then - self.following = nil - else - local vec = { - x = p.x - s.x, - z = p.z - s.z - } - - local yaw = (atan(vec.z / vec.x) + pi / 2) - self.rotate - - if p.x > s.x then yaw = yaw + pi end - - yaw = self:set_yaw(yaw, 6) - - -- anyone but standing npc's can move along - if dist > self.reach - and self.order ~= "stand" then - - self:set_velocity(self.walk_velocity) - - if self.walk_chance ~= 0 then - self:set_animation("walk") - end - else - self:set_velocity(0) - self:set_animation("stand") - end - - return - end - end - end - - -- swimmers flop when out of their element, and swim again when back in - if self.fly then - - local s = self.object:get_pos() - - if not self:attempt_flight_correction() then - - self.state = "flop" - self.object:set_velocity({x = 0, y = -5, z = 0}) - - self:set_animation("stand") - - return - elseif self.state == "flop" then - self.state = "stand" - end - end -end - - --- dogshoot attack switch and counter function -function mob_class:dogswitch(dtime) - - -- switch mode not activated - if not self.dogshoot_switch - or not dtime then - return 0 - end - - self.dogshoot_count = self.dogshoot_count + dtime - - if (self.dogshoot_switch == 1 - and self.dogshoot_count > self.dogshoot_count_max) - or (self.dogshoot_switch == 2 - and self.dogshoot_count > self.dogshoot_count2_max) then - - self.dogshoot_count = 0 - - if self.dogshoot_switch == 1 then - self.dogshoot_switch = 2 - else - self.dogshoot_switch = 1 - end - end - - return self.dogshoot_switch -end - - --- execute current state (stand, walk, run, attacks) -function mob_class:do_states(dtime) - - local yaw = self.object:get_yaw() or 0 - - if self.state == "stand" then - - if random(1, 4) == 1 then - - local lp = nil - local s = self.object:get_pos() - local objs = minetest.get_objects_inside_radius(s, 3) - - for n = 1, #objs do - - if objs[n]:is_player() then - lp = objs[n]:get_pos() - break - end - end - - -- look at any players nearby, otherwise turn randomly - if lp then - - local vec = { - x = lp.x - s.x, - z = lp.z - s.z - } - - yaw = (atan(vec.z / vec.x) + pi / 2) - self.rotate - - if lp.x > s.x then yaw = yaw + pi end - else - yaw = yaw + random(-0.5, 0.5) - end - - yaw = self:set_yaw(yaw, 8) - end - - self:set_velocity(0) - self:set_animation("stand") - - -- mobs ordered to stand stay standing - if self.order ~= "stand" - and self.walk_chance ~= 0 - and self.facing_fence ~= true - and random(1, 100) <= self.walk_chance - and self:is_at_cliff() == false then - - self:set_velocity(self.walk_velocity) - self.state = "walk" - self:set_animation("walk") - end - - elseif self.state == "walk" then - - local s = self.object:get_pos() - local lp = nil - - -- is there something I need to avoid? - if self.water_damage > 0 - and self.lava_damage > 0 then - - lp = minetest.find_node_near(s, 1, {"group:water", "group:lava"}) - - elseif self.water_damage > 0 then - - lp = minetest.find_node_near(s, 1, {"group:water"}) - - elseif self.lava_damage > 0 then - - lp = minetest.find_node_near(s, 1, {"group:lava"}) - end - - if lp then - - -- if mob in water or lava then look for land - if (self.lava_damage - and minetest.registered_nodes[self.standing_in].groups.lava) - or (self.water_damage - and minetest.registered_nodes[self.standing_in].groups.water) then - - lp = minetest.find_node_near(s, 5, {"group:soil", "group:stone", - "group:sand", node_ice, node_snowblock}) - - -- did we find land? - if lp then - - local vec = { - x = lp.x - s.x, - z = lp.z - s.z - } - - yaw = (atan(vec.z / vec.x) + pi / 2) - self.rotate - - if lp.x > s.x then yaw = yaw + pi end - - -- look towards land and jump/move in that direction - yaw = self:set_yaw(yaw, 6) - self:do_jump() - self:set_velocity(self.walk_velocity) - else - yaw = yaw + random(-0.5, 0.5) - end - - else - - local vec = { - x = lp.x - s.x, - z = lp.z - s.z - } - - yaw = (atan(vec.z / vec.x) + pi / 2) - self.rotate - - if lp.x > s.x then yaw = yaw + pi end - end - - yaw = self:set_yaw(yaw, 8) - - -- otherwise randomly turn - elseif random(1, 100) <= 30 then - - yaw = yaw + random(-0.5, 0.5) - - yaw = self:set_yaw(yaw, 8) - end - - -- stand for great fall in front - local temp_is_cliff = self:is_at_cliff() - - if self.facing_fence == true - or temp_is_cliff - or random(1, 100) <= self.stand_chance then - - self:set_velocity(0) - self.state = "stand" - self:set_animation("stand", true) - else - self:set_velocity(self.walk_velocity) - - if self:flight_check() - and self.animation - and self.animation.fly_start - and self.animation.fly_end then - self:set_animation("fly") - else - self:set_animation("walk") - end - end - - -- runaway when punched - elseif self.state == "runaway" then - - self.runaway_timer = self.runaway_timer + 1 - - -- stop after 5 seconds or when at cliff - if self.runaway_timer > 5 - or self:is_at_cliff() - or self.order == "stand" then - self.runaway_timer = 0 - self:set_velocity(0) - self.state = "stand" - self:set_animation("stand") - else - self:set_velocity(self.run_velocity) - self:set_animation("walk") - end - - -- attack routines (explode, dogfight, shoot, dogshoot) - elseif self.state == "attack" then - - -- calculate distance from mob and enemy - local s = self.object:get_pos() - local p = self.attack:get_pos() or s - local dist = get_distance(p, s) - - -- stop attacking if player invisible or out of range - if dist > self.view_range - or not self.attack - or not self.attack:get_pos() - or self.attack:get_hp() <= 0 - or (self.attack:is_player() and mobs.invis[ self.attack:get_player_name() ]) then - --- print(" ** stop attacking **", dist, self.view_range) - self.state = "stand" - self:set_velocity(0) - self:set_animation("stand") - self.attack = nil - self.v_start = false - self.timer = 0 - self.blinktimer = 0 - self.path.way = nil - - return - end - - if self.attack_type == "explode" then - - local vec = { - x = p.x - s.x, - z = p.z - s.z - } - - yaw = (atan(vec.z / vec.x) + pi / 2) - self.rotate - - if p.x > s.x then yaw = yaw + pi end - - yaw = self:set_yaw(yaw) - - local node_break_radius = self.explosion_radius or 1 - local entity_damage_radius = self.explosion_damage_radius - or (node_break_radius * 2) - - -- start timer when in reach and line of sight - if not self.v_start - and dist <= self.reach - and self:line_of_sight(s, p, 2) then - - self.v_start = true - self.timer = 0 - self.blinktimer = 0 - self:mob_sound(self.sounds.fuse) --- print ("=== explosion timer started", self.explosion_timer) - - -- stop timer if out of reach or direct line of sight - elseif self.allow_fuse_reset - and self.v_start - and (dist > self.reach - or not self:line_of_sight(s, p, 2)) then - self.v_start = false - self.timer = 0 - self.blinktimer = 0 - self.blinkstatus = false - self.object:settexturemod("") - end - - -- walk right up to player unless the timer is active - if self.v_start and (self.stop_to_explode or dist < 1.5) then - self:set_velocity(0) - else - self:set_velocity(self.run_velocity) - end - - if self.animation and self.animation.run_start then - self:set_animation("run") - else - self:set_animation("walk") - end - - if self.v_start then - - self.timer = self.timer + dtime - self.blinktimer = (self.blinktimer or 0) + dtime - - if self.blinktimer > 0.2 then - - self.blinktimer = 0 - - if self.blinkstatus then - self.object:settexturemod("") - else - self.object:settexturemod("^[brighten") - end - - self.blinkstatus = not self.blinkstatus - end - --- print ("=== explosion timer", self.timer) - - if self.timer > self.explosion_timer then - - local pos = self.object:get_pos() - - -- dont damage anything if area protected or next to water - if minetest.find_node_near(pos, 1, {"group:water"}) - or minetest.is_protected(pos, "") then - - node_break_radius = 1 - end - - self.object:remove() - - if minetest.get_modpath("tnt") and tnt and tnt.boom - and not minetest.is_protected(pos, "") then - - tnt.boom(pos, { - radius = node_break_radius, - damage_radius = entity_damage_radius, - sound = self.sounds.explode, - }) - else - - minetest.sound_play(self.sounds.explode, { - pos = pos, - gain = 1.0, - max_hear_distance = self.sounds.distance or 32 - }) - - entity_physics(pos, entity_damage_radius) - effect(pos, 32, "bubble.png", nil, nil, node_break_radius, 1, 0) - end - - return - end - end - - elseif self.attack_type == "dogfight" - or (self.attack_type == "dogshoot" and self:dogswitch(dtime) == 2) - or (self.attack_type == "dogshoot" and dist <= self.reach and self:dogswitch() == 0) then - - if self.fly - and dist > self.reach then - - local p1 = s - local me_y = floor(p1.y) - local p2 = p - local p_y = floor(p2.y + 1) - local v = self.object:get_velocity() - - if self:flight_check() then - - if me_y < p_y then - - self.object:set_velocity({ - x = v.x, - y = 1 * self.walk_velocity, - z = v.z - }) - - elseif me_y > p_y then - - self.object:set_velocity({ - x = v.x, - y = -1 * self.walk_velocity, - z = v.z - }) - end - else - if me_y < p_y then - - self.object:set_velocity({ - x = v.x, - y = 0.01, - z = v.z - }) - - elseif me_y > p_y then - - self.object:set_velocity({ - x = v.x, - y = -0.01, - z = v.z - }) - end - end - - end - - -- rnd: new movement direction - if self.path.following - and self.path.way - and self.attack_type ~= "dogshoot" then - - -- no paths longer than 50 - if #self.path.way > 50 - or dist < self.reach then - self.path.following = false - return - end - - local p1 = self.path.way[1] - - if not p1 then - self.path.following = false - return - end - - if abs(p1.x-s.x) + abs(p1.z - s.z) < 0.6 then - -- reached waypoint, remove it from queue - table.remove(self.path.way, 1) - end - - -- set new temporary target - p = {x = p1.x, y = p1.y, z = p1.z} - end - - local vec = { - x = p.x - s.x, - z = p.z - s.z - } - - yaw = (atan(vec.z / vec.x) + pi / 2) - self.rotate - - if p.x > s.x then yaw = yaw + pi end - - yaw = self:set_yaw(yaw) - - -- move towards enemy if beyond mob reach - if dist > self.reach then - - -- path finding by rnd - if self.pathfinding -- only if mob has pathfinding enabled - and enable_pathfinding then - - self:smart_mobs(s, p, dist, dtime) - end - - if self:is_at_cliff() then - - self:set_velocity(0) - self:set_animation("stand") - else - - if self.path.stuck then - self:set_velocity(self.walk_velocity) - else - self:set_velocity(self.run_velocity) - end - - if self.animation and self.animation.run_start then - self:set_animation("run") - else - self:set_animation("walk") - end - end - - else -- rnd: if inside reach range - - self.path.stuck = false - self.path.stuck_timer = 0 - self.path.following = false -- not stuck anymore - - self:set_velocity(0) - - if not self.custom_attack then - - if self.timer > 1 then - - self.timer = 0 - --- if self.double_melee_attack --- and random(1, 2) == 1 then --- self:set_animation("punch2") --- else - self:set_animation("punch") --- end - - local p2 = p - local s2 = s - - p2.y = p2.y + .5 - s2.y = s2.y + .5 - - if self:line_of_sight(p2, s2) == true then - - -- play attack sound - self:mob_sound(self.sounds.attack) - - -- punch player (or what player is attached to) - local attached = self.attack:get_attach() - if attached then - self.attack = attached - end - self.attack:punch(self.object, 1.0, { - full_punch_interval = 1.0, - damage_groups = {fleshy = self.damage} - }, nil) - end - end - else -- call custom attack every second - if self.custom_attack - and self.timer > 1 then - - self.timer = 0 - - self:custom_attack(p) - end - end - end - - elseif self.attack_type == "shoot" - or (self.attack_type == "dogshoot" and self:dogswitch(dtime) == 1) - or (self.attack_type == "dogshoot" and dist > self.reach and self:dogswitch() == 0) then - - p.y = p.y - .5 - s.y = s.y + .5 - - local dist = get_distance(p, s) - local vec = { - x = p.x - s.x, - y = p.y - s.y, - z = p.z - s.z - } - - yaw = (atan(vec.z / vec.x) + pi / 2) - self.rotate - - if p.x > s.x then yaw = yaw + pi end - - yaw = self:set_yaw(yaw) - - self:set_velocity(0) - - if self.shoot_interval - and self.timer > self.shoot_interval - and random(1, 100) <= 60 then - - self.timer = 0 - self:set_animation("shoot") - - -- play shoot attack sound - self:mob_sound(self.sounds.shoot_attack) - - local p = self.object:get_pos() - - p.y = p.y + (self.collisionbox[2] + self.collisionbox[5]) / 2 - - if minetest.registered_entities[self.arrow] then - - local obj = minetest.add_entity(p, self.arrow) - local ent = obj:get_luaentity() - local amount = (vec.x * vec.x + vec.y * vec.y + vec.z * vec.z) ^ 0.5 - local v = ent.velocity or 1 -- or set to default - - ent.switch = 1 - ent.owner_id = tostring(self.object) -- add unique owner id to arrow - - -- offset makes shoot aim accurate - vec.y = vec.y + self.shoot_offset - vec.x = vec.x * (v / amount) - vec.y = vec.y * (v / amount) - vec.z = vec.z * (v / amount) - - obj:set_velocity(vec) - end - end - end - end -end - - --- falling and fall damage -function mob_class:falling(pos) - - if self.fly or self.disable_falling then - return - end - - -- floating in water (or falling) - local v = self.object:get_velocity() - - if v.y > 0 then - - -- apply gravity when moving up - self.object:set_acceleration({ - x = 0, - y = -10, - z = 0 - }) - - elseif v.y <= 0 and v.y > self.fall_speed then - - -- fall downwards at set speed - self.object:set_acceleration({ - x = 0, - y = self.fall_speed, - z = 0 - }) - else - -- stop accelerating once max fall speed hit - self.object:set_acceleration({x = 0, y = 0, z = 0}) - end - - -- in water then float up - if self.standing_in - and minetest.registered_nodes[self.standing_in].groups.water then - - if self.floats == 1 then - - self.object:set_acceleration({ - x = 0, - y = -self.fall_speed / (max(1, v.y) ^ 8), -- 8 was 2 - z = 0 - }) - end - else - - -- fall damage onto solid ground - if self.fall_damage == 1 - and self.object:get_velocity().y == 0 then - - local d = (self.old_y or 0) - self.object:get_pos().y - - if d > 5 then - - self.health = self.health - floor(d - 5) - --- effect(pos, 5, "item_smoke.png", 1, 2, 2, nil) - - if self:check_for_death({type = "fall"}) then - return - end - end - - self.old_y = self.object:get_pos().y - end - end -end - - --- is Took Ranks mod active? -local tr = minetest.get_modpath("toolranks") - --- deal damage and effects when mob punched -function mob_class:on_punch(hitter, tflp, tool_capabilities, dir) - - -- mob health check - if self.health <= 0 then - return - end - - -- custom punch function - if self.do_punch - and self:do_punch(hitter, tflp, tool_capabilities, dir) == false then - return - end - - -- error checking when mod profiling is enabled - if not tool_capabilities then - minetest.log("warning", "[mobs] Mod profiling enabled, damage not enabled") - return - end - --- is mob protected? -if self.protected and hitter:is_player() - and minetest.is_protected(self.object:get_pos(), hitter:get_player_name()) then - minetest.chat_send_player(hitter:get_player_name(), "Mob has been protected!") - return -end - - local weapon = hitter:get_wielded_item() - local weapon_def = weapon:get_definition() or {} - local punch_interval = 1.4 - - -- calculate mob damage - local damage = 0 - local armor = self.object:get_armor_groups() or {} - local tmp - - -- quick error check incase it ends up 0 (serialize.h check test) - if tflp == 0 then - tflp = 0.2 - end - - if use_cmi then - damage = cmi.calculate_damage(self.object, hitter, tflp, tool_capabilities, dir) - else - - for group,_ in pairs( (tool_capabilities.damage_groups or {}) ) do - - tmp = tflp / (tool_capabilities.full_punch_interval or 1.4) - - if tmp < 0 then - tmp = 0.0 - elseif tmp > 1 then - tmp = 1.0 - end - - damage = damage + (tool_capabilities.damage_groups[group] or 0) - * tmp * ((armor[group] or 0) / 100.0) - end - end - - -- check for tool immunity or special damage - for n = 1, #self.immune_to do - - if self.immune_to[n][1] == weapon_def.name then - - damage = self.immune_to[n][2] or 0 - break - - -- if "all" then no tool does damage unless it's specified in list - elseif self.immune_to[n][1] == "all" then - damage = self.immune_to[n][2] or 0 - end - end - - -- healing - if damage <= -1 then - self.health = self.health - floor(damage) - return - end - --- print ("Mob Damage is", damage) - - if use_cmi - and cmi.notify_punch(self.object, hitter, tflp, tool_capabilities, dir, damage) then - return - end - - -- add weapon wear - punch_interval = tool_capabilities.full_punch_interval or 1.4 - - -- toolrank support - local wear = floor((punch_interval / 75) * 9000) - - if mobs.is_creative(hitter:get_player_name()) then - - if tr then - wear = 1 - else - wear = 0 - end - end - - if tr then - if weapon_def.original_description then - toolranks.new_afteruse(weapon, hitter, nil, {wear = wear}) - end - else - weapon:add_wear(wear) - end - - hitter:set_wielded_item(weapon) - --- only play hit sound and show blood effects if damage is 1 or over -if damage >= 1 then - - -- blood_particles - if not disable_blood and self.blood_amount > 0 then - - local pos = self.object:get_pos() - - pos.y = pos.y + (-self.collisionbox[2] + self.collisionbox[5]) * .5 - - -- do we have a single blood texture or multiple? - if type(self.blood_texture) == "table" then - - local blood = self.blood_texture[random(1, #self.blood_texture)] - - effect(pos, self.blood_amount, blood, nil, nil, 1, nil) - else - effect(pos, self.blood_amount, self.blood_texture, nil, nil, 1, nil) - end - end - - -- do damage - self.health = self.health - floor(damage) - - -- exit here if dead, check for tools with fire damage - local hot = tool_capabilities and tool_capabilities.damage_groups - and tool_capabilities.damage_groups.fire - - if self:check_for_death({type = "punch", - puncher = hitter, hot = hot}) then - return - end - - -- add healthy afterglow when hit (can cause hit lag with larger textures) - minetest.after(0.1, function() - - if not self.object:get_luaentity() then return end - - self.object:settexturemod("^[colorize:#ff000085") - - minetest.after(0.5, function() - self.object:settexturemod("") - end) - end) - - end -- END if damage - - -- knock back effect (only on full punch) - if self.knock_back - and tflp >= punch_interval then - - local v = self.object:get_velocity() - local kb = damage or 1 - local up = 2 - - -- if already in air then dont go up anymore when hit - if v.y > 0 - or self.fly then - up = 0 - end - - -- direction error check - dir = dir or {x = 0, y = 0, z = 0} - - -- use tool knockback value or default - kb = tool_capabilities.damage_groups["knockback"] or kb -- (kb * 1.5) - - self.object:set_velocity({ - x = dir.x * kb, - y = up, - z = dir.z * kb - }) - - self.pause_timer = 0.25 - end - - -- if skittish then run away - if self.runaway == true - and self.order ~= "stand" then - - local lp = hitter:get_pos() - local s = self.object:get_pos() - local vec = { - x = lp.x - s.x, - y = lp.y - s.y, - z = lp.z - s.z - } - - local yaw = (atan(vec.z / vec.x) + 3 * pi / 2) - self.rotate - - if lp.x > s.x then - yaw = yaw + pi - end - - yaw = self:set_yaw(yaw, 6) - self.state = "runaway" - self.runaway_timer = 0 - self.following = nil - end - - local name = hitter:get_player_name() or "" - - -- attack puncher and call other mobs for help - if self.passive == false - and self.state ~= "flop" - and self.child == false - and self.attack_players == true - and hitter:get_player_name() ~= self.owner - and not mobs.invis[ name ] then - - -- attack whoever punched mob - self.state = "" - self:do_attack(hitter) - - -- alert others to the attack - local objs = minetest.get_objects_inside_radius(hitter:get_pos(), self.view_range) - local obj = nil - - for n = 1, #objs do - - obj = objs[n]:get_luaentity() - - if obj and obj._cmi_is_mob then - - -- only alert members of same mob - if obj.group_attack == true - and obj.state ~= "attack" - and obj.owner ~= name - and obj.name == self.name then - obj:do_attack(hitter) - end - - -- have owned mobs attack player threat - if obj.owner == name and obj.owner_loyal then - obj:do_attack(self.object) - end - end - end - end -end - - --- get entity staticdata -function mob_class:get_staticdata() - - -- remove mob when out of range unless tamed - if remove_far - and self.remove_ok - and self.type ~= "npc" - and self.state ~= "attack" - and not self.tamed - and self.lifetimer < 20000 then - - --print ("REMOVED " .. self.name) - - self.object:remove() - - return ""-- nil - end - - self.remove_ok = true - self.attack = nil - self.following = nil - self.state = "stand" - - -- used to rotate older mobs - if self.drawtype - and self.drawtype == "side" then - self.rotate = math.rad(90) - end - - if use_cmi then - self.serialized_cmi_components = cmi.serialize_components(self._cmi_components) - end - - local tmp = {} - - for _,stat in pairs(self) do - - local t = type(stat) - - if t ~= "function" - and t ~= "nil" - and t ~= "userdata" - and _ ~= "_cmi_components" then - tmp[_] = self[_] - end - end - - --print('===== '..self.name..'\n'.. dump(tmp)..'\n=====\n') - return minetest.serialize(tmp) -end - - --- activate mob and reload settings -function mob_class:mob_activate(staticdata, def, dtime) - - -- remove monsters in peaceful mode - if self.type == "monster" - and peaceful_only then - - self.object:remove() - - return - end - - -- load entity variables - local tmp = minetest.deserialize(staticdata) - - if tmp then - for _,stat in pairs(tmp) do - self[_] = stat - end - end - - -- force current model into mob - self.mesh = def.mesh - self.base_mesh = def.mesh - self.collisionbox = def.collisionbox - self.selectionbox = def.selectionbox - - -- select random texture, set model and size - if not self.base_texture then - - -- compatiblity with old simple mobs textures - if def.textures and type(def.textures[1]) == "string" then - def.textures = {def.textures} - end - - self.base_texture = def.textures and def.textures[random(1, #def.textures)] - self.base_mesh = def.mesh - self.base_size = self.visual_size - self.base_colbox = self.collisionbox - self.base_selbox = self.selectionbox - end - - -- for current mobs that dont have this set - if not self.base_selbox then - self.base_selbox = self.selectionbox or self.base_colbox - end - - -- set texture, model and size - local textures = self.base_texture - local mesh = self.base_mesh - local vis_size = self.base_size - local colbox = self.base_colbox - local selbox = self.base_selbox - - -- specific texture if gotten - if self.gotten == true - and def.gotten_texture then - textures = def.gotten_texture - end - - -- specific mesh if gotten - if self.gotten == true - and def.gotten_mesh then - mesh = def.gotten_mesh - end - - -- set child objects to half size - if self.child == true then - - vis_size = { - x = self.base_size.x * .5, - y = self.base_size.y * .5, - } - - if def.child_texture then - textures = def.child_texture[1] - end - - colbox = { - self.base_colbox[1] * .5, - self.base_colbox[2] * .5, - self.base_colbox[3] * .5, - self.base_colbox[4] * .5, - self.base_colbox[5] * .5, - self.base_colbox[6] * .5 - } - selbox = { - self.base_selbox[1] * .5, - self.base_selbox[2] * .5, - self.base_selbox[3] * .5, - self.base_selbox[4] * .5, - self.base_selbox[5] * .5, - self.base_selbox[6] * .5 - } - end - - if self.health == 0 then - self.health = random(self.hp_min, self.hp_max) - end - - -- pathfinding init - self.path = {} - self.path.way = {} -- path to follow, table of positions - self.path.lastpos = {x = 0, y = 0, z = 0} - self.path.stuck = false - self.path.following = false -- currently following path? - self.path.stuck_timer = 0 -- if stuck for too long search for path - - -- mob defaults - self.object:set_armor_groups({immortal = 1, fleshy = self.armor}) - self.old_y = self.object:get_pos().y - self.old_health = self.health - self.sounds.distance = self.sounds.distance or 10 - self.textures = textures - self.mesh = mesh - self.collisionbox = colbox - self.selectionbox = selbox - self.visual_size = vis_size - self.standing_in = "air" - - -- check existing nametag - if not self.nametag then - self.nametag = def.nametag - end - - -- set anything changed above - self.object:set_properties(self) - self:set_yaw((random(0, 360) - 180) / 180 * pi, 6) - self:update_tag() - self:set_animation("stand") - - -- run on_spawn function if found - if self.on_spawn and not self.on_spawn_run then - if self.on_spawn(self) then - self.on_spawn_run = true -- if true, set flag to run once only - end - end - - -- run after_activate - if def.after_activate then - def.after_activate(self, staticdata, def, dtime) - end - - if use_cmi then - self._cmi_components = cmi.activate_components(self.serialized_cmi_components) - cmi.notify_activate(self.object, dtime) - end -end - - --- handle mob lifetimer and expiration -function mob_class:mob_expire(pos, dtime) - - -- when lifetimer expires remove mob (except npc and tamed) - if self.type ~= "npc" - and not self.tamed - and self.state ~= "attack" - and remove_far ~= true - and self.lifetimer < 20000 then - - self.lifetimer = self.lifetimer - dtime - - if self.lifetimer <= 0 then - - -- only despawn away from player - local objs = minetest.get_objects_inside_radius(pos, 15) - - for n = 1, #objs do - - if objs[n]:is_player() then - - self.lifetimer = 20 - - return - end - end - --- minetest.log("action", --- "lifetimer expired, removed @1", self.name) - --- effect(pos, 15, "item_smoke.png", 2, 4, 2, 0) - - self.object:remove() - - return - end - end -end - - --- main mob function -function mob_class:on_step(dtime) - - if use_cmi then - cmi.notify_step(self.object, dtime) - end - - local pos = self.object:get_pos() - local yaw = 0 - - -- get node at foot level every quarter second - self.node_timer = (self.node_timer or 0) + dtime - - if self.node_timer > 0.25 then - - self.node_timer = 0 - - local y_level = self.collisionbox[2] - - if self.child then - y_level = self.collisionbox[2] * 0.5 - end - - -- what is mob standing in? - self.standing_in = node_ok({ - x = pos.x, y = pos.y + y_level + 0.25, z = pos.z}, "air").name --- print ("standing in " .. self.standing_in) - - -- check for mob expiration (0.25 instead of dtime since were in a timer) - self:mob_expire(pos, 0.25) - end - - -- check if falling, flying, floating - self:falling(pos) - - -- smooth rotation by ThomasMonroe314 - - if self.delay and self.delay > 0 then - - local yaw = self.object:get_yaw() - - if self.delay == 1 then - yaw = self.target_yaw - else - local dif = abs(yaw - self.target_yaw) - - if yaw > self.target_yaw then - - if dif > pi then - dif = 2 * pi - dif -- need to add - yaw = yaw + dif / self.delay - else - yaw = yaw - dif / self.delay -- need to subtract - end - - elseif yaw < self.target_yaw then - - if dif > pi then - dif = 2 * pi - dif - yaw = yaw - dif / self.delay -- need to subtract - else - yaw = yaw + dif / self.delay -- need to add - end - end - - if yaw > (pi * 2) then yaw = yaw - (pi * 2) end - if yaw < 0 then yaw = yaw + (pi * 2) end - end - - self.delay = self.delay - 1 - self.object:set_yaw(yaw) - end - - -- end rotation - - -- knockback timer - if self.pause_timer > 0 then - - self.pause_timer = self.pause_timer - dtime - - return - end - - -- run custom function (defined in mob lua file) - if self.do_custom then - - -- when false skip going any further - if self:do_custom(dtime) == false then - return - end - end - - -- attack timer - self.timer = self.timer + dtime - - if self.state ~= "attack" then - - if self.timer < 1 then - return - end - - self.timer = 0 - end - - -- never go over 100 - if self.timer > 100 then - self.timer = 1 - end - - -- mob plays random sound at times - if random(1, 100) == 1 then - self:mob_sound(self.sounds.random) - end - - -- environmental damage timer (every 1 second) - self.env_damage_timer = self.env_damage_timer + dtime - - if (self.state == "attack" and self.env_damage_timer > 1) - or self.state ~= "attack" then - - self.env_damage_timer = 0 - - -- check for environmental damage (water, fire, lava etc.) - self:do_env_damage() - - -- node replace check (cow eats grass etc.) - self:replace(pos) - end - - self:general_attack() - - self:breed() - - self:follow_flop() - - self:do_states(dtime) - - self:do_jump() - - self:do_runaway_from(self) - - self:do_stay_near() -end - - --- default function when mobs are blown up with TNT -function mob_class:on_blast(damage) - - --print ("----- Damage", damage) - - self.object:punch(self.object, 1.0, { - full_punch_interval = 1.0, - damage_groups = {fleshy = damage}, - }, nil) - - return false, true, {} -end - - -mobs.spawning_mobs = {} - --- register mob entity -function mobs:register_mob(name, def) - - mobs.spawning_mobs[name] = true - -minetest.register_entity(name, setmetatable({ - - stepheight = def.stepheight, - name = name, - type = def.type, - attack_type = def.attack_type, - fly = def.fly, - fly_in = def.fly_in, - owner = def.owner, - order = def.order, - on_die = def.on_die, - do_custom = def.do_custom, - jump_height = def.jump_height, - drawtype = def.drawtype, -- DEPRECATED, use rotate instead - rotate = math.rad(def.rotate or 0), -- 0=front, 90=side, 180=back, 270=side2 - lifetimer = def.lifetimer, - hp_min = max(1, (def.hp_min or 5) * difficulty), - hp_max = max(1, (def.hp_max or 10) * difficulty), - collisionbox = def.collisionbox, - selectionbox = def.selectionbox or def.collisionbox, - visual = def.visual, - visual_size = def.visual_size, - mesh = def.mesh, - makes_footstep_sound = def.makes_footstep_sound, - view_range = def.view_range, - walk_velocity = def.walk_velocity, - run_velocity = def.run_velocity, - damage = max(0, (def.damage or 0) * difficulty), - light_damage = def.light_damage, - light_damage_min = def.light_damage_min, - light_damage_max = def.light_damage_max, - water_damage = def.water_damage, - lava_damage = def.lava_damage, - suffocation = def.suffocation, - fall_damage = def.fall_damage, - fall_speed = def.fall_speed, - drops = def.drops, - armor = def.armor, - on_rightclick = def.on_rightclick, - arrow = def.arrow, - shoot_interval = def.shoot_interval, - sounds = def.sounds, - animation = def.animation, - follow = def.follow, - jump = def.jump, - walk_chance = def.walk_chance, - stand_chance = def.stand_chance, - attack_chance = def.attack_chance, - passive = def.passive, - knock_back = def.knock_back, - blood_amount = def.blood_amount, - blood_texture = def.blood_texture, - shoot_offset = def.shoot_offset, - floats = def.floats, - replace_rate = def.replace_rate, - replace_what = def.replace_what, - replace_with = def.replace_with, - replace_offset = def.replace_offset, - on_replace = def.on_replace, - reach = def.reach, - texture_list = def.textures, - child_texture = def.child_texture, - docile_by_day = def.docile_by_day, - fear_height = def.fear_height, - runaway = def.runaway, - pathfinding = def.pathfinding, - immune_to = def.immune_to, - explosion_radius = def.explosion_radius, - explosion_damage_radius = def.explosion_damage_radius, - explosion_timer = def.explosion_timer, - allow_fuse_reset = def.allow_fuse_reset, - stop_to_explode = def.stop_to_explode, - custom_attack = def.custom_attack, - double_melee_attack = def.double_melee_attack, - dogshoot_switch = def.dogshoot_switch, - dogshoot_count_max = def.dogshoot_count_max, - dogshoot_count2_max = def.dogshoot_count2_max or def.dogshoot_count_max, - group_attack = def.group_attack, - attack_monsters = def.attacks_monsters or def.attack_monsters, - attack_animals = def.attack_animals, - attack_players = def.attack_players, - attack_npcs = def.attack_npcs, - specific_attack = def.specific_attack, - runaway_from = def.runaway_from, - owner_loyal = def.owner_loyal, - pushable = def.pushable, - stay_near = def.stay_near, - - on_spawn = def.on_spawn, - - on_blast = def.on_blast, -- class redifinition - - do_punch = def.do_punch, - - on_breed = def.on_breed, - - on_grown = def.on_grown, - - on_activate = function(self, staticdata, dtime) - return self:mob_activate(staticdata, def, dtime) - end, - -}, mob_class_meta)) - -end -- END mobs:register_mob function - - --- count how many mobs of one type are inside an area --- will also return true for second value if player is inside area -local count_mobs = function(pos, type) - - local total = 0 - local objs = minetest.get_objects_inside_radius(pos, aoc_range * 2) - local ent - local players - - for n = 1, #objs do - - if not objs[n]:is_player() then - - ent = objs[n]:get_luaentity() - - -- count mob type and add to total also - if ent and ent.name and ent.name == type then - total = total + 1 - end - else - players = true - end - end - - return total, players -end - - --- global functions - -function mobs:spawn_abm_check(pos, node, name) - -- global function to add additional spawn checks - -- return true to stop spawning mob -end - - -function mobs:spawn_specific(name, nodes, neighbors, min_light, max_light, - interval, chance, aoc, min_height, max_height, day_toggle, on_spawn) - - -- Do mobs spawn at all? - if not mobs_spawn then - return - end - - -- chance/spawn number override in minetest.conf for registered mob - local numbers = minetest.settings:get(name) - - if numbers then - numbers = numbers:split(",") - chance = tonumber(numbers[1]) or chance - aoc = tonumber(numbers[2]) or aoc - - if chance == 0 then - minetest.log("warning", string.format("[mobs] %s has spawning disabled", name)) - return - end - - minetest.log("action", - string.format("[mobs] Chance setting for %s changed to %s (total: %s)", - name, chance, aoc)) - - end - - minetest.register_abm({ - - label = name .. " spawning", - nodenames = nodes, - neighbors = neighbors, - interval = interval, - chance = max(1, (chance * mob_chance_multiplier)), - catch_up = false, - - action = function(pos, node, active_object_count, active_object_count_wider) - - -- is mob actually registered? - if not mobs.spawning_mobs[name] - or not minetest.registered_entities[name] then ---print ("--- mob doesn't exist", name) - return - end - - -- additional custom checks for spawning mob - if mobs:spawn_abm_check(pos, node, name) == true then - return - end - - -- do not spawn if too many entities in area - if active_object_count_wider >= max_per_block then ---print("--- too many entities in area", active_object_count_wider) - return - end - - -- get total number of this mob in area - local num_mob, is_pla = count_mobs(pos, name) - - if not is_pla then ---print ("--- no players within active area, will not spawn " .. name) - return - end - - if num_mob >= aoc then ---print ("--- too many " .. name .. " in area", num_mob .. "/" .. aoc) - return - end - - -- if toggle set to nil then ignore day/night check - if day_toggle ~= nil then - - local tod = (minetest.get_timeofday() or 0) * 24000 - - if tod > 4500 and tod < 19500 then - -- daylight, but mob wants night - if day_toggle == false then ---print ("--- mob needs night", name) - return - end - else - -- night time but mob wants day - if day_toggle == true then ---print ("--- mob needs day", name) - return - end - end - end - - -- spawn above node - pos.y = pos.y + 1 - - -- are we spawning within height limits? - if pos.y > max_height - or pos.y < min_height then ---print ("--- height limits not met", name, pos.y) - return - end - - -- are light levels ok? - local light = minetest.get_node_light(pos) - if not light - or light > max_light - or light < min_light then ---print ("--- light limits not met", name, light) - return - end - - -- only spawn away from player - local objs = minetest.get_objects_inside_radius(pos, 8) - - for n = 1, #objs do - - if objs[n]:is_player() then ---print ("--- player too close", name) - return - end - end - - -- do we have enough height clearance to spawn mob? - local ent = minetest.registered_entities[name] - local height = max(1, math.ceil( - (ent.collisionbox[5] or 0.25) - - (ent.collisionbox[2] or -0.25) - 1)) - - for n = 0, height do - - local pos2 = {x = pos.x, y = pos.y + n, z = pos.z} - - if minetest.registered_nodes[node_ok(pos2).name].walkable == true then ---print ("--- inside block", name, node_ok(pos2).name) - return - end - end - - -- mobs cannot spawn in protected areas when enabled - if not spawn_protected - and minetest.is_protected(pos, "") then ---print ("--- inside protected area", name) - return - end - - -- spawn mob half block higher than ground - pos.y = pos.y + 0.5 - - local mob = minetest.add_entity(pos, name) ---[[ - print ("[mobs] Spawned " .. name .. " at " - .. minetest.pos_to_string(pos) .. " on " - .. node.name .. " near " .. neighbors[1]) -]] - if on_spawn then - - local ent = mob:get_luaentity() - - on_spawn(ent, pos) - end - end - }) -end - - --- MarkBu's spawn function -function mobs:spawn(def) - mobs:spawn_specific( - def.name, - def.nodes or {"group:soil", "group:stone"}, - def.neighbors or {"air"}, - def.min_light or 0, - def.max_light or 15, - def.interval or spawn_interval, - def.chance or 5000, - def.active_object_count or 1, - def.min_height or -31000, - def.max_height or 31000, - def.day_toggle, - def.on_spawn - ) -end - - ---[[ --- register arrow for shoot attack -function mobs:register_arrow(name, def) - - if not name or not def then return end -- errorcheck - - minetest.register_entity(name, { - physical = false, - visual = def.visual, - visual_size = def.visual_size, - textures = def.textures, - velocity = def.velocity, - hit_player = def.hit_player, - hit_node = def.hit_node, - hit_mob = def.hit_mob, - drop = def.drop or false, -- drops arrow as registered item when true - collisionbox = def.collisionbox or {0, 0, 0, 0, 0, 0}, - timer = 0, - switch = 0, - owner_id = def.owner_id, - rotate = def.rotate, - automatic_face_movement_dir = def.rotate - and (def.rotate - (pi / 180)) or false, - on_activate = def.on_activate, - on_punch = def.on_punch or function(self, hitter, tflp, tool_capabilities, dir) - end, - - on_step = def.on_step or function(self, dtime) - self.timer = self.timer + 1 - local pos = self.object:get_pos() - if self.switch == 0 - or self.timer > 150 then - self.object:remove() - return - end - - -- does arrow have a tail (fireball) - if def.tail - and def.tail == 1 - and def.tail_texture then - - minetest.add_particle({ - pos = pos, - velocity = {x = 0, y = 0, z = 0}, - acceleration = {x = 0, y = 0, z = 0}, - expirationtime = def.expire or 0.25, - collisiondetection = false, - texture = def.tail_texture, - size = def.tail_size or 5, - glow = def.glow or 0, - }) - end - - if self.hit_node then - - local node = node_ok(pos).name - - if minetest.registered_nodes[node].walkable then - self:hit_node(pos, node) - if self.drop == true then - pos.y = pos.y + 1 - self.lastpos = (self.lastpos or pos) - minetest.add_item(self.lastpos, self.object:get_luaentity().name) - end - self.object:remove() - return - end - end - - if self.hit_player or self.hit_mob then - - for _,player in pairs(minetest.get_objects_inside_radius(pos, 1.0)) do - if self.hit_player - and player:is_player() then - self:hit_player(player) - self.object:remove() - return - end - - local entity = player:get_luaentity() - - if entity - and self.hit_mob - and entity._cmi_is_mob == true - and tostring(player) ~= self.owner_id - and entity.name ~= self.object:get_luaentity().name then - self:hit_mob(player) - self.object:remove() - return - end - end - end - self.lastpos = pos - end - }) -end - - --- compatibility function -function mobs:explosion(pos, radius) - local self = {sounds = {explode = "tnt_explode"}} - mobs:boom(self, pos, radius) -end]] - - --- no damage to nodes explosion -function mobs:safe_boom(self, pos, radius) - minetest.sound_play(self.sounds and self.sounds.explode or "tnt_explode", { - pos = pos, - gain = 1.0, - max_hear_distance = self.sounds and self.sounds.distance or 32 - }) - entity_physics(pos, radius) --- effect(pos, 32, "item_smoke.png", radius * 3, radius * 5, radius, 1, 0) -end - - --- make explosion with protection and tnt mod check -function mobs:boom(self, pos, radius) - - if mobs_griefing - and minetest.get_modpath("tnt") and tnt and tnt.boom - and not minetest.is_protected(pos, "") then - tnt.boom(pos, { - radius = radius, - damage_radius = radius, - sound = self.sounds and self.sounds.explode, - explode_center = true, - }) - else - mobs:safe_boom(self, pos, radius) - end -end - --- Mob spawning, returns true on successful placement - -local function spawn_mob(pos, mob, data, placer) - if not pos or not placer or not minetest.registered_entities[mob] or - minetest.is_protected(pos, placer:get_player_name()) then - return - end - pos.y = pos.y + 1 - local obj = minetest.add_entity(pos, mob, data) - if obj then - local ent = obj:get_luaentity() - if ent then - -- set owner if not a monster - if ent.type ~= "monster" then - ent.owner = placer:get_player_name() - ent.tamed = true - end - return true - else - obj:remove() - end - end -end - --- Spawn egg throwing - -local function throw_spawn_egg(itemstack, user, pointed_thing) - local playerpos = user:get_pos() - if not minetest.is_valid_pos(playerpos) then - return - end - local mob = itemstack:get_name():gsub("_set$", "") - local egg_impact = function(thrower, pos, dir, hit_object) - if hit_object then - local punch_damage = { - full_punch_interval = 1.0, - damage_groups = {fleshy=1}, - } - hit_object:punch(thrower, 1.0, punch_damage, dir) - end - spawn_mob(pos, mob, itemstack:get_metadata(), user) - end - local obj = minetest.item_throw(mob.."_set", user, 19, -3, egg_impact) - if obj then - local def = minetest.registered_items[mob.."_set"] - if def and def.inventory_image and def.inventory_image ~= "" then - obj:set_properties({ - visual = "sprite", - visual_size = {x=0.5, y=0.5}, - textures = {def.inventory_image}, - }) - end - minetest.sound_play("throwing_sound", { - pos = playerpos, - gain = 0.7, - max_hear_distance = 10, - }) - if not mobs.is_creative(user) or - not minetest.is_singleplayer() then - itemstack:take_item() - end - end - return itemstack -end - --- Register spawn eggs - --- Note: This also introduces the "spawn_egg" group: --- * spawn_egg=1: Spawn egg (generic mob, no metadata) --- * spawn_egg=2: Spawn egg (captured/tamed mob, metadata) -function mobs:register_egg(mob, desc, background, addegg, no_creative) - - local grp = {spawn_egg = 1} - - -- do NOT add this egg to creative inventory (e.g. dungeon master) - if creative and no_creative == true then - grp.not_in_creative_inventory = 1 - end - - local invimg = background - if addegg == 1 then - invimg = "(" .. invimg .. - "^[mask:mobs_egg_overlay.png)" - end - - -- register new spawn egg containing mob information - minetest.register_craftitem(mob .. "_set", { - - description = desc.." (Tamed)", - inventory_image = invimg, - groups = {spawn_egg = 2, not_in_creative_inventory = 1}, - stack_max = 1, - on_use = throw_spawn_egg, - on_place = function(itemstack, placer, pointed_thing) - - local pos = pointed_thing.above - - -- am I clicking on something with existing on_rightclick function? - local under = minetest.get_node(pointed_thing.under) - local def = minetest.registered_nodes[under.name] - if def and def.on_rightclick then - return def.on_rightclick(pointed_thing.under, under, placer, itemstack) - end - - if spawn_mob(pos, mob, itemstack:get_metadata(), placer) then - -- since mob is unique we remove egg once spawned - itemstack:take_item() - end - return itemstack - end, - }) - - - -- register old stackable mob egg - minetest.register_craftitem(mob, { - description = desc, - inventory_image = invimg, - groups = grp, - stack_max = 1, - on_use = throw_spawn_egg, - on_place = function(itemstack, placer, pointed_thing) - local pos = pointed_thing.above - -- am I clicking on something with existing on_rightclick function? - local under = minetest.get_node(pointed_thing.under) - local def = minetest.registered_nodes[under.name] - if def and def.on_rightclick then - return def.on_rightclick(pointed_thing.under, under, placer, itemstack) - end - - if spawn_mob(pos, mob, itemstack:get_metadata(), placer) then - -- if not in creative then take item and minimal protection - -- against creating a large number of mobs on the server - if not mobs.is_creative(placer) or - not minetest.is_singleplayer() then - itemstack:take_item() - end - end - return itemstack - end, - }) - -end - - --- force capture a mob if space available in inventory, or drop as spawn egg -function mobs:force_capture(self, clicker) - - -- add special mob egg with all mob information - local new_stack = ItemStack(self.name .. "_set") - - local tmp = {} - - for _,stat in pairs(self) do - local t = type(stat) - if t ~= "function" - and t ~= "nil" - and t ~= "userdata" then - tmp[_] = self[_] - end - end - - local data_str = minetest.serialize(tmp) - - new_stack:set_metadata(data_str) - - local inv = clicker:get_inventory() - - if inv:room_for_item("main", new_stack) then - inv:add_item("main", new_stack) - else - minetest.add_item(clicker:get_pos(), new_stack) - end - - self.object:remove() - self:mob_sound("default_place_node_hard") -end - - --- capture critter (thanks to blert2112 for idea) -function mobs:capture_mob(self, clicker, chance_hand, chance_net, chance_lasso, - force_take, replacewith) - - if self.child - or not clicker:is_player() - or not clicker:get_inventory() then - return false - end - - -- get name of clicked mob - local mobname = self.name - - -- if not nil change what will be added to inventory - if replacewith then - mobname = replacewith - end - - local name = clicker:get_player_name() - local tool = clicker:get_wielded_item() - - -- are we using hand, net or lasso to pick up mob? - if tool:get_name() ~= "" - and tool:get_name() ~= "mobs:net" - and tool:get_name() ~= "mobs:lasso" then - return false - end - - -- is mob tamed? - if self.tamed == false - and force_take == false then - minetest.chat_send_player(name, "Not tamed!") - return false - end - - -- cannot pick up if not owner - if self.owner ~= name - and force_take == false then - minetest.chat_send_player(name, self.owner.." is owner!") - return false - end - - if clicker:get_inventory():room_for_item("main", mobname) then - - -- was mob clicked with hand, net, or lasso? - local chance = 0 - - if tool:get_name() == "" then - chance = chance_hand - - elseif tool:get_name() == "mobs:net" then - - chance = chance_net - - tool:add_wear(4000) -- 17 uses - - clicker:set_wielded_item(tool) - - elseif tool:get_name() == "mobs:lasso" then - - chance = chance_lasso - - tool:add_wear(650) -- 100 uses - - clicker:set_wielded_item(tool) - - end - - -- calculate chance.. add to inventory if successful? - if chance and chance > 0 and random(1, 100) <= chance then - - -- default mob egg - local new_stack = ItemStack(mobname) - - -- add special mob egg with all mob information - -- unless 'replacewith' contains new item to use - if not replacewith then - - new_stack = ItemStack(mobname .. "_set") - - local tmp = {} - - for _,stat in pairs(self) do - local t = type(stat) - if t ~= "function" - and t ~= "nil" - and t ~= "userdata" then - tmp[_] = self[_] - end - end - - local data_str = minetest.serialize(tmp) - - new_stack:set_metadata(data_str) - end - - local inv = clicker:get_inventory() - - if inv:room_for_item("main", new_stack) then - inv:add_item("main", new_stack) - else - minetest.add_item(clicker:get_pos(), new_stack) - end - - self.object:remove() - - self:mob_sound("default_place_node_hard") - - return new_stack - - -- when chance above fails or set to 0, miss! - elseif chance and chance ~= 0 then - minetest.chat_send_player(name, "Missed!") - - self:mob_sound("mobs_swing") - return false - - -- when chance set to nil always return a miss (used for npc walk/follow) - elseif not chance then - return false - end - end - - return true -end - - --- protect tamed mob with rune item -function mobs:protect(self, clicker) - - local name = clicker:get_player_name() - local tool = clicker:get_wielded_item() - - if tool:get_name() ~= "mobs:protector" then - return false - end - - if self.tamed == false then - minetest.chat_send_player(name, "Not tamed!") - return true -- false - end - - if self.protected == true then - minetest.chat_send_player(name, "Already protected!") - return true -- false - end - - if not mobs.is_creative(clicker:get_player_name()) then - tool:take_item() -- take 1 protection rune - clicker:set_wielded_item(tool) - end - - self.protected = true - - local pos = self.object:get_pos() - pos.y = pos.y + self.collisionbox[2] + 0.5 - - effect(self.object:get_pos(), 25, "mobs_protect_particle.png", 0.5, 4, 2, 15) - self:mob_sound("mobs_spell") - return true -end - - -local mob_obj = {} -local mob_sta = {} - --- feeding, taming and breeding (thanks blert2112) -function mobs:feed_tame(self, clicker, feed_count, breed, tame) - - -- can eat/tame with item in hand - if self.follow - and self:follow_holding(clicker) then - - -- if not in creative then take item - if not mobs.is_creative(clicker:get_player_name()) then - - local item = clicker:get_wielded_item() - item:take_item() - clicker:set_wielded_item(item) - end - - -- increase health - self.health = self.health + 4 - - if self.health >= self.hp_max then - - self.health = self.hp_max - - if self.htimer < 1 then - - minetest.chat_send_player(clicker:get_player_name(), - self.name:split(":")[2] - .. " at full health (" .. tostring(self.health) .. ")") - - self.htimer = 5 - end - end - - self.object:set_hp(self.health) - - self:update_tag() - - -- make children grow quicker - if self.child == true then - - self.hornytimer = self.hornytimer + 20 - - return true - end - - -- feed and tame - self.food = (self.food or 0) + 1 - - if self.food >= feed_count then - - self.food = 0 - - if breed and self.hornytimer == 0 then - self.horny = true - end - - if tame then - - if self.tamed == false then - minetest.chat_send_player(clicker:get_player_name(), - self.name:split(":")[2] - .. " has been tamed!") - end - - self.tamed = true - - if not self.owner or self.owner == "" then - self.owner = clicker:get_player_name() - end - end - - -- make sound when fed so many times - self:mob_sound(self.sounds.random) - end - - return true - end - - local item = clicker:get_wielded_item() - - -- if mob has been tamed you can name it with a nametag - if item:get_name() == "mobs:nametag" - and clicker:get_player_name() == self.owner then - - local name = clicker:get_player_name() - - -- store mob and nametag stack in external variables - mob_obj[name] = self - mob_sta[name] = item - - local tag = self.nametag or "" - - minetest.show_formspec(name, "mobs_nametag", "size[8,4]" - .. "field[0.5,1;7.5,0;name;" - .. minetest.formspec_escape("Enter name:") .. ";" .. tag .. "]" - .. "button_exit[2.5,3.5;3,1;mob_rename;" - .. minetest.formspec_escape("Rename") .. "]") - end - - return false -end - - --- inspired by blockmen's nametag mod -minetest.register_on_player_receive_fields(function(player, formname, fields) - - -- right-clicked with nametag and name entered? - if formname == "mobs_nametag" - and fields.name - and fields.name ~= "" then - - local name = player:get_player_name() - - if not mob_obj[name] - or not mob_obj[name].object then - return - end - - -- make sure nametag is being used to name mob - local item = player:get_wielded_item() - - if item:get_name() ~= "mobs:nametag" then - return - end - - -- limit name entered to 64 characters long - if string.len(fields.name) > 64 then - fields.name = string.sub(fields.name, 1, 64) - end - - -- update nametag - mob_obj[name].nametag = fields.name - - mob_obj[name]:update_tag() - - -- if not in creative then take item - if not mobs.is_creative(name) then - mob_sta[name]:take_item() - player:set_wielded_item(mob_sta[name]) - end - - -- reset external variables - mob_obj[name] = nil - mob_sta[name] = nil - end -end) diff --git a/games/default/files/mobs_redo/crafts.lua b/games/default/files/mobs_redo/crafts.lua deleted file mode 100644 index 1894ea76d..000000000 --- a/games/default/files/mobs_redo/crafts.lua +++ /dev/null @@ -1,304 +0,0 @@ - --- name tag -minetest.register_craftitem("mobs:nametag", { - description = "Name Tag", - inventory_image = "mobs_nametag.png", - groups = {flammable = 2} -}) - -core.register_craft({ - type = "shapeless", - output = "mobs:nametag", - recipe = {"default:paper", "dye:black", "farming:string"} -}) - --- leather -minetest.register_craftitem("mobs:leather", { - description = "Leather", - inventory_image = "mobs_leather.png", - groups = {flammable = 2} -}) - --- raw meat -minetest.register_craftitem("mobs:meat_raw", { - description = "Raw Meat", - inventory_image = "mobs_meat_raw.png", - on_use = minetest.item_eat(3), - groups = {food_meat_raw = 1, flammable = 2, food = 1} -}) - --- cooked meat -minetest.register_craftitem("mobs:meat", { - description = "Cooked Meat", - inventory_image = "mobs_meat.png", - on_use = minetest.item_eat(8), - groups = {food_meat = 1, flammable = 2, food = 1} -}) - -minetest.register_craft({ - type = "cooking", - output = "mobs:meat", - recipe = "mobs:meat_raw", - cooktime = 5 -}) - --- raw pork -minetest.register_craftitem("mobs:pork_raw", { - description = "Raw Pork", - inventory_image = "mobs_pork_raw.png", - on_use = minetest.item_eat(3), - groups = {food_meat_raw = 1, flammable = 2, food = 1} -}) - --- cooked pork -minetest.register_craftitem("mobs:pork", { - description = "Cooked Pork", - inventory_image = "mobs_pork_cooked.png", - on_use = minetest.item_eat(8), - groups = {food_meat = 1, flammable = 2, food = 1} -}) - -minetest.register_craft({ - type = "cooking", - output = "mobs:pork", - recipe = "mobs:pork_raw", - cooktime = 5 -}) - --- raw rabbit -minetest.register_craftitem("mobs:rabbit_raw", { - description = "Raw Rabbit", - inventory_image = "mobs_rabbit_raw.png", - on_use = minetest.item_eat(3), - groups = {food_meat_raw = 1, food_rabbit_raw = 1, flammable = 2, food = 1} -}) - --- cooked rabbit -minetest.register_craftitem("mobs:rabbit_cooked", { - description = "Cooked Rabbit", - inventory_image = "mobs_rabbit_cooked.png", - on_use = minetest.item_eat(5), - groups = {food_meat = 1, food_rabbit = 1, flammable = 2, food = 1} -}) - -minetest.register_craft({ - type = "cooking", - output = "mobs:rabbit_cooked", - recipe = "mobs:rabbit_raw", - cooktime = 5 -}) - --- rabbit hide -minetest.register_craftitem("mobs:rabbit_hide", { - description = "Rabbit Hide", - inventory_image = "mobs_rabbit_hide.png", - groups = {flammable = 2} -}) - -minetest.register_craft({ - output = "mobs:leather", - type = "shapeless", - recipe = { - "mobs:rabbit_hide", "mobs:rabbit_hide", - "mobs:rabbit_hide", "mobs:rabbit_hide" - } -}) - --- chicken egg -local function mobs_shoot_egg(itemstack, thrower, pointed_thing) - local playerpos = thrower:get_pos() - if not minetest.is_valid_pos(playerpos) then - return - end - local obj = minetest.item_throw("mobs:chicken_egg", thrower, 19, -3, egg_impact) - if obj then - obj:set_properties({ - visual = "sprite", - visual_size = {x=0.5, y=0.5}, - textures = {"mobs_chicken_egg.png"}, - }) - minetest.sound_play("throwing_sound", { - pos = playerpos, - gain = 0.7, - max_hear_distance = 10, - }) - if not mobs.is_creative(thrower) or - not minetest.is_singleplayer() then - itemstack:take_item() - end - end - return itemstack -end - -minetest.register_craftitem(":mobs:chicken_egg", { - description = "Chicken Egg", - inventory_image = "mobs_chicken_egg.png", - visual_scale = 0.7, - on_use = mobs_shoot_egg, - groups = {snappy = 2, dig_immediate = 3} -}) - -minetest.register_alias("mobs:egg", "air") - --- fried egg -minetest.register_craftitem("mobs:chicken_egg_fried", { - description = "Fried Egg", - inventory_image = "mobs_chicken_egg_fried.png", - on_use = minetest.item_eat(2), - groups = {flammable = 2, food = 1} -}) - -minetest.register_craft({ - type = "cooking", - recipe = "mobs:chicken_egg", - output = "mobs:chicken_egg_fried" -}) - --- raw chicken -minetest.register_craftitem("mobs:chicken_raw", { - description = "Raw Chicken", - inventory_image = "mobs_chicken_raw.png", - on_use = minetest.item_eat(2), - groups = {food_meat_raw = 1, food_chicken_raw = 1, flammable = 2, food = 1} -}) - --- cooked chicken -minetest.register_craftitem("mobs:chicken_cooked", { - description = "Cooked Chicken", - inventory_image = "mobs_chicken_cooked.png", - on_use = minetest.item_eat(6), - groups = {food_meat = 1, food_chicken = 1, flammable = 2, food = 1} -}) - -minetest.register_craft({ - type = "cooking", - recipe = "mobs:chicken_raw", - output = "mobs:chicken_cooked" -}) - --- bucket of milk -minetest.register_craftitem("mobs:bucket_milk", { - description = "Milk Bucket", - inventory_image = "mobs_bucket_milk.png", - stack_max = 1, - on_use = minetest.item_eat(8, "bucket:bucket_empty"), - groups = {food_milk = 1, flammable = 3, food = 1} -}) - --- cheese wedge -minetest.register_craftitem("mobs:cheese", { - description = "Cheese", - inventory_image = "mobs_cheese.png", - on_use = minetest.item_eat(4), - groups = {food_cheese = 1, flammable = 2, food = 1} -}) - -minetest.register_craft({ - type = "cooking", - output = "mobs:cheese", - recipe = "mobs:bucket_milk", - cooktime = 5, - replacements = {{ "mobs:bucket_milk", "bucket:bucket_empty"}} -}) - --- cheese block -minetest.register_node("mobs:cheeseblock", { - description = "Cheese Block", - tiles = {"mobs_cheeseblock.png"}, - is_ground_content = false, - groups = {crumbly = 3}, - sounds = default.node_sound_dirt_defaults() -}) - -minetest.register_craft({ - output = "mobs:cheeseblock", - recipe = { - {"mobs:cheese", "mobs:cheese", "mobs:cheese"}, - {"mobs:cheese", "mobs:cheese", "mobs:cheese"}, - {"mobs:cheese", "mobs:cheese", "mobs:cheese"} - } -}) - -minetest.register_craft({ - output = "mobs:cheese 9", - recipe = { - {"mobs:cheeseblock"} - } -}) - --- rotten flesh -minetest.register_craftitem("mobs:rotten_flesh", { - description = "Rotten Flesh", - inventory_image = "mobs_rotten_flesh.png", - on_use = minetest.item_eat(1), - groups = {flammable = 2, food = 1} -}) - -minetest.register_alias("mobs_monster:rotten_flesh", "mobs:rotten_flesh") -minetest.register_alias("mobs:magic_lasso", "farming:string") -minetest.register_alias("mobs:lasso", "farming:string") - --- shears (right click to shear animal) -minetest.register_tool("mobs:shears", { - description = "Steel Shears (right-click to shear)", - inventory_image = "mobs_shears.png", - groups = {flammable = 2} -}) - -minetest.register_craft({ - output = "mobs:shears", - recipe = { - {"", "default:steel_ingot", ""}, - {"", "group:stick", "default:steel_ingot"} - } -}) - --- cobweb -minetest.register_node("mobs:cobweb", { - description = "Cobweb", - drawtype = "plantlike", - visual_scale = 1.2, - tiles = {"mobs_cobweb.png"}, - inventory_image = "mobs_cobweb.png", - paramtype = "light", - sunlight_propagates = true, - walkable = false, - groups = {snappy = 1, disable_jump = 1, speed = -30}, - sounds = default.node_sound_leaves_defaults() -}) - --- protection item -minetest.register_craftitem("mobs:protector", { - description = "Mob Protection Rune", - inventory_image = "mobs_protector.png", - groups = {flammable = 2}, -}) - -minetest.register_craft({ - output = "mobs:protector", - recipe = { - {"default:stone", "default:stone", "default:stone"}, - {"default:stone", "default:goldblock", "default:stone"}, - {"default:stone", "default:stone", "default:stone"} - } -}) - --- items that can be used as fuel -minetest.register_craft({ - type = "fuel", - recipe = "mobs:nametag", - burntime = 3 -}) - -minetest.register_craft({ - type = "fuel", - recipe = "mobs:leather", - burntime = 4 -}) - - -minetest.register_craft({ - type = "fuel", - recipe = "mobs:rabbit_hide", - burntime = 2 -}) diff --git a/games/default/files/mobs_redo/depends.txt b/games/default/files/mobs_redo/depends.txt deleted file mode 100644 index dd144eb16..000000000 --- a/games/default/files/mobs_redo/depends.txt +++ /dev/null @@ -1,2 +0,0 @@ -default -experience? diff --git a/games/default/files/mobs_redo/init.lua b/games/default/files/mobs_redo/init.lua deleted file mode 100644 index ac8e242da..000000000 --- a/games/default/files/mobs_redo/init.lua +++ /dev/null @@ -1,7 +0,0 @@ -local path = minetest.get_modpath("mobs") - --- Mob API -dofile(path.."/api.lua") - --- Mob Items -dofile(path.."/crafts.lua") diff --git a/games/default/files/mobs_redo/readme.MD b/games/default/files/mobs_redo/readme.MD deleted file mode 100644 index a2fbc47a0..000000000 --- a/games/default/files/mobs_redo/readme.MD +++ /dev/null @@ -1,85 +0,0 @@ - -MOBS REDO for MINETEST - -Credits: -https://github.com/blert2112/mobs_more_animals/tree/master/mobs_wolf -https://github.com/blert2112/mobs_more_animals/tree/master/mobs_bear -https://github.com/blert2112/mobs_more_monsters/tree/master/mobs_zombie -https://github.com/tenplus1/mobs - -Built from PilzAdam's original Simple Mobs with additional mobs by KrupnovPavel, Zeg9, ExeterDad, AspireMint, TenPlus1, kaadmy, blert2112 and MoNTE48. - -https://forum.minetest.net/viewtopic.php?f=11&t=9917 - - -Crafts: - - - Nametag (paper, black dye, string) can be used right-click on a tamed mob to give them a name. - - Nets can be used to right-click tamed mobs to pick them up and place inside inventory as a spawn egg. - - Magic Lasso is similar to nets but with a better chance of picking up larger mobs. - - Shears are used to right-click sheep and return 1-3 wool. - - Protection Rune lets you protect tamed mobs from harm by other players - - Mob Fence and Fence Top (to stop mobs escaping/glitching through fences) - - -Changelog: -- 1.49- Added mobs:force_capture(self, player) function, api functions now use metatables thanks to bell07 -- 1.48- Add mobs:set_velocity(self, velocity) global function -- 1.47- Mob damage changes, min and max light level for damage added, ignition sources checked for lava damage -- 1.46- Mobs only drop rare items when killed by player (drops.min = 0 makes them rare), code tweak, pathfinding no longer sees through walkable nodes -- 1.45- Added Fence Top to add on top of any fence to stop mobs escaping, new line_of_sight tweaked by Astrobe -- 1.44- Added ToolRanks support for swords when attacking mobs -- 1.43- Better 0.4.16 compatibility, added general attack function and settings -- 1.42- Added "all" option to immune_to table, tidied floating mobs to be less intensive -- 1.41- Mob pathfinding has been updated thanks to Elkien3 -- 1.40- Updated to use newer functions, requires Minetest 0.4.16+ to work. -- 1.39- Added 'on_breed', 'on_grown' and 'do_punch' custom functions per mob -- 1.38- Better entity checking, nametag setting and on_spawn function added to mob registry, tweaked light damage -- 1.37- Added support for Raymoo's CMI (common mob interface) mod: https://forum.minetest.net/viewtopic.php?f=9&t=15448 -- 1.36- Death check added, if mob dies in fire/lava/with lava pick then drops are cooked -- 1.35- Added owner_loyal flag for owned mobs to attack player enemies, also fixed group_attack -- 1.34- Added function to fly mob using directional movement (thanks D00Med for flying code) -- 1.33- Added functions to mount ride mobs (mobs.attach, mobs.detach, mobs.drive) many thanks to Blert2112 -- 1.32- Added new spawn check to count specific mobs AND new minetest.conf setting to chance spawn chance and numbers, added ability to protect tamed mobs -- 1.31- Added 'attack_animals' and 'specific_attack' flags for custom monster attacks, also 'mob_difficulty' .conf setting to make mobs harder. -- 1.30- Added support for invisibility mod (mobs cant attack what they cant see), tweaked and tidied code -- 1.29- Split original Mobs Redo into a modpack to make it easier to disable mob sets (animal, monster, npc) or simply use the Api itself for your own mod -- 1.28- New damage system added with ability for mob to be immune to weapons or healed by them :) -- 1.27- Added new sheep, lava flan and spawn egg textures. New Lava Pick tool smelts what you dig. New atan checking function. -- 1.26- Pathfinding feature added thanks to rnd, when monsters attack they become scary smart in finding you :) also, beehive produces honey now :) -- 1.25- Mobs no longer spawn within 12 blocks of player or despawn within same range, spawners now have player detection, Code tidy and tweak. -- 1.24- Added feature where certain animals run away when punched (runaway = true in mob definition) -- 1.23- Added mob spawner block for admin to setup spawners in-game (place and right click to enter settings) -- 1.22- Added ability to name tamed animals and npc using nametags, also npc will attack anyone who punches them apart from owner -- 1.21- Added some more error checking to reduce serialize.h error and added height checks for falling off cliffs (thanks cmdskp) -- 1.20- Error checking added to remove bad mobs, out of map limit mobs and stop serialize.h error -- 1.19- Chickens now drop egg items instead of placing the egg, also throwing eggs result in 1/8 chance of spawning chick -- 1.18- Added docile_by_day flag so that monsters will not attack automatically during daylight hours unless hit first -- 1.17- Added 'dogshoot' attack type, shoots when out of reach, melee attack when in reach, also api tweaks and self.reach added -- 1.16- Mobs follow multiple items now, Npc's can breed -- 1.15- Added Feeding/Taming/Breeding function, right-click to pick up any sheep with X mark on them and replace with new one to fix compatibility. -- 1.14- All .self variables saved in staticdata, Fixed self.health bug -- 1.13- Added capture function (thanks blert2112) chance of picking up mob with hand; net; magic lasso, replaced some .x models with newer .b3d one's -- 1.12- Added animal ownership so that players cannot steal your tamed animals -- 1.11- Added flying mobs (and swimming), fly=true and fly_in="air" or "deafult:water_source" for fishy -- 1,10- Footstep removed (use replace), explosion routine added for exploding mobs. -- 1.09- reworked breeding routine, added mob rotation value, added footstep feature, added jumping mobs with sounds feature, added magic lasso for picking up animals -- 1.08- Mob throwing attack has been rehauled so that they can damage one another, also drops and on_die function added -- 1.07- Npc's can now be set to follow player or stand by using self.order and self.owner variables -- beta- Npc mob added, kills monsters, attacks player when punched, right click with food to heal or gold lump for drop -- 1.06- Changed recovery times after breeding, and time taken to grow up (can be sped up by feeding baby animal) -- 1.05- Added ExeterDad's bunny's which can be picked up and tamed with 4 carrots from farming redo or farming_plus, also shears added to get wool from sheep and lastly Jordach/BSD's kitten -- 1.04- Added mating for sheep, cows and hogs... feed animals to make horny and hope for a baby which is half size, will grow up quick though :) -- 1.03- Added mob drop/replace feature so that chickens can drop eggs, cow/sheep can eat grass/wheat etc. -- 1.02- Sheared sheep are remembered and spawn shaven, Warthogs will attack when threatened, Api additions -- 1.01- Mobs that suffer fall damage or die in water/lava/sunlight will now drop items -- 1.0 - more work on Api so that certain mobs can float in water while some sink like a brick :) -- 0.9 - Spawn eggs added for all mobs (admin only, cannot be placed in protected areas)... Api tweaked -- 0.8 - Added sounds to monster mobs (thanks Cyberpangolin for the sfx) and also chicken sound -- 0.7 - mobs.protected switch added to api.lua, when set to 1 mobs no longer spawn in protected areas, also bug fixes -- 0.6 - Api now supports multi-textured mobs, e.g oerkki, dungeon master, rats and chickens have random skins when spawning (sheep fix TODO), also new Honey block -- 0.5 - Mobs now float in water, die from falling, and some code improvements -- 0.4 - Dungeon Masters and Mese Monsters have much better aim due to shoot_offset, also they can both shoot through nodes that aren't walkable (flowers, grass etc) plus new sheep sound :) -- 0.3 - Added LOTT's Spider mob, made Cobwebs, added KPavel's Bee with Honey and Beehives (made texture), Warthogs now have sound and can be tamed, taming of shaved sheep or milked cow with 8 wheat so it will not despawn, many bug fixes :) -- 0.2 - Cooking bucket of milk into cheese now returns empty bucket -- 0.1 - Initial Release diff --git a/games/default/files/mobs_redo/sounds/mobs_swing.ogg b/games/default/files/mobs_redo/sounds/mobs_swing.ogg deleted file mode 100644 index e3fc2ec55..000000000 Binary files a/games/default/files/mobs_redo/sounds/mobs_swing.ogg and /dev/null differ diff --git a/games/default/files/mobs_redo/textures/mobs_bucket_milk.png b/games/default/files/mobs_redo/textures/mobs_bucket_milk.png deleted file mode 100644 index d1f1b9fee..000000000 Binary files a/games/default/files/mobs_redo/textures/mobs_bucket_milk.png and /dev/null differ diff --git a/games/default/files/mobs_redo/textures/mobs_cheese.png b/games/default/files/mobs_redo/textures/mobs_cheese.png deleted file mode 100644 index 6c089b3dd..000000000 Binary files a/games/default/files/mobs_redo/textures/mobs_cheese.png and /dev/null differ diff --git a/games/default/files/mobs_redo/textures/mobs_cheeseblock.png b/games/default/files/mobs_redo/textures/mobs_cheeseblock.png deleted file mode 100644 index d0fd2e700..000000000 Binary files a/games/default/files/mobs_redo/textures/mobs_cheeseblock.png and /dev/null differ diff --git a/games/default/files/mobs_redo/textures/mobs_chicken_cooked.png b/games/default/files/mobs_redo/textures/mobs_chicken_cooked.png deleted file mode 100644 index 1d168d9fb..000000000 Binary files a/games/default/files/mobs_redo/textures/mobs_chicken_cooked.png and /dev/null differ diff --git a/games/default/files/mobs_redo/textures/mobs_chicken_egg.png b/games/default/files/mobs_redo/textures/mobs_chicken_egg.png deleted file mode 100644 index c705b7294..000000000 Binary files a/games/default/files/mobs_redo/textures/mobs_chicken_egg.png and /dev/null differ diff --git a/games/default/files/mobs_redo/textures/mobs_chicken_egg_fried.png b/games/default/files/mobs_redo/textures/mobs_chicken_egg_fried.png deleted file mode 100644 index a7ad43a1b..000000000 Binary files a/games/default/files/mobs_redo/textures/mobs_chicken_egg_fried.png and /dev/null differ diff --git a/games/default/files/mobs_redo/textures/mobs_chicken_raw.png b/games/default/files/mobs_redo/textures/mobs_chicken_raw.png deleted file mode 100644 index 87ecf749f..000000000 Binary files a/games/default/files/mobs_redo/textures/mobs_chicken_raw.png and /dev/null differ diff --git a/games/default/files/mobs_redo/textures/mobs_cobweb.png b/games/default/files/mobs_redo/textures/mobs_cobweb.png deleted file mode 100644 index 6acc588f3..000000000 Binary files a/games/default/files/mobs_redo/textures/mobs_cobweb.png and /dev/null differ diff --git a/games/default/files/mobs_redo/textures/mobs_egg_overlay.png b/games/default/files/mobs_redo/textures/mobs_egg_overlay.png deleted file mode 100644 index 73b964c3f..000000000 Binary files a/games/default/files/mobs_redo/textures/mobs_egg_overlay.png and /dev/null differ diff --git a/games/default/files/mobs_redo/textures/mobs_leather.png b/games/default/files/mobs_redo/textures/mobs_leather.png deleted file mode 100644 index 6e8e292d5..000000000 Binary files a/games/default/files/mobs_redo/textures/mobs_leather.png and /dev/null differ diff --git a/games/default/files/mobs_redo/textures/mobs_meat.png b/games/default/files/mobs_redo/textures/mobs_meat.png deleted file mode 100644 index 141aec5bc..000000000 Binary files a/games/default/files/mobs_redo/textures/mobs_meat.png and /dev/null differ diff --git a/games/default/files/mobs_redo/textures/mobs_meat_raw.png b/games/default/files/mobs_redo/textures/mobs_meat_raw.png deleted file mode 100644 index d77c2bc07..000000000 Binary files a/games/default/files/mobs_redo/textures/mobs_meat_raw.png and /dev/null differ diff --git a/games/default/files/mobs_redo/textures/mobs_nametag.png b/games/default/files/mobs_redo/textures/mobs_nametag.png deleted file mode 100644 index cfe2e9765..000000000 Binary files a/games/default/files/mobs_redo/textures/mobs_nametag.png and /dev/null differ diff --git a/games/default/files/mobs_redo/textures/mobs_pork_cooked.png b/games/default/files/mobs_redo/textures/mobs_pork_cooked.png deleted file mode 100644 index c3ee19d67..000000000 Binary files a/games/default/files/mobs_redo/textures/mobs_pork_cooked.png and /dev/null differ diff --git a/games/default/files/mobs_redo/textures/mobs_pork_raw.png b/games/default/files/mobs_redo/textures/mobs_pork_raw.png deleted file mode 100644 index 23205ae26..000000000 Binary files a/games/default/files/mobs_redo/textures/mobs_pork_raw.png and /dev/null differ diff --git a/games/default/files/mobs_redo/textures/mobs_protector.png b/games/default/files/mobs_redo/textures/mobs_protector.png deleted file mode 100644 index ab2302906..000000000 Binary files a/games/default/files/mobs_redo/textures/mobs_protector.png and /dev/null differ diff --git a/games/default/files/mobs_redo/textures/mobs_rabbit_cooked.png b/games/default/files/mobs_redo/textures/mobs_rabbit_cooked.png deleted file mode 100644 index b9e947eaa..000000000 Binary files a/games/default/files/mobs_redo/textures/mobs_rabbit_cooked.png and /dev/null differ diff --git a/games/default/files/mobs_redo/textures/mobs_rabbit_hide.png b/games/default/files/mobs_redo/textures/mobs_rabbit_hide.png deleted file mode 100644 index 36df959df..000000000 Binary files a/games/default/files/mobs_redo/textures/mobs_rabbit_hide.png and /dev/null differ diff --git a/games/default/files/mobs_redo/textures/mobs_rabbit_raw.png b/games/default/files/mobs_redo/textures/mobs_rabbit_raw.png deleted file mode 100644 index da14e9153..000000000 Binary files a/games/default/files/mobs_redo/textures/mobs_rabbit_raw.png and /dev/null differ diff --git a/games/default/files/mobs_redo/textures/mobs_rotten_flesh.png b/games/default/files/mobs_redo/textures/mobs_rotten_flesh.png deleted file mode 100644 index b6889a3dd..000000000 Binary files a/games/default/files/mobs_redo/textures/mobs_rotten_flesh.png and /dev/null differ diff --git a/games/default/files/mobs_redo/textures/mobs_shears.png b/games/default/files/mobs_redo/textures/mobs_shears.png deleted file mode 100644 index e5995f2b5..000000000 Binary files a/games/default/files/mobs_redo/textures/mobs_shears.png and /dev/null differ diff --git a/games/default/files/player/pep/README.md b/games/default/files/player/pep/README.md deleted file mode 100644 index 72ba61d6e..000000000 --- a/games/default/files/player/pep/README.md +++ /dev/null @@ -1,78 +0,0 @@ -# Pep: Player Effects Potions -Version 1.4.0 - -## Introduction -This little mod adds some simple potions which add temporary effects when consumed. -Currently, the potions affect breath, health, player gravity, running speed and jump height. - - * License of everything: MIT License - -## List of potions and crafting recipes -All crafting recipes are shapeless. - -### Breath -#### Air potion -Gives you breath underwater for 30s. -Craft: 8 papyri, 1 glass bottle. - -All 8 papyri must occupy one slot. - -### Gravity -#### Non-gravity potion -Negates all gravity for you, for 20s. -Craft: 1 mese crystal, 1 glass bottle - -#### Gravity neutralizer -Clears all your gravity effects. -Craft: 1 non-gravity potion, 1 iron lump - -### Jump height -#### High jumping potion -Lets you jump higher for 30s. -Craft: 1 orange tulip, 1 grass, 2 mese crystal fragments, 1 glass bottle - -#### Low jumping potion -Makes you jump lower for 30s. -Craft: 1 leaves block, 1 jungle leaves block, 1 iron lump, 1 yellow dandelion, 1 glass bottle - -#### Jump neutralier -Clears all jump effects. -Craft: 1 high jumping potion, 1 low jumping potion. - - -### Health -#### Weak healing potion -Gives you 1 HP every 2 seconds, 10 times. -Craft: 1 cactus, 1 flour, 1 brown mushroom, 1 glass bottle. - -#### Strong healing potion -Gives you 2 HP every second, 10 times. -Craft: 1 gold lump, 1 flour, 1 weak healing potion. - - -### Walking speed -#### Running potion -Makes you run faster for 30s. -Craft: 1 pine sapling, 1 cactus, 1 yellow dandelion, 1 jungle grass, 1 glass bottle. - -#### Slug potion -Makes you walk slower for 30s. -Craft: 1 dry grass, 1 ice, 1 glass bottle. - -#### Speed neutralizer -Clears all running speed effects. -Craft: 1 running potion, 1 slug potion. - -### Mana (needs Mana mod) -#### Weak mana potion -Increases mana regeneration rate by 0.5 for 10 seconds. -Craft: 2 dry shrubs, 1 cotton seed, 1 mese crystal fragment, 1 glass bottle. - -#### Strong mana potion -Increases mana regeneration rate by 1 for 10 seconds. -Craft: 4 dry shrubs, 1 jungle sapling, 1 acacia tree sapling, 1 mese crystal fragment, 1 weak mana potion. - -### Other potions -#### Mole potion -Digs out two blocks directly in front of you, for 18 seconds. -Craft: 1 steel pickaxe, 1 steel shovel, 1 glass bottle. diff --git a/games/default/files/player/pep/depends.txt b/games/default/files/player/pep/depends.txt deleted file mode 100644 index a379c8f4f..000000000 --- a/games/default/files/player/pep/depends.txt +++ /dev/null @@ -1,7 +0,0 @@ -playereffects -vessels -playerphysics? -default? -flowers? -farming? -intllib? diff --git a/games/default/files/player/pep/init.lua b/games/default/files/player/pep/init.lua deleted file mode 100644 index 0daf7c9ce..000000000 --- a/games/default/files/player/pep/init.lua +++ /dev/null @@ -1,438 +0,0 @@ --- Boilerplate to support localized strings if intllib mod is installed. -local S -if minetest.get_modpath("intllib") then - S = intllib.Getter() -else - S = function(s) return s end -end -local ppa = minetest.get_modpath("playerphysics") - -pep = {} - -function return_empty_bottle(potiondef, user, itemstack) - local inventory = user:get_inventory() - local empty_vessel = "vessels:glass_bottle" - if (itemstack:is_empty()) then - return ItemStack(empty_vessel) - else - if inventory:room_for_item("main", "vessels:glass_bottle") then - inventory:add_item("main", "vessels:glass_bottle") - else - minetest.add_item(user:getpos(), empty_vessel) - end - end - return itemstack -end - -function pep.register_potion(potiondef) - local on_use - on_use = function(itemstack, user, pointed_thing) - -- Particles - minetest.add_particlespawner({ - amount = 30, - time = 0.1, - minpos = pointed_thing.above, - maxpos = pointed_thing.above, - minvel = {x = -1, y = 1, z = -1}, - maxvel = {x = 1, y = 2, z = 1}, - minacc = {x = 0, y = -5, z = 0}, - maxacc = {x = 0, y = -9, z = 0}, - minexptime = 1, - maxexptime = 3, - minsize = 1, - maxsize = 2, - collisiondetection = false, - vertical = false, - texture = "pep_"..potiondef.basename.."_particle.png", - }) - if(potiondef.effect_type ~= nil) then - playereffects.apply_effect_type(potiondef.effect_type, potiondef.duration, user) - itemstack:take_item() - itemstack = return_empty_bottle(potiondef, user, itemstack) - else - itemstack:take_item() - itemstack = return_empty_bottle(potiondef, user, itemstack) - end - return itemstack - end - - minetest.register_craftitem("pep:"..potiondef.basename, { - description = string.format(S("Glass Bottle (%s)"), potiondef.contentstring), - _doc_items_longdesc = potiondef.longdesc, - _doc_items_usagehelp = S("Hold it in your hand, then left-click to drink it."), - inventory_image = "pep_"..potiondef.basename..".png", - wield_image = "pep_"..potiondef.basename..".png", - on_use = on_use, - groups = {vessel = 1}, - }) -end - -pep.moles = {} - -function pep.enable_mole_mode(playername) - pep.moles[playername] = minetest.is_singleplayer() -end - -function pep.yaw_to_vector(yaw) - local tau = math.pi*2 - - yaw = yaw % tau - if yaw < tau/8 then - return { x=0, y=0, z=1} - elseif yaw < (3/8)*tau then - return { x=-1, y=0, z=0 } - elseif yaw < (5/8)*tau then - return { x=0, y=0, z=-1 } - elseif yaw < (7/8)*tau then - return { x=1, y=0, z=0 } - else - return { x=0, y=0, z=1} - end -end - -function pep.moledig(playername) - local player = minetest.get_player_by_name(playername) - - local yaw = player:get_look_yaw() - -- fix stupid oddity of Minetest, adding pi/2 to the actual player's look yaw... - -- TODO: Remove this code as soon as Minetest fixes this. - yaw = yaw - math.pi/2 - - local pos = vector.round(player:getpos()) - - local v = pep.yaw_to_vector(yaw) - - local digpos1 = vector.add(pos, v) - local digpos2 = { x = digpos1.x, y = digpos1.y+1, z = digpos1.z } - - local try_dig = function(pos) - local n = minetest.get_node(pos) - local ndef = minetest.registered_nodes[n.name] - if ndef.walkable and ndef.diggable then - if ndef.can_dig ~= nil then - if ndef.can_dig() then - return true - else - return false - end - else - return true - end - else - return false - end - end - - local dig = function(pos) - if try_dig(pos) then - local n = minetest.get_node(pos) - local ndef = minetest.registered_nodes[n.name] - if ndef.sounds ~= nil then - minetest.sound_play(ndef.sounds.dug, { pos = pos }) - end - -- TODO: Replace this code as soon Minetest removes support for this function - local drops = minetest.get_node_drops(n.name, "default:pick_steel") - minetest.dig_node(pos) - local inv = player:get_inventory() - local leftovers = {} - for i=1,#drops do - table.insert(leftovers, inv:add_item("main", drops[i])) - end - for i=1,#leftovers do - minetest.add_item(pos, leftovers[i]) - end - end - end - - dig(digpos1) - dig(digpos2) -end - -pep.timer = 0 - -minetest.register_globalstep(function(dtime) - pep.timer = pep.timer + dtime - if pep.timer > 0.5 then - for playername, is_mole in pairs(pep.moles) do - if is_mole then - pep.moledig(playername) - end - end - pep.timer = 0 - end -end) - -local add_physic = function(player, attribute, value) - if ppa then - playerphysics.add_physics_factor(player, attribute, "pep:"..attribute, value) - else - player:set_physics_override({[attribute]=value}) - end -end -local remove_physic = function(player, attribute) - if ppa then - playerphysics.remove_physics_factor(player, attribute, "pep:"..attribute) - else - player:set_physics_override({[attribute]=1}) - end -end - -playereffects.register_effect_type("pepspeedplus", S("High speed"), "pep_speedplus.png", {"speed"}, - function(player) - add_physic(player, "speed", 2) - end, - function(effect, player) - remove_physic(player, "speed") - end -) -playereffects.register_effect_type("pepspeedminus", S("Low speed"), "pep_speedminus.png", {"speed"}, - function(player) - add_physic(player, "speed", 0.5) - end, - function(effect, player) - remove_physic(player, "speed") - end -) -playereffects.register_effect_type("pepspeedreset", S("Speed neutralizer"), "pep_speedreset.png", {"speed"}, - function() end, function() end) -playereffects.register_effect_type("pepjumpplus", S("High jump"), "pep_jumpplus.png", {"jump"}, - function(player) - add_physic(player, "jump", 2) - end, - function(effect, player) - remove_physic(player, "jump") - end -) -playereffects.register_effect_type("pepjumpminus", S("Low jump"), "pep_jumpminus.png", {"jump"}, - function(player) - add_physic(player, "jump", 0.5) - end, - function(effect, player) - remove_physic(player, "jump") - end -) -playereffects.register_effect_type("pepjumpreset", S("Jump height neutralizer"), "pep_jumpreset.png", {"jump"}, - function() end, function() end) -playereffects.register_effect_type("pepgrav0", S("No gravity"), "pep_grav0.png", {"gravity"}, - function(player) - add_physic(player, "gravity", 0) - end, - function(effect, player) - remove_physic(player, "gravity") - end -) -playereffects.register_effect_type("pepgravreset", S("Gravity neutralizer"), "pep_gravreset.png", {"gravity"}, - function() end, function() end) -playereffects.register_effect_type("pepregen", S("Regeneration"), "pep_regen.png", {"health"}, - function(player) - player:set_hp(player:get_hp()+1) - end, - nil, nil, nil, 2 -) -playereffects.register_effect_type("pepregen2", S("Strong regeneration"), "pep_regen2.png", {"health"}, - function(player) - player:set_hp(player:get_hp()+2) - end, - nil, nil, nil, 1 -) -playereffects.register_effect_type("pepbreath", S("Perfect breath"), "pep_breath.png", {"breath"}, - function(player) - player:set_breath(player:get_breath()+2) - end, - nil, nil, nil, 1 -) -playereffects.register_effect_type("pepmole", S("Mole mode"), "pep_mole.png", {"autodig"}, - function(player) - pep.enable_mole_mode(player:get_player_name()) - end -) - -pep.register_potion({ - basename = "speedplus", - contentstring = S("Running Potion"), - longdesc = S("Drinking it will make you run faster for 30 seconds."), - effect_type = "pepspeedplus", - duration = 30, -}) -pep.register_potion({ - basename = "speedminus", - contentstring = S("Slug Potion"), - longdesc = S("Drinking it will make you walk slower for 30 seconds."), - effect_type = "pepspeedminus", - duration = 30, -}) -pep.register_potion({ - basename = "speedreset", - contentstring = S("Speed Neutralizer"), - longdesc = S("Drinking it will stop all speed effects you may currently have."), - effect_type = "pepspeedreset", - duration = 0 -}) -pep.register_potion({ - basename = "breath", - contentstring = S("Air Potion"), - longdesc = S("Drinking it gives you breath underwater for 30 seconds."), - effect_type = "pepbreath", - duration = 30, -}) -pep.register_potion({ - basename = "regen", - contentstring = S("Weak Healing Potion"), - longdesc = S("Drinking it makes you regenerate health. Every 2 seconds, you get 1 HP, 10 times in total."), - effect_type = "pepregen", - duration = 10, -}) -pep.register_potion({ - basename = "regen2", - contentstring = S("Strong Healing Potion"), - longdesc = S("Drinking it makes you regenerate health quickly. Every second you get 2 HP, 10 times in total."), - effect_type = "pepregen2", - duration = 10, -}) -pep.register_potion({ - basename = "grav0", - contentstring = S("Non-Gravity Potion"), - longdesc = S("When you drink this potion, gravity stops affecting you, as if you were in space. The effect lasts for 20 seconds."), - effect_type = "pepgrav0", - duration = 20, -}) -pep.register_potion({ - basename = "gravreset", - contentstring = S("Gravity Neutralizer"), - longdesc = S("Drinking it will stop all gravity effects you currently have."), - effect_type = "pepgravreset", - duration = 0, -}) -pep.register_potion({ - basename = "jumpplus", - contentstring = S("High Jumping Potion"), - longdesc = S("Drinking it will make you jump higher for 30 seconds."), - effect_type = "pepjumpplus", - duration = 30, -}) -pep.register_potion({ - basename = "jumpminus", - contentstring = S("Low Jumping Potion"), - longdesc = S("Drinking it will make you jump lower for 30 seconds."), - effect_type = "pepjumpminus", - duration = 30, -}) -pep.register_potion({ - basename = "jumpreset", - contentstring = S("Jump Neutralizer"), - longdesc = S("Drinking it will stop all jumping effects you may currently have."), - effect_type = "pepjumpreset", - duration = 0, -}) -pep.register_potion({ - basename = "mole", - contentstring = S("Mole Potion"), - longdesc = S("Drinking it will start an effect which will magically attempt to mine any two blocks in front of you horizontally, as if you were using a steel pickaxe on them. The effect lasts for 18 seconds."), - effect_type = "pepmole", - duration = 18, -}) - - ---[=[ register crafts ]=] ---[[ normal potions ]] -if(minetest.get_modpath("vessels")~=nil) then -if(minetest.get_modpath("default")~=nil) then - minetest.register_craft({ - type = "shapeless", - output = "pep:breath", - recipe = { "default:papyrus", "default:papyrus", "default:papyrus", "default:papyrus", - "default:papyrus", "default:papyrus", "default:papyrus", "default:papyrus", "vessels:glass_bottle" } - }) - minetest.register_craft({ - type = "shapeless", - output = "pep:speedminus", - recipe = { "default:dry_grass_1", "default:ice", "vessels:glass_bottle" } - }) - if(minetest.get_modpath("flowers") ~= nil) then - minetest.register_craft({ - type = "shapeless", - output = "pep:jumpplus", - recipe = { "flowers:tulip", "default:grass_1", "mesecons:wire_00000000_off_fragment", - "mesecons:wire_00000000_off_fragment", "vessels:glass_bottle" } - }) - minetest.register_craft({ - type = "shapeless", - output = "pep:poisoner", - recipe = { "flowers:mushroom_red", "flowers:mushroom_red", "flowers:mushroom_red", "vessels:glass_bottle" } - }) - - if(minetest.get_modpath("farming") ~= nil) then - minetest.register_craft({ - type = "shapeless", - output = "pep:regen", - recipe = { "default:cactus", "farming:flour", "flowers:mushroom_brown", "vessels:glass_bottle" } - }) - end - end - if(minetest.get_modpath("farming") ~= nil) then - minetest.register_craft({ - type = "shapeless", - output = "pep:regen2", - recipe = { "default:gold_lump", "farming:flour", "pep:regen" } - }) - - minetest.register_craft({ - type = "shapeless", - output = "pep:jumpminus", - recipe = { "default:leaves", "default:jungleleaves", "default:iron_lump", "flowers:oxeye_daisy", "vessels:glass_bottle" } - }) - minetest.register_craft({ - type = "shapeless", - output = "pep:grav0", - recipe = { "mesecons:wire_00000000_off", "vessels:glass_bottle" } - }) - minetest.register_craft({ - type = "shapeless", - output = "pep:mole", - recipe = { "default:pick_steel", "default:shovel_steel", "vessels:glass_bottle" }, - }) - minetest.register_craft({ - type = "shapeless", - output = "pep:gravreset" , - recipe = { "pep:grav0", "default:iron_lump" } - }) -end -if(minetest.get_modpath("flowers") ~= nil) then - minetest.register_craft({ - type = "shapeless", - output = "pep:speedplus", - recipe = { "default:pine_sapling", "default:cactus", "flowers:oxeye_daisy", "default:junglegrass", "vessels:glass_bottle" } - }) -end -end -end - ---[[ independent crafts ]] - -minetest.register_craft({ - type = "shapeless", - output = "pep:speedreset", - recipe = { "pep:speedplus", "pep:speedminus" } -}) -minetest.register_craft({ - type = "shapeless", - output = "pep:jumpreset", - recipe = { "pep:jumpplus", "pep:jumpminus" } -}) - - ---[[ aliases ]] - -minetest.register_alias("potionspack:antigravity", "pep:grav0") -minetest.register_alias("potionspack:antigravityii", "pep:gravreset") -minetest.register_alias("potionspack:speed", "pep:speedminus") -minetest.register_alias("potionspack:speedii", "pep:speedplus") -minetest.register_alias("potionspack:inversion", "pep:speedreset") -minetest.register_alias("potionspack:confusion", "pep:breath") -minetest.register_alias("potionspack:whatwillthisdo", "pep:mole") -minetest.register_alias("potionspack:instanthealth", "pep:regen") -minetest.register_alias("potionspack:instanthealthii", "pep:regen2") -minetest.register_alias("potionspack:regen", "pep:regen") -minetest.register_alias("potionspack:regenii", "pep:regen2") -minetest.register_alias("potionspack:harming", "pep:gravreset") -minetest.register_alias("potionspack:harmingii", "pep:gravreset") diff --git a/games/default/files/player/pep/textures/pep_breath.png b/games/default/files/player/pep/textures/pep_breath.png deleted file mode 100644 index 481a7607d..000000000 Binary files a/games/default/files/player/pep/textures/pep_breath.png and /dev/null differ diff --git a/games/default/files/player/pep/textures/pep_breath_particle.png b/games/default/files/player/pep/textures/pep_breath_particle.png deleted file mode 100644 index 49022f53a..000000000 Binary files a/games/default/files/player/pep/textures/pep_breath_particle.png and /dev/null differ diff --git a/games/default/files/player/pep/textures/pep_grav0.png b/games/default/files/player/pep/textures/pep_grav0.png deleted file mode 100644 index e1ff06d37..000000000 Binary files a/games/default/files/player/pep/textures/pep_grav0.png and /dev/null differ diff --git a/games/default/files/player/pep/textures/pep_grav0_particle.png b/games/default/files/player/pep/textures/pep_grav0_particle.png deleted file mode 100644 index c426314fc..000000000 Binary files a/games/default/files/player/pep/textures/pep_grav0_particle.png and /dev/null differ diff --git a/games/default/files/player/pep/textures/pep_gravreset.png b/games/default/files/player/pep/textures/pep_gravreset.png deleted file mode 100644 index 97bf6af03..000000000 Binary files a/games/default/files/player/pep/textures/pep_gravreset.png and /dev/null differ diff --git a/games/default/files/player/pep/textures/pep_gravreset_particle.png b/games/default/files/player/pep/textures/pep_gravreset_particle.png deleted file mode 100644 index 8191b6561..000000000 Binary files a/games/default/files/player/pep/textures/pep_gravreset_particle.png and /dev/null differ diff --git a/games/default/files/player/pep/textures/pep_jumpminus.png b/games/default/files/player/pep/textures/pep_jumpminus.png deleted file mode 100644 index 36a8525dc..000000000 Binary files a/games/default/files/player/pep/textures/pep_jumpminus.png and /dev/null differ diff --git a/games/default/files/player/pep/textures/pep_jumpminus_particle.png b/games/default/files/player/pep/textures/pep_jumpminus_particle.png deleted file mode 100644 index db94beb01..000000000 Binary files a/games/default/files/player/pep/textures/pep_jumpminus_particle.png and /dev/null differ diff --git a/games/default/files/player/pep/textures/pep_jumpplus.png b/games/default/files/player/pep/textures/pep_jumpplus.png deleted file mode 100644 index 129540418..000000000 Binary files a/games/default/files/player/pep/textures/pep_jumpplus.png and /dev/null differ diff --git a/games/default/files/player/pep/textures/pep_jumpplus_particle.png b/games/default/files/player/pep/textures/pep_jumpplus_particle.png deleted file mode 100644 index c0f0837d1..000000000 Binary files a/games/default/files/player/pep/textures/pep_jumpplus_particle.png and /dev/null differ diff --git a/games/default/files/player/pep/textures/pep_jumpreset.png b/games/default/files/player/pep/textures/pep_jumpreset.png deleted file mode 100644 index 19935647b..000000000 Binary files a/games/default/files/player/pep/textures/pep_jumpreset.png and /dev/null differ diff --git a/games/default/files/player/pep/textures/pep_jumpreset_particle.png b/games/default/files/player/pep/textures/pep_jumpreset_particle.png deleted file mode 100644 index 20a893bf1..000000000 Binary files a/games/default/files/player/pep/textures/pep_jumpreset_particle.png and /dev/null differ diff --git a/games/default/files/player/pep/textures/pep_manaregen.png b/games/default/files/player/pep/textures/pep_manaregen.png deleted file mode 100644 index ccf1bd78d..000000000 Binary files a/games/default/files/player/pep/textures/pep_manaregen.png and /dev/null differ diff --git a/games/default/files/player/pep/textures/pep_manaregen2.png b/games/default/files/player/pep/textures/pep_manaregen2.png deleted file mode 100644 index f1ffb2258..000000000 Binary files a/games/default/files/player/pep/textures/pep_manaregen2.png and /dev/null differ diff --git a/games/default/files/player/pep/textures/pep_manaregen2_particle.png b/games/default/files/player/pep/textures/pep_manaregen2_particle.png deleted file mode 100644 index dd172235e..000000000 Binary files a/games/default/files/player/pep/textures/pep_manaregen2_particle.png and /dev/null differ diff --git a/games/default/files/player/pep/textures/pep_manaregen_particle.png b/games/default/files/player/pep/textures/pep_manaregen_particle.png deleted file mode 100644 index 68b1277a4..000000000 Binary files a/games/default/files/player/pep/textures/pep_manaregen_particle.png and /dev/null differ diff --git a/games/default/files/player/pep/textures/pep_mole.png b/games/default/files/player/pep/textures/pep_mole.png deleted file mode 100644 index 535414abf..000000000 Binary files a/games/default/files/player/pep/textures/pep_mole.png and /dev/null differ diff --git a/games/default/files/player/pep/textures/pep_mole_particle.png b/games/default/files/player/pep/textures/pep_mole_particle.png deleted file mode 100644 index 9c4bc48d4..000000000 Binary files a/games/default/files/player/pep/textures/pep_mole_particle.png and /dev/null differ diff --git a/games/default/files/player/pep/textures/pep_regen.png b/games/default/files/player/pep/textures/pep_regen.png deleted file mode 100644 index d3272107d..000000000 Binary files a/games/default/files/player/pep/textures/pep_regen.png and /dev/null differ diff --git a/games/default/files/player/pep/textures/pep_regen2.png b/games/default/files/player/pep/textures/pep_regen2.png deleted file mode 100644 index a4bd28418..000000000 Binary files a/games/default/files/player/pep/textures/pep_regen2.png and /dev/null differ diff --git a/games/default/files/player/pep/textures/pep_regen2_particle.png b/games/default/files/player/pep/textures/pep_regen2_particle.png deleted file mode 100644 index cd688083a..000000000 Binary files a/games/default/files/player/pep/textures/pep_regen2_particle.png and /dev/null differ diff --git a/games/default/files/player/pep/textures/pep_regen_particle.png b/games/default/files/player/pep/textures/pep_regen_particle.png deleted file mode 100644 index 3e9739361..000000000 Binary files a/games/default/files/player/pep/textures/pep_regen_particle.png and /dev/null differ diff --git a/games/default/files/player/pep/textures/pep_speedminus.png b/games/default/files/player/pep/textures/pep_speedminus.png deleted file mode 100644 index a32845d06..000000000 Binary files a/games/default/files/player/pep/textures/pep_speedminus.png and /dev/null differ diff --git a/games/default/files/player/pep/textures/pep_speedminus_particle.png b/games/default/files/player/pep/textures/pep_speedminus_particle.png deleted file mode 100644 index 4d7bf35a6..000000000 Binary files a/games/default/files/player/pep/textures/pep_speedminus_particle.png and /dev/null differ diff --git a/games/default/files/player/pep/textures/pep_speedplus.png b/games/default/files/player/pep/textures/pep_speedplus.png deleted file mode 100644 index 7e03680e4..000000000 Binary files a/games/default/files/player/pep/textures/pep_speedplus.png and /dev/null differ diff --git a/games/default/files/player/pep/textures/pep_speedplus_particle.png b/games/default/files/player/pep/textures/pep_speedplus_particle.png deleted file mode 100644 index b976910c6..000000000 Binary files a/games/default/files/player/pep/textures/pep_speedplus_particle.png and /dev/null differ diff --git a/games/default/files/player/pep/textures/pep_speedreset.png b/games/default/files/player/pep/textures/pep_speedreset.png deleted file mode 100644 index fbdc947d6..000000000 Binary files a/games/default/files/player/pep/textures/pep_speedreset.png and /dev/null differ diff --git a/games/default/files/player/pep/textures/pep_speedreset_particle.png b/games/default/files/player/pep/textures/pep_speedreset_particle.png deleted file mode 100644 index 60be33fee..000000000 Binary files a/games/default/files/player/pep/textures/pep_speedreset_particle.png and /dev/null differ diff --git a/games/default/files/player/playereffects/README.md b/games/default/files/player/playereffects/README.md deleted file mode 100644 index 691345f06..000000000 --- a/games/default/files/player/playereffects/README.md +++ /dev/null @@ -1,234 +0,0 @@ -# Player Effects -## Summary -This is an framework for assigning temporary status effects to players. This mod is aimed to modders and maybe interested people. - -## Profile -* Name: Player Effects -* Short name: `playereffects` -* Current version: 1.2.0 (This is a [SemVer](http://semver.org/).) -* Dependencies: None! -* License of everything: MIT License -* Discussion page: [here](https://forum.minetest.net/viewtopic.php?f=11&t=9689) - -## Information for players -This mod alone is not aimed directly at players. Briefly, the point of this mod is to help other mods to implement temporary status effects for players in a clean and consistant way. -Here is the information which may be relevant to you: Your current status effects are shown on the HUD on the right side, along with a timer which shows the time until the effect gets disabled. It is possible for the server to disable this feature entirely. Some status effects may also be hidden and are never exposed to the HUD. - -You only have to install this mod iff you have a mod which implements Player Effects. Here is a list of known mods which do: - -* Magic Beans—Wuzzy’s Fork [`magicbeans_w`] - -## Information for server operators -By default, this mod stores the effects into the file `playereffects.mt` in the current world path every 10 seconds. On a regular server shutdown, this file is also written to. The data in this file is read when the mod is started. - -It is save to delete `playereffects.mt` when the mod does currently not run. This simply erases all active and inactive effects when the server starts again. - -You can disable the automatic saving in `settings.lua`. - -### Configuration -Player Effects can be configured. Just edit the file `settings.lua`. You find everything you need to know in that file. Be careful to not delete the lines, just edit them. - -## Information for modders -This is a framework for other mods to depend on. It provides means to define, apply and remove temporary status effects to players in a (hopefully) unobstrusive way. -A status effect is an effect for a player which changes some property of the player. This property can be practically everything. Currently, the framework supports one kind of effect, which I call “exclusive effects”. For each property (speed, gravity, whatver), there can be only one effect in place at the same time. Here are some examples for possible status effects: - -* high walking speed (`speed` property) -* high jump height (`jump` property) -* low player gravity (`gravity` property) -* high player gravity (`gravity` property) -* having the X privilege granted (binary “do I have the property?” property) (yes, this is weird, but it works!) - -The framework aims to provide means to define effect types and to apply and cancel effects to players. The framework aims to be a stable foundation stone. This means it needs a lot of testing. - -## Known bugs -### Effect timers don’t stop when game gets paused -When you paused the game in singleplayer mode, the effect timers just continue as if nothing happened. Of course, all effect timers should be stopped while the game is paused, like everything else. Apparently this bug cannot be fixed with the current Lua API. - -## API documentation -### Data types -#### Effect type (`effect_type`) -An effect type is a description of what is later to be concretely applied as an effect to a player. An effect type, however, is *not* assigned to a player. There are two kinds of effect types: Repeating and non-repeating. See the section on `effect` for more information. - -`effect_type` is a table with these fields: - -* `description`: Human-readable short description of the effect. Will be exposed to the HUD, iff `hidden` is `false`. -* `groups`: A table of groups to which this effect type belongs to. -* `apply`: Function to be called when effect is applied. See `playereffects.register_effect_type`. -* `cancel`: Function to be called when effect is cancelled. See `playereffects.register_effect_type`. -* `icon`: This is optional. It can be the file name of a texture. Should have a size of 16px×16px. Will be exposed to the HUD, iff `hidden` is `false`. -* `hidden`: Iff this is false, it will not be exposed to the HUD when this effect is active. -* `cancel_on_death`: Iff this is true, the effect will be cancelled automatically when the player dies. -* `repeat_interval` is an optional number. When specified, the effects of this type becomes a repeating effect. Repeating effects call `apply` an arbitrary number of times; non-repeating effects just call it once when the effect is created. The number specifies the interval in seconds between each call. Iff this parameter is `nil`, the effect type is a non-repeating effect. - -Normally you don’t need to read or edit fields of this table. Use `playereffects.register_effect_type` to add a new effect type to Player Effects. - -#### Effect group -An effect group is basically a concept. Any effect type can be member of any number of effect groups. The main point of effect groups is to find effects which affect the same property. For example, an effect which makes you faster and another effect which makes you slower both affect the same property: speed. The group for that then would be the string `"speed"`. See also `examples.lua`, which includes the effects `high_speed` and `low_speed`. - -Currently, the main rule of Player Effects requires that there can only be one effect in place. Player Effects already does that job for you. Back to the example: it is possible to be fast and it is possible to be slow. But it is not possible to be fast *and* slow at the same time. Player Effects ensures that by cancelling all conflicting concepts before applying a new one. - -The concept of groups may be changed or extended in the future. - -The following effect group names have standardized meanings and should solely be used for their intended purpose: - -* `speed`: Affects the player speed set by the `speed` value of `set_physics_override` -* `gravity`: Affects the player gravity set by the `gravity` value of `set_physics_override` -* `jump`: Affects the player jump strength set by the `jump` value of `set_physics_override` -* `health`: Affects the player health -* `breath`: Affects the player breath - -You can also invent effect groups (like the groups in Minetest) on the fly. A group is just a string. Practically, you should use groups which other people use. - -#### Effect (`effect`) -An effect is an current change of a player property (like speed, jump height, and so on). It is the realization of an effect type. All effects are temporary. There are currently two types of effects: Repeating and non-repeating. Non-repeating effects call their `apply` callback once when they are created. Repeating effects call their apply callback multiple times with a specified interval. By default, effects are non-repeating. - -`effect` is a table with the following modding-relevant fields: - -* `playername`: The name of the player to which the effect belongs to. -* `effect_id`: A globally unique identifier of the effect. It is a number and assigned automatically by Player Effects. -* `effect_type_id`: The identifier of the effect’s effect type. It is a string and assigned by `playereffects.register_effect_type`. -* `metadata`: An optional field which may contain a table with additional, modder-defined data to be “remembered” for later. The `apply` callback can set this field. - -Internally, Player Effects also uses these fields: - -* `start_time`: The operating system time (from `os.time()`) of when the effect has been started. -* `time_left`: The number of seconds left before the effect runs out. This number is only set when the effect starts or the effect is unfrozen because i.e. a player re-joins. You can’t use this field to blindly get the remaining time of the effect. -* `repeat_interval_start_time` and `repeat_interval_time_left`: Same as `start_time` and `time_left`, but for repeating effects. - -You should normally not need to care about these internally used fields. - - -### Functions -#### `playereffects.register_effect_type(effect_type_id, description, icon, groups, apply, cancel, hidden, cancel_on_death, repeat_interval)` -Adds a new effect type for the Player Effects mods, so it can be later be applied to players. - -##### Parameters -* `effect_type_id` is the identifier (a string) which is internally used by the mod. Later known as `effect_type_id`. You may choose the identifier at will, but please use only alphanumeric ASCII characters. The identifier must be unique along all mods. -* `description` is the text which is exposed to the HUD and visible to the player. -* `icon`: This is optional an can be `nil`. It can be the file name of a texture. Should have a size of 16px×16px. In this case, this is the icon for the HUD. Basically this is just eye-candy. If this is `nil`, no icon is shown. The icon will be exposed to the HUD, iff `hidden` is `false`. -* `groups` is a table of strings to which the effect type is assigned to. -* `apply`: See below. -* `cancel`: See below. -* `hidden` is an optional boolean value. Iff `true`, the effect description and icon will not be exposed to the player HUD. Otherwise, the effect is exposed. Default: `false` -* `cancel_on_death` is an optional boolean value. Iff true, the effect will be cancelled automatically when the player dies. Default: `true`. -* `repeat_interval` is an optional number. When specified, the effects of this type becomes a repeating effect. Repeating effects call `apply` an arbitrary number of times; non-repeating effects just call it once when the effect is created. The number specifies the interval in seconds between each call. Iff this parameter is `nil`, the effect type is a non-repeating effect. - - -###### `apply` function -The `apply` function is a callback function which is called by Player Effects. Here the modder can put all the gameplay-relevant code. - -`apply` takes a player object as its only argument. This is the player to which the effect is applied to. - -The function may return a table. This table will be added as the field `metadata` to the resulting `effect`. - -The function may return `false`. This is used to tell Player Effects that the effect could, for whatever reason, not be successfully applied. Currently, this feature is experimental and possibly broken. - -The function may also return just `nil` on a normal success without metadata. - -###### `cancel` function -The `cancel` function is called by Player Effects when the effect is to be cancelled. Here the modder can do all the code which is needed to revert the changes an earlier `apply` call made. - -`cancel` takes an `effect` as its first argument and a player object as its second argument. Remember, this `effect` may also contain a field called `metadata`, which may have been added by an earlier `apply` call. `player` is the player to which the effect is/was applied. This argument is just there for convenience reasons. - -Player Effects does not care about the return value of this function. - -##### Return value -Always `nil`. - -#### `playereffects.apply_effect_type(effect_type_id, duration, player, repeat_interval_time_left)` -Attempts to apply a new effect of a certain type for a certain duration to a certain player. This function can fail, although this should rarely happen. This function handles non-repeating effects and repeating effects as well. - -##### Parameters -* `effect_type_id`: The identifier of the effect type. This is the name which was used in `playereffects.register_effect_type` and always a string. -* `duration`: How long the effect. Please use only positive values and only integers. If a repeating effect type is specified, this number specifies the number of repetitions; for non-repeating effects this number specifies the effect duration in seconds. -* `player`: The player object to which the new effect should be applied to. -* `repeat_interval_time_left`: This parameter is optional and only for repeating effects. If it is a number, it specifies the time until the first call of the `apply` callback fires. By default, a full repeat interval is waited until the first call. - -##### Return value -The function either returns `false` or a number. Iff the function returns `false`, the effect was not successfully applied. The function may return `false` on these occasions: - -* `player` is not a valid player object -* The `apply` function of the effect type returned `false` - -On success, the function returns a number. This number is the effect ID of the effect which has been just created. This effect ID can be used later, for `playereffects.cancel_effect`, for example. - -#### `playereffects.cancel_effect(effect_id)` -Cancels a single effect. - -##### Parameter -* `effect_id`: The effect ID of the effect which shall be cancelled. - -##### Return value -Always `nil`. - -#### `playereffects.cancel_effect_group(groupname, playername)` -Cancels all a player’s effects which belong to a certain group. - -##### Parameters -* `groupname`: The name of the effect group (string) of which all active effects of the player shall be cancelled. -* `playername`: The name of the player to which the effects which are about to be cancelled belong to. - -##### Return value -Always `nil`. - -#### `playereffects.cancel_effect_type(effect_type_id, cancel_all, playername)` -Cancels one or all player effect with a certain effect type -Careful! This function has *not* been tested yet! - -##### Parameters -* `effect_type_id`: Identifier of the effect type. -* `cancel_all`: Iff true, cancels all active effects with this effect type -* `playername`: Name of the player to which the effects belong to - -##### Return value -Always `nil`. - -#### `playereffects.get_remaining_effect_time(effect_id)` -Returns the remaining time of an effect. - -##### Parameter -* `effect_id`: The effect identifier of the effect in question - -##### Return value -Iff the effect exists, the remaining effect time is returned in full seconds. Iff the effect does not exist, `nil` is returned. - -#### `playereffects.get_player_effects(playername)` -Returns all active effects of a player. - -##### Parameter -`playername`: The name of the player from which the effects are requested. - -##### Return value -A table of all `effect`s which belong to the player. If the player does not exist, this function returns an empty table. - -#### `playereffects.has_effect_type(playername, effect_type_id)` -Returns `true` iff the provided player has an effect of the specified effect type, `false` otherwise. - -##### Parameters -* `playername`: Name of the player to check the existance of the effect type for -* `effect_type_id`: Identifier of the effect type. - -## Examples -This mod comes with extensive examples. The examples are disabled by default. Edit `settings.lua` to enable the examples. See `examples.lua` to find out how they are programmed. The examples are only for demonstration purposes. They are not intended to be used in an actual game. - -### Chat commands -The examples are mainly accessible with chat commands. Since this is just an example, everyone can use these examples. - -#### Apply effect -These commands apply (or try to) apply an effect to you. You will get a response in the chat which give you the `effect_id` on success. On failure, the example will tell you that it failed. - -* `fast`: Makes you faster for 10 seconds. -* `slow`: Makes you slower for 120s. -* `hfast`: Makes you faster for 10s. This is a hidden effect and is not exposed to the HUD. -* `highjump`: Increases your jump height for 20s. -* `fly`: Gives you the `fly` privilege for a minute. You keep the privilege even when you die. Better don’t mess around with this privilege manually when you use this. -* `regen`: Gives you a half heart per second 10 times (5 hearts overall healing). This is an example of a repeating effect. -* `slowregen`: Gives you a half heart every 15 seconds, 10 times (5 hearts overall healing). This is an example of a repeating effect. -* `blind`: Tints the whole screen black for 5 seconds. This is highly experimental and will be drawn over many existing HUD elements. In other words, prepare your HUD to be messed up. -* `null`: Tries to apply an effect which always fails. This demonstrates the failure of effects. - -#### Cancel effects -* `cancelall`: Cancels all your active effects. - -#### Testing -* `stresstest [number]`: Applies `number` dummy effects which don’t do anything to you. Iff omitted, `number` is assumed to be 100. This command is there to test the performance of this mod for absurdly large effect numbers. diff --git a/games/default/files/player/playereffects/init.lua b/games/default/files/player/playereffects/init.lua deleted file mode 100644 index acbbd526d..000000000 --- a/games/default/files/player/playereffects/init.lua +++ /dev/null @@ -1,529 +0,0 @@ ---[=[ Main tables ]=] - -playereffects = {} - ---[[ table containing the groups (experimental) ]] -playereffects.groups = {} - ---[[ table containing all the HUD info tables, indexed by player names. -A single HUD info table is formatted like this: { text_id = 1, icon_id=2, pos = 0 } -Where: text_id: HUD ID of the textual effect description - icon_id: HUD ID of the effect icon (optional) - pos: Y offset factor (starts with 0) -Example of full table: -{ ["player1"] = {{ text_id = 1, icon_id=4, pos = 0 }}, ["player2] = { { text_id = 5, icon_id=6, pos = 0 }, { text_id = 7, icon_id=8, pos = 1 } } } -]] -playereffects.hudinfos = {} - ---[[ table containing all the effect types ]] -playereffects.effect_types = {} - ---[[ table containing all the active effects ]] -playereffects.effects = {} - ---[[ table containing all the inactive effects. -Effects become inactive if a player leaves an become active again if they join again. ]] -playereffects.inactive_effects = {} - --- Variable for counting the effect_id -playereffects.last_effect_id = 0 - - ---[[ - Settings for Player Effects -]] - --- Whether to use the HUD to expose the active effects to players (true or false) -playereffects.use_hud = true - --- Whether to use save (true, false or minetest.is_singleplayer()) -playereffects.save = minetest.is_singleplayer() - --- Whether to use autosave (true or false) -playereffects.use_autosave = false - --- The time interval between autosaves, in seconds (only used when use_autosave is true) -playereffects.autosave_time = 10 - - ---[=[ Load inactive_effects and last_effect_id from playereffects, if this file exists ]=] -do - if playereffects.save then - local filepath = minetest.get_worldpath().."/playereffects" - local file = io.open(filepath, "r") - if file then - minetest.log("action", "[playereffects] playereffects opened.") - local string = file:read() - io.close(file) - if(string ~= nil) then - local savetable = minetest.deserialize(string) - playereffects.inactive_effects = savetable.inactive_effects - -- minetest.debug("[playereffects] playereffects successfully read.") - -- minetest.debug("[playereffects] inactive_effects = "..dump(playereffects.inactive_effects)) - playereffects.last_effect_id = savetable.last_effect_id - -- minetest.debug("[playereffects] last_effect_id = "..dump(playereffects.last_effect_id)) - - end - end - end -end - -function playereffects.next_effect_id() - playereffects.last_effect_id = playereffects.last_effect_id + 1 - return playereffects.last_effect_id -end - ---[=[ API functions ]=] -function playereffects.register_effect_type(effect_type_id, description, icon, groups, apply, cancel, hidden, cancel_on_death, repeat_interval) - local effect_type = {} - effect_type.description = description - effect_type.apply = apply - effect_type.groups = groups - effect_type.icon = icon - if cancel ~= nil then - effect_type.cancel = cancel - else - effect_type.cancel = function() end - end - if hidden ~= nil then - effect_type.hidden = hidden - else - effect_type.hidden = false - end - if cancel_on_death ~= nil then - effect_type.cancel_on_death = cancel_on_death - else - effect_type.cancel_on_death = true - end - effect_type.repeat_interval = repeat_interval - - playereffects.effect_types[effect_type_id] = effect_type --- minetest.log("action", "[playereffects] Effect type "..effect_type_id.." registered!") -end - -function playereffects.apply_effect_type(effect_type_id, duration, player, repeat_interval_time_left) - local start_time = os.time() - local is_player = false - if(type(player)=="userdata") then - if(player.is_player ~= nil) then - if(player:is_player() == true) then - is_player = true - end - end - end - if(is_player == false) then - minetest.log("error", "[playereffects] Attempted to apply effect type "..effect_type_id.." to a non-player!") - return false - end - - local playername = player:get_player_name() - local groups = playereffects.effect_types[effect_type_id].groups - for k,v in pairs(groups) do - playereffects.cancel_effect_group(v, playername) - end - - local metadata - if(playereffects.effect_types[effect_type_id].repeat_interval == nil) then - local status = playereffects.effect_types[effect_type_id].apply(player) - if(status == false) then - minetest.log("action", "[playereffects] Attempt to apply effect type "..effect_type_id.." to player "..playername.." failed!") - return false - else - metadata = status - end - end - - - local effect_id = playereffects.next_effect_id() - local smallest_hudpos - local biggest_hudpos = -1 - local free_hudpos - if(playereffects.hudinfos[playername] == nil) then - playereffects.hudinfos[playername] = {} - end - local hudinfos = playereffects.hudinfos[playername] - for effect_id, hudinfo in pairs(hudinfos) do - local hudpos = hudinfo.pos - if(hudpos > biggest_hudpos) then - biggest_hudpos = hudpos - end - if(smallest_hudpos == nil) then - smallest_hudpos = hudpos - elseif(hudpos < smallest_hudpos) then - smallest_hudpos = hudpos - end - end - if(smallest_hudpos == nil) then - free_hudpos = 0 - elseif(smallest_hudpos >= 0) then - free_hudpos = smallest_hudpos - 1 - else - free_hudpos = biggest_hudpos + 1 - end - - local repeat_interval = playereffects.effect_types[effect_type_id].repeat_interval - if(repeat_interval ~= nil) then - if(repeat_interval_time_left == nil) then - repeat_interval_time_left = repeat_interval - end - end - - --[[ show no more than 10 effects on the screen, so that hud_update does not need to be called so often ]] - local text_id, icon_id - if(free_hudpos <= 10) then - text_id, icon_id = playereffects.hud_effect(effect_type_id, player, free_hudpos, duration, repeat_interval_time_left) - local hudinfo = { - text_id = text_id, - icon_id = icon_id, - pos = free_hudpos, - } - playereffects.hudinfos[playername][effect_id] = hudinfo - else - text_id, icon_id = nil, nil - end - - local effect = { - playername = playername, - effect_id = effect_id, - effect_type_id = effect_type_id, - start_time = start_time, - repeat_interval_start_time = start_time, - time_left = duration, - repeat_interval_time_left = repeat_interval_time_left, - metadata = metadata, - } - - playereffects.effects[effect_id] = effect - - if(repeat_interval ~= nil) then - minetest.after(repeat_interval_time_left, playereffects.repeater, effect_id, duration, player, playereffects.effect_types[effect_type_id].apply) - else - minetest.after(duration, function(effect_id) playereffects.cancel_effect(effect_id) end, effect_id) - end - - return effect_id -end - -function playereffects.repeater(effect_id, repetitions, player, apply) - local effect = playereffects.effects[effect_id] - if(effect ~= nil) then - local repetitions = effect.time_left - apply(player) - repetitions = repetitions - 1 - effect.time_left = repetitions - if(repetitions <= 0) then - playereffects.cancel_effect(effect_id) - else - local repeat_interval = playereffects.effect_types[effect.effect_type_id].repeat_interval - effect.repeat_interval_time_left = repeat_interval - effect.repeat_interval_start_time = os.time() - minetest.after( - repeat_interval, - playereffects.repeater, - effect_id, - repetitions, - player, - apply - ) - end - end -end - -function playereffects.cancel_effect_type(effect_type_id, cancel_all, playername) - local effects = playereffects.get_player_effects(playername) - if(cancel_all==nil) then cancel_all = false end - for e=1, #effects do - if(effects[e].effect_type_id == effect_type_id) then - playereffects.cancel_effect(effects[e].effect_id) - if(cancel_all==false) then - return - end - end - end -end - -function playereffects.cancel_effect_group(groupname, playername) - local effects = playereffects.get_player_effects(playername) - for e=1,#effects do - local effect = effects[e] - local thesegroups = playereffects.effect_types[effect.effect_type_id].groups - local delete = false - for g=1,#thesegroups do - if(thesegroups[g] == groupname) then - playereffects.cancel_effect(effect.effect_id) - break - end - end - end -end - -function playereffects.get_remaining_effect_time(effect_id) - local now = os.time() - local effect = playereffects.effects[effect_id] - if(effect ~= nil) then - return (effect.time_left - os.difftime(now, effect.start_time)) - else - return nil - end -end - -function playereffects.cancel_effect(effect_id) - local effect = playereffects.effects[effect_id] - if(effect ~= nil) then - local player = minetest.get_player_by_name(effect.playername) - local hudinfo = playereffects.hudinfos[effect.playername][effect_id] - if(hudinfo ~= nil) then - if(hudinfo.text_id~=nil) then - player:hud_remove(hudinfo.text_id) - end - if(hudinfo.icon_id~=nil) then - player:hud_remove(hudinfo.icon_id) - end - playereffects.hudinfos[effect.playername][effect_id] = nil - end - playereffects.effect_types[effect.effect_type_id].cancel(effect, player) - playereffects.effects[effect_id] = nil - end -end - -function playereffects.get_player_effects(playername) - if(minetest.get_player_by_name(playername) ~= nil) then - local effects = {} - for k,v in pairs(playereffects.effects) do - if(v.playername == playername) then - table.insert(effects, v) - end - end - return effects - else - return {} - end -end - -function playereffects.has_effect_type(playername, effect_type_id) - local pe = playereffects.get_player_effects(playername) - for i=1,#pe do - if pe[i].effect_type_id == effect_type_id then - return true - end - end - return false -end - ---[=[ Saving all data to file ]=] -function playereffects.save_to_file() - local save_time = os.time() - local savetable = {} - local inactive_effects = {} - for id,effecttable in pairs(playereffects.inactive_effects) do - local playername = id - if(inactive_effects[playername] == nil) then - inactive_effects[playername] = {} - end - for i=1,#effecttable do - table.insert(inactive_effects[playername], effecttable[i]) - end - end - for id,effect in pairs(playereffects.effects) do - local new_duration, new_repeat_duration - if(playereffects.effect_types[effect.effect_type_id].repeat_interval ~= nil) then - new_duration = effect.time_left - new_repeat_duration = effect.repeat_interval_time_left - os.difftime(save_time, effect.repeat_interval_start_time) - else - new_duration = effect.time_left - os.difftime(save_time, effect.start_time) - end - local new_effect = { - effect_id = effect.effect_id, - effect_type_id = effect.effect_type_id, - time_left = new_duration, - repeat_interval_time_left = new_repeat_duration, - start_time = effect.start_time, - repeat_interval_start_time = effect.repeat_interval_start_time, - playername = effect.playername, - metadata = effect.metadata - } - if(inactive_effects[effect.playername] == nil) then - inactive_effects[effect.playername] = {} - end - table.insert(inactive_effects[effect.playername], new_effect) - end - - savetable.inactive_effects = inactive_effects - savetable.last_effect_id = playereffects.last_effect_id - - local savestring = minetest.serialize(savetable) - - local filepath = minetest.get_worldpath().."/playereffects" - local file = io.open(filepath, "w") - if file then - file:write(savestring) - io.close(file) - minetest.log("action", "[playereffects] Wrote playereffects data into "..filepath..".") - else - minetest.log("error", "[playereffects] Failed to write playereffects data into "..filepath..".") - end -end - ---[=[ Callbacks ]=] ---[[ Cancel all effects on player death ]] -minetest.register_on_dieplayer(function(player) - local effects = playereffects.get_player_effects(player:get_player_name()) - for e=1,#effects do - if(playereffects.effect_types[effects[e].effect_type_id].cancel_on_death == true) then - playereffects.cancel_effect(effects[e].effect_id) - end - end -end) - - -minetest.register_on_leaveplayer(function(player) - local leave_time = os.time() - local playername = player:get_player_name() - local effects = playereffects.get_player_effects(playername) - - playereffects.hud_clear(player) - - if(playereffects.inactive_effects[playername] == nil) then - playereffects.inactive_effects[playername] = {} - end - for e=1,#effects do - local new_duration = effects[e].time_left - os.difftime(leave_time, effects[e].start_time) - local new_effect = effects[e] - new_effect.time_left = new_duration - table.insert(playereffects.inactive_effects[playername], new_effect) - playereffects.cancel_effect(effects[e].effect_id) - end -end) - -minetest.register_on_shutdown(function() - if playereffects.save then - minetest.log("action", "[playereffects] Server shuts down. Rescuing data into playereffects") - playereffects.save_to_file() - end -end) - -minetest.register_on_joinplayer(function(player) - local playername = player:get_player_name() - - -- load all the effects again (if any) - if(playereffects.inactive_effects[playername] ~= nil) then - for i=1,#playereffects.inactive_effects[playername] do - local effect = playereffects.inactive_effects[playername][i] - playereffects.apply_effect_type(effect.effect_type_id, effect.time_left, player, effect.repeat_interval_time_left) - end - playereffects.inactive_effects[playername] = nil - end -end) - -playereffects.autosave_timer = 0 -minetest.register_globalstep(function(dtime) - playereffects.autosave_timer = playereffects.autosave_timer + dtime - - -- Autosave into file - if(playereffects.use_autosave == true and playereffects.autosave_timer >= playereffects.autosave_time) then - playereffects.autosave_timer = 0 - minetest.log("action", "[playereffects] Autosaving mod data to playereffects ...") - playereffects.save_to_file() - end -end) - -minetest.register_playerstep(function(dtime, playernames) - -- Update HUDs of all players - for _, name in pairs(playernames) do - playereffects.hud_update(name) - end -end, minetest.is_singleplayer()) -- Force step in singlplayer mode only - ---[=[ HUD ]=] -function playereffects.hud_update(player) - if(playereffects.use_hud == true) then - local now = os.time() - local player = minetest.get_player_by_name(player) - if not player or not player:is_player() then - return - end - local hudinfos = playereffects.hudinfos[player] - if(hudinfos ~= nil) then - for effect_id, hudinfo in pairs(hudinfos) do - local effect = playereffects.effects[effect_id] - if(effect ~= nil and hudinfo.text_id ~= nil) then - local description = playereffects.effect_types[effect.effect_type_id].description - local repeat_interval = playereffects.effect_types[effect.effect_type_id].repeat_interval - if(repeat_interval ~= nil) then - local repeat_interval_time_left = os.difftime(effect.repeat_interval_start_time + effect.repeat_interval_time_left, now) - player:hud_change(hudinfo.text_id, "text", description .. " ("..tostring(effect.time_left).."/"..tostring(repeat_interval_time_left) .. "s)") - else - local time_left = os.difftime(effect.start_time + effect.time_left, now) - player:hud_change(hudinfo.text_id, "text", description .. " ("..tostring(time_left).." s)") - end - end - end - end - end -end - -function playereffects.hud_clear(player) - if(playereffects.use_hud == true) then - local playername = player:get_player_name() - local hudinfos = playereffects.hudinfos[playername] - if(hudinfos ~= nil) then - for effect_id, hudinfo in pairs(hudinfos) do - local effect = playereffects.effects[effect_id] - if(hudinfo.text_id ~= nil) then - player:hud_remove(hudinfo.text_id) - end - if(hudinfo.icon_id ~= nil) then - player:hud_remove(hudinfo.icon_id) - end - playereffects.hudinfos[playername][effect_id] = nil - end - end - end -end - -function playereffects.hud_effect(effect_type_id, player, pos, time_left, repeat_interval_time_left) - local text_id, icon_id - local effect_type = playereffects.effect_types[effect_type_id] - if(playereffects.use_hud == true and effect_type.hidden == false) then - local color - if(playereffects.effect_types[effect_type_id].cancel_on_death == true) then - color = 0xFFFFFF - else - color = 0xF0BAFF - end - local description = playereffects.effect_types[effect_type_id].description - local text - if(repeat_interval_time_left ~= nil) then - text = description .. " ("..tostring(time_left).."/"..tostring(repeat_interval_time_left) .. "s )" - else - text = description .. " ("..tostring(time_left).." s)" - end - text_id = player:hud_add({ - hud_elem_type = "text", - position = { x = 1, y = 0.3 }, - name = "effect_"..effect_type_id, - text = text, - scale = { x = 170, y = 20}, - alignment = { x = -1, y = 0 }, - direction = 1, - number = color, - offset = { x = -5, y = pos*30 } - }) - if(playereffects.effect_types[effect_type_id].icon ~= nil) then - icon_id = player:hud_add({ - hud_elem_type = "image", - scale = { x = 1, y = 1 }, - position = { x = 1, y = 0.3 }, - name = "effect_icon_"..effect_type_id, - text = playereffects.effect_types[effect_type_id].icon, - alignment = { x = -1, y=0 }, - direction = 0, - offset = { x = -200, y = pos*30 }, - }) - end - else - text_id = nil - icon_id = nil - end - return text_id, icon_id -end diff --git a/games/default/files/player/playerphysics/README.md b/games/default/files/player/playerphysics/README.md deleted file mode 100644 index 659c0c399..000000000 --- a/games/default/files/player/playerphysics/README.md +++ /dev/null @@ -1,119 +0,0 @@ -# Player Physics API. - -Version: 1.0.0 - -This mod makes it possible for multiple mods to modify player physics (speed, jumping strength, gravity) without conflict. - -## Introduction -### For players -Mods and games in Minetest can set physical attributes of players, such as speed and jump strength. For example, player speed could be set to 200%. But the way this works makes it difficult for multiple mods to *modify* physical attributes without leading to conflicts, problems and hilarious bugs, like speed that changes often to nonsense values. - -The Player Physics API aims to resolve this conflict by providing a “common ground” for mods to work together in this regard. - -This mod does nothing on its own, you will only need to install it as dependency of other mods. - -When you browse for mods that somehow mess with player physics (namely: speed, jump strength or gravity) and want to use more than one of them, check out if they support the Player Physics API. If they don't, it's very likely these mods will break as soon you activate more than one of them, for example, if two mods try to set the player speed. If you found such a “hilarious bug”, please report it to the developers of the mods (or games) and point them to the Player Physics API. - -Of course, not all mods need the Player Physics API. Mods that don't touch player physics at all won't need this mod. - -The rest of this document is directed at developers. - -### For developers -The function `set_physics_override` from the Minetest Lua API allows mod authors to override physical attributes of players, such as speed or jump strength. - -This function works fine as long there is only one mod that sets a particular physical attribute at a time. However, as soon as at least two different mods (that do not know each other) try to change the same player physics attribute using only this function, there will be conflicts as each mod will undo the change of the other mod, as the function sets a raw value. A classic race condition occurs. This is the case because the mods fail to communicate with each other. - -This mod solves the problem of conflicts. It bans the concept of “setting the raw value directly” and replaces it with the concept of factors that mods can add and remove for each attribute. The real physical player attribute will be the product of all active factors. - -## Quick start -Let's say you have a mod `example` and want to double the speed of the player (i.e. multiply it by a factor of 2), but you also don't want to break other mods that might touch the speed. - -Previously, you might have written something like this: - -`player:set_physics_override({speed=2})` - -However, your mod broke down as soon the mod `example2` came along, which wanted to increase the speed by 50%. In the real game, the player speed randomly switched from 50% and 200% which was a very annoying bug. - -In your `example` mod, you can replace the code with this: - -`playerphysics.add_physics_factor(player, "speed", "my_double_speed", 2)` - -Where `"my_double_speed` is an unique ID for your speed factor. - -Now your `example` mod is interoperable! And now, of course, the `example2` mod has to be updated in a similar fashion. - -## Precondition -There is only one precondition to using this mod, but it is important: - -Mods *MUST NOT* call `set_physics_override` directly for numerical values. Instead, to modify player physics, all mods that touch player physics have to use this API. - -## Functions -### `playerphysics.add_physics_factor(player, attribute, id, value)` -Adds a factor for a player physic and updates the player physics immediately. - -#### Parameters -* `player`: Player object -* `attribute`: Which of the physical attributes to change. Any of the numeric values of `set_physics_override` (e.g. `"speed"`, `"jump"`, `"gravity"`) -* `id`: Unique identifier for this factor. Identifiers are stored on a per-player per-attribute type basis -* `value`: The factor to add to the list of products - -If a factor for the same player, attribute and `id` already existed, it will be overwritten. - -### `playerphysics.remove_physics_factor(player, attribute, id)` -Removes the physics factor of the given ID and updates the player's physics. - -#### Parameters -Same as in `playerphysics.add_physics_factor`, except there is no `value` argument. - -## Examples -### Speed changes -Let's assume this mod is used by 3 different mods all trying to change the speed: -Potions, Exhaustion and Electrocution. -Here's what it could look like: - -Potions mod: -``` -playerphysics.add_physics_factor(player, "speed", "run_potion", 2) -``` - -Exhaustion mod: -``` -playerphysics.add_physics_factor(player, "jump", "exhausted", 0.75) -``` - -Electrocution mod: -``` -playerphysics.add_physics_factor(player, "jump", "shocked", 0.9) -``` - -When the 3 mods have done their change, the real player speed is simply the product of all factors, that is: - -2 * 0.75 * 0.9 = 1.35 - -The final player speed is thus 135%. - -### Speed changes, part 2 - -Let's take the example above. -Now if the Electrocution mod is done with shocking the player, it just needs to call: - -``` -playerphysics.remove_physics_factor(player, "jump", "shocked") -``` - -The effect is now gone, so the new player speed will be: - -2 * 0.75 = 1.5 - -### Sleeping -To simulate sleeping by preventing all player movement, this can be done with this easy trick: - -``` -playerphysics.add_physics_factor(player, "speed", "sleeping", 0) -playerphysics.add_physics_factor(player, "jump", "sleeping", 0) -``` - -This works regardless of the other factors because 0 times anything equals 0. - -## License -This mod is free software, released under the MIT License. diff --git a/games/default/files/player/playerphysics/init.lua b/games/default/files/player/playerphysics/init.lua deleted file mode 100644 index 2b7d7df02..000000000 --- a/games/default/files/player/playerphysics/init.lua +++ /dev/null @@ -1,43 +0,0 @@ -playerphysics = {} - -local function calculate_attribute_product(player, attribute) - local a = minetest.deserialize(player:get_attribute("playerphysics:physics")) - local product = 1 - if a == nil or a[attribute] == nil then - return product - end - local factors = a[attribute] - if type(factors) == "table" then - for _, factor in pairs(factors) do - product = product * factor - end - end - return product -end - -function playerphysics.add_physics_factor(player, attribute, id, value) - local a = minetest.deserialize(player:get_attribute("playerphysics:physics")) - if a == nil then - a = { [attribute] = { [id] = value } } - elseif a[attribute] == nil then - a[attribute] = { [id] = value } - else - a[attribute][id] = value - end - player:set_attribute("playerphysics:physics", minetest.serialize(a)) - local raw_value = calculate_attribute_product(player, attribute) - player:set_physics_override({[attribute] = raw_value}) -end - -function playerphysics.remove_physics_factor(player, attribute, id) - local a = minetest.deserialize(player:get_attribute("playerphysics:physics")) - if a == nil or a[attribute] == nil then - -- Nothing to remove - return - else - a[attribute][id] = nil - end - player:set_attribute("playerphysics:physics", minetest.serialize(a)) - local raw_value = calculate_attribute_product(player, attribute) - player:set_physics_override({[attribute] = raw_value}) -end diff --git a/games/default/files/player_api/README.txt b/games/default/files/player_api/README.txt deleted file mode 100644 index b7a78e43a..000000000 --- a/games/default/files/player_api/README.txt +++ /dev/null @@ -1,17 +0,0 @@ -MultiCraft Game mod: player_api -============================= -See license.txt for license information. - -Provides an API to allow multiple mods to set player models and textures. -Also sets the default model, texture, and player flags. - -Authors of source code ----------------------- -Originally by celeron55, Perttu Ahola (LGPLv3.0+) -Various Minetest developers and contributors (LGPLv3.0+) - -Authors of media (textures, models and sounds) ----------------------------------------------- -stujones11 (CC BY-SA 3.0): - character.b3d - character.blend -- Both derived from a model by MirceaKitsune (CC BY-SA 3.0) diff --git a/games/default/files/player_api/api.lua b/games/default/files/player_api/api.lua deleted file mode 100644 index d58ccb917..000000000 --- a/games/default/files/player_api/api.lua +++ /dev/null @@ -1,152 +0,0 @@ -player_api = {} - --- Player animation blending --- Note: This is currently broken due to a bug in Irrlicht, leave at 0 -local animation_blend = 0 - -player_api.registered_models = { } - --- Local for speed. -local models = player_api.registered_models - -function player_api.register_model(name, def) - models[name] = def -end - --- Player stats and animations -local player_model = {} -local player_textures = {} -local player_anim = {} -local player_sneak = {} -player_api.player_attached = {} - -function player_api.get_animation(player) - local name = player:get_player_name() - return { - model = player_model[name], - textures = player_textures[name], - animation = player_anim[name], - } -end - --- Called when a player's appearance needs to be updated -function player_api.set_model(player, model_name) - local name = player:get_player_name() - local model = models[model_name] - if model then - if player_model[name] == model_name then - return - end - player:set_properties({ - mesh = model_name, - textures = player_textures[name] or model.textures, - visual = "mesh", - visual_size = model.visual_size or {x = 1, y = 1}, - collisionbox = model.collisionbox, -- or {-0.3, 0.0, -0.3, 0.3, 1.7, 0.3}, - stepheight = model.stepheight or 0.6, - eye_height = model.eye_height or 1.47, - }) - player_api.set_animation(player, "stand") - else - player:set_properties({ - visual = "upright_sprite", - -- collisionbox = {-0.3, 0.0, -0.3, 0.3, 1.75, 0.3}, - stepheight = 0.6, - eye_height = 1.625, - }) - end - player_model[name] = model_name -end - -function player_api.set_textures(player, textures) - local name = player:get_player_name() - local model = models[player_model[name]] - local model_textures = model and model.textures or nil - player_textures[name] = textures or model_textures - player:set_properties({textures = textures or model_textures,}) -end - -function player_api.set_animation(player, anim_name, speed) - local name = player:get_player_name() - if player_anim[name] == anim_name then - return - end - local model = player_model[name] and models[player_model[name]] - if not (model and model.animations[anim_name]) then - return - end - local anim = model.animations[anim_name] - player_anim[name] = anim_name - player:set_animation(anim, speed or model.animation_speed, animation_blend) -end - -minetest.register_on_leaveplayer(function(player) - local name = player:get_player_name() - player_model[name] = nil - player_anim[name] = nil - player_textures[name] = nil -end) - -local function table_iter(t) - local i = 0 - local n = table.getn(t) - return function () - i = i + 1 - if i <= n then - return t[i] - end - end -end - --- Localize for better performance. -local player_set_animation = player_api.set_animation -local player_attached = player_api.player_attached - --- Check each player and apply animations -minetest.register_playerstep(function(dtime, playernames) - for _, name in pairs(playernames) do - local player = minetest.get_player_by_name(name) - if player and player:is_player() then - local model_name = player_model[name] - local model = model_name and models[model_name] - if model and not player_attached[name] then - local controls = player:get_player_control() - local walking = false - local animation_speed_mod = model.animation_speed or 30 - - -- Determine if the player is walking - if controls.up or controls.down or controls.left or controls.right then - walking = true - end - - -- Determine if the player is sneaking, and reduce animation speed if so - if controls.sneak then - animation_speed_mod = animation_speed_mod / 2 - end - - -- Apply animations based on what the player is doing - if player:get_hp() == 0 then - player_set_animation(player, "lay") - elseif walking then - if player_sneak[name] ~= controls.sneak then - player_anim[name] = nil - player_sneak[name] = controls.sneak - end - if controls.LMB then - player_set_animation(player, "walk_mine", animation_speed_mod) - elseif controls.RMB then - player_set_animation(player, "walk_mine", animation_speed_mod) - else - player_set_animation(player, "walk", animation_speed_mod) - end - elseif controls.LMB then - player_set_animation(player, "mine") - elseif controls.RMB then - player_set_animation(player, "mine") - else - player_set_animation(player, "stand", animation_speed_mod) - end - end - end - end -end, true) -- Force this callback to run every step for smoother animations diff --git a/games/default/files/player_api/init.lua b/games/default/files/player_api/init.lua deleted file mode 100644 index 5d860fe92..000000000 --- a/games/default/files/player_api/init.lua +++ /dev/null @@ -1,159 +0,0 @@ -dofile(minetest.get_modpath("player_api") .. "/api.lua") - -local creative_mode_cache = minetest.settings:get_bool("creative_mode") - -function player_api.is_enabled_for(name) - return creative_mode_cache -end - --- Default player appearance -player_api.register_model("character.b3d", { - animation_speed = 30, - textures = {"character.png", "blank.png", "blank.png", "blank.png"}, - animations = { - -- Standard animations. - stand = {x = 0, y = 0}, -- y = 79 - lay = {x = 162, y = 166}, - walk = {x = 168, y = 187}, - mine = {x = 189, y = 198}, - walk_mine = {x = 200, y = 219}, - sit = {x = 81, y = 160}, - }, - stepheight = 0.6, - eye_height = 1.47, -}) - -if creative_mode_cache then - minetest.register_item(":", { - type = "none", - wield_image = "blank.png", - tool_capabilities = { - full_punch_interval = 0.5, - damage_groups = {fleshy = 5}, - } - }) - - local digtime = 128 - local caps = {times = {digtime, digtime, digtime}, uses = 0, maxlevel = 192} - minetest.register_node("player_api:hand", { - tiles = {"character.png"}, - wield_scale = {x = 1, y = 1, z = 0.7}, - paramtype = "light", - drawtype = "mesh", - mesh = "hand.b3d", - inventory_image = "blank.png", - drop = "", - node_placement_prediction = "", - range = 10, - tool_capabilities = { - full_punch_interval = 0.5, - max_drop_level = 3, - groupcaps = { - crumbly = caps, - cracky = caps, - snappy = caps, - choppy = caps, - oddly_breakable_by_hand = caps, - }, - damage_groups = {fleshy = 5}, - } -}) -else - minetest.register_item(":", { - type = "none", - wield_image = "blank.png", - tool_capabilities = { - full_punch_interval = 0.9, - damage_groups = {fleshy = 1}, - } - }) - - minetest.register_node("player_api:hand", { - tiles = {"character.png"}, - wield_scale = {x = 1, y = 1, z = 0.7}, - paramtype = "light", - drawtype = "mesh", - mesh = "hand.b3d", - inventory_image = "blank.png", - drop = "", - node_placement_prediction = "", - tool_capabilities = { - full_punch_interval = 0.9, - max_drop_level = 0, - groupcaps = { - crumbly = {times = {[1]=5.0, [2]=3.0, [3]=0.7}, uses = 0, maxlevel = 1}, - snappy = {times = {[3]=0.4}, uses = 0, maxlevel = 1}, - choppy = {times = {[1]=6.0, [2]=4.0, [3]=3.0}, uses = 0, maxlevel = 1}, - cracky = {times = {[1]=7.0, [2]=5.0, [3]=4.0}, uses = 0, maxlevel = 1}, - oddly_breakable_by_hand = {times = {[1]=3.5 ,[2]=2.0, [3]=0.7}, uses = 0} - }, - damage_groups = {fleshy = 1}, - } -}) -end - --- Update appearance when the player joins -minetest.register_on_joinplayer(function(player) - - -- Temporary solution to the problem of loading yaw 'nul' on iOS - if (player:get_look_horizontal() == 0) then - player:set_look_horizontal(0.01) - end - - player_api.player_attached[player:get_player_name()] = false - player_api.set_model(player, "character.b3d") - player:set_local_animation( - {x = 0, y = 0}, -- y = 79 - {x = 168, y = 187}, - {x = 189, y = 198}, - {x = 200, y = 219}, - 30) - - player:hud_set_hotbar_itemcount(9) - player:hud_set_hotbar_image("gui_hotbar.png") - player:hud_set_hotbar_selected_image("gui_hotbar_selected.png") - - player:get_inventory():set_stack("hand", 1, "player_api:hand") - - -- Temporary solution to the problem of loading yaw 'nul' on iOS - if PLATFORM == "iOS" then - minetest.after(5, function() - if (player:get_look_horizontal() == 0) then - minetest.request_shutdown() - end - end) - end -end) - --- Items for the new player -minetest.register_on_newplayer(function (player) - if not creative_mode_cache then - player:get_inventory():add_item('main', 'default:sword_steel') - player:get_inventory():add_item('main', 'default:torch 8') - player:get_inventory():add_item('main', 'default:wood 64') - end -end) - --- Drop items at death -minetest.register_on_dieplayer(function(player) - local pos = player:get_pos() - local inv = player:get_inventory() - - -- Drop inventory items - for i = 1, inv:get_size("main") do - local stack = inv:get_stack("main", i) - minetest.item_drop(stack, nil, pos) - inv:set_stack("main", i, nil) - end - - -- Drop crafting grid items - for i = 1, inv:get_size("craft") do - local stack = inv:get_stack("craft", i) - minetest.item_drop(stack, nil, pos) - inv:set_stack("craft", i, nil) - end - - -- Display death coordinates - minetest.chat_send_player(player:get_player_name(), "Your last coordinates: " - .. minetest.pos_to_string(vector.round(pos))) -end) diff --git a/games/default/files/player_api/models/character.b3d b/games/default/files/player_api/models/character.b3d deleted file mode 100644 index 13ba9d41d..000000000 Binary files a/games/default/files/player_api/models/character.b3d and /dev/null differ diff --git a/games/default/files/player_api/models/character.png b/games/default/files/player_api/models/character.png deleted file mode 100644 index e876ad267..000000000 Binary files a/games/default/files/player_api/models/character.png and /dev/null differ diff --git a/games/default/files/player_api/models/hand.b3d b/games/default/files/player_api/models/hand.b3d deleted file mode 100644 index a38124c60..000000000 Binary files a/games/default/files/player_api/models/hand.b3d and /dev/null differ diff --git a/games/default/files/player_api/textures/gui_hotbar.png b/games/default/files/player_api/textures/gui_hotbar.png deleted file mode 100644 index e92a83ab4..000000000 Binary files a/games/default/files/player_api/textures/gui_hotbar.png and /dev/null differ diff --git a/games/default/files/player_api/textures/gui_hotbar_selected.png b/games/default/files/player_api/textures/gui_hotbar_selected.png deleted file mode 100644 index 8240f5e39..000000000 Binary files a/games/default/files/player_api/textures/gui_hotbar_selected.png and /dev/null differ diff --git a/games/default/files/sethome/README.txt b/games/default/files/sethome/README.txt deleted file mode 100644 index c4fb4f002..000000000 --- a/games/default/files/sethome/README.txt +++ /dev/null @@ -1,7 +0,0 @@ -MultiCraft Game mod: sethome -========================== -See license.txt for license information. - -Authors of source code ----------------------- -sfan5 (MIT) diff --git a/games/default/files/sethome/init.lua b/games/default/files/sethome/init.lua deleted file mode 100644 index 02a58808e..000000000 --- a/games/default/files/sethome/init.lua +++ /dev/null @@ -1,76 +0,0 @@ -sethome = {} - -sethome.set = function(name, pos) - local player = minetest.get_player_by_name(name) - if not player or not pos then - return false - end - player:set_attribute("sethome:home", minetest.pos_to_string(pos)) - return true -- if the file doesn't exist - don't return an error. -end - -sethome.get = function(name) - local player = minetest.get_player_by_name(name) - local pos = minetest.string_to_pos(player:get_attribute("sethome:home")) - if pos then - return pos - end -end - -sethome.go = function(name) - local pos = sethome.get(name) - local player = minetest.get_player_by_name(name) - if player and pos then - player:set_pos(pos) - return true - end - return false -end - -local function green(str) - return minetest.colorize("#7CFC00",str) -end - -local function red(str) - return minetest.colorize("#FF0000",str) -end - -minetest.register_chatcommand("home", { - description = "Teleport you to your home point", - func = function(name) - if sethome.go(name) then - return true, green("Teleported to home!") - end - return false, red("Set a home using /sethome") - end, -}) - -minetest.register_chatcommand("sethome", { - description = "Set your home point", - func = function(name) - name = name or "" -- fallback to blank name if nil - local player = minetest.get_player_by_name(name) - if player and sethome.set(name, player:get_pos()) then - return true, green("Home set!") - end - return false, red("Player not found!") - end, -}) - -minetest.register_on_player_receive_fields(function(player, formname, fields) - if not player or not player:is_player() then - return - end - local player_name = player:get_player_name() - if fields.sethome_set then - sethome.set(player_name, player:get_pos()) - minetest.chat_send_player(player_name, green("Home set!")) - elseif fields.sethome_go then - if sethome.go(player_name) then - sethome.go(player_name) - minetest.chat_send_player(player_name, green("Teleported to home!")) - else - minetest.chat_send_player(player_name, red("Home is not set!")) - end - end -end) diff --git a/games/default/files/sfinv/README.md b/games/default/files/sfinv/README.md deleted file mode 100644 index 6ff33923f..000000000 --- a/games/default/files/sfinv/README.md +++ /dev/null @@ -1,21 +0,0 @@ -Simple Fast Inventory -==================== - -![SFINV Screeny](https://cdn.pbrd.co/images/1yQhd1TI.png) - -A cleaner, simpler, solution to having an advanced inventory in Minetest. - -Written by rubenwardy. -License: MIT - -See game_api.txt for this mod's API - -License of source code and media files: ---------------------------------------- -Copyright (C) 2016 rubenwardy - -Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: - -The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. diff --git a/games/default/files/sfinv/api.lua b/games/default/files/sfinv/api.lua deleted file mode 100644 index 5f4db4e69..000000000 --- a/games/default/files/sfinv/api.lua +++ /dev/null @@ -1,203 +0,0 @@ -sfinv = { - pages = {}, - pages_unordered = {}, - contexts = {}, - enabled = true, - gui_bg = "bgcolor[#08080880;true]", - listcolors = "listcolors[#9990;#FFF7;#FFF0;#160816;#D4D2FF]", - gui_bg_img = "", - gui_slots = "", -} - -function sfinv.register_page(name, def) - assert(name, "Invalid sfinv page. Requires a name") - assert(def, "Invalid sfinv page. Requires a def[inition] table") - assert(def.get, "Invalid sfinv page. Def requires a get function.") - assert(not sfinv.pages[name], "Attempt to register already registered sfinv page " .. dump(name)) - - sfinv.pages[name] = def - def.name = name - table.insert(sfinv.pages_unordered, def) -end - -function sfinv.override_page(name, def) - assert(name, "Invalid sfinv page override. Requires a name") - assert(def, "Invalid sfinv page override. Requires a def[inition] table") - local page = sfinv.pages[name] - assert(page, "Attempt to override sfinv page " .. dump(name) .. " which does not exist.") - for key, value in pairs(def) do - page[key] = value - end -end - -function sfinv.get_nav_fs(player, context, nav, current_idx) - --[[ Only show tabs if there is more than one page - if #nav > 1 then - return "tabheader[0,0;sfinv_nav_tabs;" .. table.concat(nav, ",") .. - ";" .. current_idx .. ";true;false]" - else - return "" - end - ]]-- - return "" -end - -local theme_main = sfinv.gui_bg .. - sfinv.gui_bg_img - -local theme_inv = sfinv.gui_slots .. [[ - list[current_player;main;0.01,4.51;9,3;9] - list[current_player;main;0.01,7.74;9,1;] - ]] - -function sfinv.make_formspec(player, context, content, show_inv, size) - local tmp = { - size or "size[9,8.75]", - theme_main, - sfinv.get_nav_fs(player, context, context.nav_titles, context.nav_idx), - content - } - if show_inv then - tmp[#tmp + 1] = theme_inv - end - return table.concat(tmp, "") -end - -function sfinv.get_homepage_name(player) - return "sfinv:inventory" -end - -function sfinv.get_formspec(player, context) - -- Generate navigation tabs - local nav = {} - local nav_ids = {} - local current_idx = 1 - for i, pdef in pairs(sfinv.pages_unordered) do - if not pdef.is_in_nav or pdef:is_in_nav(player, context) then - nav[#nav + 1] = pdef.title - nav_ids[#nav_ids + 1] = pdef.name - if pdef.name == context.page then - current_idx = #nav_ids - end - end - end - context.nav = nav_ids - context.nav_titles = nav - context.nav_idx = current_idx - - -- Generate formspec - local page = sfinv.pages[context.page] or sfinv.pages["404"] - if page then - return page:get(player, context) - else - local old_page = context.page - local home_page = sfinv.get_homepage_name(player) - - if old_page == home_page then - minetest.log("error", "[sfinv] Couldn't find " .. dump(old_page) .. - ", which is also the old page") - - return "" - end - - context.page = home_page - assert(sfinv.pages[context.page], "[sfinv] Invalid homepage") - minetest.log("warning", "[sfinv] Couldn't find " .. dump(old_page) .. - " so switching to homepage") - - return sfinv.get_formspec(player, context) - end -end - -function sfinv.get_or_create_context(player) - local name = player:get_player_name() - local context = sfinv.contexts[name] - if not context then - context = { - page = sfinv.get_homepage_name(player) - } - sfinv.contexts[name] = context - end - return context -end - -function sfinv.set_context(player, context) - sfinv.contexts[player:get_player_name()] = context -end - -function sfinv.set_player_inventory_formspec(player, context) - local fs = sfinv.get_formspec(player, - context or sfinv.get_or_create_context(player)) - player:set_inventory_formspec(fs) -end - -function sfinv.set_page(player, pagename) - local context = sfinv.get_or_create_context(player) - local oldpage = sfinv.pages[context.page] - if oldpage and oldpage.on_leave then - oldpage:on_leave(player, context) - end - context.page = pagename - local page = sfinv.pages[pagename] - if page.on_enter then - page:on_enter(player, context) - end - sfinv.set_player_inventory_formspec(player, context) -end - -split_inv = minetest.create_detached_inventory("split", { - allow_move = function(_, _, _, _, _, count, _) - return count - end, - allow_put = function(_, _, _, stack, _) - return stack:get_count() / 2 - end, - allow_take = function(_, _, _, stack, _) - return stack:get_count() - end, -}) - -minetest.register_on_joinplayer(function(player) - if sfinv.enabled then - sfinv.set_player_inventory_formspec(player) - end - if split_inv then - split_inv:set_size("main", 1) - end -end) - -minetest.register_on_leaveplayer(function(player) - sfinv.contexts[player:get_player_name()] = nil -end) - -minetest.register_on_player_receive_fields(function(player, formname, fields) - if formname ~= "" or not sfinv.enabled then - return false - end - - -- Get Context - local name = player:get_player_name() - local context = sfinv.contexts[name] - if not context then - sfinv.set_player_inventory_formspec(player) - return false - end - - -- Was a tab selected? - if fields.sfinv_nav_tabs and context.nav then - local tid = tonumber(fields.sfinv_nav_tabs) - if tid and tid > 0 then - local id = context.nav[tid] - local page = sfinv.pages[id] - if id and page then - sfinv.set_page(player, id) - end - end - else - -- Pass event to page - local page = sfinv.pages[context.page] - if page and page.on_player_receive_fields then - return page:on_player_receive_fields(player, context, fields) - end - end -end) diff --git a/games/default/files/sfinv/init.lua b/games/default/files/sfinv/init.lua deleted file mode 100644 index 58e295a23..000000000 --- a/games/default/files/sfinv/init.lua +++ /dev/null @@ -1,7 +0,0 @@ -dofile(minetest.get_modpath("sfinv") .. "/api.lua") - -sfinv.register_page("sfinv:inventory", { - get = function(self, player, context) - return sfinv.make_formspec(player, context, [[ ]], true) - end -}) \ No newline at end of file diff --git a/games/default/files/sfinv/license.txt b/games/default/files/sfinv/license.txt deleted file mode 100644 index e27dc85f8..000000000 --- a/games/default/files/sfinv/license.txt +++ /dev/null @@ -1,24 +0,0 @@ -License of source code ----------------------- - -The MIT License (MIT) -Copyright (C) 2016-2018 rubenwardy - -Permission is hereby granted, free of charge, to any person obtaining a copy of this -software and associated documentation files (the "Software"), to deal in the Software -without restriction, including without limitation the rights to use, copy, modify, merge, -publish, distribute, sublicense, and/or sell copies of the Software, and to permit -persons to whom the Software is furnished to do so, subject to the following conditions: - -The above copyright notice and this permission notice shall be included in all copies or -substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, -INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR -PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE -FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR -OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER -DEALINGS IN THE SOFTWARE. - -For more details: -https://opensource.org/licenses/MIT diff --git a/games/default/files/signs/README.txt b/games/default/files/signs/README.txt deleted file mode 100644 index c995edcc6..000000000 --- a/games/default/files/signs/README.txt +++ /dev/null @@ -1,12 +0,0 @@ -MultiCraft Game mod: signs - -License of source code: ------------------------ -Copyright (C) 2018-2019 MultiCraft Development Team - -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. - -http://www.gnu.org/licenses/lgpl-3.0.html diff --git a/games/default/files/signs/depends.txt b/games/default/files/signs/depends.txt deleted file mode 100644 index 4ad96d515..000000000 --- a/games/default/files/signs/depends.txt +++ /dev/null @@ -1 +0,0 @@ -default diff --git a/games/default/files/signs/init.lua b/games/default/files/signs/init.lua deleted file mode 100644 index f89faa5ad..000000000 --- a/games/default/files/signs/init.lua +++ /dev/null @@ -1,278 +0,0 @@ -signs = {} - -signs.sign_positions = { - [0] = {{x = 0.0075, y = 0.18, z = -0.065}, math.pi}, - [1] = {{x = -0.065, y = 0.18, z = 0.0075}, math.pi / 2}, - [2] = {{x = 0.0075, y = 0.18, z = 0.065}, 0}, - [3] = {{x = 0.065, y = 0.18, z = 0.0075}, math.pi * 1.5}, -} - -signs.wall_sign_positions = { - [0] = {{x = 0.437, y = -0.005, z = 0.06}, math.pi / 2}, - [1] = {{x = -0.437, y = -0.005, z = -0.06}, math.pi * 1.5}, - [2] = {{x = -0.06, y = -0.005, z = 0.437}, math.pi}, - [3] = {{x = 0.06, y = -0.005, z = -0.437}, 0}, -} - -local function generate_sign_line_texture(string, texture, row) - for i = 1, 20 do - local char = string:byte(i) - if char and (char >= 32 and char <= 126) then - texture = texture .. ":" .. (i - 1) * 16 .. "," - .. row * 20 .. "=signs_" .. char .. ".png" - elseif not char then - break - end - end - return texture -end - -function signs.generate_sign_texture(string) - if not string then - return "blank.png" - end - local x_max = #string * 16 - local row = 0 - local texture = "[combine:" .. 16 * 20 .. "x100" - for i = 1, 5 do - local line_string = string:sub((20 * (i - 1)) + 1, 20 * i) - if line_string == "" then - break - end - texture = generate_sign_line_texture(line_string, texture, row) - row = row + 1 - end - return texture -end - -minetest.register_entity("signs:sign_text", { - initial_properties = { - visual = "upright_sprite", - textures = {"blank.png", "blank.png"}, - visual_size = {x = 0.7, y = 0.6}, - collisionbox = {0, 0, 0, 0, 0, 0}, - selectionbox = {0, 0, 0, 0, 0, 0}, - }, - pointable = false, - on_activate = function(self, staticdata) - self.object:set_properties({ - textures = {signs.generate_sign_texture(staticdata), "blank.png"} - }) - end, - get_staticdata = function(self) - local meta = minetest.get_meta(self.object:get_pos()) - local text = meta:get_string("sign_text") - if text and text ~= "" then - return text - end - return " " - end -}) - -local function check_text(pos, wall) - local meta = minetest.get_meta(pos) - local text = meta:get_string("sign_text") - if text and text ~= "" then - local found = false - for _, obj in pairs(minetest.get_objects_inside_radius(pos, 0.5)) do - local ent = obj:get_luaentity() - if ent and ent.name == "signs:sign_text" then - found = true - break - end - end - if not found then - local p2 = minetest.get_node(pos).param2 - if not p2 or p2 > 3 or p2 < 0 then return end - if wall then - local obj = minetest.add_entity(vector.add(pos, - signs.wall_sign_positions[p2][1]), "signs:sign_text") - obj:set_properties({ - textures = {signs.generate_sign_texture(text), "blank.png"} - }) - obj:set_yaw(signs.wall_sign_positions[p2][2]) - else - local obj = minetest.add_entity(vector.add(pos, - signs.sign_positions[p2][1]), "signs:sign_text") - obj:set_properties({ - textures = {signs.generate_sign_texture(text), "blank.png"} - }) - obj:set_yaw(signs.sign_positions[p2][2]) - end - end - end -end - -minetest.register_lbm({ - label = "Check for sign text", - name = "signs:sign_text", - nodenames = {"signs:sign"}, - run_at_every_load = true, - action = function(pos, node) - check_text(pos, false) - end, -}) - -minetest.register_lbm({ - label = "Check for sign text (Wall)", - name = "signs:wall_sign_text", - nodenames = {"signs:wall_sign"}, - run_at_every_load = true, - action = function(pos, node) - check_text(pos, true) - end, -}) - -minetest.register_node("signs:sign", { - description = "Sign", - tiles = {"default_wood.png"}, - drawtype = "nodebox", - paramtype = "light", - paramtype2 = "facedir", - node_placement_prediction = "", - node_box = { - type = "fixed", - fixed = { - {-0.375, -0.125, -0.0625, 0.375, 0.5, 0.0625}, -- NodeBox1 - {-0.0625, -0.5, -0.0625, 0.0625, -0.125, 0.0625}, -- NodeBox2 - } - }, - on_place = function(itemstack, placer, pointed_thing) - if pointed_thing.type == "node" then - local undery = pointed_thing.under.y - local posy = pointed_thing.above.y - if undery > posy then -- Trying to place on celling, not allowed - return itemstack - elseif undery == posy then -- Wall sign - local count, success = minetest.item_place( - ItemStack("signs:wall_sign"), placer, pointed_thing) - if success then - return itemstack:take_item(1) - end - else -- Normal sign - return minetest.item_place(itemstack, placer, pointed_thing) - end - end - end, - on_construct = function(pos) - local meta = minetest.get_meta(pos) - meta:set_string("formspec", "field[Dtext;Enter your text:;${sign_text}]") - end, - on_destruct = function(pos) - for _, obj in pairs(minetest.get_objects_inside_radius(pos, 0.5)) do - local ent = obj:get_luaentity() - if ent and ent.name == "signs:sign_text" then - obj:remove() - break - end - end - end, - on_punch = function(pos) - check_text(pos, false) - end, - on_receive_fields = function(pos, formname, fields, sender) - if not fields.Dtext then - return - end - local p2 = minetest.get_node(pos).param2 - if p2 > 3 then - return - end - local found = false - for _, obj in pairs(minetest.get_objects_inside_radius(pos, 0.5)) do - local ent = obj:get_luaentity() - if ent and ent.name == "signs:sign_text" then - obj:set_properties( - {textures = {signs.generate_sign_texture(fields.Dtext), "blank.png"} - }) - obj:set_pos(vector.add(pos, signs.sign_positions[p2][1])) - obj:set_yaw(signs.sign_positions[p2][2]) - found = true - end - end - if not found then - local obj = minetest.add_entity(vector.add(pos, - signs.sign_positions[p2][1]), "signs:sign_text") - obj:set_properties({ - textures = {signs.generate_sign_texture(fields.Dtext), "blank.png"} - }) - obj:set_yaw(signs.sign_positions[p2][2]) - end - local meta = minetest.get_meta(pos) - meta:set_string("sign_text", fields.Dtext) - end, - groups = {oddly_breakable_by_hand = 1, choppy = 3, attached_node = 1}, -}) - -minetest.register_node("signs:wall_sign", { - description = "Sign", - tiles = {"default_wood.png"}, - drawtype = "nodebox", - paramtype = "light", - paramtype2 = "wallmounted", - node_box = { - type = "wallmounted", - wall_top = {-0.4375, 0.4375, -0.3125, 0.4375, 0.5, 0.3125}, - wall_bottom = {-0.4375, -0.5, -0.3125, 0.4375, -0.4375, 0.3125}, - wall_side = {-0.5, -0.3125, -0.4375, -0.4375, 0.3125, 0.4375}, - }, - drop = "signs:sign", - on_construct = function(pos) - local meta = minetest.get_meta(pos) - meta:set_string("formspec", "field[Dtext;Enter your text:;${sign_text}]") - end, - on_destruct = function(pos) - for _, obj in pairs(minetest.get_objects_inside_radius(pos, 0.5)) do - local ent = obj:get_luaentity() - if ent and ent.name == "signs:sign_text" then - obj:remove() - break - end - end - end, - on_punch = function(pos) - check_text(pos, true) - end, - on_receive_fields = function(pos, formname, fields, sender) - if not fields.Dtext then - return - end - local p2 = minetest.get_node(pos).param2 - 2 - if p2 > 3 and p2 < 0 then - return - end - local found = false - for _, obj in pairs(minetest.get_objects_inside_radius(pos, 0.5)) do - local ent = obj:get_luaentity() - if ent and ent.name == "signs:sign_text" then - obj:set_properties({ - textures = {signs.generate_sign_texture(fields.Dtext), "blank.png"} - }) - obj:set_pos(vector.add(pos, signs.wall_sign_positions[p2][1])) - obj:set_yaw(signs.wall_sign_positions[p2][2]) - found = true - end - end - if not found and signs.wall_sign_positions[p2] then - local obj = minetest.add_entity(vector.add(pos, - signs.wall_sign_positions[p2][1]), "signs:sign_text") - obj:set_properties({ - textures = {signs.generate_sign_texture(fields.Dtext), "blank.png"} - }) - obj:set_yaw(signs.wall_sign_positions[p2][2]) - end - local meta = minetest.get_meta(pos) - meta:set_string("sign_text", fields.Dtext) - end, - groups = {oddly_breakable_by_hand = 1, choppy = 3, - not_in_creative_inventory = 1, attached_node = 1}, -}) - -minetest.register_craft({ - output = "signs:sign 3", - recipe = { - {"group:wood", "group:wood", "group:wood"}, - {"group:wood", "group:wood", "group:wood"}, - {"", "default:stick", ""}, - } -}) diff --git a/games/default/files/signs/textures/signs_100.png b/games/default/files/signs/textures/signs_100.png deleted file mode 100644 index 6012ccfd8..000000000 Binary files a/games/default/files/signs/textures/signs_100.png and /dev/null differ diff --git a/games/default/files/signs/textures/signs_101.png b/games/default/files/signs/textures/signs_101.png deleted file mode 100644 index e24369ecd..000000000 Binary files a/games/default/files/signs/textures/signs_101.png and /dev/null differ diff --git a/games/default/files/signs/textures/signs_102.png b/games/default/files/signs/textures/signs_102.png deleted file mode 100644 index a970bb60b..000000000 Binary files a/games/default/files/signs/textures/signs_102.png and /dev/null differ diff --git a/games/default/files/signs/textures/signs_103.png b/games/default/files/signs/textures/signs_103.png deleted file mode 100644 index 96f91aecf..000000000 Binary files a/games/default/files/signs/textures/signs_103.png and /dev/null differ diff --git a/games/default/files/signs/textures/signs_104.png b/games/default/files/signs/textures/signs_104.png deleted file mode 100644 index d8f097910..000000000 Binary files a/games/default/files/signs/textures/signs_104.png and /dev/null differ diff --git a/games/default/files/signs/textures/signs_105.png b/games/default/files/signs/textures/signs_105.png deleted file mode 100644 index 5c4bbdf13..000000000 Binary files a/games/default/files/signs/textures/signs_105.png and /dev/null differ diff --git a/games/default/files/signs/textures/signs_106.png b/games/default/files/signs/textures/signs_106.png deleted file mode 100644 index a27c70f80..000000000 Binary files a/games/default/files/signs/textures/signs_106.png and /dev/null differ diff --git a/games/default/files/signs/textures/signs_107.png b/games/default/files/signs/textures/signs_107.png deleted file mode 100644 index 60849fe42..000000000 Binary files a/games/default/files/signs/textures/signs_107.png and /dev/null differ diff --git a/games/default/files/signs/textures/signs_108.png b/games/default/files/signs/textures/signs_108.png deleted file mode 100644 index 8372daf86..000000000 Binary files a/games/default/files/signs/textures/signs_108.png and /dev/null differ diff --git a/games/default/files/signs/textures/signs_109.png b/games/default/files/signs/textures/signs_109.png deleted file mode 100644 index 9f4ff8958..000000000 Binary files a/games/default/files/signs/textures/signs_109.png and /dev/null differ diff --git a/games/default/files/signs/textures/signs_110.png b/games/default/files/signs/textures/signs_110.png deleted file mode 100644 index 2facde48a..000000000 Binary files a/games/default/files/signs/textures/signs_110.png and /dev/null differ diff --git a/games/default/files/signs/textures/signs_111.png b/games/default/files/signs/textures/signs_111.png deleted file mode 100644 index 9e1ec3646..000000000 Binary files a/games/default/files/signs/textures/signs_111.png and /dev/null differ diff --git a/games/default/files/signs/textures/signs_112.png b/games/default/files/signs/textures/signs_112.png deleted file mode 100644 index c98c1cf1f..000000000 Binary files a/games/default/files/signs/textures/signs_112.png and /dev/null differ diff --git a/games/default/files/signs/textures/signs_113.png b/games/default/files/signs/textures/signs_113.png deleted file mode 100644 index 56a2755a1..000000000 Binary files a/games/default/files/signs/textures/signs_113.png and /dev/null differ diff --git a/games/default/files/signs/textures/signs_114.png b/games/default/files/signs/textures/signs_114.png deleted file mode 100644 index cbc610217..000000000 Binary files a/games/default/files/signs/textures/signs_114.png and /dev/null differ diff --git a/games/default/files/signs/textures/signs_115.png b/games/default/files/signs/textures/signs_115.png deleted file mode 100644 index 0c9964dda..000000000 Binary files a/games/default/files/signs/textures/signs_115.png and /dev/null differ diff --git a/games/default/files/signs/textures/signs_116.png b/games/default/files/signs/textures/signs_116.png deleted file mode 100644 index df19398fd..000000000 Binary files a/games/default/files/signs/textures/signs_116.png and /dev/null differ diff --git a/games/default/files/signs/textures/signs_117.png b/games/default/files/signs/textures/signs_117.png deleted file mode 100644 index f97ccc90c..000000000 Binary files a/games/default/files/signs/textures/signs_117.png and /dev/null differ diff --git a/games/default/files/signs/textures/signs_118.png b/games/default/files/signs/textures/signs_118.png deleted file mode 100644 index cc2772755..000000000 Binary files a/games/default/files/signs/textures/signs_118.png and /dev/null differ diff --git a/games/default/files/signs/textures/signs_119.png b/games/default/files/signs/textures/signs_119.png deleted file mode 100644 index 95596ebed..000000000 Binary files a/games/default/files/signs/textures/signs_119.png and /dev/null differ diff --git a/games/default/files/signs/textures/signs_120.png b/games/default/files/signs/textures/signs_120.png deleted file mode 100644 index 1d7ecfbbe..000000000 Binary files a/games/default/files/signs/textures/signs_120.png and /dev/null differ diff --git a/games/default/files/signs/textures/signs_121.png b/games/default/files/signs/textures/signs_121.png deleted file mode 100644 index e368cdec6..000000000 Binary files a/games/default/files/signs/textures/signs_121.png and /dev/null differ diff --git a/games/default/files/signs/textures/signs_122.png b/games/default/files/signs/textures/signs_122.png deleted file mode 100644 index 83039f632..000000000 Binary files a/games/default/files/signs/textures/signs_122.png and /dev/null differ diff --git a/games/default/files/signs/textures/signs_123.png b/games/default/files/signs/textures/signs_123.png deleted file mode 100644 index d46865455..000000000 Binary files a/games/default/files/signs/textures/signs_123.png and /dev/null differ diff --git a/games/default/files/signs/textures/signs_124.png b/games/default/files/signs/textures/signs_124.png deleted file mode 100644 index 569417e19..000000000 Binary files a/games/default/files/signs/textures/signs_124.png and /dev/null differ diff --git a/games/default/files/signs/textures/signs_125.png b/games/default/files/signs/textures/signs_125.png deleted file mode 100644 index 31dc23937..000000000 Binary files a/games/default/files/signs/textures/signs_125.png and /dev/null differ diff --git a/games/default/files/signs/textures/signs_126.png b/games/default/files/signs/textures/signs_126.png deleted file mode 100644 index c9850005e..000000000 Binary files a/games/default/files/signs/textures/signs_126.png and /dev/null differ diff --git a/games/default/files/signs/textures/signs_32.png b/games/default/files/signs/textures/signs_32.png deleted file mode 100644 index 4e50d26f4..000000000 Binary files a/games/default/files/signs/textures/signs_32.png and /dev/null differ diff --git a/games/default/files/signs/textures/signs_33.png b/games/default/files/signs/textures/signs_33.png deleted file mode 100644 index ec40027a5..000000000 Binary files a/games/default/files/signs/textures/signs_33.png and /dev/null differ diff --git a/games/default/files/signs/textures/signs_34.png b/games/default/files/signs/textures/signs_34.png deleted file mode 100644 index 53ee514a0..000000000 Binary files a/games/default/files/signs/textures/signs_34.png and /dev/null differ diff --git a/games/default/files/signs/textures/signs_35.png b/games/default/files/signs/textures/signs_35.png deleted file mode 100644 index 3ac0a9d0b..000000000 Binary files a/games/default/files/signs/textures/signs_35.png and /dev/null differ diff --git a/games/default/files/signs/textures/signs_36.png b/games/default/files/signs/textures/signs_36.png deleted file mode 100644 index d1c49f953..000000000 Binary files a/games/default/files/signs/textures/signs_36.png and /dev/null differ diff --git a/games/default/files/signs/textures/signs_37.png b/games/default/files/signs/textures/signs_37.png deleted file mode 100644 index d927bd80e..000000000 Binary files a/games/default/files/signs/textures/signs_37.png and /dev/null differ diff --git a/games/default/files/signs/textures/signs_38.png b/games/default/files/signs/textures/signs_38.png deleted file mode 100644 index 5259576df..000000000 Binary files a/games/default/files/signs/textures/signs_38.png and /dev/null differ diff --git a/games/default/files/signs/textures/signs_39.png b/games/default/files/signs/textures/signs_39.png deleted file mode 100644 index 70e969533..000000000 Binary files a/games/default/files/signs/textures/signs_39.png and /dev/null differ diff --git a/games/default/files/signs/textures/signs_40.png b/games/default/files/signs/textures/signs_40.png deleted file mode 100644 index 4cf4e8d33..000000000 Binary files a/games/default/files/signs/textures/signs_40.png and /dev/null differ diff --git a/games/default/files/signs/textures/signs_41.png b/games/default/files/signs/textures/signs_41.png deleted file mode 100644 index 3c983fd58..000000000 Binary files a/games/default/files/signs/textures/signs_41.png and /dev/null differ diff --git a/games/default/files/signs/textures/signs_42.png b/games/default/files/signs/textures/signs_42.png deleted file mode 100644 index bdd28f55d..000000000 Binary files a/games/default/files/signs/textures/signs_42.png and /dev/null differ diff --git a/games/default/files/signs/textures/signs_43.png b/games/default/files/signs/textures/signs_43.png deleted file mode 100644 index 3f4a1465a..000000000 Binary files a/games/default/files/signs/textures/signs_43.png and /dev/null differ diff --git a/games/default/files/signs/textures/signs_44.png b/games/default/files/signs/textures/signs_44.png deleted file mode 100644 index 88a1cbbe6..000000000 Binary files a/games/default/files/signs/textures/signs_44.png and /dev/null differ diff --git a/games/default/files/signs/textures/signs_45.png b/games/default/files/signs/textures/signs_45.png deleted file mode 100644 index 9aef36de0..000000000 Binary files a/games/default/files/signs/textures/signs_45.png and /dev/null differ diff --git a/games/default/files/signs/textures/signs_46.png b/games/default/files/signs/textures/signs_46.png deleted file mode 100644 index 375dbab06..000000000 Binary files a/games/default/files/signs/textures/signs_46.png and /dev/null differ diff --git a/games/default/files/signs/textures/signs_47.png b/games/default/files/signs/textures/signs_47.png deleted file mode 100644 index cae7f252f..000000000 Binary files a/games/default/files/signs/textures/signs_47.png and /dev/null differ diff --git a/games/default/files/signs/textures/signs_48.png b/games/default/files/signs/textures/signs_48.png deleted file mode 100644 index 537b93699..000000000 Binary files a/games/default/files/signs/textures/signs_48.png and /dev/null differ diff --git a/games/default/files/signs/textures/signs_49.png b/games/default/files/signs/textures/signs_49.png deleted file mode 100644 index b4df9ca40..000000000 Binary files a/games/default/files/signs/textures/signs_49.png and /dev/null differ diff --git a/games/default/files/signs/textures/signs_50.png b/games/default/files/signs/textures/signs_50.png deleted file mode 100644 index ddfa16624..000000000 Binary files a/games/default/files/signs/textures/signs_50.png and /dev/null differ diff --git a/games/default/files/signs/textures/signs_51.png b/games/default/files/signs/textures/signs_51.png deleted file mode 100644 index c5787dabb..000000000 Binary files a/games/default/files/signs/textures/signs_51.png and /dev/null differ diff --git a/games/default/files/signs/textures/signs_52.png b/games/default/files/signs/textures/signs_52.png deleted file mode 100644 index 887f2253f..000000000 Binary files a/games/default/files/signs/textures/signs_52.png and /dev/null differ diff --git a/games/default/files/signs/textures/signs_53.png b/games/default/files/signs/textures/signs_53.png deleted file mode 100644 index 5413816de..000000000 Binary files a/games/default/files/signs/textures/signs_53.png and /dev/null differ diff --git a/games/default/files/signs/textures/signs_54.png b/games/default/files/signs/textures/signs_54.png deleted file mode 100644 index a1da7dd74..000000000 Binary files a/games/default/files/signs/textures/signs_54.png and /dev/null differ diff --git a/games/default/files/signs/textures/signs_55.png b/games/default/files/signs/textures/signs_55.png deleted file mode 100644 index 78decb575..000000000 Binary files a/games/default/files/signs/textures/signs_55.png and /dev/null differ diff --git a/games/default/files/signs/textures/signs_56.png b/games/default/files/signs/textures/signs_56.png deleted file mode 100644 index 18e043ac0..000000000 Binary files a/games/default/files/signs/textures/signs_56.png and /dev/null differ diff --git a/games/default/files/signs/textures/signs_57.png b/games/default/files/signs/textures/signs_57.png deleted file mode 100644 index 7c66b7291..000000000 Binary files a/games/default/files/signs/textures/signs_57.png and /dev/null differ diff --git a/games/default/files/signs/textures/signs_58.png b/games/default/files/signs/textures/signs_58.png deleted file mode 100644 index b70383016..000000000 Binary files a/games/default/files/signs/textures/signs_58.png and /dev/null differ diff --git a/games/default/files/signs/textures/signs_59.png b/games/default/files/signs/textures/signs_59.png deleted file mode 100644 index 6914c05de..000000000 Binary files a/games/default/files/signs/textures/signs_59.png and /dev/null differ diff --git a/games/default/files/signs/textures/signs_60.png b/games/default/files/signs/textures/signs_60.png deleted file mode 100644 index 2db28f2b1..000000000 Binary files a/games/default/files/signs/textures/signs_60.png and /dev/null differ diff --git a/games/default/files/signs/textures/signs_61.png b/games/default/files/signs/textures/signs_61.png deleted file mode 100644 index 64e63e25d..000000000 Binary files a/games/default/files/signs/textures/signs_61.png and /dev/null differ diff --git a/games/default/files/signs/textures/signs_62.png b/games/default/files/signs/textures/signs_62.png deleted file mode 100644 index 3a33a555d..000000000 Binary files a/games/default/files/signs/textures/signs_62.png and /dev/null differ diff --git a/games/default/files/signs/textures/signs_63.png b/games/default/files/signs/textures/signs_63.png deleted file mode 100644 index b08a8373b..000000000 Binary files a/games/default/files/signs/textures/signs_63.png and /dev/null differ diff --git a/games/default/files/signs/textures/signs_64.png b/games/default/files/signs/textures/signs_64.png deleted file mode 100644 index 3e560ee9c..000000000 Binary files a/games/default/files/signs/textures/signs_64.png and /dev/null differ diff --git a/games/default/files/signs/textures/signs_65.png b/games/default/files/signs/textures/signs_65.png deleted file mode 100644 index 68d5673b4..000000000 Binary files a/games/default/files/signs/textures/signs_65.png and /dev/null differ diff --git a/games/default/files/signs/textures/signs_66.png b/games/default/files/signs/textures/signs_66.png deleted file mode 100644 index 14e50ccca..000000000 Binary files a/games/default/files/signs/textures/signs_66.png and /dev/null differ diff --git a/games/default/files/signs/textures/signs_67.png b/games/default/files/signs/textures/signs_67.png deleted file mode 100644 index 95a75dc2e..000000000 Binary files a/games/default/files/signs/textures/signs_67.png and /dev/null differ diff --git a/games/default/files/signs/textures/signs_68.png b/games/default/files/signs/textures/signs_68.png deleted file mode 100644 index 68e0d15ca..000000000 Binary files a/games/default/files/signs/textures/signs_68.png and /dev/null differ diff --git a/games/default/files/signs/textures/signs_69.png b/games/default/files/signs/textures/signs_69.png deleted file mode 100644 index 319a309a8..000000000 Binary files a/games/default/files/signs/textures/signs_69.png and /dev/null differ diff --git a/games/default/files/signs/textures/signs_70.png b/games/default/files/signs/textures/signs_70.png deleted file mode 100644 index 63946c0e0..000000000 Binary files a/games/default/files/signs/textures/signs_70.png and /dev/null differ diff --git a/games/default/files/signs/textures/signs_71.png b/games/default/files/signs/textures/signs_71.png deleted file mode 100644 index 36c4742ca..000000000 Binary files a/games/default/files/signs/textures/signs_71.png and /dev/null differ diff --git a/games/default/files/signs/textures/signs_72.png b/games/default/files/signs/textures/signs_72.png deleted file mode 100644 index 6ef9b291e..000000000 Binary files a/games/default/files/signs/textures/signs_72.png and /dev/null differ diff --git a/games/default/files/signs/textures/signs_73.png b/games/default/files/signs/textures/signs_73.png deleted file mode 100644 index 95a3db49e..000000000 Binary files a/games/default/files/signs/textures/signs_73.png and /dev/null differ diff --git a/games/default/files/signs/textures/signs_74.png b/games/default/files/signs/textures/signs_74.png deleted file mode 100644 index 460020661..000000000 Binary files a/games/default/files/signs/textures/signs_74.png and /dev/null differ diff --git a/games/default/files/signs/textures/signs_75.png b/games/default/files/signs/textures/signs_75.png deleted file mode 100644 index 432a3da0b..000000000 Binary files a/games/default/files/signs/textures/signs_75.png and /dev/null differ diff --git a/games/default/files/signs/textures/signs_76.png b/games/default/files/signs/textures/signs_76.png deleted file mode 100644 index 6a7072481..000000000 Binary files a/games/default/files/signs/textures/signs_76.png and /dev/null differ diff --git a/games/default/files/signs/textures/signs_77.png b/games/default/files/signs/textures/signs_77.png deleted file mode 100644 index f6bb567f0..000000000 Binary files a/games/default/files/signs/textures/signs_77.png and /dev/null differ diff --git a/games/default/files/signs/textures/signs_78.png b/games/default/files/signs/textures/signs_78.png deleted file mode 100644 index 8a003b2fd..000000000 Binary files a/games/default/files/signs/textures/signs_78.png and /dev/null differ diff --git a/games/default/files/signs/textures/signs_79.png b/games/default/files/signs/textures/signs_79.png deleted file mode 100644 index daae9dd31..000000000 Binary files a/games/default/files/signs/textures/signs_79.png and /dev/null differ diff --git a/games/default/files/signs/textures/signs_80.png b/games/default/files/signs/textures/signs_80.png deleted file mode 100644 index 8e0523772..000000000 Binary files a/games/default/files/signs/textures/signs_80.png and /dev/null differ diff --git a/games/default/files/signs/textures/signs_81.png b/games/default/files/signs/textures/signs_81.png deleted file mode 100644 index 64ae6a61f..000000000 Binary files a/games/default/files/signs/textures/signs_81.png and /dev/null differ diff --git a/games/default/files/signs/textures/signs_82.png b/games/default/files/signs/textures/signs_82.png deleted file mode 100644 index 83b3d28fa..000000000 Binary files a/games/default/files/signs/textures/signs_82.png and /dev/null differ diff --git a/games/default/files/signs/textures/signs_83.png b/games/default/files/signs/textures/signs_83.png deleted file mode 100644 index 5e1875bbd..000000000 Binary files a/games/default/files/signs/textures/signs_83.png and /dev/null differ diff --git a/games/default/files/signs/textures/signs_84.png b/games/default/files/signs/textures/signs_84.png deleted file mode 100644 index f0294e315..000000000 Binary files a/games/default/files/signs/textures/signs_84.png and /dev/null differ diff --git a/games/default/files/signs/textures/signs_85.png b/games/default/files/signs/textures/signs_85.png deleted file mode 100644 index ad8f92671..000000000 Binary files a/games/default/files/signs/textures/signs_85.png and /dev/null differ diff --git a/games/default/files/signs/textures/signs_86.png b/games/default/files/signs/textures/signs_86.png deleted file mode 100644 index 1d06c00fb..000000000 Binary files a/games/default/files/signs/textures/signs_86.png and /dev/null differ diff --git a/games/default/files/signs/textures/signs_87.png b/games/default/files/signs/textures/signs_87.png deleted file mode 100644 index 1d9220350..000000000 Binary files a/games/default/files/signs/textures/signs_87.png and /dev/null differ diff --git a/games/default/files/signs/textures/signs_88.png b/games/default/files/signs/textures/signs_88.png deleted file mode 100644 index 873a0e5df..000000000 Binary files a/games/default/files/signs/textures/signs_88.png and /dev/null differ diff --git a/games/default/files/signs/textures/signs_89.png b/games/default/files/signs/textures/signs_89.png deleted file mode 100644 index 381f68e69..000000000 Binary files a/games/default/files/signs/textures/signs_89.png and /dev/null differ diff --git a/games/default/files/signs/textures/signs_90.png b/games/default/files/signs/textures/signs_90.png deleted file mode 100644 index 96e1643df..000000000 Binary files a/games/default/files/signs/textures/signs_90.png and /dev/null differ diff --git a/games/default/files/signs/textures/signs_91.png b/games/default/files/signs/textures/signs_91.png deleted file mode 100644 index d1bd7a8a9..000000000 Binary files a/games/default/files/signs/textures/signs_91.png and /dev/null differ diff --git a/games/default/files/signs/textures/signs_92.png b/games/default/files/signs/textures/signs_92.png deleted file mode 100644 index 7e50a7459..000000000 Binary files a/games/default/files/signs/textures/signs_92.png and /dev/null differ diff --git a/games/default/files/signs/textures/signs_93.png b/games/default/files/signs/textures/signs_93.png deleted file mode 100644 index 686111e68..000000000 Binary files a/games/default/files/signs/textures/signs_93.png and /dev/null differ diff --git a/games/default/files/signs/textures/signs_94.png b/games/default/files/signs/textures/signs_94.png deleted file mode 100644 index bc36f90ca..000000000 Binary files a/games/default/files/signs/textures/signs_94.png and /dev/null differ diff --git a/games/default/files/signs/textures/signs_95.png b/games/default/files/signs/textures/signs_95.png deleted file mode 100644 index e8c85e66d..000000000 Binary files a/games/default/files/signs/textures/signs_95.png and /dev/null differ diff --git a/games/default/files/signs/textures/signs_96.png b/games/default/files/signs/textures/signs_96.png deleted file mode 100644 index 6f8ac18d0..000000000 Binary files a/games/default/files/signs/textures/signs_96.png and /dev/null differ diff --git a/games/default/files/signs/textures/signs_97.png b/games/default/files/signs/textures/signs_97.png deleted file mode 100644 index 945ab485e..000000000 Binary files a/games/default/files/signs/textures/signs_97.png and /dev/null differ diff --git a/games/default/files/signs/textures/signs_98.png b/games/default/files/signs/textures/signs_98.png deleted file mode 100644 index 0c3ba5264..000000000 Binary files a/games/default/files/signs/textures/signs_98.png and /dev/null differ diff --git a/games/default/files/signs/textures/signs_99.png b/games/default/files/signs/textures/signs_99.png deleted file mode 100644 index 86a5967f0..000000000 Binary files a/games/default/files/signs/textures/signs_99.png and /dev/null differ diff --git a/games/default/files/sponge/LICENSE b/games/default/files/sponge/LICENSE deleted file mode 100644 index 73e952ad8..000000000 --- a/games/default/files/sponge/LICENSE +++ /dev/null @@ -1,21 +0,0 @@ -MIT License - -Copyright (c) 2018 Benjie/Fiftysix - -Permission is hereby granted, free of charge, to any person obtaining a copy -of this software and associated documentation files (the "Software"), to deal -in the Software without restriction, including without limitation the rights -to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -copies of the Software, and to permit persons to whom the Software is -furnished to do so, subject to the following conditions: - -The above copyright notice and this permission notice shall be included in all -copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE -SOFTWARE. diff --git a/games/default/files/sponge/README.md b/games/default/files/sponge/README.md deleted file mode 100644 index 4f477e795..000000000 --- a/games/default/files/sponge/README.md +++ /dev/null @@ -1,20 +0,0 @@ -MultiCraft Game mod: Spomge -========================= - -Introduction: -Wet sponges are quite rare, found deep in the sea where it is dark (below -11). -These can be cooked into dry sponges, and then placed near a liquid to remove an area of it. They will hold the water away until they are removed. -They turn in to wet sponges when used, so to use them again, they have to be cooked. - -### How it works: -* sponges create a 5x5 area of air-like nodes that water can't flow through (checks for protection) -* if sponges have cleared more than 3 nodes of liquid, they become wet sponges -* removing a sponge or wet sponge will turn a 5x5 area of air-like nodes back into air. -*(Air-like nodes can be removed in protection by removing a sponge outside the protection, they are not meant to be permanent)* - -[Forum topic](https://forum.minetest.net/viewtopic.php?f=9&t=20729) - -License of source code: ------------------------ -Copyright (c) Benjie/Fiftysix - 27/8/18 -MIT, see the LICENSE file. diff --git a/games/default/files/sponge/depends.txt b/games/default/files/sponge/depends.txt deleted file mode 100644 index 1810f69e4..000000000 --- a/games/default/files/sponge/depends.txt +++ /dev/null @@ -1 +0,0 @@ -default diff --git a/games/default/files/sponge/init.lua b/games/default/files/sponge/init.lua deleted file mode 100644 index 1fa321889..000000000 --- a/games/default/files/sponge/init.lua +++ /dev/null @@ -1,96 +0,0 @@ -local area = 3 - -local destruct = function(pos) -- removing the air-like nodes - for x = pos.x-area, pos.x+area do - for y = pos.y-area, pos.y+area do - for z = pos.z-area, pos.z+area do - local n = minetest.get_node({x=x, y=y, z=z}).name - if n == "sponge:liquid_stop" then - minetest.remove_node({x=x, y=y, z=z}) - end - end - end - end -end - - -minetest.register_node("sponge:liquid_stop", { -- air-like node - drawtype = "airlike", - drop = "", - groups = {not_in_creative_inventory = 1}, - pointable = false, - walkable = false, - sunlight_propagates = true, - paramtype = "light", - buildable_to = true, -}) - - -minetest.register_node("sponge:sponge", { -- dry sponge - description = "Sponge", - tiles = {"sponge_sponge.png"}, - groups = {snappy = 2, choppy = 2, oddly_breakable_by_hand = 3, flammable = 3}, - - after_place_node = function(pos, placer, itemstack, pointed_thing) - local name = placer:get_player_name() - - if not minetest.is_protected(pos, name) then - local count = 0 - for x = pos.x-area, pos.x+area do - for y = pos.y-area, pos.y+area do - for z = pos.z-area, pos.z+area do - local n = minetest.get_node({x=x, y=y, z=z}).name - local d = minetest.registered_nodes[n] - if d ~= nil and (n == "air" or d["drawtype"] == "liquid" or d["drawtype"] == "flowingliquid") then - local p = {x=x, y=y, z=z} - if not minetest.is_protected(p, name) then - if n ~= "air" then - count = count + 1 -- counting liquids - end - minetest.set_node(p, {name="sponge:liquid_stop"}) - end - end - end - end - end - - if count > area then -- turns wet if it removed more than * nodes - minetest.set_node(pos, {name="sponge:wet_sponge"}) - end - end - end, - - after_dig_node = destruct -}) - - -minetest.register_node("sponge:wet_sponge", { -- wet sponge - description = "Wet Sponge", - tiles = {"sponge_sponge_wet.png"}, - groups = {snappy = 2, choppy = 2, oddly_breakable_by_hand = 3, flammable = 3, not_in_creative_inventory = 1}, - - on_destruct = destruct -}) - -minetest.register_craft({ -- cooking wet sponge back into dry sponge - type = "cooking", - recipe = "sponge:wet_sponge", - output = "sponge:sponge", - cooktime = 4, -}) - -minetest.register_decoration({ -- sponges are found deep in the sea - name = "sponge:sponges", - deco_type = "simple", - place_on = {"default:sand"}, - spawn_by = "default:water_source", - num_spawn_by = 3, - fill_ratio = 0.0003, - y_max = -12, - flags = "force_placement", - decoration = "sponge:wet_sponge", -}) - --- Aliases -minetest.register_alias("default:sponge", "sponge:sponge") -minetest.register_alias("default:sponge_wet", "sponge:wet_sponge") diff --git a/games/default/files/sponge/textures/sponge_sponge.png b/games/default/files/sponge/textures/sponge_sponge.png deleted file mode 100644 index b6fe097ae..000000000 Binary files a/games/default/files/sponge/textures/sponge_sponge.png and /dev/null differ diff --git a/games/default/files/sponge/textures/sponge_sponge_wet.png b/games/default/files/sponge/textures/sponge_sponge_wet.png deleted file mode 100644 index a4aca2599..000000000 Binary files a/games/default/files/sponge/textures/sponge_sponge_wet.png and /dev/null differ diff --git a/games/default/files/throwing/README.txt b/games/default/files/throwing/README.txt deleted file mode 100644 index b8fcfd46c..000000000 --- a/games/default/files/throwing/README.txt +++ /dev/null @@ -1,25 +0,0 @@ -MultiCraft Game mod: throwing -============================= -by PilzAdam - -Inroduction: -This mod adds bows and arrows to Minetest. - - -How to use the mod: -Craft a bow with the strings from the farming mod: - stick string -stick string - stick string - -Craft arrows with: -flint -stick -paper - -Select the bow and shoot with left mouse click. Every shoot will take 1 -arrow from your inventory and wears out the bow (you have around 385 -shoots). - -License: -Source code: PilzAdam and Jeija. WTFPL diff --git a/games/default/files/throwing/depends.txt b/games/default/files/throwing/depends.txt deleted file mode 100644 index 8035d8078..000000000 --- a/games/default/files/throwing/depends.txt +++ /dev/null @@ -1,2 +0,0 @@ - -default diff --git a/games/default/files/throwing/init.lua b/games/default/files/throwing/init.lua deleted file mode 100644 index de71ad7d3..000000000 --- a/games/default/files/throwing/init.lua +++ /dev/null @@ -1,149 +0,0 @@ -local arrows = { - {"throwing:arrow", "throwing:arrow_entity"}, -} -local creative = minetest.settings:get_bool("creative_mode") - -local function arrow_impact(thrower, pos, dir, hit_object) - if hit_object then - local punch_damage = { - full_punch_interval = 1.0, - damage_groups = {fleshy=5}, - } - hit_object:punch(thrower, 1.0, punch_damage, dir) - end - minetest.add_item(pos, "throwing:arrow") -end - -local throwing_shoot_arrow = function(itemstack, player) - for _,arrow in ipairs(arrows) do - if player:get_inventory():get_stack("main", - player:get_wield_index() + 1):get_name() == arrow[1] then - if not creative or not minetest.is_singleplayer()then - player:get_inventory():remove_item("main", arrow[1]) - end - local playerpos = player:get_pos() - if not minetest.is_valid_pos(playerpos) then - return - end - local obj = minetest.item_throw("throwing:arrow_box", player, - 19, -3, arrow_impact) - if obj then - local ent = obj:get_luaentity() - if ent then - minetest.sound_play("throwing_sound", { - pos = playerpos, - gain = 0.7, - max_hear_distance = 10, - }) - obj:set_yaw(player:get_look_yaw() + math.pi) - return true - else - obj:remove() - end - end - end - end - return false -end - -minetest.register_tool("throwing:bow", { - description = "Bow", - inventory_image = "throwing_bow.png", - on_use = function(itemstack, user, pointed_thing) - itemstack:replace("throwing:bow_arrow") - return itemstack - end, -}) - -minetest.register_tool("throwing:bow_arrow", { - description = "Bow with arrow", - inventory_image = "throwing_bow_arrow.png", - groups = {not_in_creative_inventory=1}, - on_place = function(itemstack, user, pointed_thing) - local wear = itemstack:get_wear() - itemstack:replace("throwing:bow") - itemstack:add_wear(wear) - if throwing_shoot_arrow(itemstack, user, pointed_thing) then - if not creative then - itemstack:add_wear(65535/385) - end - end - return itemstack - end, - on_use = function(itemstack, user, pointed_thing) - local wear = itemstack:get_wear() - itemstack:replace("throwing:bow") - itemstack:add_wear(wear) - if throwing_shoot_arrow(itemstack, user, pointed_thing) then - if not creative then - itemstack:add_wear(65535/385) - end - end - return itemstack - end, -}) - -minetest.register_node("throwing:arrow_box", { - drawtype = "nodebox", - node_box = { - type = "fixed", - fixed = { - -- Shaft - {-6.5/17, -1.5/17, -1.5/17, 6.5/17, 1.5/17, 1.5/17}, - --Spitze - {-4.5/17, 2.5/17, 2.5/17, -3.5/17, -2.5/17, -2.5/17}, - {-8.5/17, 0.5/17, 0.5/17, -6.5/17, -0.5/17, -0.5/17}, - --Federn - {6.5/17, 1.5/17, 1.5/17, 7.5/17, 2.5/17, 2.5/17}, - {7.5/17, -2.5/17, 2.5/17, 6.5/17, -1.5/17, 1.5/17}, - {7.5/17, 2.5/17, -2.5/17, 6.5/17, 1.5/17, -1.5/17}, - {6.5/17, -1.5/17, -1.5/17, 7.5/17, -2.5/17, -2.5/17}, - - {7.5/17, 2.5/17, 2.5/17, 8.5/17, 3.5/17, 3.5/17}, - {8.5/17, -3.5/17, 3.5/17, 7.5/17, -2.5/17, 2.5/17}, - {8.5/17, 3.5/17, -3.5/17, 7.5/17, 2.5/17, -2.5/17}, - {7.5/17, -2.5/17, -2.5/17, 8.5/17, -3.5/17, -3.5/17}, - } - }, - tiles = { - "throwing_arrow.png", "throwing_arrow.png", "throwing_arrow_back.png", - "throwing_arrow_front.png", "throwing_arrow_2.png", "throwing_arrow.png" - }, - groups = {not_in_creative_inventory=1}, -}) - -minetest.register_craft({ - output = 'throwing:bow', - recipe = { - {'', 'default:wood', 'farming:string'}, - {'default:wood', '', 'farming:string'}, - {'', 'default:wood', 'farming:string'}, - } -}) - -minetest.register_craftitem("throwing:arrow", { - description = "Arrow", - inventory_image = "throwing_arrow_inv.png", -}) - -minetest.register_craft({ - output = 'throwing:arrow 4', - recipe = { - {'fire:flint_and_steel'}, - {'default:stick'}, - {'default:paper'} - } -}) - --- Legacy support - -minetest.register_entity("throwing:arrow_entity", { - is_visible = false, - on_activate = function(self) - self.object:remove() - end -}) - -minetest.register_alias("throwing:bow_0", "throwing:bow_arrow") -minetest.register_alias("throwing:bow_1", "throwing:bow_arrow") -minetest.register_alias("throwing:bow_2", "throwing:bow_arrow") diff --git a/games/default/files/throwing/sounds/throwing_sound.ogg b/games/default/files/throwing/sounds/throwing_sound.ogg deleted file mode 100644 index c8911e5fe..000000000 Binary files a/games/default/files/throwing/sounds/throwing_sound.ogg and /dev/null differ diff --git a/games/default/files/throwing/textures/throwing_arrow.png b/games/default/files/throwing/textures/throwing_arrow.png deleted file mode 100644 index bdaa22e8a..000000000 Binary files a/games/default/files/throwing/textures/throwing_arrow.png and /dev/null differ diff --git a/games/default/files/throwing/textures/throwing_arrow_2.png b/games/default/files/throwing/textures/throwing_arrow_2.png deleted file mode 100644 index 95138f1de..000000000 Binary files a/games/default/files/throwing/textures/throwing_arrow_2.png and /dev/null differ diff --git a/games/default/files/throwing/textures/throwing_arrow_back.png b/games/default/files/throwing/textures/throwing_arrow_back.png deleted file mode 100644 index a559e556d..000000000 Binary files a/games/default/files/throwing/textures/throwing_arrow_back.png and /dev/null differ diff --git a/games/default/files/throwing/textures/throwing_arrow_front.png b/games/default/files/throwing/textures/throwing_arrow_front.png deleted file mode 100644 index dba156f38..000000000 Binary files a/games/default/files/throwing/textures/throwing_arrow_front.png and /dev/null differ diff --git a/games/default/files/throwing/textures/throwing_arrow_inv.png b/games/default/files/throwing/textures/throwing_arrow_inv.png deleted file mode 100644 index 4f9e81b6b..000000000 Binary files a/games/default/files/throwing/textures/throwing_arrow_inv.png and /dev/null differ diff --git a/games/default/files/throwing/textures/throwing_bow.png b/games/default/files/throwing/textures/throwing_bow.png deleted file mode 100644 index bd9387a21..000000000 Binary files a/games/default/files/throwing/textures/throwing_bow.png and /dev/null differ diff --git a/games/default/files/throwing/textures/throwing_bow_arrow.png b/games/default/files/throwing/textures/throwing_bow_arrow.png deleted file mode 100644 index 704eef3e1..000000000 Binary files a/games/default/files/throwing/textures/throwing_bow_arrow.png and /dev/null differ diff --git a/games/default/files/tnt/README.txt b/games/default/files/tnt/README.txt deleted file mode 100644 index dbe7e3cb0..000000000 --- a/games/default/files/tnt/README.txt +++ /dev/null @@ -1,18 +0,0 @@ -MultiCraft Game mod: tnt -======================== - -Introduction: -This mod adds TNT. TNT is a tool to help the player in mining. - -How to use the mod: -Craft gunpowder by placing coal and gravel in the crafting area. The -gunpowder can be used to craft TNT or as fuze for TNT. To craft TNT -surround gunpowder with 4 wood in a + shape. -There are different ways to blow up TNT: -1. Hit it with a torch. -2. Hit a gunpowder fuze that leads to a TNT block with a torch. -3. Activate it with mesecons (fastest way) -Be aware of the damage radius of 7 blocks! - -License: -Source code: PilzAdam. WTFPL diff --git a/games/default/files/tnt/depends.txt b/games/default/files/tnt/depends.txt deleted file mode 100644 index 9060cf5d0..000000000 --- a/games/default/files/tnt/depends.txt +++ /dev/null @@ -1,3 +0,0 @@ - -default -fire diff --git a/games/default/files/tnt/init.lua b/games/default/files/tnt/init.lua deleted file mode 100644 index 1091011f0..000000000 --- a/games/default/files/tnt/init.lua +++ /dev/null @@ -1,186 +0,0 @@ -function spawn_tnt(pos, entname) - minetest.sound_play("", {pos = pos,gain = 1.0,max_hear_distance = 15,}) - return minetest.add_entity(pos, entname) -end - -function activate_if_tnt(nname, np, tnt_np, tntr) - if nname == "tnt:tnt" then - local e = spawn_tnt(np, nname) - e:setvelocity({x=(np.x - tnt_np.x)*5+(tntr / 4), y=(np.y - tnt_np.y)*5+(tntr / 3), z=(np.z - tnt_np.z)*5+(tntr / 4)}) - end -end - -function do_tnt_physics(tnt_np,tntr) - local objs = minetest.get_objects_inside_radius(tnt_np, tntr) - for k, obj in pairs(objs) do - local oname = obj:get_luaentity() - local v = obj:get_velocity() - local p = obj:getpos() - if oname == "tnt:tnt" then - obj:setvelocity({x=(p.x - tnt_np.x) + (tntr / 2) + v.x, y=(p.y - tnt_np.y) + tntr + v.y, z=(p.z - tnt_np.z) + (tntr / 2) + v.z}) - else - if v ~= nil then - obj:setvelocity({x=(p.x - tnt_np.x) + (tntr / 4) + v.x, y=(p.y - tnt_np.y) + (tntr / 2) + v.y, z=(p.z - tnt_np.z) + (tntr / 4) + v.z}) - else - if obj:get_player_name() ~= nil then - obj:set_hp(obj:get_hp() - 1) - end - end - end - end -end - -minetest.register_node("tnt:tnt", { - tiles = {"default_tnt_top.png", "default_tnt_bottom.png", - "default_tnt_side.png", "default_tnt_side.png", - "default_tnt_side.png", "default_tnt_side.png"}, - drop = "", -- Get nothing - material = { - diggability = "not", - }, - stack_max = 64, - description = "TNT", - groups = {mese = 1}, - mesecons = {effector = { - action_on = (function(p, node) - minetest.remove_node(p) - spawn_tnt(p, "tnt:tnt") - minetest.check_for_falling(p) - end), - }}, - on_ignite = function(pos, igniter) - minetest.remove_node(pos) - spawn_tnt(pos, "tnt:tnt") - minetest.check_for_falling(pos) - end, -}) - -minetest.register_on_punchnode(function(p, node) - if node.name == "tnt:tnt" then - minetest.remove_node(p) - spawn_tnt(p, "tnt:tnt") - minetest.check_for_falling(p) - end -end) - -minetest.register_abm({ - label = "TNT ignition", - nodenames = {"tnt:tnt"}, - neighbors = {"fire:basic_flame", "default:lava_source", "default:lava_flowing"}, - interval = 4, - chance = 1, - action = function(pos, node) - minetest.remove_node(pos) - spawn_tnt(pos, "tnt:tnt") - minetest.check_for_falling(pos) - end, -}) - -local TNT_RANGE = 3 -local TNT = { - -- Static definition - physical = true, -- Collides with things - --weight = -100, - collisionbox = {-0.5,-0.5,-0.5, 0.5,0.5,0.5}, - visual = "cube", - textures = {"default_tnt_top.png", "default_tnt_bottom.png", - "default_tnt_side.png", "default_tnt_side.png", - "default_tnt_side.png", "default_tnt_side.png"}, - -- Initial value for our timer - timer = 0, - -- Number of punches required to defuse - health = 1, - blinktimer = 0, - blinkstatus = true,} - -function TNT:on_activate(staticdata) - self.object:setvelocity({x=0, y=4, z=0}) - self.object:setacceleration({x=0, y=-10, z=0}) - self.object:settexturemod("^[brighten") -end - -function TNT:on_step(dtime) - local pos = self.object:getpos() - minetest.add_particle({x=pos.x,y=pos.y+0.5,z=pos.z}, {x=math.random(-.1,.1),y=math.random(1,2),z=math.random(-.1,.1)}, {x=0,y=-0.1,z=0}, math.random(.5,1),math.random(1,2), false, "item_smoke.png") - self.timer = self.timer + dtime - self.blinktimer = self.blinktimer + dtime - if self.timer>3 then - self.blinktimer = self.blinktimer + dtime - if self.timer>5 then - self.blinktimer = self.blinktimer + dtime - self.blinktimer = self.blinktimer + dtime - end - end - if self.blinktimer > 0.5 then - self.blinktimer = self.blinktimer - 0.5 - if self.blinkstatus then - self.object:settexturemod("") - else - self.object:settexturemod("^[brighten") - end - self.blinkstatus = not self.blinkstatus - end - if self.timer > 8 then - local pos = self.object:getpos() - pos.x = math.floor(pos.x+0.5) - pos.y = math.floor(pos.y+0.5) - pos.z = math.floor(pos.z+0.5) - do_tnt_physics(pos, TNT_RANGE) - local meta = minetest.get_meta(pos) - minetest.sound_play("tnt_explode", {pos = pos,gain = 1.0,max_hear_distance = 16,}) - local nn = core.get_node(pos).name - if nn == "default:water_source" or nn == "default:water_flowing" or - nn == "default:bedrock" or nn == "protector:display" or - nn == "ignore" or core.is_protected(pos, "tnt") then - -- Cancel the Explosion - self.object:remove() - return - end - for x=-TNT_RANGE,TNT_RANGE do - for y=-TNT_RANGE,TNT_RANGE do - for z=-TNT_RANGE,TNT_RANGE do - if x*x+y*y+z*z <= TNT_RANGE * TNT_RANGE + TNT_RANGE then - local np={x=pos.x+x,y=pos.y+y,z=pos.z+z} - local n = core.get_node_or_nil(np) - if n and n.name ~= "air" and n.name ~= "default:obsidian" and - n.name ~= "default:bedrock" and n.name ~= "protector:protect" then - activate_if_tnt(n.name, np, pos, 3) - minetest.remove_node(np) - minetest.check_for_falling(np) - if n.name ~= "tnt:tnt" and math.random() > 0.9 then - local drop = minetest.get_node_drops(n.name, "") - for _,item in ipairs(drop) do - if type(item) == "string" then - if math.random(1,100) > 40 then - local obj = minetest.add_item(np, item) - end - end - end - end - end - end - end - end - self.object:remove() - end - end -end - -function TNT:on_punch(hitter) - self.health = self.health - 1 - if self.health <= 0 then - self.object:remove() - hitter:get_inventory():add_item("main", "tnt:tnt") - end -end - -minetest.register_entity("tnt:tnt", TNT) - -minetest.register_craft({ - output = "tnt:tnt", - recipe = { - {"default:gunpowder","default:sand","default:gunpowder"}, - {"default:sand","default:gunpowder","default:sand"}, - {"default:gunpowder","default:sand","default:gunpowder"} - } -}) diff --git a/games/default/files/tnt/sounds/tnt_explode.ogg b/games/default/files/tnt/sounds/tnt_explode.ogg deleted file mode 100644 index a414ea046..000000000 Binary files a/games/default/files/tnt/sounds/tnt_explode.ogg and /dev/null differ diff --git a/games/default/files/tnt/textures/default_tnt_bottom.png b/games/default/files/tnt/textures/default_tnt_bottom.png deleted file mode 100644 index 57c659292..000000000 Binary files a/games/default/files/tnt/textures/default_tnt_bottom.png and /dev/null differ diff --git a/games/default/files/tnt/textures/default_tnt_side.png b/games/default/files/tnt/textures/default_tnt_side.png deleted file mode 100644 index 6a0e8c63d..000000000 Binary files a/games/default/files/tnt/textures/default_tnt_side.png and /dev/null differ diff --git a/games/default/files/tnt/textures/default_tnt_top.png b/games/default/files/tnt/textures/default_tnt_top.png deleted file mode 100644 index 90d49822c..000000000 Binary files a/games/default/files/tnt/textures/default_tnt_top.png and /dev/null differ diff --git a/games/default/files/vessels/README.txt b/games/default/files/vessels/README.txt deleted file mode 100644 index c758b8caf..000000000 --- a/games/default/files/vessels/README.txt +++ /dev/null @@ -1,9 +0,0 @@ -MultiCraft Game mod: vessels -========================== -See license.txt for license information. - -Authors of source code ----------------------- -Originally by Vanessa Ezekowitz (LGPLv3.0+) -Modified by Perttu Ahola (LGPLv3.0+) -Various Minetest developers and contributors (LGPLv3.0+) diff --git a/games/default/files/vessels/depends.txt b/games/default/files/vessels/depends.txt deleted file mode 100644 index 4ad96d515..000000000 --- a/games/default/files/vessels/depends.txt +++ /dev/null @@ -1 +0,0 @@ -default diff --git a/games/default/files/vessels/init.lua b/games/default/files/vessels/init.lua deleted file mode 100644 index 29d2ec838..000000000 --- a/games/default/files/vessels/init.lua +++ /dev/null @@ -1,107 +0,0 @@ -local vessels_shelf_formspec = - "size[9,7;]" .. - "list[context;vessels;0,0.3;9,2;]" .. - "list[current_player;main;0,2.85;9,1;]" .. - "list[current_player;main;0,4.08;9,3;9]" .. - "listring[context;vessels]" .. - "listring[current_player;main]" - -local function get_vessels_shelf_formspec(inv) - local formspec = vessels_shelf_formspec - local invlist = inv and inv:get_list("vessels") - return formspec -end - -minetest.register_node("vessels:shelf", { - description = "Potion Shelf", - tiles = {"default_wood.png", "default_wood.png", "default_wood.png", - "default_wood.png", "vessels_shelf.png", "vessels_shelf.png"}, - paramtype2 = "facedir", - is_ground_content = false, - groups = {choppy = 3, oddly_breakable_by_hand = 2, flammable = 3}, - sounds = default.node_sound_wood_defaults(), - - on_construct = function(pos) - local meta = minetest.get_meta(pos) - meta:set_string("formspec", get_vessels_shelf_formspec(nil)) - local inv = meta:get_inventory() - inv:set_size("vessels", 9 * 2) - end, - can_dig = function(pos,player) - local inv = minetest.get_meta(pos):get_inventory() - return inv:is_empty("vessels") - end, - allow_metadata_inventory_put = function(pos, listname, index, stack, player) - if minetest.get_item_group(stack:get_name(), "vessel") ~= 0 then - return stack:get_count() - end - return 0 - end, - on_metadata_inventory_move = function(pos, from_list, from_index, to_list, to_index, count, player) - minetest.log("action", player:get_player_name() .. - " moves stuff in vessels shelf at ".. minetest.pos_to_string(pos)) - local meta = minetest.get_meta(pos) - meta:set_string("formspec", get_vessels_shelf_formspec(meta:get_inventory())) - end, - on_metadata_inventory_put = function(pos, listname, index, stack, player) - minetest.log("action", player:get_player_name() .. - " moves stuff to vessels shelf at ".. minetest.pos_to_string(pos)) - local meta = minetest.get_meta(pos) - meta:set_string("formspec", get_vessels_shelf_formspec(meta:get_inventory())) - end, - on_metadata_inventory_take = function(pos, listname, index, stack, player) - minetest.log("action", player:get_player_name() .. - " takes stuff from vessels shelf at ".. minetest.pos_to_string(pos)) - local meta = minetest.get_meta(pos) - meta:set_string("formspec", get_vessels_shelf_formspec(meta:get_inventory())) - end, - on_blast = function(pos) - local drops = {} - default.get_inventory_drops(pos, "vessels", drops) - drops[#drops + 1] = "vessels:shelf" - minetest.remove_node(pos) - return drops - end, -}) - -minetest.register_craft({ - output = "vessels:shelf", - recipe = { - {"group:wood", "group:wood", "group:wood"}, - {"group:vessel", "group:vessel", "group:vessel"}, - {"group:wood", "group:wood", "group:wood"}, - } -}) - -minetest.register_node("vessels:glass_bottle", { - description = "Empty Glass Bottle", - drawtype = "plantlike", - tiles = {"vessels_glass_bottle.png"}, - inventory_image = "vessels_glass_bottle.png", - paramtype = "light", - is_ground_content = false, - walkable = false, - selection_box = { - type = "fixed", - fixed = {-0.25, -0.5, -0.25, 0.25, 0.3, 0.25} - }, - groups = {vessel = 1, dig_immediate = 3, attached_node = 1}, - sounds = default.node_sound_glass_defaults(), -}) - -minetest.register_alias("potions:glass_bottle", "vessels:glass_bottle") - -minetest.register_craft( { - output = "vessels:glass_bottle 4", - recipe = { - {"", "", ""}, - {"default:glass", "", "default:glass"}, - {"", "default:glass", ""} - } -}) - -minetest.register_craft({ - type = "fuel", - recipe = "vessels:shelf", - burntime = 30, -}) diff --git a/games/default/files/vessels/license.txt b/games/default/files/vessels/license.txt deleted file mode 100644 index ca16e28c0..000000000 --- a/games/default/files/vessels/license.txt +++ /dev/null @@ -1,16 +0,0 @@ -License of source code ----------------------- - -GNU Lesser General Public License, version 3.0 -Copyright (C) 2012-2016 Vanessa Ezekowitz -Copyright (C) 2012-2016 celeron55, Perttu Ahola -Copyright (C) 2012-2016 Various Minetest developers and contributors - -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: -https://www.gnu.org/licenses/lgpl-3.0.html diff --git a/games/default/files/vessels/textures/vessels_glass_bottle.png b/games/default/files/vessels/textures/vessels_glass_bottle.png deleted file mode 100644 index bce845271..000000000 Binary files a/games/default/files/vessels/textures/vessels_glass_bottle.png and /dev/null differ diff --git a/games/default/files/vessels/textures/vessels_shelf.png b/games/default/files/vessels/textures/vessels_shelf.png deleted file mode 100644 index e903067e7..000000000 Binary files a/games/default/files/vessels/textures/vessels_shelf.png and /dev/null differ diff --git a/games/default/files/wallet/init.lua b/games/default/files/wallet/init.lua deleted file mode 100644 index 47a4564ec..000000000 --- a/games/default/files/wallet/init.lua +++ /dev/null @@ -1,317 +0,0 @@ -local function rshift(x, by) - return math.floor(x / 2 ^ by) -end - -local directions = { - {x = 1, y = 0, z = 0}, - {x = 0, y = 0, z = 1}, - {x = -1, y = 0, z = 0}, - {x = 0, y = 0, z = -1}, - {x = 0, y = -1, z = 0}, -} - -function update_wall(pos) - local typewall = 0 - - if minetest.get_node(pos).name:find("wallet:wall") == 1 then - typewall = typewall + 1 - end - if minetest.get_node(pos).name:find("wallet:wallmossy") == 1 then - typewall = typewall + 1 - end - - if typewall == 0 then - return - end - - local sum = 0 - for i = 1, 4 do - local node = minetest.get_node({x = pos.x + directions[i].x, y = pos.y + directions[i].y, z = pos.z + directions[i].z}) - if minetest.registered_nodes[node.name].walkable then - sum = sum + 2 ^ (i - 1) - end - end - - local node = minetest.get_node({x = pos.x, y = pos.y+1, z = pos.z}) - if sum == 5 or sum == 10 then - if minetest.registered_nodes[node.name].walkable or node.name == "torches:floor" then - sum = sum + 11 - end - end - - if sum == 0 then - sum = 15 - end - - if typewall == 1 then - minetest.add_node(pos, {name = "wallet:wall_"..sum}) - else - minetest.add_node(pos, {name = "wallet:wallmossy_"..sum}) - end - -end - -function update_wall_global(pos) - for i = 1,5 do - update_wall({x = pos.x + directions[i].x, y = pos.y + directions[i].y, z = pos.z + directions[i].z}) - end -end - -local half_blocks = { - {4/16, -0.5, -3/16, 0.5, 5/16, 3/16}, - {-3/16, -0.5, 4/16, 3/16, 5/16, 0.5}, - {-0.5, -0.5, -3/16, -4/16, 5/16, 3/16}, - {-3/16, -0.5, -0.5, 3/16, 5/16, -4/16} -} - -local pillar = {-4/16, -0.5, -4/16, 4/16, 0.5, 4/16} - -local full_blocks = { - {-0.5, -0.5, -3/16, 0.5, 5/16, 3/16}, - {-3/16, -0.5, -0.5, 3/16, 5/16, 0.5} -} - -local collision = { - {-4/16, -1, -4/16, 4/16, 1, 4/16} -} - -for i = 0, 15 do - local need = {} - local need_pillar = false - for j = 1, 4 do - if rshift(i, j - 1) % 2 == 1 then - need[j] = true - end - end - - local take = {} - if need[1] == true and need[3] == true then - need[1] = nil - need[3] = nil - table.insert(take, full_blocks[1]) - end - if need[2] == true and need[4] == true then - need[2] = nil - need[4] = nil - table.insert(take, full_blocks[2]) - end - for k in pairs(need) do - table.insert(take, half_blocks[k]) - need_pillar = true - end - if i == 15 or i == 0 then need_pillar = true end - if need_pillar then table.insert(take, pillar) end - - minetest.register_node("wallet:wall_"..i, { - collision_box = { - type = 'fixed', - fixed = collision - }, - drawtype = "nodebox", - tiles = {"default_cobble.png"}, - paramtype = "light", - groups = {cracky = 3, wall = 1, stone = 2}, - drop = "wallet:wall", - node_box = { - type = "fixed", - fixed = take - }, - }) -end - -minetest.register_node("wallet:wall_0", { - drawtype = "nodebox", - collision_box = { - type = 'fixed', - fixed = collision - }, - tiles = {"default_cobble.png"}, - paramtype = "light", - groups = {cracky = 3, wall = 1, stone = 2}, - drop = "wallet:wall", - node_box = { - type = "fixed", - fixed = pillar - }, -}) - -minetest.register_node("wallet:wall_16", { - drawtype = "nodebox", - collision_box = { - type = 'fixed', - fixed = collision - }, - tiles = {"default_cobble.png"}, - paramtype = "light", - groups = {cracky = 3, wall = 1, stone = 2}, - drop = "wallet:wall", - node_box = { - type = "fixed", - fixed = {pillar, full_blocks[1]} - }, -}) - -minetest.register_node("wallet:wall_21", { - drawtype = "nodebox", - collision_box = { - type = 'fixed', - fixed = collision - }, - tiles = {"default_cobble.png"}, - paramtype = "light", - groups = {cracky = 3, wall = 1, stone = 2}, - drop = "wallet:wall", - node_box = { - type = "fixed", - fixed = {pillar, full_blocks[2]} - }, -}) - -minetest.register_node("wallet:wall", { - description = "Cobblestone Wall", - paramtype = "light", - tiles = {"default_cobble.png"}, - inventory_image = "cobblestone_wallet.png", - groups = {cracky = 3, wall = 1, stone = 2}, - drawtype = "nodebox", - node_box = { - type = "fixed", - fixed = pillar - }, - collision_box = { - type = 'fixed', - fixed = collision - }, - on_construct = update_wall -}) - - -minetest.register_craft({ - output = 'wallet:wall 6', - recipe = { - {'default:cobble', 'default:cobble', 'default:cobble'}, - {'default:cobble', 'default:cobble', 'default:cobble'} - } -}) - --- Mossy wallet - -for i = 0, 15 do - local need = {} - local need_pillar = false - for j = 1, 4 do - if rshift(i, j - 1) % 2 == 1 then - need[j] = true - end - end - - local take = {} - if need[1] == true and need[3] == true then - need[1] = nil - need[3] = nil - table.insert(take, full_blocks[1]) - end - if need[2] == true and need[4] == true then - need[2] = nil - need[4] = nil - table.insert(take, full_blocks[2]) - end - for k in pairs(need) do - table.insert(take, half_blocks[k]) - need_pillar = true - end - if i == 15 or i == 0 then need_pillar = true end - if need_pillar then table.insert(take, pillar) end - - minetest.register_node("wallet:wallmossy_"..i, { - drawtype = "nodebox", - collision_box = { - type = 'fixed', - fixed = collision - }, - tiles = {"default_mossycobble.png"}, - paramtype = "light", - groups = {cracky = 3, wall = 1, stone = 2}, - drop = "wallet:wallmossy", - node_box = { - type = "fixed", - fixed = take - }, - }) -end - -minetest.register_node("wallet:wallmossy_0", { - drawtype = "nodebox", - collision_box = { - type = 'fixed', - fixed = collision - }, - tiles = {"default_mossycobble.png"}, - paramtype = "light", - groups = {cracky = 3, wall = 1, stone = 2}, - drop = "wallet:wallmossy", - node_box = { - type = "fixed", - fixed = pillar - }, -}) - -minetest.register_node("wallet:wallmossy_16", { - drawtype = "nodebox", - collision_box = { - type = 'fixed', - fixed = collision - }, - tiles = {"default_mossycobble.png"}, - paramtype = "light", - groups = {cracky = 3, wall = 1, stone = 2}, - drop = "wallet:wallmossy", - node_box = { - type = "fixed", - fixed = {pillar, full_blocks[1]} - }, -}) - -minetest.register_node("wallet:wallmossy_21", { - drawtype = "nodebox", - collision_box = { - type = 'fixed', - fixed = collision - }, - tiles = {"default_mossycobble.png"}, - paramtype = "light", - groups = {cracky = 3, wall = 1, stone = 2}, - drop = "wallet:wallmossy", - node_box = { - type = "fixed", - fixed = {pillar, full_blocks[2]} - }, -}) - -minetest.register_node("wallet:wallmossy", { - description = "Mossy Cobblestone Wall", - paramtype = "light", - collision_box = { - type = 'fixed', - fixed = collision - }, - tiles = {"default_mossycobble.png"}, - inventory_image = "cobblestonemossy_wallet.png", - groups = {cracky = 3, wall = 1, stone = 2}, - drawtype = "nodebox", - node_box = { - type = "fixed", - fixed = pillar - }, - on_construct = update_wall -}) -minetest.register_craft({ - output = 'wallet:wallmossy 6', - recipe = { - {'default:mossycobble', 'default:mossycobble', 'default:mossycobble'}, - {'default:mossycobble', 'default:mossycobble', 'default:mossycobble'} - } -}) - -minetest.register_on_placenode(update_wall_global) -minetest.register_on_dignode(update_wall_global) diff --git a/games/default/files/wallet/textures/cobblestone_wallet.png b/games/default/files/wallet/textures/cobblestone_wallet.png deleted file mode 100644 index 782a97ad3..000000000 Binary files a/games/default/files/wallet/textures/cobblestone_wallet.png and /dev/null differ diff --git a/games/default/files/wallet/textures/cobblestonemossy_wallet.png b/games/default/files/wallet/textures/cobblestonemossy_wallet.png deleted file mode 100644 index e1d3bfc3e..000000000 Binary files a/games/default/files/wallet/textures/cobblestonemossy_wallet.png and /dev/null differ diff --git a/games/default/files/walls/README.txt b/games/default/files/walls/README.txt deleted file mode 100644 index 0c2f7c2a7..000000000 --- a/games/default/files/walls/README.txt +++ /dev/null @@ -1,7 +0,0 @@ -Minetest Game mod: walls -======================== -See license.txt for license information. - -Authors of source code ----------------------- -Auke Kok (LGPLv3.0+) diff --git a/games/default/files/walls/depends.txt b/games/default/files/walls/depends.txt deleted file mode 100644 index 4ad96d515..000000000 --- a/games/default/files/walls/depends.txt +++ /dev/null @@ -1 +0,0 @@ -default diff --git a/games/default/files/walls/init.lua b/games/default/files/walls/init.lua deleted file mode 100644 index 6928ae0e1..000000000 --- a/games/default/files/walls/init.lua +++ /dev/null @@ -1,45 +0,0 @@ -walls = {} - -walls.register = function(wall_name, wall_desc, wall_texture_table, wall_mat, wall_sounds) - --make wall_texture_table paramenter backwards compatible for mods passing single texture - if type(wall_texture_table) ~= "table" then - wall_texture_table = { wall_texture_table } - end - -- inventory node, and pole-type wall start item - minetest.register_node(wall_name, { - description = wall_desc, - drawtype = "nodebox", - node_box = { - type = "connected", - fixed = {{-1/4, -1/2, -1/4, 1/4, 1/2, 1/4}}, - connect_front = {{-3/16, -1/2, -1/2, 3/16, 3/8, -1/4}}, - connect_left = {{-1/2, -1/2, -3/16, -1/4, 3/8, 3/16}}, - connect_back = {{-3/16, -1/2, 1/4, 3/16, 3/8, 1/2}}, - connect_right = {{ 1/4, -1/2, -3/16, 1/2, 3/8, 3/16}}, - }, - connects_to = {"group:wall", "group:stone", "group:fence"}, - paramtype = "light", - is_ground_content = false, - tiles = wall_texture_table, - walkable = true, - groups = {cracky = 3, wall = 1, stone = 2, not_in_creative_inventory = 1}, - sounds = wall_sounds, - }) - - -- crafting recipe - minetest.register_craft({ - output = wall_name .. " 6", - recipe = { - { '', '', '' }, - { wall_mat, wall_mat, wall_mat}, - { wall_mat, wall_mat, wall_mat}, - } - }) - -end - -walls.register("walls:cobble", "Cobblestone Wall", {"default_cobble.png"}, - "default:cobble", default.node_sound_stone_defaults()) - -walls.register("walls:mossycobble", "Mossy Cobblestone Wall", {"default_mossycobble.png"}, - "default:mossycobble", default.node_sound_stone_defaults()) diff --git a/games/default/files/walls/license.txt b/games/default/files/walls/license.txt deleted file mode 100644 index 94b5c0fe2..000000000 --- a/games/default/files/walls/license.txt +++ /dev/null @@ -1,14 +0,0 @@ -License of source code ----------------------- - -GNU Lesser General Public License, version 3.0 -Copyright (C) 2015 Auke Kok - -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: -http://www.gnu.org/licenses/lgpl-3.0.html diff --git a/games/default/files/watch/depends.txt b/games/default/files/watch/depends.txt deleted file mode 100644 index 4ad96d515..000000000 --- a/games/default/files/watch/depends.txt +++ /dev/null @@ -1 +0,0 @@ -default diff --git a/games/default/files/watch/init.lua b/games/default/files/watch/init.lua deleted file mode 100644 index ce1bd661d..000000000 --- a/games/default/files/watch/init.lua +++ /dev/null @@ -1,60 +0,0 @@ -function round(num) - return math.floor(num + 0.5) -end - -minetest.register_playerstep(function(dtime, playernames) - local now = round((minetest.get_timeofday() * 24) % 12) - if now == 12 then now = 0 end - for i, name in ipairs(playernames) do - local player = minetest.get_player_by_name(name) - if player and player:is_player() then - local item = player:get_wielded_item() - if item and string.sub(item:get_name(), 0, 6) == "watch:" then - player:set_wielded_item("watch:"..now) - end - for i,stack in ipairs(player:get_inventory():get_list("main")) do - if i<9 and string.sub(stack:get_name(), 0, 6) == "watch:" then - player:get_inventory():remove_item("main", stack:get_name()) - player:get_inventory():add_item("main", "watch:"..now) - end - end - end - end -end, minetest.is_singleplayer()) -- Force step in singlplayer mode only - -local images = { - "watch_0.png", - "watch_1.png", - "watch_2.png", - "watch_3.png", - "watch_4.png", - "watch_5.png", - "watch_6.png", - "watch_7.png", - "watch_8.png", - "watch_9.png", - "watch_10.png", - "watch_11.png", -} - -local i -for i,img in ipairs(images) do - local inv = 1 - if i == 1 then - inv = 0 - end - minetest.register_tool("watch:"..(i-1), { - description = "Watch", - inventory_image = img, - groups = {not_in_creative_inventory=inv} - }) -end - -minetest.register_craft({ - output = 'watch:0', - recipe = { - {'', 'default:gold_ingot', ''}, - {'default:gold_ingot', 'mesecons:wire_00000000_off', 'default:gold_ingot'}, - {'', 'default:gold_ingot', ''} - }, -}) diff --git a/games/default/files/watch/textures/watch_0.png b/games/default/files/watch/textures/watch_0.png deleted file mode 100644 index e34a9f8ef..000000000 Binary files a/games/default/files/watch/textures/watch_0.png and /dev/null differ diff --git a/games/default/files/watch/textures/watch_1.png b/games/default/files/watch/textures/watch_1.png deleted file mode 100644 index 2427ab0ec..000000000 Binary files a/games/default/files/watch/textures/watch_1.png and /dev/null differ diff --git a/games/default/files/watch/textures/watch_10.png b/games/default/files/watch/textures/watch_10.png deleted file mode 100644 index 191fe8c76..000000000 Binary files a/games/default/files/watch/textures/watch_10.png and /dev/null differ diff --git a/games/default/files/watch/textures/watch_11.png b/games/default/files/watch/textures/watch_11.png deleted file mode 100644 index 686edaeb9..000000000 Binary files a/games/default/files/watch/textures/watch_11.png and /dev/null differ diff --git a/games/default/files/watch/textures/watch_2.png b/games/default/files/watch/textures/watch_2.png deleted file mode 100644 index f4efa90c3..000000000 Binary files a/games/default/files/watch/textures/watch_2.png and /dev/null differ diff --git a/games/default/files/watch/textures/watch_3.png b/games/default/files/watch/textures/watch_3.png deleted file mode 100644 index e22478157..000000000 Binary files a/games/default/files/watch/textures/watch_3.png and /dev/null differ diff --git a/games/default/files/watch/textures/watch_4.png b/games/default/files/watch/textures/watch_4.png deleted file mode 100644 index 32eb98bf2..000000000 Binary files a/games/default/files/watch/textures/watch_4.png and /dev/null differ diff --git a/games/default/files/watch/textures/watch_5.png b/games/default/files/watch/textures/watch_5.png deleted file mode 100644 index 9602146b7..000000000 Binary files a/games/default/files/watch/textures/watch_5.png and /dev/null differ diff --git a/games/default/files/watch/textures/watch_6.png b/games/default/files/watch/textures/watch_6.png deleted file mode 100644 index df10b40a2..000000000 Binary files a/games/default/files/watch/textures/watch_6.png and /dev/null differ diff --git a/games/default/files/watch/textures/watch_7.png b/games/default/files/watch/textures/watch_7.png deleted file mode 100644 index cb1ce7939..000000000 Binary files a/games/default/files/watch/textures/watch_7.png and /dev/null differ diff --git a/games/default/files/watch/textures/watch_8.png b/games/default/files/watch/textures/watch_8.png deleted file mode 100644 index e2ce5e8ad..000000000 Binary files a/games/default/files/watch/textures/watch_8.png and /dev/null differ diff --git a/games/default/files/watch/textures/watch_9.png b/games/default/files/watch/textures/watch_9.png deleted file mode 100644 index 16fa8a24e..000000000 Binary files a/games/default/files/watch/textures/watch_9.png and /dev/null differ diff --git a/games/default/files/wieldview/README.txt b/games/default/files/wieldview/README.txt deleted file mode 100644 index e12ba62eb..000000000 --- a/games/default/files/wieldview/README.txt +++ /dev/null @@ -1,8 +0,0 @@ -MultiCraft Game mod: wieldview -=========================== - -Makes hand wielded items visible to other players. - -Authors of source code ----------------------- -Copyright (C) 2013-2019 Stuart Jones - LGPLv3.0+ (with the permission of the author) diff --git a/games/default/files/wieldview/depends.txt b/games/default/files/wieldview/depends.txt deleted file mode 100644 index 19767971a..000000000 --- a/games/default/files/wieldview/depends.txt +++ /dev/null @@ -1,2 +0,0 @@ -player_api -3d_armor? diff --git a/games/default/files/wieldview/init.lua b/games/default/files/wieldview/init.lua deleted file mode 100644 index c325f3b73..000000000 --- a/games/default/files/wieldview/init.lua +++ /dev/null @@ -1,94 +0,0 @@ -local update_time = 1 -local has_armor = minetest.get_modpath("3d_armor") -local time = 0 - -local wield_tiles = {} -local wield_cubes = {} -local wield_items = {} -local wield_cycle = {} - -local function init_wield_items() - for name, def in pairs(minetest.registered_items) do - if def.inventory_image and def.inventory_image ~= "" then - wield_tiles[name] = def.inventory_image - elseif def.tiles and type(def.tiles[1]) == "string" and - def.tiles[1] ~= "" and def.drawtype and - (def.drawtype == "normal" or def.drawtype:sub(1,8) == "allfaces" or - def.drawtype:sub(1,5) == "glass" or def.drawtype == "liquid") then - if not (def.tiles[3] ~= "" and type(def.tiles[3]) == "string") then - wield_cubes[name] = def.tiles[1] - else - wield_cubes[name] = def.tiles[3] - end - end - end -end - -local function update_player_visuals(player, item) - local name = player:get_player_name() - local animation = player_api.get_animation(player) or {} - local textures = animation.textures or {} - local skin = textures[1] and textures[1] or "character.png" - local wield_tile = wield_tiles[item] or "blank.png" - if not minetest.registered_tools[item] then - wield_tile = wield_tile.."^[transformR270" - end - local wield_cube = wield_cubes[item] or "blank.png" - if has_armor then - armor.textures[name].wielditem = wield_tile - armor.textures[name].cube = wield_cube - armor:update_player_visuals(player) - else - player_api.set_textures(player, {skin, "blank.png", wield_tile, wield_cube}) - end -end - -local function update_wielded_item(dtime, name) - wield_cycle[name] = wield_cycle[name] or 0 - wield_cycle[name] = wield_cycle[name] + dtime - if wield_cycle[name] < update_time then - return - end - local player = minetest.get_player_by_name(name) - if not player or not player:is_player() then - return - end - local stack = player:get_wielded_item() - local item = stack:get_name() - if not item then - return - end - if wield_items[name] and wield_items[name] == item then - return - else - update_player_visuals(player, item) - end - wield_items[name] = item - wield_cycle[name] = 0 -end - -if PLATFORM ~= "Android" or PLATFORM ~= "iOS" then - minetest.register_on_joinplayer(function(player) - local name = player:get_player_name() - if name then - wield_items[name] = "" - wield_cycle[name] = 0 - minetest.after(0, function() - update_wielded_item(0, name) - end) - end - end) - minetest.register_on_leaveplayer(function(player) - local name = player:get_player_name() - if name then - wield_items[name] = "" - wield_cycle[name] = 0 - end - end) - minetest.register_playerstep(function(dtime, playernames) - for _, name in pairs(playernames) do - update_wielded_item(dtime, name) - end - end) - minetest.after(0, init_wield_items) -end diff --git a/games/default/files/wool/README.txt b/games/default/files/wool/README.txt deleted file mode 100644 index f8069e19e..000000000 --- a/games/default/files/wool/README.txt +++ /dev/null @@ -1,8 +0,0 @@ -MultiCraft Game mod: wool -======================= -See license.txt for license information. -Authors of source code ----------------------- -Originally by Perttu Ahola (celeron55) (MIT) -TenPlus1 -Various Minetest developers and contributors (MIT) diff --git a/games/default/files/wool/depends.txt b/games/default/files/wool/depends.txt deleted file mode 100644 index 2717befbe..000000000 --- a/games/default/files/wool/depends.txt +++ /dev/null @@ -1,2 +0,0 @@ -default -dye diff --git a/games/default/files/wool/init.lua b/games/default/files/wool/init.lua deleted file mode 100644 index 2d24135e8..000000000 --- a/games/default/files/wool/init.lua +++ /dev/null @@ -1,20 +0,0 @@ -local dyes = dye.dyes - -for i = 1, #dyes do - local name, desc = unpack(dyes[i]) - - minetest.register_node("wool:" .. name, { - description = desc .. " Wool", - tiles = {"wool_" .. name .. ".png"}, - is_ground_content = false, - groups = {snappy = 2, choppy = 2, oddly_breakable_by_hand = 3, - flammable = 3, wool = 1}, - sounds = default.node_sound_wool_defaults(), - }) - - minetest.register_craft({ - type = "shapeless", - output = "wool:" .. name, - recipe = {"group:dye,color_" .. name, "group:wool"}, - }) -end diff --git a/games/default/files/wool/textures/wool_black.png b/games/default/files/wool/textures/wool_black.png deleted file mode 100644 index 396f774c8..000000000 Binary files a/games/default/files/wool/textures/wool_black.png and /dev/null differ diff --git a/games/default/files/wool/textures/wool_blue.png b/games/default/files/wool/textures/wool_blue.png deleted file mode 100644 index 0cdef9714..000000000 Binary files a/games/default/files/wool/textures/wool_blue.png and /dev/null differ diff --git a/games/default/files/wool/textures/wool_brown.png b/games/default/files/wool/textures/wool_brown.png deleted file mode 100644 index 30899a8b3..000000000 Binary files a/games/default/files/wool/textures/wool_brown.png and /dev/null differ diff --git a/games/default/files/wool/textures/wool_cyan.png b/games/default/files/wool/textures/wool_cyan.png deleted file mode 100644 index 798b962e7..000000000 Binary files a/games/default/files/wool/textures/wool_cyan.png and /dev/null differ diff --git a/games/default/files/wool/textures/wool_dark_green.png b/games/default/files/wool/textures/wool_dark_green.png deleted file mode 100644 index 1797f90be..000000000 Binary files a/games/default/files/wool/textures/wool_dark_green.png and /dev/null differ diff --git a/games/default/files/wool/textures/wool_dark_grey.png b/games/default/files/wool/textures/wool_dark_grey.png deleted file mode 100644 index 598de094e..000000000 Binary files a/games/default/files/wool/textures/wool_dark_grey.png and /dev/null differ diff --git a/games/default/files/wool/textures/wool_green.png b/games/default/files/wool/textures/wool_green.png deleted file mode 100644 index 4de3b9c6c..000000000 Binary files a/games/default/files/wool/textures/wool_green.png and /dev/null differ diff --git a/games/default/files/wool/textures/wool_grey.png b/games/default/files/wool/textures/wool_grey.png deleted file mode 100644 index 7188ac0c5..000000000 Binary files a/games/default/files/wool/textures/wool_grey.png and /dev/null differ diff --git a/games/default/files/wool/textures/wool_magenta.png b/games/default/files/wool/textures/wool_magenta.png deleted file mode 100644 index 27b93681c..000000000 Binary files a/games/default/files/wool/textures/wool_magenta.png and /dev/null differ diff --git a/games/default/files/wool/textures/wool_orange.png b/games/default/files/wool/textures/wool_orange.png deleted file mode 100644 index 8f6f9e7d9..000000000 Binary files a/games/default/files/wool/textures/wool_orange.png and /dev/null differ diff --git a/games/default/files/wool/textures/wool_pink.png b/games/default/files/wool/textures/wool_pink.png deleted file mode 100644 index a7001c389..000000000 Binary files a/games/default/files/wool/textures/wool_pink.png and /dev/null differ diff --git a/games/default/files/wool/textures/wool_red.png b/games/default/files/wool/textures/wool_red.png deleted file mode 100644 index 0841703d5..000000000 Binary files a/games/default/files/wool/textures/wool_red.png and /dev/null differ diff --git a/games/default/files/wool/textures/wool_violet.png b/games/default/files/wool/textures/wool_violet.png deleted file mode 100644 index 54cb726aa..000000000 Binary files a/games/default/files/wool/textures/wool_violet.png and /dev/null differ diff --git a/games/default/files/wool/textures/wool_white.png b/games/default/files/wool/textures/wool_white.png deleted file mode 100644 index ca0d3f2f3..000000000 Binary files a/games/default/files/wool/textures/wool_white.png and /dev/null differ diff --git a/games/default/files/wool/textures/wool_yellow.png b/games/default/files/wool/textures/wool_yellow.png deleted file mode 100644 index f39c1d0b1..000000000 Binary files a/games/default/files/wool/textures/wool_yellow.png and /dev/null differ diff --git a/games/default/files/workbench/README.md b/games/default/files/workbench/README.md deleted file mode 100644 index c6bb67309..000000000 --- a/games/default/files/workbench/README.md +++ /dev/null @@ -1,24 +0,0 @@ -MultiCraft Game mod: workbench -============================== - -##### A mod adding a Workbench and Stairs to MultiCraft. ##### -##### The Workbench can cut up to 12 shapes, repair your tools, craft items and store. ##### - -##### This mod is originating from [X-Decor](https://github.com/kilbith/xdecor). ##### - -License of source code: ------------------------ -Copyright (C) 2015-2017 kilbith - -Copyright (C) 2019 MultiCraft Development Team - -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. - -http://www.gnu.org/licenses/lgpl-3.0.html - -All 16x16 textures: WTFPL (credits: Gambit) - -workbench_slope.obj from Calinou moreblocks mod (https://github.com/minetest-mods/moreblocks/) licensed under CC BY-SA 3.0 Unported. diff --git a/games/default/files/workbench/depends.txt b/games/default/files/workbench/depends.txt deleted file mode 100644 index 7fd81286c..000000000 --- a/games/default/files/workbench/depends.txt +++ /dev/null @@ -1,3 +0,0 @@ -default -wool -farming? diff --git a/games/default/files/workbench/init.lua b/games/default/files/workbench/init.lua deleted file mode 100644 index 63ca224a5..000000000 --- a/games/default/files/workbench/init.lua +++ /dev/null @@ -1,407 +0,0 @@ -local workbench = {} -local min, ceil = math.min, math.ceil - --- Nodes allowed to be cut --- Only the regular, solid blocks without metas or explosivity can be cut -local nodes = {} -for node, def in pairs(minetest.registered_nodes) do - if (def.drawtype == "normal" or def.drawtype:sub(1,5) == "glass" or def.drawtype:sub(1,8) == "allfaces") and - (def.tiles and type(def.tiles[1]) == "string") and - not def.on_rightclick and - not def.on_blast and - not def.on_metadata_inventory_put and - not (def.groups.not_in_creative_inventory == 1) and - not (def.groups.not_cuttable == 1) and - not def.groups.colorglass and - not def.mesecons - then - nodes[#nodes+1] = node - end -end - -setmetatable(nodes, { - __concat = function(t1, t2) - for i=1, #t2 do - t1[#t1+1] = t2[i] - end - return t1 - end -}) - -local valid_block = {} -for _, v in pairs(nodes) do - valid_block[v] = true -end - --- Nodeboxes definitions -workbench.defs = { - -- Name Yield X Y Z W H L - {"micropanel", 8, { 0, 0, 0, 16, 1, 8 }}, - {"microslab", 4, { 0, 0, 0, 16, 1, 16 }}, - {"thinstair", 4, { 0, 7, 0, 16, 1, 8 }, - { 0, 15, 8, 16, 1, 8 }}, - {"cube", 4, { 0, 0, 0, 8, 8, 8 }}, - {"panel", 4, { 0, 0, 0, 16, 8, 8 }}, - {"slab", 2, { 0, 0, 0, 16, 8, 16 }}, - {"doublepanel", 2, { 0, 0, 0, 16, 8, 8 }, - { 0, 8, 8, 16, 8, 8 }}, - {"halfstair", 2, { 0, 0, 0, 8, 8, 16 }, - { 0, 8, 8, 8, 8, 8 }}, - {"outerstair", 1, { 0, 0, 0, 16, 8, 16 }, - { 0, 8, 8, 8, 8, 8 }}, - {"stair", 1, { 0, 0, 0, 16, 8, 16 }, - { 0, 8, 8, 16, 8, 8 }}, - {"slope", 2, nil }, - {"innerstair", 1, { 0, 0, 0, 16, 8, 16 }, - { 0, 8, 8, 16, 8, 8 }, - { 0, 8, 0, 8, 8, 8 }} -} - --- Tools allowed to be repaired -function workbench:repairable(stack) - local tools = {"pick", "axe", "shovel", "sword", "hoe", "armor", "shield"} - for _, t in pairs(tools) do - if stack:find(t) then return true end - end - return false -end - -function workbench:get_output(inv, input, name) - local output = {} - for _, n in pairs(self.defs) do - local count = min(n[2] * input:get_count(), input:get_stack_max()) - local item = "stairs:"..n[1].."_"..name:gsub(":", "_") - output[#output+1] = item.." "..count - end - inv:set_list("forms", output) -end - --- Thanks to kaeza for this function -function workbench:pixelbox(size, boxes) - local fixed = {} - for _, box in pairs(boxes) do - -- `unpack` has been changed to `table.unpack` in newest Lua versions - local x, y, z, w, h, l = unpack(box) - fixed[#fixed+1] = { - (x / size) - 0.5, - (y / size) - 0.5, - (z / size) - 0.5, - ((x + w) / size) - 0.5, - ((y + h) / size) - 0.5, - ((z + l) / size) - 0.5 - } - end - return {type="fixed", fixed=fixed} -end - -local formspecs = { - -- Workbench formspec - [[ background[-0.2,-0.26;9.41,9.49;formspec_workbench_crafting.png] - button[0,0;2,1;creating;Creating] - button[0,1;2,1;anvil;Repairing] - list[current_player;craft;2,0.5;3,3;] - list[current_player;craftpreview;6.055,1.505;1,1;] ]], - -- Creating formspec - [[ background[-0.2,-0.26;9.41,9.49;formspec_workbench_creating.png] - button[0,0;1.5,1;back;< Back] - image[0,1.52;1,1;workbench_saw.png] - list[context;input;1.195,1.505;1,1;] - list[context;forms;4.01,0.51;4,3;] ]], - -- Repair formspec - [[ background[-0.2,-0.26;9.41,9.49;formspec_workbench_anvil.png] - button[0,0;1.5,1;back;< Back] - image[0,1.52;1,1;workbench_anvil.png] - list[context;tool;1.195,1.505;1,1;] - image[4.04,1.55;1,1;hammer_layout.png] - list[context;hammer;4.06,1.50;1,1;] ]], -} - -function workbench:set_formspec(meta, id) - meta:set_string("formspec", "size[9,8.75;]".. - "background[-0.2,-0.26;9.41,9.49;formspec_inventory.png]" .. - default.gui_bg.. - default.listcolors.. - "image_button_exit[8.4,-0.1;0.75,0.75;close.png;exit;;true;true;]" .. - "list[detached:split;main;8,3.14;1,1;]".. - "list[current_player;main;0.01,4.51;9,3;9]".. - "list[current_player;main;0.01,7.75;9,1;]".. - formspecs[id]) -end - -function workbench.construct(pos) - local meta = minetest.get_meta(pos) - local inv = meta:get_inventory() - - inv:set_size("tool", 1) - inv:set_size("input", 1) - inv:set_size("hammer", 1) - inv:set_size("forms", 4*3) - inv:set_size("storage", 9*3) - - meta:set_string("infotext", "Workbench") - workbench:set_formspec(meta, 1) -end - -function workbench.fields(pos, _, fields, sender) - local meta = minetest.get_meta(pos) - if fields.back then workbench:set_formspec(meta, 1) - elseif fields.creating then workbench:set_formspec(meta, 2) - elseif fields.anvil then workbench:set_formspec(meta, 3) - elseif fields.quit and pos and sender then - local inv = sender:get_inventory() - if inv then - for i, stack in ipairs(inv:get_list("craft")) do - minetest.item_drop(stack, nil, pos) - stack:clear() - inv:set_stack("craft", i, stack) - end - end - inv = meta:get_inventory() - if inv then - for _, name in pairs({"input", "tool", "hammer"}) do - local stack = inv:get_stack(name, 1) - minetest.item_drop(stack, nil, pos) - stack:clear() - inv:set_stack(name, 1, stack) - end - for i, stack in ipairs(inv:get_list("forms")) do - stack:clear() - inv:set_stack("forms", i, stack) - end - end - end -end - -function workbench.timer(pos) - local timer = minetest.get_node_timer(pos) - local inv = minetest.get_meta(pos):get_inventory() - local tool = inv:get_stack("tool", 1) - local hammer = inv:get_stack("hammer", 1) - - if tool:is_empty() or hammer:is_empty() or tool:get_wear() == 0 then - timer:stop() - return - end - - -- Tool's wearing range: 0-65535 | 0 = new condition - tool:add_wear(-500) - hammer:add_wear(700) - - inv:set_stack("tool", 1, tool) - inv:set_stack("hammer", 1, hammer) - return true -end - -function workbench.put(_, listname, _, stack) - local stackname = stack:get_name() - if (listname == "tool" and stack:get_wear() > 0 and - workbench:repairable(stackname)) or - (listname == "input" and valid_block[stackname]) or - (listname == "hammer" and stackname == "workbench:hammer") or - listname == "storage" then - return stack:get_count() - end - return 0 -end - -function workbench.move(_, from_list, _, to_list, _, count) - return (to_list == "storage" and from_list ~= "forms") and count or 0 -end - -function workbench.on_put(pos, listname, _, stack) - local inv = minetest.get_meta(pos):get_inventory() - if listname == "input" then - local input = inv:get_stack("input", 1) - workbench:get_output(inv, input, stack:get_name()) - elseif listname == "tool" or listname == "hammer" then - local timer = minetest.get_node_timer(pos) - timer:start(0.5) - end -end - -function workbench.on_take(pos, listname, index, stack, player) - local inv = minetest.get_meta(pos):get_inventory() - local input = inv:get_stack("input", 1) - local inputname = input:get_name() - local stackname = stack:get_name() - if listname == "input" then - if stackname == inputname and valid_block[stackname] then - workbench:get_output(inv, input, stackname) - else - inv:set_list("forms", {}) - end - elseif listname == "forms" then - local fromstack = inv:get_stack(listname, index) - if not fromstack:is_empty() and fromstack:get_name() ~= stackname then - local player_inv = player:get_inventory() - if player_inv:room_for_item("main", fromstack) then - player_inv:add_item("main", fromstack) - end - end - - input:take_item(ceil(stack:get_count() / workbench.defs[index][2])) - inv:set_stack("input", 1, input) - workbench:get_output(inv, input, inputname) - end -end - -minetest.register_node("workbench:workbench", { - description = "Workbench", - paramtype = "light", - paramtype2 = "facedir", - groups = {cracky = 2, choppy = 2, oddly_breakable_by_hand = 1, flammable = 2}, - sounds = default.node_sound_wood_defaults(), - tiles = {"workbench_top.png", "workbench_top.png", - "workbench_sides.png", "workbench_sides.png", - "workbench_front.png", "workbench_front.png"}, - on_timer = workbench.timer, - on_construct = workbench.construct, - on_receive_fields = workbench.fields, - on_metadata_inventory_put = workbench.on_put, - on_metadata_inventory_take = workbench.on_take, - allow_metadata_inventory_put = workbench.put, - allow_metadata_inventory_move = workbench.move -}) - -for _, d in pairs(workbench.defs) do - for i=1, #nodes do - local node = nodes[i] - local def = minetest.registered_nodes[node] - - if d[3] then - local groups = {} - local tiles - groups.stairs = 1 - - for k, v in pairs(def.groups) do - if k ~= "wood" and k ~= "stone" and k ~= "level" then - groups[k] = v - end - end - - if def.tiles then - if #def.tiles > 1 and (def.drawtype:sub(1,5) ~= "glass") then - tiles = def.tiles - else - tiles = {def.tiles[1]} - end - else - tiles = {def.tiles[1]} - end - - minetest.register_node(":stairs:"..d[1].."_"..node:gsub(":", "_"), { - description = def.description.." "..d[1]:gsub("^%l", string.upper), - paramtype = "light", - paramtype2 = "facedir", - drawtype = "nodebox", - sounds = def.sounds, - tiles = tiles, - groups = groups, - light_source = def.light_source / 2, - -- `unpack` has been changed to `table.unpack` in newest Lua versions - node_box = workbench:pixelbox(16, {unpack(d, 3)}), - sunlight_propagates = true, - is_ground_content = false, - on_place = minetest.rotate_node - }) - - minetest.register_node(":stairs:slope_" .. node:gsub(":", "_"), { - description = def.description .. " Slope", - paramtype = "light", - paramtype2 = "facedir", - drawtype = "mesh", - mesh = "workbench_slope.obj", - sounds = def.sounds, - tiles = def.tiles, - groups = groups, - light_source = def.light_source / 2, - sunlight_propagates = true, - is_ground_content = false, - use_texture_alpha = def.use_texture_alpha, - on_place = minetest.rotate_node, - collision_box = { - type = "fixed", - fixed = { - {-0.5, -0.5, -0.5, 0.5, -0.1875, 0.5}, - {-0.5, -0.1875, -0.1875, 0.5, 0.1875, 0.5}, - {-0.5, 0.1875, 0.1875, 0.5, 0.5, 0.5}, - }, - }, - }) - - end - end -end - --- Aliases. A lot of aliases... -local stairs_aliases = { - {"corner", "outerstair"}, - {"invcorner", "outerstair"}, - {"stair_outer", "innerstair"}, - {"stair_inner", "innerstair"}, - {"nanoslab", "microslab"} -} - -for i=1, #nodes do - local node = nodes[i] - for _, d in pairs(workbench.defs) do - minetest.register_alias("stairs:"..d[1].."_"..node:match(":(.*)"), "stairs:"..d[1].."_"..node:gsub(":", "_")) - minetest.register_alias(node.."_"..d[1], "stairs:"..d[1].."_"..node:gsub(":", "_")) - end - - for _, e in pairs(stairs_aliases) do - minetest.register_alias("stairs:"..e[1].."_"..node:match(":(.*)"), "stairs:"..e[2].."_"..node:gsub(":", "_")) - minetest.register_alias("stairs:"..e[1].."_"..node:gsub(":", "_"), "stairs:"..e[2].."_"..node:gsub(":", "_")) - minetest.register_alias(node.."_"..e[1], "stairs:"..e[2].."_"..node:gsub(":", "_")) - end -end - -for _, d in pairs(workbench.defs) do - minetest.register_alias("stairs:"..d[1].."_coal", "stairs:"..d[1].."_default_coalblock") - minetest.register_alias("stairs:"..d[1].."_lapis_block", "stairs:"..d[1].."_default_lapisblock") -end - -for _, e in pairs(stairs_aliases) do - minetest.register_alias("stairs:"..e[1].."_coal", "stairs:"..e[2].."_default_coalblock") - minetest.register_alias("stairs:"..e[1].."_lapis_block", "stairs:"..e[2].."_default_lapisblock") -end - -minetest.register_alias("stairs:stair_steel", "stairs:stair_default_steelblock") -minetest.register_alias("stairs:slab_steel", "stairs:slab_default_steelblock") -minetest.register_alias("stairs:corner_steel", "stairs:corner_default_steelblock") -minetest.register_alias("stairs:stair_gold", "stairs:stair_default_goldblock") -minetest.register_alias("stairs:slab_gold", "stairs:slab_default_goldblock") -minetest.register_alias("stairs:corner_gold", "stairs:corner_default_goldblock") -minetest.register_alias("stairs:stair_diamond", "stairs:stair_default_diamondblock") -minetest.register_alias("stairs:slab_diamond", "stairs:slab_default_diamondblock") -minetest.register_alias("stairs:corner_diamond", "stairs:corner_default_diamondblock") - --- Craft items - -minetest.register_craftitem("workbench:hammer", { - description = "Hammer", - inventory_image = "workbench_hammer.png", - on_use = function() do return end end -}) - -minetest.register_craft({ - output = "workbench:workbench", - recipe = { - {"group:wood", "group:wood"}, - {"group:wood", "group:wood"} - } -}) - -minetest.register_craft({ - output = "workbench:hammer", - recipe = { - {"default:steel_ingot", "group:stick", "default:steel_ingot"}, - {"", "group:stick", ""} - } -}) - -minetest.register_craft({ - type = "fuel", - recipe = "workbench:workbench", - burntime = 30, -}) diff --git a/games/default/files/workbench/models/workbench_slope.obj b/games/default/files/workbench/models/workbench_slope.obj deleted file mode 100644 index 57298d7d7..000000000 --- a/games/default/files/workbench/models/workbench_slope.obj +++ /dev/null @@ -1,56 +0,0 @@ -g top -v 0.500000 0.500000 0.500000 -v -0.500000 0.500000 0.500000 -v -0.500000 -0.500000 -0.500000 -v 0.500000 -0.500000 -0.500000 -vt 1.0000 1.0000 -vt 0.0000 1.0000 -vt 0.0000 0.0000 -vt 1.0000 0.0000 -vn 0.0000 0.7071 -0.7071 -s off -f 2/1/1 1/2/1 4/3/1 3/4/1 -g bottom -v -0.500000 -0.500000 0.500000 -v 0.500000 -0.500000 0.500000 -v -0.500000 -0.500000 -0.500000 -v 0.500000 -0.500000 -0.500000 -vt 0.0000 0.0000 -vt 1.0000 0.0000 -vt 1.0000 1.0000 -vt 0.0000 1.0000 -vn 0.0000 -1.0000 -0.0000 -s off -f 6/5/2 5/6/2 7/7/2 8/8/2 -g right -v -0.500000 0.500000 0.500000 -v -0.500000 -0.500000 0.500000 -v -0.500000 -0.500000 -0.500000 -vt 1.0000 1.0000 -vt 0.0000 0.0000 -vt 1.0000 0.0000 -vn -1.0000 0.0000 0.0000 -s off -f 9/9/3 11/10/3 10/11/3 -g left -v 0.500000 0.500000 0.500000 -v 0.500000 -0.500000 0.500000 -v 0.500000 -0.500000 -0.500000 -vt 0.0000 1.0000 -vt 0.0000 0.0000 -vt 1.0000 0.0000 -vn 1.0000 0.0000 0.0000 -s off -f 12/12/4 13/13/4 14/14/4 -g back -v 0.500000 0.500000 0.500000 -v -0.500000 0.500000 0.500000 -v -0.500000 -0.500000 0.500000 -v 0.500000 -0.500000 0.500000 -vt 1.0000 1.0000 -vt 0.0000 1.0000 -vt 0.0000 0.0000 -vt 1.0000 0.0000 -vn 0.0000 -0.0000 1.0000 -s off -f 15/15/5 16/16/5 17/17/5 18/18/5 diff --git a/games/default/files/workbench/textures/formspec_workbench_anvil.png b/games/default/files/workbench/textures/formspec_workbench_anvil.png deleted file mode 100644 index 6bcff4581..000000000 Binary files a/games/default/files/workbench/textures/formspec_workbench_anvil.png and /dev/null differ diff --git a/games/default/files/workbench/textures/formspec_workbench_crafting.png b/games/default/files/workbench/textures/formspec_workbench_crafting.png deleted file mode 100644 index 404f30db9..000000000 Binary files a/games/default/files/workbench/textures/formspec_workbench_crafting.png and /dev/null differ diff --git a/games/default/files/workbench/textures/formspec_workbench_creating.png b/games/default/files/workbench/textures/formspec_workbench_creating.png deleted file mode 100644 index b93c313e3..000000000 Binary files a/games/default/files/workbench/textures/formspec_workbench_creating.png and /dev/null differ diff --git a/games/default/files/workbench/textures/hammer_layout.png b/games/default/files/workbench/textures/hammer_layout.png deleted file mode 100644 index 8fc25b1f0..000000000 Binary files a/games/default/files/workbench/textures/hammer_layout.png and /dev/null differ diff --git a/games/default/files/workbench/textures/workbench_anvil.png b/games/default/files/workbench/textures/workbench_anvil.png deleted file mode 100644 index 70f37e8a6..000000000 Binary files a/games/default/files/workbench/textures/workbench_anvil.png and /dev/null differ diff --git a/games/default/files/workbench/textures/workbench_front.png b/games/default/files/workbench/textures/workbench_front.png deleted file mode 100644 index 3795c86d5..000000000 Binary files a/games/default/files/workbench/textures/workbench_front.png and /dev/null differ diff --git a/games/default/files/workbench/textures/workbench_hammer.png b/games/default/files/workbench/textures/workbench_hammer.png deleted file mode 100644 index f80fcef21..000000000 Binary files a/games/default/files/workbench/textures/workbench_hammer.png and /dev/null differ diff --git a/games/default/files/workbench/textures/workbench_saw.png b/games/default/files/workbench/textures/workbench_saw.png deleted file mode 100644 index 56de7a1ab..000000000 Binary files a/games/default/files/workbench/textures/workbench_saw.png and /dev/null differ diff --git a/games/default/files/workbench/textures/workbench_sides.png b/games/default/files/workbench/textures/workbench_sides.png deleted file mode 100644 index 38accb4ec..000000000 Binary files a/games/default/files/workbench/textures/workbench_sides.png and /dev/null differ diff --git a/games/default/files/workbench/textures/workbench_top.png b/games/default/files/workbench/textures/workbench_top.png deleted file mode 100644 index 50c5ec919..000000000 Binary files a/games/default/files/workbench/textures/workbench_top.png and /dev/null differ diff --git a/games/default/files/xpanes/README.txt b/games/default/files/xpanes/README.txt deleted file mode 100644 index 5195dc5b3..000000000 --- a/games/default/files/xpanes/README.txt +++ /dev/null @@ -1,11 +0,0 @@ -MultiCraft Game mod: xpanes -========================= -See license.txt for license information. - -Authors of source code ----------------------- -Originally by xyz (MIT) -BlockMen (MIT) -sofar (MIT) -Various Minetest developers and contributors (MIT) -MultiCraft Development Team (MIT) diff --git a/games/default/files/xpanes/depends.txt b/games/default/files/xpanes/depends.txt deleted file mode 100644 index 2b864d889..000000000 --- a/games/default/files/xpanes/depends.txt +++ /dev/null @@ -1,3 +0,0 @@ -default -dye -colored diff --git a/games/default/files/xpanes/init.lua b/games/default/files/xpanes/init.lua deleted file mode 100644 index 7bf0305e4..000000000 --- a/games/default/files/xpanes/init.lua +++ /dev/null @@ -1,227 +0,0 @@ -local function is_pane(pos) - return minetest.get_item_group(minetest.get_node(pos).name, "pane") > 0 -end - -local function connects_dir(pos, name, dir) - local aside = vector.add(pos, minetest.facedir_to_dir(dir)) - if is_pane(aside) then - return true - end - - local connects_to = minetest.registered_nodes[name].connects_to - if not connects_to then - return false - end - local list = minetest.find_nodes_in_area(aside, aside, connects_to) - - if #list > 0 then - return true - end - - return false -end - -local function swap(pos, node, name, param2) - if node.name == name and node.param2 == param2 then - return - end - - minetest.set_node(pos, {name = name, param2 = param2}) -end - -local function update_pane(pos) - if not is_pane(pos) then - return - end - local node = minetest.get_node(pos) - local name = node.name - if name:sub(-5) == "_flat" then - name = name:sub(1, -6) - end - - local any = node.param2 - local c = {} - local count = 0 - for dir = 0, 3 do - c[dir] = connects_dir(pos, name, dir) - if c[dir] then - any = dir - count = count + 1 - end - end - - if count == 0 then - swap(pos, node, name .. "_flat", any) - elseif count == 1 then - swap(pos, node, name .. "_flat", (any + 1) % 4) - elseif count == 2 then - if (c[0] and c[2]) or (c[1] and c[3]) then - swap(pos, node, name .. "_flat", (any + 1) % 4) - else - swap(pos, node, name, 0) - end - else - swap(pos, node, name, 0) - end -end - -minetest.register_on_placenode(function(pos, node) - if minetest.get_item_group(node, "pane") then - update_pane(pos) - end - for i = 0, 3 do - local dir = minetest.facedir_to_dir(i) - update_pane(vector.add(pos, dir)) - end -end) - -minetest.register_on_dignode(function(pos) - for i = 0, 3 do - local dir = minetest.facedir_to_dir(i) - update_pane(vector.add(pos, dir)) - end -end) - -xpanes = {} -function xpanes.register_pane(name, def) - for i = 1, 15 do - minetest.register_alias("xpanes:" .. name .. "_" .. i, "xpanes:" .. name .. "_flat") - end - - local flatgroups = table.copy(def.groups) - flatgroups.pane = 1 - minetest.register_node(":xpanes:" .. name .. "_flat", { - description = def.description, - drawtype = "nodebox", - paramtype = "light", - is_ground_content = false, - sunlight_propagates = true, - inventory_image = def.inventory_image, - wield_image = def.wield_image, - paramtype2 = "facedir", - tiles = {def.textures[2], def.textures[2], def.textures[2], def.textures[2], def.textures[1], def.textures[1]}, - groups = flatgroups, - drop = "xpanes:" .. name .. "_flat", - sounds = def.sounds, - use_texture_alpha = def.use_texture_alpha or false, - node_box = { - type = "fixed", - fixed = {{-1/2, -1/2, -1/32, 1/2, 1/2, 1/32}}, - }, - selection_box = { - type = "fixed", - fixed = {{-1/2, -1/2, -1/32, 1/2, 1/2, 1/32}}, - }, - connect_sides = { "left", "right" }, - }) - - local groups = table.copy(def.groups) - groups.pane = 1 - groups.not_in_creative_inventory = 1 - minetest.register_node(":xpanes:" .. name, { - drawtype = "nodebox", - paramtype = "light", - is_ground_content = false, - sunlight_propagates = true, - description = def.description, - tiles = {def.textures[2], def.textures[2], def.textures[1], def.textures[1], def.textures[1], def.textures[1]}, - groups = groups, - drop = "xpanes:" .. name .. "_flat", - sounds = def.sounds, - use_texture_alpha = def.use_texture_alpha or false, - node_box = { - type = "connected", - fixed = {{-1/32, -1/2, -1/32, 1/32, 1/2, 1/32}}, - connect_front = {{-1/32, -1/2, -1/2, 1/32, 1/2, -1/32}}, - connect_left = {{-1/2, -1/2, -1/32, -1/32, 1/2, 1/32}}, - connect_back = {{-1/32, -1/2, 1/32, 1/32, 1/2, 1/2}}, - connect_right = {{1/32, -1/2, -1/32, 1/2, 1/2, 1/32}}, - }, - connects_to = {"group:pane", "group:stone", "group:glass", "group:wood", "group:tree"}, - }) - - minetest.register_craft({ - output = "xpanes:" .. name .. "_flat " .. def.recipe_items, - recipe = def.recipe - }) -end - -xpanes.register_pane("pane", { - description = "Glass Pane", - textures = {"default_glass.png","xpanes_top_glass.png"}, - wield_image = {"xpanes_glass.png","xpanes_top_glass.png"}, - sounds = default.node_sound_glass_defaults(), - groups = {snappy = 2, cracky = 3, oddly_breakable_by_hand = 3, glasspane = 1}, - recipe = { - {"default:glass", "default:glass", "default:glass"}, - {"default:glass", "default:glass", "default:glass"} - }, - recipe_items = "16" -}) - -local dyes = dye.dyes - -for i = 1, #dyes do - local name, desc = unpack(dyes[i]) - - xpanes.register_pane("pane_" .. name, { - description = desc .. " Glass Pane", - textures = {"glass_" .. name .. ".png","xpanes_top_glass_" .. name .. ".png"}, - wield_image = {"glass_" .. name .. ".png","xpanes_top_glass_" .. name .. ".png","xpanes_top_glass_" .. name .. ".png"}, - sounds = default.node_sound_glass_defaults(), - groups = {snappy = 2, cracky = 3, oddly_breakable_by_hand = 3, glasspane = 1}, - recipe = { - {"group:glasspane", "group:glasspane", "group:glasspane"}, - {"group:glasspane", "group:dye,color_" .. name, "group:glasspane"}, - {"group:glasspane", "group:glasspane", "group:glasspane"} - }, - recipe_items = "8" - }) - - for i = 1, 15 do - minetest.register_alias("xpanes:pane_glass_" .. name .. "_" .. i, "xpanes:pane_" .. name .. "_flat") - end - minetest.register_alias("xpanes:pane_glass_" .. name, "xpanes:pane_" .. name .. "_flat") - minetest.register_alias("xpanes:pane_glass_natural_" .. i, "xpanes:pane_flat") - minetest.register_alias("xpanes:pane_glass_purple_" .. i, "xpanes:pane_violet_flat") - minetest.register_alias("xpanes:pane_glass_light_blue_" .. i, "xpanes:pane_blue_flat") - minetest.register_alias("xpanes:pane_glass_lime_" .. i, "xpanes:pane_green_flat") - minetest.register_alias("xpanes:pane_glass_gray_" .. i, "xpanes:pane_grey_flat") - minetest.register_alias("xpanes:pane_glass_silver_" .. i, "xpanes:pane_grey_flat") - minetest.register_alias("xpanes:pane_iron_" .. i, "xpanes:bar_flat") - -end - -minetest.register_alias("xpanes:pane_glass_natural", "xpanes:pane_flat") -minetest.register_alias("xpanes:pane_glass_purple", "xpanes:pane_violet_flat") -minetest.register_alias("xpanes:pane_glass_light_blue", "xpanes:pane_blue_flat") -minetest.register_alias("xpanes:pane_glass_lime", "xpanes:pane_green_flat") -minetest.register_alias("xpanes:pane_glass_gray", "xpanes:pane_grey_flat") -minetest.register_alias("xpanes:pane_glass_silver", "xpanes:pane_grey_flat") -minetest.register_alias("xpanes:pane_iron", "xpanes:bar_flat") - -xpanes.register_pane("bar", { - description = "Steel Bars", - textures = {"xpanes_bar.png","xpanes_bar_top.png"}, - inventory_image = "xpanes_bar.png", - wield_image = "xpanes_bar.png", - groups = {cracky = 2}, - sounds = default.node_sound_metal_defaults(), - recipe = { - {"default:steel_ingot", "default:steel_ingot", "default:steel_ingot"}, - {"default:steel_ingot", "default:steel_ingot", "default:steel_ingot"} - }, - recipe_items = "16" -}) - -minetest.register_lbm({ - name = "xpanes:gen2", - nodenames = {"group:pane"}, - action = function(pos, node) - update_pane(pos) - for i = 0, 3 do - local dir = minetest.facedir_to_dir(i) - update_pane(vector.add(pos, dir)) - end - end -}) diff --git a/games/default/files/xpanes/license.txt b/games/default/files/xpanes/license.txt index 3669e0c48..66e0cc1e2 100644 --- a/games/default/files/xpanes/license.txt +++ b/games/default/files/xpanes/license.txt @@ -6,7 +6,9 @@ Copyright (C) 2014-2016 xyz Copyright (C) 2014-2016 BlockMen Copyright (C) 2016 Auke Kok Copyright (C) 2014-2016 Various Minetest developers and contributors -Copyright (C) 2019 MultiCraft Development Team +Copyright (C) 2019-2019 MultiCraft Development Team +Copyright (C) 2018-2019 BlockColor Development Team + Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software diff --git a/games/default/files/xpanes/textures/xpanes_bar.png b/games/default/files/xpanes/textures/xpanes_bar.png deleted file mode 100644 index fc37c9d5a..000000000 Binary files a/games/default/files/xpanes/textures/xpanes_bar.png and /dev/null differ diff --git a/games/default/files/xpanes/textures/xpanes_bar_top.png b/games/default/files/xpanes/textures/xpanes_bar_top.png deleted file mode 100644 index 0c2e7fc7b..000000000 Binary files a/games/default/files/xpanes/textures/xpanes_bar_top.png and /dev/null differ diff --git a/games/default/files/xpanes/textures/xpanes_top_glass.png b/games/default/files/xpanes/textures/xpanes_top_glass.png deleted file mode 100644 index b8030d897..000000000 Binary files a/games/default/files/xpanes/textures/xpanes_top_glass.png and /dev/null differ diff --git a/games/default/files/xpanes/textures/xpanes_top_glass_black.png b/games/default/files/xpanes/textures/xpanes_top_glass_black.png deleted file mode 100644 index 0a09842bb..000000000 Binary files a/games/default/files/xpanes/textures/xpanes_top_glass_black.png and /dev/null differ diff --git a/games/default/files/xpanes/textures/xpanes_top_glass_blue.png b/games/default/files/xpanes/textures/xpanes_top_glass_blue.png deleted file mode 100644 index f799bb376..000000000 Binary files a/games/default/files/xpanes/textures/xpanes_top_glass_blue.png and /dev/null differ diff --git a/games/default/files/xpanes/textures/xpanes_top_glass_brown.png b/games/default/files/xpanes/textures/xpanes_top_glass_brown.png deleted file mode 100644 index 26a952fb2..000000000 Binary files a/games/default/files/xpanes/textures/xpanes_top_glass_brown.png and /dev/null differ diff --git a/games/default/files/xpanes/textures/xpanes_top_glass_cyan.png b/games/default/files/xpanes/textures/xpanes_top_glass_cyan.png deleted file mode 100644 index 9a0fc9730..000000000 Binary files a/games/default/files/xpanes/textures/xpanes_top_glass_cyan.png and /dev/null differ diff --git a/games/default/files/xpanes/textures/xpanes_top_glass_dark_green.png b/games/default/files/xpanes/textures/xpanes_top_glass_dark_green.png deleted file mode 100644 index 929f6ac4c..000000000 Binary files a/games/default/files/xpanes/textures/xpanes_top_glass_dark_green.png and /dev/null differ diff --git a/games/default/files/xpanes/textures/xpanes_top_glass_dark_grey.png b/games/default/files/xpanes/textures/xpanes_top_glass_dark_grey.png deleted file mode 100644 index d1fb0df5d..000000000 Binary files a/games/default/files/xpanes/textures/xpanes_top_glass_dark_grey.png and /dev/null differ diff --git a/games/default/files/xpanes/textures/xpanes_top_glass_green.png b/games/default/files/xpanes/textures/xpanes_top_glass_green.png deleted file mode 100644 index abb0a810d..000000000 Binary files a/games/default/files/xpanes/textures/xpanes_top_glass_green.png and /dev/null differ diff --git a/games/default/files/xpanes/textures/xpanes_top_glass_grey.png b/games/default/files/xpanes/textures/xpanes_top_glass_grey.png deleted file mode 100644 index d6c41fd6e..000000000 Binary files a/games/default/files/xpanes/textures/xpanes_top_glass_grey.png and /dev/null differ diff --git a/games/default/files/xpanes/textures/xpanes_top_glass_magenta.png b/games/default/files/xpanes/textures/xpanes_top_glass_magenta.png deleted file mode 100644 index 525ee0f73..000000000 Binary files a/games/default/files/xpanes/textures/xpanes_top_glass_magenta.png and /dev/null differ diff --git a/games/default/files/xpanes/textures/xpanes_top_glass_orange.png b/games/default/files/xpanes/textures/xpanes_top_glass_orange.png deleted file mode 100644 index 7af582c7f..000000000 Binary files a/games/default/files/xpanes/textures/xpanes_top_glass_orange.png and /dev/null differ diff --git a/games/default/files/xpanes/textures/xpanes_top_glass_pink.png b/games/default/files/xpanes/textures/xpanes_top_glass_pink.png deleted file mode 100644 index 844ef92c9..000000000 Binary files a/games/default/files/xpanes/textures/xpanes_top_glass_pink.png and /dev/null differ diff --git a/games/default/files/xpanes/textures/xpanes_top_glass_red.png b/games/default/files/xpanes/textures/xpanes_top_glass_red.png deleted file mode 100644 index 3f37ad8fd..000000000 Binary files a/games/default/files/xpanes/textures/xpanes_top_glass_red.png and /dev/null differ diff --git a/games/default/files/xpanes/textures/xpanes_top_glass_violet.png b/games/default/files/xpanes/textures/xpanes_top_glass_violet.png deleted file mode 100644 index e872f76a8..000000000 Binary files a/games/default/files/xpanes/textures/xpanes_top_glass_violet.png and /dev/null differ diff --git a/games/default/files/xpanes/textures/xpanes_top_glass_white.png b/games/default/files/xpanes/textures/xpanes_top_glass_white.png deleted file mode 100644 index ae101b9df..000000000 Binary files a/games/default/files/xpanes/textures/xpanes_top_glass_white.png and /dev/null differ diff --git a/games/default/files/xpanes/textures/xpanes_top_glass_yellow.png b/games/default/files/xpanes/textures/xpanes_top_glass_yellow.png deleted file mode 100644 index 22c675d65..000000000 Binary files a/games/default/files/xpanes/textures/xpanes_top_glass_yellow.png and /dev/null differ diff --git a/games/default/game.conf b/games/default/game.conf index 33ca56223..5539a9dfc 100644 --- a/games/default/game.conf +++ b/games/default/game.conf @@ -1 +1,3 @@ -name = default \ No newline at end of file +name = default +author = MrChiantos +description = BlockColor is a creative sandbox with only 8 colors. Only a limit : Your Imagination - http://blockcolor.net/ diff --git a/games/default/menu/header.png b/games/default/menu/header.png new file mode 100644 index 000000000..23b419a74 Binary files /dev/null and b/games/default/menu/header.png differ diff --git a/games/default/menu/icon.png b/games/default/menu/icon.png new file mode 100644 index 000000000..777c7b130 Binary files /dev/null and b/games/default/menu/icon.png differ diff --git a/games/default/menu/icons.png b/games/default/menu/icons.png new file mode 100644 index 000000000..777c7b130 Binary files /dev/null and b/games/default/menu/icons.png differ diff --git a/games/default/multicraft.conf b/games/default/multicraft.conf deleted file mode 100644 index 1a8ae1fef..000000000 --- a/games/default/multicraft.conf +++ /dev/null @@ -1 +0,0 @@ -default_privs = interact, shout, fly, settime diff --git a/lib/intl/libintl.cpp b/lib/intl/libintl.cpp index 14da2089f..af5e9f418 100644 --- a/lib/intl/libintl.cpp +++ b/lib/intl/libintl.cpp @@ -73,7 +73,7 @@ libintl_lite_bool_t loadMessageCatalog(const char* domain, const char* moFilePat std::string newPath = basePath + DIR_DELIM + current_language + DIR_DELIM + "LC_MESSAGES" + - DIR_DELIM + "MultiCraft" + ".mo"; // ToDo: fix bindtextdomain definition + DIR_DELIM + "BlockColor" + ".mo"; // ToDo: fix bindtextdomain definition moFile = fopen(newPath.c_str(), "rb"); diff --git a/misc/MultiCraft-icon.icns b/misc/BlockColor-icon.icns similarity index 100% rename from misc/MultiCraft-icon.icns rename to misc/BlockColor-icon.icns diff --git a/misc/MultiCraft-xorg-icon-128.png b/misc/BlockColor-xorg-icon-128.png similarity index 100% rename from misc/MultiCraft-xorg-icon-128.png rename to misc/BlockColor-xorg-icon-128.png diff --git a/misc/BlockColor.appdata.xml b/misc/BlockColor.appdata.xml new file mode 100644 index 000000000..d2ed79372 --- /dev/null +++ b/misc/BlockColor.appdata.xml @@ -0,0 +1,45 @@ + + + BlockColor.desktop + CC0-1.0 + LGPL-3.0+ and CC-BY-SA-3.0 and MIT and Apache-2.0 + BlockColor + Multiplayer infinite-world block sandbox game + +

+ BlockColor is an infinite-world block sandbox game and game engine. +

+ Players can create and destroy various types of blocks in a + three-dimensional open world. This allows forming structures in + every possible creation, on multiplayer servers or in singleplayer. +

+ BlockColor is designed to be simple, stable, and portable. + It is lightweight enough to run on fairly old hardware. +

+ BlockColor has many features, including: +

+
    +
  • Ability to walk around, dig, and build in a near-infinite voxel world
  • +
  • Crafting of items from raw materials
  • +
  • Fast and able to run on old and slow hardware
  • +
  • A simple modding API that supports many additions and modifications to the game
  • +
  • Multiplayer support via servers hosted by users
  • +
  • Beautiful lightning-fast map generator
  • +
+
+ + http://www.minetest.net/media/gallery/1.jpg + http://www.minetest.net/media/gallery/3.jpg + http://www.minetest.net/media/gallery/5.jpg + + + sandbox + world + mining + multiplayer + + http://minetest.net + https://github.com/Mrchiantos/BlockColor/issues + http://dev.minetest.net/Translation + +
diff --git a/misc/BlockColor.desktop b/misc/BlockColor.desktop new file mode 100644 index 000000000..d72605d1c --- /dev/null +++ b/misc/BlockColor.desktop @@ -0,0 +1,17 @@ +[Desktop Entry] +Name=BlockColor +GenericName=BlockColor +Comment=Multiplayer infinite-world block sandbox +Comment[de]=Mehrspieler-Sandkastenspiel mit unendlichen Blockwelten +Comment[es]=Juego sandbox multijugador con mundos infinitos +Comment[fr]=Jeu multijoueurs de type bac à sable avec des mondes infinis +Comment[ja]=マルチプレイに対応した、無限の世界のブロック型サンドボックスゲームです +Comment[ru]=Игра-песочница с безграничным миром, состоящим из блоков +Comment[tr]=Tek-Çok oyuncuyla küplerden sonsuz dünyalar inşa et +Exec=BlockColor +Icon=BlockColor-icon +Terminal=false +Type=Application +Categories=Game;Simulation; +StartupNotify=false +Keywords=sandbox;world;mining;crafting;blocks;nodes;multiplayer;roleplaying; diff --git a/misc/MultiCraft.ico b/misc/BlockColor.ico similarity index 100% rename from misc/MultiCraft.ico rename to misc/BlockColor.ico diff --git a/misc/BlockColor.svg b/misc/BlockColor.svg new file mode 100644 index 000000000..83d37fd7f --- /dev/null +++ b/misc/BlockColor.svg @@ -0,0 +1,183 @@ + + + + + + + + + + + + + + + + + image/svg+xml + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/misc/Info.plist b/misc/Info.plist index 21c6c5921..2ac854acd 100644 --- a/misc/Info.plist +++ b/misc/Info.plist @@ -5,10 +5,10 @@ CFBundleDevelopmentRegion English CFBundleExecutable - MultiCraft + BlockColor CFBundleIconFile - MultiCraft-icon.icns + BlockColor-icon.icns CFBundleIdentifier - net.MultiCraft.Official + net.BlockColor.Official diff --git a/misc/MultiCraft.appdata.xml b/misc/MultiCraft.appdata.xml deleted file mode 100644 index 6e6dccf1e..000000000 --- a/misc/MultiCraft.appdata.xml +++ /dev/null @@ -1,45 +0,0 @@ - - - MultiCraft.desktop - CC0-1.0 - LGPL-3.0+ and CC-BY-SA-3.0 and MIT and Apache-2.0 - MultiCraft - Multiplayer infinite-world block sandbox game - -

- MultiCraft is an infinite-world block sandbox game and game engine. -

- Players can create and destroy various types of blocks in a - three-dimensional open world. This allows forming structures in - every possible creation, on multiplayer servers or in singleplayer. -

- MultiCraft is designed to be simple, stable, and portable. - It is lightweight enough to run on fairly old hardware. -

- MultiCraft has many features, including: -

-
    -
  • Ability to walk around, dig, and build in a near-infinite voxel world
  • -
  • Crafting of items from raw materials
  • -
  • Fast and able to run on old and slow hardware
  • -
  • A simple modding API that supports many additions and modifications to the game
  • -
  • Multiplayer support via servers hosted by users
  • -
  • Beautiful lightning-fast map generator
  • -
-
- - http://www.minetest.net/media/gallery/1.jpg - http://www.minetest.net/media/gallery/3.jpg - http://www.minetest.net/media/gallery/5.jpg - - - sandbox - world - mining - multiplayer - - http://minetest.net - https://github.com/MultiCraftProject/MultiCraft/issues - http://dev.minetest.net/Translation - MoNTE48@mal.ua -
diff --git a/misc/MultiCraft.desktop b/misc/MultiCraft.desktop deleted file mode 100644 index 1428ae67a..000000000 --- a/misc/MultiCraft.desktop +++ /dev/null @@ -1,17 +0,0 @@ -[Desktop Entry] -Name=MultiCraft -GenericName=MultiCraft -Comment=Multiplayer infinite-world block sandbox -Comment[de]=Mehrspieler-Sandkastenspiel mit unendlichen Blockwelten -Comment[es]=Juego sandbox multijugador con mundos infinitos -Comment[fr]=Jeu multijoueurs de type bac à sable avec des mondes infinis -Comment[ja]=マルチプレイに対応した、無限の世界のブロック型サンドボックスゲームです -Comment[ru]=Игра-песочница с безграничным миром, состоящим из блоков -Comment[tr]=Tek-Çok oyuncuyla küplerden sonsuz dünyalar inşa et -Exec=MultiCraft -Icon=MultiCraft-icon -Terminal=false -Type=Application -Categories=Game;Simulation; -StartupNotify=false -Keywords=sandbox;world;mining;crafting;blocks;nodes;multiplayer;roleplaying; diff --git a/misc/MultiCraft.svg b/misc/MultiCraft.svg deleted file mode 100644 index a156ad4d5..000000000 --- a/misc/MultiCraft.svg +++ /dev/null @@ -1,183 +0,0 @@ - - - - - - - - - - - - - - - - - image/svg+xml - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/misc/com.MultiCraft.game.appdata.xml b/misc/com.MultiCraft.game.appdata.xml deleted file mode 100644 index e5c52c060..000000000 --- a/misc/com.MultiCraft.game.appdata.xml +++ /dev/null @@ -1,58 +0,0 @@ - - - com.MultiCraft.game.desktop - CC0-1.0 - LGPL-3.0+ and CC-BY-SA-3.0 and MIT and Apache-2.0 - MultiCraft - Multiplayer infinite-world block sandbox game - -

- MultiCraft is an infinite-world block sandbox game and game engine. -

- Players can create and destroy various types of blocks in a - three-dimensional open world. This allows forming structures in - every possible creation, on multiplayer servers or in singleplayer. -

- MultiCraft is designed to be simple, stable, and portable. - It is lightweight enough to run on fairly old hardware. -

- MultiCraft has many features, including: -

-
    -
  • Ability to walk around, dig, and build in a near-infinite voxel world
  • -
  • Crafting of items from raw materials
  • -
  • Fast and able to run on old and slow hardware
  • -
  • A simple modding API that supports many additions and modifications to the game
  • -
  • Multiplayer support via servers hosted by users
  • -
  • Beautiful lightning-fast map generator
  • -
-
- - - http://www.minetest.net/media/gallery/1.jpg - - - http://www.minetest.net/media/gallery/3.jpg - - - http://www.minetest.net/media/gallery/5.jpg - - - - sandbox - world - mining - multiplayer - - http://minetest.net - http://www.minetest.net/development/#reporting-issues - http://dev.minetest.net/Translation - http://www.minetest.net/development/#donate - http://wiki.minetest.net/FAQ - http://wiki.minetest.net - - multicraft - - multicraft - sfan5@live.de -
diff --git a/misc/com.MultiCraft.game.desktop b/misc/com.MultiCraft.game.desktop deleted file mode 100644 index 652f4a92c..000000000 --- a/misc/com.MultiCraft.game.desktop +++ /dev/null @@ -1,17 +0,0 @@ -[Desktop Entry] -Name=MultiCraft -GenericName=MultiCraft -Comment=Multiplayer infinite-world block sandbox -Comment[de]=Mehrspieler-Sandkastenspiel mit unendlichen Blockwelten -Comment[es]=Juego sandbox multijugador con mundos infinitos -Comment[fr]=Jeu multijoueurs de type bac à sable avec des mondes infinis -Comment[ja]=マルチプレイに対応した、無限の世界のブロック型サンドボックスゲームです -Comment[ru]=Игра-песочница с безграничным миром, состоящим из блоков -Comment[tr]=Tek-Çok oyuncuyla küplerden sonsuz dünyalar inşa et -Exec=multicraft -Icon=multicraft -Terminal=false -Type=Application -Categories=Game;Simulation; -StartupNotify=false -Keywords=sandbox;world;mining;crafting;blocks;nodes;multiplayer;roleplaying; diff --git a/misc/net.BlockColor.game.appdata.xml b/misc/net.BlockColor.game.appdata.xml new file mode 100644 index 000000000..fa9def7ed --- /dev/null +++ b/misc/net.BlockColor.game.appdata.xml @@ -0,0 +1,58 @@ + + + net.blockcolor.game.desktop + CC0-1.0 + LGPL-3.0+ and CC-BY-SA-3.0 and MIT and Apache-2.0 + BlockColor + Multiplayer infinite-world block sandbox game + +

+ BlockColor is an infinite-world block sandbox game and game engine. +

+ Players can create and destroy various types of blocks in a + three-dimensional open world. This allows forming structures in + every possible creation, on multiplayer servers or in singleplayer. +

+ BlockColor is designed to be simple, stable, and portable. + It is lightweight enough to run on fairly old hardware. +

+ BlockColor has many features, including: +

+
    +
  • Ability to walk around, dig, and build in a near-infinite voxel world
  • +
  • Crafting of items from raw materials
  • +
  • Fast and able to run on old and slow hardware
  • +
  • A simple modding API that supports many additions and modifications to the game
  • +
  • Multiplayer support via servers hosted by users
  • +
  • Beautiful lightning-fast map generator
  • +
+
+ + + http://www.minetest.net/media/gallery/1.jpg + + + http://www.minetest.net/media/gallery/3.jpg + + + http://www.minetest.net/media/gallery/5.jpg + + + + sandbox + world + mining + multiplayer + + http://minetest.net + http://www.minetest.net/development/#reporting-issues + http://dev.minetest.net/Translation + http://www.minetest.net/development/#donate + http://wiki.minetest.net/FAQ + http://wiki.minetest.net + + BlockColor + + blockcolor + sfan5@live.de +
diff --git a/misc/net.BlockColor.game.desktop b/misc/net.BlockColor.game.desktop new file mode 100644 index 000000000..d1cdf4afe --- /dev/null +++ b/misc/net.BlockColor.game.desktop @@ -0,0 +1,17 @@ +[Desktop Entry] +Name=BlockColor +GenericName=BlockColor +Comment=Multiplayer infinite-world block sandbox +Comment[de]=Mehrspieler-Sandkastenspiel mit unendlichen Blockwelten +Comment[es]=Juego sandbox multijugador con mundos infinitos +Comment[fr]=Jeu multijoueurs de type bac à sable avec des mondes infinis +Comment[ja]=マルチプレイに対応した、無限の世界のブロック型サンドボックスゲームです +Comment[ru]=Игра-песочница с безграничным миром, состоящим из блоков +Comment[tr]=Tek-Çok oyuncuyla küplerden sonsuz dünyalar inşa et +Exec=BlockColor +Icon=BlockColor +Terminal=false +Type=Application +Categories=Game;Simulation; +StartupNotify=false +Keywords=sandbox;world;mining;crafting;blocks;nodes;multiplayer;roleplaying; diff --git a/misc/winresource.rc b/misc/winresource.rc index b93c045fd..382d08bc5 100644 --- a/misc/winresource.rc +++ b/misc/winresource.rc @@ -12,7 +12,7 @@ #endif LANGUAGE 0, SUBLANG_NEUTRAL -130 ICON "MultiCraft.ico" +130 ICON "BlockColor.ico" ///////////////////////////////////////////////////////////////////////////// // @@ -42,8 +42,8 @@ BEGIN VALUE "FileVersion", VERSION_STRING VALUE "InternalName", PROJECT_NAME VALUE "LegalCopyright", "(c) 2011-2015 celeron55" - VALUE "LegalTrademarks", """MultiCraft"" is the Minetest-based game, property of the MultiCraft community, don't use it without permission!" - VALUE "OriginalFilename", "MultiCraft.exe" + VALUE "LegalTrademarks", """BlockColor"" is the Minetest-based game, property of the BlockColor community, don't use it without permission!" + VALUE "OriginalFilename", "BlockColor.exe" VALUE "PrivateBuild", VERSION_EXTRA VALUE "ProductName", PROJECT_NAME_C VALUE "ProductVersion", PRODUCT_VERSION_STRING diff --git a/multicraft.conf.example b/multicraft.conf.example deleted file mode 100644 index 8ab277c1a..000000000 --- a/multicraft.conf.example +++ /dev/null @@ -1,1850 +0,0 @@ -# This file contains a list of all available settings and their default value for multicraft.conf - -# By default, all the settings are commented and not functional. -# Uncomment settings by removing the preceding #. - -# multicraft.conf is read by default from: -# ../multicraft.conf -# ../../multicraft.conf -# Any other path can be chosen by passing the path as a parameter -# to the program, eg. "minetest.exe --config ../multicraft.conf.example". - -# Further documentation: -# http://wiki.minetest.net/ - -# -# Client -# - -## Controls - -# If enabled, you can place blocks at the position (feet + eye level) where you stand. -# This is helpful when working with nodeboxes in small areas. -# type: bool -# enable_build_where_you_stand = false - -# Player is able to fly without being affected by gravity. -# This requires the "fly" privilege on the server. -# type: bool -# free_move = false - -# Fast movement (via use key). -# This requires the "fast" privilege on the server. -# type: bool -# fast_move = false - -# If enabled together with fly mode, player is able to fly through solid nodes. -# This requires the "noclip" privilege on the server. -# type: bool -# noclip = false - -# Smooths camera when looking around. Also called look or mouse smoothing. -# Useful for recording videos. -# type: bool -# cinematic = false - -# Smooths rotation of camera. 0 to disable. -# type: float min: 0 max: 0.99 -# camera_smoothing = 0.0 - -# Smooths rotation of camera in cinematic mode. 0 to disable. -# type: float min: 0 max: 0.99 -# cinematic_camera_smoothing = 0.7 - -# Invert vertical mouse movement. -# type: bool -# invert_mouse = false - -# Mouse sensitivity multiplier. -# type: float -# mouse_sensitivity = 0.2 - -# If enabled, "use" key instead of "sneak" key is used for climbing down and descending. -# type: bool -# aux1_descends = false - -# Double-tapping the jump key toggles fly mode. -# type: bool -# doubletap_jump = false - -# If disabled "use" key is used to fly fast if both fly and fast mode are enabled. -# type: bool -# always_fly_fast = true - -# The time in seconds it takes between repeated right clicks when holding the right mouse button. -# type: float -# repeat_rightclick_time = 0.25 - -# Enable random user input (only used for testing). -# type: bool -# random_input = false - -# Continuous forward movement (only used for testing). -# type: bool -# continuous_forward = false - -# Enable Joysticks -# type: bool -# enable_joysticks = false - -# The identifier of the joystick to use -# type: int -# joystick_id = 0 - -# The type of joystick -# type: enum values: auto, generic, xbox -# joystick_type = auto - -# The time in seconds it takes between repeated events -# when holding down a joystick button combination. -# type: float -# repeat_joystick_button_time = 0.17 - -# The sensitivity of the joystick axes for moving the -# ingame view frustum around. -# type: float -# joystick_frustum_sensitivity = 170 - -# Key for moving the player forward. -# See http://irrlicht.sourceforge.net/docu/namespaceirr.html#a54da2a0e231901735e3da1b0edf72eb3 -# type: key -# keymap_forward = KEY_KEY_W - -# Key for moving the player backward. -# See http://irrlicht.sourceforge.net/docu/namespaceirr.html#a54da2a0e231901735e3da1b0edf72eb3 -# type: key -# keymap_backward = KEY_KEY_S - -# Key for moving the player left. -# See http://irrlicht.sourceforge.net/docu/namespaceirr.html#a54da2a0e231901735e3da1b0edf72eb3 -# type: key -# keymap_left = KEY_KEY_A - -# Key for moving the player right. -# See http://irrlicht.sourceforge.net/docu/namespaceirr.html#a54da2a0e231901735e3da1b0edf72eb3 -# type: key -# keymap_right = KEY_KEY_D - -# Key for jumping. -# See http://irrlicht.sourceforge.net/docu/namespaceirr.html#a54da2a0e231901735e3da1b0edf72eb3 -# type: key -# keymap_jump = KEY_SPACE - -# Key for sneaking. -# Also used for climbing down and descending in water if aux1_descends is disabled. -# See http://irrlicht.sourceforge.net/docu/namespaceirr.html#a54da2a0e231901735e3da1b0edf72eb3 -# type: key -# keymap_sneak = KEY_LSHIFT - -# Key for opening the inventory. -# See http://irrlicht.sourceforge.net/docu/namespaceirr.html#a54da2a0e231901735e3da1b0edf72eb3 -# type: key -# keymap_inventory = KEY_KEY_I - -# Key for moving fast in fast mode. -# See http://irrlicht.sourceforge.net/docu/namespaceirr.html#a54da2a0e231901735e3da1b0edf72eb3 -# type: key -# keymap_special1 = KEY_KEY_E - -# Key for opening the chat window. -# See http://irrlicht.sourceforge.net/docu/namespaceirr.html#a54da2a0e231901735e3da1b0edf72eb3 -# type: key -# keymap_chat = KEY_KEY_T - -# Key for opening the chat window to type commands. -# See http://irrlicht.sourceforge.net/docu/namespaceirr.html#a54da2a0e231901735e3da1b0edf72eb3 -# type: key -# keymap_cmd = / - -# Key for opening the chat window to type local commands. -# See http://irrlicht.sourceforge.net/docu/namespaceirr.html#a54da2a0e231901735e3da1b0edf72eb3 -# type: key -# keymap_cmd_local = . - -# Key for toggling unlimited view range. -# See http://irrlicht.sourceforge.net/docu/namespaceirr.html#a54da2a0e231901735e3da1b0edf72eb3 -# type: key -# keymap_rangeselect = KEY_KEY_R - -# Key for toggling flying. -# See http://irrlicht.sourceforge.net/docu/namespaceirr.html#a54da2a0e231901735e3da1b0edf72eb3 -# type: key -# keymap_freemove = KEY_KEY_K - -# Key for toggling fast mode. -# See http://irrlicht.sourceforge.net/docu/namespaceirr.html#a54da2a0e231901735e3da1b0edf72eb3 -# type: key -# keymap_fastmove = KEY_KEY_J - -# Key for toggling noclip mode. -# See http://irrlicht.sourceforge.net/docu/namespaceirr.html#a54da2a0e231901735e3da1b0edf72eb3 -# type: key -# keymap_noclip = KEY_KEY_H - -# Key for selecting the next item in the hotbar. -# See http://irrlicht.sourceforge.net/docu/namespaceirr.html#a54da2a0e231901735e3da1b0edf72eb3 -# type: key -# keymap_hotbar_next = KEY_KEY_N - -# Key for selecting the previous item in the hotbar. -# See http://irrlicht.sourceforge.net/docu/namespaceirr.html#a54da2a0e231901735e3da1b0edf72eb3 -# type: key -# keymap_hotbar_previous = KEY_KEY_B - -# Key for muting the game. -# See http://irrlicht.sourceforge.net/docu/namespaceirr.html#a54da2a0e231901735e3da1b0edf72eb3 -# type: key -# keymap_mute = KEY_KEY_M - -# Key for increasing the volume. -# See http://irrlicht.sourceforge.net/docu/namespaceirr.html#a54da2a0e231901735e3da1b0edf72eb3 -# type: key -# keymap_increase_volume = - -# Key for decreasing the volume. -# See http://irrlicht.sourceforge.net/docu/namespaceirr.html#a54da2a0e231901735e3da1b0edf72eb3 -# type: key -# keymap_decrease_volume = - -# Key for toggling autorun. -# See http://irrlicht.sourceforge.net/docu/namespaceirr.html#a54da2a0e231901735e3da1b0edf72eb3 -# type: key -# keymap_autorun = - -# Key for toggling cinematic mode. -# See http://irrlicht.sourceforge.net/docu/namespaceirr.html#a54da2a0e231901735e3da1b0edf72eb3 -# type: key -# keymap_cinematic = - -# Key for toggling display of minimap. -# See http://irrlicht.sourceforge.net/docu/namespaceirr.html#a54da2a0e231901735e3da1b0edf72eb3 -# type: key -# keymap_minimap = KEY_F9 - -# Key for taking screenshots. -# See http://irrlicht.sourceforge.net/docu/namespaceirr.html#a54da2a0e231901735e3da1b0edf72eb3 -# type: key -# keymap_screenshot = KEY_F12 - -# Key for dropping the currently selected item. -# See http://irrlicht.sourceforge.net/docu/namespaceirr.html#a54da2a0e231901735e3da1b0edf72eb3 -# type: key -# keymap_drop = KEY_KEY_Q - -# Key to use view zoom when possible. -# See http://irrlicht.sourceforge.net/docu/namespaceirr.html#a54da2a0e231901735e3da1b0edf72eb3 -# type: key -# keymap_zoom = KEY_KEY_Z - -# Key for toggling the display of the HUD. -# See http://irrlicht.sourceforge.net/docu/namespaceirr.html#a54da2a0e231901735e3da1b0edf72eb3 -# type: key -# keymap_toggle_hud = KEY_F1 - -# Key for toggling the display of the chat. -# See http://irrlicht.sourceforge.net/docu/namespaceirr.html#a54da2a0e231901735e3da1b0edf72eb3 -# type: key -# keymap_toggle_chat = KEY_F2 - -# Key for toggling the display of the large chat console. -# See http://irrlicht.sourceforge.net/docu/namespaceirr.html#a54da2a0e231901735e3da1b0edf72eb3 -# type: key -# keymap_console = KEY_F10 - -# Key for toggling the display of the fog. -# See http://irrlicht.sourceforge.net/docu/namespaceirr.html#a54da2a0e231901735e3da1b0edf72eb3 -# type: key -# keymap_toggle_force_fog_off = KEY_F3 - -# Key for toggling the camera update. Only used for development -# See http://irrlicht.sourceforge.net/docu/namespaceirr.html#a54da2a0e231901735e3da1b0edf72eb3 -# type: key -# keymap_toggle_update_camera = - -# Key for toggling the display of debug info. -# See http://irrlicht.sourceforge.net/docu/namespaceirr.html#a54da2a0e231901735e3da1b0edf72eb3 -# type: key -# keymap_toggle_debug = KEY_F5 - -# Key for toggling the display of the profiler. Used for development. -# See http://irrlicht.sourceforge.net/docu/namespaceirr.html#a54da2a0e231901735e3da1b0edf72eb3 -# type: key -# keymap_toggle_profiler = KEY_F6 - -# Key for switching between first- and third-person camera. -# See http://irrlicht.sourceforge.net/docu/namespaceirr.html#a54da2a0e231901735e3da1b0edf72eb3 -# type: key -# keymap_camera_mode = KEY_F7 - -# Key for increasing the viewing range. -# See http://irrlicht.sourceforge.net/docu/namespaceirr.html#a54da2a0e231901735e3da1b0edf72eb3 -# type: key -# keymap_increase_viewing_range_min = + - -# Key for decreasing the viewing range. -# See http://irrlicht.sourceforge.net/docu/namespaceirr.html#a54da2a0e231901735e3da1b0edf72eb3 -# type: key -# keymap_decrease_viewing_range_min = - - -# Key for printing debug stacks. Used for development. -# See http://irrlicht.sourceforge.net/docu/namespaceirr.html#a54da2a0e231901735e3da1b0edf72eb3 -# type: key -# keymap_print_debug_stacks = KEY_KEY_P - -## Network - -# Address to connect to. -# Leave this blank to start a local server. -# Note that the address field in the main menu overrides this setting. -# type: string -# address = - -# Port to connect to (UDP). -# Note that the port field in the main menu overrides this setting. -# type: int min: 1 max: 65535 -# remote_port = 30000 - -# Whether to support older servers before protocol version 25. -# Enable if you want to connect to 0.4.12 servers and before. -# Servers starting with 0.4.13 will work, 0.4.12-dev servers may work. -# Disabling this option will protect your password better. -# type: bool -# send_pre_v25_init = false - -# Save the map received by the client on disk. -# type: bool -# enable_local_map_saving = false - -# Show entity selection boxes -# type: bool -# show_entity_selectionbox = true - -# Enable usage of remote media server (if provided by server). -# Remote servers offer a significantly faster way to download media (e.g. textures) -# when connecting to the server. -# type: bool -# enable_remote_media_server = true - -# Enable Lua modding support on client. -# This support is experimental and API can change. -# type: bool -# enable_client_modding = false - -# URL to the server list displayed in the Multiplayer Tab. -# type: string -# serverlist_url = servers.minetest.net - -# File in client/serverlist/ that contains your favorite servers displayed in the Multiplayer Tab. -# type: string -# serverlist_file = favoriteservers.txt - -# Maximum size of the out chat queue. 0 to disable queueing and -1 to make the queue size unlimited -# type: int -# max_out_chat_queue_size = 20 - -## Graphics - -### In-Game - -#### Basic - -# Enable VBO -# type: bool -# enable_vbo = true - -# Whether to fog out the end of the visible area. -# type: bool -# enable_fog = true - -# Leaves style: -# - Fancy: all faces visible -# - Simple: only outer faces, if defined special_tiles are used -# - Opaque: disable transparency -# type: enum values: fancy, simple, opaque -# leaves_style = fancy - -# Connects glass if supported by node. -# type: bool -# connected_glass = false - -# Enable smooth lighting with simple ambient occlusion. -# Disable for speed or for different looks. -# type: bool -# smooth_lighting = true - -# Clouds are a client side effect. -# type: bool -# enable_clouds = true - -# Use 3D cloud look instead of flat. -# type: bool -# enable_3d_clouds = true - -# Method used to highlight selected object. -# type: enum values: box, halo, none -# node_highlighting = box - -# Adds particles when digging a node. -# type: bool -# enable_particles = true - -#### Filtering - -# Use mip mapping to scale textures. May slightly increase performance. -# type: bool -# mip_map = false - -# Use anisotropic filtering when viewing at textures from an angle. -# type: bool -# anisotropic_filter = false - -# Use bilinear filtering when scaling textures. -# type: bool -# bilinear_filter = false - -# Use trilinear filtering when scaling textures. -# type: bool -# trilinear_filter = false - -# Filtered textures can blend RGB values with fully-transparent neighbors, -# which PNG optimizers usually discard, sometimes resulting in a dark or -# light edge to transparent textures. Apply this filter to clean that up -# at texture load time. -# type: bool -# texture_clean_transparent = false - -# When using bilinear/trilinear/anisotropic filters, low-resolution textures -# can be blurred, so automatically upscale them with nearest-neighbor -# interpolation to preserve crisp pixels. This sets the minimum texture size -# for the upscaled textures; higher values look sharper, but require more -# memory. Powers of 2 are recommended. Setting this higher than 1 may not -# have a visible effect unless bilinear/trilinear/anisotropic filtering is -# enabled. -# type: int -# texture_min_size = 64 - -# Experimental option, might cause visible spaces between blocks -# when set to higher number than 0. -# type: enum values: 0, 1, 2, 4, 8, 16 -# fsaa = 0 - -# Undersampling is similar to using lower screen resolution, but it applies -# to the game world only, keeping the GUI intact. -# It should give significant performance boost at the cost of less detailed image. -# type: enum values: 0, 2, 3, 4 -# undersampling = 0 - -#### Shaders - -# Shaders allow advanced visual effects and may increase performance on some video cards. -# This only works with the OpenGL video backend. -# type: bool -# enable_shaders = true - -# Path to shader directory. If no path is defined, default location will be used. -# type: path -# shader_path = - -##### Tone Mapping - -# Enables filmic tone mapping -# type: bool -# tone_mapping = false - -##### Bumpmapping - -# Enables bumpmapping for textures. Normalmaps need to be supplied by the texture pack -# or need to be auto-generated. -# Requires shaders to be enabled. -# type: bool -# enable_bumpmapping = false - -# Enables on the fly normalmap generation (Emboss effect). -# Requires bumpmapping to be enabled. -# type: bool -# generate_normalmaps = false - -# Strength of generated normalmaps. -# type: float -# normalmaps_strength = 0.6 - -# Defines sampling step of texture. -# A higher value results in smoother normal maps. -# type: int min: 0 max: 2 -# normalmaps_smooth = 0 - -##### Parallax Occlusion - -# Enables parallax occlusion mapping. -# Requires shaders to be enabled. -# type: bool -# enable_parallax_occlusion = false - -# 0 = parallax occlusion with slope information (faster). -# 1 = relief mapping (slower, more accurate). -# type: int min: 0 max: 1 -# parallax_occlusion_mode = 1 - -# Strength of parallax. -# type: float -# 3d_paralax_strength = 0.025 - -# Number of parallax occlusion iterations. -# type: int -# parallax_occlusion_iterations = 4 - -# Overall scale of parallax occlusion effect. -# type: float -# parallax_occlusion_scale = 0.08 - -# Overall bias of parallax occlusion effect, usually scale/2. -# type: float -# parallax_occlusion_bias = 0.04 - -##### Waving Nodes - -# Set to true enables waving water. -# Requires shaders to be enabled. -# type: bool -# enable_waving_water = false - -# type: float -# water_wave_height = 1.0 - -# type: float -# water_wave_length = 20.0 - -# type: float -# water_wave_speed = 5.0 - -# Set to true enables waving leaves. -# Requires shaders to be enabled. -# type: bool -# enable_waving_leaves = false - -# Set to true enables waving plants. -# Requires shaders to be enabled. -# type: bool -# enable_waving_plants = false - -#### Advanced - -# If FPS would go higher than this, limit it by sleeping -# to not waste CPU power for no benefit. -# type: int -# fps_max = 60 - -# Maximum FPS when game is paused. -# type: int -# pause_fps_max = 20 - -# View distance in nodes. -# type: int min: 20 max: 4000 -# viewing_range = 100 - -# Width component of the initial window size. -# type: int -# screenW = 800 - -# Height component of the initial window size. -# type: int -# screenH = 600 - -# Save window size automatically when modified. -# type: bool -# autosave_screensize = true - -# Fullscreen mode. -# type: bool -# fullscreen = false - -# Bits per pixel (aka color depth) in fullscreen mode. -# type: int -# fullscreen_bpp = 24 - -# Vertical screen synchronization. -# type: bool -# vsync = false - -# Field of view in degrees. -# type: int min: 30 max: 160 -# fov = 72 - -# Field of view while zooming in degrees. -# This requires the "zoom" privilege on the server. -# type: int min: 7 max: 160 -# zoom_fov = 15 - -# Adjust the gamma encoding for the light tables. Higher numbers are brighter. -# This setting is for the client only and is ignored by the server. -# type: float min: 1 max: 3 -# display_gamma = 2.2 - -# Path to texture directory. All textures are first searched from here. -# type: path -# texture_path = - -# The rendering back-end for Irrlicht. -# type: enum values: null, software, burningsvideo, direct3d8, direct3d9, opengl -# video_driver = opengl - -# Height on which clouds are appearing. -# type: int -# cloud_height = 120 - -# Radius of cloud area stated in number of 64 node cloud squares. -# Values larger than 26 will start to produce sharp cutoffs at cloud area corners. -# type: int -# cloud_radius = 12 - -# Enable view bobbing and amount of view bobbing. -# For example: 0 for no view bobbing; 1.0 for normal; 2.0 for double. -# type: float -# view_bobbing_amount = 1.0 - -# Multiplier for fall bobbing. -# For example: 0 for no view bobbing; 1.0 for normal; 2.0 for double. -# type: float -# fall_bobbing_amount = 0.0 - -# 3D support. -# Currently supported: -# - none: no 3d output. -# - anaglyph: cyan/magenta color 3d. -# - interlaced: odd/even line based polarisation screen support. -# - topbottom: split screen top/bottom. -# - sidebyside: split screen side by side. -# type: enum values: none, anaglyph, interlaced, topbottom, sidebyside -# 3d_mode = none - -# In-game chat console height, between 0.1 (10%) and 1.0 (100%). -# type: float min: 0.1 max: 1 -# console_height = 1.0 - -# In-game chat console background color (R,G,B). -# type: string -# console_color = (0,0,0) - -# In-game chat console background alpha (opaqueness, between 0 and 255). -# type: int min: 0 max: 255 -# console_alpha = 200 - -# Selection box border color (R,G,B). -# type: string -# selectionbox_color = (0,0,0) - -# Width of the selectionbox's lines around nodes. -# type: int min: 1 max: 5 -# selectionbox_width = 2 - -# Crosshair color (R,G,B). -# type: string -# crosshair_color = (255,255,255) - -# Crosshair alpha (opaqueness, between 0 and 255). -# type: int min: 0 max: 255 -# crosshair_alpha = 255 - -# Whether node texture animations should be desynchronized per mapblock. -# type: bool -# desynchronize_mapblock_texture_animation = true - -# Maximum proportion of current window to be used for hotbar. -# Useful if there's something to be displayed right or left of hotbar. -# type: float -# hud_hotbar_max_width = 1.0 - -# Modifies the size of the hudbar elements. -# type: float -# hud_scaling = 1.0 - -# Enables caching of facedir rotated meshes. -# type: bool -# enable_mesh_cache = false - -# Delay between mesh updates on the client in ms. Increasing this will slow -# down the rate of mesh updates, thus reducing jitter on slower clients. -# type: int min: 0 max: 50 -# mesh_generation_interval = 0 - -# Size of the MapBlock cache of the mesh generator. Increasing this will -# increase the cache hit %, reducing the data being copied from the main -# thread, thus reducing jitter. -# type: int min: 0 max: 1000 -# meshgen_block_cache_size = 20 - -# Enables minimap. -# type: bool -# enable_minimap = true - -# Shape of the minimap. Enabled = round, disabled = square. -# type: bool -# minimap_shape_round = true - -# True = 256 -# False = 128 -# Useable to make minimap smoother on slower machines. -# type: bool -# minimap_double_scan_height = true - -# Make fog and sky colors depend on daytime (dawn/sunset) and view direction. -# type: bool -# directional_colored_fog = true - -# The strength (darkness) of node ambient-occlusion shading. -# Lower is darker, Higher is lighter. The valid range of values for this -# setting is 0.25 to 4.0 inclusive. If the value is out of range it will be -# set to the nearest valid value. -# type: float min: 0.25 max: 4 -# ambient_occlusion_gamma = 2.2 - -# Enables animation of inventory items. -# type: bool -# inventory_items_animations = false - -# Android systems only: Tries to create inventory textures from meshes -# when no supported render was found. -# type: bool -# inventory_image_hack = false - -# Fraction of the visible distance at which fog starts to be rendered -# type: float min: 0 max: 0.99 -# fog_start = 0.4 - -# Makes all liquids opaque -# type: bool -# opaque_water = false - -### Menus - -# Use a cloud animation for the main menu background. -# type: bool -# menu_clouds = true - -# Scale gui by a user specified value. -# Use a nearest-neighbor-anti-alias filter to scale the GUI. -# This will smooth over some of the rough edges, and blend -# pixels when scaling down, at the cost of blurring some -# edge pixels when images are scaled by non-integer sizes. -# type: float -# gui_scaling = 1.0 - -# When gui_scaling_filter is true, all GUI images need to be -# filtered in software, but some images are generated directly -# to hardware (e.g. render-to-texture for nodes in inventory). -# type: bool -# gui_scaling_filter = false - -# When gui_scaling_filter_txr2img is true, copy those images -# from hardware to software for scaling. When false, fall back -# to the old scaling method, for video drivers that don't -# properly support downloading textures back from hardware. -# type: bool -# gui_scaling_filter_txr2img = true - -# Delay showing tooltips, stated in milliseconds. -# type: int -# tooltip_show_delay = 400 - -# Whether freetype fonts are used, requires freetype support to be compiled in. -# type: bool -# freetype = true - -# Path to TrueTypeFont or bitmap. -# type: path -# font_path = fonts/liberationsans.ttf - -# type: int -# font_size = 16 - -# Font shadow offset, if 0 then shadow will not be drawn. -# type: int -# font_shadow = 1 - -# Font shadow alpha (opaqueness, between 0 and 255). -# type: int min: 0 max: 255 -# font_shadow_alpha = 127 - -# type: path -# mono_font_path = fonts/Cousine-Regular.ttf - -# type: int -# mono_font_size = 15 - -# This font will be used for certain languages. -# type: path -# fallback_font_path = fonts/DroidSansFallbackFull.ttf - -# type: int -# fallback_font_size = 15 - -# type: int -# fallback_font_shadow = 1 - -# type: int min: 0 max: 255 -# fallback_font_shadow_alpha = 128 - -# Path to save screenshots at. -# type: path -# screenshot_path = - -# Format of screenshots. -# type: enum values: png, jpg, bmp, pcx, ppm, tga -# screenshot_format = png - -# Screenshot quality. Only used for JPEG format. -# 1 means worst quality; 100 means best quality. -# Use 0 for default quality. -# type: int min: 0 max: 100 -# screenshot_quality = 0 - -### Advanced - -# Adjust dpi configuration to your screen (non X11/Android only) e.g. for 4k screens. -# type: int -# screen_dpi = 72 - -# Windows systems only: Start Minetest with the command line window in the background. -# Contains the same information as the file debug.txt (default name). -# type: bool -# enable_console = false - -## Sound - -# type: bool -# enable_sound = true - -# type: float min: 0 max: 1 -# sound_volume = 0.7 - -## Advanced - -# Timeout for client to remove unused map data from memory. -# type: int -# client_unload_unused_data_timeout = 600 - -# Maximum number of mapblocks for client to be kept in memory. -# Set to -1 for unlimited amount. -# type: int -# client_mapblock_limit = 5000 - -# Whether to show the client debug info (has the same effect as hitting F5). -# type: bool -# show_debug = false - -# -# Server / Singleplayer -# - -# Name of the server, to be displayed when players join and in the serverlist. -# type: string -# server_name = Minetest server - -# Description of server, to be displayed when players join and in the serverlist. -# type: string -# server_description = mine here - -# Domain name of server, to be displayed in the serverlist. -# type: string -# server_address = game.minetest.net - -# Homepage of server, to be displayed in the serverlist. -# type: string -# server_url = http://minetest.net - -# Automaticaly report to the serverlist. -# type: bool -# server_announce = false - -# Announce to this serverlist. -# If you want to announce your ipv6 address, use serverlist_url = v6.servers.minetest.net. -# type: string -# serverlist_url = servers.minetest.net - -# Remove color codes from incoming chat messages -# Use this to stop players from being able to use color in their messages -# type: bool -# strip_color_codes = false - -## Network - -# Network port to listen (UDP). -# This value will be overridden when starting from the main menu. -# type: int -# port = 30000 - -# The network interface that the server listens on. -# type: string -# bind_address = - -# Enable to disallow old clients from connecting. -# Older clients are compatible in the sense that they will not crash when connecting -# to new servers, but they may not support all new features that you are expecting. -# type: bool -# strict_protocol_version_checking = false - -# Specifies URL from which client fetches media instead of using UDP. -# $filename should be accessible from $remote_media$filename via cURL -# (obviously, remote_media should end with a slash). -# Files that are not present will be fetched the usual way. -# type: string -# remote_media = - -# Enable/disable running an IPv6 server. An IPv6 server may be restricted -# to IPv6 clients, depending on system configuration. -# Ignored if bind_address is set. -# type: bool -# ipv6_server = false - -### Advanced - -# Maximum number of blocks that are simultaneously sent per client. -# type: int -# max_simultaneous_block_sends_per_client = 10 - -# Maximum number of blocks that are simultaneously sent in total. -# type: int -# max_simultaneous_block_sends_server_total = 40 - -# To reduce lag, block transfers are slowed down when a player is building something. -# This determines how long they are slowed down after placing or removing a node. -# type: float -# full_block_send_enable_min_time_from_building = 2.0 - -# Maximum number of packets sent per send step, if you have a slow connection -# try reducing it, but don't reduce it to a number below double of targeted -# client number. -# type: int -# max_packets_per_iteration = 1024 - -## Game - -# Default game when creating a new world. -# This will be overridden when creating a world from the main menu. -# type: string -# default_game = minetest - -# Message of the day displayed to players connecting. -# type: string -# motd = - -# Maximum number of players that can connect simultaneously. -# type: int -# max_users = 15 - -# World directory (everything in the world is stored here). -# Not needed if starting from the main menu. -# type: path -# map-dir = - -# Time in seconds for item entity (dropped items) to live. -# Setting it to -1 disables the feature. -# type: int -# item_entity_ttl = 900 - -# If enabled, show the server status message on player connection. -# type: bool -# show_statusline_on_connect = true - -# Enable players getting damage and dying. -# type: bool -# enable_damage = false - -# Enable creative mode for new created maps. -# type: bool -# creative_mode = false - -# A chosen map seed for a new map, leave empty for random. -# Will be overridden when creating a new world in the main menu. -# type: string -# fixed_map_seed = - -# New users need to input this password. -# type: string -# default_password = - -# The privileges that new users automatically get. -# See /privs in game for a full list on your server and mod configuration. -# type: string -# default_privs = interact, shout - -# Privileges that players with basic_privs can grant -# type: string -# basic_privs = interact, shout - -# Whether players are shown to clients without any range limit. -# Deprecated, use the setting player_transfer_distance instead. -# type: bool -# unlimited_player_transfer_distance = true - -# Defines the maximal player transfer distance in blocks (0 = unlimited). -# type: int -# player_transfer_distance = 0 - -# Whether to allow players to damage and kill each other. -# type: bool -# enable_pvp = true - -# If this is set, players will always (re)spawn at the given position. -# type: string -# static_spawnpoint = - -# If enabled, new players cannot join with an empty password. -# type: bool -# disallow_empty_password = false - -# If enabled, disable cheat prevention in multiplayer. -# type: bool -# disable_anticheat = false - -# If enabled, actions are recorded for rollback. -# This option is only read when server starts. -# type: bool -# enable_rollback_recording = false - -# A message to be displayed to all clients when the server shuts down. -# type: string -# kick_msg_shutdown = Server shutting down. - -# A message to be displayed to all clients when the server crashes. -# type: string -# kick_msg_crash = This server has experienced an internal error. You will now be disconnected. - -# Whether to ask clients to reconnect after a (Lua) crash. -# Set this to true if your server is set up to restart automatically. -# type: bool -# ask_reconnect_on_crash = false - -# From how far clients know about objects, stated in mapblocks (16 nodes). -# type: int -# active_object_send_range_blocks = 3 - -# How large area of blocks are subject to the active block stuff, stated in mapblocks (16 nodes). -# In active blocks objects are loaded and ABMs run. -# type: int -# active_block_range = 3 - -# From how far blocks are sent to clients, stated in mapblocks (16 nodes). -# type: int -# max_block_send_distance = 10 - -# Maximum number of forceloaded mapblocks. -# type: int -# max_forceloaded_blocks = 16 - -# Interval of sending time of day to clients. -# type: int -# time_send_interval = 5 - -# Controls length of day/night cycle. -# Examples: 72 = 20min, 360 = 4min, 1 = 24hour, 0 = day/night/whatever stays unchanged. -# type: int -# time_speed = 72 - -# Interval of saving important changes in the world, stated in seconds. -# type: float -# server_map_save_interval = 5.3 - -### Physics - -# type: float -# movement_acceleration_default = 3 - -# type: float -# movement_acceleration_air = 2 - -# type: float -# movement_acceleration_fast = 10 - -# type: float -# movement_speed_walk = 4 - -# type: float -# movement_speed_crouch = 1.35 - -# type: float -# movement_speed_fast = 20 - -# type: float -# movement_speed_climb = 3 - -# type: float -# movement_speed_jump = 6.5 - -# type: float -# movement_liquid_fluidity = 1 - -# type: float -# movement_liquid_fluidity_smooth = 0.5 - -# type: float -# movement_liquid_sink = 10 - -# type: float -# movement_gravity = 9.81 - -### Advanced - -# Handling for deprecated lua api calls: -# - legacy: (try to) mimic old behaviour (default for release). -# - log: mimic and log backtrace of deprecated call (default for debug). -# - error: abort on usage of deprecated call (suggested for mod developers). -# type: enum values: legacy, log, error -# deprecated_lua_api_handling = legacy - -# Number of extra blocks that can be loaded by /clearobjects at once. -# This is a trade-off between sqlite transaction overhead and -# memory consumption (4096=100MB, as a rule of thumb). -# type: int -# max_clearobjects_extra_loaded_blocks = 4096 - -# How much the server will wait before unloading unused mapblocks. -# Higher value is smoother, but will use more RAM. -# type: int -# server_unload_unused_data_timeout = 29 - -# Maximum number of statically stored objects in a block. -# type: int -# max_objects_per_block = 64 - -# See http://www.sqlite.org/pragma.html#pragma_synchronous -# type: enum values: 0, 1, 2 -# sqlite_synchronous = 2 - -# Length of a server tick and the interval at which objects are generally updated over network. -# type: float -# dedicated_server_step = 0.1 - -# Maxumim number of players to process per step, see `minetest.register_playerstep` -# type: int -# players_per_globalstep = 20 - -# Time in between active block management cycles -# type: float -# active_block_mgmt_interval = 2.0 - -# Length of time between ABM execution cycles -# type: float -# abm_interval = 1.0 - -# Length of time between NodeTimer execution cycles -# type: float -# nodetimer_interval = 0.2 - -# If enabled, invalid world data won't cause the server to shut down. -# Only enable this if you know what you are doing. -# type: bool -# ignore_world_load_errors = false - -# Max liquids processed per step. -# type: int -# liquid_loop_max = 100000 - -# The time (in seconds) that the liquids queue may grow beyond processing -# capacity until an attempt is made to decrease its size by dumping old queue -# items. A value of 0 disables the functionality. -# type: int -# liquid_queue_purge_time = 0 - -# Liquid update interval in seconds. -# type: float -# liquid_update = 1.0 - -# At this distance the server will aggressively optimize which blocks are sent to clients. -# Small values potentially improve performance a lot, at the expense of visible rendering glitches. -# (some blocks will not be rendered under water and in caves, as well as sometimes on land) -# Setting this to a value greater than max_block_send_distance disables this optimization. -# Stated in mapblocks (16 nodes) -# type: int min: 2 -# block_send_optimize_distance = 4 - -# If enabled the server will perform map block occlusion culling based on -# on the eye position of the player. This can reduce the number of blocks -# sent to the client 50-80%. The client will not longer receive most invisible -# so that the utility of noclip mode is reduced. -# type: bool -# server_side_occlusion_culling = true - -## Mapgen - -# Available map generators, can be used to restrict mapgens unsuitable -# for specific platforms and devices - -# mapgens_available = v6, v7p, flat - -# Name of map generator to be used when creating a new world. -# Creating a world in the main menu will override this. -# type: enum values: v5, v6, v7, flat, valleys, fractal, singlenode -# mg_name = v7 - -# Water surface level of the world. -# type: int -# water_level = 1 - -# From how far blocks are generated for clients, stated in mapblocks (16 nodes). -# type: int -# max_block_generate_distance = 6 - -# Limit of map generation, in nodes, in all 6 directions from (0, 0, 0). -# Only mapchunks completely within the mapgen limit are generated. -# Value is stored per-world. -# type: int min: 0 max: 31000 -# mapgen_limit = 31000 - -# Global map generation attributes. -# In Mapgen v6 the 'decorations' flag controls all decorations except trees -# and junglegrass, in all other mapgens this flag controls all decorations. -# Flags that are not specified in the flag string are not modified from the default. -# Flags starting with 'no' are used to explicitly disable them. -# type: flags possible values: caves, dungeons, light, decorations, nocaves, nodungeons, nolight, nodecorations -# mg_flags = caves,dungeons,light,decorations - -# Whether dungeons occasionally project from the terrain. -# type: bool -# projecting_dungeons = true - -### Advanced - -# Size of chunks to be generated at once by mapgen, stated in mapblocks (16 nodes). -# type: int -# chunksize = 5 - -# Dump the mapgen debug infos. -# type: bool -# enable_mapgen_debug_info = false - -# Maximum number of blocks that can be queued for loading. -# type: int -# emergequeue_limit_total = 256 - -# Maximum number of blocks to be queued that are to be loaded from file. -# Set to blank for an appropriate amount to be chosen automatically. -# type: int -# emergequeue_limit_diskonly = 32 - -# Maximum number of blocks to be queued that are to be generated. -# Set to blank for an appropriate amount to be chosen automatically. -# type: int -# emergequeue_limit_generate = 32 - -# Number of emerge threads to use. Make this field blank, or increase this number -# to use multiple threads. On multiprocessor systems, this will improve mapgen speed greatly -# at the cost of slightly buggy caves. -# type: int -# num_emerge_threads = 1 - -#### Biome API temperature and humidity noise parameters - -# Temperature variation for biomes. -# type: noise_params -# mg_biome_np_heat = 50, 50, (1000, 1000, 1000), 5349, 3, 0.5, 2.0 - -# Small-scale temperature variation for blending biomes on borders. -# type: noise_params -# mg_biome_np_heat_blend = 0, 1.5, (8, 8, 8), 13, 2, 1.0, 2.0 - -# Humidity variation for biomes. -# type: noise_params -# mg_biome_np_humidity = 50, 50, (1000, 1000, 1000), 842, 3, 0.5, 2.0 - -# Small-scale humidity variation for blending biomes on borders. -# type: noise_params -# mg_biome_np_humidity_blend = 0, 1.5, (8, 8, 8), 90003, 2, 1.0, 2.0 - -#### Mapgen v5 - -# Map generation attributes specific to Mapgen v5. -# Flags that are not specified in the flag string are not modified from the default. -# Flags starting with 'no' are used to explicitly disable them. -# type: flags possible values: caverns, nocaverns -# mgv5_spflags = caverns - -# Controls width of tunnels, a smaller value creates wider tunnels. -# type: float -# mgv5_cave_width = 0.125 - -# Y-level of cavern upper limit. -# type: int -# mgv5_cavern_limit = -256 - -# Y-distance over which caverns expand to full size. -# type: int -# mgv5_cavern_taper = 256 - -# Defines full size of caverns, smaller values create larger caverns. -# type: float -# mgv5_cavern_threshold = 0.7 - -# Variation of biome filler depth. -# type: noise_params -# mgv5_np_filler_depth = 0, 1, (150, 150, 150), 261, 4, 0.7, 2.0 - -# Variation of terrain vertical scale. -# When noise is < -0.55 terrain is near-flat. -# type: noise_params -# mgv5_np_factor = 0, 1, (250, 250, 250), 920381, 3, 0.45, 2.0 - -# Y-level of average terrain surface. -# type: noise_params -# mgv5_np_height = 0, 10, (250, 250, 250), 84174, 4, 0.5, 2.0 - -# First of 2 3D noises that together define tunnels. -# type: noise_params -# mgv5_np_cave1 = 0, 12, (50, 50, 50), 52534, 4, 0.5, 2.0 - -# Second of 2 3D noises that together define tunnels. -# type: noise_params -# mgv5_np_cave2 = 0, 12, (50, 50, 50), 10325, 4, 0.5, 2.0 - -# 3D noise defining giant caverns. -# type: noise_params -# mgv5_np_cavern = 0, 1, (384, 128, 384), 723, 5, 0.63, 2.0 - -#### Mapgen v6 - -# Map generation attributes specific to Mapgen v6. -# The 'snowbiomes' flag enables the new 5 biome system. -# When the new biome system is enabled jungles are automatically enabled and -# the 'jungles' flag is ignored. -# Flags that are not specified in the flag string are not modified from the default. -# Flags starting with 'no' are used to explicitly disable them. -# type: flags possible values: jungles, biomeblend, mudflow, snowbiomes, flat, trees, nojungles, nobiomeblend, nomudflow, nosnowbiomes, noflat, notrees -# mgv6_spflags = jungles,biomeblend,mudflow,snowbiomes,trees - -# Deserts occur when np_biome exceeds this value. -# When the new biome system is enabled, this is ignored. -# type: float -# mgv6_freq_desert = 0.45 - -# Sandy beaches occur when np_beach exceeds this value. -# type: float -# mgv6_freq_beach = 0.15 - -# Y-level of lower terrain and lakebeds. -# type: noise_params -# mgv6_np_terrain_base = -4, 20, (250, 250, 250), 82341, 5, 0.6, 2.0 - -# Y-level of higher (cliff-top) terrain. -# type: noise_params -# mgv6_np_terrain_higher = 20, 16, (500, 500, 500), 85039, 5, 0.6, 2.0 - -# Varies steepness of cliffs. -# type: noise_params -# mgv6_np_steepness = 0.85, 0.5, (125, 125, 125), -932, 5, 0.7, 2.0 - -# Defines areas of 'terrain_higher' (cliff-top terrain). -# type: noise_params -# mgv6_np_height_select = 0.5, 1, (250, 250, 250), 4213, 5, 0.69, 2.0 - -# Varies depth of biome surface nodes. -# type: noise_params -# mgv6_np_mud = 4, 2, (200, 200, 200), 91013, 3, 0.55, 2.0 - -# Defines areas with sandy beaches. -# type: noise_params -# mgv6_np_beach = 0, 1, (250, 250, 250), 59420, 3, 0.50, 2.0 - -# Temperature variation for biomes. -# type: noise_params -# mgv6_np_biome = 0, 1, (500, 500, 500), 9130, 3, 0.50, 2.0 - -# Variation of number of caves. -# type: noise_params -# mgv6_np_cave = 6, 6, (250, 250, 250), 34329, 3, 0.50, 2.0 - -# Humidity variation for biomes. -# type: noise_params -# mgv6_np_humidity = 0.5, 0.5, (500, 500, 500), 72384, 3, 0.50, 2.0 - -# Defines tree areas and tree density. -# type: noise_params -# mgv6_np_trees = 0, 1, (125, 125, 125), 2, 4, 0.66, 2.0 - -# Defines areas where trees have apples. -# type: noise_params -# mgv6_np_apple_trees = 0, 1, (100, 100, 100), 342902, 3, 0.45, 2.0 - -#### Mapgen v7 - -# Map generation attributes specific to Mapgen v7. -# The 'ridges' flag enables the rivers. -# Floatlands are currently experimental and subject to change. -# Flags that are not specified in the flag string are not modified from the default. -# Flags starting with 'no' are used to explicitly disable them. -# type: flags possible values: mountains, ridges, floatlands, caverns, nomountains, noridges, nofloatlands, nocaverns -# mgv7_spflags = mountains,ridges,nofloatlands,caverns - -# Controls width of tunnels, a smaller value creates wider tunnels. -# type: float -# mgv7_cave_width = 0.09 - -# Controls the density of floatland mountain terrain. -# Is an offset added to the 'np_mountain' noise value. -# type: float -# mgv7_float_mount_density = 0.6 - -# Typical maximum height, above and below midpoint, of floatland mountain terrain. -# type: float -# mgv7_float_mount_height = 128.0 - -# Y-level of floatland midpoint and lake surface. -# type: int -# mgv7_floatland_level = 1280 - -# Y-level to which floatland shadows extend. -# type: int -# mgv7_shadow_limit = 1024 - -# Y-level of cavern upper limit. -# type: int -# mgv7_cavern_limit = -256 - -# Y-distance over which caverns expand to full size. -# type: int -# mgv7_cavern_taper = 256 - -# Defines full size of caverns, smaller values create larger caverns. -# type: float -# mgv7_cavern_threshold = 0.7 - -# Y-level of higher (cliff-top) terrain. -# type: noise_params -# mgv7_np_terrain_base = 4, 70, (600, 600, 600), 82341, 5, 0.6, 2.0 - -# Y-level of lower terrain and lakebeds. -# type: noise_params -# mgv7_np_terrain_alt = 4, 25, (600, 600, 600), 5934, 5, 0.6, 2.0 - -# Varies roughness of terrain. -# Defines the 'persistence' value for terrain_base and terrain_alt noises. -# type: noise_params -# mgv7_np_terrain_persist = 0.6, 0.1, (2000, 2000, 2000), 539, 3, 0.6, 2.0 - -# Defines areas of higher (cliff-top) terrain and affects steepness of cliffs. -# type: noise_params -# mgv7_np_height_select = -8, 16, (500, 500, 500), 4213, 6, 0.7, 2.0 - -# Variation of biome filler depth. -# type: noise_params -# mgv7_np_filler_depth = 0, 1.2, (150, 150, 150), 261, 3, 0.7, 2.0 - -# Variation of maximum mountain height (in nodes). -# type: noise_params -# mgv7_np_mount_height = 256, 112, (1000, 1000, 1000), 72449, 3, 0.6, 2.0 - -# Defines large-scale river channel structure. -# type: noise_params -# mgv7_np_ridge_uwater = 0, 1, (1000, 1000, 1000), 85039, 5, 0.6, 2.0 - -# Defines areas of floatland smooth terrain. -# Smooth floatlands occur when noise > 0. -# type: noise_params -# mgv7_np_floatland_base = -0.6, 1.5, (600, 600, 600), 114, 5, 0.6, 2.0 - -# Variation of hill height and lake depth on floatland smooth terrain. -# type: noise_params -# mgv7_np_float_base_height = 48, 24, (300, 300, 300), 907, 4, 0.7, 2.0 - -# 3D noise defining mountain structure and height. -# Also defines structure of floatland mountain terrain. -# type: noise_params -# mgv7_np_mountain = -0.6, 1, (250, 350, 250), 5333, 5, 0.63, 2.0 - -# 3D noise defining structure of river canyon walls. -# type: noise_params -# mgv7_np_ridge = 0, 1, (100, 100, 100), 6467, 4, 0.75, 2.0 - -# 3D noise defining giant caverns. -# type: noise_params -# mgv7_np_cavern = 0, 1, (384, 128, 384), 723, 5, 0.63, 2.0 - -# First of 2 3D noises that together define tunnels. -# type: noise_params -# mgv7_np_cave1 = 0, 12, (61, 61, 61), 52534, 3, 0.5, 2.0 - -# Second of 2 3D noises that together define tunnels. -# type: noise_params -# mgv7_np_cave2 = 0, 12, (67, 67, 67), 10325, 3, 0.5, 2.0 - -#### Mapgen flat - -# Map generation attributes specific to Mapgen flat. -# Occasional lakes and hills can be added to the flat world. -# Flags that are not specified in the flag string are not modified from the default. -# Flags starting with 'no' are used to explicitly disable them. -# type: flags possible values: lakes, hills, nolakes, nohills -# mgflat_spflags = nolakes,nohills - -# Y of flat ground. -# type: int -# mgflat_ground_level = 8 - -# Y of upper limit of large pseudorandom caves. -# type: int -# mgflat_large_cave_depth = -33 - -# Controls width of tunnels, a smaller value creates wider tunnels. -# type: float -# mgflat_cave_width = 0.09 - -# Terrain noise threshold for lakes. -# Controls proportion of world area covered by lakes. -# Adjust towards 0.0 for a larger proportion. -# type: float -# mgflat_lake_threshold = -0.45 - -# Controls steepness/depth of lake depressions. -# type: float -# mgflat_lake_steepness = 48.0 - -# Terrain noise threshold for hills. -# Controls proportion of world area covered by hills. -# Adjust towards 0.0 for a larger proportion. -# type: float -# mgflat_hill_threshold = 0.45 - -# Controls steepness/height of hills. -# type: float -# mgflat_hill_steepness = 64.0 - -# Defines location and terrain of optional hills and lakes. -# type: noise_params -# mgflat_np_terrain = 0, 1, (600, 600, 600), 7244, 5, 0.6, 2.0 - -# Variation of biome filler depth. -# type: noise_params -# mgflat_np_filler_depth = 0, 1.2, (150, 150, 150), 261, 3, 0.7, 2.0 - -# First of 2 3D noises that together define tunnels. -# type: noise_params -# mgflat_np_cave1 = 0, 12, (61, 61, 61), 52534, 3, 0.5, 2.0 - -# Second of 2 3D noises that together define tunnels. -# type: noise_params -# mgflat_np_cave2 = 0, 12, (67, 67, 67), 10325, 3, 0.5, 2.0 - -#### Mapgen fractal - -# Controls width of tunnels, a smaller value creates wider tunnels. -# type: float -# mgfractal_cave_width = 0.09 - -# Choice of 18 fractals from 9 formulas. -# 1 = 4D "Roundy" mandelbrot set. -# 2 = 4D "Roundy" julia set. -# 3 = 4D "Squarry" mandelbrot set. -# 4 = 4D "Squarry" julia set. -# 5 = 4D "Mandy Cousin" mandelbrot set. -# 6 = 4D "Mandy Cousin" julia set. -# 7 = 4D "Variation" mandelbrot set. -# 8 = 4D "Variation" julia set. -# 9 = 3D "Mandelbrot/Mandelbar" mandelbrot set. -# 10 = 3D "Mandelbrot/Mandelbar" julia set. -# 11 = 3D "Christmas Tree" mandelbrot set. -# 12 = 3D "Christmas Tree" julia set. -# 13 = 3D "Mandelbulb" mandelbrot set. -# 14 = 3D "Mandelbulb" julia set. -# 15 = 3D "Cosine Mandelbulb" mandelbrot set. -# 16 = 3D "Cosine Mandelbulb" julia set. -# 17 = 4D "Mandelbulb" mandelbrot set. -# 18 = 4D "Mandelbulb" julia set. -# type: int min: 1 max: 18 -# mgfractal_fractal = 1 - -# Iterations of the recursive function. -# Controls the amount of fine detail. -# type: int -# mgfractal_iterations = 11 - -# Approximate (X,Y,Z) scale of fractal in nodes. -# type: v3f -# mgfractal_scale = (4096.0, 1024.0, 4096.0) - -# (X,Y,Z) offset of fractal from world centre in units of 'scale'. -# Used to move a suitable spawn area of low land close to (0, 0). -# The default is suitable for mandelbrot sets, it needs to be edited for julia sets. -# Range roughly -2 to 2. Multiply by 'scale' for offset in nodes. -# type: v3f -# mgfractal_offset = (1.79, 0.0, 0.0) - -# W co-ordinate of the generated 3D slice of a 4D fractal. -# Determines which 3D slice of the 4D shape is generated. -# Has no effect on 3D fractals. -# Range roughly -2 to 2. -# type: float -# mgfractal_slice_w = 0.0 - -# Julia set only: X component of hypercomplex constant determining julia shape. -# Range roughly -2 to 2. -# type: float -# mgfractal_julia_x = 0.33 - -# Julia set only: Y component of hypercomplex constant determining julia shape. -# Range roughly -2 to 2. -# type: float -# mgfractal_julia_y = 0.33 - -# Julia set only: Z component of hypercomplex constant determining julia shape. -# Range roughly -2 to 2. -# type: float -# mgfractal_julia_z = 0.33 - -# Julia set only: W component of hypercomplex constant determining julia shape. -# Has no effect on 3D fractals. -# Range roughly -2 to 2. -# type: float -# mgfractal_julia_w = 0.33 - -# Y-level of seabed. -# type: noise_params -# mgfractal_np_seabed = -14, 9, (600, 600, 600), 41900, 5, 0.6, 2.0 - -# Variation of biome filler depth. -# type: noise_params -# mgfractal_np_filler_depth = 0, 1.2, (150, 150, 150), 261, 3, 0.7, 2.0 - -# First of 2 3D noises that together define tunnels. -# type: noise_params -# mgfractal_np_cave1 = 0, 12, (61, 61, 61), 52534, 3, 0.5, 2.0 - -# Second of 2 3D noises that together define tunnels. -# type: noise_params -# mgfractal_np_cave2 = 0, 12, (67, 67, 67), 10325, 3, 0.5, 2.0 - -#### Mapgen Valleys - -##### General - -# Map generation attributes specific to Mapgen Valleys. -# 'altitude_chill' makes higher elevations colder, which may cause biome issues. -# 'humid_rivers' modifies the humidity around rivers and in areas where water would tend to pool, -# it may interfere with delicately adjusted biomes. -# Flags that are not specified in the flag string are not modified from the default. -# Flags starting with 'no' are used to explicitly disable them. -# type: flags possible values: altitude_chill, noaltitude_chill, humid_rivers, nohumid_rivers -# mg_valleys_spflags = altitude_chill,humid_rivers - -# The altitude at which temperature drops by 20C -# type: int -# mgvalleys_altitude_chill = 90 - -# Depth below which you'll find large caves. -# type: int -# mgvalleys_large_cave_depth = -33 - -# Creates unpredictable lava features in caves. -# These can make mining difficult. Zero disables them. (0-10) -# type: int -# mgvalleys_lava_features = 0 - -# Depth below which you'll find massive caves. -# type: int -# mgvalleys_massive_cave_depth = -256 - -# How deep to make rivers -# type: int -# mgvalleys_river_depth = 4 - -# How wide to make rivers -# type: int -# mgvalleys_river_size = 5 - -# Creates unpredictable water features in caves. -# These can make mining difficult. Zero disables them. (0-10) -# type: int -# mgvalleys_water_features = 0 - -# Controls width of tunnels, a smaller value creates wider tunnels. -# type: float -# mgvalleys_cave_width = 0.09 - -##### Noises - -# Caves and tunnels form at the intersection of the two noises -# type: noise_params -# mgvalleys_np_cave1 = 0, 12, (61, 61, 61), 52534, 3, 0.5, 2.0 - -# Caves and tunnels form at the intersection of the two noises -# type: noise_params -# mgvalleys_np_cave2 = 0, 12, (67, 67, 67), 10325, 3, 0.5, 2.0 - -# The depth of dirt or other filler -# type: noise_params -# mgvalleys_np_filler_depth = 0, 1.2, (256, 256, 256), 1605, 3, 0.5, 2.0 - -# Massive caves form here. -# type: noise_params -# mgvalleys_np_massive_caves = 0, 1, (768, 256, 768), 59033, 6, 0.63, 2.0 - -# River noise -- rivers occur close to zero -# type: noise_params -# mgvalleys_np_rivers = 0, 1, (256, 256, 256), -6050, 5, 0.6, 2.0 - -# Base terrain height -# type: noise_params -# mgvalleys_np_terrain_height = -10, 50, (1024, 1024, 1024), 5202, 6, 0.4, 2.0 - -# Raises terrain to make valleys around the rivers -# type: noise_params -# mgvalleys_np_valley_depth = 5, 4, (512, 512, 512), -1914, 1, 1.0, 2.0 - -# Slope and fill work together to modify the heights -# type: noise_params -# mgvalleys_np_inter_valley_fill = 0, 1, (256, 512, 256), 1993, 6, 0.8, 2.0 - -# Amplifies the valleys -# type: noise_params -# mgvalleys_np_valley_profile = 0.6, 0.5, (512, 512, 512), 777, 1, 1.0, 2.0 - -# Slope and fill work together to modify the heights -# type: noise_params -# mgvalleys_np_inter_valley_slope = 0.5, 0.5, (128, 128, 128), 746, 1, 1.0, 2.0 - -## Security - -# Prevent mods from doing insecure things like running shell commands. -# type: bool -# secure.enable_security = true - -# Comma-separated list of trusted mods that are allowed to access insecure -# functions even when mod security is on (via request_insecure_environment()). -# type: string -# secure.trusted_mods = - -# Comma-separated list of mods that are allowed to access HTTP APIs, which -# allow them to upload and download data to/from the internet. -# type: string -# secure.http_mods = - -## Advanced - -### Profiling - -# Load the game profiler to collect game profiling data. -# Provides a /profiler command to access the compiled profile. -# Useful for mod developers and server operators. -# type: bool -# profiler.load = false - -# The default format in which profiles are being saved, -# when calling `/profiler save [format]` without format. -# type: enum values: txt, csv, lua, json, json_pretty -# profiler.default_report_format = txt - -# The file path relative to your worldpath in which profiles will be saved to. -# type: string -# profiler.report_path = "" - -#### Instrumentation - -# Instrument the methods of entities on registration. -# type: bool -# instrument.entity = true - -# Instrument the action function of Active Block Modifiers on registration. -# type: bool -# instrument.abm = true - -# Instrument the action function of Loading Block Modifiers on registration. -# type: bool -# instrument.lbm = true - -# Instrument chatcommands on registration. -# type: bool -# instrument.chatcommand = true - -# Instrument global callback functions on registration. -# (anything you pass to a minetest.register_*() function) -# type: bool -# instrument.global_callback = true - -##### Advanced - -# Instrument builtin. -# This is usually only needed by core/builtin contributors -# type: bool -# instrument.builtin = false - -# Have the profiler instrument itself: -# * Instrument an empty function. -# This estimates the overhead, that instrumentation is adding (+1 function call). -# * Instrument the sampler being used to update the statistics. -# type: bool -# instrument.profiler = false - -# -# Client and Server -# - -# Name of the player. -# When running a server, clients connecting with this name are admins. -# When starting from the main menu, this is overridden. -# type: string -# name = - -# Set the language. Leave empty to use the system language. -# A restart is required after changing this. -# type: enum values: , be, ca, cs, da, de, en, eo, es, et, fr, he, hu, id, it, ja, jbo, ko, ky, lt, nb, nl, pl, pt, pt_BR, ro, ru, sr_Cyrl, tr, uk, zh_CN, zh_TW -# language = - -# Level of logging to be written to debug.txt: -# - (no logging) -# - none (messages with no level) -# - error -# - warning -# - action -# - info -# - verbose -# type: enum values: , none, error, warning, action, info, verbose -# debug_log_level = action - -# IPv6 support. -# type: bool -# enable_ipv6 = true - -## Advanced - -# Default timeout for cURL, stated in milliseconds. -# Only has an effect if compiled with cURL. -# type: int -# curl_timeout = 5000 - -# Limits number of parallel HTTP requests. Affects: -# - Media fetch if server uses remote_media setting. -# - Serverlist download and server announcement. -# - Downloads performed by main menu (e.g. mod manager). -# Only has an effect if compiled with cURL. -# type: int -# curl_parallel_limit = 8 - -# Maximum time in ms a file download (e.g. a mod download) may take. -# type: int -# curl_file_download_timeout = 300000 - -# Makes DirectX work with LuaJIT. Disable if it causes troubles. -# type: bool -# high_precision_fpu = true - -# Replaces the default main menu with a custom one. -# type: string -# main_menu_script = - -# type: int -# main_menu_game_mgr = 0 - -# type: int -# main_menu_mod_mgr = 1 - -# type: string -# modstore_download_url = https://forum.minetest.net/media/ - -# type: string -# modstore_listmods_url = https://forum.minetest.net/mmdb/mods/ - -# type: string -# modstore_details_url = https://forum.minetest.net/mmdb/mod/*/ - -# Print the engine's profiling data in regular intervals (in seconds). 0 = disable. Useful for developers. -# type: int -# profiler_print_interval = 0 - diff --git a/po/BlockColor.pot b/po/BlockColor.pot new file mode 100644 index 000000000..e09de5e9c --- /dev/null +++ b/po/BlockColor.pot @@ -0,0 +1,4688 @@ +# SOME DESCRIPTIVE TITLE. +# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER +# This file is distributed under the same license as the BlockColor package. +# FIRST AUTHOR , YEAR. +# +#, fuzzy +msgid "" +msgstr "" +"Project-Id-Version: BlockColor\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2017-05-21 17:40+0200\n" +"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" +"Last-Translator: FULL NAME \n" +"Language-Team: LANGUAGE \n" +"Language: \n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=CHARSET\n" +"Content-Transfer-Encoding: 8bit\n" + +#: builtin/client/init.lua +msgid "Respawn" +msgstr "" + +#: builtin/client/init.lua +msgid "You died." +msgstr "" + +#: builtin/fstk/ui.lua +msgid "The server has requested a reconnect:" +msgstr "" + +#: builtin/fstk/ui.lua +msgid "Main menu" +msgstr "" + +#: builtin/fstk/ui.lua +msgid "Reconnect" +msgstr "" + +#: builtin/fstk/ui.lua +msgid "An error occured in a Lua script, such as a mod:" +msgstr "" + +#: builtin/fstk/ui.lua +msgid "An error occured:" +msgstr "" + +#: builtin/fstk/ui.lua builtin/mainmenu/store.lua +msgid "Ok" +msgstr "" + +#: builtin/mainmenu/common.lua src/game.cpp +msgid "Loading..." +msgstr "" + +#: builtin/mainmenu/common.lua +msgid "Try reenabling public serverlist and check your internet connection." +msgstr "" + +#: builtin/mainmenu/common.lua +msgid "Server supports protocol versions between $1 and $2. " +msgstr "" + +#: builtin/mainmenu/common.lua +msgid "Server enforces protocol version $1. " +msgstr "" + +#: builtin/mainmenu/common.lua +msgid "We support protocol versions between version $1 and $2." +msgstr "" + +#: builtin/mainmenu/common.lua +msgid "We only support protocol version $1." +msgstr "" + +#: builtin/mainmenu/common.lua +msgid "Protocol version mismatch. " +msgstr "" + +#: builtin/mainmenu/dlg_config_world.lua +msgid "World:" +msgstr "" + +#: builtin/mainmenu/dlg_config_world.lua +msgid "Mod:" +msgstr "" + +#: builtin/mainmenu/dlg_config_world.lua builtin/mainmenu/tab_mods.lua +msgid "Dependencies:" +msgstr "" + +#: builtin/mainmenu/dlg_config_world.lua builtin/mainmenu/tab_mods.lua +msgid "Optional dependencies:" +msgstr "" + +#: builtin/mainmenu/dlg_config_world.lua +#: builtin/mainmenu/dlg_settings_advanced.lua src/guiKeyChangeMenu.cpp +msgid "Save" +msgstr "" + +#: builtin/mainmenu/dlg_config_world.lua builtin/mainmenu/dlg_create_world.lua +#: builtin/mainmenu/dlg_delete_mod.lua builtin/mainmenu/dlg_rename_modpack.lua +#: builtin/mainmenu/dlg_settings_advanced.lua src/guiKeyChangeMenu.cpp +#: src/guiPasswordChange.cpp src/keycode.cpp +msgid "Cancel" +msgstr "" + +#: builtin/mainmenu/dlg_config_world.lua +msgid "Disable MP" +msgstr "" + +#: builtin/mainmenu/dlg_config_world.lua +msgid "Enable MP" +msgstr "" + +#: builtin/mainmenu/dlg_config_world.lua +msgid "enabled" +msgstr "" + +#: builtin/mainmenu/dlg_config_world.lua +msgid "Disable all" +msgstr "" + +#: builtin/mainmenu/dlg_config_world.lua +msgid "Enable all" +msgstr "" + +#: builtin/mainmenu/dlg_config_world.lua +msgid "" +"Failed to enable mod \"$1\" as it contains disallowed characters. Only " +"chararacters [a-z0-9_] are allowed." +msgstr "" + +#: builtin/mainmenu/dlg_create_world.lua +msgid "World name" +msgstr "" + +#: builtin/mainmenu/dlg_create_world.lua +msgid "Seed" +msgstr "" + +#: builtin/mainmenu/dlg_create_world.lua +msgid "Create" +msgstr "" + +#: builtin/mainmenu/dlg_create_world.lua +msgid "You have no subgames installed." +msgstr "" + +#: builtin/mainmenu/dlg_create_world.lua +msgid "Download one from minetest.net" +msgstr "" + +#: builtin/mainmenu/dlg_create_world.lua +msgid "Warning: The minimal development test is meant for developers." +msgstr "" + +#: builtin/mainmenu/dlg_create_world.lua +msgid "Download a subgame, such as minetest_game, from minetest.net" +msgstr "" + +#: builtin/mainmenu/dlg_create_world.lua +msgid "A world named \"$1\" already exists" +msgstr "" + +#: builtin/mainmenu/dlg_create_world.lua +msgid "No worldname given or no game selected" +msgstr "" + +#: builtin/mainmenu/dlg_delete_mod.lua +msgid "Are you sure you want to delete \"$1\"?" +msgstr "" + +#: builtin/mainmenu/dlg_delete_mod.lua builtin/mainmenu/tab_server.lua +#: builtin/mainmenu/tab_singleplayer.lua src/keycode.cpp +msgid "Delete" +msgstr "" + +#: builtin/mainmenu/dlg_delete_mod.lua +msgid "Modmgr: failed to delete \"$1\"" +msgstr "" + +#: builtin/mainmenu/dlg_delete_mod.lua +msgid "Modmgr: invalid modpath \"$1\"" +msgstr "" + +#: builtin/mainmenu/dlg_delete_world.lua +msgid "Delete World \"$1\"?" +msgstr "" + +#: builtin/mainmenu/dlg_delete_world.lua builtin/mainmenu/tab_settings.lua +msgid "Yes" +msgstr "" + +#: builtin/mainmenu/dlg_delete_world.lua builtin/mainmenu/tab_settings.lua +msgid "No" +msgstr "" + +#: builtin/mainmenu/dlg_rename_modpack.lua +msgid "Rename Modpack:" +msgstr "" + +#: builtin/mainmenu/dlg_rename_modpack.lua +msgid "Accept" +msgstr "" + +#: builtin/mainmenu/dlg_settings_advanced.lua +msgid "Games" +msgstr "" + +#: builtin/mainmenu/dlg_settings_advanced.lua builtin/mainmenu/tab_mods.lua +msgid "Mods" +msgstr "" + +#: builtin/mainmenu/dlg_settings_advanced.lua +msgid "(No description of setting given)" +msgstr "" + +#: builtin/mainmenu/dlg_settings_advanced.lua +msgid "Please enter a comma seperated list of flags." +msgstr "" + +#: builtin/mainmenu/dlg_settings_advanced.lua +msgid "Possible values are: " +msgstr "" + +#: builtin/mainmenu/dlg_settings_advanced.lua +msgid "" +"Format: , , (, , ), , " +", " +msgstr "" + +#: builtin/mainmenu/dlg_settings_advanced.lua +msgid "Optionally the lacunarity can be appended with a leading comma." +msgstr "" + +#: builtin/mainmenu/dlg_settings_advanced.lua +msgid "Format is 3 numbers separated by commas and inside brackets." +msgstr "" + +#: builtin/mainmenu/dlg_settings_advanced.lua +msgid "Disabled" +msgstr "" + +#: builtin/mainmenu/dlg_settings_advanced.lua +msgid "Enabled" +msgstr "" + +#: builtin/mainmenu/dlg_settings_advanced.lua +msgid "Browse" +msgstr "" + +#: builtin/mainmenu/dlg_settings_advanced.lua +msgid "Please enter a valid integer." +msgstr "" + +#: builtin/mainmenu/dlg_settings_advanced.lua +msgid "The value must be at least $1." +msgstr "" + +#: builtin/mainmenu/dlg_settings_advanced.lua +msgid "The value must not be larger than $1." +msgstr "" + +#: builtin/mainmenu/dlg_settings_advanced.lua +msgid "Please enter a valid number." +msgstr "" + +#: builtin/mainmenu/dlg_settings_advanced.lua +msgid "\"$1\" is not a valid flag." +msgstr "" + +#: builtin/mainmenu/dlg_settings_advanced.lua +msgid "Select path" +msgstr "" + +#: builtin/mainmenu/dlg_settings_advanced.lua builtin/mainmenu/store.lua +#: builtin/mainmenu/tab_online.lua +msgid "Search" +msgstr "" + +#: builtin/mainmenu/dlg_settings_advanced.lua +msgid "< Back to Settings page" +msgstr "" + +#: builtin/mainmenu/dlg_settings_advanced.lua +msgid "Edit" +msgstr "" + +#: builtin/mainmenu/dlg_settings_advanced.lua +msgid "Restore Default" +msgstr "" + +#: builtin/mainmenu/dlg_settings_advanced.lua +msgid "Show technical names" +msgstr "" + +#: builtin/mainmenu/modmgr.lua +msgid "Install Mod: file: \"$1\"" +msgstr "" + +#: builtin/mainmenu/modmgr.lua +msgid "" +"\n" +"Install Mod: unsupported filetype \"$1\" or broken archive" +msgstr "" + +#: builtin/mainmenu/modmgr.lua +msgid "Failed to install $1 to $2" +msgstr "" + +#: builtin/mainmenu/modmgr.lua +msgid "Install Mod: unable to find suitable foldername for modpack $1" +msgstr "" + +#: builtin/mainmenu/modmgr.lua +msgid "Install Mod: unable to find real modname for: $1" +msgstr "" + +#: builtin/mainmenu/modmgr.lua +msgid "Subgame Mods" +msgstr "" + +#: builtin/mainmenu/store.lua +msgid "Unsorted" +msgstr "" + +#: builtin/mainmenu/store.lua +msgid "Downloading $1, please wait..." +msgstr "" + +#: builtin/mainmenu/store.lua +msgid "Successfully installed:" +msgstr "" + +#: builtin/mainmenu/store.lua +msgid "Shortname:" +msgstr "" + +#: builtin/mainmenu/store.lua +msgid "Rating" +msgstr "" + +#: builtin/mainmenu/store.lua +msgid "re-Install" +msgstr "" + +#: builtin/mainmenu/store.lua +msgid "Install" +msgstr "" + +#: builtin/mainmenu/store.lua +msgid "Close store" +msgstr "" + +#: builtin/mainmenu/store.lua +msgid "Page $1 of $2" +msgstr "" + +#: builtin/mainmenu/tab_credits.lua +msgid "Credits" +msgstr "" + +#: builtin/mainmenu/tab_credits.lua +msgid "Dedication of the current release" +msgstr "" + +#: builtin/mainmenu/tab_credits.lua +msgid "BlockColor Developers" +msgstr "" + +#: builtin/mainmenu/tab_credits.lua +msgid "MultiCraft Developers" +msgstr "" + +#: builtin/mainmenu/tab_credits.lua +msgid "Minetest Developers" +msgstr "" + +#: builtin/mainmenu/tab_credits.lua +msgid "Active Contributors" +msgstr "" + +#: builtin/mainmenu/tab_credits.lua +msgid "Previous Core Developers" +msgstr "" + +#: builtin/mainmenu/tab_credits.lua +msgid "Previous Contributors" +msgstr "" + +#: builtin/mainmenu/tab_local.lua +msgid "New" +msgstr "" + +#: builtin/mainmenu/tab_local.lua +msgid "Configure" +msgstr "" + +#: builtin/mainmenu/tab_local.lua +msgid "Select World:" +msgstr "" + +#: builtin/mainmenu/tab_local.lua builtin/mainmenu/tab_simple_main.lua +msgid "Creative Mode" +msgstr "" + +#: builtin/mainmenu/tab_local.lua builtin/mainmenu/tab_simple_main.lua +msgid "Enable Damage" +msgstr "" + +#: builtin/mainmenu/tab_local.lua +msgid "Host Server" +msgstr "" + +#: builtin/mainmenu/tab_local.lua +msgid "Host Game" +msgstr "" + +#: builtin/mainmenu/tab_local.lua +msgid "Announce Server" +msgstr "" + +#: builtin/mainmenu/tab_local.lua +msgid "Name/Password" +msgstr "" + +#: builtin/mainmenu/tab_local.lua +msgid "Bind Address" +msgstr "" + +#: builtin/mainmenu/tab_local.lua +msgid "Port" +msgstr "" + +#: builtin/mainmenu/tab_local.lua +msgid "Server Port" +msgstr "" + +#: builtin/mainmenu/tab_local.lua +msgid "Play Game" +msgstr "" + +#: builtin/mainmenu/tab_local.lua +msgid "No world created or selected!" +msgstr "" + +#: builtin/mainmenu/tab_local.lua +msgid "Local Game" +msgstr "" + +#: builtin/mainmenu/tab_mods.lua +msgid "Installed Mods:" +msgstr "" + +#: builtin/mainmenu/tab_mods.lua +msgid "No mod description available" +msgstr "" + +#: builtin/mainmenu/tab_mods.lua +msgid "Mod information:" +msgstr "" + +#: builtin/mainmenu/tab_mods.lua +msgid "Rename" +msgstr "" + +#: builtin/mainmenu/tab_mods.lua +msgid "Uninstall selected modpack" +msgstr "" + +#: builtin/mainmenu/tab_mods.lua +msgid "No dependencies." +msgstr "" + +#: builtin/mainmenu/tab_mods.lua +msgid "Uninstall selected mod" +msgstr "" + +#: builtin/mainmenu/tab_mods.lua +msgid "Select Mod File:" +msgstr "" + +#: builtin/mainmenu/tab_online.lua +msgid "Address / Port" +msgstr "" + +#: builtin/mainmenu/tab_online.lua builtin/mainmenu/tab_simple_main.lua +msgid "Name / Password" +msgstr "" + +#: builtin/mainmenu/tab_online.lua builtin/mainmenu/tab_simple_main.lua +msgid "Connect" +msgstr "" + +#: builtin/mainmenu/tab_online.lua builtin/mainmenu/tab_simple_main.lua +msgid "Del. Favorite" +msgstr "" + +#: builtin/mainmenu/tab_online.lua builtin/mainmenu/tab_simple_main.lua +msgid "Favorite" +msgstr "" + +#: builtin/mainmenu/tab_online.lua builtin/mainmenu/tab_simple_main.lua +msgid "Ping" +msgstr "" + +#: builtin/mainmenu/tab_online.lua builtin/mainmenu/tab_simple_main.lua +msgid "Creative mode" +msgstr "" + +#: builtin/mainmenu/tab_online.lua builtin/mainmenu/tab_simple_main.lua +msgid "Damage enabled" +msgstr "" + +#: builtin/mainmenu/tab_online.lua builtin/mainmenu/tab_simple_main.lua +msgid "PvP enabled" +msgstr "" + +#: builtin/mainmenu/tab_online.lua +msgid "Multiplayer" +msgstr "" + +#: builtin/mainmenu/tab_settings.lua +msgid "Opaque Leaves" +msgstr "" + +#: builtin/mainmenu/tab_settings.lua +msgid "Simple Leaves" +msgstr "" + +#: builtin/mainmenu/tab_settings.lua +msgid "Fancy Leaves" +msgstr "" + +#: builtin/mainmenu/tab_settings.lua +msgid "Node Outlining" +msgstr "" + +#: builtin/mainmenu/tab_settings.lua +msgid "Node Highlighting" +msgstr "" + +#: builtin/mainmenu/tab_settings.lua builtin/mainmenu/tab_texturepacks.lua +msgid "None" +msgstr "" + +#: builtin/mainmenu/tab_settings.lua +msgid "No Filter" +msgstr "" + +#: builtin/mainmenu/tab_settings.lua +msgid "Bilinear Filter" +msgstr "" + +#: builtin/mainmenu/tab_settings.lua +msgid "Trilinear Filter" +msgstr "" + +#: builtin/mainmenu/tab_settings.lua +msgid "No Mipmap" +msgstr "" + +#: builtin/mainmenu/tab_settings.lua +msgid "Mipmap" +msgstr "" + +#: builtin/mainmenu/tab_settings.lua +msgid "Mipmap + Aniso. Filter" +msgstr "" + +#: builtin/mainmenu/tab_settings.lua +msgid "2x" +msgstr "" + +#: builtin/mainmenu/tab_settings.lua +msgid "4x" +msgstr "" + +#: builtin/mainmenu/tab_settings.lua +msgid "8x" +msgstr "" + +#: builtin/mainmenu/tab_settings.lua +msgid "Are you sure to reset your singleplayer world?" +msgstr "" + +#: builtin/mainmenu/tab_settings.lua +msgid "Smooth Lighting" +msgstr "" + +#: builtin/mainmenu/tab_settings.lua +msgid "Particles" +msgstr "" + +#: builtin/mainmenu/tab_settings.lua +msgid "3D Clouds" +msgstr "" + +#: builtin/mainmenu/tab_settings.lua +msgid "Opaque Water" +msgstr "" + +#: builtin/mainmenu/tab_settings.lua +msgid "Connected Glass" +msgstr "" + +#: builtin/mainmenu/tab_settings.lua +msgid "Texturing:" +msgstr "" + +#: builtin/mainmenu/tab_settings.lua +msgid "Antialiasing:" +msgstr "" + +#: builtin/mainmenu/tab_settings.lua +msgid "Screen:" +msgstr "" + +#: builtin/mainmenu/tab_settings.lua +msgid "Autosave screen size" +msgstr "" + +#: builtin/mainmenu/tab_settings.lua src/settings_translation_file.cpp +msgid "Shaders" +msgstr "" + +#: builtin/mainmenu/tab_settings.lua +msgid "Reset singleplayer world" +msgstr "" + +#: builtin/mainmenu/tab_settings.lua +msgid "Change keys" +msgstr "" + +#: builtin/mainmenu/tab_settings.lua +msgid "Advanced Settings" +msgstr "" + +#: builtin/mainmenu/tab_settings.lua +msgid "Touchthreshold (px)" +msgstr "" + +#: builtin/mainmenu/tab_settings.lua +msgid "Bump Mapping" +msgstr "" + +#: builtin/mainmenu/tab_settings.lua src/settings_translation_file.cpp +msgid "Tone Mapping" +msgstr "" + +#: builtin/mainmenu/tab_settings.lua +msgid "Normal Mapping" +msgstr "" + +#: builtin/mainmenu/tab_settings.lua src/settings_translation_file.cpp +msgid "Parallax Occlusion" +msgstr "" + +#: builtin/mainmenu/tab_settings.lua +msgid "Waving Water" +msgstr "" + +#: builtin/mainmenu/tab_settings.lua +msgid "Waving Leaves" +msgstr "" + +#: builtin/mainmenu/tab_settings.lua +msgid "Waving Plants" +msgstr "" + +#: builtin/mainmenu/tab_settings.lua +msgid "To enable shaders the OpenGL driver needs to be used." +msgstr "" + +#: builtin/mainmenu/tab_settings.lua +msgid "Settings" +msgstr "" + +#: builtin/mainmenu/tab_simple_main.lua +msgid "Start Singleplayer" +msgstr "" + +#: builtin/mainmenu/tab_simple_main.lua +msgid "Config mods" +msgstr "" + +#: builtin/mainmenu/tab_simple_main.lua +msgid "Main" +msgstr "" + +#: builtin/mainmenu/tab_texturepacks.lua +msgid "Select texture pack:" +msgstr "" + +#: builtin/mainmenu/tab_texturepacks.lua +msgid "No information available" +msgstr "" + +#: builtin/mainmenu/tab_texturepacks.lua +msgid "Texturepacks" +msgstr "" + +#: src/client.cpp +msgid "Connection timed out." +msgstr "" + +#: src/client.cpp +msgid "Loading textures..." +msgstr "" + +#: src/client.cpp +msgid "Rebuilding shaders..." +msgstr "" + +#: src/client.cpp +msgid "Initializing nodes..." +msgstr "" + +#: src/client.cpp +msgid "Initializing nodes" +msgstr "" + +#: src/client.cpp +msgid "Done!" +msgstr "" + +#: src/client/clientlauncher.cpp +msgid "Main Menu" +msgstr "" + +#: src/client/clientlauncher.cpp +msgid "Player name too long." +msgstr "" + +#: src/client/clientlauncher.cpp +msgid "Connection error (timed out?)" +msgstr "" + +#: src/client/clientlauncher.cpp +msgid "Please choose a name!" +msgstr "" + +#: src/client/clientlauncher.cpp +msgid "No world selected and no address provided. Nothing to do." +msgstr "" + +#: src/client/clientlauncher.cpp +msgid "Provided world path doesn't exist: " +msgstr "" + +#: src/client/clientlauncher.cpp +msgid "Could not find or load game \"" +msgstr "" + +#: src/client/clientlauncher.cpp +msgid "Invalid gamespec." +msgstr "" + +#: src/fontengine.cpp +msgid "needs_fallback_font" +msgstr "" + +#: src/game.cpp +msgid "Shutting down..." +msgstr "" + +#: src/game.cpp +msgid "Creating server..." +msgstr "" + +#: src/game.cpp +msgid "Creating client..." +msgstr "" + +#: src/game.cpp +msgid "Resolving address..." +msgstr "" + +#: src/game.cpp +msgid "Connecting to server..." +msgstr "" + +#: src/game.cpp +msgid "Item definitions..." +msgstr "" + +#: src/game.cpp +msgid "Node definitions..." +msgstr "" + +#: src/game.cpp +msgid "Media..." +msgstr "" + +#: src/game.cpp +msgid "KiB/s" +msgstr "" + +#: src/game.cpp +msgid "MiB/s" +msgstr "" + +#: src/game.cpp +msgid "Volume changed to 100%" +msgstr "" + +#: src/game.cpp +msgid "Volume changed to 0%" +msgstr "" + +#: src/game.cpp +#, c-format +msgid "Volume changed to %d%%" +msgstr "" + +#: src/game.cpp src/guiFormSpecMenu.cpp +msgid "ok" +msgstr "" + +#: src/game.cpp +msgid "" +"Default Controls:\n" +"No menu visible:\n" +"- single tap: button activate\n" +"- double tap: place/use\n" +"- slide finger: look around\n" +"Menu/Inventory visible:\n" +"- double tap (outside):\n" +" -->close\n" +"- touch stack, touch slot:\n" +" --> move stack\n" +"- touch&drag, tap 2nd finger\n" +" --> place single item to slot\n" +msgstr "" + +#: src/game.cpp +#, c-format +msgid "" +"Controls:\n" +"- %s: move forwards\n" +"- %s: move backwards\n" +"- %s: move left\n" +"- %s: move right\n" +"- %s: jump/climb\n" +"- %s: sneak/go down\n" +"- %s: drop item\n" +"- %s: inventory\n" +"- Mouse: turn/look\n" +"- Mouse left: dig/punch\n" +"- Mouse right: place/use\n" +"- Mouse wheel: select item\n" +"- %s: chat\n" +msgstr "" + +#: src/game.cpp +msgid "Continue" +msgstr "" + +#: src/game.cpp +msgid "Change Password" +msgstr "" + +#: src/game.cpp +msgid "Game paused" +msgstr "" + +#: src/game.cpp +msgid "Sound Volume" +msgstr "" + +#: src/game.cpp +msgid "Change Keys" +msgstr "" + +#: src/game.cpp +msgid "Save and Exit" +msgstr "" + +#: src/game.cpp +msgid "Close game" +msgstr "" + +#: src/game.cpp +msgid "Game info:" +msgstr "" + +#: src/game.cpp +msgid "- Mode: " +msgstr "" + +#: src/game.cpp +msgid "Migrating world..." +msgstr "" + +#: src/game.cpp +msgid "Remote server" +msgstr "" + +#: src/game.cpp +msgid "- Address: " +msgstr "" + +#: src/game.cpp +msgid "Hosting server" +msgstr "" + +#: src/game.cpp +msgid "- Port: " +msgstr "" + +#: src/game.cpp +msgid "Singleplayer" +msgstr "" + +#: src/game.cpp +msgid "On" +msgstr "" + +#: src/game.cpp +msgid "Off" +msgstr "" + +#: src/game.cpp +msgid "- Damage: " +msgstr "" + +#: src/game.cpp +msgid "- Creative Mode: " +msgstr "" + +#: src/game.cpp +msgid "- PvP: " +msgstr "" + +#: src/game.cpp +msgid "- Public: " +msgstr "" + +#: src/game.cpp +msgid "- Server Name: " +msgstr "" + +#: src/game.cpp +msgid "" +"\n" +"Check debug.txt for details." +msgstr "" + +#: src/guiFormSpecMenu.cpp +msgid "Proceed" +msgstr "" + +#: src/guiFormSpecMenu.cpp +msgid "Enter " +msgstr "" + +#: src/guiKeyChangeMenu.cpp +msgid "" +"Keybindings. (If this menu screws up, remove stuff from multicraft.conf)" +msgstr "" + +#: src/guiKeyChangeMenu.cpp +msgid "\"Use\" = climb down" +msgstr "" + +#: src/guiKeyChangeMenu.cpp +msgid "Double tap \"jump\" to toggle fly" +msgstr "" + +#: src/guiKeyChangeMenu.cpp +msgid "Key already in use" +msgstr "" + +#: src/guiKeyChangeMenu.cpp +msgid "press key" +msgstr "" + +#: src/guiKeyChangeMenu.cpp +msgid "Forward" +msgstr "" + +#: src/guiKeyChangeMenu.cpp +msgid "Backward" +msgstr "" + +#: src/guiKeyChangeMenu.cpp src/keycode.cpp +msgid "Left" +msgstr "" + +#: src/guiKeyChangeMenu.cpp src/keycode.cpp +msgid "Right" +msgstr "" + +#: src/guiKeyChangeMenu.cpp +msgid "Use" +msgstr "" + +#: src/guiKeyChangeMenu.cpp +msgid "Jump" +msgstr "" + +#: src/guiKeyChangeMenu.cpp +msgid "Sneak" +msgstr "" + +#: src/guiKeyChangeMenu.cpp +msgid "Drop" +msgstr "" + +#: src/guiKeyChangeMenu.cpp +msgid "Inventory" +msgstr "" + +#: src/guiKeyChangeMenu.cpp +msgid "Prev. item" +msgstr "" + +#: src/guiKeyChangeMenu.cpp +msgid "Next item" +msgstr "" + +#: src/guiKeyChangeMenu.cpp +msgid "Mute" +msgstr "" + +#: src/guiKeyChangeMenu.cpp +msgid "Dec. volume" +msgstr "" + +#: src/guiKeyChangeMenu.cpp +msgid "Inc. volume" +msgstr "" + +#: src/guiKeyChangeMenu.cpp +msgid "Chat" +msgstr "" + +#: src/guiKeyChangeMenu.cpp +msgid "Command" +msgstr "" + +#: src/guiKeyChangeMenu.cpp +msgid "Local command" +msgstr "" + +#: src/guiKeyChangeMenu.cpp +msgid "Console" +msgstr "" + +#: src/guiKeyChangeMenu.cpp +msgid "Toggle fly" +msgstr "" + +#: src/guiKeyChangeMenu.cpp +msgid "Toggle fast" +msgstr "" + +#: src/guiKeyChangeMenu.cpp +msgid "Toggle Cinematic" +msgstr "" + +#: src/guiKeyChangeMenu.cpp +msgid "Toggle noclip" +msgstr "" + +#: src/guiKeyChangeMenu.cpp +msgid "Range select" +msgstr "" + +#: src/guiKeyChangeMenu.cpp src/settings_translation_file.cpp +msgid "Print stacks" +msgstr "" + +#: src/guiKeyChangeMenu.cpp src/keycode.cpp +msgid "Zoom" +msgstr "" + +#: src/guiPasswordChange.cpp +msgid "Old Password" +msgstr "" + +#: src/guiPasswordChange.cpp +msgid "New Password" +msgstr "" + +#: src/guiPasswordChange.cpp +msgid "Confirm Password" +msgstr "" + +#: src/guiPasswordChange.cpp +msgid "Change" +msgstr "" + +#: src/guiPasswordChange.cpp +msgid "Passwords do not match!" +msgstr "" + +#: src/guiVolumeChange.cpp +msgid "Sound Volume: " +msgstr "" + +#: src/guiVolumeChange.cpp +msgid "Exit" +msgstr "" + +#: src/keycode.cpp +msgid "Left Button" +msgstr "" + +#: src/keycode.cpp +msgid "Right Button" +msgstr "" + +#: src/keycode.cpp +msgid "Middle Button" +msgstr "" + +#: src/keycode.cpp +msgid "X Button 1" +msgstr "" + +#: src/keycode.cpp +msgid "X Button 2" +msgstr "" + +#: src/keycode.cpp +msgid "Back" +msgstr "" + +#: src/keycode.cpp +msgid "Tab" +msgstr "" + +#: src/keycode.cpp +msgid "Clear" +msgstr "" + +#: src/keycode.cpp +msgid "Return" +msgstr "" + +#: src/keycode.cpp +msgid "Shift" +msgstr "" + +#: src/keycode.cpp +msgid "Control" +msgstr "" + +#: src/keycode.cpp +msgid "Menu" +msgstr "" + +#: src/keycode.cpp +msgid "Pause" +msgstr "" + +#: src/keycode.cpp +msgid "Caps Lock" +msgstr "" + +#: src/keycode.cpp +msgid "Space" +msgstr "" + +#: src/keycode.cpp +msgid "Prior" +msgstr "" + +#: src/keycode.cpp +msgid "Next" +msgstr "" + +#: src/keycode.cpp +msgid "End" +msgstr "" + +#: src/keycode.cpp +msgid "Home" +msgstr "" + +#: src/keycode.cpp +msgid "Up" +msgstr "" + +#: src/keycode.cpp +msgid "Down" +msgstr "" + +#: src/keycode.cpp +msgid "Select" +msgstr "" + +#: src/keycode.cpp +msgid "Print" +msgstr "" + +#: src/keycode.cpp +msgid "Execute" +msgstr "" + +#: src/keycode.cpp +msgid "Snapshot" +msgstr "" + +#: src/keycode.cpp +msgid "Insert" +msgstr "" + +#: src/keycode.cpp +msgid "Help" +msgstr "" + +#: src/keycode.cpp +msgid "Left Windows" +msgstr "" + +#: src/keycode.cpp +msgid "Right Windows" +msgstr "" + +#: src/keycode.cpp +msgid "Numpad 0" +msgstr "" + +#: src/keycode.cpp +msgid "Numpad 1" +msgstr "" + +#: src/keycode.cpp +msgid "Numpad 2" +msgstr "" + +#: src/keycode.cpp +msgid "Numpad 3" +msgstr "" + +#: src/keycode.cpp +msgid "Numpad 4" +msgstr "" + +#: src/keycode.cpp +msgid "Numpad 5" +msgstr "" + +#: src/keycode.cpp +msgid "Numpad 6" +msgstr "" + +#: src/keycode.cpp +msgid "Numpad 7" +msgstr "" + +#: src/keycode.cpp +msgid "Numpad 8" +msgstr "" + +#: src/keycode.cpp +msgid "Numpad 9" +msgstr "" + +#: src/keycode.cpp +msgid "Numpad *" +msgstr "" + +#: src/keycode.cpp +msgid "Numpad +" +msgstr "" + +#: src/keycode.cpp +msgid "Numpad ." +msgstr "" + +#: src/keycode.cpp +msgid "Numpad -" +msgstr "" + +#: src/keycode.cpp +msgid "Numpad /" +msgstr "" + +#: src/keycode.cpp +msgid "Num Lock" +msgstr "" + +#: src/keycode.cpp +msgid "Scroll Lock" +msgstr "" + +#: src/keycode.cpp +msgid "Left Shift" +msgstr "" + +#: src/keycode.cpp +msgid "Right Shift" +msgstr "" + +#: src/keycode.cpp +msgid "Left Control" +msgstr "" + +#: src/keycode.cpp +msgid "Right Control" +msgstr "" + +#: src/keycode.cpp +msgid "Left Menu" +msgstr "" + +#: src/keycode.cpp +msgid "Right Menu" +msgstr "" + +#: src/keycode.cpp +msgid "IME Escape" +msgstr "" + +#: src/keycode.cpp +msgid "IME Convert" +msgstr "" + +#: src/keycode.cpp +msgid "IME Nonconvert" +msgstr "" + +#: src/keycode.cpp +msgid "IME Accept" +msgstr "" + +#: src/keycode.cpp +msgid "IME Mode Change" +msgstr "" + +#: src/keycode.cpp +msgid "Apps" +msgstr "" + +#: src/keycode.cpp +msgid "Sleep" +msgstr "" + +#: src/keycode.cpp +msgid "Erase EOF" +msgstr "" + +#: src/keycode.cpp +msgid "Play" +msgstr "" + +#: src/keycode.cpp +msgid "OEM Clear" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Client" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Client" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Controls" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Build inside player" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"If enabled, you can place blocks at the position (feet + eye level) where " +"you stand.\n" +"This is helpful when working with nodeboxes in small areas." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Flying" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"Player is able to fly without being affected by gravity.\n" +"This requires the \"fly\" privilege on the server." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Fast movement" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"Fast movement (via use key).\n" +"This requires the \"fast\" privilege on the server." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Noclip" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"If enabled together with fly mode, player is able to fly through solid " +"nodes.\n" +"This requires the \"noclip\" privilege on the server." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Cinematic mode" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"Smooths camera when looking around. Also called look or mouse smoothing.\n" +"Useful for recording videos." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Camera smoothing" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Smooths rotation of camera. 0 to disable." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Camera smoothing in cinematic mode" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Smooths rotation of camera in cinematic mode. 0 to disable." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Invert mouse" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Invert vertical mouse movement." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Mouse sensitivity" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Mouse sensitivity multiplier." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Key use for climbing/descending" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"If enabled, \"use\" key instead of \"sneak\" key is used for climbing down " +"and descending." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Double tap jump for fly" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Double-tapping the jump key toggles fly mode." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Always fly and fast" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"If disabled \"use\" key is used to fly fast if both fly and fast mode are " +"enabled." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Rightclick repetition interval" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"The time in seconds it takes between repeated right clicks when holding the " +"right mouse button." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Random input" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Enable random user input (only used for testing)." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Continuous forward" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Continuous forward movement (only used for testing)." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Enable Joysticks" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Joystick ID" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "The identifier of the joystick to use" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Joystick Type" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "The type of joystick" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Joystick button repetition interval" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"The time in seconds it takes between repeated events\n" +"when holding down a joystick button combination." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Joystick frustum sensitivity" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"The sensitivity of the joystick axes for moving the\n" +"ingame view frustum around." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Forward key" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"Key for moving the player forward.\n" +"See http://irrlicht.sourceforge.net/docu/namespaceirr." +"html#a54da2a0e231901735e3da1b0edf72eb3" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Backward key" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"Key for moving the player backward.\n" +"See http://irrlicht.sourceforge.net/docu/namespaceirr." +"html#a54da2a0e231901735e3da1b0edf72eb3" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Left key" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"Key for moving the player left.\n" +"See http://irrlicht.sourceforge.net/docu/namespaceirr." +"html#a54da2a0e231901735e3da1b0edf72eb3" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Right key" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"Key for moving the player right.\n" +"See http://irrlicht.sourceforge.net/docu/namespaceirr." +"html#a54da2a0e231901735e3da1b0edf72eb3" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Jump key" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"Key for jumping.\n" +"See http://irrlicht.sourceforge.net/docu/namespaceirr." +"html#a54da2a0e231901735e3da1b0edf72eb3" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Sneak key" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"Key for sneaking.\n" +"Also used for climbing down and descending in water if aux1_descends is " +"disabled.\n" +"See http://irrlicht.sourceforge.net/docu/namespaceirr." +"html#a54da2a0e231901735e3da1b0edf72eb3" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Inventory key" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"Key for opening the inventory.\n" +"See http://irrlicht.sourceforge.net/docu/namespaceirr." +"html#a54da2a0e231901735e3da1b0edf72eb3" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Use key" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"Key for moving fast in fast mode.\n" +"See http://irrlicht.sourceforge.net/docu/namespaceirr." +"html#a54da2a0e231901735e3da1b0edf72eb3" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Chat key" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"Key for opening the chat window.\n" +"See http://irrlicht.sourceforge.net/docu/namespaceirr." +"html#a54da2a0e231901735e3da1b0edf72eb3" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Command key" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"Key for opening the chat window to type commands.\n" +"See http://irrlicht.sourceforge.net/docu/namespaceirr." +"html#a54da2a0e231901735e3da1b0edf72eb3" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"Key for opening the chat window to type local commands.\n" +"See http://irrlicht.sourceforge.net/docu/namespaceirr." +"html#a54da2a0e231901735e3da1b0edf72eb3" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Console key" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"Key for opening the chat console.\n" +"See http://irrlicht.sourceforge.net/docu/namespaceirr." +"html#a54da2a0e231901735e3da1b0edf72eb3" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Range select key" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"Key for toggling unlimited view range.\n" +"See http://irrlicht.sourceforge.net/docu/namespaceirr." +"html#a54da2a0e231901735e3da1b0edf72eb3" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Fly key" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"Key for toggling flying.\n" +"See http://irrlicht.sourceforge.net/docu/namespaceirr." +"html#a54da2a0e231901735e3da1b0edf72eb3" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Fast key" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"Key for toggling fast mode.\n" +"See http://irrlicht.sourceforge.net/docu/namespaceirr." +"html#a54da2a0e231901735e3da1b0edf72eb3" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Noclip key" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"Key for toggling noclip mode.\n" +"See http://irrlicht.sourceforge.net/docu/namespaceirr." +"html#a54da2a0e231901735e3da1b0edf72eb3" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Hotbar next key" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"Key for selecting the next item in the hotbar.\n" +"See http://irrlicht.sourceforge.net/docu/namespaceirr." +"html#a54da2a0e231901735e3da1b0edf72eb3" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Hotbar previous key" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"Key for selecting the previous item in the hotbar.\n" +"See http://irrlicht.sourceforge.net/docu/namespaceirr." +"html#a54da2a0e231901735e3da1b0edf72eb3" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Mute key" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"Key for muting the game.\n" +"See http://irrlicht.sourceforge.net/docu/namespaceirr." +"html#a54da2a0e231901735e3da1b0edf72eb3" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Inc. volume key" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"Key for increasing the volume.\n" +"See http://irrlicht.sourceforge.net/docu/namespaceirr." +"html#a54da2a0e231901735e3da1b0edf72eb3" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Dec. volume key" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"Key for decreasing the volume.\n" +"See http://irrlicht.sourceforge.net/docu/namespaceirr." +"html#a54da2a0e231901735e3da1b0edf72eb3" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Autorun key" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"Key for toggling autorun.\n" +"See http://irrlicht.sourceforge.net/docu/namespaceirr." +"html#a54da2a0e231901735e3da1b0edf72eb3" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Cinematic mode key" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"Key for toggling cinematic mode.\n" +"See http://irrlicht.sourceforge.net/docu/namespaceirr." +"html#a54da2a0e231901735e3da1b0edf72eb3" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Minimap key" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"Key for toggling display of minimap.\n" +"See http://irrlicht.sourceforge.net/docu/namespaceirr." +"html#a54da2a0e231901735e3da1b0edf72eb3" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Screenshot" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"Key for taking screenshots.\n" +"See http://irrlicht.sourceforge.net/docu/namespaceirr." +"html#a54da2a0e231901735e3da1b0edf72eb3" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Drop item key" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"Key for dropping the currently selected item.\n" +"See http://irrlicht.sourceforge.net/docu/namespaceirr." +"html#a54da2a0e231901735e3da1b0edf72eb3" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "View zoom key" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"Key to use view zoom when possible.\n" +"See http://irrlicht.sourceforge.net/docu/namespaceirr." +"html#a54da2a0e231901735e3da1b0edf72eb3" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "HUD toggle key" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"Key for toggling the display of the HUD.\n" +"See http://irrlicht.sourceforge.net/docu/namespaceirr." +"html#a54da2a0e231901735e3da1b0edf72eb3" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Chat toggle key" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"Key for toggling the display of the chat.\n" +"See http://irrlicht.sourceforge.net/docu/namespaceirr." +"html#a54da2a0e231901735e3da1b0edf72eb3" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Large chat console key" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"Key for toggling the display of the large chat console.\n" +"See http://irrlicht.sourceforge.net/docu/namespaceirr." +"html#a54da2a0e231901735e3da1b0edf72eb3" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Fog toggle key" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"Key for toggling the display of the fog.\n" +"See http://irrlicht.sourceforge.net/docu/namespaceirr." +"html#a54da2a0e231901735e3da1b0edf72eb3" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Camera update toggle key" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"Key for toggling the camera update. Only used for development\n" +"See http://irrlicht.sourceforge.net/docu/namespaceirr." +"html#a54da2a0e231901735e3da1b0edf72eb3" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Debug info toggle key" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"Key for toggling the display of debug info.\n" +"See http://irrlicht.sourceforge.net/docu/namespaceirr." +"html#a54da2a0e231901735e3da1b0edf72eb3" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Profiler toggle key" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"Key for toggling the display of the profiler. Used for development.\n" +"See http://irrlicht.sourceforge.net/docu/namespaceirr." +"html#a54da2a0e231901735e3da1b0edf72eb3" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Toggle camera mode key" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"Key for switching between first- and third-person camera.\n" +"See http://irrlicht.sourceforge.net/docu/namespaceirr." +"html#a54da2a0e231901735e3da1b0edf72eb3" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "View range increase key" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"Key for increasing the viewing range.\n" +"See http://irrlicht.sourceforge.net/docu/namespaceirr." +"html#a54da2a0e231901735e3da1b0edf72eb3" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "View range decrease key" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"Key for decreasing the viewing range.\n" +"See http://irrlicht.sourceforge.net/docu/namespaceirr." +"html#a54da2a0e231901735e3da1b0edf72eb3" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"Key for printing debug stacks. Used for development.\n" +"See http://irrlicht.sourceforge.net/docu/namespaceirr." +"html#a54da2a0e231901735e3da1b0edf72eb3" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Network" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Server address" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"Address to connect to.\n" +"Leave this blank to start a local server.\n" +"Note that the address field in the main menu overrides this setting." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Remote port" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"Port to connect to (UDP).\n" +"Note that the port field in the main menu overrides this setting." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Support older servers" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"Whether to support older servers before protocol version 25.\n" +"Enable if you want to connect to 0.4.12 servers and before.\n" +"Servers starting with 0.4.13 will work, 0.4.12-dev servers may work.\n" +"Disabling this option will protect your password better." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Saving map received from server" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Save the map received by the client on disk." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Show entity selection boxes" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Connect to external media server" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"Enable usage of remote media server (if provided by server).\n" +"Remote servers offer a significantly faster way to download media (e.g. " +"textures)\n" +"when connecting to the server." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Client modding" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"Enable Lua modding support on client.\n" +"This support is experimental and API can change." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Serverlist URL" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "URL to the server list displayed in the Multiplayer Tab." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Serverlist file" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"File in client/serverlist/ that contains your favorite servers displayed in " +"the Multiplayer Tab." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Graphics" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "In-Game" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Basic" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "VBO" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Enable VBO" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Fog" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Whether to fog out the end of the visible area." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Leaves style" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"Leaves style:\n" +"- Fancy: all faces visible\n" +"- Simple: only outer faces, if defined special_tiles are used\n" +"- Opaque: disable transparency" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Connect glass" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Connects glass if supported by node." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Smooth lighting" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"Enable smooth lighting with simple ambient occlusion.\n" +"Disable for speed or for different looks." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Clouds" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Clouds are a client side effect." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "3D clouds" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Use 3D cloud look instead of flat." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Node highlighting" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Method used to highlight selected object." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Digging particles" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Adds particles when digging a node." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Filtering" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Mipmapping" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Use mip mapping to scale textures. May slightly increase performance." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Anisotropic filtering" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Use anisotropic filtering when viewing at textures from an angle." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Bilinear filtering" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Use bilinear filtering when scaling textures." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Trilinear filtering" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Use trilinear filtering when scaling textures." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Clean transparent textures" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"Filtered textures can blend RGB values with fully-transparent neighbors,\n" +"which PNG optimizers usually discard, sometimes resulting in a dark or\n" +"light edge to transparent textures. Apply this filter to clean that up\n" +"at texture load time." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Minimum texture size for filters" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"When using bilinear/trilinear/anisotropic filters, low-resolution textures\n" +"can be blurred, so automatically upscale them with nearest-neighbor\n" +"interpolation to preserve crisp pixels. This sets the minimum texture size\n" +"for the upscaled textures; higher values look sharper, but require more\n" +"memory. Powers of 2 are recommended. Setting this higher than 1 may not\n" +"have a visible effect unless bilinear/trilinear/anisotropic filtering is\n" +"enabled." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "FSAA" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"Experimental option, might cause visible spaces between blocks\n" +"when set to higher number than 0." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Undersampling" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"Undersampling is similar to using lower screen resolution, but it applies\n" +"to the game world only, keeping the GUI intact.\n" +"It should give significant performance boost at the cost of less detailed " +"image." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"Shaders allow advanced visual effects and may increase performance on some " +"video cards.\n" +"This only works with the OpenGL video backend." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Shader path" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"Path to shader directory. If no path is defined, default location will be " +"used." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Filmic tone mapping" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Enables filmic tone mapping" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Bumpmapping" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"Enables bumpmapping for textures. Normalmaps need to be supplied by the " +"texture pack\n" +"or need to be auto-generated.\n" +"Requires shaders to be enabled." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Generate normalmaps" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"Enables on the fly normalmap generation (Emboss effect).\n" +"Requires bumpmapping to be enabled." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Normalmaps strength" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Strength of generated normalmaps." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Normalmaps sampling" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"Defines sampling step of texture.\n" +"A higher value results in smoother normal maps." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Parallax occlusion" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"Enables parallax occlusion mapping.\n" +"Requires shaders to be enabled." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Parallax occlusion mode" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"0 = parallax occlusion with slope information (faster).\n" +"1 = relief mapping (slower, more accurate)." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Parallax occlusion strength" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Strength of parallax." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Parallax occlusion iterations" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Number of parallax occlusion iterations." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Parallax occlusion Scale" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Overall scale of parallax occlusion effect." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Parallax occlusion bias" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Overall bias of parallax occlusion effect, usually scale/2." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Waving Nodes" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Waving water" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"Set to true enables waving water.\n" +"Requires shaders to be enabled." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Waving water height" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Waving water length" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Waving water speed" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Waving leaves" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"Set to true enables waving leaves.\n" +"Requires shaders to be enabled." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Waving plants" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"Set to true enables waving plants.\n" +"Requires shaders to be enabled." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Advanced" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Maximum FPS" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"If FPS would go higher than this, limit it by sleeping\n" +"to not waste CPU power for no benefit." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "FPS in pause menu" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Maximum FPS when game is paused." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Viewing range" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "View distance in nodes." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Screen width" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Width component of the initial window size." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Screen height" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Height component of the initial window size." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Full screen" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Fullscreen mode." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Full screen BPP" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Bits per pixel (aka color depth) in fullscreen mode." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "V-Sync" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Vertical screen synchronization." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Field of view" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Field of view in degrees." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Field of view for zoom" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"Field of view while zooming in degrees.\n" +"This requires the \"zoom\" privilege on the server." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Gamma" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"Adjust the gamma encoding for the light tables. Higher numbers are " +"brighter.\n" +"This setting is for the client only and is ignored by the server." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Texture path" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Path to texture directory. All textures are first searched from here." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Video driver" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "The rendering back-end for Irrlicht." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Cloud height" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Height on which clouds are appearing." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Cloud radius" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"Radius of cloud area stated in number of 64 node cloud squares.\n" +"Values larger than 26 will start to produce sharp cutoffs at cloud area " +"corners." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Enable view bobbing" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Enables view bobbing when walking." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "View bobbing factor" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"Enable view bobbing and amount of view bobbing.\n" +"For example: 0 for no view bobbing; 1.0 for normal; 2.0 for double." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Fall bobbing factor" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"Multiplier for fall bobbing.\n" +"For example: 0 for no view bobbing; 1.0 for normal; 2.0 for double." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "3D mode" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"3D support.\n" +"Currently supported:\n" +"- none: no 3d output.\n" +"- anaglyph: cyan/magenta color 3d.\n" +"- interlaced: odd/even line based polarisation screen support.\n" +"- topbottom: split screen top/bottom.\n" +"- sidebyside: split screen side by side.\n" +"- pageflip: quadbuffer based 3d." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Console height" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "In-game chat console height, between 0.1 (10%) and 1.0 (100%)." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Console color" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "In-game chat console background color (R,G,B)." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Console alpha" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "In-game chat console background alpha (opaqueness, between 0 and 255)." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Selection box color" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Selection box border color (R,G,B)." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Selection box width" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Width of the selectionbox's lines around nodes." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Crosshair color" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Crosshair color (R,G,B)." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Crosshair alpha" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Crosshair alpha (opaqueness, between 0 and 255)." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Desynchronize block animation" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Whether node texture animations should be desynchronized per mapblock." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Maximum hotbar width" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"Maximum proportion of current window to be used for hotbar.\n" +"Useful if there's something to be displayed right or left of hotbar." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "HUD scale factor" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Modifies the size of the hudbar elements." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Mesh cache" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Enables caching of facedir rotated meshes." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Mapblock mesh generation delay" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"Delay between mesh updates on the client in ms. Increasing this will slow\n" +"down the rate of mesh updates, thus reducing jitter on slower clients." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Mapblock mesh generator's MapBlock cache size MB" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"Size of the MapBlock cache of the mesh generator. Increasing this will\n" +"increase the cache hit %, reducing the data being copied from the main\n" +"thread, thus reducing jitter." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Minimap" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Enables minimap." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Round minimap" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Shape of the minimap. Enabled = round, disabled = square." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Minimap scan height" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"True = 256\n" +"False = 128\n" +"Useable to make minimap smoother on slower machines." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Colored fog" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"Make fog and sky colors depend on daytime (dawn/sunset) and view direction." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Ambient occlusion gamma" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"The strength (darkness) of node ambient-occlusion shading.\n" +"Lower is darker, Higher is lighter. The valid range of values for this\n" +"setting is 0.25 to 4.0 inclusive. If the value is out of range it will be\n" +"set to the nearest valid value." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Inventory items animations" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Enables animation of inventory items." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Inventory image hack" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"Android systems only: Tries to create inventory textures from meshes\n" +"when no supported render was found." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Fog Start" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Fraction of the visible distance at which fog starts to be rendered" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Opaque liquids" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Makes all liquids opaque" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Menus" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Clouds in menu" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Use a cloud animation for the main menu background." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "GUI scaling" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"Scale gui by a user specified value.\n" +"Use a nearest-neighbor-anti-alias filter to scale the GUI.\n" +"This will smooth over some of the rough edges, and blend\n" +"pixels when scaling down, at the cost of blurring some\n" +"edge pixels when images are scaled by non-integer sizes." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "GUI scaling filter" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"When gui_scaling_filter is true, all GUI images need to be\n" +"filtered in software, but some images are generated directly\n" +"to hardware (e.g. render-to-texture for nodes in inventory)." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "GUI scaling filter txr2img" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"When gui_scaling_filter_txr2img is true, copy those images\n" +"from hardware to software for scaling. When false, fall back\n" +"to the old scaling method, for video drivers that don't\n" +"properly support downloading textures back from hardware." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Tooltip delay" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Delay showing tooltips, stated in milliseconds." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Freetype fonts" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"Whether freetype fonts are used, requires freetype support to be compiled in." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Font path" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Path to TrueTypeFont or bitmap." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Font size" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Font shadow" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Font shadow offset, if 0 then shadow will not be drawn." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Font shadow alpha" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Font shadow alpha (opaqueness, between 0 and 255)." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Monospace font path" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Monospace font size" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Fallback font" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "This font will be used for certain languages." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Fallback font size" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Fallback font shadow" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Fallback font shadow alpha" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Screenshot folder" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Path to save screenshots at." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Screenshot format" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Format of screenshots." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Screenshot quality" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"Screenshot quality. Only used for JPEG format.\n" +"1 means worst quality; 100 means best quality.\n" +"Use 0 for default quality." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "DPI" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"Adjust dpi configuration to your screen (non X11/Android only) e.g. for 4k " +"screens." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Enable console window" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"Windows systems only: Start Minetest with the command line window in the " +"background.\n" +"Contains the same information as the file debug.txt (default name)." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Sound" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Volume" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Mapblock unload timeout" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Timeout for client to remove unused map data from memory." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Mapblock limit" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"Maximum number of mapblocks for client to be kept in memory.\n" +"Set to -1 for unlimited amount." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Show debug info" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"Whether to show the client debug info (has the same effect as hitting F5)." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Server / Singleplayer" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Server name" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"Name of the server, to be displayed when players join and in the serverlist." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Server description" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"Description of server, to be displayed when players join and in the " +"serverlist." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Domain name of server, to be displayed in the serverlist." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Server URL" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Homepage of server, to be displayed in the serverlist." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Announce server" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Automaticaly report to the serverlist." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"Announce to this serverlist.\n" +"If you want to announce your ipv6 address, use serverlist_url = v6.servers." +"minetest.net." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Disable escape sequences" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"Disable escape sequences, e.g. chat coloring.\n" +"Use this if you want to run a server with pre-0.4.14 clients and you want to " +"disable\n" +"the escape sequences generated by mods." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Server port" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"Network port to listen (UDP).\n" +"This value will be overridden when starting from the main menu." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Bind address" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "The network interface that the server listens on." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Strict protocol checking" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"Enable to disallow old clients from connecting.\n" +"Older clients are compatible in the sense that they will not crash when " +"connecting\n" +"to new servers, but they may not support all new features that you are " +"expecting." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Remote media" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"Specifies URL from which client fetches media instead of using UDP.\n" +"$filename should be accessible from $remote_media$filename via cURL\n" +"(obviously, remote_media should end with a slash).\n" +"Files that are not present will be fetched the usual way." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "IPv6 server" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"Enable/disable running an IPv6 server. An IPv6 server may be restricted\n" +"to IPv6 clients, depending on system configuration.\n" +"Ignored if bind_address is set." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Maximum simultaneous block sends per client" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Maximum number of blocks that are simultaneously sent per client." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Maximum simultaneous block sends total" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Maximum number of blocks that are simultaneously sent in total." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Delay in sending blocks after building" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"To reduce lag, block transfers are slowed down when a player is building " +"something.\n" +"This determines how long they are slowed down after placing or removing a " +"node." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Max. packets per iteration" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"Maximum number of packets sent per send step, if you have a slow connection\n" +"try reducing it, but don't reduce it to a number below double of targeted\n" +"client number." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Game" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Default game" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"Default game when creating a new world.\n" +"This will be overridden when creating a world from the main menu." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Message of the day" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Message of the day displayed to players connecting." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Maximum users" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Maximum number of players that can connect simultaneously." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Map directory" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"World directory (everything in the world is stored here).\n" +"Not needed if starting from the main menu." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Item entity TTL" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"Time in seconds for item entity (dropped items) to live.\n" +"Setting it to -1 disables the feature." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Status message on connection" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "If enabled, show the server status message on player connection." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Damage" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Enable players getting damage and dying." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Creative" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Enable creative mode for new created maps." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Fixed map seed" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"A chosen map seed for a new map, leave empty for random.\n" +"Will be overridden when creating a new world in the main menu." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Default password" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "New users need to input this password." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Default privileges" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"The privileges that new users automatically get.\n" +"See /privs in game for a full list on your server and mod configuration." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Basic Privileges" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Privileges that players with basic_privs can grant" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Unlimited player transfer distance" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"Whether players are shown to clients without any range limit.\n" +"Deprecated, use the setting player_transfer_distance instead." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Player transfer distance" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Defines the maximal player transfer distance in blocks (0 = unlimited)." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Player versus Player" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Whether to allow players to damage and kill each other." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Static spawnpoint" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "If this is set, players will always (re)spawn at the given position." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Disallow empty passwords" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "If enabled, new players cannot join with an empty password." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Disable anticheat" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "If enabled, disable cheat prevention in multiplayer." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Rollback recording" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"If enabled, actions are recorded for rollback.\n" +"This option is only read when server starts." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Shutdown message" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "A message to be displayed to all clients when the server shuts down." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Crash message" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "A message to be displayed to all clients when the server crashes." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Ask to reconnect after crash" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"Whether to ask clients to reconnect after a (Lua) crash.\n" +"Set this to true if your server is set up to restart automatically." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Active object send range" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"From how far clients know about objects, stated in mapblocks (16 nodes)." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Active block range" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"How large area of blocks are subject to the active block stuff, stated in " +"mapblocks (16 nodes).\n" +"In active blocks objects are loaded and ABMs run." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Max block send distance" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"From how far blocks are sent to clients, stated in mapblocks (16 nodes)." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Maximum forceloaded blocks" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Maximum number of forceloaded mapblocks." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Time send interval" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Interval of sending time of day to clients." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Time speed" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"Controls length of day/night cycle.\n" +"Examples: 72 = 20min, 360 = 4min, 1 = 24hour, 0 = day/night/whatever stays " +"unchanged." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Map save interval" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Interval of saving important changes in the world, stated in seconds." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Physics" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Default acceleration" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Acceleration in air" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Fast mode acceleration" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Walking speed" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Crouch speed" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Fast mode speed" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Climbing speed" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Jumping speed" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Descending speed" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Liquid fluidity" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Liquid fluidity smoothing" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Liquid sink" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Gravity" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Deprecated Lua API handling" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"Handling for deprecated lua api calls:\n" +"- legacy: (try to) mimic old behaviour (default for release).\n" +"- log: mimic and log backtrace of deprecated call (default for debug).\n" +"- error: abort on usage of deprecated call (suggested for mod developers)." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Max. clearobjects extra blocks" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"Number of extra blocks that can be loaded by /clearobjects at once.\n" +"This is a trade-off between sqlite transaction overhead and\n" +"memory consumption (4096=100MB, as a rule of thumb)." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Unload unused server data" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"How much the server will wait before unloading unused mapblocks.\n" +"Higher value is smoother, but will use more RAM." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Maximum objects per block" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Maximum number of statically stored objects in a block." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Synchronous SQLite" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "See http://www.sqlite.org/pragma.html#pragma_synchronous" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Dedicated server step" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"Length of a server tick and the interval at which objects are generally " +"updated over network." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Active Block Management interval" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Time in between active block management cycles" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Active Block Modifier interval" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Length of time between ABM execution cycles" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "NodeTimer interval" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Length of time between NodeTimer execution cycles" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Ignore world errors" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"If enabled, invalid world data won't cause the server to shut down.\n" +"Only enable this if you know what you are doing." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Liquid loop max" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Max liquids processed per step." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Liquid queue purge time" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"The time (in seconds) that the liquids queue may grow beyond processing\n" +"capacity until an attempt is made to decrease its size by dumping old queue\n" +"items. A value of 0 disables the functionality." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Liquid update tick" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Liquid update interval in seconds." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "block send optimize distance" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"At this distance the server will aggressively optimize which blocks are sent " +"to clients.\n" +"Small values potentially improve performance a lot, at the expense of " +"visible rendering glitches.\n" +"(some blocks will not be rendered under water and in caves, as well as " +"sometimes on land)\n" +"Setting this to a value greater than max_block_send_distance disables this " +"optimization.\n" +"Stated in mapblocks (16 nodes)" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Server side occlusion culling" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"If enabled the server will perform map block occlusion culling based on\n" +"on the eye position of the player. This can reduce the number of blocks\n" +"sent to the client 50-80%. The client will not longer receive most " +"invisible\n" +"so that the utility of noclip mode is reduced." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Mapgen name" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"Name of map generator to be used when creating a new world.\n" +"Creating a world in the main menu will override this." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Water level" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Water surface level of the world." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Max block generate distance" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"From how far blocks are generated for clients, stated in mapblocks (16 " +"nodes)." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Map generation limit" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"Limit of map generation, in nodes, in all 6 directions from (0, 0, 0).\n" +"Only mapchunks completely within the mapgen limit are generated.\n" +"Value is stored per-world." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Mapgen flags" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"Global map generation attributes.\n" +"In Mapgen v6 the 'decorations' flag controls all decorations except trees\n" +"and junglegrass, in all other mapgens this flag controls all decorations.\n" +"Flags that are not specified in the flag string are not modified from the " +"default.\n" +"Flags starting with 'no' are used to explicitly disable them." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Chunk size" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"Size of chunks to be generated at once by mapgen, stated in mapblocks (16 " +"nodes)." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Mapgen debug" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Dump the mapgen debug infos." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Absolute limit of emerge queues" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Maximum number of blocks that can be queued for loading." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Limit of emerge queues on disk" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"Maximum number of blocks to be queued that are to be loaded from file.\n" +"Set to blank for an appropriate amount to be chosen automatically." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Limit of emerge queues to generate" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"Maximum number of blocks to be queued that are to be generated.\n" +"Set to blank for an appropriate amount to be chosen automatically." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Number of emerge threads" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"Number of emerge threads to use. Make this field blank, or increase this " +"number\n" +"to use multiple threads. On multiprocessor systems, this will improve mapgen " +"speed greatly\n" +"at the cost of slightly buggy caves." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Biome API temperature and humidity noise parameters" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Heat noise" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Temperature variation for biomes." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Heat blend noise" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Small-scale temperature variation for blending biomes on borders." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Humidity noise" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Humidity variation for biomes." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Humidity blend noise" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Small-scale humidity variation for blending biomes on borders." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Mapgen v5" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Mapgen v5 specific flags" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"Map generation attributes specific to Mapgen v5.\n" +"Flags that are not specified in the flag string are not modified from the " +"default.\n" +"Flags starting with 'no' are used to explicitly disable them." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Cave width" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Controls width of tunnels, a smaller value creates wider tunnels." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Cavern limit" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Y-level of cavern upper limit." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Cavern taper" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Y-distance over which caverns expand to full size." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Cavern threshold" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Defines full size of caverns, smaller values create larger caverns." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Filler depth noise" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Variation of biome filler depth." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Factor noise" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"Variation of terrain vertical scale.\n" +"When noise is < -0.55 terrain is near-flat." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Height noise" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Y-level of average terrain surface." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Cave1 noise" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "First of 2 3D noises that together define tunnels." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Cave2 noise" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Second of 2 3D noises that together define tunnels." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Cavern noise" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "3D noise defining giant caverns." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Mapgen v6" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Mapgen v6 specific flags" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"Map generation attributes specific to Mapgen v6.\n" +"The 'snowbiomes' flag enables the new 5 biome system.\n" +"When the new biome system is enabled jungles are automatically enabled and\n" +"the 'jungles' flag is ignored.\n" +"Flags that are not specified in the flag string are not modified from the " +"default.\n" +"Flags starting with 'no' are used to explicitly disable them." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Desert noise threshold" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"Deserts occur when np_biome exceeds this value.\n" +"When the new biome system is enabled, this is ignored." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Beach noise threshold" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Sandy beaches occur when np_beach exceeds this value." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Terrain base noise" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Y-level of lower terrain and lakebeds." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Terrain higher noise" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Y-level of higher (cliff-top) terrain." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Steepness noise" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Varies steepness of cliffs." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Height select noise" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Defines areas of 'terrain_higher' (cliff-top terrain)." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Mud noise" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Varies depth of biome surface nodes." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Beach noise" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Defines areas with sandy beaches." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Biome noise" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Cave noise" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Variation of number of caves." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Trees noise" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Defines tree areas and tree density." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Apple trees noise" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Defines areas where trees have apples." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Mapgen v7" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Mapgen v7 specific flags" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"Map generation attributes specific to Mapgen v7.\n" +"The 'ridges' flag enables the rivers.\n" +"Floatlands are currently experimental and subject to change.\n" +"Flags that are not specified in the flag string are not modified from the " +"default.\n" +"Flags starting with 'no' are used to explicitly disable them." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Floatland mountain density" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"Controls the density of floatland mountain terrain.\n" +"Is an offset added to the 'np_mountain' noise value." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Floatland mountain height" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"Typical maximum height, above and below midpoint, of floatland mountain " +"terrain." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Floatland level" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Y-level of floatland midpoint and lake surface." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Shadow limit" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Y-level to which floatland shadows extend." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Terrain alt noise" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Terrain persistence noise" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"Varies roughness of terrain.\n" +"Defines the 'persistence' value for terrain_base and terrain_alt noises." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"Defines areas of higher (cliff-top) terrain and affects steepness of cliffs." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Mountain height noise" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Variation of maximum mountain height (in nodes)." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Ridge underwater noise" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Defines large-scale river channel structure." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Floatland base noise" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"Defines areas of floatland smooth terrain.\n" +"Smooth floatlands occur when noise > 0." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Floatland base height noise" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Variation of hill height and lake depth on floatland smooth terrain." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Mountain noise" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"3D noise defining mountain structure and height.\n" +"Also defines structure of floatland mountain terrain." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Ridge noise" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "3D noise defining structure of river canyon walls." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Mapgen flat" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Mapgen flat specific flags" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"Map generation attributes specific to Mapgen flat.\n" +"Occasional lakes and hills can be added to the flat world.\n" +"Flags that are not specified in the flag string are not modified from the " +"default.\n" +"Flags starting with 'no' are used to explicitly disable them." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Ground level" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Y of flat ground." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Large cave depth" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Y of upper limit of large pseudorandom caves." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Lake threshold" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"Terrain noise threshold for lakes.\n" +"Controls proportion of world area covered by lakes.\n" +"Adjust towards 0.0 for a larger proportion." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Lake steepness" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Controls steepness/depth of lake depressions." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Hill threshold" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"Terrain noise threshold for hills.\n" +"Controls proportion of world area covered by hills.\n" +"Adjust towards 0.0 for a larger proportion." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Hill steepness" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Controls steepness/height of hills." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Terrain noise" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Defines location and terrain of optional hills and lakes." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Mapgen fractal" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Fractal type" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"Choice of 18 fractals from 9 formulas.\n" +"1 = 4D \"Roundy\" mandelbrot set.\n" +"2 = 4D \"Roundy\" julia set.\n" +"3 = 4D \"Squarry\" mandelbrot set.\n" +"4 = 4D \"Squarry\" julia set.\n" +"5 = 4D \"Mandy Cousin\" mandelbrot set.\n" +"6 = 4D \"Mandy Cousin\" julia set.\n" +"7 = 4D \"Variation\" mandelbrot set.\n" +"8 = 4D \"Variation\" julia set.\n" +"9 = 3D \"Mandelbrot/Mandelbar\" mandelbrot set.\n" +"10 = 3D \"Mandelbrot/Mandelbar\" julia set.\n" +"11 = 3D \"Christmas Tree\" mandelbrot set.\n" +"12 = 3D \"Christmas Tree\" julia set.\n" +"13 = 3D \"Mandelbulb\" mandelbrot set.\n" +"14 = 3D \"Mandelbulb\" julia set.\n" +"15 = 3D \"Cosine Mandelbulb\" mandelbrot set.\n" +"16 = 3D \"Cosine Mandelbulb\" julia set.\n" +"17 = 4D \"Mandelbulb\" mandelbrot set.\n" +"18 = 4D \"Mandelbulb\" julia set." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Iterations" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"Iterations of the recursive function.\n" +"Controls the amount of fine detail." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Scale" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Approximate (X,Y,Z) scale of fractal in nodes." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Offset" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"(X,Y,Z) offset of fractal from world centre in units of 'scale'.\n" +"Used to move a suitable spawn area of low land close to (0, 0).\n" +"The default is suitable for mandelbrot sets, it needs to be edited for julia " +"sets.\n" +"Range roughly -2 to 2. Multiply by 'scale' for offset in nodes." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Slice w" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"W co-ordinate of the generated 3D slice of a 4D fractal.\n" +"Determines which 3D slice of the 4D shape is generated.\n" +"Has no effect on 3D fractals.\n" +"Range roughly -2 to 2." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Julia x" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"Julia set only: X component of hypercomplex constant determining julia " +"shape.\n" +"Range roughly -2 to 2." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Julia y" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"Julia set only: Y component of hypercomplex constant determining julia " +"shape.\n" +"Range roughly -2 to 2." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Julia z" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"Julia set only: Z component of hypercomplex constant determining julia " +"shape.\n" +"Range roughly -2 to 2." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Julia w" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"Julia set only: W component of hypercomplex constant determining julia " +"shape.\n" +"Has no effect on 3D fractals.\n" +"Range roughly -2 to 2." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Seabed noise" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Y-level of seabed." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Mapgen Valleys" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "General" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Valleys C Flags" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"Map generation attributes specific to Mapgen Valleys.\n" +"'altitude_chill' makes higher elevations colder, which may cause biome " +"issues.\n" +"'humid_rivers' modifies the humidity around rivers and in areas where water " +"would tend to pool,\n" +"it may interfere with delicately adjusted biomes.\n" +"Flags that are not specified in the flag string are not modified from the " +"default.\n" +"Flags starting with 'no' are used to explicitly disable them." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Altitude Chill" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "The altitude at which temperature drops by 20C" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Depth below which you'll find large caves." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Lava Features" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"Creates unpredictable lava features in caves.\n" +"These can make mining difficult. Zero disables them. (0-10)" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Massive cave depth" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Depth below which you'll find massive caves." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "River Depth" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "How deep to make rivers" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "River Size" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "How wide to make rivers" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Water Features" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"Creates unpredictable water features in caves.\n" +"These can make mining difficult. Zero disables them. (0-10)" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Noises" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Cave noise #1" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Caves and tunnels form at the intersection of the two noises" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Cave noise #2" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Filler Depth" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "The depth of dirt or other filler" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Massive cave noise" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Massive caves form here." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "River Noise" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "River noise -- rivers occur close to zero" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Terrain Height" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Base terrain height" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Valley Depth" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Raises terrain to make valleys around the rivers" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Valley Fill" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Slope and fill work together to modify the heights" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Valley Profile" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Amplifies the valleys" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Valley Slope" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Security" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Enable mod security" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Prevent mods from doing insecure things like running shell commands." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Trusted mods" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"Comma-separated list of trusted mods that are allowed to access insecure\n" +"functions even when mod security is on (via request_insecure_environment())." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "HTTP Mods" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"Comma-separated list of mods that are allowed to access HTTP APIs, which\n" +"allow them to upload and download data to/from the internet." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Profiling" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Load the game profiler" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"Load the game profiler to collect game profiling data.\n" +"Provides a /profiler command to access the compiled profile.\n" +"Useful for mod developers and server operators." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Default report format" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"The default format in which profiles are being saved,\n" +"when calling `/profiler save [format]` without format." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Report path" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"The file path relative to your worldpath in which profiles will be saved to." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Instrumentation" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Entity methods" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Instrument the methods of entities on registration." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Active Block Modifiers" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"Instrument the action function of Active Block Modifiers on registration." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Loading Block Modifiers" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"Instrument the action function of Loading Block Modifiers on registration." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Chatcommands" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Instrument chatcommands on registration." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Global callbacks" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"Instrument global callback functions on registration.\n" +"(anything you pass to a minetest.register_*() function)" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Builtin" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"Instrument builtin.\n" +"This is usually only needed by core/builtin contributors" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Profiler" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"Have the profiler instrument itself:\n" +"* Instrument an empty function.\n" +"This estimates the overhead, that instrumentation is adding (+1 function " +"call).\n" +"* Instrument the sampler being used to update the statistics." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Client and Server" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Player name" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"Name of the player.\n" +"When running a server, clients connecting with this name are admins.\n" +"When starting from the main menu, this is overridden." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Language" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"Set the language. Leave empty to use the system language.\n" +"A restart is required after changing this." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Debug log level" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"Level of logging to be written to debug.txt:\n" +"- (no logging)\n" +"- none (messages with no level)\n" +"- error\n" +"- warning\n" +"- action\n" +"- info\n" +"- verbose" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "IPv6" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "IPv6 support." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "cURL timeout" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"Default timeout for cURL, stated in milliseconds.\n" +"Only has an effect if compiled with cURL." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "cURL parallel limit" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"Limits number of parallel HTTP requests. Affects:\n" +"- Media fetch if server uses remote_media setting.\n" +"- Serverlist download and server announcement.\n" +"- Downloads performed by main menu (e.g. mod manager).\n" +"Only has an effect if compiled with cURL." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "cURL file download timeout" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Maximum time in ms a file download (e.g. a mod download) may take." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "High-precision FPU" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Makes DirectX work with LuaJIT. Disable if it causes troubles." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Main menu script" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Replaces the default main menu with a custom one." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Main menu game manager" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Main menu mod manager" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Modstore download URL" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Modstore mods list URL" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Modstore details URL" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Engine profiling data print interval" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"Print the engine's profiling data in regular intervals (in seconds). 0 = " +"disable. Useful for developers." +msgstr "" diff --git a/po/MultiCraft.pot b/po/MultiCraft.pot deleted file mode 100644 index ffddf5cbe..000000000 --- a/po/MultiCraft.pot +++ /dev/null @@ -1,4684 +0,0 @@ -# SOME DESCRIPTIVE TITLE. -# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER -# This file is distributed under the same license as the MultiCraft package. -# FIRST AUTHOR , YEAR. -# -#, fuzzy -msgid "" -msgstr "" -"Project-Id-Version: MultiCraft\n" -"Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2017-05-21 17:40+0200\n" -"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" -"Last-Translator: FULL NAME \n" -"Language-Team: LANGUAGE \n" -"Language: \n" -"MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=CHARSET\n" -"Content-Transfer-Encoding: 8bit\n" - -#: builtin/client/init.lua -msgid "Respawn" -msgstr "" - -#: builtin/client/init.lua -msgid "You died." -msgstr "" - -#: builtin/fstk/ui.lua -msgid "The server has requested a reconnect:" -msgstr "" - -#: builtin/fstk/ui.lua -msgid "Main menu" -msgstr "" - -#: builtin/fstk/ui.lua -msgid "Reconnect" -msgstr "" - -#: builtin/fstk/ui.lua -msgid "An error occured in a Lua script, such as a mod:" -msgstr "" - -#: builtin/fstk/ui.lua -msgid "An error occured:" -msgstr "" - -#: builtin/fstk/ui.lua builtin/mainmenu/store.lua -msgid "Ok" -msgstr "" - -#: builtin/mainmenu/common.lua src/game.cpp -msgid "Loading..." -msgstr "" - -#: builtin/mainmenu/common.lua -msgid "Try reenabling public serverlist and check your internet connection." -msgstr "" - -#: builtin/mainmenu/common.lua -msgid "Server supports protocol versions between $1 and $2. " -msgstr "" - -#: builtin/mainmenu/common.lua -msgid "Server enforces protocol version $1. " -msgstr "" - -#: builtin/mainmenu/common.lua -msgid "We support protocol versions between version $1 and $2." -msgstr "" - -#: builtin/mainmenu/common.lua -msgid "We only support protocol version $1." -msgstr "" - -#: builtin/mainmenu/common.lua -msgid "Protocol version mismatch. " -msgstr "" - -#: builtin/mainmenu/dlg_config_world.lua -msgid "World:" -msgstr "" - -#: builtin/mainmenu/dlg_config_world.lua -msgid "Mod:" -msgstr "" - -#: builtin/mainmenu/dlg_config_world.lua builtin/mainmenu/tab_mods.lua -msgid "Dependencies:" -msgstr "" - -#: builtin/mainmenu/dlg_config_world.lua builtin/mainmenu/tab_mods.lua -msgid "Optional dependencies:" -msgstr "" - -#: builtin/mainmenu/dlg_config_world.lua -#: builtin/mainmenu/dlg_settings_advanced.lua src/guiKeyChangeMenu.cpp -msgid "Save" -msgstr "" - -#: builtin/mainmenu/dlg_config_world.lua builtin/mainmenu/dlg_create_world.lua -#: builtin/mainmenu/dlg_delete_mod.lua builtin/mainmenu/dlg_rename_modpack.lua -#: builtin/mainmenu/dlg_settings_advanced.lua src/guiKeyChangeMenu.cpp -#: src/guiPasswordChange.cpp src/keycode.cpp -msgid "Cancel" -msgstr "" - -#: builtin/mainmenu/dlg_config_world.lua -msgid "Disable MP" -msgstr "" - -#: builtin/mainmenu/dlg_config_world.lua -msgid "Enable MP" -msgstr "" - -#: builtin/mainmenu/dlg_config_world.lua -msgid "enabled" -msgstr "" - -#: builtin/mainmenu/dlg_config_world.lua -msgid "Disable all" -msgstr "" - -#: builtin/mainmenu/dlg_config_world.lua -msgid "Enable all" -msgstr "" - -#: builtin/mainmenu/dlg_config_world.lua -msgid "" -"Failed to enable mod \"$1\" as it contains disallowed characters. Only " -"chararacters [a-z0-9_] are allowed." -msgstr "" - -#: builtin/mainmenu/dlg_create_world.lua -msgid "World name" -msgstr "" - -#: builtin/mainmenu/dlg_create_world.lua -msgid "Seed" -msgstr "" - -#: builtin/mainmenu/dlg_create_world.lua -msgid "Create" -msgstr "" - -#: builtin/mainmenu/dlg_create_world.lua -msgid "You have no subgames installed." -msgstr "" - -#: builtin/mainmenu/dlg_create_world.lua -msgid "Download one from minetest.net" -msgstr "" - -#: builtin/mainmenu/dlg_create_world.lua -msgid "Warning: The minimal development test is meant for developers." -msgstr "" - -#: builtin/mainmenu/dlg_create_world.lua -msgid "Download a subgame, such as minetest_game, from minetest.net" -msgstr "" - -#: builtin/mainmenu/dlg_create_world.lua -msgid "A world named \"$1\" already exists" -msgstr "" - -#: builtin/mainmenu/dlg_create_world.lua -msgid "No worldname given or no game selected" -msgstr "" - -#: builtin/mainmenu/dlg_delete_mod.lua -msgid "Are you sure you want to delete \"$1\"?" -msgstr "" - -#: builtin/mainmenu/dlg_delete_mod.lua builtin/mainmenu/tab_server.lua -#: builtin/mainmenu/tab_singleplayer.lua src/keycode.cpp -msgid "Delete" -msgstr "" - -#: builtin/mainmenu/dlg_delete_mod.lua -msgid "Modmgr: failed to delete \"$1\"" -msgstr "" - -#: builtin/mainmenu/dlg_delete_mod.lua -msgid "Modmgr: invalid modpath \"$1\"" -msgstr "" - -#: builtin/mainmenu/dlg_delete_world.lua -msgid "Delete World \"$1\"?" -msgstr "" - -#: builtin/mainmenu/dlg_delete_world.lua builtin/mainmenu/tab_settings.lua -msgid "Yes" -msgstr "" - -#: builtin/mainmenu/dlg_delete_world.lua builtin/mainmenu/tab_settings.lua -msgid "No" -msgstr "" - -#: builtin/mainmenu/dlg_rename_modpack.lua -msgid "Rename Modpack:" -msgstr "" - -#: builtin/mainmenu/dlg_rename_modpack.lua -msgid "Accept" -msgstr "" - -#: builtin/mainmenu/dlg_settings_advanced.lua -msgid "Games" -msgstr "" - -#: builtin/mainmenu/dlg_settings_advanced.lua builtin/mainmenu/tab_mods.lua -msgid "Mods" -msgstr "" - -#: builtin/mainmenu/dlg_settings_advanced.lua -msgid "(No description of setting given)" -msgstr "" - -#: builtin/mainmenu/dlg_settings_advanced.lua -msgid "Please enter a comma seperated list of flags." -msgstr "" - -#: builtin/mainmenu/dlg_settings_advanced.lua -msgid "Possible values are: " -msgstr "" - -#: builtin/mainmenu/dlg_settings_advanced.lua -msgid "" -"Format: , , (, , ), , " -", " -msgstr "" - -#: builtin/mainmenu/dlg_settings_advanced.lua -msgid "Optionally the lacunarity can be appended with a leading comma." -msgstr "" - -#: builtin/mainmenu/dlg_settings_advanced.lua -msgid "Format is 3 numbers separated by commas and inside brackets." -msgstr "" - -#: builtin/mainmenu/dlg_settings_advanced.lua -msgid "Disabled" -msgstr "" - -#: builtin/mainmenu/dlg_settings_advanced.lua -msgid "Enabled" -msgstr "" - -#: builtin/mainmenu/dlg_settings_advanced.lua -msgid "Browse" -msgstr "" - -#: builtin/mainmenu/dlg_settings_advanced.lua -msgid "Please enter a valid integer." -msgstr "" - -#: builtin/mainmenu/dlg_settings_advanced.lua -msgid "The value must be at least $1." -msgstr "" - -#: builtin/mainmenu/dlg_settings_advanced.lua -msgid "The value must not be larger than $1." -msgstr "" - -#: builtin/mainmenu/dlg_settings_advanced.lua -msgid "Please enter a valid number." -msgstr "" - -#: builtin/mainmenu/dlg_settings_advanced.lua -msgid "\"$1\" is not a valid flag." -msgstr "" - -#: builtin/mainmenu/dlg_settings_advanced.lua -msgid "Select path" -msgstr "" - -#: builtin/mainmenu/dlg_settings_advanced.lua builtin/mainmenu/store.lua -#: builtin/mainmenu/tab_online.lua -msgid "Search" -msgstr "" - -#: builtin/mainmenu/dlg_settings_advanced.lua -msgid "< Back to Settings page" -msgstr "" - -#: builtin/mainmenu/dlg_settings_advanced.lua -msgid "Edit" -msgstr "" - -#: builtin/mainmenu/dlg_settings_advanced.lua -msgid "Restore Default" -msgstr "" - -#: builtin/mainmenu/dlg_settings_advanced.lua -msgid "Show technical names" -msgstr "" - -#: builtin/mainmenu/modmgr.lua -msgid "Install Mod: file: \"$1\"" -msgstr "" - -#: builtin/mainmenu/modmgr.lua -msgid "" -"\n" -"Install Mod: unsupported filetype \"$1\" or broken archive" -msgstr "" - -#: builtin/mainmenu/modmgr.lua -msgid "Failed to install $1 to $2" -msgstr "" - -#: builtin/mainmenu/modmgr.lua -msgid "Install Mod: unable to find suitable foldername for modpack $1" -msgstr "" - -#: builtin/mainmenu/modmgr.lua -msgid "Install Mod: unable to find real modname for: $1" -msgstr "" - -#: builtin/mainmenu/modmgr.lua -msgid "Subgame Mods" -msgstr "" - -#: builtin/mainmenu/store.lua -msgid "Unsorted" -msgstr "" - -#: builtin/mainmenu/store.lua -msgid "Downloading $1, please wait..." -msgstr "" - -#: builtin/mainmenu/store.lua -msgid "Successfully installed:" -msgstr "" - -#: builtin/mainmenu/store.lua -msgid "Shortname:" -msgstr "" - -#: builtin/mainmenu/store.lua -msgid "Rating" -msgstr "" - -#: builtin/mainmenu/store.lua -msgid "re-Install" -msgstr "" - -#: builtin/mainmenu/store.lua -msgid "Install" -msgstr "" - -#: builtin/mainmenu/store.lua -msgid "Close store" -msgstr "" - -#: builtin/mainmenu/store.lua -msgid "Page $1 of $2" -msgstr "" - -#: builtin/mainmenu/tab_credits.lua -msgid "Credits" -msgstr "" - -#: builtin/mainmenu/tab_credits.lua -msgid "Dedication of the current release" -msgstr "" - -#: builtin/mainmenu/tab_credits.lua -msgid "MultiCraft Developers" -msgstr "" - -#: builtin/mainmenu/tab_credits.lua -msgid "Minetest Developers" -msgstr "" - -#: builtin/mainmenu/tab_credits.lua -msgid "Active Contributors" -msgstr "" - -#: builtin/mainmenu/tab_credits.lua -msgid "Previous Core Developers" -msgstr "" - -#: builtin/mainmenu/tab_credits.lua -msgid "Previous Contributors" -msgstr "" - -#: builtin/mainmenu/tab_local.lua -msgid "New" -msgstr "" - -#: builtin/mainmenu/tab_local.lua -msgid "Configure" -msgstr "" - -#: builtin/mainmenu/tab_local.lua -msgid "Select World:" -msgstr "" - -#: builtin/mainmenu/tab_local.lua builtin/mainmenu/tab_simple_main.lua -msgid "Creative Mode" -msgstr "" - -#: builtin/mainmenu/tab_local.lua builtin/mainmenu/tab_simple_main.lua -msgid "Enable Damage" -msgstr "" - -#: builtin/mainmenu/tab_local.lua -msgid "Host Server" -msgstr "" - -#: builtin/mainmenu/tab_local.lua -msgid "Host Game" -msgstr "" - -#: builtin/mainmenu/tab_local.lua -msgid "Announce Server" -msgstr "" - -#: builtin/mainmenu/tab_local.lua -msgid "Name/Password" -msgstr "" - -#: builtin/mainmenu/tab_local.lua -msgid "Bind Address" -msgstr "" - -#: builtin/mainmenu/tab_local.lua -msgid "Port" -msgstr "" - -#: builtin/mainmenu/tab_local.lua -msgid "Server Port" -msgstr "" - -#: builtin/mainmenu/tab_local.lua -msgid "Play Game" -msgstr "" - -#: builtin/mainmenu/tab_local.lua -msgid "No world created or selected!" -msgstr "" - -#: builtin/mainmenu/tab_local.lua -msgid "Local Game" -msgstr "" - -#: builtin/mainmenu/tab_mods.lua -msgid "Installed Mods:" -msgstr "" - -#: builtin/mainmenu/tab_mods.lua -msgid "No mod description available" -msgstr "" - -#: builtin/mainmenu/tab_mods.lua -msgid "Mod information:" -msgstr "" - -#: builtin/mainmenu/tab_mods.lua -msgid "Rename" -msgstr "" - -#: builtin/mainmenu/tab_mods.lua -msgid "Uninstall selected modpack" -msgstr "" - -#: builtin/mainmenu/tab_mods.lua -msgid "No dependencies." -msgstr "" - -#: builtin/mainmenu/tab_mods.lua -msgid "Uninstall selected mod" -msgstr "" - -#: builtin/mainmenu/tab_mods.lua -msgid "Select Mod File:" -msgstr "" - -#: builtin/mainmenu/tab_online.lua -msgid "Address / Port" -msgstr "" - -#: builtin/mainmenu/tab_online.lua builtin/mainmenu/tab_simple_main.lua -msgid "Name / Password" -msgstr "" - -#: builtin/mainmenu/tab_online.lua builtin/mainmenu/tab_simple_main.lua -msgid "Connect" -msgstr "" - -#: builtin/mainmenu/tab_online.lua builtin/mainmenu/tab_simple_main.lua -msgid "Del. Favorite" -msgstr "" - -#: builtin/mainmenu/tab_online.lua builtin/mainmenu/tab_simple_main.lua -msgid "Favorite" -msgstr "" - -#: builtin/mainmenu/tab_online.lua builtin/mainmenu/tab_simple_main.lua -msgid "Ping" -msgstr "" - -#: builtin/mainmenu/tab_online.lua builtin/mainmenu/tab_simple_main.lua -msgid "Creative mode" -msgstr "" - -#: builtin/mainmenu/tab_online.lua builtin/mainmenu/tab_simple_main.lua -msgid "Damage enabled" -msgstr "" - -#: builtin/mainmenu/tab_online.lua builtin/mainmenu/tab_simple_main.lua -msgid "PvP enabled" -msgstr "" - -#: builtin/mainmenu/tab_online.lua -msgid "Multiplayer" -msgstr "" - -#: builtin/mainmenu/tab_settings.lua -msgid "Opaque Leaves" -msgstr "" - -#: builtin/mainmenu/tab_settings.lua -msgid "Simple Leaves" -msgstr "" - -#: builtin/mainmenu/tab_settings.lua -msgid "Fancy Leaves" -msgstr "" - -#: builtin/mainmenu/tab_settings.lua -msgid "Node Outlining" -msgstr "" - -#: builtin/mainmenu/tab_settings.lua -msgid "Node Highlighting" -msgstr "" - -#: builtin/mainmenu/tab_settings.lua builtin/mainmenu/tab_texturepacks.lua -msgid "None" -msgstr "" - -#: builtin/mainmenu/tab_settings.lua -msgid "No Filter" -msgstr "" - -#: builtin/mainmenu/tab_settings.lua -msgid "Bilinear Filter" -msgstr "" - -#: builtin/mainmenu/tab_settings.lua -msgid "Trilinear Filter" -msgstr "" - -#: builtin/mainmenu/tab_settings.lua -msgid "No Mipmap" -msgstr "" - -#: builtin/mainmenu/tab_settings.lua -msgid "Mipmap" -msgstr "" - -#: builtin/mainmenu/tab_settings.lua -msgid "Mipmap + Aniso. Filter" -msgstr "" - -#: builtin/mainmenu/tab_settings.lua -msgid "2x" -msgstr "" - -#: builtin/mainmenu/tab_settings.lua -msgid "4x" -msgstr "" - -#: builtin/mainmenu/tab_settings.lua -msgid "8x" -msgstr "" - -#: builtin/mainmenu/tab_settings.lua -msgid "Are you sure to reset your singleplayer world?" -msgstr "" - -#: builtin/mainmenu/tab_settings.lua -msgid "Smooth Lighting" -msgstr "" - -#: builtin/mainmenu/tab_settings.lua -msgid "Particles" -msgstr "" - -#: builtin/mainmenu/tab_settings.lua -msgid "3D Clouds" -msgstr "" - -#: builtin/mainmenu/tab_settings.lua -msgid "Opaque Water" -msgstr "" - -#: builtin/mainmenu/tab_settings.lua -msgid "Connected Glass" -msgstr "" - -#: builtin/mainmenu/tab_settings.lua -msgid "Texturing:" -msgstr "" - -#: builtin/mainmenu/tab_settings.lua -msgid "Antialiasing:" -msgstr "" - -#: builtin/mainmenu/tab_settings.lua -msgid "Screen:" -msgstr "" - -#: builtin/mainmenu/tab_settings.lua -msgid "Autosave screen size" -msgstr "" - -#: builtin/mainmenu/tab_settings.lua src/settings_translation_file.cpp -msgid "Shaders" -msgstr "" - -#: builtin/mainmenu/tab_settings.lua -msgid "Reset singleplayer world" -msgstr "" - -#: builtin/mainmenu/tab_settings.lua -msgid "Change keys" -msgstr "" - -#: builtin/mainmenu/tab_settings.lua -msgid "Advanced Settings" -msgstr "" - -#: builtin/mainmenu/tab_settings.lua -msgid "Touchthreshold (px)" -msgstr "" - -#: builtin/mainmenu/tab_settings.lua -msgid "Bump Mapping" -msgstr "" - -#: builtin/mainmenu/tab_settings.lua src/settings_translation_file.cpp -msgid "Tone Mapping" -msgstr "" - -#: builtin/mainmenu/tab_settings.lua -msgid "Normal Mapping" -msgstr "" - -#: builtin/mainmenu/tab_settings.lua src/settings_translation_file.cpp -msgid "Parallax Occlusion" -msgstr "" - -#: builtin/mainmenu/tab_settings.lua -msgid "Waving Water" -msgstr "" - -#: builtin/mainmenu/tab_settings.lua -msgid "Waving Leaves" -msgstr "" - -#: builtin/mainmenu/tab_settings.lua -msgid "Waving Plants" -msgstr "" - -#: builtin/mainmenu/tab_settings.lua -msgid "To enable shaders the OpenGL driver needs to be used." -msgstr "" - -#: builtin/mainmenu/tab_settings.lua -msgid "Settings" -msgstr "" - -#: builtin/mainmenu/tab_simple_main.lua -msgid "Start Singleplayer" -msgstr "" - -#: builtin/mainmenu/tab_simple_main.lua -msgid "Config mods" -msgstr "" - -#: builtin/mainmenu/tab_simple_main.lua -msgid "Main" -msgstr "" - -#: builtin/mainmenu/tab_texturepacks.lua -msgid "Select texture pack:" -msgstr "" - -#: builtin/mainmenu/tab_texturepacks.lua -msgid "No information available" -msgstr "" - -#: builtin/mainmenu/tab_texturepacks.lua -msgid "Texturepacks" -msgstr "" - -#: src/client.cpp -msgid "Connection timed out." -msgstr "" - -#: src/client.cpp -msgid "Loading textures..." -msgstr "" - -#: src/client.cpp -msgid "Rebuilding shaders..." -msgstr "" - -#: src/client.cpp -msgid "Initializing nodes..." -msgstr "" - -#: src/client.cpp -msgid "Initializing nodes" -msgstr "" - -#: src/client.cpp -msgid "Done!" -msgstr "" - -#: src/client/clientlauncher.cpp -msgid "Main Menu" -msgstr "" - -#: src/client/clientlauncher.cpp -msgid "Player name too long." -msgstr "" - -#: src/client/clientlauncher.cpp -msgid "Connection error (timed out?)" -msgstr "" - -#: src/client/clientlauncher.cpp -msgid "Please choose a name!" -msgstr "" - -#: src/client/clientlauncher.cpp -msgid "No world selected and no address provided. Nothing to do." -msgstr "" - -#: src/client/clientlauncher.cpp -msgid "Provided world path doesn't exist: " -msgstr "" - -#: src/client/clientlauncher.cpp -msgid "Could not find or load game \"" -msgstr "" - -#: src/client/clientlauncher.cpp -msgid "Invalid gamespec." -msgstr "" - -#: src/fontengine.cpp -msgid "needs_fallback_font" -msgstr "" - -#: src/game.cpp -msgid "Shutting down..." -msgstr "" - -#: src/game.cpp -msgid "Creating server..." -msgstr "" - -#: src/game.cpp -msgid "Creating client..." -msgstr "" - -#: src/game.cpp -msgid "Resolving address..." -msgstr "" - -#: src/game.cpp -msgid "Connecting to server..." -msgstr "" - -#: src/game.cpp -msgid "Item definitions..." -msgstr "" - -#: src/game.cpp -msgid "Node definitions..." -msgstr "" - -#: src/game.cpp -msgid "Media..." -msgstr "" - -#: src/game.cpp -msgid "KiB/s" -msgstr "" - -#: src/game.cpp -msgid "MiB/s" -msgstr "" - -#: src/game.cpp -msgid "Volume changed to 100%" -msgstr "" - -#: src/game.cpp -msgid "Volume changed to 0%" -msgstr "" - -#: src/game.cpp -#, c-format -msgid "Volume changed to %d%%" -msgstr "" - -#: src/game.cpp src/guiFormSpecMenu.cpp -msgid "ok" -msgstr "" - -#: src/game.cpp -msgid "" -"Default Controls:\n" -"No menu visible:\n" -"- single tap: button activate\n" -"- double tap: place/use\n" -"- slide finger: look around\n" -"Menu/Inventory visible:\n" -"- double tap (outside):\n" -" -->close\n" -"- touch stack, touch slot:\n" -" --> move stack\n" -"- touch&drag, tap 2nd finger\n" -" --> place single item to slot\n" -msgstr "" - -#: src/game.cpp -#, c-format -msgid "" -"Controls:\n" -"- %s: move forwards\n" -"- %s: move backwards\n" -"- %s: move left\n" -"- %s: move right\n" -"- %s: jump/climb\n" -"- %s: sneak/go down\n" -"- %s: drop item\n" -"- %s: inventory\n" -"- Mouse: turn/look\n" -"- Mouse left: dig/punch\n" -"- Mouse right: place/use\n" -"- Mouse wheel: select item\n" -"- %s: chat\n" -msgstr "" - -#: src/game.cpp -msgid "Continue" -msgstr "" - -#: src/game.cpp -msgid "Change Password" -msgstr "" - -#: src/game.cpp -msgid "Game paused" -msgstr "" - -#: src/game.cpp -msgid "Sound Volume" -msgstr "" - -#: src/game.cpp -msgid "Change Keys" -msgstr "" - -#: src/game.cpp -msgid "Save and Exit" -msgstr "" - -#: src/game.cpp -msgid "Close game" -msgstr "" - -#: src/game.cpp -msgid "Game info:" -msgstr "" - -#: src/game.cpp -msgid "- Mode: " -msgstr "" - -#: src/game.cpp -msgid "Migrating world..." -msgstr "" - -#: src/game.cpp -msgid "Remote server" -msgstr "" - -#: src/game.cpp -msgid "- Address: " -msgstr "" - -#: src/game.cpp -msgid "Hosting server" -msgstr "" - -#: src/game.cpp -msgid "- Port: " -msgstr "" - -#: src/game.cpp -msgid "Singleplayer" -msgstr "" - -#: src/game.cpp -msgid "On" -msgstr "" - -#: src/game.cpp -msgid "Off" -msgstr "" - -#: src/game.cpp -msgid "- Damage: " -msgstr "" - -#: src/game.cpp -msgid "- Creative Mode: " -msgstr "" - -#: src/game.cpp -msgid "- PvP: " -msgstr "" - -#: src/game.cpp -msgid "- Public: " -msgstr "" - -#: src/game.cpp -msgid "- Server Name: " -msgstr "" - -#: src/game.cpp -msgid "" -"\n" -"Check debug.txt for details." -msgstr "" - -#: src/guiFormSpecMenu.cpp -msgid "Proceed" -msgstr "" - -#: src/guiFormSpecMenu.cpp -msgid "Enter " -msgstr "" - -#: src/guiKeyChangeMenu.cpp -msgid "" -"Keybindings. (If this menu screws up, remove stuff from multicraft.conf)" -msgstr "" - -#: src/guiKeyChangeMenu.cpp -msgid "\"Use\" = climb down" -msgstr "" - -#: src/guiKeyChangeMenu.cpp -msgid "Double tap \"jump\" to toggle fly" -msgstr "" - -#: src/guiKeyChangeMenu.cpp -msgid "Key already in use" -msgstr "" - -#: src/guiKeyChangeMenu.cpp -msgid "press key" -msgstr "" - -#: src/guiKeyChangeMenu.cpp -msgid "Forward" -msgstr "" - -#: src/guiKeyChangeMenu.cpp -msgid "Backward" -msgstr "" - -#: src/guiKeyChangeMenu.cpp src/keycode.cpp -msgid "Left" -msgstr "" - -#: src/guiKeyChangeMenu.cpp src/keycode.cpp -msgid "Right" -msgstr "" - -#: src/guiKeyChangeMenu.cpp -msgid "Use" -msgstr "" - -#: src/guiKeyChangeMenu.cpp -msgid "Jump" -msgstr "" - -#: src/guiKeyChangeMenu.cpp -msgid "Sneak" -msgstr "" - -#: src/guiKeyChangeMenu.cpp -msgid "Drop" -msgstr "" - -#: src/guiKeyChangeMenu.cpp -msgid "Inventory" -msgstr "" - -#: src/guiKeyChangeMenu.cpp -msgid "Prev. item" -msgstr "" - -#: src/guiKeyChangeMenu.cpp -msgid "Next item" -msgstr "" - -#: src/guiKeyChangeMenu.cpp -msgid "Mute" -msgstr "" - -#: src/guiKeyChangeMenu.cpp -msgid "Dec. volume" -msgstr "" - -#: src/guiKeyChangeMenu.cpp -msgid "Inc. volume" -msgstr "" - -#: src/guiKeyChangeMenu.cpp -msgid "Chat" -msgstr "" - -#: src/guiKeyChangeMenu.cpp -msgid "Command" -msgstr "" - -#: src/guiKeyChangeMenu.cpp -msgid "Local command" -msgstr "" - -#: src/guiKeyChangeMenu.cpp -msgid "Console" -msgstr "" - -#: src/guiKeyChangeMenu.cpp -msgid "Toggle fly" -msgstr "" - -#: src/guiKeyChangeMenu.cpp -msgid "Toggle fast" -msgstr "" - -#: src/guiKeyChangeMenu.cpp -msgid "Toggle Cinematic" -msgstr "" - -#: src/guiKeyChangeMenu.cpp -msgid "Toggle noclip" -msgstr "" - -#: src/guiKeyChangeMenu.cpp -msgid "Range select" -msgstr "" - -#: src/guiKeyChangeMenu.cpp src/settings_translation_file.cpp -msgid "Print stacks" -msgstr "" - -#: src/guiKeyChangeMenu.cpp src/keycode.cpp -msgid "Zoom" -msgstr "" - -#: src/guiPasswordChange.cpp -msgid "Old Password" -msgstr "" - -#: src/guiPasswordChange.cpp -msgid "New Password" -msgstr "" - -#: src/guiPasswordChange.cpp -msgid "Confirm Password" -msgstr "" - -#: src/guiPasswordChange.cpp -msgid "Change" -msgstr "" - -#: src/guiPasswordChange.cpp -msgid "Passwords do not match!" -msgstr "" - -#: src/guiVolumeChange.cpp -msgid "Sound Volume: " -msgstr "" - -#: src/guiVolumeChange.cpp -msgid "Exit" -msgstr "" - -#: src/keycode.cpp -msgid "Left Button" -msgstr "" - -#: src/keycode.cpp -msgid "Right Button" -msgstr "" - -#: src/keycode.cpp -msgid "Middle Button" -msgstr "" - -#: src/keycode.cpp -msgid "X Button 1" -msgstr "" - -#: src/keycode.cpp -msgid "X Button 2" -msgstr "" - -#: src/keycode.cpp -msgid "Back" -msgstr "" - -#: src/keycode.cpp -msgid "Tab" -msgstr "" - -#: src/keycode.cpp -msgid "Clear" -msgstr "" - -#: src/keycode.cpp -msgid "Return" -msgstr "" - -#: src/keycode.cpp -msgid "Shift" -msgstr "" - -#: src/keycode.cpp -msgid "Control" -msgstr "" - -#: src/keycode.cpp -msgid "Menu" -msgstr "" - -#: src/keycode.cpp -msgid "Pause" -msgstr "" - -#: src/keycode.cpp -msgid "Caps Lock" -msgstr "" - -#: src/keycode.cpp -msgid "Space" -msgstr "" - -#: src/keycode.cpp -msgid "Prior" -msgstr "" - -#: src/keycode.cpp -msgid "Next" -msgstr "" - -#: src/keycode.cpp -msgid "End" -msgstr "" - -#: src/keycode.cpp -msgid "Home" -msgstr "" - -#: src/keycode.cpp -msgid "Up" -msgstr "" - -#: src/keycode.cpp -msgid "Down" -msgstr "" - -#: src/keycode.cpp -msgid "Select" -msgstr "" - -#: src/keycode.cpp -msgid "Print" -msgstr "" - -#: src/keycode.cpp -msgid "Execute" -msgstr "" - -#: src/keycode.cpp -msgid "Snapshot" -msgstr "" - -#: src/keycode.cpp -msgid "Insert" -msgstr "" - -#: src/keycode.cpp -msgid "Help" -msgstr "" - -#: src/keycode.cpp -msgid "Left Windows" -msgstr "" - -#: src/keycode.cpp -msgid "Right Windows" -msgstr "" - -#: src/keycode.cpp -msgid "Numpad 0" -msgstr "" - -#: src/keycode.cpp -msgid "Numpad 1" -msgstr "" - -#: src/keycode.cpp -msgid "Numpad 2" -msgstr "" - -#: src/keycode.cpp -msgid "Numpad 3" -msgstr "" - -#: src/keycode.cpp -msgid "Numpad 4" -msgstr "" - -#: src/keycode.cpp -msgid "Numpad 5" -msgstr "" - -#: src/keycode.cpp -msgid "Numpad 6" -msgstr "" - -#: src/keycode.cpp -msgid "Numpad 7" -msgstr "" - -#: src/keycode.cpp -msgid "Numpad 8" -msgstr "" - -#: src/keycode.cpp -msgid "Numpad 9" -msgstr "" - -#: src/keycode.cpp -msgid "Numpad *" -msgstr "" - -#: src/keycode.cpp -msgid "Numpad +" -msgstr "" - -#: src/keycode.cpp -msgid "Numpad ." -msgstr "" - -#: src/keycode.cpp -msgid "Numpad -" -msgstr "" - -#: src/keycode.cpp -msgid "Numpad /" -msgstr "" - -#: src/keycode.cpp -msgid "Num Lock" -msgstr "" - -#: src/keycode.cpp -msgid "Scroll Lock" -msgstr "" - -#: src/keycode.cpp -msgid "Left Shift" -msgstr "" - -#: src/keycode.cpp -msgid "Right Shift" -msgstr "" - -#: src/keycode.cpp -msgid "Left Control" -msgstr "" - -#: src/keycode.cpp -msgid "Right Control" -msgstr "" - -#: src/keycode.cpp -msgid "Left Menu" -msgstr "" - -#: src/keycode.cpp -msgid "Right Menu" -msgstr "" - -#: src/keycode.cpp -msgid "IME Escape" -msgstr "" - -#: src/keycode.cpp -msgid "IME Convert" -msgstr "" - -#: src/keycode.cpp -msgid "IME Nonconvert" -msgstr "" - -#: src/keycode.cpp -msgid "IME Accept" -msgstr "" - -#: src/keycode.cpp -msgid "IME Mode Change" -msgstr "" - -#: src/keycode.cpp -msgid "Apps" -msgstr "" - -#: src/keycode.cpp -msgid "Sleep" -msgstr "" - -#: src/keycode.cpp -msgid "Erase EOF" -msgstr "" - -#: src/keycode.cpp -msgid "Play" -msgstr "" - -#: src/keycode.cpp -msgid "OEM Clear" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Client" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Client" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Controls" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Build inside player" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"If enabled, you can place blocks at the position (feet + eye level) where " -"you stand.\n" -"This is helpful when working with nodeboxes in small areas." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Flying" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Player is able to fly without being affected by gravity.\n" -"This requires the \"fly\" privilege on the server." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Fast movement" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Fast movement (via use key).\n" -"This requires the \"fast\" privilege on the server." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Noclip" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"If enabled together with fly mode, player is able to fly through solid " -"nodes.\n" -"This requires the \"noclip\" privilege on the server." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Cinematic mode" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Smooths camera when looking around. Also called look or mouse smoothing.\n" -"Useful for recording videos." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Camera smoothing" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Smooths rotation of camera. 0 to disable." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Camera smoothing in cinematic mode" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Smooths rotation of camera in cinematic mode. 0 to disable." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Invert mouse" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Invert vertical mouse movement." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Mouse sensitivity" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Mouse sensitivity multiplier." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Key use for climbing/descending" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"If enabled, \"use\" key instead of \"sneak\" key is used for climbing down " -"and descending." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Double tap jump for fly" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Double-tapping the jump key toggles fly mode." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Always fly and fast" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"If disabled \"use\" key is used to fly fast if both fly and fast mode are " -"enabled." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Rightclick repetition interval" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"The time in seconds it takes between repeated right clicks when holding the " -"right mouse button." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Random input" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Enable random user input (only used for testing)." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Continuous forward" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Continuous forward movement (only used for testing)." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Enable Joysticks" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Joystick ID" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "The identifier of the joystick to use" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Joystick Type" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "The type of joystick" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Joystick button repetition interval" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"The time in seconds it takes between repeated events\n" -"when holding down a joystick button combination." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Joystick frustum sensitivity" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"The sensitivity of the joystick axes for moving the\n" -"ingame view frustum around." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Forward key" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Key for moving the player forward.\n" -"See http://irrlicht.sourceforge.net/docu/namespaceirr." -"html#a54da2a0e231901735e3da1b0edf72eb3" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Backward key" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Key for moving the player backward.\n" -"See http://irrlicht.sourceforge.net/docu/namespaceirr." -"html#a54da2a0e231901735e3da1b0edf72eb3" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Left key" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Key for moving the player left.\n" -"See http://irrlicht.sourceforge.net/docu/namespaceirr." -"html#a54da2a0e231901735e3da1b0edf72eb3" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Right key" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Key for moving the player right.\n" -"See http://irrlicht.sourceforge.net/docu/namespaceirr." -"html#a54da2a0e231901735e3da1b0edf72eb3" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Jump key" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Key for jumping.\n" -"See http://irrlicht.sourceforge.net/docu/namespaceirr." -"html#a54da2a0e231901735e3da1b0edf72eb3" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Sneak key" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Key for sneaking.\n" -"Also used for climbing down and descending in water if aux1_descends is " -"disabled.\n" -"See http://irrlicht.sourceforge.net/docu/namespaceirr." -"html#a54da2a0e231901735e3da1b0edf72eb3" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Inventory key" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Key for opening the inventory.\n" -"See http://irrlicht.sourceforge.net/docu/namespaceirr." -"html#a54da2a0e231901735e3da1b0edf72eb3" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Use key" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Key for moving fast in fast mode.\n" -"See http://irrlicht.sourceforge.net/docu/namespaceirr." -"html#a54da2a0e231901735e3da1b0edf72eb3" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Chat key" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Key for opening the chat window.\n" -"See http://irrlicht.sourceforge.net/docu/namespaceirr." -"html#a54da2a0e231901735e3da1b0edf72eb3" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Command key" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Key for opening the chat window to type commands.\n" -"See http://irrlicht.sourceforge.net/docu/namespaceirr." -"html#a54da2a0e231901735e3da1b0edf72eb3" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Key for opening the chat window to type local commands.\n" -"See http://irrlicht.sourceforge.net/docu/namespaceirr." -"html#a54da2a0e231901735e3da1b0edf72eb3" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Console key" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Key for opening the chat console.\n" -"See http://irrlicht.sourceforge.net/docu/namespaceirr." -"html#a54da2a0e231901735e3da1b0edf72eb3" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Range select key" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Key for toggling unlimited view range.\n" -"See http://irrlicht.sourceforge.net/docu/namespaceirr." -"html#a54da2a0e231901735e3da1b0edf72eb3" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Fly key" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Key for toggling flying.\n" -"See http://irrlicht.sourceforge.net/docu/namespaceirr." -"html#a54da2a0e231901735e3da1b0edf72eb3" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Fast key" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Key for toggling fast mode.\n" -"See http://irrlicht.sourceforge.net/docu/namespaceirr." -"html#a54da2a0e231901735e3da1b0edf72eb3" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Noclip key" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Key for toggling noclip mode.\n" -"See http://irrlicht.sourceforge.net/docu/namespaceirr." -"html#a54da2a0e231901735e3da1b0edf72eb3" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Hotbar next key" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Key for selecting the next item in the hotbar.\n" -"See http://irrlicht.sourceforge.net/docu/namespaceirr." -"html#a54da2a0e231901735e3da1b0edf72eb3" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Hotbar previous key" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Key for selecting the previous item in the hotbar.\n" -"See http://irrlicht.sourceforge.net/docu/namespaceirr." -"html#a54da2a0e231901735e3da1b0edf72eb3" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Mute key" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Key for muting the game.\n" -"See http://irrlicht.sourceforge.net/docu/namespaceirr." -"html#a54da2a0e231901735e3da1b0edf72eb3" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Inc. volume key" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Key for increasing the volume.\n" -"See http://irrlicht.sourceforge.net/docu/namespaceirr." -"html#a54da2a0e231901735e3da1b0edf72eb3" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Dec. volume key" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Key for decreasing the volume.\n" -"See http://irrlicht.sourceforge.net/docu/namespaceirr." -"html#a54da2a0e231901735e3da1b0edf72eb3" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Autorun key" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Key for toggling autorun.\n" -"See http://irrlicht.sourceforge.net/docu/namespaceirr." -"html#a54da2a0e231901735e3da1b0edf72eb3" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Cinematic mode key" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Key for toggling cinematic mode.\n" -"See http://irrlicht.sourceforge.net/docu/namespaceirr." -"html#a54da2a0e231901735e3da1b0edf72eb3" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Minimap key" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Key for toggling display of minimap.\n" -"See http://irrlicht.sourceforge.net/docu/namespaceirr." -"html#a54da2a0e231901735e3da1b0edf72eb3" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Screenshot" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Key for taking screenshots.\n" -"See http://irrlicht.sourceforge.net/docu/namespaceirr." -"html#a54da2a0e231901735e3da1b0edf72eb3" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Drop item key" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Key for dropping the currently selected item.\n" -"See http://irrlicht.sourceforge.net/docu/namespaceirr." -"html#a54da2a0e231901735e3da1b0edf72eb3" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "View zoom key" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Key to use view zoom when possible.\n" -"See http://irrlicht.sourceforge.net/docu/namespaceirr." -"html#a54da2a0e231901735e3da1b0edf72eb3" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "HUD toggle key" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Key for toggling the display of the HUD.\n" -"See http://irrlicht.sourceforge.net/docu/namespaceirr." -"html#a54da2a0e231901735e3da1b0edf72eb3" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Chat toggle key" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Key for toggling the display of the chat.\n" -"See http://irrlicht.sourceforge.net/docu/namespaceirr." -"html#a54da2a0e231901735e3da1b0edf72eb3" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Large chat console key" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Key for toggling the display of the large chat console.\n" -"See http://irrlicht.sourceforge.net/docu/namespaceirr." -"html#a54da2a0e231901735e3da1b0edf72eb3" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Fog toggle key" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Key for toggling the display of the fog.\n" -"See http://irrlicht.sourceforge.net/docu/namespaceirr." -"html#a54da2a0e231901735e3da1b0edf72eb3" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Camera update toggle key" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Key for toggling the camera update. Only used for development\n" -"See http://irrlicht.sourceforge.net/docu/namespaceirr." -"html#a54da2a0e231901735e3da1b0edf72eb3" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Debug info toggle key" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Key for toggling the display of debug info.\n" -"See http://irrlicht.sourceforge.net/docu/namespaceirr." -"html#a54da2a0e231901735e3da1b0edf72eb3" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Profiler toggle key" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Key for toggling the display of the profiler. Used for development.\n" -"See http://irrlicht.sourceforge.net/docu/namespaceirr." -"html#a54da2a0e231901735e3da1b0edf72eb3" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Toggle camera mode key" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Key for switching between first- and third-person camera.\n" -"See http://irrlicht.sourceforge.net/docu/namespaceirr." -"html#a54da2a0e231901735e3da1b0edf72eb3" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "View range increase key" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Key for increasing the viewing range.\n" -"See http://irrlicht.sourceforge.net/docu/namespaceirr." -"html#a54da2a0e231901735e3da1b0edf72eb3" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "View range decrease key" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Key for decreasing the viewing range.\n" -"See http://irrlicht.sourceforge.net/docu/namespaceirr." -"html#a54da2a0e231901735e3da1b0edf72eb3" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Key for printing debug stacks. Used for development.\n" -"See http://irrlicht.sourceforge.net/docu/namespaceirr." -"html#a54da2a0e231901735e3da1b0edf72eb3" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Network" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Server address" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Address to connect to.\n" -"Leave this blank to start a local server.\n" -"Note that the address field in the main menu overrides this setting." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Remote port" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Port to connect to (UDP).\n" -"Note that the port field in the main menu overrides this setting." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Support older servers" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Whether to support older servers before protocol version 25.\n" -"Enable if you want to connect to 0.4.12 servers and before.\n" -"Servers starting with 0.4.13 will work, 0.4.12-dev servers may work.\n" -"Disabling this option will protect your password better." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Saving map received from server" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Save the map received by the client on disk." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Show entity selection boxes" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Connect to external media server" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Enable usage of remote media server (if provided by server).\n" -"Remote servers offer a significantly faster way to download media (e.g. " -"textures)\n" -"when connecting to the server." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Client modding" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Enable Lua modding support on client.\n" -"This support is experimental and API can change." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Serverlist URL" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "URL to the server list displayed in the Multiplayer Tab." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Serverlist file" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"File in client/serverlist/ that contains your favorite servers displayed in " -"the Multiplayer Tab." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Graphics" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "In-Game" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Basic" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "VBO" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Enable VBO" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Fog" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Whether to fog out the end of the visible area." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Leaves style" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Leaves style:\n" -"- Fancy: all faces visible\n" -"- Simple: only outer faces, if defined special_tiles are used\n" -"- Opaque: disable transparency" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Connect glass" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Connects glass if supported by node." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Smooth lighting" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Enable smooth lighting with simple ambient occlusion.\n" -"Disable for speed or for different looks." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Clouds" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Clouds are a client side effect." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "3D clouds" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Use 3D cloud look instead of flat." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Node highlighting" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Method used to highlight selected object." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Digging particles" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Adds particles when digging a node." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Filtering" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Mipmapping" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Use mip mapping to scale textures. May slightly increase performance." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Anisotropic filtering" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Use anisotropic filtering when viewing at textures from an angle." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Bilinear filtering" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Use bilinear filtering when scaling textures." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Trilinear filtering" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Use trilinear filtering when scaling textures." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Clean transparent textures" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Filtered textures can blend RGB values with fully-transparent neighbors,\n" -"which PNG optimizers usually discard, sometimes resulting in a dark or\n" -"light edge to transparent textures. Apply this filter to clean that up\n" -"at texture load time." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Minimum texture size for filters" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"When using bilinear/trilinear/anisotropic filters, low-resolution textures\n" -"can be blurred, so automatically upscale them with nearest-neighbor\n" -"interpolation to preserve crisp pixels. This sets the minimum texture size\n" -"for the upscaled textures; higher values look sharper, but require more\n" -"memory. Powers of 2 are recommended. Setting this higher than 1 may not\n" -"have a visible effect unless bilinear/trilinear/anisotropic filtering is\n" -"enabled." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "FSAA" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Experimental option, might cause visible spaces between blocks\n" -"when set to higher number than 0." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Undersampling" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Undersampling is similar to using lower screen resolution, but it applies\n" -"to the game world only, keeping the GUI intact.\n" -"It should give significant performance boost at the cost of less detailed " -"image." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Shaders allow advanced visual effects and may increase performance on some " -"video cards.\n" -"This only works with the OpenGL video backend." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Shader path" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Path to shader directory. If no path is defined, default location will be " -"used." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Filmic tone mapping" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Enables filmic tone mapping" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Bumpmapping" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Enables bumpmapping for textures. Normalmaps need to be supplied by the " -"texture pack\n" -"or need to be auto-generated.\n" -"Requires shaders to be enabled." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Generate normalmaps" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Enables on the fly normalmap generation (Emboss effect).\n" -"Requires bumpmapping to be enabled." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Normalmaps strength" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Strength of generated normalmaps." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Normalmaps sampling" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Defines sampling step of texture.\n" -"A higher value results in smoother normal maps." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Parallax occlusion" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Enables parallax occlusion mapping.\n" -"Requires shaders to be enabled." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Parallax occlusion mode" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"0 = parallax occlusion with slope information (faster).\n" -"1 = relief mapping (slower, more accurate)." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Parallax occlusion strength" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Strength of parallax." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Parallax occlusion iterations" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Number of parallax occlusion iterations." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Parallax occlusion Scale" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Overall scale of parallax occlusion effect." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Parallax occlusion bias" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Overall bias of parallax occlusion effect, usually scale/2." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Waving Nodes" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Waving water" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Set to true enables waving water.\n" -"Requires shaders to be enabled." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Waving water height" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Waving water length" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Waving water speed" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Waving leaves" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Set to true enables waving leaves.\n" -"Requires shaders to be enabled." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Waving plants" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Set to true enables waving plants.\n" -"Requires shaders to be enabled." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Advanced" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Maximum FPS" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"If FPS would go higher than this, limit it by sleeping\n" -"to not waste CPU power for no benefit." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "FPS in pause menu" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Maximum FPS when game is paused." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Viewing range" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "View distance in nodes." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Screen width" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Width component of the initial window size." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Screen height" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Height component of the initial window size." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Full screen" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Fullscreen mode." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Full screen BPP" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Bits per pixel (aka color depth) in fullscreen mode." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "V-Sync" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Vertical screen synchronization." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Field of view" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Field of view in degrees." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Field of view for zoom" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Field of view while zooming in degrees.\n" -"This requires the \"zoom\" privilege on the server." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Gamma" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Adjust the gamma encoding for the light tables. Higher numbers are " -"brighter.\n" -"This setting is for the client only and is ignored by the server." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Texture path" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Path to texture directory. All textures are first searched from here." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Video driver" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "The rendering back-end for Irrlicht." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Cloud height" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Height on which clouds are appearing." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Cloud radius" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Radius of cloud area stated in number of 64 node cloud squares.\n" -"Values larger than 26 will start to produce sharp cutoffs at cloud area " -"corners." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Enable view bobbing" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Enables view bobbing when walking." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "View bobbing factor" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Enable view bobbing and amount of view bobbing.\n" -"For example: 0 for no view bobbing; 1.0 for normal; 2.0 for double." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Fall bobbing factor" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Multiplier for fall bobbing.\n" -"For example: 0 for no view bobbing; 1.0 for normal; 2.0 for double." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "3D mode" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"3D support.\n" -"Currently supported:\n" -"- none: no 3d output.\n" -"- anaglyph: cyan/magenta color 3d.\n" -"- interlaced: odd/even line based polarisation screen support.\n" -"- topbottom: split screen top/bottom.\n" -"- sidebyside: split screen side by side.\n" -"- pageflip: quadbuffer based 3d." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Console height" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "In-game chat console height, between 0.1 (10%) and 1.0 (100%)." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Console color" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "In-game chat console background color (R,G,B)." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Console alpha" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "In-game chat console background alpha (opaqueness, between 0 and 255)." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Selection box color" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Selection box border color (R,G,B)." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Selection box width" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Width of the selectionbox's lines around nodes." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Crosshair color" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Crosshair color (R,G,B)." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Crosshair alpha" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Crosshair alpha (opaqueness, between 0 and 255)." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Desynchronize block animation" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Whether node texture animations should be desynchronized per mapblock." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Maximum hotbar width" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Maximum proportion of current window to be used for hotbar.\n" -"Useful if there's something to be displayed right or left of hotbar." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "HUD scale factor" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Modifies the size of the hudbar elements." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Mesh cache" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Enables caching of facedir rotated meshes." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Mapblock mesh generation delay" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Delay between mesh updates on the client in ms. Increasing this will slow\n" -"down the rate of mesh updates, thus reducing jitter on slower clients." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Mapblock mesh generator's MapBlock cache size MB" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Size of the MapBlock cache of the mesh generator. Increasing this will\n" -"increase the cache hit %, reducing the data being copied from the main\n" -"thread, thus reducing jitter." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Minimap" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Enables minimap." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Round minimap" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Shape of the minimap. Enabled = round, disabled = square." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Minimap scan height" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"True = 256\n" -"False = 128\n" -"Useable to make minimap smoother on slower machines." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Colored fog" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Make fog and sky colors depend on daytime (dawn/sunset) and view direction." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Ambient occlusion gamma" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"The strength (darkness) of node ambient-occlusion shading.\n" -"Lower is darker, Higher is lighter. The valid range of values for this\n" -"setting is 0.25 to 4.0 inclusive. If the value is out of range it will be\n" -"set to the nearest valid value." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Inventory items animations" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Enables animation of inventory items." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Inventory image hack" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Android systems only: Tries to create inventory textures from meshes\n" -"when no supported render was found." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Fog Start" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Fraction of the visible distance at which fog starts to be rendered" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Opaque liquids" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Makes all liquids opaque" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Menus" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Clouds in menu" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Use a cloud animation for the main menu background." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "GUI scaling" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Scale gui by a user specified value.\n" -"Use a nearest-neighbor-anti-alias filter to scale the GUI.\n" -"This will smooth over some of the rough edges, and blend\n" -"pixels when scaling down, at the cost of blurring some\n" -"edge pixels when images are scaled by non-integer sizes." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "GUI scaling filter" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"When gui_scaling_filter is true, all GUI images need to be\n" -"filtered in software, but some images are generated directly\n" -"to hardware (e.g. render-to-texture for nodes in inventory)." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "GUI scaling filter txr2img" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"When gui_scaling_filter_txr2img is true, copy those images\n" -"from hardware to software for scaling. When false, fall back\n" -"to the old scaling method, for video drivers that don't\n" -"properly support downloading textures back from hardware." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Tooltip delay" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Delay showing tooltips, stated in milliseconds." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Freetype fonts" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Whether freetype fonts are used, requires freetype support to be compiled in." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Font path" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Path to TrueTypeFont or bitmap." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Font size" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Font shadow" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Font shadow offset, if 0 then shadow will not be drawn." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Font shadow alpha" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Font shadow alpha (opaqueness, between 0 and 255)." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Monospace font path" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Monospace font size" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Fallback font" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "This font will be used for certain languages." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Fallback font size" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Fallback font shadow" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Fallback font shadow alpha" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Screenshot folder" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Path to save screenshots at." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Screenshot format" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Format of screenshots." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Screenshot quality" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Screenshot quality. Only used for JPEG format.\n" -"1 means worst quality; 100 means best quality.\n" -"Use 0 for default quality." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "DPI" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Adjust dpi configuration to your screen (non X11/Android only) e.g. for 4k " -"screens." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Enable console window" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Windows systems only: Start Minetest with the command line window in the " -"background.\n" -"Contains the same information as the file debug.txt (default name)." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Sound" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Volume" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Mapblock unload timeout" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Timeout for client to remove unused map data from memory." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Mapblock limit" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Maximum number of mapblocks for client to be kept in memory.\n" -"Set to -1 for unlimited amount." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Show debug info" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Whether to show the client debug info (has the same effect as hitting F5)." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Server / Singleplayer" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Server name" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Name of the server, to be displayed when players join and in the serverlist." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Server description" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Description of server, to be displayed when players join and in the " -"serverlist." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Domain name of server, to be displayed in the serverlist." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Server URL" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Homepage of server, to be displayed in the serverlist." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Announce server" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Automaticaly report to the serverlist." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Announce to this serverlist.\n" -"If you want to announce your ipv6 address, use serverlist_url = v6.servers." -"minetest.net." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Disable escape sequences" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Disable escape sequences, e.g. chat coloring.\n" -"Use this if you want to run a server with pre-0.4.14 clients and you want to " -"disable\n" -"the escape sequences generated by mods." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Server port" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Network port to listen (UDP).\n" -"This value will be overridden when starting from the main menu." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Bind address" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "The network interface that the server listens on." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Strict protocol checking" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Enable to disallow old clients from connecting.\n" -"Older clients are compatible in the sense that they will not crash when " -"connecting\n" -"to new servers, but they may not support all new features that you are " -"expecting." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Remote media" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Specifies URL from which client fetches media instead of using UDP.\n" -"$filename should be accessible from $remote_media$filename via cURL\n" -"(obviously, remote_media should end with a slash).\n" -"Files that are not present will be fetched the usual way." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "IPv6 server" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Enable/disable running an IPv6 server. An IPv6 server may be restricted\n" -"to IPv6 clients, depending on system configuration.\n" -"Ignored if bind_address is set." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Maximum simultaneous block sends per client" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Maximum number of blocks that are simultaneously sent per client." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Maximum simultaneous block sends total" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Maximum number of blocks that are simultaneously sent in total." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Delay in sending blocks after building" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"To reduce lag, block transfers are slowed down when a player is building " -"something.\n" -"This determines how long they are slowed down after placing or removing a " -"node." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Max. packets per iteration" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Maximum number of packets sent per send step, if you have a slow connection\n" -"try reducing it, but don't reduce it to a number below double of targeted\n" -"client number." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Game" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Default game" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Default game when creating a new world.\n" -"This will be overridden when creating a world from the main menu." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Message of the day" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Message of the day displayed to players connecting." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Maximum users" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Maximum number of players that can connect simultaneously." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Map directory" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"World directory (everything in the world is stored here).\n" -"Not needed if starting from the main menu." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Item entity TTL" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Time in seconds for item entity (dropped items) to live.\n" -"Setting it to -1 disables the feature." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Status message on connection" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "If enabled, show the server status message on player connection." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Damage" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Enable players getting damage and dying." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Creative" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Enable creative mode for new created maps." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Fixed map seed" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"A chosen map seed for a new map, leave empty for random.\n" -"Will be overridden when creating a new world in the main menu." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Default password" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "New users need to input this password." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Default privileges" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"The privileges that new users automatically get.\n" -"See /privs in game for a full list on your server and mod configuration." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Basic Privileges" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Privileges that players with basic_privs can grant" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Unlimited player transfer distance" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Whether players are shown to clients without any range limit.\n" -"Deprecated, use the setting player_transfer_distance instead." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Player transfer distance" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Defines the maximal player transfer distance in blocks (0 = unlimited)." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Player versus Player" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Whether to allow players to damage and kill each other." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Static spawnpoint" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "If this is set, players will always (re)spawn at the given position." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Disallow empty passwords" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "If enabled, new players cannot join with an empty password." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Disable anticheat" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "If enabled, disable cheat prevention in multiplayer." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Rollback recording" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"If enabled, actions are recorded for rollback.\n" -"This option is only read when server starts." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Shutdown message" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "A message to be displayed to all clients when the server shuts down." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Crash message" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "A message to be displayed to all clients when the server crashes." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Ask to reconnect after crash" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Whether to ask clients to reconnect after a (Lua) crash.\n" -"Set this to true if your server is set up to restart automatically." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Active object send range" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"From how far clients know about objects, stated in mapblocks (16 nodes)." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Active block range" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"How large area of blocks are subject to the active block stuff, stated in " -"mapblocks (16 nodes).\n" -"In active blocks objects are loaded and ABMs run." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Max block send distance" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"From how far blocks are sent to clients, stated in mapblocks (16 nodes)." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Maximum forceloaded blocks" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Maximum number of forceloaded mapblocks." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Time send interval" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Interval of sending time of day to clients." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Time speed" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Controls length of day/night cycle.\n" -"Examples: 72 = 20min, 360 = 4min, 1 = 24hour, 0 = day/night/whatever stays " -"unchanged." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Map save interval" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Interval of saving important changes in the world, stated in seconds." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Physics" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Default acceleration" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Acceleration in air" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Fast mode acceleration" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Walking speed" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Crouch speed" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Fast mode speed" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Climbing speed" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Jumping speed" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Descending speed" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Liquid fluidity" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Liquid fluidity smoothing" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Liquid sink" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Gravity" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Deprecated Lua API handling" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Handling for deprecated lua api calls:\n" -"- legacy: (try to) mimic old behaviour (default for release).\n" -"- log: mimic and log backtrace of deprecated call (default for debug).\n" -"- error: abort on usage of deprecated call (suggested for mod developers)." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Max. clearobjects extra blocks" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Number of extra blocks that can be loaded by /clearobjects at once.\n" -"This is a trade-off between sqlite transaction overhead and\n" -"memory consumption (4096=100MB, as a rule of thumb)." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Unload unused server data" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"How much the server will wait before unloading unused mapblocks.\n" -"Higher value is smoother, but will use more RAM." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Maximum objects per block" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Maximum number of statically stored objects in a block." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Synchronous SQLite" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "See http://www.sqlite.org/pragma.html#pragma_synchronous" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Dedicated server step" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Length of a server tick and the interval at which objects are generally " -"updated over network." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Active Block Management interval" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Time in between active block management cycles" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Active Block Modifier interval" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Length of time between ABM execution cycles" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "NodeTimer interval" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Length of time between NodeTimer execution cycles" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Ignore world errors" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"If enabled, invalid world data won't cause the server to shut down.\n" -"Only enable this if you know what you are doing." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Liquid loop max" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Max liquids processed per step." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Liquid queue purge time" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"The time (in seconds) that the liquids queue may grow beyond processing\n" -"capacity until an attempt is made to decrease its size by dumping old queue\n" -"items. A value of 0 disables the functionality." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Liquid update tick" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Liquid update interval in seconds." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "block send optimize distance" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"At this distance the server will aggressively optimize which blocks are sent " -"to clients.\n" -"Small values potentially improve performance a lot, at the expense of " -"visible rendering glitches.\n" -"(some blocks will not be rendered under water and in caves, as well as " -"sometimes on land)\n" -"Setting this to a value greater than max_block_send_distance disables this " -"optimization.\n" -"Stated in mapblocks (16 nodes)" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Server side occlusion culling" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"If enabled the server will perform map block occlusion culling based on\n" -"on the eye position of the player. This can reduce the number of blocks\n" -"sent to the client 50-80%. The client will not longer receive most " -"invisible\n" -"so that the utility of noclip mode is reduced." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Mapgen name" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Name of map generator to be used when creating a new world.\n" -"Creating a world in the main menu will override this." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Water level" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Water surface level of the world." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Max block generate distance" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"From how far blocks are generated for clients, stated in mapblocks (16 " -"nodes)." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Map generation limit" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Limit of map generation, in nodes, in all 6 directions from (0, 0, 0).\n" -"Only mapchunks completely within the mapgen limit are generated.\n" -"Value is stored per-world." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Mapgen flags" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Global map generation attributes.\n" -"In Mapgen v6 the 'decorations' flag controls all decorations except trees\n" -"and junglegrass, in all other mapgens this flag controls all decorations.\n" -"Flags that are not specified in the flag string are not modified from the " -"default.\n" -"Flags starting with 'no' are used to explicitly disable them." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Chunk size" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Size of chunks to be generated at once by mapgen, stated in mapblocks (16 " -"nodes)." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Mapgen debug" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Dump the mapgen debug infos." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Absolute limit of emerge queues" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Maximum number of blocks that can be queued for loading." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Limit of emerge queues on disk" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Maximum number of blocks to be queued that are to be loaded from file.\n" -"Set to blank for an appropriate amount to be chosen automatically." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Limit of emerge queues to generate" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Maximum number of blocks to be queued that are to be generated.\n" -"Set to blank for an appropriate amount to be chosen automatically." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Number of emerge threads" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Number of emerge threads to use. Make this field blank, or increase this " -"number\n" -"to use multiple threads. On multiprocessor systems, this will improve mapgen " -"speed greatly\n" -"at the cost of slightly buggy caves." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Biome API temperature and humidity noise parameters" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Heat noise" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Temperature variation for biomes." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Heat blend noise" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Small-scale temperature variation for blending biomes on borders." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Humidity noise" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Humidity variation for biomes." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Humidity blend noise" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Small-scale humidity variation for blending biomes on borders." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Mapgen v5" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Mapgen v5 specific flags" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Map generation attributes specific to Mapgen v5.\n" -"Flags that are not specified in the flag string are not modified from the " -"default.\n" -"Flags starting with 'no' are used to explicitly disable them." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Cave width" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Controls width of tunnels, a smaller value creates wider tunnels." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Cavern limit" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Y-level of cavern upper limit." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Cavern taper" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Y-distance over which caverns expand to full size." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Cavern threshold" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Defines full size of caverns, smaller values create larger caverns." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Filler depth noise" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Variation of biome filler depth." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Factor noise" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Variation of terrain vertical scale.\n" -"When noise is < -0.55 terrain is near-flat." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Height noise" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Y-level of average terrain surface." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Cave1 noise" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "First of 2 3D noises that together define tunnels." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Cave2 noise" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Second of 2 3D noises that together define tunnels." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Cavern noise" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "3D noise defining giant caverns." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Mapgen v6" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Mapgen v6 specific flags" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Map generation attributes specific to Mapgen v6.\n" -"The 'snowbiomes' flag enables the new 5 biome system.\n" -"When the new biome system is enabled jungles are automatically enabled and\n" -"the 'jungles' flag is ignored.\n" -"Flags that are not specified in the flag string are not modified from the " -"default.\n" -"Flags starting with 'no' are used to explicitly disable them." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Desert noise threshold" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Deserts occur when np_biome exceeds this value.\n" -"When the new biome system is enabled, this is ignored." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Beach noise threshold" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Sandy beaches occur when np_beach exceeds this value." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Terrain base noise" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Y-level of lower terrain and lakebeds." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Terrain higher noise" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Y-level of higher (cliff-top) terrain." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Steepness noise" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Varies steepness of cliffs." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Height select noise" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Defines areas of 'terrain_higher' (cliff-top terrain)." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Mud noise" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Varies depth of biome surface nodes." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Beach noise" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Defines areas with sandy beaches." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Biome noise" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Cave noise" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Variation of number of caves." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Trees noise" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Defines tree areas and tree density." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Apple trees noise" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Defines areas where trees have apples." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Mapgen v7" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Mapgen v7 specific flags" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Map generation attributes specific to Mapgen v7.\n" -"The 'ridges' flag enables the rivers.\n" -"Floatlands are currently experimental and subject to change.\n" -"Flags that are not specified in the flag string are not modified from the " -"default.\n" -"Flags starting with 'no' are used to explicitly disable them." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Floatland mountain density" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Controls the density of floatland mountain terrain.\n" -"Is an offset added to the 'np_mountain' noise value." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Floatland mountain height" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Typical maximum height, above and below midpoint, of floatland mountain " -"terrain." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Floatland level" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Y-level of floatland midpoint and lake surface." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Shadow limit" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Y-level to which floatland shadows extend." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Terrain alt noise" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Terrain persistence noise" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Varies roughness of terrain.\n" -"Defines the 'persistence' value for terrain_base and terrain_alt noises." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Defines areas of higher (cliff-top) terrain and affects steepness of cliffs." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Mountain height noise" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Variation of maximum mountain height (in nodes)." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Ridge underwater noise" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Defines large-scale river channel structure." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Floatland base noise" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Defines areas of floatland smooth terrain.\n" -"Smooth floatlands occur when noise > 0." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Floatland base height noise" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Variation of hill height and lake depth on floatland smooth terrain." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Mountain noise" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"3D noise defining mountain structure and height.\n" -"Also defines structure of floatland mountain terrain." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Ridge noise" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "3D noise defining structure of river canyon walls." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Mapgen flat" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Mapgen flat specific flags" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Map generation attributes specific to Mapgen flat.\n" -"Occasional lakes and hills can be added to the flat world.\n" -"Flags that are not specified in the flag string are not modified from the " -"default.\n" -"Flags starting with 'no' are used to explicitly disable them." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Ground level" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Y of flat ground." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Large cave depth" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Y of upper limit of large pseudorandom caves." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Lake threshold" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Terrain noise threshold for lakes.\n" -"Controls proportion of world area covered by lakes.\n" -"Adjust towards 0.0 for a larger proportion." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Lake steepness" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Controls steepness/depth of lake depressions." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Hill threshold" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Terrain noise threshold for hills.\n" -"Controls proportion of world area covered by hills.\n" -"Adjust towards 0.0 for a larger proportion." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Hill steepness" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Controls steepness/height of hills." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Terrain noise" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Defines location and terrain of optional hills and lakes." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Mapgen fractal" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Fractal type" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Choice of 18 fractals from 9 formulas.\n" -"1 = 4D \"Roundy\" mandelbrot set.\n" -"2 = 4D \"Roundy\" julia set.\n" -"3 = 4D \"Squarry\" mandelbrot set.\n" -"4 = 4D \"Squarry\" julia set.\n" -"5 = 4D \"Mandy Cousin\" mandelbrot set.\n" -"6 = 4D \"Mandy Cousin\" julia set.\n" -"7 = 4D \"Variation\" mandelbrot set.\n" -"8 = 4D \"Variation\" julia set.\n" -"9 = 3D \"Mandelbrot/Mandelbar\" mandelbrot set.\n" -"10 = 3D \"Mandelbrot/Mandelbar\" julia set.\n" -"11 = 3D \"Christmas Tree\" mandelbrot set.\n" -"12 = 3D \"Christmas Tree\" julia set.\n" -"13 = 3D \"Mandelbulb\" mandelbrot set.\n" -"14 = 3D \"Mandelbulb\" julia set.\n" -"15 = 3D \"Cosine Mandelbulb\" mandelbrot set.\n" -"16 = 3D \"Cosine Mandelbulb\" julia set.\n" -"17 = 4D \"Mandelbulb\" mandelbrot set.\n" -"18 = 4D \"Mandelbulb\" julia set." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Iterations" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Iterations of the recursive function.\n" -"Controls the amount of fine detail." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Scale" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Approximate (X,Y,Z) scale of fractal in nodes." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Offset" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"(X,Y,Z) offset of fractal from world centre in units of 'scale'.\n" -"Used to move a suitable spawn area of low land close to (0, 0).\n" -"The default is suitable for mandelbrot sets, it needs to be edited for julia " -"sets.\n" -"Range roughly -2 to 2. Multiply by 'scale' for offset in nodes." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Slice w" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"W co-ordinate of the generated 3D slice of a 4D fractal.\n" -"Determines which 3D slice of the 4D shape is generated.\n" -"Has no effect on 3D fractals.\n" -"Range roughly -2 to 2." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Julia x" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Julia set only: X component of hypercomplex constant determining julia " -"shape.\n" -"Range roughly -2 to 2." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Julia y" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Julia set only: Y component of hypercomplex constant determining julia " -"shape.\n" -"Range roughly -2 to 2." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Julia z" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Julia set only: Z component of hypercomplex constant determining julia " -"shape.\n" -"Range roughly -2 to 2." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Julia w" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Julia set only: W component of hypercomplex constant determining julia " -"shape.\n" -"Has no effect on 3D fractals.\n" -"Range roughly -2 to 2." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Seabed noise" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Y-level of seabed." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Mapgen Valleys" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "General" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Valleys C Flags" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Map generation attributes specific to Mapgen Valleys.\n" -"'altitude_chill' makes higher elevations colder, which may cause biome " -"issues.\n" -"'humid_rivers' modifies the humidity around rivers and in areas where water " -"would tend to pool,\n" -"it may interfere with delicately adjusted biomes.\n" -"Flags that are not specified in the flag string are not modified from the " -"default.\n" -"Flags starting with 'no' are used to explicitly disable them." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Altitude Chill" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "The altitude at which temperature drops by 20C" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Depth below which you'll find large caves." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Lava Features" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Creates unpredictable lava features in caves.\n" -"These can make mining difficult. Zero disables them. (0-10)" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Massive cave depth" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Depth below which you'll find massive caves." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "River Depth" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "How deep to make rivers" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "River Size" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "How wide to make rivers" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Water Features" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Creates unpredictable water features in caves.\n" -"These can make mining difficult. Zero disables them. (0-10)" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Noises" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Cave noise #1" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Caves and tunnels form at the intersection of the two noises" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Cave noise #2" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Filler Depth" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "The depth of dirt or other filler" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Massive cave noise" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Massive caves form here." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "River Noise" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "River noise -- rivers occur close to zero" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Terrain Height" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Base terrain height" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Valley Depth" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Raises terrain to make valleys around the rivers" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Valley Fill" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Slope and fill work together to modify the heights" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Valley Profile" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Amplifies the valleys" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Valley Slope" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Security" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Enable mod security" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Prevent mods from doing insecure things like running shell commands." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Trusted mods" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Comma-separated list of trusted mods that are allowed to access insecure\n" -"functions even when mod security is on (via request_insecure_environment())." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "HTTP Mods" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Comma-separated list of mods that are allowed to access HTTP APIs, which\n" -"allow them to upload and download data to/from the internet." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Profiling" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Load the game profiler" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Load the game profiler to collect game profiling data.\n" -"Provides a /profiler command to access the compiled profile.\n" -"Useful for mod developers and server operators." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Default report format" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"The default format in which profiles are being saved,\n" -"when calling `/profiler save [format]` without format." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Report path" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"The file path relative to your worldpath in which profiles will be saved to." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Instrumentation" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Entity methods" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Instrument the methods of entities on registration." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Active Block Modifiers" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Instrument the action function of Active Block Modifiers on registration." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Loading Block Modifiers" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Instrument the action function of Loading Block Modifiers on registration." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Chatcommands" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Instrument chatcommands on registration." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Global callbacks" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Instrument global callback functions on registration.\n" -"(anything you pass to a minetest.register_*() function)" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Builtin" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Instrument builtin.\n" -"This is usually only needed by core/builtin contributors" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Profiler" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Have the profiler instrument itself:\n" -"* Instrument an empty function.\n" -"This estimates the overhead, that instrumentation is adding (+1 function " -"call).\n" -"* Instrument the sampler being used to update the statistics." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Client and Server" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Player name" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Name of the player.\n" -"When running a server, clients connecting with this name are admins.\n" -"When starting from the main menu, this is overridden." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Language" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Set the language. Leave empty to use the system language.\n" -"A restart is required after changing this." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Debug log level" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Level of logging to be written to debug.txt:\n" -"- (no logging)\n" -"- none (messages with no level)\n" -"- error\n" -"- warning\n" -"- action\n" -"- info\n" -"- verbose" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "IPv6" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "IPv6 support." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "cURL timeout" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Default timeout for cURL, stated in milliseconds.\n" -"Only has an effect if compiled with cURL." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "cURL parallel limit" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Limits number of parallel HTTP requests. Affects:\n" -"- Media fetch if server uses remote_media setting.\n" -"- Serverlist download and server announcement.\n" -"- Downloads performed by main menu (e.g. mod manager).\n" -"Only has an effect if compiled with cURL." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "cURL file download timeout" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Maximum time in ms a file download (e.g. a mod download) may take." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "High-precision FPU" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Makes DirectX work with LuaJIT. Disable if it causes troubles." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Main menu script" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Replaces the default main menu with a custom one." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Main menu game manager" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Main menu mod manager" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Modstore download URL" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Modstore mods list URL" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Modstore details URL" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Engine profiling data print interval" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Print the engine's profiling data in regular intervals (in seconds). 0 = " -"disable. Useful for developers." -msgstr "" diff --git a/po/be/MultiCraft.po b/po/be/BlockColor.po similarity index 100% rename from po/be/MultiCraft.po rename to po/be/BlockColor.po diff --git a/po/ca/MultiCraft.po b/po/ca/BlockColor.po similarity index 100% rename from po/ca/MultiCraft.po rename to po/ca/BlockColor.po diff --git a/po/cs/MultiCraft.po b/po/cs/BlockColor.po similarity index 100% rename from po/cs/MultiCraft.po rename to po/cs/BlockColor.po diff --git a/po/da/BlockColor.po b/po/da/BlockColor.po new file mode 100644 index 000000000..848df1026 --- /dev/null +++ b/po/da/BlockColor.po @@ -0,0 +1,5444 @@ +# German translations for minetest-c55 package. +# Copyright (C) 2011 celeron +# This file is distributed under the same license as the minetest-c55 package. +# Frederik Helth , 2011. +# +msgid "" +msgstr "" +"Project-Id-Version: 0.0.0\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2017-05-21 17:40+0200\n" +"PO-Revision-Date: 2016-11-24 16:48+0100\n" +"Last-Translator: Joe Hansen \n" +"Language-Team: Danish \n" +"Language: da\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Plural-Forms: nplurals=2; plural=n != 1;\n" +"X-Generator: Weblate 2.9-dev\n" + +#: builtin/client/init.lua +msgid "Respawn" +msgstr "Genopstå" + +#: builtin/client/init.lua +msgid "You died." +msgstr "Du døde." + +#: builtin/fstk/ui.lua +msgid "An error occured in a Lua script, such as a mod:" +msgstr "Der skete en fejt i Lua scriptet, så som et mod:" + +#: builtin/fstk/ui.lua +msgid "An error occured:" +msgstr "Der skete en fejl:" + +#: builtin/fstk/ui.lua +msgid "Main menu" +msgstr "Hovedmenu" + +#: builtin/fstk/ui.lua builtin/mainmenu/store.lua +msgid "Ok" +msgstr "Ok" + +#: builtin/fstk/ui.lua +msgid "Reconnect" +msgstr "Forbind igen" + +#: builtin/fstk/ui.lua +msgid "The server has requested a reconnect:" +msgstr "Serveren har anmodet om at forbinde igen:" + +#: builtin/mainmenu/common.lua src/game.cpp +msgid "Loading..." +msgstr "Indlæser..." + +#: builtin/mainmenu/common.lua +msgid "Protocol version mismatch. " +msgstr "Protokol versionerne matchede ikke. " + +#: builtin/mainmenu/common.lua +msgid "Server enforces protocol version $1. " +msgstr "Serveren kræver protokol version $1. " + +#: builtin/mainmenu/common.lua +msgid "Server supports protocol versions between $1 and $2. " +msgstr "Serveren understøtter protokol versioner mellem $1 og $2. " + +#: builtin/mainmenu/common.lua +msgid "Try reenabling public serverlist and check your internet connection." +msgstr "" +"Prøv at slå den offentlige serverliste fra og til, og tjek din internet " +"forbindelse." + +#: builtin/mainmenu/common.lua +msgid "We only support protocol version $1." +msgstr "Vi understøtter kun protokol version $1." + +#: builtin/mainmenu/common.lua +msgid "We support protocol versions between version $1 and $2." +msgstr "Vi understøtter protokol versioner mellem $1 og $2." + +#: builtin/mainmenu/dlg_config_world.lua builtin/mainmenu/dlg_create_world.lua +#: builtin/mainmenu/dlg_delete_mod.lua builtin/mainmenu/dlg_delete_world.lua +#: builtin/mainmenu/dlg_rename_modpack.lua +#: builtin/mainmenu/dlg_settings_advanced.lua src/guiKeyChangeMenu.cpp +#: src/guiPasswordChange.cpp src/keycode.cpp +msgid "Cancel" +msgstr "Anuller" + +#: builtin/mainmenu/dlg_config_world.lua builtin/mainmenu/tab_mods.lua +#, fuzzy +msgid "Dependencies:" +msgstr "Afhænger af:" + +#: builtin/mainmenu/dlg_config_world.lua +msgid "Disable MP" +msgstr "Deaktivér MP" + +#: builtin/mainmenu/dlg_config_world.lua +#, fuzzy +msgid "Disable all" +msgstr "Deaktivér MP" + +#: builtin/mainmenu/dlg_config_world.lua +msgid "Enable MP" +msgstr "Aktivér MP" + +#: builtin/mainmenu/dlg_config_world.lua +msgid "Enable all" +msgstr "Aktivér alle" + +#: builtin/mainmenu/dlg_config_world.lua +msgid "" +"Failed to enable mod \"$1\" as it contains disallowed characters. Only " +"chararacters [a-z0-9_] are allowed." +msgstr "" +"Kunne ikke slå mod \"$1\" til, da den indeholder ugyldige tegn. Kun tegnene " +"[a-z0-9_] er tilladte." + +#: builtin/mainmenu/dlg_config_world.lua +msgid "Mod:" +msgstr "Mod:" + +#: builtin/mainmenu/dlg_config_world.lua builtin/mainmenu/tab_mods.lua +msgid "Optional dependencies:" +msgstr "" + +#: builtin/mainmenu/dlg_config_world.lua +#: builtin/mainmenu/dlg_settings_advanced.lua src/guiKeyChangeMenu.cpp +msgid "Save" +msgstr "Gem" + +#: builtin/mainmenu/dlg_config_world.lua +msgid "World:" +msgstr "Verden:" + +#: builtin/mainmenu/dlg_config_world.lua +msgid "enabled" +msgstr "aktiveret" + +#: builtin/mainmenu/dlg_create_world.lua +msgid "A world named \"$1\" already exists" +msgstr "En verden med navnet »$1« findes allerede" + +#: builtin/mainmenu/dlg_create_world.lua +msgid "Create" +msgstr "Skab" + +#: builtin/mainmenu/dlg_create_world.lua +msgid "Download a subgame, such as minetest_game, from minetest.net" +msgstr "Hent et underspil, såsom minetest_game fra minetest.net" + +#: builtin/mainmenu/dlg_create_world.lua +msgid "Download one from minetest.net" +msgstr "Hent en fra minetest.net" + +#: builtin/mainmenu/dlg_create_world.lua src/settings_translation_file.cpp +msgid "Game" +msgstr "Spil" + +#: builtin/mainmenu/dlg_create_world.lua src/settings_translation_file.cpp +msgid "Mapgen" +msgstr "Mapgen" + +#: builtin/mainmenu/dlg_create_world.lua +msgid "No worldname given or no game selected" +msgstr "Intet navn på verden angivet eller intet spil valgt" + +#: builtin/mainmenu/dlg_create_world.lua +#, fuzzy +msgid "Seed" +msgstr "Kim" + +#: builtin/mainmenu/dlg_create_world.lua +msgid "Warning: The minimal development test is meant for developers." +msgstr "Advarsel: Den minimale udvikings test er kun lavet for udviklerne." + +#: builtin/mainmenu/dlg_create_world.lua +msgid "World name" +msgstr "Verdens navn" + +#: builtin/mainmenu/dlg_create_world.lua +msgid "You have no subgames installed." +msgstr "Du har ikke installeret nogle subgames." + +#: builtin/mainmenu/dlg_delete_mod.lua +msgid "Are you sure you want to delete \"$1\"?" +msgstr "Er du sikker på, at du vil slette »$1«?" + +#: builtin/mainmenu/dlg_delete_mod.lua builtin/mainmenu/dlg_delete_world.lua +#: builtin/mainmenu/tab_local.lua src/keycode.cpp +msgid "Delete" +msgstr "Slet" + +#: builtin/mainmenu/dlg_delete_mod.lua +msgid "Modmgr: failed to delete \"$1\"" +msgstr "Modmgr: Kunne ikke slette \"$1\"" + +#: builtin/mainmenu/dlg_delete_mod.lua +msgid "Modmgr: invalid modpath \"$1\"" +msgstr "Modmgr: ugyldig mod-sti \"$1\"" + +#: builtin/mainmenu/dlg_delete_world.lua +msgid "Delete World \"$1\"?" +msgstr "Slet verden \"$1\"?" + +#: builtin/mainmenu/dlg_rename_modpack.lua +msgid "Accept" +msgstr "Accepter" + +#: builtin/mainmenu/dlg_rename_modpack.lua +msgid "Rename Modpack:" +msgstr "Omdøb Modpack:" + +#: builtin/mainmenu/dlg_settings_advanced.lua +msgid "\"$1\" is not a valid flag." +msgstr "\"$1\" er ikke en gyldig indstilling." + +#: builtin/mainmenu/dlg_settings_advanced.lua +msgid "(No description of setting given)" +msgstr "(Der er ikke nogen beskrivelse af denne indstilling)" + +#: builtin/mainmenu/dlg_settings_advanced.lua +msgid "< Back to Settings page" +msgstr "< Tilbage til siden Indstillinger" + +#: builtin/mainmenu/dlg_settings_advanced.lua +msgid "Browse" +msgstr "Gennemse" + +#: builtin/mainmenu/dlg_settings_advanced.lua +msgid "Disabled" +msgstr "Deaktiveret" + +#: builtin/mainmenu/dlg_settings_advanced.lua +msgid "Edit" +msgstr "Rediger" + +#: builtin/mainmenu/dlg_settings_advanced.lua +msgid "Enabled" +msgstr "aktiveret" + +#: builtin/mainmenu/dlg_settings_advanced.lua +msgid "Format is 3 numbers separated by commas and inside brackets." +msgstr "Formatet er 3 tal, adskilt af kommaer, og omgivet af parenteser." + +#: builtin/mainmenu/dlg_settings_advanced.lua +#, fuzzy +msgid "" +"Format: , , (, , ), , " +", " +msgstr "" +"Format: , , (, , " +"), , , " + +#: builtin/mainmenu/dlg_settings_advanced.lua +msgid "Games" +msgstr "Spil" + +#: builtin/mainmenu/dlg_settings_advanced.lua builtin/mainmenu/tab_mods.lua +msgid "Mods" +msgstr "Mods" + +#: builtin/mainmenu/dlg_settings_advanced.lua +msgid "Optionally the lacunarity can be appended with a leading comma." +msgstr "Valgfrit kan »lacunarity'en« tilføjes med et foranstillet komma." + +#: builtin/mainmenu/dlg_settings_advanced.lua +msgid "Please enter a comma seperated list of flags." +msgstr "Indtast venligst en liste af indstillinger som er adskilt med kommaer." + +#: builtin/mainmenu/dlg_settings_advanced.lua +msgid "Please enter a valid integer." +msgstr "Indtast venligst et gyldigt heltal." + +#: builtin/mainmenu/dlg_settings_advanced.lua +msgid "Please enter a valid number." +msgstr "Indtast venligt et gyldigt nummer." + +#: builtin/mainmenu/dlg_settings_advanced.lua +msgid "Possible values are: " +msgstr "Mulige værdier er: " + +#: builtin/mainmenu/dlg_settings_advanced.lua +msgid "Restore Default" +msgstr "Gendan standard" + +#: builtin/mainmenu/dlg_settings_advanced.lua builtin/mainmenu/store.lua +#: builtin/mainmenu/tab_online.lua +msgid "Search" +msgstr "Søg" + +#: builtin/mainmenu/dlg_settings_advanced.lua +msgid "Select path" +msgstr "Vælg sti" + +#: builtin/mainmenu/dlg_settings_advanced.lua +msgid "Show technical names" +msgstr "Vis tekniske navne" + +#: builtin/mainmenu/dlg_settings_advanced.lua +#, fuzzy +msgid "The value must be at least $1." +msgstr "Værdien skal være større end $1." + +#: builtin/mainmenu/dlg_settings_advanced.lua +#, fuzzy +msgid "The value must not be larger than $1." +msgstr "Værdien skal være mindre end $1." + +#: builtin/mainmenu/modmgr.lua +msgid "" +"\n" +"Install Mod: unsupported filetype \"$1\" or broken archive" +msgstr "" +"\n" +"Installer Mod: filtypen \"$1\" er enten ikke understøttet, ellers er arkivet " +"korrupt" + +#: builtin/mainmenu/modmgr.lua +msgid "Failed to install $1 to $2" +msgstr "Kunne ikke installere $1 til $2" + +#: builtin/mainmenu/modmgr.lua +msgid "Install Mod: file: \"$1\"" +msgstr "Installer Mod: Fil: \"$1\"" + +#: builtin/mainmenu/modmgr.lua +msgid "Install Mod: unable to find real modname for: $1" +msgstr "Installer Mod: kunne ikke finde det rigtige mod navn for: $1" + +#: builtin/mainmenu/modmgr.lua +msgid "Install Mod: unable to find suitable foldername for modpack $1" +msgstr "Installer Mod: kunne ikke finde passende mappe navn for modpack $1" + +#: builtin/mainmenu/modmgr.lua +msgid "Subgame Mods" +msgstr "" + +#: builtin/mainmenu/store.lua +msgid "Close store" +msgstr "Luk marked" + +#: builtin/mainmenu/store.lua +msgid "Downloading $1, please wait..." +msgstr "Henter $1, vent venligst..." + +#: builtin/mainmenu/store.lua +msgid "Install" +msgstr "Installer" + +#: builtin/mainmenu/store.lua +msgid "Page $1 of $2" +msgstr "Side $1 af $2" + +#: builtin/mainmenu/store.lua +msgid "Rating" +msgstr "Bedømmelse" + +#: builtin/mainmenu/store.lua +msgid "Shortname:" +msgstr "Kort navn:" + +#: builtin/mainmenu/store.lua +msgid "Successfully installed:" +msgstr "Succesfuldt installeret:" + +#: builtin/mainmenu/store.lua +msgid "Unsorted" +msgstr "Usorteret" + +#: builtin/mainmenu/store.lua +msgid "re-Install" +msgstr "geninstaller" + +#: builtin/mainmenu/tab_credits.lua +msgid "Active Contributors" +msgstr "Aktive bidragere" + +#: builtin/mainmenu/tab_credits.lua +msgid "Core Developers" +msgstr "Hoved udviklere" + +#: builtin/mainmenu/tab_credits.lua +msgid "Credits" +msgstr "Skabt af" + +#: builtin/mainmenu/tab_credits.lua +msgid "Previous Contributors" +msgstr "Tidligere bidragere" + +#: builtin/mainmenu/tab_credits.lua +msgid "Previous Core Developers" +msgstr "Tidligere hoved udviklere" + +#: builtin/mainmenu/tab_local.lua +#, fuzzy +msgid "Announce Server" +msgstr "Meddelelsesserver" + +#: builtin/mainmenu/tab_local.lua +msgid "Bind Address" +msgstr "Bind adresse" + +#: builtin/mainmenu/tab_local.lua +msgid "Configure" +msgstr "Konfigurér" + +#: builtin/mainmenu/tab_local.lua builtin/mainmenu/tab_simple_main.lua +msgid "Creative Mode" +msgstr "Kreativ tilstand" + +#: builtin/mainmenu/tab_local.lua builtin/mainmenu/tab_simple_main.lua +msgid "Enable Damage" +msgstr "Aktivér skade" + +#: builtin/mainmenu/tab_local.lua +#, fuzzy +msgid "Host Game" +msgstr "Skjul spil" + +#: builtin/mainmenu/tab_local.lua +#, fuzzy +msgid "Host Server" +msgstr "Server" + +#: builtin/mainmenu/tab_local.lua +#, fuzzy +msgid "Local Game" +msgstr "Start spil / Forbind" + +#: builtin/mainmenu/tab_local.lua +msgid "Name/Password" +msgstr "Navn/kodeord" + +#: builtin/mainmenu/tab_local.lua +msgid "New" +msgstr "Ny" + +#: builtin/mainmenu/tab_local.lua +msgid "No world created or selected!" +msgstr "Ingen verden oprettet eller valgt!" + +#: builtin/mainmenu/tab_local.lua +#, fuzzy +msgid "Play Game" +msgstr "Spillerens navn" + +#: builtin/mainmenu/tab_local.lua +#, fuzzy +msgid "Port" +msgstr "Port" + +#: builtin/mainmenu/tab_local.lua +msgid "Select World:" +msgstr "Vælg verden:" + +#: builtin/mainmenu/tab_local.lua +msgid "Server Port" +msgstr "Server port" + +#: builtin/mainmenu/tab_mods.lua +msgid "Installed Mods:" +msgstr "Installerede mods:" + +#: builtin/mainmenu/tab_mods.lua +msgid "Mod information:" +msgstr "Information om mod:" + +#: builtin/mainmenu/tab_mods.lua +msgid "No dependencies." +msgstr "" + +#: builtin/mainmenu/tab_mods.lua +msgid "No mod description available" +msgstr "Der er ikke nogen beskrivelse af tilgængelig af det valgte mod" + +#: builtin/mainmenu/tab_mods.lua +msgid "Rename" +msgstr "Omdøb" + +#: builtin/mainmenu/tab_mods.lua +msgid "Select Mod File:" +msgstr "Vælg mod fil:" + +#: builtin/mainmenu/tab_mods.lua +msgid "Uninstall selected mod" +msgstr "Afinstaller det valgte mod" + +#: builtin/mainmenu/tab_mods.lua +msgid "Uninstall selected modpack" +msgstr "Afinstaller den valgte modpack" + +#: builtin/mainmenu/tab_online.lua +msgid "Address / Port" +msgstr "Adresse/port" + +#: builtin/mainmenu/tab_online.lua builtin/mainmenu/tab_simple_main.lua +msgid "Connect" +msgstr "Forbind" + +#: builtin/mainmenu/tab_online.lua builtin/mainmenu/tab_simple_main.lua +msgid "Creative mode" +msgstr "Kreativ tilstand" + +#: builtin/mainmenu/tab_online.lua builtin/mainmenu/tab_simple_main.lua +msgid "Damage enabled" +msgstr "Skade aktiveret" + +#: builtin/mainmenu/tab_online.lua builtin/mainmenu/tab_simple_main.lua +#, fuzzy +msgid "Del. Favorite" +msgstr "Vis favoritter" + +#: builtin/mainmenu/tab_online.lua builtin/mainmenu/tab_simple_main.lua +msgid "Favorite" +msgstr "Favorit" + +#: builtin/mainmenu/tab_online.lua builtin/mainmenu/tab_simple_main.lua +msgid "Name / Password" +msgstr "Navn/adgangskode" + +#: builtin/mainmenu/tab_online.lua builtin/mainmenu/tab_simple_main.lua +msgid "Ping" +msgstr "" + +#: builtin/mainmenu/tab_online.lua +#, fuzzy +msgid "Multiplayer" +msgstr "Spillerens navn" + +#: builtin/mainmenu/tab_online.lua builtin/mainmenu/tab_simple_main.lua +msgid "PvP enabled" +msgstr "Spiller mod spiller aktiveret" + +#: builtin/mainmenu/tab_settings.lua +msgid "2x" +msgstr "2x" + +#: builtin/mainmenu/tab_settings.lua +msgid "3D Clouds" +msgstr "3D-skyer" + +#: builtin/mainmenu/tab_settings.lua +msgid "4x" +msgstr "4x" + +#: builtin/mainmenu/tab_settings.lua +msgid "8x" +msgstr "8x" + +#: builtin/mainmenu/tab_settings.lua +msgid "Advanced Settings" +msgstr "Avancerede indstillinger" + +#: builtin/mainmenu/tab_settings.lua +msgid "Antialiasing:" +msgstr "Udjævning:" + +#: builtin/mainmenu/tab_settings.lua +msgid "Are you sure to reset your singleplayer world?" +msgstr "Er du sikker på, at du vil nulstille din enkelt spiller-verden?" + +#: builtin/mainmenu/tab_settings.lua +msgid "Autosave screen size" +msgstr "" + +#: builtin/mainmenu/tab_settings.lua +msgid "Bilinear Filter" +msgstr "Bi-lineær filtréring" + +#: builtin/mainmenu/tab_settings.lua +#, fuzzy +msgid "Bump Mapping" +msgstr "Mip-mapping" + +#: builtin/mainmenu/tab_settings.lua +msgid "Change keys" +msgstr "Skift bindinger" + +#: builtin/mainmenu/tab_settings.lua +msgid "Connected Glass" +msgstr "Forbundet glas" + +#: builtin/mainmenu/tab_settings.lua +msgid "Fancy Leaves" +msgstr "Smukke blade" + +#: builtin/mainmenu/tab_settings.lua +#, fuzzy +msgid "Mipmap" +msgstr "Mipmap" + +#: builtin/mainmenu/tab_settings.lua +msgid "Mipmap + Aniso. Filter" +msgstr "Mipmap + Aniso-filter" + +#: builtin/mainmenu/tab_settings.lua +msgid "No" +msgstr "Nej" + +#: builtin/mainmenu/tab_settings.lua +msgid "No Filter" +msgstr "Intet filter" + +#: builtin/mainmenu/tab_settings.lua +msgid "No Mipmap" +msgstr "Ingen Mipmap" + +#: builtin/mainmenu/tab_settings.lua +msgid "Node Highlighting" +msgstr "Knudepunktsfremhævelse" + +#: builtin/mainmenu/tab_settings.lua +msgid "Node Outlining" +msgstr "Knudepunktsomrids" + +#: builtin/mainmenu/tab_settings.lua builtin/mainmenu/tab_texturepacks.lua +msgid "None" +msgstr "Ingen" + +#: builtin/mainmenu/tab_settings.lua +msgid "Normal Mapping" +msgstr "Normal oversættelse" + +#: builtin/mainmenu/tab_settings.lua +msgid "Opaque Leaves" +msgstr "Uuigennemsigtige blade" + +#: builtin/mainmenu/tab_settings.lua +msgid "Opaque Water" +msgstr "Uigennemsigtigt vand" + +#: builtin/mainmenu/tab_settings.lua src/settings_translation_file.cpp +msgid "Parallax Occlusion" +msgstr "Parallax-okklusion" + +#: builtin/mainmenu/tab_settings.lua +msgid "Particles" +msgstr "Partikler" + +#: builtin/mainmenu/tab_settings.lua +msgid "Reset singleplayer world" +msgstr "Nulstil spillerverden" + +#: builtin/mainmenu/tab_settings.lua +#, fuzzy +msgid "Screen:" +msgstr "Skærmbillede" + +#: builtin/mainmenu/tab_settings.lua +msgid "Settings" +msgstr "Indstillinger" + +#: builtin/mainmenu/tab_settings.lua src/settings_translation_file.cpp +msgid "Shaders" +msgstr "Dybdeskabere" + +#: builtin/mainmenu/tab_settings.lua +msgid "Simple Leaves" +msgstr "Enkle blade" + +#: builtin/mainmenu/tab_settings.lua +msgid "Smooth Lighting" +msgstr "Glat belysning" + +#: builtin/mainmenu/tab_settings.lua +msgid "Texturing:" +msgstr "Teksturering:" + +#: builtin/mainmenu/tab_settings.lua +msgid "To enable shaders the OpenGL driver needs to be used." +msgstr "For at aktivere dybdeskabere skal OpenGL-driveren bruges." + +#: builtin/mainmenu/tab_settings.lua src/settings_translation_file.cpp +msgid "Tone Mapping" +msgstr "Toneoversættelse" + +#: builtin/mainmenu/tab_settings.lua +msgid "Touchthreshold (px)" +msgstr "Føletærskel (px)" + +#: builtin/mainmenu/tab_settings.lua +msgid "Trilinear Filter" +msgstr "Tri-lineær filtréring" + +#: builtin/mainmenu/tab_settings.lua +msgid "Waving Leaves" +msgstr "Bølgende blade" + +#: builtin/mainmenu/tab_settings.lua +msgid "Waving Plants" +msgstr "Bølgende planter" + +#: builtin/mainmenu/tab_settings.lua +msgid "Waving Water" +msgstr "Bølgende vand" + +#: builtin/mainmenu/tab_settings.lua +msgid "Yes" +msgstr "Ja" + +#: builtin/mainmenu/tab_simple_main.lua +msgid "Config mods" +msgstr "Konfigurér mods" + +#: builtin/mainmenu/tab_simple_main.lua +msgid "Main" +msgstr "Hovedmenu" + +#: builtin/mainmenu/tab_simple_main.lua +msgid "Start Singleplayer" +msgstr "Enlig spiller" + +#: builtin/mainmenu/tab_texturepacks.lua +msgid "No information available" +msgstr "Der er ikke nogen information tilgængelig" + +#: builtin/mainmenu/tab_texturepacks.lua +msgid "Select texture pack:" +msgstr "Vælg teksturpakke:" + +#: builtin/mainmenu/tab_texturepacks.lua +msgid "Texturepacks" +msgstr "Teksturpakker" + +#: src/client.cpp +msgid "Connection timed out." +msgstr "Forbindelses fejl (tidsfristen udløb)." + +#: src/client.cpp +msgid "Done!" +msgstr "Færdig!" + +#: src/client.cpp +msgid "Initializing nodes" +msgstr "Initialiserer noder" + +#: src/client.cpp +msgid "Initializing nodes..." +msgstr "Initialiserer noder..." + +#: src/client.cpp +msgid "Loading textures..." +msgstr "Indlæser teksturer..." + +#: src/client.cpp +msgid "Rebuilding shaders..." +msgstr "Genbygger dybdeskabere ..." + +#: src/client/clientlauncher.cpp +msgid "Connection error (timed out?)" +msgstr "Forbindelses fejl (udløbelse af tidsfrist?)" + +#: src/client/clientlauncher.cpp +msgid "Could not find or load game \"" +msgstr "Kunne ikke finde eller indlæse spil \"" + +#: src/client/clientlauncher.cpp +msgid "Invalid gamespec." +msgstr "Ugyldig spilspecifikationer." + +#: src/client/clientlauncher.cpp +msgid "Main Menu" +msgstr "Hovedmenu" + +#: src/client/clientlauncher.cpp +msgid "No world selected and no address provided. Nothing to do." +msgstr "" +"Ingen verden valgt og ingen adresse angivet. Der er ikke noget at gøre." + +#: src/client/clientlauncher.cpp +msgid "Player name too long." +msgstr "Spillerens navn er for langt." + +#: src/client/clientlauncher.cpp +msgid "Please choose a name!" +msgstr "" + +#: src/client/clientlauncher.cpp +msgid "Provided world path doesn't exist: " +msgstr "Angivne sti til verdenen findes ikke: " + +#: src/fontengine.cpp +msgid "needs_fallback_font" +msgstr "kræver_reserve_skrifttype" + +#: src/game.cpp +msgid "" +"\n" +"Check debug.txt for details." +msgstr "" +"\n" +"Tjek debug.txt for detaljer." + +#: src/game.cpp +#, fuzzy +msgid "- Address: " +msgstr "Bind adresse" + +#: src/game.cpp +#, fuzzy +msgid "- Creative Mode: " +msgstr "Kreativ tilstand" + +#: src/game.cpp +#, fuzzy +msgid "- Damage: " +msgstr "Skade" + +#: src/game.cpp +msgid "- Mode: " +msgstr "" + +#: src/game.cpp +#, fuzzy +msgid "- Port: " +msgstr "Port" + +#: src/game.cpp +#, fuzzy +msgid "- Public: " +msgstr "Offentlig" + +#: src/game.cpp +msgid "- PvP: " +msgstr "" + +#: src/game.cpp +#, fuzzy +msgid "- Server Name: " +msgstr "Servernavn" + +#: src/game.cpp +msgid "Change Keys" +msgstr "Skift tastatur-bindinger" + +#: src/game.cpp +msgid "Change Password" +msgstr "Skift kodeord" + +#: src/game.cpp +msgid "Connecting to server..." +msgstr "Forbinder til server..." + +#: src/game.cpp +msgid "Continue" +msgstr "Fortsæt" + +#: src/game.cpp +#, fuzzy, c-format +msgid "" +"Controls:\n" +"- %s: move forwards\n" +"- %s: move backwards\n" +"- %s: move left\n" +"- %s: move right\n" +"- %s: jump/climb\n" +"- %s: sneak/go down\n" +"- %s: drop item\n" +"- %s: inventory\n" +"- Mouse: turn/look\n" +"- Mouse left: dig/punch\n" +"- Mouse right: place/use\n" +"- Mouse wheel: select item\n" +"- %s: chat\n" +msgstr "" +"Standardstyring:\n" +"- WASD: Bevæge sig rundt\n" +"- Mellemrumstast: Hoppe/klatre\n" +"- Skift: Snige/gå nedad\n" +"- Q: Smide genstand\n" +"- I: Medbragt\n" +"- Mus: Vende rundt/kigge\n" +"- Mus venstre: Grave/slå\n" +"- Mus højre: Placere/bruge\n" +"- Musehjul: Vælge genstand\n" +"- T: Snakke (chat)\n" + +#: src/game.cpp +msgid "Creating client..." +msgstr "Opretter klient ..." + +#: src/game.cpp +msgid "Creating server..." +msgstr "Opretter server ..." + +#: src/game.cpp +msgid "" +"Default Controls:\n" +"No menu visible:\n" +"- single tap: button activate\n" +"- double tap: place/use\n" +"- slide finger: look around\n" +"Menu/Inventory visible:\n" +"- double tap (outside):\n" +" -->close\n" +"- touch stack, touch slot:\n" +" --> move stack\n" +"- touch&drag, tap 2nd finger\n" +" --> place single item to slot\n" +msgstr "" +"Standardstyring:\n" +"Ingen menu synlig:\n" +"- Enkelt tryk: Aktivér knap\n" +"- Dobbelt tryk: Placér/brug\n" +"- Stryg finger: Kig rundt\n" +"Menu/Medbragt synlig:\n" +"- Dobbelt tryk (uden for):\n" +" --> Luk\n" +"- Rør ved stakken, rør ved felt:\n" +" --> Flyt stakken\n" +"- Rør ved og træk, tryk med 2. finger\n" +" --> Placér enkelt genstand på feltet\n" + +#: src/game.cpp +msgid "Exit to Menu" +msgstr "Afslut til menu" + +#: src/game.cpp +msgid "Exit to OS" +msgstr "Afslut til operativsystemet" + +#: src/game.cpp +msgid "Game info:" +msgstr "" + +#: src/game.cpp +#, fuzzy +msgid "Game paused" +msgstr "Spil" + +#: src/game.cpp +#, fuzzy +msgid "Hosting server" +msgstr "Opretter server ..." + +#: src/game.cpp +msgid "Item definitions..." +msgstr "Elementdefinitioner ..." + +#: src/game.cpp +msgid "KiB/s" +msgstr "KiB/s" + +#: src/game.cpp +msgid "Media..." +msgstr "Medier..." + +#: src/game.cpp +msgid "MiB/s" +msgstr "MiB/s" + +#: src/game.cpp +msgid "Node definitions..." +msgstr "Knudepunktsdefinitioner ..." + +#: src/game.cpp +msgid "Off" +msgstr "" + +#: src/game.cpp +msgid "On" +msgstr "" + +#: src/game.cpp +#, fuzzy +msgid "Remote server" +msgstr "Fjernport" + +#: src/game.cpp +msgid "Resolving address..." +msgstr "Slår adresse op ..." + +#: src/game.cpp +msgid "Shutting down..." +msgstr "Lukker ned..." + +#: src/game.cpp +msgid "Singleplayer" +msgstr "Enlig spiller" + +#: src/game.cpp +msgid "Sound Volume" +msgstr "Lydniveau" + +#: src/game.cpp +#, c-format +msgid "Volume changed to %d%%" +msgstr "" + +#: src/game.cpp +msgid "Volume changed to 0%" +msgstr "" + +#: src/game.cpp +msgid "Volume changed to 100%" +msgstr "" + +#: src/game.cpp src/guiFormSpecMenu.cpp +msgid "ok" +msgstr "ok" + +#: src/guiFormSpecMenu.cpp +msgid "Enter " +msgstr " " + +#: src/guiFormSpecMenu.cpp +msgid "Proceed" +msgstr "Fortsæt" + +#: src/guiKeyChangeMenu.cpp +msgid "\"Use\" = climb down" +msgstr "\"Brug\" = klatre ned" + +#: src/guiKeyChangeMenu.cpp +msgid "Backward" +msgstr "Baglæns" + +#: src/guiKeyChangeMenu.cpp +msgid "Chat" +msgstr "Snak" + +#: src/guiKeyChangeMenu.cpp +msgid "Command" +msgstr "Kommando" + +#: src/guiKeyChangeMenu.cpp +msgid "Console" +msgstr "Konsol" + +#: src/guiKeyChangeMenu.cpp +msgid "Dec. volume" +msgstr "" + +#: src/guiKeyChangeMenu.cpp +msgid "Double tap \"jump\" to toggle fly" +msgstr "" +"Tryk på \"hop\" hurtigt to gange for at skifte frem og tilbage mellem flyve-" +"tilstand" + +#: src/guiKeyChangeMenu.cpp +msgid "Drop" +msgstr "Slip" + +#: src/guiKeyChangeMenu.cpp +msgid "Forward" +msgstr "Fremad" + +#: src/guiKeyChangeMenu.cpp +#, fuzzy +msgid "Inc. volume" +msgstr "Lydniveau" + +#: src/guiKeyChangeMenu.cpp +msgid "Inventory" +msgstr "Beholdning" + +#: src/guiKeyChangeMenu.cpp +msgid "Jump" +msgstr "Hop" + +#: src/guiKeyChangeMenu.cpp +msgid "Key already in use" +msgstr "Tast allerede i brug" + +#: src/guiKeyChangeMenu.cpp +msgid "Keybindings. (If this menu screws up, remove stuff from minetest.conf)" +msgstr "" +"Tastebindinger. (Hvis denne menu fucker op, fjern elementer fra minetest." +"conf)" + +#: src/guiKeyChangeMenu.cpp src/keycode.cpp +msgid "Left" +msgstr "Venstre" + +#: src/guiKeyChangeMenu.cpp +#, fuzzy +msgid "Local command" +msgstr "Snakkekommandoer" + +#: src/guiKeyChangeMenu.cpp +msgid "Mute" +msgstr "" + +#: src/guiKeyChangeMenu.cpp +#, fuzzy +msgid "Next item" +msgstr "Næste" + +#: src/guiKeyChangeMenu.cpp +msgid "Prev. item" +msgstr "" + +#: src/guiKeyChangeMenu.cpp src/settings_translation_file.cpp +msgid "Print stacks" +msgstr "Udskriv stakke" + +#: src/guiKeyChangeMenu.cpp +msgid "Range select" +msgstr "Afstands vælg" + +#: src/guiKeyChangeMenu.cpp src/keycode.cpp +msgid "Right" +msgstr "Højre" + +#: src/guiKeyChangeMenu.cpp +msgid "Sneak" +msgstr "Snige" + +#: src/guiKeyChangeMenu.cpp +msgid "Toggle Cinematic" +msgstr "Aktiver filmisk" + +#: src/guiKeyChangeMenu.cpp +msgid "Toggle fast" +msgstr "Omstil hurtig" + +#: src/guiKeyChangeMenu.cpp +msgid "Toggle fly" +msgstr "Omstil flyvning" + +#: src/guiKeyChangeMenu.cpp +msgid "Toggle noclip" +msgstr "Omstil fylde" + +#: src/guiKeyChangeMenu.cpp +msgid "Use" +msgstr "Brug" + +#: src/guiKeyChangeMenu.cpp src/keycode.cpp +msgid "Zoom" +msgstr "Zoom" + +#: src/guiKeyChangeMenu.cpp +msgid "press key" +msgstr "Tryk på en tast" + +#: src/guiPasswordChange.cpp +msgid "Change" +msgstr "Skift" + +#: src/guiPasswordChange.cpp +msgid "Confirm Password" +msgstr "Bekræft kodeord" + +#: src/guiPasswordChange.cpp +msgid "New Password" +msgstr "Nyt kodeord" + +#: src/guiPasswordChange.cpp +msgid "Old Password" +msgstr "Gammelt kodeord" + +#: src/guiPasswordChange.cpp +msgid "Passwords do not match!" +msgstr "Kodeordene er ikke ens!" + +#: src/guiVolumeChange.cpp +msgid "Exit" +msgstr "Afslut" + +#: src/guiVolumeChange.cpp +msgid "Sound Volume: " +msgstr "Lydstyrke: " + +#: src/keycode.cpp +msgid "Apps" +msgstr "Prg." + +#: src/keycode.cpp +msgid "Back" +msgstr "Tilbage" + +#: src/keycode.cpp +msgid "Caps Lock" +msgstr "" + +#: src/keycode.cpp +msgid "Clear" +msgstr "Ryd" + +#: src/keycode.cpp +msgid "Control" +msgstr "Control" + +#: src/keycode.cpp +msgid "Down" +msgstr "Ned" + +#: src/keycode.cpp +msgid "End" +msgstr "End" + +#: src/keycode.cpp +#, fuzzy +msgid "Erase EOF" +msgstr "Udvisk Slut-På-Fil" + +#: src/keycode.cpp +msgid "Execute" +msgstr "Eksekvér" + +#: src/keycode.cpp +msgid "Help" +msgstr "Hjælp" + +#: src/keycode.cpp +msgid "Home" +msgstr "Home" + +#: src/keycode.cpp +#, fuzzy +msgid "IME Accept" +msgstr "Accepter" + +#: src/keycode.cpp +#, fuzzy +msgid "IME Convert" +msgstr "Konvertér" + +#: src/keycode.cpp +#, fuzzy +msgid "IME Escape" +msgstr "Escape" + +#: src/keycode.cpp +#, fuzzy +msgid "IME Mode Change" +msgstr "Tilstandsskift" + +#: src/keycode.cpp +#, fuzzy +msgid "IME Nonconvert" +msgstr "Nonconvert" + +#: src/keycode.cpp +msgid "Insert" +msgstr "Insert" + +#: src/keycode.cpp +msgid "Left Button" +msgstr "Venstre knap" + +#: src/keycode.cpp +msgid "Left Control" +msgstr "Venstre Control" + +#: src/keycode.cpp +msgid "Left Menu" +msgstr "Venstre Menu" + +#: src/keycode.cpp +msgid "Left Shift" +msgstr "Venstre Skift" + +#: src/keycode.cpp +msgid "Left Windows" +msgstr "Venstre meta" + +#: src/keycode.cpp +msgid "Menu" +msgstr "Menu" + +#: src/keycode.cpp +msgid "Middle Button" +msgstr "Midterste knap" + +#: src/keycode.cpp +msgid "Next" +msgstr "Næste" + +#: src/keycode.cpp +msgid "Num Lock" +msgstr "Num Lock" + +#: src/keycode.cpp +msgid "Numpad *" +msgstr "Numpad *" + +#: src/keycode.cpp +msgid "Numpad +" +msgstr "Numpad +" + +#: src/keycode.cpp +msgid "Numpad -" +msgstr "Numpad -" + +#: src/keycode.cpp +#, fuzzy +msgid "Numpad ." +msgstr "Numpad *" + +#: src/keycode.cpp +msgid "Numpad /" +msgstr "Numpad /" + +#: src/keycode.cpp +msgid "Numpad 0" +msgstr "Numpad 0" + +#: src/keycode.cpp +msgid "Numpad 1" +msgstr "Numpad 1" + +#: src/keycode.cpp +msgid "Numpad 2" +msgstr "Numpad 2" + +#: src/keycode.cpp +msgid "Numpad 3" +msgstr "Numpad 3" + +#: src/keycode.cpp +msgid "Numpad 4" +msgstr "Numpad 4" + +#: src/keycode.cpp +msgid "Numpad 5" +msgstr "Numpad 5" + +#: src/keycode.cpp +msgid "Numpad 6" +msgstr "Numpad 6" + +#: src/keycode.cpp +msgid "Numpad 7" +msgstr "Numpad 7" + +#: src/keycode.cpp +msgid "Numpad 8" +msgstr "Numpad 8" + +#: src/keycode.cpp +msgid "Numpad 9" +msgstr "Numpad 9" + +#: src/keycode.cpp +msgid "OEM Clear" +msgstr "OEM Ryd" + +#: src/keycode.cpp +msgid "Pause" +msgstr "Pause" + +#: src/keycode.cpp +msgid "Play" +msgstr "Spil" + +#: src/keycode.cpp +msgid "Print" +msgstr "Udskriv" + +#: src/keycode.cpp +msgid "Prior" +msgstr "Foregående" + +#: src/keycode.cpp +msgid "Return" +msgstr "Enter" + +#: src/keycode.cpp +msgid "Right Button" +msgstr "Højre knap" + +#: src/keycode.cpp +msgid "Right Control" +msgstr "Højre Control" + +#: src/keycode.cpp +msgid "Right Menu" +msgstr "Højre Menu" + +#: src/keycode.cpp +msgid "Right Shift" +msgstr "Højre Skift" + +#: src/keycode.cpp +msgid "Right Windows" +msgstr "Højre meta" + +#: src/keycode.cpp +msgid "Scroll Lock" +msgstr "Scroll Lock" + +#: src/keycode.cpp +msgid "Select" +msgstr "Vælg" + +#: src/keycode.cpp +msgid "Shift" +msgstr "Shift" + +#: src/keycode.cpp +msgid "Sleep" +msgstr "Sov" + +#: src/keycode.cpp +msgid "Snapshot" +msgstr "Øjebliksbillede" + +#: src/keycode.cpp +msgid "Space" +msgstr "Mellemrum" + +#: src/keycode.cpp +msgid "Tab" +msgstr "Tabulator" + +#: src/keycode.cpp +msgid "Up" +msgstr "Op" + +#: src/keycode.cpp +msgid "X Button 1" +msgstr "X knap 1" + +#: src/keycode.cpp +msgid "X Button 2" +msgstr "X knap 2" + +#: src/settings_translation_file.cpp +msgid "" +"(X,Y,Z) offset of fractal from world centre in units of 'scale'.\n" +"Used to move a suitable spawn area of low land close to (0, 0).\n" +"The default is suitable for mandelbrot sets, it needs to be edited for julia " +"sets.\n" +"Range roughly -2 to 2. Multiply by 'scale' for offset in nodes." +msgstr "" +"(X,Y,Z)-forskydning for fraktal fra verdencentrum i enheder af »skala«.\n" +"Brugt til at flytte en egnet udlægning af lavt land tæt på (0, 0).\n" +"Standarden er egnet til mandelbrot-sæt, skal redigeres for julia-sæt.\n" +"Interval cirka -2 til 2. Gang med »skala« i knudepunkter." + +#: src/settings_translation_file.cpp +msgid "" +"0 = parallax occlusion with slope information (faster).\n" +"1 = relief mapping (slower, more accurate)." +msgstr "" +"0 = parallax-okklusion med kurveinformation (hurtigere).\n" +"1 = relief-oversættelse (langsommere, mere præcis)." + +#: src/settings_translation_file.cpp +msgid "3D clouds" +msgstr "3D-skyer" + +#: src/settings_translation_file.cpp +msgid "3D mode" +msgstr "3D-tilstand" + +#: src/settings_translation_file.cpp +msgid "3D noise defining giant caverns." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"3D noise defining mountain structure and height.\n" +"Also defines structure of floatland mountain terrain." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "3D noise defining structure of river canyon walls." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"3D support.\n" +"Currently supported:\n" +"- none: no 3d output.\n" +"- anaglyph: cyan/magenta color 3d.\n" +"- interlaced: odd/even line based polarisation screen support.\n" +"- topbottom: split screen top/bottom.\n" +"- sidebyside: split screen side by side.\n" +"- pageflip: quadbuffer based 3d." +msgstr "" +"Understøttelse af 3D.\n" +"Understøttet på nuværende tidspunkt:\n" +"- none: ingen 3d-udgang.\n" +"- anaglyph: cyan/magenta farve 3d.\n" +"- interlaced: ulige/lige linjebaseret polarisering for " +"skærmunderstøttelsen\n" +"- topbottom: opdel skærm top/bund.\n" +"- sidebyside: opdel skærm side om side.\n" +"- pageflip: quadbuffer baseret 3d." + +#: src/settings_translation_file.cpp +msgid "" +"A chosen map seed for a new map, leave empty for random.\n" +"Will be overridden when creating a new world in the main menu." +msgstr "" +"En valgt kortfødning for et nyt kort, efterlad tom for vilkårlig.\n" +"Vil blive overskrevet når en ny verden oprettes i hovedmenuen." + +#: src/settings_translation_file.cpp +msgid "A message to be displayed to all clients when the server crashes." +msgstr "Besked, som skal vises til alle klienter, når serveren går ned." + +#: src/settings_translation_file.cpp +msgid "A message to be displayed to all clients when the server shuts down." +msgstr "Besked, som skal vises til alle klienter, når serveren lukker ned." + +#: src/settings_translation_file.cpp +msgid "Absolute limit of emerge queues" +msgstr "Absolut begrænsning af fremkomstkøer" + +#: src/settings_translation_file.cpp +msgid "Acceleration in air" +msgstr "Acceleration i luft" + +#: src/settings_translation_file.cpp +msgid "Active Block Management interval" +msgstr "Aktiv blokhåndteringsinterval" + +#: src/settings_translation_file.cpp +msgid "Active Block Modifier interval" +msgstr "Aktivt blokændringsinterval" + +#: src/settings_translation_file.cpp +msgid "Active Block Modifiers" +msgstr "Aktive blokændringer" + +#: src/settings_translation_file.cpp +msgid "Active block range" +msgstr "Aktiv blokinterval" + +#: src/settings_translation_file.cpp +msgid "Active object send range" +msgstr "Aktivt objektafsendelsesinterval" + +#: src/settings_translation_file.cpp +msgid "" +"Address to connect to.\n" +"Leave this blank to start a local server.\n" +"Note that the address field in the main menu overrides this setting." +msgstr "" +"Adressen, der skal forbindes til.\n" +"Lad dette være tomt for at starte en lokal server.\n" +"Bemærk, at adressefeltet i hovedmenuen tilsidesætter denne indstilling." + +#: src/settings_translation_file.cpp +msgid "Adds particles when digging a node." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"Adjust dpi configuration to your screen (non X11/Android only) e.g. for 4k " +"screens." +msgstr "" +"Justér DPI-konfigurationen til din skærm (ikke-X11 / kun Android) f.eks. til " +"4k-skærme." + +#: src/settings_translation_file.cpp +#, fuzzy +msgid "" +"Adjust the gamma encoding for the light tables. Higher numbers are " +"brighter.\n" +"This setting is for the client only and is ignored by the server." +msgstr "" +"Juster gammakodningen for lystabellerne. Et mindre tal betyder lysere.\n" +"Denne indstilling gælder kun for klienten og ignoreres af serveren." + +#: src/settings_translation_file.cpp +msgid "Advanced" +msgstr "Avanceret" + +#: src/settings_translation_file.cpp +msgid "Altitude Chill" +msgstr "Højdekulde" + +#: src/settings_translation_file.cpp +msgid "Always fly and fast" +msgstr "Flyv altid og hurtigt" + +#: src/settings_translation_file.cpp +msgid "Ambient occlusion gamma" +msgstr "Ambient okklusiongamma" + +#: src/settings_translation_file.cpp +msgid "Amplifies the valleys" +msgstr "Forstærker dalene" + +#: src/settings_translation_file.cpp +msgid "" +"Android systems only: Tries to create inventory textures from meshes\n" +"when no supported render was found." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Anisotropic filtering" +msgstr "Anisotropisk filtrering" + +#: src/settings_translation_file.cpp +msgid "Announce server" +msgstr "Meddelelsesserver" + +#: src/settings_translation_file.cpp +msgid "" +"Announce to this serverlist.\n" +"If you want to announce your ipv6 address, use serverlist_url = v6.servers." +"minetest.net." +msgstr "" +"Meddel på denne serverliste\n" +"Hvis du ønsker at annoncere din ipv6-adresse, så brug serverlist_url = v6." +"servers.minetest.net." + +#: src/settings_translation_file.cpp +msgid "Apple trees noise" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Approximate (X,Y,Z) scale of fractal in nodes." +msgstr "Omtrentlig (X, Y, Z) fraktalskala i knudepunkter." + +#: src/settings_translation_file.cpp +msgid "Ask to reconnect after crash" +msgstr "Spørg om at forbinde igen efter nedbrud" + +#: src/settings_translation_file.cpp +msgid "" +"At this distance the server will aggressively optimize which blocks are sent " +"to clients.\n" +"Small values potentially improve performance a lot, at the expense of " +"visible rendering glitches.\n" +"(some blocks will not be rendered under water and in caves, as well as " +"sometimes on land)\n" +"Setting this to a value greater than max_block_send_distance disables this " +"optimization.\n" +"Stated in mapblocks (16 nodes)" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Automaticaly report to the serverlist." +msgstr "Rapporter automatisk til serverlisten." + +#: src/settings_translation_file.cpp +msgid "Autorun key" +msgstr "Tast til automatisk løb" + +#: src/settings_translation_file.cpp +msgid "Backward key" +msgstr "Tilbage-tast" + +#: src/settings_translation_file.cpp +msgid "Base terrain height" +msgstr "Baseterrænhøjde" + +#: src/settings_translation_file.cpp +msgid "Basic" +msgstr "Grundlæggende" + +#: src/settings_translation_file.cpp +msgid "Basic Privileges" +msgstr "Grundlæggende privilegier" + +#: src/settings_translation_file.cpp +msgid "Beach noise" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Beach noise threshold" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Bilinear filtering" +msgstr "Bilineær filtrering" + +#: src/settings_translation_file.cpp +msgid "Bind address" +msgstr "Bind adresse" + +#: src/settings_translation_file.cpp +#, fuzzy +msgid "Biome API temperature and humidity noise parameters" +msgstr "Støjparametre for biotopfugtighed for Mapgen" + +#: src/settings_translation_file.cpp +#, fuzzy +msgid "Biome noise" +msgstr "Flodstøj" + +#: src/settings_translation_file.cpp +msgid "Bits per pixel (aka color depth) in fullscreen mode." +msgstr "Bit per billedpunkt (a.k.a. farvedybde) i fuldskærmtilstand." + +#: src/settings_translation_file.cpp +msgid "Build inside player" +msgstr "Byg intern spiller" + +#: src/settings_translation_file.cpp +msgid "Builtin" +msgstr "Indbygget" + +#: src/settings_translation_file.cpp +#, fuzzy +msgid "Bumpmapping" +msgstr "Mip-mapping" + +#: src/settings_translation_file.cpp +msgid "Camera smoothing" +msgstr "Kameraudjævning" + +#: src/settings_translation_file.cpp +msgid "Camera smoothing in cinematic mode" +msgstr "Kameraudjævning i biograftilstand" + +#: src/settings_translation_file.cpp +msgid "Camera update toggle key" +msgstr "Tast til ændring af kameraopdatering" + +#: src/settings_translation_file.cpp +#, fuzzy +msgid "Cave noise" +msgstr "Hulestøj #1" + +#: src/settings_translation_file.cpp +msgid "Cave noise #1" +msgstr "Hulestøj #1" + +#: src/settings_translation_file.cpp +msgid "Cave noise #2" +msgstr "Hulestøj #2" + +#: src/settings_translation_file.cpp +msgid "Cave width" +msgstr "Grottebredde" + +#: src/settings_translation_file.cpp +#, fuzzy +msgid "Cave1 noise" +msgstr "Hulestøj #1" + +#: src/settings_translation_file.cpp +#, fuzzy +msgid "Cave2 noise" +msgstr "Hulestøj #1" + +#: src/settings_translation_file.cpp +#, fuzzy +msgid "Cavern limit" +msgstr "Grottebredde" + +#: src/settings_translation_file.cpp +#, fuzzy +msgid "Cavern noise" +msgstr "Hulestøj #1" + +#: src/settings_translation_file.cpp +msgid "Cavern taper" +msgstr "" + +#: src/settings_translation_file.cpp +#, fuzzy +msgid "Cavern threshold" +msgstr "Flad bakketærskel for Mapgen" + +#: src/settings_translation_file.cpp +msgid "Caves and tunnels form at the intersection of the two noises" +msgstr "Huler og tunneler dannes ved skæringspunktet for de to støjkilder" + +#: src/settings_translation_file.cpp +msgid "Chat key" +msgstr "Snakketast" + +#: src/settings_translation_file.cpp +msgid "Chat toggle key" +msgstr "Tast for snak (chat)" + +#: src/settings_translation_file.cpp +msgid "Chatcommands" +msgstr "Snakkekommandoer" + +#: src/settings_translation_file.cpp +msgid "" +"Choice of 18 fractals from 9 formulas.\n" +"1 = 4D \"Roundy\" mandelbrot set.\n" +"2 = 4D \"Roundy\" julia set.\n" +"3 = 4D \"Squarry\" mandelbrot set.\n" +"4 = 4D \"Squarry\" julia set.\n" +"5 = 4D \"Mandy Cousin\" mandelbrot set.\n" +"6 = 4D \"Mandy Cousin\" julia set.\n" +"7 = 4D \"Variation\" mandelbrot set.\n" +"8 = 4D \"Variation\" julia set.\n" +"9 = 3D \"Mandelbrot/Mandelbar\" mandelbrot set.\n" +"10 = 3D \"Mandelbrot/Mandelbar\" julia set.\n" +"11 = 3D \"Christmas Tree\" mandelbrot set.\n" +"12 = 3D \"Christmas Tree\" julia set.\n" +"13 = 3D \"Mandelbulb\" mandelbrot set.\n" +"14 = 3D \"Mandelbulb\" julia set.\n" +"15 = 3D \"Cosine Mandelbulb\" mandelbrot set.\n" +"16 = 3D \"Cosine Mandelbulb\" julia set.\n" +"17 = 4D \"Mandelbulb\" mandelbrot set.\n" +"18 = 4D \"Mandelbulb\" julia set." +msgstr "" +"Valg af 18 fraktaler fra 9 formler.\n" +"1 = 4D »Roundy« mandelbrot-sæt.\n" +"2 = 4D »Roundy« julia-sæt.\n" +"3 = 4D »Squarry« mandelbrot-sæt.\n" +"4 = 4D »Squarry\" julia-sæt.\n" +"5 = 4D »Mandy Cousin« mandelbrot-sæt.\n" +"6 = 4D »Mandy Cousin« julia-sæt.\n" +"7 = 4D »Variation« mandelbrot-sæt.\n" +"8 = 4D »Variation« julia-sæt.\n" +"9 = 3D »Mandelbrot/Mandelbar« mandelbrot-sæt.\n" +"10 = 3D »Mandelbrot/Mandelbar« julia-sæt.\n" +"11 = 3D »Christmas Tree« mandelbrot-sæt.\n" +"12 = 3D »Christmas Tree« julia-sæt.\n" +"13 = 3D »Mandelbulb« mandelbrot-sæt.\n" +"14 = 3D »Mandelbulb« julia-sæt.\n" +"15 = 3D »Cosine Mandelbulb« mandelbrot-sæt.\n" +"16 = 3D »Cosine Mandelbulb« julia-sæt.\n" +"17 = 4D »Mandelbulb« mandelbrot-sæt.\n" +"18 = 4D »Mandelbulb« julia-sæt." + +#: src/settings_translation_file.cpp +msgid "Chunk size" +msgstr "Klumpstørrelse" + +#: src/settings_translation_file.cpp +msgid "Cinematic mode" +msgstr "Filmisk tilstand" + +#: src/settings_translation_file.cpp +msgid "Cinematic mode key" +msgstr "Tast for filmisk tilstand" + +#: src/settings_translation_file.cpp +msgid "Clean transparent textures" +msgstr "Rene gennemsigtige teksturer" + +#: src/settings_translation_file.cpp +msgid "Client" +msgstr "Klient" + +#: src/settings_translation_file.cpp +msgid "Client and Server" +msgstr "Klient og server" + +#: src/settings_translation_file.cpp +#, fuzzy +msgid "Client modding" +msgstr "Klient" + +#: src/settings_translation_file.cpp +msgid "Climbing speed" +msgstr "Klatringshastighed" + +#: src/settings_translation_file.cpp +msgid "Cloud height" +msgstr "Skyhøjde" + +#: src/settings_translation_file.cpp +msgid "Cloud radius" +msgstr "Skyradius" + +#: src/settings_translation_file.cpp +msgid "Clouds" +msgstr "Skyer" + +#: src/settings_translation_file.cpp +msgid "Clouds are a client side effect." +msgstr "Skyer er en klientsideeffekt." + +#: src/settings_translation_file.cpp +msgid "Clouds in menu" +msgstr "Skyer i menu" + +#: src/settings_translation_file.cpp +msgid "Colored fog" +msgstr "Farvet tåge" + +#: src/settings_translation_file.cpp +msgid "" +"Comma-separated list of mods that are allowed to access HTTP APIs, which\n" +"allow them to upload and download data to/from the internet." +msgstr "" +"Kommaadskilt liste af mod'er som har tilladelse til at tilgå HTTP API'er, " +"som\n" +"tillader dem at hente og overføre data fra internettet." + +#: src/settings_translation_file.cpp +msgid "" +"Comma-separated list of trusted mods that are allowed to access insecure\n" +"functions even when mod security is on (via request_insecure_environment())." +msgstr "" +"Kommaadskil liste over troværdige mod'er som har tilladelse til at tilgå " +"usikre\n" +"funktioner selv når mod-sikkerhed er aktiveret (via " +"request_insecure_environment())." + +#: src/settings_translation_file.cpp +msgid "Command key" +msgstr "Kommandotast" + +#: src/settings_translation_file.cpp +msgid "Connect glass" +msgstr "Forbind glas" + +#: src/settings_translation_file.cpp +msgid "Connect to external media server" +msgstr "Opret forbindelse til ekstern medieserver" + +#: src/settings_translation_file.cpp +msgid "Connects glass if supported by node." +msgstr "Forbinder glass hvis understøttet af knudepunkt." + +#: src/settings_translation_file.cpp +msgid "Console alpha" +msgstr "Konsolalfa" + +#: src/settings_translation_file.cpp +msgid "Console color" +msgstr "Konsolfarve" + +#: src/settings_translation_file.cpp +#, fuzzy +msgid "Console height" +msgstr "Konsoltast" + +#: src/settings_translation_file.cpp +msgid "Console key" +msgstr "Konsoltast" + +#: src/settings_translation_file.cpp +msgid "Continuous forward" +msgstr "Kontinuerlig fremad" + +#: src/settings_translation_file.cpp +msgid "Continuous forward movement (only used for testing)." +msgstr "Kontinuerlig bevægelse fremad (bruges kun til test)." + +#: src/settings_translation_file.cpp +msgid "Controls" +msgstr "Styring" + +#: src/settings_translation_file.cpp +msgid "" +"Controls length of day/night cycle.\n" +"Examples: 72 = 20min, 360 = 4min, 1 = 24hour, 0 = day/night/whatever stays " +"unchanged." +msgstr "" +"Styrer længden af dag-/natcyklussen.\n" +"Eksempler: 72 = 20 min, 360 = 4 min, 1 = 24 timer, 0 = dag/nat/hvad som " +"helst forbliver uændret." + +#: src/settings_translation_file.cpp +msgid "Controls steepness/depth of lake depressions." +msgstr "Kontrollerer hældning/dybe for sødybder." + +#: src/settings_translation_file.cpp +msgid "Controls steepness/height of hills." +msgstr "Styrer stejlheden/højden af bakkerne." + +#: src/settings_translation_file.cpp +msgid "" +"Controls the density of floatland mountain terrain.\n" +"Is an offset added to the 'np_mountain' noise value." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Controls width of tunnels, a smaller value creates wider tunnels." +msgstr "Styrer bredden af tunneller. En lavere værdi giver bredere tunneller." + +#: src/settings_translation_file.cpp +msgid "Crash message" +msgstr "Nedbrudsbesked" + +#: src/settings_translation_file.cpp +msgid "" +"Creates unpredictable lava features in caves.\n" +"These can make mining difficult. Zero disables them. (0-10)" +msgstr " " + +#: src/settings_translation_file.cpp +msgid "" +"Creates unpredictable water features in caves.\n" +"These can make mining difficult. Zero disables them. (0-10)" +msgstr "" +"Opretter uforudsigelige vandfunktioner i huler.\n" +"Disse kan gøre vanskeliggøre minedrift. Nul deaktiverer dem (0-10)" + +#: src/settings_translation_file.cpp +#, fuzzy +msgid "Creative" +msgstr "Skab" + +#: src/settings_translation_file.cpp +msgid "Crosshair alpha" +msgstr "Crosshair alpha" + +#: src/settings_translation_file.cpp +msgid "Crosshair alpha (opaqueness, between 0 and 255)." +msgstr "Crosshair alpha (uigennemsigtighed, mellem 0 og 255)." + +#: src/settings_translation_file.cpp +msgid "Crosshair color" +msgstr "Crosshair-farve" + +#: src/settings_translation_file.cpp +msgid "Crosshair color (R,G,B)." +msgstr "Crosshair-farve (R,G,B)." + +#: src/settings_translation_file.cpp +msgid "Crouch speed" +msgstr "Krybehastighed" + +#: src/settings_translation_file.cpp +msgid "DPI" +msgstr "DPI" + +#: src/settings_translation_file.cpp +msgid "Damage" +msgstr "Skade" + +#: src/settings_translation_file.cpp +msgid "Debug info toggle key" +msgstr "Tast til aktivering af fejlsøgningsinfo" + +#: src/settings_translation_file.cpp +msgid "Debug log level" +msgstr "Logniveau for fejlsøgning" + +#: src/settings_translation_file.cpp +#, fuzzy +msgid "Dec. volume key" +msgstr "Tast for HUD" + +#: src/settings_translation_file.cpp +msgid "Dedicated server step" +msgstr "Dedikeret server-trin" + +#: src/settings_translation_file.cpp +msgid "Default acceleration" +msgstr "Standardacceleration" + +#: src/settings_translation_file.cpp +msgid "Default game" +msgstr "Standard spil" + +#: src/settings_translation_file.cpp +msgid "" +"Default game when creating a new world.\n" +"This will be overridden when creating a world from the main menu." +msgstr "Standard spil, når du skaber en ny verden." + +#: src/settings_translation_file.cpp +msgid "Default password" +msgstr "Standardadgangskode" + +#: src/settings_translation_file.cpp +msgid "Default privileges" +msgstr "Standardprivilegier" + +#: src/settings_translation_file.cpp +msgid "Default report format" +msgstr "Standardformat for rapport" + +#: src/settings_translation_file.cpp +msgid "" +"Default timeout for cURL, stated in milliseconds.\n" +"Only has an effect if compiled with cURL." +msgstr "" +"Standardtidsudløb for cURL, angivet i millisekunder.\n" +"Har kun effekt hvis kompileret med cURL." + +#: src/settings_translation_file.cpp +msgid "Defines areas of 'terrain_higher' (cliff-top terrain)." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"Defines areas of floatland smooth terrain.\n" +"Smooth floatlands occur when noise > 0." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"Defines areas of higher (cliff-top) terrain and affects steepness of cliffs." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Defines areas where trees have apples." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Defines areas with sandy beaches." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Defines full size of caverns, smaller values create larger caverns." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Defines large-scale river channel structure." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Defines location and terrain of optional hills and lakes." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"Defines sampling step of texture.\n" +"A higher value results in smoother normal maps." +msgstr "" +"Definerer sampling-trin for tekstur.\n" +"En højere værdi resulterer i en mere rullende normale kort." + +#: src/settings_translation_file.cpp +msgid "Defines the maximal player transfer distance in blocks (0 = unlimited)." +msgstr "" +"Definerer den maksimale spillerflytningsafstand i blokke (0 = ubegrænset)." + +#: src/settings_translation_file.cpp +msgid "Defines tree areas and tree density." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"Delay between mesh updates on the client in ms. Increasing this will slow\n" +"down the rate of mesh updates, thus reducing jitter on slower clients." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Delay in sending blocks after building" +msgstr "Forsinkelse i afsendelse af blokke efter bygning" + +#: src/settings_translation_file.cpp +msgid "Delay showing tooltips, stated in milliseconds." +msgstr "Forsinkelse ved visning af værktøjsfif, angivet i millisekunder." + +#: src/settings_translation_file.cpp +msgid "Deprecated Lua API handling" +msgstr "Forældet Lua API-håndtering" + +#: src/settings_translation_file.cpp +msgid "Depth below which you'll find large caves." +msgstr "Dybde hvorunder du kan finde store huler." + +#: src/settings_translation_file.cpp +msgid "Depth below which you'll find massive caves." +msgstr "Dybde hvorunder du finder kæmpestore huler." + +#: src/settings_translation_file.cpp +msgid "Descending speed" +msgstr "Faldende hastighed" + +#: src/settings_translation_file.cpp +msgid "" +"Description of server, to be displayed when players join and in the " +"serverlist." +msgstr "" +"Beskrivelse af server, som vises når spillere tilslutter sig og i " +"serverlisten." + +#: src/settings_translation_file.cpp +msgid "Desert noise threshold" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"Deserts occur when np_biome exceeds this value.\n" +"When the new biome system is enabled, this is ignored." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Desynchronize block animation" +msgstr "Afsynkroniser blokanimation" + +#: src/settings_translation_file.cpp +#, fuzzy +msgid "Digging particles" +msgstr "Partikler" + +#: src/settings_translation_file.cpp +msgid "Disable anticheat" +msgstr "Deaktiver antisnyd" + +#: src/settings_translation_file.cpp +msgid "Disable escape sequences" +msgstr "Deaktiver undvigesekvenser" + +#: src/settings_translation_file.cpp +msgid "" +"Disable escape sequences, e.g. chat coloring.\n" +"Use this if you want to run a server with pre-0.4.14 clients and you want to " +"disable\n" +"the escape sequences generated by mods." +msgstr "" +"Deaktiver undvigesekvenser, f.eks. snak-farvelægning.\n" +"Brug denne hvis du ønsker at afvikle en server med pre-0.4.14-klienter og du " +"ønsker\n" +"at deaktivere undvigesekvenserne oprettet af mod'er." + +#: src/settings_translation_file.cpp +msgid "Disallow empty passwords" +msgstr "Tillad ikke tomme adgangskoder" + +#: src/settings_translation_file.cpp +msgid "Domain name of server, to be displayed in the serverlist." +msgstr "Domænenavn for server, til visning i serverlisten." + +#: src/settings_translation_file.cpp +msgid "Double tap jump for fly" +msgstr "Tryk to gange på »hop« for at flyve" + +#: src/settings_translation_file.cpp +msgid "Double-tapping the jump key toggles fly mode." +msgstr "" +"Tryk på »hop« to gange for at skifte frem og tilbage fra flyvetilstand." + +#: src/settings_translation_file.cpp +msgid "Drop item key" +msgstr "Drop element-tast" + +#: src/settings_translation_file.cpp +msgid "Dump the mapgen debug infos." +msgstr "Dump mapgen-fejlsøgningsinfo." + +#: src/settings_translation_file.cpp +msgid "Enable Joysticks" +msgstr "Aktivér joysticks" + +#: src/settings_translation_file.cpp +msgid "" +"Enable Lua modding support on client.\n" +"This support is experimental and API can change." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Enable VBO" +msgstr "Aktiver VBO" + +#: src/settings_translation_file.cpp +msgid "Enable console window" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Enable creative mode for new created maps." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Enable mod security" +msgstr "Aktiver mod-sikkerhed" + +#: src/settings_translation_file.cpp +msgid "Enable players getting damage and dying." +msgstr "Aktiver at spillere kan skades og dø." + +#: src/settings_translation_file.cpp +msgid "Enable random user input (only used for testing)." +msgstr "Aktiver vilkårlig brugerinddata (kun til test)." + +#: src/settings_translation_file.cpp +msgid "" +"Enable smooth lighting with simple ambient occlusion.\n" +"Disable for speed or for different looks." +msgstr "" +"Aktiver blød lyssætning med simpel ambient okklusion.\n" +"Deaktiver for hastighed eller for anderledes udseender." + +#: src/settings_translation_file.cpp +msgid "" +"Enable to disallow old clients from connecting.\n" +"Older clients are compatible in the sense that they will not crash when " +"connecting\n" +"to new servers, but they may not support all new features that you are " +"expecting." +msgstr "" +"Aktiver for at nægte gamle klienter i at forbinde.\n" +"Ældre klienter er kompatible på den måde, at de ikke vil stoppe ved " +"tilkobling\n" +"til nye servere, men de understøtter ikke alle nye funktioner." + +#: src/settings_translation_file.cpp +msgid "" +"Enable usage of remote media server (if provided by server).\n" +"Remote servers offer a significantly faster way to download media (e.g. " +"textures)\n" +"when connecting to the server." +msgstr "" +"Aktiver brug af ekstern medieserver (hvis tilbudt af server).\n" +"Eksterne servere tilbyder en signifikant hurtigere måde at hente medier (f." +"eks. teksturer\n" +"ved forbindelse til serveren." + +#: src/settings_translation_file.cpp +#, fuzzy +msgid "Enable view bobbing" +msgstr "Faldrystelse" + +#: src/settings_translation_file.cpp +msgid "" +"Enable view bobbing and amount of view bobbing.\n" +"For example: 0 for no view bobbing; 1.0 for normal; 2.0 for double." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"Enable/disable running an IPv6 server. An IPv6 server may be restricted\n" +"to IPv6 clients, depending on system configuration.\n" +"Ignored if bind_address is set." +msgstr "" +"Aktivere/deaktivere afvikling af en IPv6-server. En IPv6-server kan være " +"begrænset\n" +"til IPv6-klienter, afhængig af systemkonfiguration.\n" +"Ignoreret hvis bind_address er angivet." + +#: src/settings_translation_file.cpp +msgid "Enables animation of inventory items." +msgstr "Aktiverer animation af lagerelementer." + +#: src/settings_translation_file.cpp +msgid "" +"Enables bumpmapping for textures. Normalmaps need to be supplied by the " +"texture pack\n" +"or need to be auto-generated.\n" +"Requires shaders to be enabled." +msgstr "" +"Aktiverer bumpmapping for teksturer. Normalmaps skal være angivet af " +"teksturpakken\n" +"eller skal være automatisk oprettet.\n" +"Kræver at dybdeskabere er aktiveret." + +#: src/settings_translation_file.cpp +msgid "Enables caching of facedir rotated meshes." +msgstr "Aktiverer mellemlagring af facedir-roterede mesher." + +#: src/settings_translation_file.cpp +msgid "Enables filmic tone mapping" +msgstr "Aktiverer filmisk toneoversættelse" + +#: src/settings_translation_file.cpp +msgid "Enables minimap." +msgstr "Aktiverer minikort." + +#: src/settings_translation_file.cpp +msgid "" +"Enables on the fly normalmap generation (Emboss effect).\n" +"Requires bumpmapping to be enabled." +msgstr "" +"Aktiverer løbende normalmap-oprettelse (Emboss-effekt).\n" +"Kræver bumpmapping for at være aktiveret." + +#: src/settings_translation_file.cpp +msgid "" +"Enables parallax occlusion mapping.\n" +"Requires shaders to be enabled." +msgstr "" +"Aktiverer parallax-okklusionoversættelse.\n" +"Kræver at dybdeskabere er aktiveret." + +#: src/settings_translation_file.cpp +msgid "Enables view bobbing when walking." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Engine profiling data print interval" +msgstr "Udskrivningsinterval for motorprofileringsdata" + +#: src/settings_translation_file.cpp +msgid "Entity methods" +msgstr "Entitetmetoder" + +#: src/settings_translation_file.cpp +msgid "" +"Experimental option, might cause visible spaces between blocks\n" +"when set to higher number than 0." +msgstr "" +"Eksperimentelt tilvalg, kan medføre synlige mellemrum mellem blokke\n" +"når angivet til et højere nummer end 0." + +#: src/settings_translation_file.cpp +msgid "FPS in pause menu" +msgstr "FPS i pausemenu" + +#: src/settings_translation_file.cpp +msgid "FSAA" +msgstr "FSAA" + +#: src/settings_translation_file.cpp +msgid "Factor noise" +msgstr "" + +#: src/settings_translation_file.cpp +#, fuzzy +msgid "Fall bobbing factor" +msgstr "Faldrystelse" + +#: src/settings_translation_file.cpp +msgid "Fallback font" +msgstr "Reserveskrifttype" + +#: src/settings_translation_file.cpp +msgid "Fallback font shadow" +msgstr "Skygge for reserveskrifttypen" + +#: src/settings_translation_file.cpp +msgid "Fallback font shadow alpha" +msgstr "Skyggealfa for reserveskrifttypen" + +#: src/settings_translation_file.cpp +msgid "Fallback font size" +msgstr "Størrelse for reserveskrifttypen" + +#: src/settings_translation_file.cpp +msgid "Fast key" +msgstr "Hurtigtast" + +#: src/settings_translation_file.cpp +msgid "Fast mode acceleration" +msgstr "Hurtig tilstandsacceleration" + +#: src/settings_translation_file.cpp +msgid "Fast mode speed" +msgstr "Hurtig tilstandshastighed" + +#: src/settings_translation_file.cpp +msgid "Fast movement" +msgstr "Hurtig bevægelse" + +#: src/settings_translation_file.cpp +msgid "" +"Fast movement (via use key).\n" +"This requires the \"fast\" privilege on the server." +msgstr "" +"Hurtig bevægelse (via tast).\n" +"Dette kræver privilegiet »fast« på serveren." + +#: src/settings_translation_file.cpp +msgid "Field of view" +msgstr "Visningsområde" + +#: src/settings_translation_file.cpp +msgid "Field of view for zoom" +msgstr "Zoom for visningsområde" + +#: src/settings_translation_file.cpp +msgid "Field of view in degrees." +msgstr "Visningsområde i grader." + +#: src/settings_translation_file.cpp +msgid "" +"Field of view while zooming in degrees.\n" +"This requires the \"zoom\" privilege on the server." +msgstr "" +"Visningsområde under zoom i grader.\n" +"Dette kræver privilegiet »zoom« på serveren." + +#: src/settings_translation_file.cpp +msgid "" +"File in client/serverlist/ that contains your favorite servers displayed in " +"the Multiplayer Tab." +msgstr "" +"Fil i client/serverlist/ som indeholder dine favoritservere vist i " +"fanebladet for flere spillere." + +#: src/settings_translation_file.cpp +msgid "Filler Depth" +msgstr "Fyldstofdybde" + +#: src/settings_translation_file.cpp +#, fuzzy +msgid "Filler depth noise" +msgstr "Fyldstofdybde" + +#: src/settings_translation_file.cpp +msgid "Filmic tone mapping" +msgstr "Filmisk toneoversættelse" + +#: src/settings_translation_file.cpp +msgid "" +"Filtered textures can blend RGB values with fully-transparent neighbors,\n" +"which PNG optimizers usually discard, sometimes resulting in a dark or\n" +"light edge to transparent textures. Apply this filter to clean that up\n" +"at texture load time." +msgstr "" +"Filtrerede teksturer kan blande RGB-værdier med fuldt gennemsigtige naboer,\n" +"som PNG-optimeringsprogrammer normalt fjerner, undertiden resulterende i " +"en \n" +"mørk eller lys kant for gennemsigtige teksturer. Anvend dette filter for at " +"rydde\n" +"op i dette på indlæsningstidspunktet for tekstur." + +#: src/settings_translation_file.cpp +msgid "Filtering" +msgstr "Filtrering" + +#: src/settings_translation_file.cpp +msgid "First of 2 3D noises that together define tunnels." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Fixed map seed" +msgstr "Fast kortfødning" + +#: src/settings_translation_file.cpp +msgid "Floatland base height noise" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Floatland base noise" +msgstr "" + +#: src/settings_translation_file.cpp +#, fuzzy +msgid "Floatland level" +msgstr "Vandstand" + +#: src/settings_translation_file.cpp +msgid "Floatland mountain density" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Floatland mountain height" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Fly key" +msgstr "Flyvetast" + +#: src/settings_translation_file.cpp +msgid "Flying" +msgstr "Flyver" + +#: src/settings_translation_file.cpp +msgid "Fog" +msgstr "Tåge" + +#: src/settings_translation_file.cpp +msgid "Fog Start" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Fog toggle key" +msgstr "Tast for tåge" + +#: src/settings_translation_file.cpp +msgid "Font path" +msgstr "Sti til font" + +#: src/settings_translation_file.cpp +msgid "Font shadow" +msgstr "Fontskygge" + +#: src/settings_translation_file.cpp +msgid "Font shadow alpha" +msgstr "Alfa for skrifttypeskygge" + +#: src/settings_translation_file.cpp +msgid "Font shadow alpha (opaqueness, between 0 and 255)." +msgstr "Alfa for skrifttypeskygge (uigennemsigtighed, mellem 0 og 255)." + +#: src/settings_translation_file.cpp +msgid "Font shadow offset, if 0 then shadow will not be drawn." +msgstr "" +"Forskydning for skrifttypeskygge, hvis 0 så vil skygge ikke blive tegnet." + +#: src/settings_translation_file.cpp +msgid "Font size" +msgstr "Skriftstørrelse" + +#: src/settings_translation_file.cpp +msgid "Format of screenshots." +msgstr "Format for skærmbilleder." + +#: src/settings_translation_file.cpp +msgid "Forward key" +msgstr "Fremadtast" + +#: src/settings_translation_file.cpp +msgid "Fractal type" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Fraction of the visible distance at which fog starts to be rendered" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Freetype fonts" +msgstr "Freetype-skrifttyper" + +#: src/settings_translation_file.cpp +msgid "" +"From how far blocks are generated for clients, stated in mapblocks (16 " +"nodes)." +msgstr "" +"Fra hvor langt væk blokke oprettes for klienten, angivet i kortblokke (16 " +"knudepunkter)." + +#: src/settings_translation_file.cpp +msgid "" +"From how far blocks are sent to clients, stated in mapblocks (16 nodes)." +msgstr "" +"Fra hvor langt væk blokke sendes til klienter, angivet i kortblokke (16 " +"knudepunker)." + +#: src/settings_translation_file.cpp +msgid "" +"From how far clients know about objects, stated in mapblocks (16 nodes)." +msgstr "" +"Fra hvor langt væk klinter ved om objekter, angivet i kortblokke (16 " +"knudepunkter)." + +#: src/settings_translation_file.cpp +msgid "Full screen" +msgstr "Fuld skærm" + +#: src/settings_translation_file.cpp +msgid "Full screen BPP" +msgstr "Fuldskærm BPP" + +#: src/settings_translation_file.cpp +msgid "Fullscreen mode." +msgstr "Fuldskærmstilstand." + +#: src/settings_translation_file.cpp +msgid "GUI scaling" +msgstr "Skalering af grafisk brugerflade" + +#: src/settings_translation_file.cpp +msgid "GUI scaling filter" +msgstr "GUI-skaleringsfilter" + +#: src/settings_translation_file.cpp +msgid "GUI scaling filter txr2img" +msgstr "GUI-skaleringsfilter txr2img" + +#: src/settings_translation_file.cpp +msgid "Gamma" +msgstr "Gamma" + +#: src/settings_translation_file.cpp +msgid "General" +msgstr "Generelt" + +#: src/settings_translation_file.cpp +msgid "Generate normalmaps" +msgstr "Opret normalkort" + +#: src/settings_translation_file.cpp +msgid "Global callbacks" +msgstr "Globale tilbagekald" + +#: src/settings_translation_file.cpp +msgid "" +"Global map generation attributes.\n" +"In Mapgen v6 the 'decorations' flag controls all decorations except trees\n" +"and junglegrass, in all other mapgens this flag controls all decorations.\n" +"Flags that are not specified in the flag string are not modified from the " +"default.\n" +"Flags starting with 'no' are used to explicitly disable them." +msgstr "" +"Globale kortoprettelsesattributter.\n" +"I Mapgen v6 kontrollerer flaget »decorations« alle dekorationer undtagen " +"træer\n" +"og junglegræs, i alle andre mapgen'er kontrollerer dette flag alle " +"dekorationer.\n" +"Flag som ikke er angivet i flagstrengen ændres ikke fra standarden.\n" +"Flag startende med »no« (nej) bruges til eksplicit at deaktivere dem." + +#: src/settings_translation_file.cpp +msgid "Graphics" +msgstr "Grafik" + +#: src/settings_translation_file.cpp +msgid "Gravity" +msgstr "Tyngdekraft" + +#: src/settings_translation_file.cpp +#, fuzzy +msgid "Ground level" +msgstr "Flade grundniveauer for Mapgen" + +#: src/settings_translation_file.cpp +msgid "HTTP Mods" +msgstr "HTTP-Mod'er" + +#: src/settings_translation_file.cpp +msgid "HUD scale factor" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "HUD toggle key" +msgstr "Tast for HUD" + +#: src/settings_translation_file.cpp +msgid "" +"Handling for deprecated lua api calls:\n" +"- legacy: (try to) mimic old behaviour (default for release).\n" +"- log: mimic and log backtrace of deprecated call (default for debug).\n" +"- error: abort on usage of deprecated call (suggested for mod developers)." +msgstr "" +"Håndtering for forældede lua api-kald:\n" +"- legacy: (prøv at) efterligne gammel opførsel (standard for udgivelse).\n" +"- log: efterlign og log tilbagesporing for forældede kald (standard for " +"fejlsøgning).\n" +"- error: afbryd ved brug af forældede kald (foreslået af mod-udviklere)." + +#: src/settings_translation_file.cpp +msgid "" +"Have the profiler instrument itself:\n" +"* Instrument an empty function.\n" +"This estimates the overhead, that instrumentation is adding (+1 function " +"call).\n" +"* Instrument the sampler being used to update the statistics." +msgstr "" +"Få profilprogrammet til at instruere sig selv:\n" +"* Instruer en tom funktion.\n" +"Dette estimerer belastningen, som instrumenteringen tilføjer (+1 " +"funktionkald).\n" +"* Instruer sampleren i brug til at opdatere statistikken." + +#: src/settings_translation_file.cpp +#, fuzzy +msgid "Heat blend noise" +msgstr "Støjparametre for Mapgen varmeblanding" + +#: src/settings_translation_file.cpp +#, fuzzy +msgid "Heat noise" +msgstr "Hulestøj #1" + +#: src/settings_translation_file.cpp +msgid "Height component of the initial window size." +msgstr "Højdekomponent for den oprindelige vinduestørrelse." + +#: src/settings_translation_file.cpp +#, fuzzy +msgid "Height noise" +msgstr "Højre meta" + +#: src/settings_translation_file.cpp +msgid "Height on which clouds are appearing." +msgstr "Højde hvor skyer fremkommer." + +#: src/settings_translation_file.cpp +#, fuzzy +msgid "Height select noise" +msgstr "Mapgen v6 – støjparametre for højdevalg" + +#: src/settings_translation_file.cpp +msgid "High-precision FPU" +msgstr "Højpræcisions FPU" + +#: src/settings_translation_file.cpp +#, fuzzy +msgid "Hill steepness" +msgstr "Flad bakkestejlhed for Mapgen" + +#: src/settings_translation_file.cpp +#, fuzzy +msgid "Hill threshold" +msgstr "Flad bakketærskel for Mapgen" + +#: src/settings_translation_file.cpp +msgid "Homepage of server, to be displayed in the serverlist." +msgstr "Hjemmeside for serveren, som vist i serverlisten." + +#: src/settings_translation_file.cpp +msgid "Hotbar next key" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Hotbar previous key" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "How deep to make rivers" +msgstr "Dybde for floder" + +#: src/settings_translation_file.cpp +msgid "" +"How large area of blocks are subject to the active block stuff, stated in " +"mapblocks (16 nodes).\n" +"In active blocks objects are loaded and ABMs run." +msgstr "" +"Hvordan store områder af blokke påvirkes af det aktive blokindhold, angivet " +"i mapblocks (16 knudepunkter).\n" +"I aktive blokke bliver objekter indlæst og ABM'er afviklet." + +#: src/settings_translation_file.cpp +msgid "" +"How much the server will wait before unloading unused mapblocks.\n" +"Higher value is smoother, but will use more RAM." +msgstr "" +"Hvor lang tid serveren vil vente før ubrugt kortblokke fjernes.\n" +"Højere værdier er længere tid, men vil bruge mere RAM." + +#: src/settings_translation_file.cpp +msgid "How wide to make rivers" +msgstr "Hvor brede floder skal være" + +#: src/settings_translation_file.cpp +msgid "Humidity blend noise" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Humidity noise" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Humidity variation for biomes." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "IPv6" +msgstr "IPv6" + +#: src/settings_translation_file.cpp +msgid "IPv6 server" +msgstr "IPv6-server" + +#: src/settings_translation_file.cpp +msgid "IPv6 support." +msgstr "Understøttelse af IPv6." + +#: src/settings_translation_file.cpp +msgid "" +"If FPS would go higher than this, limit it by sleeping\n" +"to not waste CPU power for no benefit." +msgstr "" +"Hvis FPS skal være højere end dette, så begræns ved at sove\n" +"for ikke at spilde CPU-kraft uden nogen fordel." + +#: src/settings_translation_file.cpp +msgid "" +"If disabled \"use\" key is used to fly fast if both fly and fast mode are " +"enabled." +msgstr "" +"Hvis deaktiveret bruges »brug«-tasten til at flyve hurtig hvis både flyvning " +"og hurtig tilstand er aktiveret." + +#: src/settings_translation_file.cpp +msgid "" +"If enabled the server will perform map block occlusion culling based on\n" +"on the eye position of the player. This can reduce the number of blocks\n" +"sent to the client 50-80%. The client will not longer receive most " +"invisible\n" +"so that the utility of noclip mode is reduced." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"If enabled together with fly mode, player is able to fly through solid " +"nodes.\n" +"This requires the \"noclip\" privilege on the server." +msgstr "" +"Hvis aktiveret sammen med fly-tilstand, kan spilleren flyve igennem faste " +"knudepunkter.\n" +"Dette kræver privilegiet »noclip« på serveren." + +#: src/settings_translation_file.cpp +msgid "" +"If enabled, \"use\" key instead of \"sneak\" key is used for climbing down " +"and descending." +msgstr "" +"Hvis aktiveret bruges »brug«-tasten i stedet for »snig«-tasten til at klatre " +"ned og aftagende." + +#: src/settings_translation_file.cpp +msgid "" +"If enabled, actions are recorded for rollback.\n" +"This option is only read when server starts." +msgstr "" +"Hvis aktiveret, optages handlinger for tilbagerulning.\n" +"Dette tilvalg læses kun når serveren starter." + +#: src/settings_translation_file.cpp +msgid "If enabled, disable cheat prevention in multiplayer." +msgstr "" +"Hvis aktiveret så deaktiver forhindring af snyd i spil med flere deltagere." + +#: src/settings_translation_file.cpp +msgid "" +"If enabled, invalid world data won't cause the server to shut down.\n" +"Only enable this if you know what you are doing." +msgstr "" +"Hvis aktiveret, så vil ugyldige data ikke medføre at serveren lukke ned.\n" +"Aktiver kun hvis du ved hvad du gør." + +#: src/settings_translation_file.cpp +msgid "If enabled, new players cannot join with an empty password." +msgstr "" +"Hvis aktiveret kan nye spillere ikke slutte sig til uden en tom adgangskode." + +#: src/settings_translation_file.cpp +#, fuzzy +msgid "If enabled, show the server status message on player connection." +msgstr "Dagens besked" + +#: src/settings_translation_file.cpp +msgid "" +"If enabled, you can place blocks at the position (feet + eye level) where " +"you stand.\n" +"This is helpful when working with nodeboxes in small areas." +msgstr "" +"Hvis aktiveret så kan du placere blokke ved positionen (fod + øje niveau) " +"hvor du står.\n" +"Dette er nyttigt under arbejde med knudepunktbokse i små områder." + +#: src/settings_translation_file.cpp +msgid "If this is set, players will always (re)spawn at the given position." +msgstr "" +"Hvis aktiveret, så vil spillere altid (gen)starte ved den angivne position." + +#: src/settings_translation_file.cpp +msgid "Ignore world errors" +msgstr "Ignorer verdensfejl" + +#: src/settings_translation_file.cpp +msgid "In-Game" +msgstr "I-spil" + +#: src/settings_translation_file.cpp +msgid "In-game chat console background alpha (opaqueness, between 0 and 255)." +msgstr "" +"Baggrundsalfa for snakkekonsollen i spillet (uigennemsigtighed, mellem 0 og " +"255)." + +#: src/settings_translation_file.cpp +msgid "In-game chat console background color (R,G,B)." +msgstr "Baggrundsfarve for snakkekonsollen i spillet (R,G,B)." + +#: src/settings_translation_file.cpp +#, fuzzy +msgid "In-game chat console height, between 0.1 (10%) and 1.0 (100%)." +msgstr "" +"Baggrundsalfa for snakkekonsollen i spillet (uigennemsigtighed, mellem 0 og " +"255)." + +#: src/settings_translation_file.cpp +#, fuzzy +msgid "Inc. volume key" +msgstr "Konsoltast" + +#: src/settings_translation_file.cpp +msgid "" +"Instrument builtin.\n" +"This is usually only needed by core/builtin contributors" +msgstr "" +"Instrumenteringsindbygning.\n" +"Er normalt kun krævet af kerne/indbygningsbidragydere" + +#: src/settings_translation_file.cpp +msgid "Instrument chatcommands on registration." +msgstr "Udstyr chatkommandoer ved registrering." + +#: src/settings_translation_file.cpp +msgid "" +"Instrument global callback functions on registration.\n" +"(anything you pass to a minetest.register_*() function)" +msgstr "" +"Udstyr globale tilbagekaldsfunktioner ved registrering.\n" +"(alt du sender til en minetest.register_*()-funktion)" + +#: src/settings_translation_file.cpp +msgid "" +"Instrument the action function of Active Block Modifiers on registration." +msgstr "Udstyr handlingsfunktionen for Aktiv blokændringer ved registrering." + +#: src/settings_translation_file.cpp +msgid "" +"Instrument the action function of Loading Block Modifiers on registration." +msgstr "" +"Udstyr handlingsfunktionen for Indlæsning af blokændringer ved registrering." + +#: src/settings_translation_file.cpp +msgid "Instrument the methods of entities on registration." +msgstr "Udstyr metoderne for enheder ved registrering." + +#: src/settings_translation_file.cpp +msgid "Instrumentation" +msgstr "Instrumentering" + +#: src/settings_translation_file.cpp +msgid "Interval of saving important changes in the world, stated in seconds." +msgstr "" +"Interval for lagring af vigtige ændringer i verden, angivet i sekunder." + +#: src/settings_translation_file.cpp +msgid "Interval of sending time of day to clients." +msgstr "Interval for afsendelse af tidspunkt på dagen til klienter." + +#: src/settings_translation_file.cpp +#, fuzzy +msgid "Inventory image hack" +msgstr "Lagertast" + +#: src/settings_translation_file.cpp +msgid "Inventory items animations" +msgstr "Animationer for lagerelementer" + +#: src/settings_translation_file.cpp +msgid "Inventory key" +msgstr "Lagertast" + +#: src/settings_translation_file.cpp +msgid "Invert mouse" +msgstr "Invertér mus" + +#: src/settings_translation_file.cpp +msgid "Invert vertical mouse movement." +msgstr "Vend lodret musebevægelse om." + +#: src/settings_translation_file.cpp +msgid "Item entity TTL" +msgstr "Elemententitet TTL" + +#: src/settings_translation_file.cpp +#, fuzzy +msgid "Iterations" +msgstr "Instrumentering" + +#: src/settings_translation_file.cpp +msgid "" +"Iterations of the recursive function.\n" +"Controls the amount of fine detail." +msgstr "" +"Gennemløb for den rekursive funktion.\n" +"Kontrollerer mængden af små detaljer." + +#: src/settings_translation_file.cpp +msgid "Joystick ID" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Joystick Type" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Joystick button repetition interval" +msgstr "Joystick-knaps gentagelsesinterval" + +#: src/settings_translation_file.cpp +msgid "Joystick frustum sensitivity" +msgstr "Joystick frustum-sensitivitet" + +#: src/settings_translation_file.cpp +msgid "" +"Julia set only: W component of hypercomplex constant determining julia " +"shape.\n" +"Has no effect on 3D fractals.\n" +"Range roughly -2 to 2." +msgstr "" +"Kun Juliasæt: W-komponent for hyperkompleks konstant der bestemmer " +"Juliaform.\n" +"Har ingen effekt på 3D-fraktaler.\n" +"Interval cirka -2 til 2." + +#: src/settings_translation_file.cpp +msgid "" +"Julia set only: X component of hypercomplex constant determining julia " +"shape.\n" +"Range roughly -2 to 2." +msgstr "" +"Kun Juliasæt: X-komponent for hyperkompleks konstant der bestemmer " +"Juliaform.\n" +"Interval cirka -2 til 2." + +#: src/settings_translation_file.cpp +msgid "" +"Julia set only: Y component of hypercomplex constant determining julia " +"shape.\n" +"Range roughly -2 to 2." +msgstr "" +"Kun Juliasæt: Y-komponent for hyperkompleks konstant der bestemmer " +"Juliaform.\n" +"Interval cirka -2 til 2." + +#: src/settings_translation_file.cpp +msgid "" +"Julia set only: Z component of hypercomplex constant determining julia " +"shape.\n" +"Range roughly -2 to 2." +msgstr "" +"Kun Juliasæt: Z-komponent for hyperkompleks konstant der bestemmer " +"Juliaform.\n" +"Interval cirka -2 til 2." + +#: src/settings_translation_file.cpp +msgid "Julia w" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Julia x" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Julia y" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Julia z" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Jump key" +msgstr "Hop-tast" + +#: src/settings_translation_file.cpp +msgid "Jumping speed" +msgstr "Hoppehastighed" + +#: src/settings_translation_file.cpp +msgid "" +"Key for decreasing the viewing range.\n" +"See http://irrlicht.sourceforge.net/docu/namespaceirr." +"html#a54da2a0e231901735e3da1b0edf72eb3" +msgstr "" +"Tast for mindskning af den sete afstand.\n" +"Se http://irrlicht.sourceforge.net/docu/namespaceirr." +"html#a54da2a0e231901735e3da1b0edf72eb3" + +#: src/settings_translation_file.cpp +#, fuzzy +msgid "" +"Key for decreasing the volume.\n" +"See http://irrlicht.sourceforge.net/docu/namespaceirr." +"html#a54da2a0e231901735e3da1b0edf72eb3" +msgstr "" +"Tast for mindskning af den sete afstand.\n" +"Se http://irrlicht.sourceforge.net/docu/namespaceirr." +"html#a54da2a0e231901735e3da1b0edf72eb3" + +#: src/settings_translation_file.cpp +msgid "" +"Key for dropping the currently selected item.\n" +"See http://irrlicht.sourceforge.net/docu/namespaceirr." +"html#a54da2a0e231901735e3da1b0edf72eb3" +msgstr "" +"Tast som smider det nuværende valgte element.\n" +"Se http://irrlicht.sourceforge.net/docu/namespaceirr." +"html#a54da2a0e231901735e3da1b0edf72eb3" + +#: src/settings_translation_file.cpp +msgid "" +"Key for increasing the viewing range.\n" +"See http://irrlicht.sourceforge.net/docu/namespaceirr." +"html#a54da2a0e231901735e3da1b0edf72eb3" +msgstr "" +"Tast for øgning af den sete afstand.\n" +"Se http://irrlicht.sourceforge.net/docu/namespaceirr." +"html#a54da2a0e231901735e3da1b0edf72eb3" + +#: src/settings_translation_file.cpp +#, fuzzy +msgid "" +"Key for increasing the volume.\n" +"See http://irrlicht.sourceforge.net/docu/namespaceirr." +"html#a54da2a0e231901735e3da1b0edf72eb3" +msgstr "" +"Tast for øgning af den sete afstand.\n" +"Se http://irrlicht.sourceforge.net/docu/namespaceirr." +"html#a54da2a0e231901735e3da1b0edf72eb3" + +#: src/settings_translation_file.cpp +msgid "" +"Key for jumping.\n" +"See http://irrlicht.sourceforge.net/docu/namespaceirr." +"html#a54da2a0e231901735e3da1b0edf72eb3" +msgstr "" +"Tast for hop.\n" +"Se http://irrlicht.sourceforge.net/docu/namespaceirr." +"html#a54da2a0e231901735e3da1b0edf72eb3" + +#: src/settings_translation_file.cpp +msgid "" +"Key for moving fast in fast mode.\n" +"See http://irrlicht.sourceforge.net/docu/namespaceirr." +"html#a54da2a0e231901735e3da1b0edf72eb3" +msgstr "" +"Tast til at bevæge sig hurtigt i tilstanden hurtig.\n" +"Se http://irrlicht.sourceforge.net/docu/namespaceirr." +"html#a54da2a0e231901735e3da1b0edf72eb3" + +#: src/settings_translation_file.cpp +msgid "" +"Key for moving the player backward.\n" +"See http://irrlicht.sourceforge.net/docu/namespaceirr." +"html#a54da2a0e231901735e3da1b0edf72eb3" +msgstr "" +"Tast til at bevæge spilleren baglæns.\n" +"Se http://irrlicht.sourceforge.net/docu/namespaceirr." +"html#a54da2a0e231901735e3da1b0edf72eb3" + +#: src/settings_translation_file.cpp +msgid "" +"Key for moving the player forward.\n" +"See http://irrlicht.sourceforge.net/docu/namespaceirr." +"html#a54da2a0e231901735e3da1b0edf72eb3" +msgstr "" +"Tast til at bevæge spilleren fremad.\n" +"Se http://irrlicht.sourceforge.net/docu/namespaceirr." +"html#a54da2a0e231901735e3da1b0edf72eb3" + +#: src/settings_translation_file.cpp +msgid "" +"Key for moving the player left.\n" +"See http://irrlicht.sourceforge.net/docu/namespaceirr." +"html#a54da2a0e231901735e3da1b0edf72eb3" +msgstr "" +"Tast til at bevæge spilleren mod venstre.\n" +"Se http://irrlicht.sourceforge.net/docu/namespaceirr." +"html#a54da2a0e231901735e3da1b0edf72eb3" + +#: src/settings_translation_file.cpp +msgid "" +"Key for moving the player right.\n" +"See http://irrlicht.sourceforge.net/docu/namespaceirr." +"html#a54da2a0e231901735e3da1b0edf72eb3" +msgstr "" +"Tast til at bevæge spilleren mod højre.\n" +"Se http://irrlicht.sourceforge.net/docu/namespaceirr." +"html#a54da2a0e231901735e3da1b0edf72eb3" + +#: src/settings_translation_file.cpp +#, fuzzy +msgid "" +"Key for muting the game.\n" +"See http://irrlicht.sourceforge.net/docu/namespaceirr." +"html#a54da2a0e231901735e3da1b0edf72eb3" +msgstr "" +"Tast for hop.\n" +"Se http://irrlicht.sourceforge.net/docu/namespaceirr." +"html#a54da2a0e231901735e3da1b0edf72eb3" + +#: src/settings_translation_file.cpp +msgid "" +"Key for opening the chat console.\n" +"See http://irrlicht.sourceforge.net/docu/namespaceirr." +"html#a54da2a0e231901735e3da1b0edf72eb3" +msgstr "" +"Tast til at åbne snakkekonsollen (chat).\n" +"Se http://irrlicht.sourceforge.net/docu/namespaceirr." +"html#a54da2a0e231901735e3da1b0edf72eb3" + +#: src/settings_translation_file.cpp +msgid "" +"Key for opening the chat window to type commands.\n" +"See http://irrlicht.sourceforge.net/docu/namespaceirr." +"html#a54da2a0e231901735e3da1b0edf72eb3" +msgstr "" +"Tast til at åbne snakkevinduet for at indtaste kommandoer.\n" +"Se http://irrlicht.sourceforge.net/docu/namespaceirr." +"html#a54da2a0e231901735e3da1b0edf72eb3" + +#: src/settings_translation_file.cpp +#, fuzzy +msgid "" +"Key for opening the chat window to type local commands.\n" +"See http://irrlicht.sourceforge.net/docu/namespaceirr." +"html#a54da2a0e231901735e3da1b0edf72eb3" +msgstr "" +"Tast til at åbne snakkevinduet for at indtaste kommandoer.\n" +"Se http://irrlicht.sourceforge.net/docu/namespaceirr." +"html#a54da2a0e231901735e3da1b0edf72eb3" + +#: src/settings_translation_file.cpp +msgid "" +"Key for opening the chat window.\n" +"See http://irrlicht.sourceforge.net/docu/namespaceirr." +"html#a54da2a0e231901735e3da1b0edf72eb3" +msgstr "" +"Tast til at åbne snakkevinduet (chat).\n" +"Se http://irrlicht.sourceforge.net/docu/namespaceirr." +"html#a54da2a0e231901735e3da1b0edf72eb3" + +#: src/settings_translation_file.cpp +msgid "" +"Key for opening the inventory.\n" +"See http://irrlicht.sourceforge.net/docu/namespaceirr." +"html#a54da2a0e231901735e3da1b0edf72eb3" +msgstr "" +"Tast til at åbne lageret.\n" +"Se http://irrlicht.sourceforge.net/docu/namespaceirr." +"html#a54da2a0e231901735e3da1b0edf72eb3" + +#: src/settings_translation_file.cpp +msgid "" +"Key for printing debug stacks. Used for development.\n" +"See http://irrlicht.sourceforge.net/docu/namespaceirr." +"html#a54da2a0e231901735e3da1b0edf72eb3" +msgstr "" +"Tast til at udskrive fejlsøgningsstakke. Brugt til udvikling.\n" +"Se http://irrlicht.sourceforge.net/docu/namespaceirr." +"html#a54da2a0e231901735e3da1b0edf72eb3" + +#: src/settings_translation_file.cpp +#, fuzzy +msgid "" +"Key for selecting the next item in the hotbar.\n" +"See http://irrlicht.sourceforge.net/docu/namespaceirr." +"html#a54da2a0e231901735e3da1b0edf72eb3" +msgstr "" +"Tast til at åbne lageret.\n" +"Se http://irrlicht.sourceforge.net/docu/namespaceirr." +"html#a54da2a0e231901735e3da1b0edf72eb3" + +#: src/settings_translation_file.cpp +#, fuzzy +msgid "" +"Key for selecting the previous item in the hotbar.\n" +"See http://irrlicht.sourceforge.net/docu/namespaceirr." +"html#a54da2a0e231901735e3da1b0edf72eb3" +msgstr "" +"Tast til at åbne lageret.\n" +"Se http://irrlicht.sourceforge.net/docu/namespaceirr." +"html#a54da2a0e231901735e3da1b0edf72eb3" + +#: src/settings_translation_file.cpp +msgid "" +"Key for sneaking.\n" +"Also used for climbing down and descending in water if aux1_descends is " +"disabled.\n" +"See http://irrlicht.sourceforge.net/docu/namespaceirr." +"html#a54da2a0e231901735e3da1b0edf72eb3" +msgstr "" +"Tast til snigning.\n" +"Bruges også til at klatre ned og synke ned i vand hvis aux1_descends er " +"deaktiveret.\n" +"Se http://irrlicht.sourceforge.net/docu/namespaceirr." +"html#a54da2a0e231901735e3da1b0edf72eb3" + +#: src/settings_translation_file.cpp +msgid "" +"Key for switching between first- and third-person camera.\n" +"See http://irrlicht.sourceforge.net/docu/namespaceirr." +"html#a54da2a0e231901735e3da1b0edf72eb3" +msgstr "" +"Tast til at skifte mellem første- og tredjepersons kamera.\n" +"Se http://irrlicht.sourceforge.net/docu/namespaceirr." +"html#a54da2a0e231901735e3da1b0edf72eb3" + +#: src/settings_translation_file.cpp +msgid "" +"Key for taking screenshots.\n" +"See http://irrlicht.sourceforge.net/docu/namespaceirr." +"html#a54da2a0e231901735e3da1b0edf72eb3" +msgstr "" +"Tast til at lave skærmbilleder.\n" +"Se http://irrlicht.sourceforge.net/docu/namespaceirr." +"html#a54da2a0e231901735e3da1b0edf72eb3" + +#: src/settings_translation_file.cpp +msgid "" +"Key for toggling autorun.\n" +"See http://irrlicht.sourceforge.net/docu/namespaceirr." +"html#a54da2a0e231901735e3da1b0edf72eb3" +msgstr "" +"Tast til at skifte til automatisk løb.\n" +"Se http://irrlicht.sourceforge.net/docu/namespaceirr." +"html#a54da2a0e231901735e3da1b0edf72eb3" + +#: src/settings_translation_file.cpp +msgid "" +"Key for toggling cinematic mode.\n" +"See http://irrlicht.sourceforge.net/docu/namespaceirr." +"html#a54da2a0e231901735e3da1b0edf72eb3" +msgstr "" +"Tast til at skifte til biograftilstand.\n" +"Se http://irrlicht.sourceforge.net/docu/namespaceirr." +"html#a54da2a0e231901735e3da1b0edf72eb3" + +#: src/settings_translation_file.cpp +msgid "" +"Key for toggling display of minimap.\n" +"See http://irrlicht.sourceforge.net/docu/namespaceirr." +"html#a54da2a0e231901735e3da1b0edf72eb3" +msgstr "" +"Tast til at skifte til visning af minikort.\n" +"Se http://irrlicht.sourceforge.net/docu/namespaceirr." +"html#a54da2a0e231901735e3da1b0edf72eb3" + +#: src/settings_translation_file.cpp +msgid "" +"Key for toggling fast mode.\n" +"See http://irrlicht.sourceforge.net/docu/namespaceirr." +"html#a54da2a0e231901735e3da1b0edf72eb3" +msgstr "" +"Tast til at skifte til hurtig tilstand.\n" +"Se http://irrlicht.sourceforge.net/docu/namespaceirr." +"html#a54da2a0e231901735e3da1b0edf72eb3" + +#: src/settings_translation_file.cpp +msgid "" +"Key for toggling flying.\n" +"See http://irrlicht.sourceforge.net/docu/namespaceirr." +"html#a54da2a0e231901735e3da1b0edf72eb3" +msgstr "" +"Tast til at skifte til flyvning.\n" +"Se http://irrlicht.sourceforge.net/docu/namespaceirr." +"html#a54da2a0e231901735e3da1b0edf72eb3" + +#: src/settings_translation_file.cpp +msgid "" +"Key for toggling noclip mode.\n" +"See http://irrlicht.sourceforge.net/docu/namespaceirr." +"html#a54da2a0e231901735e3da1b0edf72eb3" +msgstr "" +"Tast til at skifte til noclip-tilstand.\n" +"Se http://irrlicht.sourceforge.net/docu/namespaceirr." +"html#a54da2a0e231901735e3da1b0edf72eb3" + +#: src/settings_translation_file.cpp +msgid "" +"Key for toggling the camera update. Only used for development\n" +"See http://irrlicht.sourceforge.net/docu/namespaceirr." +"html#a54da2a0e231901735e3da1b0edf72eb3" +msgstr "" +"Tast for at skifte kameraopdateringen. Bruges kun til udvikling\n" +"Se http://irrlicht.sourceforge.net/docu/namespaceirr." +"html#a54da2a0e231901735e3da1b0edf72eb3" + +#: src/settings_translation_file.cpp +msgid "" +"Key for toggling the display of debug info.\n" +"See http://irrlicht.sourceforge.net/docu/namespaceirr." +"html#a54da2a0e231901735e3da1b0edf72eb3" +msgstr "" +"Tast til at skifte til visning af fejlsøgningsinformation.\n" +"Se http://irrlicht.sourceforge.net/docu/namespaceirr." +"html#a54da2a0e231901735e3da1b0edf72eb3" + +#: src/settings_translation_file.cpp +msgid "" +"Key for toggling the display of the HUD.\n" +"See http://irrlicht.sourceforge.net/docu/namespaceirr." +"html#a54da2a0e231901735e3da1b0edf72eb3" +msgstr "" +"Tast til skift af visningen for HUD'en.\n" +"Se http://irrlicht.sourceforge.net/docu/namespaceirr." +"html#a54da2a0e231901735e3da1b0edf72eb3" + +#: src/settings_translation_file.cpp +msgid "" +"Key for toggling the display of the chat.\n" +"See http://irrlicht.sourceforge.net/docu/namespaceirr." +"html#a54da2a0e231901735e3da1b0edf72eb3" +msgstr "" +"Tast til at skifte visningen af snakken (chat).\n" +"Se http://irrlicht.sourceforge.net/docu/namespaceirr." +"html#a54da2a0e231901735e3da1b0edf72eb3" + +#: src/settings_translation_file.cpp +msgid "" +"Key for toggling the display of the fog.\n" +"See http://irrlicht.sourceforge.net/docu/namespaceirr." +"html#a54da2a0e231901735e3da1b0edf72eb3" +msgstr "" +"Tast til at skifte visningen af tåge.\n" +"Se http://irrlicht.sourceforge.net/docu/namespaceirr." +"html#a54da2a0e231901735e3da1b0edf72eb3" + +#: src/settings_translation_file.cpp +#, fuzzy +msgid "" +"Key for toggling the display of the large chat console.\n" +"See http://irrlicht.sourceforge.net/docu/namespaceirr." +"html#a54da2a0e231901735e3da1b0edf72eb3" +msgstr "" +"Tast til at skifte visningen af snakken (chat).\n" +"Se http://irrlicht.sourceforge.net/docu/namespaceirr." +"html#a54da2a0e231901735e3da1b0edf72eb3" + +#: src/settings_translation_file.cpp +msgid "" +"Key for toggling the display of the profiler. Used for development.\n" +"See http://irrlicht.sourceforge.net/docu/namespaceirr." +"html#a54da2a0e231901735e3da1b0edf72eb3" +msgstr "" +"Tast til at skifte visningen af profileringsprogrammet. Brugt til " +"udvikling.\n" +"Se http://irrlicht.sourceforge.net/docu/namespaceirr." +"html#a54da2a0e231901735e3da1b0edf72eb3" + +#: src/settings_translation_file.cpp +msgid "" +"Key for toggling unlimited view range.\n" +"See http://irrlicht.sourceforge.net/docu/namespaceirr." +"html#a54da2a0e231901735e3da1b0edf72eb3" +msgstr "" +"Tast til at skifte til ubegrænset se-afstand.\n" +"Se http://irrlicht.sourceforge.net/docu/namespaceirr." +"html#a54da2a0e231901735e3da1b0edf72eb3" + +#: src/settings_translation_file.cpp +#, fuzzy +msgid "" +"Key to use view zoom when possible.\n" +"See http://irrlicht.sourceforge.net/docu/namespaceirr." +"html#a54da2a0e231901735e3da1b0edf72eb3" +msgstr "" +"Tast for hop.\n" +"Se http://irrlicht.sourceforge.net/docu/namespaceirr." +"html#a54da2a0e231901735e3da1b0edf72eb3" + +#: src/settings_translation_file.cpp +msgid "Key use for climbing/descending" +msgstr "Tast brugt til at klatre op/ned" + +#: src/settings_translation_file.cpp +#, fuzzy +msgid "Lake steepness" +msgstr "Flad søstejlhed for Mapgen" + +#: src/settings_translation_file.cpp +#, fuzzy +msgid "Lake threshold" +msgstr "Flad søtærskel for Mapgen" + +#: src/settings_translation_file.cpp +msgid "Language" +msgstr "Sprog" + +#: src/settings_translation_file.cpp +msgid "Large cave depth" +msgstr "Dybde for stor hule" + +#: src/settings_translation_file.cpp +#, fuzzy +msgid "Large chat console key" +msgstr "Konsoltast" + +#: src/settings_translation_file.cpp +msgid "Lava Features" +msgstr "Lavafunktioner" + +#: src/settings_translation_file.cpp +msgid "Leaves style" +msgstr "Bladstil" + +#: src/settings_translation_file.cpp +msgid "" +"Leaves style:\n" +"- Fancy: all faces visible\n" +"- Simple: only outer faces, if defined special_tiles are used\n" +"- Opaque: disable transparency" +msgstr "" +"Bladstil:\n" +"- Fancy: alle sider synlige\n" +"- Simple: kun ydre sider, hvis defineret special_tiles anvendes\n" +"- Opaque: deaktiver gennemsigtighed" + +#: src/settings_translation_file.cpp +msgid "Left key" +msgstr "Venstretast" + +#: src/settings_translation_file.cpp +msgid "" +"Length of a server tick and the interval at which objects are generally " +"updated over network." +msgstr "" +"Længde på serveraktivering og intervallet som objekter opdateres efter over " +"netværket." + +#: src/settings_translation_file.cpp +msgid "Length of time between ABM execution cycles" +msgstr "Tidslængde mellem ABM-kørselscyklusser" + +#: src/settings_translation_file.cpp +msgid "Length of time between NodeTimer execution cycles" +msgstr "Tidslængde mellem NodeTimer-kørselscyklusser" + +#: src/settings_translation_file.cpp +msgid "" +"Level of logging to be written to debug.txt:\n" +"- (no logging)\n" +"- none (messages with no level)\n" +"- error\n" +"- warning\n" +"- action\n" +"- info\n" +"- verbose" +msgstr "" +"Niveau for logning der skrives til debug.txt:\n" +"- (ingen logning)\n" +"- none (beskeder uden niveau)\n" +"- error\n" +"- warning\n" +"- action\n" +"- info\n" +"- verbose" + +#: src/settings_translation_file.cpp +msgid "Limit of emerge queues on disk" +msgstr "Begrænsning af fremkomsten af forespørgsler på disk" + +#: src/settings_translation_file.cpp +msgid "Limit of emerge queues to generate" +msgstr "Begrænsning af fremkomsten af køer at oprette" + +#: src/settings_translation_file.cpp +msgid "" +"Limit of map generation, in nodes, in all 6 directions from (0, 0, 0).\n" +"Only mapchunks completely within the mapgen limit are generated.\n" +"Value is stored per-world." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"Limits number of parallel HTTP requests. Affects:\n" +"- Media fetch if server uses remote_media setting.\n" +"- Serverlist download and server announcement.\n" +"- Downloads performed by main menu (e.g. mod manager).\n" +"Only has an effect if compiled with cURL." +msgstr "" +"Begrænser antallet af parallelle HTTP-forespørgsler. Påvirker:\n" +"- Medioverførsel hvis serveren bruger indstillingen remote_media.\n" +"- Serverlist-overførsel og serverbesked.\n" +"- Overførsler udført af hovedmenuen (f.eks. mod-håndtering).\n" +"Har kun en effekt hvis kompileret med cURL." + +#: src/settings_translation_file.cpp +msgid "Liquid fluidity" +msgstr "Væskes evne til at flyde" + +#: src/settings_translation_file.cpp +msgid "Liquid fluidity smoothing" +msgstr "Blødgøring af væskes evne til at flyde" + +#: src/settings_translation_file.cpp +msgid "Liquid loop max" +msgstr "Væske loop maks." + +#: src/settings_translation_file.cpp +msgid "Liquid queue purge time" +msgstr "Køfjernelsestid for væske" + +#: src/settings_translation_file.cpp +msgid "Liquid sink" +msgstr "Synkehastighed for væske" + +#: src/settings_translation_file.cpp +msgid "Liquid update interval in seconds." +msgstr "Væskeopdateringsinterval i sekunder." + +#: src/settings_translation_file.cpp +msgid "Liquid update tick" +msgstr "Væskeopdateringsudløsning" + +#: src/settings_translation_file.cpp +msgid "Load the game profiler" +msgstr "Indlæs spilprofileringsprogrammet" + +#: src/settings_translation_file.cpp +msgid "" +"Load the game profiler to collect game profiling data.\n" +"Provides a /profiler command to access the compiled profile.\n" +"Useful for mod developers and server operators." +msgstr "" +"Indlæs spilprofileringsprogrammet for at indsamle profileringsdata.\n" +"Tilbyder en kommando /profiler til at tilgå den indsamlede profil.\n" +"Nyttig for mod-udviklere og serveroperatører." + +#: src/settings_translation_file.cpp +msgid "Loading Block Modifiers" +msgstr "Indlæser blokændringer" + +#: src/settings_translation_file.cpp +msgid "Main menu game manager" +msgstr "Hovedmenus spilhåndtering" + +#: src/settings_translation_file.cpp +msgid "Main menu mod manager" +msgstr "Hovedmenus mod-håndtering" + +#: src/settings_translation_file.cpp +msgid "Main menu script" +msgstr "Hovedmenuskript" + +#: src/settings_translation_file.cpp +msgid "" +"Make fog and sky colors depend on daytime (dawn/sunset) and view direction." +msgstr "" +"Tåge- og himmelfarver afhænger af tid på dagen (solopgang/solnedgang) og den " +"sete retning." + +#: src/settings_translation_file.cpp +msgid "Makes DirectX work with LuaJIT. Disable if it causes troubles." +msgstr "" +"Får DirectX til at fungere med LuaJIT. Deaktiver hvis det giver problemer." + +#: src/settings_translation_file.cpp +msgid "Makes all liquids opaque" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Map directory" +msgstr "Kortmappe" + +#: src/settings_translation_file.cpp +msgid "" +"Map generation attributes specific to Mapgen Valleys.\n" +"'altitude_chill' makes higher elevations colder, which may cause biome " +"issues.\n" +"'humid_rivers' modifies the humidity around rivers and in areas where water " +"would tend to pool,\n" +"it may interfere with delicately adjusted biomes.\n" +"Flags that are not specified in the flag string are not modified from the " +"default.\n" +"Flags starting with 'no' are used to explicitly disable them." +msgstr "" +"Kortoprettelsesattributer specifik for Mapgen Valleys.\n" +"»altitude_chill« gør højere områder koldere, hvilket kan medføre " +"habitatproblemstillinger.\n" +"»humid_rivers« ændrer fugtighed omkring floder og i områder hvor vand har " +"tendens til at samle sig,\n" +"det kan influere med ømtålelige habitatter.\n" +"Flag som ikke er specificeret i flag-strengen ændres ikke fra standarden.\n" +"Flag der starter med »no« bruges til eksplicit at deaktivere dem." + +#: src/settings_translation_file.cpp +msgid "" +"Map generation attributes specific to Mapgen flat.\n" +"Occasional lakes and hills can be added to the flat world.\n" +"Flags that are not specified in the flag string are not modified from the " +"default.\n" +"Flags starting with 'no' are used to explicitly disable them." +msgstr "" +"Kortoprettelsesattributter specifikke for Mapgen flat.\n" +"Undtagelsesvis kan søer og bakker tilføjes til den flade verden.\n" +"Flag som ikke er specificeret i flag-strengen ændres ikke fra standarden.\n" +"Flag der starter med »no« bruges til eksplicit at deaktivere dem." + +#: src/settings_translation_file.cpp +#, fuzzy +msgid "" +"Map generation attributes specific to Mapgen v5.\n" +"Flags that are not specified in the flag string are not modified from the " +"default.\n" +"Flags starting with 'no' are used to explicitly disable them." +msgstr "" +"Kortoprettelsesattributter specifikek til Mapgen v7.\n" +"Flaget »ridges« kontroller floderne.\n" +"Flag som ikke er specificeret i flag-strengen ændres ikke fra standarden.\n" +"Flag der starter med »no« bruges til eksplicit at deaktivere dem." + +#: src/settings_translation_file.cpp +#, fuzzy +msgid "" +"Map generation attributes specific to Mapgen v6.\n" +"The 'snowbiomes' flag enables the new 5 biome system.\n" +"When the new biome system is enabled jungles are automatically enabled and\n" +"the 'jungles' flag is ignored.\n" +"Flags that are not specified in the flag string are not modified from the " +"default.\n" +"Flags starting with 'no' are used to explicitly disable them." +msgstr "" +"Kortoprettelsesattributter specifikke for Mapgen v6.\n" +"Når snehabitatter er aktiveret bliver jungler automatisk aktiveret, flaget " +"»jungles« ignoreres.\n" +"Flag som ikke er specificeret i flag-strengen ændres ikke fra standarden.\n" +"Flag der starter med »no« bruges til eksplicit at deaktivere dem." + +#: src/settings_translation_file.cpp +#, fuzzy +msgid "" +"Map generation attributes specific to Mapgen v7.\n" +"The 'ridges' flag enables the rivers.\n" +"Floatlands are currently experimental and subject to change.\n" +"Flags that are not specified in the flag string are not modified from the " +"default.\n" +"Flags starting with 'no' are used to explicitly disable them." +msgstr "" +"Kortoprettelsesattributter specifikek til Mapgen v7.\n" +"Flaget »ridges« kontroller floderne.\n" +"Flag som ikke er specificeret i flag-strengen ændres ikke fra standarden.\n" +"Flag der starter med »no« bruges til eksplicit at deaktivere dem." + +#: src/settings_translation_file.cpp +msgid "Map generation limit" +msgstr "Kortoprettelsesbegrænsning" + +#: src/settings_translation_file.cpp +msgid "Map save interval" +msgstr "Interval for kortlagring" + +#: src/settings_translation_file.cpp +msgid "Mapblock limit" +msgstr "Kortblokbegrænsning" + +#: src/settings_translation_file.cpp +#, fuzzy +msgid "Mapblock mesh generation delay" +msgstr "Kortoprettelsesbegrænsning" + +#: src/settings_translation_file.cpp +msgid "Mapblock mesh generator's MapBlock cache size MB" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Mapblock unload timeout" +msgstr "Tidsudløb for kortblokfjernelse" + +#: src/settings_translation_file.cpp +msgid "Mapgen Valleys" +msgstr "Mapgen-daler" + +#: src/settings_translation_file.cpp +msgid "Mapgen debug" +msgstr "Fejlsøgning for Mapgen" + +#: src/settings_translation_file.cpp +msgid "Mapgen flags" +msgstr "Flag for Mapgen" + +#: src/settings_translation_file.cpp +msgid "Mapgen flat" +msgstr "Mapgen-flad" + +#: src/settings_translation_file.cpp +#, fuzzy +msgid "Mapgen flat specific flags" +msgstr "Flade flag for Mapgen" + +#: src/settings_translation_file.cpp +msgid "Mapgen fractal" +msgstr "Fraktral for Mapgen" + +#: src/settings_translation_file.cpp +msgid "Mapgen name" +msgstr "Mapgen-navn" + +#: src/settings_translation_file.cpp +msgid "Mapgen v5" +msgstr "Mapgen v5" + +#: src/settings_translation_file.cpp +#, fuzzy +msgid "Mapgen v5 specific flags" +msgstr "Mapgen v6 – flag" + +#: src/settings_translation_file.cpp +msgid "Mapgen v6" +msgstr "Mapgen v6" + +#: src/settings_translation_file.cpp +#, fuzzy +msgid "Mapgen v6 specific flags" +msgstr "Mapgen v6 – flag" + +#: src/settings_translation_file.cpp +msgid "Mapgen v7" +msgstr "Mapgen v7" + +#: src/settings_translation_file.cpp +#, fuzzy +msgid "Mapgen v7 specific flags" +msgstr "Mapgen v7 – flag" + +#: src/settings_translation_file.cpp +msgid "Massive cave depth" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Massive cave noise" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Massive caves form here." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Max block generate distance" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Max block send distance" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Max liquids processed per step." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Max. clearobjects extra blocks" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Max. packets per iteration" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Maximum FPS" +msgstr "Maksimal FPS" + +#: src/settings_translation_file.cpp +msgid "Maximum FPS when game is paused." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Maximum forceloaded blocks" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Maximum hotbar width" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Maximum number of blocks that are simultaneously sent in total." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Maximum number of blocks that are simultaneously sent per client." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Maximum number of blocks that can be queued for loading." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"Maximum number of blocks to be queued that are to be generated.\n" +"Set to blank for an appropriate amount to be chosen automatically." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"Maximum number of blocks to be queued that are to be loaded from file.\n" +"Set to blank for an appropriate amount to be chosen automatically." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Maximum number of forceloaded mapblocks." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"Maximum number of mapblocks for client to be kept in memory.\n" +"Set to -1 for unlimited amount." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"Maximum number of packets sent per send step, if you have a slow connection\n" +"try reducing it, but don't reduce it to a number below double of targeted\n" +"client number." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Maximum number of players that can connect simultaneously." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Maximum number of statically stored objects in a block." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Maximum objects per block" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"Maximum proportion of current window to be used for hotbar.\n" +"Useful if there's something to be displayed right or left of hotbar." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Maximum simultaneous block sends per client" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Maximum simultaneous block sends total" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Maximum time in ms a file download (e.g. a mod download) may take." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Maximum users" +msgstr "Maksimum antal brugere" + +#: src/settings_translation_file.cpp +msgid "Menus" +msgstr "Menuer" + +#: src/settings_translation_file.cpp +msgid "Mesh cache" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Message of the day" +msgstr "Dagens besked" + +#: src/settings_translation_file.cpp +msgid "Message of the day displayed to players connecting." +msgstr "Dagens besked" + +#: src/settings_translation_file.cpp +msgid "Method used to highlight selected object." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Minimap" +msgstr "Minikort" + +#: src/settings_translation_file.cpp +msgid "Minimap key" +msgstr "Minikorttast" + +#: src/settings_translation_file.cpp +msgid "Minimap scan height" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Minimum texture size for filters" +msgstr "" + +#: src/settings_translation_file.cpp +#, fuzzy +msgid "Mipmapping" +msgstr "Mipmapping" + +#: src/settings_translation_file.cpp +msgid "Modifies the size of the hudbar elements." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Modstore details URL" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Modstore download URL" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Modstore mods list URL" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Monospace font path" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Monospace font size" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Mountain height noise" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Mountain noise" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Mouse sensitivity" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Mouse sensitivity multiplier." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Mud noise" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"Multiplier for fall bobbing.\n" +"For example: 0 for no view bobbing; 1.0 for normal; 2.0 for double." +msgstr "" + +#: src/settings_translation_file.cpp +#, fuzzy +msgid "Mute key" +msgstr "Brug-tast" + +#: src/settings_translation_file.cpp +msgid "" +"Name of map generator to be used when creating a new world.\n" +"Creating a world in the main menu will override this." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"Name of the player.\n" +"When running a server, clients connecting with this name are admins.\n" +"When starting from the main menu, this is overridden." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"Name of the server, to be displayed when players join and in the serverlist." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Network" +msgstr "Netværk" + +#: src/settings_translation_file.cpp +msgid "" +"Network port to listen (UDP).\n" +"This value will be overridden when starting from the main menu." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "New users need to input this password." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Noclip" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Noclip key" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Node highlighting" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "NodeTimer interval" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Noises" +msgstr "Lyde" + +#: src/settings_translation_file.cpp +msgid "Normalmaps sampling" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Normalmaps strength" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Number of emerge threads" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"Number of emerge threads to use. Make this field blank, or increase this " +"number\n" +"to use multiple threads. On multiprocessor systems, this will improve mapgen " +"speed greatly\n" +"at the cost of slightly buggy caves." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"Number of extra blocks that can be loaded by /clearobjects at once.\n" +"This is a trade-off between sqlite transaction overhead and\n" +"memory consumption (4096=100MB, as a rule of thumb)." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Number of parallax occlusion iterations." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Offset" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Opaque liquids" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Overall bias of parallax occlusion effect, usually scale/2." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Overall scale of parallax occlusion effect." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Parallax occlusion" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Parallax occlusion Scale" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Parallax occlusion bias" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Parallax occlusion iterations" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Parallax occlusion mode" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Parallax occlusion strength" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Path to TrueTypeFont or bitmap." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Path to save screenshots at." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"Path to shader directory. If no path is defined, default location will be " +"used." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Path to texture directory. All textures are first searched from here." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Physics" +msgstr "Fysik" + +#: src/settings_translation_file.cpp +msgid "" +"Player is able to fly without being affected by gravity.\n" +"This requires the \"fly\" privilege on the server." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Player name" +msgstr "Spillerens navn" + +#: src/settings_translation_file.cpp +msgid "Player transfer distance" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Player versus Player" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"Port to connect to (UDP).\n" +"Note that the port field in the main menu overrides this setting." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Prevent mods from doing insecure things like running shell commands." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"Print the engine's profiling data in regular intervals (in seconds). 0 = " +"disable. Useful for developers." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Privileges that players with basic_privs can grant" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Profiler" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Profiler toggle key" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Profiling" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"Radius of cloud area stated in number of 64 node cloud squares.\n" +"Values larger than 26 will start to produce sharp cutoffs at cloud area " +"corners." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Raises terrain to make valleys around the rivers" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Random input" +msgstr "" + +#: src/settings_translation_file.cpp +#, fuzzy +msgid "Range select key" +msgstr "Afstands vælg" + +#: src/settings_translation_file.cpp +msgid "Remote media" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Remote port" +msgstr "Fjernport" + +#: src/settings_translation_file.cpp +msgid "Replaces the default main menu with a custom one." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Report path" +msgstr "Rapportsti" + +#: src/settings_translation_file.cpp +#, fuzzy +msgid "Ridge noise" +msgstr "Flodstøj" + +#: src/settings_translation_file.cpp +msgid "Ridge underwater noise" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Right key" +msgstr "Højretast" + +#: src/settings_translation_file.cpp +msgid "Rightclick repetition interval" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "River Depth" +msgstr "Floddybde" + +#: src/settings_translation_file.cpp +msgid "River Noise" +msgstr "Flodstøj" + +#: src/settings_translation_file.cpp +msgid "River Size" +msgstr "Flodstørrelse" + +#: src/settings_translation_file.cpp +msgid "River noise -- rivers occur close to zero" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Rollback recording" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Round minimap" +msgstr "Rundt minikort" + +#: src/settings_translation_file.cpp +msgid "Sandy beaches occur when np_beach exceeds this value." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Save the map received by the client on disk." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Saving map received from server" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Scale" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"Scale gui by a user specified value.\n" +"Use a nearest-neighbor-anti-alias filter to scale the GUI.\n" +"This will smooth over some of the rough edges, and blend\n" +"pixels when scaling down, at the cost of blurring some\n" +"edge pixels when images are scaled by non-integer sizes." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Screen height" +msgstr "Skærmhøjde" + +#: src/settings_translation_file.cpp +msgid "Screen width" +msgstr "Skærmbredde" + +#: src/settings_translation_file.cpp +msgid "Screenshot" +msgstr "Skærmbillede" + +#: src/settings_translation_file.cpp +msgid "Screenshot folder" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Screenshot format" +msgstr "Skærmbilledformat" + +#: src/settings_translation_file.cpp +msgid "Screenshot quality" +msgstr "Skærmbilledkvalitet" + +#: src/settings_translation_file.cpp +msgid "" +"Screenshot quality. Only used for JPEG format.\n" +"1 means worst quality; 100 means best quality.\n" +"Use 0 for default quality." +msgstr "" + +#: src/settings_translation_file.cpp +#, fuzzy +msgid "Seabed noise" +msgstr "Hulestøj #1" + +#: src/settings_translation_file.cpp +msgid "Second of 2 3D noises that together define tunnels." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Security" +msgstr "Sikkerhed" + +#: src/settings_translation_file.cpp +msgid "See http://www.sqlite.org/pragma.html#pragma_synchronous" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Selection box border color (R,G,B)." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Selection box color" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Selection box width" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Server / Singleplayer" +msgstr "Server/alene" + +#: src/settings_translation_file.cpp +msgid "Server URL" +msgstr "Server-URL" + +#: src/settings_translation_file.cpp +msgid "Server address" +msgstr "Serveradresse" + +#: src/settings_translation_file.cpp +msgid "Server description" +msgstr "Serverbeskrivelse" + +#: src/settings_translation_file.cpp +msgid "Server name" +msgstr "Servernavn" + +#: src/settings_translation_file.cpp +msgid "Server port" +msgstr "Serverport" + +#: src/settings_translation_file.cpp +msgid "Server side occlusion culling" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Serverlist URL" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Serverlist file" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"Set the language. Leave empty to use the system language.\n" +"A restart is required after changing this." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"Set to true enables waving leaves.\n" +"Requires shaders to be enabled." +msgstr "" +"Sat til true (sand) aktiverer bølgende blade.\n" +"Kræver at dybdeskabere er aktiveret." + +#: src/settings_translation_file.cpp +msgid "" +"Set to true enables waving plants.\n" +"Requires shaders to be enabled." +msgstr "" +"Angivet til true (sand) aktiverer bølgende planter.\n" +"Kræver at dybdeskabere er aktiveret." + +#: src/settings_translation_file.cpp +msgid "" +"Set to true enables waving water.\n" +"Requires shaders to be enabled." +msgstr "" +"Angivet til true (sand) aktiverer bølgende vand.\n" +"Kræver at dybdeskabere er aktiveret." + +#: src/settings_translation_file.cpp +#, fuzzy +msgid "Shader path" +msgstr "Dybdeskabere" + +#: src/settings_translation_file.cpp +#, fuzzy +msgid "" +"Shaders allow advanced visual effects and may increase performance on some " +"video cards.\n" +"This only works with the OpenGL video backend." +msgstr "" +"Dybdeskabere tillader avancerede visuelle effekter og kan forøge ydelsen på " +"nogle videokort.\n" +"De fungerer kun med OpenGL-videomotoren." + +#: src/settings_translation_file.cpp +#, fuzzy +msgid "Shadow limit" +msgstr "Kortblokbegrænsning" + +#: src/settings_translation_file.cpp +msgid "Shape of the minimap. Enabled = round, disabled = square." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Show debug info" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Show entity selection boxes" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Shutdown message" +msgstr "Nedlukningsbesked" + +#: src/settings_translation_file.cpp +msgid "" +"Size of chunks to be generated at once by mapgen, stated in mapblocks (16 " +"nodes)." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"Size of the MapBlock cache of the mesh generator. Increasing this will\n" +"increase the cache hit %, reducing the data being copied from the main\n" +"thread, thus reducing jitter." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Slice w" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Slope and fill work together to modify the heights" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Small-scale humidity variation for blending biomes on borders." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Small-scale temperature variation for blending biomes on borders." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Smooth lighting" +msgstr "Blød belysning" + +#: src/settings_translation_file.cpp +msgid "" +"Smooths camera when looking around. Also called look or mouse smoothing.\n" +"Useful for recording videos." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Smooths rotation of camera in cinematic mode. 0 to disable." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Smooths rotation of camera. 0 to disable." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Sneak key" +msgstr "Snigetast" + +#: src/settings_translation_file.cpp +msgid "Sound" +msgstr "Lyd" + +#: src/settings_translation_file.cpp +msgid "" +"Specifies URL from which client fetches media instead of using UDP.\n" +"$filename should be accessible from $remote_media$filename via cURL\n" +"(obviously, remote_media should end with a slash).\n" +"Files that are not present will be fetched the usual way." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Static spawnpoint" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Status message on connection" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Steepness noise" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Strength of generated normalmaps." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Strength of parallax." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Strict protocol checking" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Support older servers" +msgstr "Understøt ældre servere" + +#: src/settings_translation_file.cpp +msgid "Synchronous SQLite" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Temperature variation for biomes." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Terrain Height" +msgstr "Terrænhøjde" + +#: src/settings_translation_file.cpp +msgid "Terrain alt noise" +msgstr "" + +#: src/settings_translation_file.cpp +#, fuzzy +msgid "Terrain base noise" +msgstr "Terrænhøjde" + +#: src/settings_translation_file.cpp +#, fuzzy +msgid "Terrain higher noise" +msgstr "Terrænhøjde" + +#: src/settings_translation_file.cpp +#, fuzzy +msgid "Terrain noise" +msgstr "Terrænhøjde" + +#: src/settings_translation_file.cpp +msgid "" +"Terrain noise threshold for hills.\n" +"Controls proportion of world area covered by hills.\n" +"Adjust towards 0.0 for a larger proportion." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"Terrain noise threshold for lakes.\n" +"Controls proportion of world area covered by lakes.\n" +"Adjust towards 0.0 for a larger proportion." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Terrain persistence noise" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Texture path" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "The altitude at which temperature drops by 20C" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"The default format in which profiles are being saved,\n" +"when calling `/profiler save [format]` without format." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "The depth of dirt or other filler" +msgstr "Dybde for smuds eller andet fyldstof" + +#: src/settings_translation_file.cpp +msgid "" +"The file path relative to your worldpath in which profiles will be saved to." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "The identifier of the joystick to use" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "The network interface that the server listens on." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"The privileges that new users automatically get.\n" +"See /privs in game for a full list on your server and mod configuration." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "The rendering back-end for Irrlicht." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"The sensitivity of the joystick axes for moving the\n" +"ingame view frustum around." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"The strength (darkness) of node ambient-occlusion shading.\n" +"Lower is darker, Higher is lighter. The valid range of values for this\n" +"setting is 0.25 to 4.0 inclusive. If the value is out of range it will be\n" +"set to the nearest valid value." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"The time (in seconds) that the liquids queue may grow beyond processing\n" +"capacity until an attempt is made to decrease its size by dumping old queue\n" +"items. A value of 0 disables the functionality." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"The time in seconds it takes between repeated events\n" +"when holding down a joystick button combination." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"The time in seconds it takes between repeated right clicks when holding the " +"right mouse button." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "The type of joystick" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "This font will be used for certain languages." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Time in between active block management cycles" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"Time in seconds for item entity (dropped items) to live.\n" +"Setting it to -1 disables the feature." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Time send interval" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Time speed" +msgstr "Tidshastighed" + +#: src/settings_translation_file.cpp +msgid "Timeout for client to remove unused map data from memory." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"To reduce lag, block transfers are slowed down when a player is building " +"something.\n" +"This determines how long they are slowed down after placing or removing a " +"node." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Toggle camera mode key" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Tooltip delay" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Trees noise" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Trilinear filtering" +msgstr "Trilineær filtrering" + +#: src/settings_translation_file.cpp +msgid "" +"True = 256\n" +"False = 128\n" +"Useable to make minimap smoother on slower machines." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Trusted mods" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"Typical maximum height, above and below midpoint, of floatland mountain " +"terrain." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "URL to the server list displayed in the Multiplayer Tab." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Undersampling" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"Undersampling is similar to using lower screen resolution, but it applies\n" +"to the game world only, keeping the GUI intact.\n" +"It should give significant performance boost at the cost of less detailed " +"image." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Unlimited player transfer distance" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Unload unused server data" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Use 3D cloud look instead of flat." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Use a cloud animation for the main menu background." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Use anisotropic filtering when viewing at textures from an angle." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Use bilinear filtering when scaling textures." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Use key" +msgstr "Brug-tast" + +#: src/settings_translation_file.cpp +msgid "Use mip mapping to scale textures. May slightly increase performance." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Use trilinear filtering when scaling textures." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "V-Sync" +msgstr "V-Sync" + +#: src/settings_translation_file.cpp +msgid "VBO" +msgstr "VBO" + +#: src/settings_translation_file.cpp +msgid "Valley Depth" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Valley Fill" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Valley Profile" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Valley Slope" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Valleys C Flags" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Variation of biome filler depth." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Variation of hill height and lake depth on floatland smooth terrain." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Variation of maximum mountain height (in nodes)." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Variation of number of caves." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"Variation of terrain vertical scale.\n" +"When noise is < -0.55 terrain is near-flat." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Varies depth of biome surface nodes." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"Varies roughness of terrain.\n" +"Defines the 'persistence' value for terrain_base and terrain_alt noises." +msgstr "" + +#: src/settings_translation_file.cpp +#, fuzzy +msgid "Varies steepness of cliffs." +msgstr "Styrer stejlheden/højden af bakkerne." + +#: src/settings_translation_file.cpp +msgid "Vertical screen synchronization." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Video driver" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "View bobbing factor" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "View distance in nodes." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "View range decrease key" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "View range increase key" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "View zoom key" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Viewing range" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Volume" +msgstr "Lydstyrke" + +#: src/settings_translation_file.cpp +msgid "" +"W co-ordinate of the generated 3D slice of a 4D fractal.\n" +"Determines which 3D slice of the 4D shape is generated.\n" +"Has no effect on 3D fractals.\n" +"Range roughly -2 to 2." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Walking speed" +msgstr "Ganghastighed" + +#: src/settings_translation_file.cpp +msgid "Water Features" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Water level" +msgstr "Vandstand" + +#: src/settings_translation_file.cpp +msgid "Water surface level of the world." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Waving Nodes" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Waving leaves" +msgstr "Bølgende blade" + +#: src/settings_translation_file.cpp +msgid "Waving plants" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Waving water" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Waving water height" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Waving water length" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Waving water speed" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"When gui_scaling_filter is true, all GUI images need to be\n" +"filtered in software, but some images are generated directly\n" +"to hardware (e.g. render-to-texture for nodes in inventory)." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"When gui_scaling_filter_txr2img is true, copy those images\n" +"from hardware to software for scaling. When false, fall back\n" +"to the old scaling method, for video drivers that don't\n" +"properly support downloading textures back from hardware." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"When using bilinear/trilinear/anisotropic filters, low-resolution textures\n" +"can be blurred, so automatically upscale them with nearest-neighbor\n" +"interpolation to preserve crisp pixels. This sets the minimum texture size\n" +"for the upscaled textures; higher values look sharper, but require more\n" +"memory. Powers of 2 are recommended. Setting this higher than 1 may not\n" +"have a visible effect unless bilinear/trilinear/anisotropic filtering is\n" +"enabled." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"Whether freetype fonts are used, requires freetype support to be compiled in." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Whether node texture animations should be desynchronized per mapblock." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"Whether players are shown to clients without any range limit.\n" +"Deprecated, use the setting player_transfer_distance instead." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Whether to allow players to damage and kill each other." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"Whether to ask clients to reconnect after a (Lua) crash.\n" +"Set this to true if your server is set up to restart automatically." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Whether to fog out the end of the visible area." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"Whether to show the client debug info (has the same effect as hitting F5)." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"Whether to support older servers before protocol version 25.\n" +"Enable if you want to connect to 0.4.12 servers and before.\n" +"Servers starting with 0.4.13 will work, 0.4.12-dev servers may work.\n" +"Disabling this option will protect your password better." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Width component of the initial window size." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Width of the selectionbox's lines around nodes." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"Windows systems only: Start Minetest with the command line window in the " +"background.\n" +"Contains the same information as the file debug.txt (default name)." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"World directory (everything in the world is stored here).\n" +"Not needed if starting from the main menu." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Y of flat ground." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Y of upper limit of large pseudorandom caves." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Y-distance over which caverns expand to full size." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Y-level of average terrain surface." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Y-level of cavern upper limit." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Y-level of floatland midpoint and lake surface." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Y-level of higher (cliff-top) terrain." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Y-level of lower terrain and lakebeds." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Y-level of seabed." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Y-level to which floatland shadows extend." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "block send optimize distance" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "cURL file download timeout" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "cURL parallel limit" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "cURL timeout" +msgstr "cURL-tidsudløb" + +#~ msgid "Hide mp content" +#~ msgstr "Skjul mp indhold" + +#~ msgid "Attn" +#~ msgstr "Giv agt" + +#~ msgid "Capital" +#~ msgstr "Store bogstaver" + +#~ msgid "Comma" +#~ msgstr "Komma" + +#~ msgid "CrSel" +#~ msgstr "CrSel" + +#~ msgid "ExSel" +#~ msgstr "ExSel" + +#~ msgid "Final" +#~ msgstr "Endelig" + +#~ msgid "Junja" +#~ msgstr "Junja" + +#~ msgid "Kana" +#~ msgstr "Kana" + +#~ msgid "Kanji" +#~ msgstr "Kanji" + +#~ msgid "Minus" +#~ msgstr "Minus" + +#~ msgid "PA1" +#~ msgstr "PA1" + +#~ msgid "Period" +#~ msgstr "Punktum" + +#~ msgid "Plus" +#~ msgstr "Plus" + +#~ msgid "" +#~ "Controls size of deserts and beaches in Mapgen v6.\n" +#~ "When snowbiomes are enabled 'mgv6_freq_desert' is ignored." +#~ msgstr "" +#~ "Kontroller størrelse for ørkener og strande i Mapgen v6.\n" +#~ "Når snebiomer er aktiveret ignoreres »mgv6_freq_desert«." + +#~ msgid "" +#~ "Determines terrain shape.\n" +#~ "The 3 numbers in brackets control the scale of the\n" +#~ "terrain, the 3 numbers should be identical." +#~ msgstr "" +#~ "Bestemmer terrænform.\n" +#~ "De tre tal i parenteser kontrollerer skalaen for\n" +#~ "terrænet, de tre tal skal være identiske." + +#~ msgid "Mapgen biome heat noise parameters" +#~ msgstr "Støjparametre til biotopvarme for Mapgen" + +#~ msgid "Mapgen biome humidity blend noise parameters" +#~ msgstr "Støjparametre til biotopfugtighedsblanding for Mapgen" + +#~ msgid "Mapgen flat cave width" +#~ msgstr "Mapgen - flad hulebredde" + +#~ msgid "Mapgen flat cave1 noise parameters" +#~ msgstr "Støjparametre til flade cave1 for Mapgen" + +#~ msgid "Mapgen flat cave2 noise parameters" +#~ msgstr "Støjparametre til flade cave2 for Mapgen" + +#~ msgid "Mapgen flat filler depth noise parameters" +#~ msgstr "Mapgen - støjparametre for flad fyldstofdybde" + +#~ msgid "Mapgen flat large cave depth" +#~ msgstr "Flad stor hule-dybde for Mapgen" + +#~ msgid "Mapgen flat terrain noise parameters" +#~ msgstr "Støjparametre til flad terræn for Mapgen" + +#~ msgid "Mapgen fractal cave width" +#~ msgstr "Mapgen - fraktal hulebredde" + +#~ msgid "Mapgen fractal cave1 noise parameters" +#~ msgstr "Støjparametre for Mapgen fraktal grotte1" + +#~ msgid "Mapgen fractal cave2 noise parameters" +#~ msgstr "Støjparametre for Mapgen fraktal grotte2" + +#~ msgid "Mapgen fractal filler depth noise parameters" +#~ msgstr "Mapgen - støjparametre for fraktal fyldstofdybde" + +#~ msgid "Mapgen fractal fractal" +#~ msgstr "Mapgen fraktal fraktal" + +#~ msgid "Mapgen fractal iterations" +#~ msgstr "Mapgen fraktaliterationer" + +#~ msgid "Mapgen fractal julia w" +#~ msgstr "Mapgen fraktal Julia w" + +#~ msgid "Mapgen fractal julia x" +#~ msgstr "Mapgen fraktal Julia x" + +#~ msgid "Mapgen fractal julia y" +#~ msgstr "Mapgen fraktal Julia y" + +#~ msgid "Mapgen fractal julia z" +#~ msgstr "Mapgen fraktal Julia z" + +#~ msgid "Mapgen fractal offset" +#~ msgstr "Mapgen fraktal forskydning" + +#~ msgid "Mapgen fractal scale" +#~ msgstr "Mapgen fraktal skalering" + +#~ msgid "Mapgen fractal seabed noise parameters" +#~ msgstr "Støjparametre for Mapgen fraktal havbund" + +#~ msgid "Mapgen fractal slice w" +#~ msgstr "Mapgen fraktal udsnit w" + +#~ msgid "Mapgen v5 cave width" +#~ msgstr "Mapgen v5 grottebredde" + +#~ msgid "Mapgen v5 cave1 noise parameters" +#~ msgstr "Støjparametre for Mapgen v5 grotte1" + +#~ msgid "Mapgen v5 cave2 noise parameters" +#~ msgstr "Støjparametre for Mapgen v5 grotte2" + +#~ msgid "Mapgen v5 factor noise parameters" +#~ msgstr "Støjparametre for Mapgen v5 faktor" + +#~ msgid "Mapgen v5 filler depth noise parameters" +#~ msgstr "Mapgen v5 - støjparametre for fyldstofdybde" + +#~ msgid "Mapgen v5 height noise parameters" +#~ msgstr "Mapgen v5 – støjparametre for højde" + +#~ msgid "Mapgen v6 apple trees noise parameters" +#~ msgstr "Mapgen v6 – støjparametre for æbletræer" + +#~ msgid "Mapgen v6 beach frequency" +#~ msgstr "Mapgen v6 – strandhyppighed" + +#~ msgid "Mapgen v6 beach noise parameters" +#~ msgstr "Mapgen v6 – støjparametre for strand" + +#~ msgid "Mapgen v6 biome noise parameters" +#~ msgstr "Mapgen v6 – støjparametre for økosystem" + +#~ msgid "Mapgen v6 cave noise parameters" +#~ msgstr "Mapgen v6 – støjparametre for grotter" + +#~ msgid "Mapgen v6 desert frequency" +#~ msgstr "Mapgen v6 – ørkenhyppighed" + +#~ msgid "Mapgen v7 filler depth noise parameters" +#~ msgstr "Mapgen v7 - støjparametre for fyldstofdybde" + +#~ msgid "Mapgen v7 height select noise parameters" +#~ msgstr "Mapgen v7 – støjparametre for højdevalg" + +#~ msgid "No of course not!" +#~ msgstr "Nej selvfølgelig ikke!" + +#~ msgid "Public Serverlist" +#~ msgstr "Offentlig serverliste" + +#, fuzzy +#~ msgid "If disabled " +#~ msgstr "Deaktivér alle" + +#, fuzzy +#~ msgid "If enabled, " +#~ msgstr "aktiveret" + +#, fuzzy +#~ msgid "Password" +#~ msgstr "Gammelt kodeord" + +#~ msgid "Preload item visuals" +#~ msgstr "For-indlæs elementernes grafik" + +#~ msgid "" +#~ "Warning: Some mods are not configured yet.\n" +#~ "They will be enabled by default when you save the configuration. " +#~ msgstr "" +#~ "Advarsel: nogle modifikationer er endnu ikke konfigureret.\n" +#~ "De vil blive aktiveret som standard når du gemmer konfigurationen. " + +#~ msgid "" +#~ "Warning: Some configured mods are missing.\n" +#~ "Their setting will be removed when you save the configuration. " +#~ msgstr "" +#~ "Advarsel: nogle konfigurerede modifikationer mangler.\n" +#~ "Deres indstillinger vil blive fjernet når du gemmer konfigurationen. " + +#~ msgid "Delete map" +#~ msgstr "Slet mappen" + +#~ msgid "" +#~ "Default Controls:\n" +#~ "- WASD: Walk\n" +#~ "- Mouse left: dig/hit\n" +#~ "- Mouse right: place/use\n" +#~ "- Mouse wheel: select item\n" +#~ "- 0...9: select item\n" +#~ "- Shift: sneak\n" +#~ "- R: Toggle viewing all loaded chunks\n" +#~ "- I: Inventory menu\n" +#~ "- ESC: This menu\n" +#~ "- T: Chat\n" +#~ msgstr "" +#~ "Standard bindinger:\n" +#~ "- WASD: bevægelse\n" +#~ "- Venstre musetast: grav/slå\n" +#~ "- Højre musetast: anbring/brug\n" +#~ "- Musehjul: vælg genstand\n" +#~ "- 0...9: vælg genstand\n" +#~ "- Shift: snige\n" +#~ "- R: omstil se alle indlæste klumper\n" +#~ "- I: beholdning\n" +#~ "- ESC: denne menu\n" +#~ "- T: snak\n" + +#~ msgid "Failed to delete all world files" +#~ msgstr "Mislykkedes i at slette alle verdenens filer" + +#~ msgid "Cannot configure world: Nothing selected" +#~ msgstr "Kan ikke konfigurere verden: ingenting valgt" + +#~ msgid "Cannot create world: No games found" +#~ msgstr "Kan ikke skabe verden: ingen spil fundet" + +#~ msgid "Files to be deleted" +#~ msgstr "Filer som slettes" + +#~ msgid "Cannot delete world: Nothing selected" +#~ msgstr "Kan ikke slette verden: ingenting valgt" + +#~ msgid "Address required." +#~ msgstr "Adresse påkrævet." + +#~ msgid "Create world" +#~ msgstr "Skab verden" + +#~ msgid "Leave address blank to start a local server." +#~ msgstr "Lad adresse-feltet være tomt for at starte en lokal server." + +#~ msgid "Show Favorites" +#~ msgstr "Vis favoritter" + +#~ msgid "Show Public" +#~ msgstr "Vis offentlig" + +#~ msgid "Cannot create world: Name contains invalid characters" +#~ msgstr "Kan ikke skabe verden: navnet indeholder ugyldige bogstaver" + +#~ msgid "Warning: Configuration not consistent. " +#~ msgstr "Advarsel: konfigurationen er ikke sammenhængende. " + +#~ msgid "Configuration saved. " +#~ msgstr "Konfiguration gemt. " + +#~ msgid "is required by:" +#~ msgstr "er påkrævet af:" + +#~ msgid "Left click: Move all items, Right click: Move single item" +#~ msgstr "Venstre klik: flyt alle enheder. Højre klik: flyt en enkelt enhed" + +#, fuzzy +#~ msgid "Downloading" +#~ msgstr "Ned" diff --git a/po/da/MultiCraft.po b/po/da/MultiCraft.po deleted file mode 100644 index 700ab91c6..000000000 --- a/po/da/MultiCraft.po +++ /dev/null @@ -1,5444 +0,0 @@ -# German translations for minetest-c55 package. -# Copyright (C) 2011 celeron -# This file is distributed under the same license as the minetest-c55 package. -# Frederik Helth , 2011. -# -msgid "" -msgstr "" -"Project-Id-Version: 0.0.0\n" -"Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2017-05-21 17:40+0200\n" -"PO-Revision-Date: 2016-11-24 16:48+0100\n" -"Last-Translator: Joe Hansen \n" -"Language-Team: Danish \n" -"Language: da\n" -"MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=UTF-8\n" -"Content-Transfer-Encoding: 8bit\n" -"Plural-Forms: nplurals=2; plural=n != 1;\n" -"X-Generator: Weblate 2.9-dev\n" - -#: builtin/client/init.lua -msgid "Respawn" -msgstr "Genopstå" - -#: builtin/client/init.lua -msgid "You died." -msgstr "Du døde." - -#: builtin/fstk/ui.lua -msgid "An error occured in a Lua script, such as a mod:" -msgstr "Der skete en fejt i Lua scriptet, så som et mod:" - -#: builtin/fstk/ui.lua -msgid "An error occured:" -msgstr "Der skete en fejl:" - -#: builtin/fstk/ui.lua -msgid "Main menu" -msgstr "Hovedmenu" - -#: builtin/fstk/ui.lua builtin/mainmenu/store.lua -msgid "Ok" -msgstr "Ok" - -#: builtin/fstk/ui.lua -msgid "Reconnect" -msgstr "Forbind igen" - -#: builtin/fstk/ui.lua -msgid "The server has requested a reconnect:" -msgstr "Serveren har anmodet om at forbinde igen:" - -#: builtin/mainmenu/common.lua src/game.cpp -msgid "Loading..." -msgstr "Indlæser..." - -#: builtin/mainmenu/common.lua -msgid "Protocol version mismatch. " -msgstr "Protokol versionerne matchede ikke. " - -#: builtin/mainmenu/common.lua -msgid "Server enforces protocol version $1. " -msgstr "Serveren kræver protokol version $1. " - -#: builtin/mainmenu/common.lua -msgid "Server supports protocol versions between $1 and $2. " -msgstr "Serveren understøtter protokol versioner mellem $1 og $2. " - -#: builtin/mainmenu/common.lua -msgid "Try reenabling public serverlist and check your internet connection." -msgstr "" -"Prøv at slå den offentlige serverliste fra og til, og tjek din internet " -"forbindelse." - -#: builtin/mainmenu/common.lua -msgid "We only support protocol version $1." -msgstr "Vi understøtter kun protokol version $1." - -#: builtin/mainmenu/common.lua -msgid "We support protocol versions between version $1 and $2." -msgstr "Vi understøtter protokol versioner mellem $1 og $2." - -#: builtin/mainmenu/dlg_config_world.lua builtin/mainmenu/dlg_create_world.lua -#: builtin/mainmenu/dlg_delete_mod.lua builtin/mainmenu/dlg_delete_world.lua -#: builtin/mainmenu/dlg_rename_modpack.lua -#: builtin/mainmenu/dlg_settings_advanced.lua src/guiKeyChangeMenu.cpp -#: src/guiPasswordChange.cpp src/keycode.cpp -msgid "Cancel" -msgstr "Anuller" - -#: builtin/mainmenu/dlg_config_world.lua builtin/mainmenu/tab_mods.lua -#, fuzzy -msgid "Dependencies:" -msgstr "Afhænger af:" - -#: builtin/mainmenu/dlg_config_world.lua -msgid "Disable MP" -msgstr "Deaktivér MP" - -#: builtin/mainmenu/dlg_config_world.lua -#, fuzzy -msgid "Disable all" -msgstr "Deaktivér MP" - -#: builtin/mainmenu/dlg_config_world.lua -msgid "Enable MP" -msgstr "Aktivér MP" - -#: builtin/mainmenu/dlg_config_world.lua -msgid "Enable all" -msgstr "Aktivér alle" - -#: builtin/mainmenu/dlg_config_world.lua -msgid "" -"Failed to enable mod \"$1\" as it contains disallowed characters. Only " -"chararacters [a-z0-9_] are allowed." -msgstr "" -"Kunne ikke slå mod \"$1\" til, da den indeholder ugyldige tegn. Kun tegnene " -"[a-z0-9_] er tilladte." - -#: builtin/mainmenu/dlg_config_world.lua -msgid "Mod:" -msgstr "Mod:" - -#: builtin/mainmenu/dlg_config_world.lua builtin/mainmenu/tab_mods.lua -msgid "Optional dependencies:" -msgstr "" - -#: builtin/mainmenu/dlg_config_world.lua -#: builtin/mainmenu/dlg_settings_advanced.lua src/guiKeyChangeMenu.cpp -msgid "Save" -msgstr "Gem" - -#: builtin/mainmenu/dlg_config_world.lua -msgid "World:" -msgstr "Verden:" - -#: builtin/mainmenu/dlg_config_world.lua -msgid "enabled" -msgstr "aktiveret" - -#: builtin/mainmenu/dlg_create_world.lua -msgid "A world named \"$1\" already exists" -msgstr "En verden med navnet »$1« findes allerede" - -#: builtin/mainmenu/dlg_create_world.lua -msgid "Create" -msgstr "Skab" - -#: builtin/mainmenu/dlg_create_world.lua -msgid "Download a subgame, such as minetest_game, from minetest.net" -msgstr "Hent et underspil, såsom minetest_game fra minetest.net" - -#: builtin/mainmenu/dlg_create_world.lua -msgid "Download one from minetest.net" -msgstr "Hent en fra minetest.net" - -#: builtin/mainmenu/dlg_create_world.lua src/settings_translation_file.cpp -msgid "Game" -msgstr "Spil" - -#: builtin/mainmenu/dlg_create_world.lua src/settings_translation_file.cpp -msgid "Mapgen" -msgstr "Mapgen" - -#: builtin/mainmenu/dlg_create_world.lua -msgid "No worldname given or no game selected" -msgstr "Intet navn på verden angivet eller intet spil valgt" - -#: builtin/mainmenu/dlg_create_world.lua -#, fuzzy -msgid "Seed" -msgstr "Kim" - -#: builtin/mainmenu/dlg_create_world.lua -msgid "Warning: The minimal development test is meant for developers." -msgstr "Advarsel: Den minimale udvikings test er kun lavet for udviklerne." - -#: builtin/mainmenu/dlg_create_world.lua -msgid "World name" -msgstr "Verdens navn" - -#: builtin/mainmenu/dlg_create_world.lua -msgid "You have no subgames installed." -msgstr "Du har ikke installeret nogle subgames." - -#: builtin/mainmenu/dlg_delete_mod.lua -msgid "Are you sure you want to delete \"$1\"?" -msgstr "Er du sikker på, at du vil slette »$1«?" - -#: builtin/mainmenu/dlg_delete_mod.lua builtin/mainmenu/dlg_delete_world.lua -#: builtin/mainmenu/tab_local.lua src/keycode.cpp -msgid "Delete" -msgstr "Slet" - -#: builtin/mainmenu/dlg_delete_mod.lua -msgid "Modmgr: failed to delete \"$1\"" -msgstr "Modmgr: Kunne ikke slette \"$1\"" - -#: builtin/mainmenu/dlg_delete_mod.lua -msgid "Modmgr: invalid modpath \"$1\"" -msgstr "Modmgr: ugyldig mod-sti \"$1\"" - -#: builtin/mainmenu/dlg_delete_world.lua -msgid "Delete World \"$1\"?" -msgstr "Slet verden \"$1\"?" - -#: builtin/mainmenu/dlg_rename_modpack.lua -msgid "Accept" -msgstr "Accepter" - -#: builtin/mainmenu/dlg_rename_modpack.lua -msgid "Rename Modpack:" -msgstr "Omdøb Modpack:" - -#: builtin/mainmenu/dlg_settings_advanced.lua -msgid "\"$1\" is not a valid flag." -msgstr "\"$1\" er ikke en gyldig indstilling." - -#: builtin/mainmenu/dlg_settings_advanced.lua -msgid "(No description of setting given)" -msgstr "(Der er ikke nogen beskrivelse af denne indstilling)" - -#: builtin/mainmenu/dlg_settings_advanced.lua -msgid "< Back to Settings page" -msgstr "< Tilbage til siden Indstillinger" - -#: builtin/mainmenu/dlg_settings_advanced.lua -msgid "Browse" -msgstr "Gennemse" - -#: builtin/mainmenu/dlg_settings_advanced.lua -msgid "Disabled" -msgstr "Deaktiveret" - -#: builtin/mainmenu/dlg_settings_advanced.lua -msgid "Edit" -msgstr "Rediger" - -#: builtin/mainmenu/dlg_settings_advanced.lua -msgid "Enabled" -msgstr "aktiveret" - -#: builtin/mainmenu/dlg_settings_advanced.lua -msgid "Format is 3 numbers separated by commas and inside brackets." -msgstr "Formatet er 3 tal, adskilt af kommaer, og omgivet af parenteser." - -#: builtin/mainmenu/dlg_settings_advanced.lua -#, fuzzy -msgid "" -"Format: , , (, , ), , " -", " -msgstr "" -"Format: , , (, , " -"), , , " - -#: builtin/mainmenu/dlg_settings_advanced.lua -msgid "Games" -msgstr "Spil" - -#: builtin/mainmenu/dlg_settings_advanced.lua builtin/mainmenu/tab_mods.lua -msgid "Mods" -msgstr "Mods" - -#: builtin/mainmenu/dlg_settings_advanced.lua -msgid "Optionally the lacunarity can be appended with a leading comma." -msgstr "Valgfrit kan »lacunarity'en« tilføjes med et foranstillet komma." - -#: builtin/mainmenu/dlg_settings_advanced.lua -msgid "Please enter a comma seperated list of flags." -msgstr "Indtast venligst en liste af indstillinger som er adskilt med kommaer." - -#: builtin/mainmenu/dlg_settings_advanced.lua -msgid "Please enter a valid integer." -msgstr "Indtast venligst et gyldigt heltal." - -#: builtin/mainmenu/dlg_settings_advanced.lua -msgid "Please enter a valid number." -msgstr "Indtast venligt et gyldigt nummer." - -#: builtin/mainmenu/dlg_settings_advanced.lua -msgid "Possible values are: " -msgstr "Mulige værdier er: " - -#: builtin/mainmenu/dlg_settings_advanced.lua -msgid "Restore Default" -msgstr "Gendan standard" - -#: builtin/mainmenu/dlg_settings_advanced.lua builtin/mainmenu/store.lua -#: builtin/mainmenu/tab_online.lua -msgid "Search" -msgstr "Søg" - -#: builtin/mainmenu/dlg_settings_advanced.lua -msgid "Select path" -msgstr "Vælg sti" - -#: builtin/mainmenu/dlg_settings_advanced.lua -msgid "Show technical names" -msgstr "Vis tekniske navne" - -#: builtin/mainmenu/dlg_settings_advanced.lua -#, fuzzy -msgid "The value must be at least $1." -msgstr "Værdien skal være større end $1." - -#: builtin/mainmenu/dlg_settings_advanced.lua -#, fuzzy -msgid "The value must not be larger than $1." -msgstr "Værdien skal være mindre end $1." - -#: builtin/mainmenu/modmgr.lua -msgid "" -"\n" -"Install Mod: unsupported filetype \"$1\" or broken archive" -msgstr "" -"\n" -"Installer Mod: filtypen \"$1\" er enten ikke understøttet, ellers er arkivet " -"korrupt" - -#: builtin/mainmenu/modmgr.lua -msgid "Failed to install $1 to $2" -msgstr "Kunne ikke installere $1 til $2" - -#: builtin/mainmenu/modmgr.lua -msgid "Install Mod: file: \"$1\"" -msgstr "Installer Mod: Fil: \"$1\"" - -#: builtin/mainmenu/modmgr.lua -msgid "Install Mod: unable to find real modname for: $1" -msgstr "Installer Mod: kunne ikke finde det rigtige mod navn for: $1" - -#: builtin/mainmenu/modmgr.lua -msgid "Install Mod: unable to find suitable foldername for modpack $1" -msgstr "Installer Mod: kunne ikke finde passende mappe navn for modpack $1" - -#: builtin/mainmenu/modmgr.lua -msgid "Subgame Mods" -msgstr "" - -#: builtin/mainmenu/store.lua -msgid "Close store" -msgstr "Luk marked" - -#: builtin/mainmenu/store.lua -msgid "Downloading $1, please wait..." -msgstr "Henter $1, vent venligst..." - -#: builtin/mainmenu/store.lua -msgid "Install" -msgstr "Installer" - -#: builtin/mainmenu/store.lua -msgid "Page $1 of $2" -msgstr "Side $1 af $2" - -#: builtin/mainmenu/store.lua -msgid "Rating" -msgstr "Bedømmelse" - -#: builtin/mainmenu/store.lua -msgid "Shortname:" -msgstr "Kort navn:" - -#: builtin/mainmenu/store.lua -msgid "Successfully installed:" -msgstr "Succesfuldt installeret:" - -#: builtin/mainmenu/store.lua -msgid "Unsorted" -msgstr "Usorteret" - -#: builtin/mainmenu/store.lua -msgid "re-Install" -msgstr "geninstaller" - -#: builtin/mainmenu/tab_credits.lua -msgid "Active Contributors" -msgstr "Aktive bidragere" - -#: builtin/mainmenu/tab_credits.lua -msgid "Core Developers" -msgstr "Hoved udviklere" - -#: builtin/mainmenu/tab_credits.lua -msgid "Credits" -msgstr "Skabt af" - -#: builtin/mainmenu/tab_credits.lua -msgid "Previous Contributors" -msgstr "Tidligere bidragere" - -#: builtin/mainmenu/tab_credits.lua -msgid "Previous Core Developers" -msgstr "Tidligere hoved udviklere" - -#: builtin/mainmenu/tab_local.lua -#, fuzzy -msgid "Announce Server" -msgstr "Meddelelsesserver" - -#: builtin/mainmenu/tab_local.lua -msgid "Bind Address" -msgstr "Bind adresse" - -#: builtin/mainmenu/tab_local.lua -msgid "Configure" -msgstr "Konfigurér" - -#: builtin/mainmenu/tab_local.lua builtin/mainmenu/tab_simple_main.lua -msgid "Creative Mode" -msgstr "Kreativ tilstand" - -#: builtin/mainmenu/tab_local.lua builtin/mainmenu/tab_simple_main.lua -msgid "Enable Damage" -msgstr "Aktivér skade" - -#: builtin/mainmenu/tab_local.lua -#, fuzzy -msgid "Host Game" -msgstr "Skjul spil" - -#: builtin/mainmenu/tab_local.lua -#, fuzzy -msgid "Host Server" -msgstr "Server" - -#: builtin/mainmenu/tab_local.lua -#, fuzzy -msgid "Local Game" -msgstr "Start spil / Forbind" - -#: builtin/mainmenu/tab_local.lua -msgid "Name/Password" -msgstr "Navn/kodeord" - -#: builtin/mainmenu/tab_local.lua -msgid "New" -msgstr "Ny" - -#: builtin/mainmenu/tab_local.lua -msgid "No world created or selected!" -msgstr "Ingen verden oprettet eller valgt!" - -#: builtin/mainmenu/tab_local.lua -#, fuzzy -msgid "Play Game" -msgstr "Spillerens navn" - -#: builtin/mainmenu/tab_local.lua -#, fuzzy -msgid "Port" -msgstr "Port" - -#: builtin/mainmenu/tab_local.lua -msgid "Select World:" -msgstr "Vælg verden:" - -#: builtin/mainmenu/tab_local.lua -msgid "Server Port" -msgstr "Server port" - -#: builtin/mainmenu/tab_mods.lua -msgid "Installed Mods:" -msgstr "Installerede mods:" - -#: builtin/mainmenu/tab_mods.lua -msgid "Mod information:" -msgstr "Information om mod:" - -#: builtin/mainmenu/tab_mods.lua -msgid "No dependencies." -msgstr "" - -#: builtin/mainmenu/tab_mods.lua -msgid "No mod description available" -msgstr "Der er ikke nogen beskrivelse af tilgængelig af det valgte mod" - -#: builtin/mainmenu/tab_mods.lua -msgid "Rename" -msgstr "Omdøb" - -#: builtin/mainmenu/tab_mods.lua -msgid "Select Mod File:" -msgstr "Vælg mod fil:" - -#: builtin/mainmenu/tab_mods.lua -msgid "Uninstall selected mod" -msgstr "Afinstaller det valgte mod" - -#: builtin/mainmenu/tab_mods.lua -msgid "Uninstall selected modpack" -msgstr "Afinstaller den valgte modpack" - -#: builtin/mainmenu/tab_online.lua -msgid "Address / Port" -msgstr "Adresse/port" - -#: builtin/mainmenu/tab_online.lua builtin/mainmenu/tab_simple_main.lua -msgid "Connect" -msgstr "Forbind" - -#: builtin/mainmenu/tab_online.lua builtin/mainmenu/tab_simple_main.lua -msgid "Creative mode" -msgstr "Kreativ tilstand" - -#: builtin/mainmenu/tab_online.lua builtin/mainmenu/tab_simple_main.lua -msgid "Damage enabled" -msgstr "Skade aktiveret" - -#: builtin/mainmenu/tab_online.lua builtin/mainmenu/tab_simple_main.lua -#, fuzzy -msgid "Del. Favorite" -msgstr "Vis favoritter" - -#: builtin/mainmenu/tab_online.lua builtin/mainmenu/tab_simple_main.lua -msgid "Favorite" -msgstr "Favorit" - -#: builtin/mainmenu/tab_online.lua builtin/mainmenu/tab_simple_main.lua -msgid "Name / Password" -msgstr "Navn/adgangskode" - -#: builtin/mainmenu/tab_online.lua builtin/mainmenu/tab_simple_main.lua -msgid "Ping" -msgstr "" - -#: builtin/mainmenu/tab_online.lua -#, fuzzy -msgid "Multiplayer" -msgstr "Spillerens navn" - -#: builtin/mainmenu/tab_online.lua builtin/mainmenu/tab_simple_main.lua -msgid "PvP enabled" -msgstr "Spiller mod spiller aktiveret" - -#: builtin/mainmenu/tab_settings.lua -msgid "2x" -msgstr "2x" - -#: builtin/mainmenu/tab_settings.lua -msgid "3D Clouds" -msgstr "3D-skyer" - -#: builtin/mainmenu/tab_settings.lua -msgid "4x" -msgstr "4x" - -#: builtin/mainmenu/tab_settings.lua -msgid "8x" -msgstr "8x" - -#: builtin/mainmenu/tab_settings.lua -msgid "Advanced Settings" -msgstr "Avancerede indstillinger" - -#: builtin/mainmenu/tab_settings.lua -msgid "Antialiasing:" -msgstr "Udjævning:" - -#: builtin/mainmenu/tab_settings.lua -msgid "Are you sure to reset your singleplayer world?" -msgstr "Er du sikker på, at du vil nulstille din enkelt spiller-verden?" - -#: builtin/mainmenu/tab_settings.lua -msgid "Autosave screen size" -msgstr "" - -#: builtin/mainmenu/tab_settings.lua -msgid "Bilinear Filter" -msgstr "Bi-lineær filtréring" - -#: builtin/mainmenu/tab_settings.lua -#, fuzzy -msgid "Bump Mapping" -msgstr "Mip-mapping" - -#: builtin/mainmenu/tab_settings.lua -msgid "Change keys" -msgstr "Skift bindinger" - -#: builtin/mainmenu/tab_settings.lua -msgid "Connected Glass" -msgstr "Forbundet glas" - -#: builtin/mainmenu/tab_settings.lua -msgid "Fancy Leaves" -msgstr "Smukke blade" - -#: builtin/mainmenu/tab_settings.lua -#, fuzzy -msgid "Mipmap" -msgstr "Mipmap" - -#: builtin/mainmenu/tab_settings.lua -msgid "Mipmap + Aniso. Filter" -msgstr "Mipmap + Aniso-filter" - -#: builtin/mainmenu/tab_settings.lua -msgid "No" -msgstr "Nej" - -#: builtin/mainmenu/tab_settings.lua -msgid "No Filter" -msgstr "Intet filter" - -#: builtin/mainmenu/tab_settings.lua -msgid "No Mipmap" -msgstr "Ingen Mipmap" - -#: builtin/mainmenu/tab_settings.lua -msgid "Node Highlighting" -msgstr "Knudepunktsfremhævelse" - -#: builtin/mainmenu/tab_settings.lua -msgid "Node Outlining" -msgstr "Knudepunktsomrids" - -#: builtin/mainmenu/tab_settings.lua builtin/mainmenu/tab_texturepacks.lua -msgid "None" -msgstr "Ingen" - -#: builtin/mainmenu/tab_settings.lua -msgid "Normal Mapping" -msgstr "Normal oversættelse" - -#: builtin/mainmenu/tab_settings.lua -msgid "Opaque Leaves" -msgstr "Uuigennemsigtige blade" - -#: builtin/mainmenu/tab_settings.lua -msgid "Opaque Water" -msgstr "Uigennemsigtigt vand" - -#: builtin/mainmenu/tab_settings.lua src/settings_translation_file.cpp -msgid "Parallax Occlusion" -msgstr "Parallax-okklusion" - -#: builtin/mainmenu/tab_settings.lua -msgid "Particles" -msgstr "Partikler" - -#: builtin/mainmenu/tab_settings.lua -msgid "Reset singleplayer world" -msgstr "Nulstil spillerverden" - -#: builtin/mainmenu/tab_settings.lua -#, fuzzy -msgid "Screen:" -msgstr "Skærmbillede" - -#: builtin/mainmenu/tab_settings.lua -msgid "Settings" -msgstr "Indstillinger" - -#: builtin/mainmenu/tab_settings.lua src/settings_translation_file.cpp -msgid "Shaders" -msgstr "Dybdeskabere" - -#: builtin/mainmenu/tab_settings.lua -msgid "Simple Leaves" -msgstr "Enkle blade" - -#: builtin/mainmenu/tab_settings.lua -msgid "Smooth Lighting" -msgstr "Glat belysning" - -#: builtin/mainmenu/tab_settings.lua -msgid "Texturing:" -msgstr "Teksturering:" - -#: builtin/mainmenu/tab_settings.lua -msgid "To enable shaders the OpenGL driver needs to be used." -msgstr "For at aktivere dybdeskabere skal OpenGL-driveren bruges." - -#: builtin/mainmenu/tab_settings.lua src/settings_translation_file.cpp -msgid "Tone Mapping" -msgstr "Toneoversættelse" - -#: builtin/mainmenu/tab_settings.lua -msgid "Touchthreshold (px)" -msgstr "Føletærskel (px)" - -#: builtin/mainmenu/tab_settings.lua -msgid "Trilinear Filter" -msgstr "Tri-lineær filtréring" - -#: builtin/mainmenu/tab_settings.lua -msgid "Waving Leaves" -msgstr "Bølgende blade" - -#: builtin/mainmenu/tab_settings.lua -msgid "Waving Plants" -msgstr "Bølgende planter" - -#: builtin/mainmenu/tab_settings.lua -msgid "Waving Water" -msgstr "Bølgende vand" - -#: builtin/mainmenu/tab_settings.lua -msgid "Yes" -msgstr "Ja" - -#: builtin/mainmenu/tab_simple_main.lua -msgid "Config mods" -msgstr "Konfigurér mods" - -#: builtin/mainmenu/tab_simple_main.lua -msgid "Main" -msgstr "Hovedmenu" - -#: builtin/mainmenu/tab_simple_main.lua -msgid "Start Singleplayer" -msgstr "Enlig spiller" - -#: builtin/mainmenu/tab_texturepacks.lua -msgid "No information available" -msgstr "Der er ikke nogen information tilgængelig" - -#: builtin/mainmenu/tab_texturepacks.lua -msgid "Select texture pack:" -msgstr "Vælg teksturpakke:" - -#: builtin/mainmenu/tab_texturepacks.lua -msgid "Texturepacks" -msgstr "Teksturpakker" - -#: src/client.cpp -msgid "Connection timed out." -msgstr "Forbindelses fejl (tidsfristen udløb)." - -#: src/client.cpp -msgid "Done!" -msgstr "Færdig!" - -#: src/client.cpp -msgid "Initializing nodes" -msgstr "Initialiserer noder" - -#: src/client.cpp -msgid "Initializing nodes..." -msgstr "Initialiserer noder..." - -#: src/client.cpp -msgid "Loading textures..." -msgstr "Indlæser teksturer..." - -#: src/client.cpp -msgid "Rebuilding shaders..." -msgstr "Genbygger dybdeskabere ..." - -#: src/client/clientlauncher.cpp -msgid "Connection error (timed out?)" -msgstr "Forbindelses fejl (udløbelse af tidsfrist?)" - -#: src/client/clientlauncher.cpp -msgid "Could not find or load game \"" -msgstr "Kunne ikke finde eller indlæse spil \"" - -#: src/client/clientlauncher.cpp -msgid "Invalid gamespec." -msgstr "Ugyldig spilspecifikationer." - -#: src/client/clientlauncher.cpp -msgid "Main Menu" -msgstr "Hovedmenu" - -#: src/client/clientlauncher.cpp -msgid "No world selected and no address provided. Nothing to do." -msgstr "" -"Ingen verden valgt og ingen adresse angivet. Der er ikke noget at gøre." - -#: src/client/clientlauncher.cpp -msgid "Player name too long." -msgstr "Spillerens navn er for langt." - -#: src/client/clientlauncher.cpp -msgid "Please choose a name!" -msgstr "" - -#: src/client/clientlauncher.cpp -msgid "Provided world path doesn't exist: " -msgstr "Angivne sti til verdenen findes ikke: " - -#: src/fontengine.cpp -msgid "needs_fallback_font" -msgstr "kræver_reserve_skrifttype" - -#: src/game.cpp -msgid "" -"\n" -"Check debug.txt for details." -msgstr "" -"\n" -"Tjek debug.txt for detaljer." - -#: src/game.cpp -#, fuzzy -msgid "- Address: " -msgstr "Bind adresse" - -#: src/game.cpp -#, fuzzy -msgid "- Creative Mode: " -msgstr "Kreativ tilstand" - -#: src/game.cpp -#, fuzzy -msgid "- Damage: " -msgstr "Skade" - -#: src/game.cpp -msgid "- Mode: " -msgstr "" - -#: src/game.cpp -#, fuzzy -msgid "- Port: " -msgstr "Port" - -#: src/game.cpp -#, fuzzy -msgid "- Public: " -msgstr "Offentlig" - -#: src/game.cpp -msgid "- PvP: " -msgstr "" - -#: src/game.cpp -#, fuzzy -msgid "- Server Name: " -msgstr "Servernavn" - -#: src/game.cpp -msgid "Change Keys" -msgstr "Skift tastatur-bindinger" - -#: src/game.cpp -msgid "Change Password" -msgstr "Skift kodeord" - -#: src/game.cpp -msgid "Connecting to server..." -msgstr "Forbinder til server..." - -#: src/game.cpp -msgid "Continue" -msgstr "Fortsæt" - -#: src/game.cpp -#, fuzzy, c-format -msgid "" -"Controls:\n" -"- %s: move forwards\n" -"- %s: move backwards\n" -"- %s: move left\n" -"- %s: move right\n" -"- %s: jump/climb\n" -"- %s: sneak/go down\n" -"- %s: drop item\n" -"- %s: inventory\n" -"- Mouse: turn/look\n" -"- Mouse left: dig/punch\n" -"- Mouse right: place/use\n" -"- Mouse wheel: select item\n" -"- %s: chat\n" -msgstr "" -"Standardstyring:\n" -"- WASD: Bevæge sig rundt\n" -"- Mellemrumstast: Hoppe/klatre\n" -"- Skift: Snige/gå nedad\n" -"- Q: Smide genstand\n" -"- I: Medbragt\n" -"- Mus: Vende rundt/kigge\n" -"- Mus venstre: Grave/slå\n" -"- Mus højre: Placere/bruge\n" -"- Musehjul: Vælge genstand\n" -"- T: Snakke (chat)\n" - -#: src/game.cpp -msgid "Creating client..." -msgstr "Opretter klient ..." - -#: src/game.cpp -msgid "Creating server..." -msgstr "Opretter server ..." - -#: src/game.cpp -msgid "" -"Default Controls:\n" -"No menu visible:\n" -"- single tap: button activate\n" -"- double tap: place/use\n" -"- slide finger: look around\n" -"Menu/Inventory visible:\n" -"- double tap (outside):\n" -" -->close\n" -"- touch stack, touch slot:\n" -" --> move stack\n" -"- touch&drag, tap 2nd finger\n" -" --> place single item to slot\n" -msgstr "" -"Standardstyring:\n" -"Ingen menu synlig:\n" -"- Enkelt tryk: Aktivér knap\n" -"- Dobbelt tryk: Placér/brug\n" -"- Stryg finger: Kig rundt\n" -"Menu/Medbragt synlig:\n" -"- Dobbelt tryk (uden for):\n" -" --> Luk\n" -"- Rør ved stakken, rør ved felt:\n" -" --> Flyt stakken\n" -"- Rør ved og træk, tryk med 2. finger\n" -" --> Placér enkelt genstand på feltet\n" - -#: src/game.cpp -msgid "Exit to Menu" -msgstr "Afslut til menu" - -#: src/game.cpp -msgid "Exit to OS" -msgstr "Afslut til operativsystemet" - -#: src/game.cpp -msgid "Game info:" -msgstr "" - -#: src/game.cpp -#, fuzzy -msgid "Game paused" -msgstr "Spil" - -#: src/game.cpp -#, fuzzy -msgid "Hosting server" -msgstr "Opretter server ..." - -#: src/game.cpp -msgid "Item definitions..." -msgstr "Elementdefinitioner ..." - -#: src/game.cpp -msgid "KiB/s" -msgstr "KiB/s" - -#: src/game.cpp -msgid "Media..." -msgstr "Medier..." - -#: src/game.cpp -msgid "MiB/s" -msgstr "MiB/s" - -#: src/game.cpp -msgid "Node definitions..." -msgstr "Knudepunktsdefinitioner ..." - -#: src/game.cpp -msgid "Off" -msgstr "" - -#: src/game.cpp -msgid "On" -msgstr "" - -#: src/game.cpp -#, fuzzy -msgid "Remote server" -msgstr "Fjernport" - -#: src/game.cpp -msgid "Resolving address..." -msgstr "Slår adresse op ..." - -#: src/game.cpp -msgid "Shutting down..." -msgstr "Lukker ned..." - -#: src/game.cpp -msgid "Singleplayer" -msgstr "Enlig spiller" - -#: src/game.cpp -msgid "Sound Volume" -msgstr "Lydniveau" - -#: src/game.cpp -#, c-format -msgid "Volume changed to %d%%" -msgstr "" - -#: src/game.cpp -msgid "Volume changed to 0%" -msgstr "" - -#: src/game.cpp -msgid "Volume changed to 100%" -msgstr "" - -#: src/game.cpp src/guiFormSpecMenu.cpp -msgid "ok" -msgstr "ok" - -#: src/guiFormSpecMenu.cpp -msgid "Enter " -msgstr " " - -#: src/guiFormSpecMenu.cpp -msgid "Proceed" -msgstr "Fortsæt" - -#: src/guiKeyChangeMenu.cpp -msgid "\"Use\" = climb down" -msgstr "\"Brug\" = klatre ned" - -#: src/guiKeyChangeMenu.cpp -msgid "Backward" -msgstr "Baglæns" - -#: src/guiKeyChangeMenu.cpp -msgid "Chat" -msgstr "Snak" - -#: src/guiKeyChangeMenu.cpp -msgid "Command" -msgstr "Kommando" - -#: src/guiKeyChangeMenu.cpp -msgid "Console" -msgstr "Konsol" - -#: src/guiKeyChangeMenu.cpp -msgid "Dec. volume" -msgstr "" - -#: src/guiKeyChangeMenu.cpp -msgid "Double tap \"jump\" to toggle fly" -msgstr "" -"Tryk på \"hop\" hurtigt to gange for at skifte frem og tilbage mellem flyve-" -"tilstand" - -#: src/guiKeyChangeMenu.cpp -msgid "Drop" -msgstr "Slip" - -#: src/guiKeyChangeMenu.cpp -msgid "Forward" -msgstr "Fremad" - -#: src/guiKeyChangeMenu.cpp -#, fuzzy -msgid "Inc. volume" -msgstr "Lydniveau" - -#: src/guiKeyChangeMenu.cpp -msgid "Inventory" -msgstr "Beholdning" - -#: src/guiKeyChangeMenu.cpp -msgid "Jump" -msgstr "Hop" - -#: src/guiKeyChangeMenu.cpp -msgid "Key already in use" -msgstr "Tast allerede i brug" - -#: src/guiKeyChangeMenu.cpp -msgid "Keybindings. (If this menu screws up, remove stuff from minetest.conf)" -msgstr "" -"Tastebindinger. (Hvis denne menu fucker op, fjern elementer fra minetest." -"conf)" - -#: src/guiKeyChangeMenu.cpp src/keycode.cpp -msgid "Left" -msgstr "Venstre" - -#: src/guiKeyChangeMenu.cpp -#, fuzzy -msgid "Local command" -msgstr "Snakkekommandoer" - -#: src/guiKeyChangeMenu.cpp -msgid "Mute" -msgstr "" - -#: src/guiKeyChangeMenu.cpp -#, fuzzy -msgid "Next item" -msgstr "Næste" - -#: src/guiKeyChangeMenu.cpp -msgid "Prev. item" -msgstr "" - -#: src/guiKeyChangeMenu.cpp src/settings_translation_file.cpp -msgid "Print stacks" -msgstr "Udskriv stakke" - -#: src/guiKeyChangeMenu.cpp -msgid "Range select" -msgstr "Afstands vælg" - -#: src/guiKeyChangeMenu.cpp src/keycode.cpp -msgid "Right" -msgstr "Højre" - -#: src/guiKeyChangeMenu.cpp -msgid "Sneak" -msgstr "Snige" - -#: src/guiKeyChangeMenu.cpp -msgid "Toggle Cinematic" -msgstr "Aktiver filmisk" - -#: src/guiKeyChangeMenu.cpp -msgid "Toggle fast" -msgstr "Omstil hurtig" - -#: src/guiKeyChangeMenu.cpp -msgid "Toggle fly" -msgstr "Omstil flyvning" - -#: src/guiKeyChangeMenu.cpp -msgid "Toggle noclip" -msgstr "Omstil fylde" - -#: src/guiKeyChangeMenu.cpp -msgid "Use" -msgstr "Brug" - -#: src/guiKeyChangeMenu.cpp src/keycode.cpp -msgid "Zoom" -msgstr "Zoom" - -#: src/guiKeyChangeMenu.cpp -msgid "press key" -msgstr "Tryk på en tast" - -#: src/guiPasswordChange.cpp -msgid "Change" -msgstr "Skift" - -#: src/guiPasswordChange.cpp -msgid "Confirm Password" -msgstr "Bekræft kodeord" - -#: src/guiPasswordChange.cpp -msgid "New Password" -msgstr "Nyt kodeord" - -#: src/guiPasswordChange.cpp -msgid "Old Password" -msgstr "Gammelt kodeord" - -#: src/guiPasswordChange.cpp -msgid "Passwords do not match!" -msgstr "Kodeordene er ikke ens!" - -#: src/guiVolumeChange.cpp -msgid "Exit" -msgstr "Afslut" - -#: src/guiVolumeChange.cpp -msgid "Sound Volume: " -msgstr "Lydstyrke: " - -#: src/keycode.cpp -msgid "Apps" -msgstr "Prg." - -#: src/keycode.cpp -msgid "Back" -msgstr "Tilbage" - -#: src/keycode.cpp -msgid "Caps Lock" -msgstr "" - -#: src/keycode.cpp -msgid "Clear" -msgstr "Ryd" - -#: src/keycode.cpp -msgid "Control" -msgstr "Control" - -#: src/keycode.cpp -msgid "Down" -msgstr "Ned" - -#: src/keycode.cpp -msgid "End" -msgstr "End" - -#: src/keycode.cpp -#, fuzzy -msgid "Erase EOF" -msgstr "Udvisk Slut-På-Fil" - -#: src/keycode.cpp -msgid "Execute" -msgstr "Eksekvér" - -#: src/keycode.cpp -msgid "Help" -msgstr "Hjælp" - -#: src/keycode.cpp -msgid "Home" -msgstr "Home" - -#: src/keycode.cpp -#, fuzzy -msgid "IME Accept" -msgstr "Accepter" - -#: src/keycode.cpp -#, fuzzy -msgid "IME Convert" -msgstr "Konvertér" - -#: src/keycode.cpp -#, fuzzy -msgid "IME Escape" -msgstr "Escape" - -#: src/keycode.cpp -#, fuzzy -msgid "IME Mode Change" -msgstr "Tilstandsskift" - -#: src/keycode.cpp -#, fuzzy -msgid "IME Nonconvert" -msgstr "Nonconvert" - -#: src/keycode.cpp -msgid "Insert" -msgstr "Insert" - -#: src/keycode.cpp -msgid "Left Button" -msgstr "Venstre knap" - -#: src/keycode.cpp -msgid "Left Control" -msgstr "Venstre Control" - -#: src/keycode.cpp -msgid "Left Menu" -msgstr "Venstre Menu" - -#: src/keycode.cpp -msgid "Left Shift" -msgstr "Venstre Skift" - -#: src/keycode.cpp -msgid "Left Windows" -msgstr "Venstre meta" - -#: src/keycode.cpp -msgid "Menu" -msgstr "Menu" - -#: src/keycode.cpp -msgid "Middle Button" -msgstr "Midterste knap" - -#: src/keycode.cpp -msgid "Next" -msgstr "Næste" - -#: src/keycode.cpp -msgid "Num Lock" -msgstr "Num Lock" - -#: src/keycode.cpp -msgid "Numpad *" -msgstr "Numpad *" - -#: src/keycode.cpp -msgid "Numpad +" -msgstr "Numpad +" - -#: src/keycode.cpp -msgid "Numpad -" -msgstr "Numpad -" - -#: src/keycode.cpp -#, fuzzy -msgid "Numpad ." -msgstr "Numpad *" - -#: src/keycode.cpp -msgid "Numpad /" -msgstr "Numpad /" - -#: src/keycode.cpp -msgid "Numpad 0" -msgstr "Numpad 0" - -#: src/keycode.cpp -msgid "Numpad 1" -msgstr "Numpad 1" - -#: src/keycode.cpp -msgid "Numpad 2" -msgstr "Numpad 2" - -#: src/keycode.cpp -msgid "Numpad 3" -msgstr "Numpad 3" - -#: src/keycode.cpp -msgid "Numpad 4" -msgstr "Numpad 4" - -#: src/keycode.cpp -msgid "Numpad 5" -msgstr "Numpad 5" - -#: src/keycode.cpp -msgid "Numpad 6" -msgstr "Numpad 6" - -#: src/keycode.cpp -msgid "Numpad 7" -msgstr "Numpad 7" - -#: src/keycode.cpp -msgid "Numpad 8" -msgstr "Numpad 8" - -#: src/keycode.cpp -msgid "Numpad 9" -msgstr "Numpad 9" - -#: src/keycode.cpp -msgid "OEM Clear" -msgstr "OEM Ryd" - -#: src/keycode.cpp -msgid "Pause" -msgstr "Pause" - -#: src/keycode.cpp -msgid "Play" -msgstr "Spil" - -#: src/keycode.cpp -msgid "Print" -msgstr "Udskriv" - -#: src/keycode.cpp -msgid "Prior" -msgstr "Foregående" - -#: src/keycode.cpp -msgid "Return" -msgstr "Enter" - -#: src/keycode.cpp -msgid "Right Button" -msgstr "Højre knap" - -#: src/keycode.cpp -msgid "Right Control" -msgstr "Højre Control" - -#: src/keycode.cpp -msgid "Right Menu" -msgstr "Højre Menu" - -#: src/keycode.cpp -msgid "Right Shift" -msgstr "Højre Skift" - -#: src/keycode.cpp -msgid "Right Windows" -msgstr "Højre meta" - -#: src/keycode.cpp -msgid "Scroll Lock" -msgstr "Scroll Lock" - -#: src/keycode.cpp -msgid "Select" -msgstr "Vælg" - -#: src/keycode.cpp -msgid "Shift" -msgstr "Shift" - -#: src/keycode.cpp -msgid "Sleep" -msgstr "Sov" - -#: src/keycode.cpp -msgid "Snapshot" -msgstr "Øjebliksbillede" - -#: src/keycode.cpp -msgid "Space" -msgstr "Mellemrum" - -#: src/keycode.cpp -msgid "Tab" -msgstr "Tabulator" - -#: src/keycode.cpp -msgid "Up" -msgstr "Op" - -#: src/keycode.cpp -msgid "X Button 1" -msgstr "X knap 1" - -#: src/keycode.cpp -msgid "X Button 2" -msgstr "X knap 2" - -#: src/settings_translation_file.cpp -msgid "" -"(X,Y,Z) offset of fractal from world centre in units of 'scale'.\n" -"Used to move a suitable spawn area of low land close to (0, 0).\n" -"The default is suitable for mandelbrot sets, it needs to be edited for julia " -"sets.\n" -"Range roughly -2 to 2. Multiply by 'scale' for offset in nodes." -msgstr "" -"(X,Y,Z)-forskydning for fraktal fra verdencentrum i enheder af »skala«.\n" -"Brugt til at flytte en egnet udlægning af lavt land tæt på (0, 0).\n" -"Standarden er egnet til mandelbrot-sæt, skal redigeres for julia-sæt.\n" -"Interval cirka -2 til 2. Gang med »skala« i knudepunkter." - -#: src/settings_translation_file.cpp -msgid "" -"0 = parallax occlusion with slope information (faster).\n" -"1 = relief mapping (slower, more accurate)." -msgstr "" -"0 = parallax-okklusion med kurveinformation (hurtigere).\n" -"1 = relief-oversættelse (langsommere, mere præcis)." - -#: src/settings_translation_file.cpp -msgid "3D clouds" -msgstr "3D-skyer" - -#: src/settings_translation_file.cpp -msgid "3D mode" -msgstr "3D-tilstand" - -#: src/settings_translation_file.cpp -msgid "3D noise defining giant caverns." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"3D noise defining mountain structure and height.\n" -"Also defines structure of floatland mountain terrain." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "3D noise defining structure of river canyon walls." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"3D support.\n" -"Currently supported:\n" -"- none: no 3d output.\n" -"- anaglyph: cyan/magenta color 3d.\n" -"- interlaced: odd/even line based polarisation screen support.\n" -"- topbottom: split screen top/bottom.\n" -"- sidebyside: split screen side by side.\n" -"- pageflip: quadbuffer based 3d." -msgstr "" -"Understøttelse af 3D.\n" -"Understøttet på nuværende tidspunkt:\n" -"- none: ingen 3d-udgang.\n" -"- anaglyph: cyan/magenta farve 3d.\n" -"- interlaced: ulige/lige linjebaseret polarisering for " -"skærmunderstøttelsen\n" -"- topbottom: opdel skærm top/bund.\n" -"- sidebyside: opdel skærm side om side.\n" -"- pageflip: quadbuffer baseret 3d." - -#: src/settings_translation_file.cpp -msgid "" -"A chosen map seed for a new map, leave empty for random.\n" -"Will be overridden when creating a new world in the main menu." -msgstr "" -"En valgt kortfødning for et nyt kort, efterlad tom for vilkårlig.\n" -"Vil blive overskrevet når en ny verden oprettes i hovedmenuen." - -#: src/settings_translation_file.cpp -msgid "A message to be displayed to all clients when the server crashes." -msgstr "Besked, som skal vises til alle klienter, når serveren går ned." - -#: src/settings_translation_file.cpp -msgid "A message to be displayed to all clients when the server shuts down." -msgstr "Besked, som skal vises til alle klienter, når serveren lukker ned." - -#: src/settings_translation_file.cpp -msgid "Absolute limit of emerge queues" -msgstr "Absolut begrænsning af fremkomstkøer" - -#: src/settings_translation_file.cpp -msgid "Acceleration in air" -msgstr "Acceleration i luft" - -#: src/settings_translation_file.cpp -msgid "Active Block Management interval" -msgstr "Aktiv blokhåndteringsinterval" - -#: src/settings_translation_file.cpp -msgid "Active Block Modifier interval" -msgstr "Aktivt blokændringsinterval" - -#: src/settings_translation_file.cpp -msgid "Active Block Modifiers" -msgstr "Aktive blokændringer" - -#: src/settings_translation_file.cpp -msgid "Active block range" -msgstr "Aktiv blokinterval" - -#: src/settings_translation_file.cpp -msgid "Active object send range" -msgstr "Aktivt objektafsendelsesinterval" - -#: src/settings_translation_file.cpp -msgid "" -"Address to connect to.\n" -"Leave this blank to start a local server.\n" -"Note that the address field in the main menu overrides this setting." -msgstr "" -"Adressen, der skal forbindes til.\n" -"Lad dette være tomt for at starte en lokal server.\n" -"Bemærk, at adressefeltet i hovedmenuen tilsidesætter denne indstilling." - -#: src/settings_translation_file.cpp -msgid "Adds particles when digging a node." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Adjust dpi configuration to your screen (non X11/Android only) e.g. for 4k " -"screens." -msgstr "" -"Justér DPI-konfigurationen til din skærm (ikke-X11 / kun Android) f.eks. til " -"4k-skærme." - -#: src/settings_translation_file.cpp -#, fuzzy -msgid "" -"Adjust the gamma encoding for the light tables. Higher numbers are " -"brighter.\n" -"This setting is for the client only and is ignored by the server." -msgstr "" -"Juster gammakodningen for lystabellerne. Et mindre tal betyder lysere.\n" -"Denne indstilling gælder kun for klienten og ignoreres af serveren." - -#: src/settings_translation_file.cpp -msgid "Advanced" -msgstr "Avanceret" - -#: src/settings_translation_file.cpp -msgid "Altitude Chill" -msgstr "Højdekulde" - -#: src/settings_translation_file.cpp -msgid "Always fly and fast" -msgstr "Flyv altid og hurtigt" - -#: src/settings_translation_file.cpp -msgid "Ambient occlusion gamma" -msgstr "Ambient okklusiongamma" - -#: src/settings_translation_file.cpp -msgid "Amplifies the valleys" -msgstr "Forstærker dalene" - -#: src/settings_translation_file.cpp -msgid "" -"Android systems only: Tries to create inventory textures from meshes\n" -"when no supported render was found." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Anisotropic filtering" -msgstr "Anisotropisk filtrering" - -#: src/settings_translation_file.cpp -msgid "Announce server" -msgstr "Meddelelsesserver" - -#: src/settings_translation_file.cpp -msgid "" -"Announce to this serverlist.\n" -"If you want to announce your ipv6 address, use serverlist_url = v6.servers." -"minetest.net." -msgstr "" -"Meddel på denne serverliste\n" -"Hvis du ønsker at annoncere din ipv6-adresse, så brug serverlist_url = v6." -"servers.minetest.net." - -#: src/settings_translation_file.cpp -msgid "Apple trees noise" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Approximate (X,Y,Z) scale of fractal in nodes." -msgstr "Omtrentlig (X, Y, Z) fraktalskala i knudepunkter." - -#: src/settings_translation_file.cpp -msgid "Ask to reconnect after crash" -msgstr "Spørg om at forbinde igen efter nedbrud" - -#: src/settings_translation_file.cpp -msgid "" -"At this distance the server will aggressively optimize which blocks are sent " -"to clients.\n" -"Small values potentially improve performance a lot, at the expense of " -"visible rendering glitches.\n" -"(some blocks will not be rendered under water and in caves, as well as " -"sometimes on land)\n" -"Setting this to a value greater than max_block_send_distance disables this " -"optimization.\n" -"Stated in mapblocks (16 nodes)" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Automaticaly report to the serverlist." -msgstr "Rapporter automatisk til serverlisten." - -#: src/settings_translation_file.cpp -msgid "Autorun key" -msgstr "Tast til automatisk løb" - -#: src/settings_translation_file.cpp -msgid "Backward key" -msgstr "Tilbage-tast" - -#: src/settings_translation_file.cpp -msgid "Base terrain height" -msgstr "Baseterrænhøjde" - -#: src/settings_translation_file.cpp -msgid "Basic" -msgstr "Grundlæggende" - -#: src/settings_translation_file.cpp -msgid "Basic Privileges" -msgstr "Grundlæggende privilegier" - -#: src/settings_translation_file.cpp -msgid "Beach noise" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Beach noise threshold" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Bilinear filtering" -msgstr "Bilineær filtrering" - -#: src/settings_translation_file.cpp -msgid "Bind address" -msgstr "Bind adresse" - -#: src/settings_translation_file.cpp -#, fuzzy -msgid "Biome API temperature and humidity noise parameters" -msgstr "Støjparametre for biotopfugtighed for Mapgen" - -#: src/settings_translation_file.cpp -#, fuzzy -msgid "Biome noise" -msgstr "Flodstøj" - -#: src/settings_translation_file.cpp -msgid "Bits per pixel (aka color depth) in fullscreen mode." -msgstr "Bit per billedpunkt (a.k.a. farvedybde) i fuldskærmtilstand." - -#: src/settings_translation_file.cpp -msgid "Build inside player" -msgstr "Byg intern spiller" - -#: src/settings_translation_file.cpp -msgid "Builtin" -msgstr "Indbygget" - -#: src/settings_translation_file.cpp -#, fuzzy -msgid "Bumpmapping" -msgstr "Mip-mapping" - -#: src/settings_translation_file.cpp -msgid "Camera smoothing" -msgstr "Kameraudjævning" - -#: src/settings_translation_file.cpp -msgid "Camera smoothing in cinematic mode" -msgstr "Kameraudjævning i biograftilstand" - -#: src/settings_translation_file.cpp -msgid "Camera update toggle key" -msgstr "Tast til ændring af kameraopdatering" - -#: src/settings_translation_file.cpp -#, fuzzy -msgid "Cave noise" -msgstr "Hulestøj #1" - -#: src/settings_translation_file.cpp -msgid "Cave noise #1" -msgstr "Hulestøj #1" - -#: src/settings_translation_file.cpp -msgid "Cave noise #2" -msgstr "Hulestøj #2" - -#: src/settings_translation_file.cpp -msgid "Cave width" -msgstr "Grottebredde" - -#: src/settings_translation_file.cpp -#, fuzzy -msgid "Cave1 noise" -msgstr "Hulestøj #1" - -#: src/settings_translation_file.cpp -#, fuzzy -msgid "Cave2 noise" -msgstr "Hulestøj #1" - -#: src/settings_translation_file.cpp -#, fuzzy -msgid "Cavern limit" -msgstr "Grottebredde" - -#: src/settings_translation_file.cpp -#, fuzzy -msgid "Cavern noise" -msgstr "Hulestøj #1" - -#: src/settings_translation_file.cpp -msgid "Cavern taper" -msgstr "" - -#: src/settings_translation_file.cpp -#, fuzzy -msgid "Cavern threshold" -msgstr "Flad bakketærskel for Mapgen" - -#: src/settings_translation_file.cpp -msgid "Caves and tunnels form at the intersection of the two noises" -msgstr "Huler og tunneler dannes ved skæringspunktet for de to støjkilder" - -#: src/settings_translation_file.cpp -msgid "Chat key" -msgstr "Snakketast" - -#: src/settings_translation_file.cpp -msgid "Chat toggle key" -msgstr "Tast for snak (chat)" - -#: src/settings_translation_file.cpp -msgid "Chatcommands" -msgstr "Snakkekommandoer" - -#: src/settings_translation_file.cpp -msgid "" -"Choice of 18 fractals from 9 formulas.\n" -"1 = 4D \"Roundy\" mandelbrot set.\n" -"2 = 4D \"Roundy\" julia set.\n" -"3 = 4D \"Squarry\" mandelbrot set.\n" -"4 = 4D \"Squarry\" julia set.\n" -"5 = 4D \"Mandy Cousin\" mandelbrot set.\n" -"6 = 4D \"Mandy Cousin\" julia set.\n" -"7 = 4D \"Variation\" mandelbrot set.\n" -"8 = 4D \"Variation\" julia set.\n" -"9 = 3D \"Mandelbrot/Mandelbar\" mandelbrot set.\n" -"10 = 3D \"Mandelbrot/Mandelbar\" julia set.\n" -"11 = 3D \"Christmas Tree\" mandelbrot set.\n" -"12 = 3D \"Christmas Tree\" julia set.\n" -"13 = 3D \"Mandelbulb\" mandelbrot set.\n" -"14 = 3D \"Mandelbulb\" julia set.\n" -"15 = 3D \"Cosine Mandelbulb\" mandelbrot set.\n" -"16 = 3D \"Cosine Mandelbulb\" julia set.\n" -"17 = 4D \"Mandelbulb\" mandelbrot set.\n" -"18 = 4D \"Mandelbulb\" julia set." -msgstr "" -"Valg af 18 fraktaler fra 9 formler.\n" -"1 = 4D »Roundy« mandelbrot-sæt.\n" -"2 = 4D »Roundy« julia-sæt.\n" -"3 = 4D »Squarry« mandelbrot-sæt.\n" -"4 = 4D »Squarry\" julia-sæt.\n" -"5 = 4D »Mandy Cousin« mandelbrot-sæt.\n" -"6 = 4D »Mandy Cousin« julia-sæt.\n" -"7 = 4D »Variation« mandelbrot-sæt.\n" -"8 = 4D »Variation« julia-sæt.\n" -"9 = 3D »Mandelbrot/Mandelbar« mandelbrot-sæt.\n" -"10 = 3D »Mandelbrot/Mandelbar« julia-sæt.\n" -"11 = 3D »Christmas Tree« mandelbrot-sæt.\n" -"12 = 3D »Christmas Tree« julia-sæt.\n" -"13 = 3D »Mandelbulb« mandelbrot-sæt.\n" -"14 = 3D »Mandelbulb« julia-sæt.\n" -"15 = 3D »Cosine Mandelbulb« mandelbrot-sæt.\n" -"16 = 3D »Cosine Mandelbulb« julia-sæt.\n" -"17 = 4D »Mandelbulb« mandelbrot-sæt.\n" -"18 = 4D »Mandelbulb« julia-sæt." - -#: src/settings_translation_file.cpp -msgid "Chunk size" -msgstr "Klumpstørrelse" - -#: src/settings_translation_file.cpp -msgid "Cinematic mode" -msgstr "Filmisk tilstand" - -#: src/settings_translation_file.cpp -msgid "Cinematic mode key" -msgstr "Tast for filmisk tilstand" - -#: src/settings_translation_file.cpp -msgid "Clean transparent textures" -msgstr "Rene gennemsigtige teksturer" - -#: src/settings_translation_file.cpp -msgid "Client" -msgstr "Klient" - -#: src/settings_translation_file.cpp -msgid "Client and Server" -msgstr "Klient og server" - -#: src/settings_translation_file.cpp -#, fuzzy -msgid "Client modding" -msgstr "Klient" - -#: src/settings_translation_file.cpp -msgid "Climbing speed" -msgstr "Klatringshastighed" - -#: src/settings_translation_file.cpp -msgid "Cloud height" -msgstr "Skyhøjde" - -#: src/settings_translation_file.cpp -msgid "Cloud radius" -msgstr "Skyradius" - -#: src/settings_translation_file.cpp -msgid "Clouds" -msgstr "Skyer" - -#: src/settings_translation_file.cpp -msgid "Clouds are a client side effect." -msgstr "Skyer er en klientsideeffekt." - -#: src/settings_translation_file.cpp -msgid "Clouds in menu" -msgstr "Skyer i menu" - -#: src/settings_translation_file.cpp -msgid "Colored fog" -msgstr "Farvet tåge" - -#: src/settings_translation_file.cpp -msgid "" -"Comma-separated list of mods that are allowed to access HTTP APIs, which\n" -"allow them to upload and download data to/from the internet." -msgstr "" -"Kommaadskilt liste af mod'er som har tilladelse til at tilgå HTTP API'er, " -"som\n" -"tillader dem at hente og overføre data fra internettet." - -#: src/settings_translation_file.cpp -msgid "" -"Comma-separated list of trusted mods that are allowed to access insecure\n" -"functions even when mod security is on (via request_insecure_environment())." -msgstr "" -"Kommaadskil liste over troværdige mod'er som har tilladelse til at tilgå " -"usikre\n" -"funktioner selv når mod-sikkerhed er aktiveret (via " -"request_insecure_environment())." - -#: src/settings_translation_file.cpp -msgid "Command key" -msgstr "Kommandotast" - -#: src/settings_translation_file.cpp -msgid "Connect glass" -msgstr "Forbind glas" - -#: src/settings_translation_file.cpp -msgid "Connect to external media server" -msgstr "Opret forbindelse til ekstern medieserver" - -#: src/settings_translation_file.cpp -msgid "Connects glass if supported by node." -msgstr "Forbinder glass hvis understøttet af knudepunkt." - -#: src/settings_translation_file.cpp -msgid "Console alpha" -msgstr "Konsolalfa" - -#: src/settings_translation_file.cpp -msgid "Console color" -msgstr "Konsolfarve" - -#: src/settings_translation_file.cpp -#, fuzzy -msgid "Console height" -msgstr "Konsoltast" - -#: src/settings_translation_file.cpp -msgid "Console key" -msgstr "Konsoltast" - -#: src/settings_translation_file.cpp -msgid "Continuous forward" -msgstr "Kontinuerlig fremad" - -#: src/settings_translation_file.cpp -msgid "Continuous forward movement (only used for testing)." -msgstr "Kontinuerlig bevægelse fremad (bruges kun til test)." - -#: src/settings_translation_file.cpp -msgid "Controls" -msgstr "Styring" - -#: src/settings_translation_file.cpp -msgid "" -"Controls length of day/night cycle.\n" -"Examples: 72 = 20min, 360 = 4min, 1 = 24hour, 0 = day/night/whatever stays " -"unchanged." -msgstr "" -"Styrer længden af dag-/natcyklussen.\n" -"Eksempler: 72 = 20 min, 360 = 4 min, 1 = 24 timer, 0 = dag/nat/hvad som " -"helst forbliver uændret." - -#: src/settings_translation_file.cpp -msgid "Controls steepness/depth of lake depressions." -msgstr "Kontrollerer hældning/dybe for sødybder." - -#: src/settings_translation_file.cpp -msgid "Controls steepness/height of hills." -msgstr "Styrer stejlheden/højden af bakkerne." - -#: src/settings_translation_file.cpp -msgid "" -"Controls the density of floatland mountain terrain.\n" -"Is an offset added to the 'np_mountain' noise value." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Controls width of tunnels, a smaller value creates wider tunnels." -msgstr "Styrer bredden af tunneller. En lavere værdi giver bredere tunneller." - -#: src/settings_translation_file.cpp -msgid "Crash message" -msgstr "Nedbrudsbesked" - -#: src/settings_translation_file.cpp -msgid "" -"Creates unpredictable lava features in caves.\n" -"These can make mining difficult. Zero disables them. (0-10)" -msgstr " " - -#: src/settings_translation_file.cpp -msgid "" -"Creates unpredictable water features in caves.\n" -"These can make mining difficult. Zero disables them. (0-10)" -msgstr "" -"Opretter uforudsigelige vandfunktioner i huler.\n" -"Disse kan gøre vanskeliggøre minedrift. Nul deaktiverer dem (0-10)" - -#: src/settings_translation_file.cpp -#, fuzzy -msgid "Creative" -msgstr "Skab" - -#: src/settings_translation_file.cpp -msgid "Crosshair alpha" -msgstr "Crosshair alpha" - -#: src/settings_translation_file.cpp -msgid "Crosshair alpha (opaqueness, between 0 and 255)." -msgstr "Crosshair alpha (uigennemsigtighed, mellem 0 og 255)." - -#: src/settings_translation_file.cpp -msgid "Crosshair color" -msgstr "Crosshair-farve" - -#: src/settings_translation_file.cpp -msgid "Crosshair color (R,G,B)." -msgstr "Crosshair-farve (R,G,B)." - -#: src/settings_translation_file.cpp -msgid "Crouch speed" -msgstr "Krybehastighed" - -#: src/settings_translation_file.cpp -msgid "DPI" -msgstr "DPI" - -#: src/settings_translation_file.cpp -msgid "Damage" -msgstr "Skade" - -#: src/settings_translation_file.cpp -msgid "Debug info toggle key" -msgstr "Tast til aktivering af fejlsøgningsinfo" - -#: src/settings_translation_file.cpp -msgid "Debug log level" -msgstr "Logniveau for fejlsøgning" - -#: src/settings_translation_file.cpp -#, fuzzy -msgid "Dec. volume key" -msgstr "Tast for HUD" - -#: src/settings_translation_file.cpp -msgid "Dedicated server step" -msgstr "Dedikeret server-trin" - -#: src/settings_translation_file.cpp -msgid "Default acceleration" -msgstr "Standardacceleration" - -#: src/settings_translation_file.cpp -msgid "Default game" -msgstr "Standard spil" - -#: src/settings_translation_file.cpp -msgid "" -"Default game when creating a new world.\n" -"This will be overridden when creating a world from the main menu." -msgstr "Standard spil, når du skaber en ny verden." - -#: src/settings_translation_file.cpp -msgid "Default password" -msgstr "Standardadgangskode" - -#: src/settings_translation_file.cpp -msgid "Default privileges" -msgstr "Standardprivilegier" - -#: src/settings_translation_file.cpp -msgid "Default report format" -msgstr "Standardformat for rapport" - -#: src/settings_translation_file.cpp -msgid "" -"Default timeout for cURL, stated in milliseconds.\n" -"Only has an effect if compiled with cURL." -msgstr "" -"Standardtidsudløb for cURL, angivet i millisekunder.\n" -"Har kun effekt hvis kompileret med cURL." - -#: src/settings_translation_file.cpp -msgid "Defines areas of 'terrain_higher' (cliff-top terrain)." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Defines areas of floatland smooth terrain.\n" -"Smooth floatlands occur when noise > 0." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Defines areas of higher (cliff-top) terrain and affects steepness of cliffs." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Defines areas where trees have apples." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Defines areas with sandy beaches." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Defines full size of caverns, smaller values create larger caverns." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Defines large-scale river channel structure." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Defines location and terrain of optional hills and lakes." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Defines sampling step of texture.\n" -"A higher value results in smoother normal maps." -msgstr "" -"Definerer sampling-trin for tekstur.\n" -"En højere værdi resulterer i en mere rullende normale kort." - -#: src/settings_translation_file.cpp -msgid "Defines the maximal player transfer distance in blocks (0 = unlimited)." -msgstr "" -"Definerer den maksimale spillerflytningsafstand i blokke (0 = ubegrænset)." - -#: src/settings_translation_file.cpp -msgid "Defines tree areas and tree density." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Delay between mesh updates on the client in ms. Increasing this will slow\n" -"down the rate of mesh updates, thus reducing jitter on slower clients." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Delay in sending blocks after building" -msgstr "Forsinkelse i afsendelse af blokke efter bygning" - -#: src/settings_translation_file.cpp -msgid "Delay showing tooltips, stated in milliseconds." -msgstr "Forsinkelse ved visning af værktøjsfif, angivet i millisekunder." - -#: src/settings_translation_file.cpp -msgid "Deprecated Lua API handling" -msgstr "Forældet Lua API-håndtering" - -#: src/settings_translation_file.cpp -msgid "Depth below which you'll find large caves." -msgstr "Dybde hvorunder du kan finde store huler." - -#: src/settings_translation_file.cpp -msgid "Depth below which you'll find massive caves." -msgstr "Dybde hvorunder du finder kæmpestore huler." - -#: src/settings_translation_file.cpp -msgid "Descending speed" -msgstr "Faldende hastighed" - -#: src/settings_translation_file.cpp -msgid "" -"Description of server, to be displayed when players join and in the " -"serverlist." -msgstr "" -"Beskrivelse af server, som vises når spillere tilslutter sig og i " -"serverlisten." - -#: src/settings_translation_file.cpp -msgid "Desert noise threshold" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Deserts occur when np_biome exceeds this value.\n" -"When the new biome system is enabled, this is ignored." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Desynchronize block animation" -msgstr "Afsynkroniser blokanimation" - -#: src/settings_translation_file.cpp -#, fuzzy -msgid "Digging particles" -msgstr "Partikler" - -#: src/settings_translation_file.cpp -msgid "Disable anticheat" -msgstr "Deaktiver antisnyd" - -#: src/settings_translation_file.cpp -msgid "Disable escape sequences" -msgstr "Deaktiver undvigesekvenser" - -#: src/settings_translation_file.cpp -msgid "" -"Disable escape sequences, e.g. chat coloring.\n" -"Use this if you want to run a server with pre-0.4.14 clients and you want to " -"disable\n" -"the escape sequences generated by mods." -msgstr "" -"Deaktiver undvigesekvenser, f.eks. snak-farvelægning.\n" -"Brug denne hvis du ønsker at afvikle en server med pre-0.4.14-klienter og du " -"ønsker\n" -"at deaktivere undvigesekvenserne oprettet af mod'er." - -#: src/settings_translation_file.cpp -msgid "Disallow empty passwords" -msgstr "Tillad ikke tomme adgangskoder" - -#: src/settings_translation_file.cpp -msgid "Domain name of server, to be displayed in the serverlist." -msgstr "Domænenavn for server, til visning i serverlisten." - -#: src/settings_translation_file.cpp -msgid "Double tap jump for fly" -msgstr "Tryk to gange på »hop« for at flyve" - -#: src/settings_translation_file.cpp -msgid "Double-tapping the jump key toggles fly mode." -msgstr "" -"Tryk på »hop« to gange for at skifte frem og tilbage fra flyvetilstand." - -#: src/settings_translation_file.cpp -msgid "Drop item key" -msgstr "Drop element-tast" - -#: src/settings_translation_file.cpp -msgid "Dump the mapgen debug infos." -msgstr "Dump mapgen-fejlsøgningsinfo." - -#: src/settings_translation_file.cpp -msgid "Enable Joysticks" -msgstr "Aktivér joysticks" - -#: src/settings_translation_file.cpp -msgid "" -"Enable Lua modding support on client.\n" -"This support is experimental and API can change." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Enable VBO" -msgstr "Aktiver VBO" - -#: src/settings_translation_file.cpp -msgid "Enable console window" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Enable creative mode for new created maps." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Enable mod security" -msgstr "Aktiver mod-sikkerhed" - -#: src/settings_translation_file.cpp -msgid "Enable players getting damage and dying." -msgstr "Aktiver at spillere kan skades og dø." - -#: src/settings_translation_file.cpp -msgid "Enable random user input (only used for testing)." -msgstr "Aktiver vilkårlig brugerinddata (kun til test)." - -#: src/settings_translation_file.cpp -msgid "" -"Enable smooth lighting with simple ambient occlusion.\n" -"Disable for speed or for different looks." -msgstr "" -"Aktiver blød lyssætning med simpel ambient okklusion.\n" -"Deaktiver for hastighed eller for anderledes udseender." - -#: src/settings_translation_file.cpp -msgid "" -"Enable to disallow old clients from connecting.\n" -"Older clients are compatible in the sense that they will not crash when " -"connecting\n" -"to new servers, but they may not support all new features that you are " -"expecting." -msgstr "" -"Aktiver for at nægte gamle klienter i at forbinde.\n" -"Ældre klienter er kompatible på den måde, at de ikke vil stoppe ved " -"tilkobling\n" -"til nye servere, men de understøtter ikke alle nye funktioner." - -#: src/settings_translation_file.cpp -msgid "" -"Enable usage of remote media server (if provided by server).\n" -"Remote servers offer a significantly faster way to download media (e.g. " -"textures)\n" -"when connecting to the server." -msgstr "" -"Aktiver brug af ekstern medieserver (hvis tilbudt af server).\n" -"Eksterne servere tilbyder en signifikant hurtigere måde at hente medier (f." -"eks. teksturer\n" -"ved forbindelse til serveren." - -#: src/settings_translation_file.cpp -#, fuzzy -msgid "Enable view bobbing" -msgstr "Faldrystelse" - -#: src/settings_translation_file.cpp -msgid "" -"Enable view bobbing and amount of view bobbing.\n" -"For example: 0 for no view bobbing; 1.0 for normal; 2.0 for double." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Enable/disable running an IPv6 server. An IPv6 server may be restricted\n" -"to IPv6 clients, depending on system configuration.\n" -"Ignored if bind_address is set." -msgstr "" -"Aktivere/deaktivere afvikling af en IPv6-server. En IPv6-server kan være " -"begrænset\n" -"til IPv6-klienter, afhængig af systemkonfiguration.\n" -"Ignoreret hvis bind_address er angivet." - -#: src/settings_translation_file.cpp -msgid "Enables animation of inventory items." -msgstr "Aktiverer animation af lagerelementer." - -#: src/settings_translation_file.cpp -msgid "" -"Enables bumpmapping for textures. Normalmaps need to be supplied by the " -"texture pack\n" -"or need to be auto-generated.\n" -"Requires shaders to be enabled." -msgstr "" -"Aktiverer bumpmapping for teksturer. Normalmaps skal være angivet af " -"teksturpakken\n" -"eller skal være automatisk oprettet.\n" -"Kræver at dybdeskabere er aktiveret." - -#: src/settings_translation_file.cpp -msgid "Enables caching of facedir rotated meshes." -msgstr "Aktiverer mellemlagring af facedir-roterede mesher." - -#: src/settings_translation_file.cpp -msgid "Enables filmic tone mapping" -msgstr "Aktiverer filmisk toneoversættelse" - -#: src/settings_translation_file.cpp -msgid "Enables minimap." -msgstr "Aktiverer minikort." - -#: src/settings_translation_file.cpp -msgid "" -"Enables on the fly normalmap generation (Emboss effect).\n" -"Requires bumpmapping to be enabled." -msgstr "" -"Aktiverer løbende normalmap-oprettelse (Emboss-effekt).\n" -"Kræver bumpmapping for at være aktiveret." - -#: src/settings_translation_file.cpp -msgid "" -"Enables parallax occlusion mapping.\n" -"Requires shaders to be enabled." -msgstr "" -"Aktiverer parallax-okklusionoversættelse.\n" -"Kræver at dybdeskabere er aktiveret." - -#: src/settings_translation_file.cpp -msgid "Enables view bobbing when walking." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Engine profiling data print interval" -msgstr "Udskrivningsinterval for motorprofileringsdata" - -#: src/settings_translation_file.cpp -msgid "Entity methods" -msgstr "Entitetmetoder" - -#: src/settings_translation_file.cpp -msgid "" -"Experimental option, might cause visible spaces between blocks\n" -"when set to higher number than 0." -msgstr "" -"Eksperimentelt tilvalg, kan medføre synlige mellemrum mellem blokke\n" -"når angivet til et højere nummer end 0." - -#: src/settings_translation_file.cpp -msgid "FPS in pause menu" -msgstr "FPS i pausemenu" - -#: src/settings_translation_file.cpp -msgid "FSAA" -msgstr "FSAA" - -#: src/settings_translation_file.cpp -msgid "Factor noise" -msgstr "" - -#: src/settings_translation_file.cpp -#, fuzzy -msgid "Fall bobbing factor" -msgstr "Faldrystelse" - -#: src/settings_translation_file.cpp -msgid "Fallback font" -msgstr "Reserveskrifttype" - -#: src/settings_translation_file.cpp -msgid "Fallback font shadow" -msgstr "Skygge for reserveskrifttypen" - -#: src/settings_translation_file.cpp -msgid "Fallback font shadow alpha" -msgstr "Skyggealfa for reserveskrifttypen" - -#: src/settings_translation_file.cpp -msgid "Fallback font size" -msgstr "Størrelse for reserveskrifttypen" - -#: src/settings_translation_file.cpp -msgid "Fast key" -msgstr "Hurtigtast" - -#: src/settings_translation_file.cpp -msgid "Fast mode acceleration" -msgstr "Hurtig tilstandsacceleration" - -#: src/settings_translation_file.cpp -msgid "Fast mode speed" -msgstr "Hurtig tilstandshastighed" - -#: src/settings_translation_file.cpp -msgid "Fast movement" -msgstr "Hurtig bevægelse" - -#: src/settings_translation_file.cpp -msgid "" -"Fast movement (via use key).\n" -"This requires the \"fast\" privilege on the server." -msgstr "" -"Hurtig bevægelse (via tast).\n" -"Dette kræver privilegiet »fast« på serveren." - -#: src/settings_translation_file.cpp -msgid "Field of view" -msgstr "Visningsområde" - -#: src/settings_translation_file.cpp -msgid "Field of view for zoom" -msgstr "Zoom for visningsområde" - -#: src/settings_translation_file.cpp -msgid "Field of view in degrees." -msgstr "Visningsområde i grader." - -#: src/settings_translation_file.cpp -msgid "" -"Field of view while zooming in degrees.\n" -"This requires the \"zoom\" privilege on the server." -msgstr "" -"Visningsområde under zoom i grader.\n" -"Dette kræver privilegiet »zoom« på serveren." - -#: src/settings_translation_file.cpp -msgid "" -"File in client/serverlist/ that contains your favorite servers displayed in " -"the Multiplayer Tab." -msgstr "" -"Fil i client/serverlist/ som indeholder dine favoritservere vist i " -"fanebladet for flere spillere." - -#: src/settings_translation_file.cpp -msgid "Filler Depth" -msgstr "Fyldstofdybde" - -#: src/settings_translation_file.cpp -#, fuzzy -msgid "Filler depth noise" -msgstr "Fyldstofdybde" - -#: src/settings_translation_file.cpp -msgid "Filmic tone mapping" -msgstr "Filmisk toneoversættelse" - -#: src/settings_translation_file.cpp -msgid "" -"Filtered textures can blend RGB values with fully-transparent neighbors,\n" -"which PNG optimizers usually discard, sometimes resulting in a dark or\n" -"light edge to transparent textures. Apply this filter to clean that up\n" -"at texture load time." -msgstr "" -"Filtrerede teksturer kan blande RGB-værdier med fuldt gennemsigtige naboer,\n" -"som PNG-optimeringsprogrammer normalt fjerner, undertiden resulterende i " -"en \n" -"mørk eller lys kant for gennemsigtige teksturer. Anvend dette filter for at " -"rydde\n" -"op i dette på indlæsningstidspunktet for tekstur." - -#: src/settings_translation_file.cpp -msgid "Filtering" -msgstr "Filtrering" - -#: src/settings_translation_file.cpp -msgid "First of 2 3D noises that together define tunnels." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Fixed map seed" -msgstr "Fast kortfødning" - -#: src/settings_translation_file.cpp -msgid "Floatland base height noise" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Floatland base noise" -msgstr "" - -#: src/settings_translation_file.cpp -#, fuzzy -msgid "Floatland level" -msgstr "Vandstand" - -#: src/settings_translation_file.cpp -msgid "Floatland mountain density" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Floatland mountain height" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Fly key" -msgstr "Flyvetast" - -#: src/settings_translation_file.cpp -msgid "Flying" -msgstr "Flyver" - -#: src/settings_translation_file.cpp -msgid "Fog" -msgstr "Tåge" - -#: src/settings_translation_file.cpp -msgid "Fog Start" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Fog toggle key" -msgstr "Tast for tåge" - -#: src/settings_translation_file.cpp -msgid "Font path" -msgstr "Sti til font" - -#: src/settings_translation_file.cpp -msgid "Font shadow" -msgstr "Fontskygge" - -#: src/settings_translation_file.cpp -msgid "Font shadow alpha" -msgstr "Alfa for skrifttypeskygge" - -#: src/settings_translation_file.cpp -msgid "Font shadow alpha (opaqueness, between 0 and 255)." -msgstr "Alfa for skrifttypeskygge (uigennemsigtighed, mellem 0 og 255)." - -#: src/settings_translation_file.cpp -msgid "Font shadow offset, if 0 then shadow will not be drawn." -msgstr "" -"Forskydning for skrifttypeskygge, hvis 0 så vil skygge ikke blive tegnet." - -#: src/settings_translation_file.cpp -msgid "Font size" -msgstr "Skriftstørrelse" - -#: src/settings_translation_file.cpp -msgid "Format of screenshots." -msgstr "Format for skærmbilleder." - -#: src/settings_translation_file.cpp -msgid "Forward key" -msgstr "Fremadtast" - -#: src/settings_translation_file.cpp -msgid "Fractal type" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Fraction of the visible distance at which fog starts to be rendered" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Freetype fonts" -msgstr "Freetype-skrifttyper" - -#: src/settings_translation_file.cpp -msgid "" -"From how far blocks are generated for clients, stated in mapblocks (16 " -"nodes)." -msgstr "" -"Fra hvor langt væk blokke oprettes for klienten, angivet i kortblokke (16 " -"knudepunkter)." - -#: src/settings_translation_file.cpp -msgid "" -"From how far blocks are sent to clients, stated in mapblocks (16 nodes)." -msgstr "" -"Fra hvor langt væk blokke sendes til klienter, angivet i kortblokke (16 " -"knudepunker)." - -#: src/settings_translation_file.cpp -msgid "" -"From how far clients know about objects, stated in mapblocks (16 nodes)." -msgstr "" -"Fra hvor langt væk klinter ved om objekter, angivet i kortblokke (16 " -"knudepunkter)." - -#: src/settings_translation_file.cpp -msgid "Full screen" -msgstr "Fuld skærm" - -#: src/settings_translation_file.cpp -msgid "Full screen BPP" -msgstr "Fuldskærm BPP" - -#: src/settings_translation_file.cpp -msgid "Fullscreen mode." -msgstr "Fuldskærmstilstand." - -#: src/settings_translation_file.cpp -msgid "GUI scaling" -msgstr "Skalering af grafisk brugerflade" - -#: src/settings_translation_file.cpp -msgid "GUI scaling filter" -msgstr "GUI-skaleringsfilter" - -#: src/settings_translation_file.cpp -msgid "GUI scaling filter txr2img" -msgstr "GUI-skaleringsfilter txr2img" - -#: src/settings_translation_file.cpp -msgid "Gamma" -msgstr "Gamma" - -#: src/settings_translation_file.cpp -msgid "General" -msgstr "Generelt" - -#: src/settings_translation_file.cpp -msgid "Generate normalmaps" -msgstr "Opret normalkort" - -#: src/settings_translation_file.cpp -msgid "Global callbacks" -msgstr "Globale tilbagekald" - -#: src/settings_translation_file.cpp -msgid "" -"Global map generation attributes.\n" -"In Mapgen v6 the 'decorations' flag controls all decorations except trees\n" -"and junglegrass, in all other mapgens this flag controls all decorations.\n" -"Flags that are not specified in the flag string are not modified from the " -"default.\n" -"Flags starting with 'no' are used to explicitly disable them." -msgstr "" -"Globale kortoprettelsesattributter.\n" -"I Mapgen v6 kontrollerer flaget »decorations« alle dekorationer undtagen " -"træer\n" -"og junglegræs, i alle andre mapgen'er kontrollerer dette flag alle " -"dekorationer.\n" -"Flag som ikke er angivet i flagstrengen ændres ikke fra standarden.\n" -"Flag startende med »no« (nej) bruges til eksplicit at deaktivere dem." - -#: src/settings_translation_file.cpp -msgid "Graphics" -msgstr "Grafik" - -#: src/settings_translation_file.cpp -msgid "Gravity" -msgstr "Tyngdekraft" - -#: src/settings_translation_file.cpp -#, fuzzy -msgid "Ground level" -msgstr "Flade grundniveauer for Mapgen" - -#: src/settings_translation_file.cpp -msgid "HTTP Mods" -msgstr "HTTP-Mod'er" - -#: src/settings_translation_file.cpp -msgid "HUD scale factor" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "HUD toggle key" -msgstr "Tast for HUD" - -#: src/settings_translation_file.cpp -msgid "" -"Handling for deprecated lua api calls:\n" -"- legacy: (try to) mimic old behaviour (default for release).\n" -"- log: mimic and log backtrace of deprecated call (default for debug).\n" -"- error: abort on usage of deprecated call (suggested for mod developers)." -msgstr "" -"Håndtering for forældede lua api-kald:\n" -"- legacy: (prøv at) efterligne gammel opførsel (standard for udgivelse).\n" -"- log: efterlign og log tilbagesporing for forældede kald (standard for " -"fejlsøgning).\n" -"- error: afbryd ved brug af forældede kald (foreslået af mod-udviklere)." - -#: src/settings_translation_file.cpp -msgid "" -"Have the profiler instrument itself:\n" -"* Instrument an empty function.\n" -"This estimates the overhead, that instrumentation is adding (+1 function " -"call).\n" -"* Instrument the sampler being used to update the statistics." -msgstr "" -"Få profilprogrammet til at instruere sig selv:\n" -"* Instruer en tom funktion.\n" -"Dette estimerer belastningen, som instrumenteringen tilføjer (+1 " -"funktionkald).\n" -"* Instruer sampleren i brug til at opdatere statistikken." - -#: src/settings_translation_file.cpp -#, fuzzy -msgid "Heat blend noise" -msgstr "Støjparametre for Mapgen varmeblanding" - -#: src/settings_translation_file.cpp -#, fuzzy -msgid "Heat noise" -msgstr "Hulestøj #1" - -#: src/settings_translation_file.cpp -msgid "Height component of the initial window size." -msgstr "Højdekomponent for den oprindelige vinduestørrelse." - -#: src/settings_translation_file.cpp -#, fuzzy -msgid "Height noise" -msgstr "Højre meta" - -#: src/settings_translation_file.cpp -msgid "Height on which clouds are appearing." -msgstr "Højde hvor skyer fremkommer." - -#: src/settings_translation_file.cpp -#, fuzzy -msgid "Height select noise" -msgstr "Mapgen v6 – støjparametre for højdevalg" - -#: src/settings_translation_file.cpp -msgid "High-precision FPU" -msgstr "Højpræcisions FPU" - -#: src/settings_translation_file.cpp -#, fuzzy -msgid "Hill steepness" -msgstr "Flad bakkestejlhed for Mapgen" - -#: src/settings_translation_file.cpp -#, fuzzy -msgid "Hill threshold" -msgstr "Flad bakketærskel for Mapgen" - -#: src/settings_translation_file.cpp -msgid "Homepage of server, to be displayed in the serverlist." -msgstr "Hjemmeside for serveren, som vist i serverlisten." - -#: src/settings_translation_file.cpp -msgid "Hotbar next key" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Hotbar previous key" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "How deep to make rivers" -msgstr "Dybde for floder" - -#: src/settings_translation_file.cpp -msgid "" -"How large area of blocks are subject to the active block stuff, stated in " -"mapblocks (16 nodes).\n" -"In active blocks objects are loaded and ABMs run." -msgstr "" -"Hvordan store områder af blokke påvirkes af det aktive blokindhold, angivet " -"i mapblocks (16 knudepunkter).\n" -"I aktive blokke bliver objekter indlæst og ABM'er afviklet." - -#: src/settings_translation_file.cpp -msgid "" -"How much the server will wait before unloading unused mapblocks.\n" -"Higher value is smoother, but will use more RAM." -msgstr "" -"Hvor lang tid serveren vil vente før ubrugt kortblokke fjernes.\n" -"Højere værdier er længere tid, men vil bruge mere RAM." - -#: src/settings_translation_file.cpp -msgid "How wide to make rivers" -msgstr "Hvor brede floder skal være" - -#: src/settings_translation_file.cpp -msgid "Humidity blend noise" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Humidity noise" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Humidity variation for biomes." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "IPv6" -msgstr "IPv6" - -#: src/settings_translation_file.cpp -msgid "IPv6 server" -msgstr "IPv6-server" - -#: src/settings_translation_file.cpp -msgid "IPv6 support." -msgstr "Understøttelse af IPv6." - -#: src/settings_translation_file.cpp -msgid "" -"If FPS would go higher than this, limit it by sleeping\n" -"to not waste CPU power for no benefit." -msgstr "" -"Hvis FPS skal være højere end dette, så begræns ved at sove\n" -"for ikke at spilde CPU-kraft uden nogen fordel." - -#: src/settings_translation_file.cpp -msgid "" -"If disabled \"use\" key is used to fly fast if both fly and fast mode are " -"enabled." -msgstr "" -"Hvis deaktiveret bruges »brug«-tasten til at flyve hurtig hvis både flyvning " -"og hurtig tilstand er aktiveret." - -#: src/settings_translation_file.cpp -msgid "" -"If enabled the server will perform map block occlusion culling based on\n" -"on the eye position of the player. This can reduce the number of blocks\n" -"sent to the client 50-80%. The client will not longer receive most " -"invisible\n" -"so that the utility of noclip mode is reduced." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"If enabled together with fly mode, player is able to fly through solid " -"nodes.\n" -"This requires the \"noclip\" privilege on the server." -msgstr "" -"Hvis aktiveret sammen med fly-tilstand, kan spilleren flyve igennem faste " -"knudepunkter.\n" -"Dette kræver privilegiet »noclip« på serveren." - -#: src/settings_translation_file.cpp -msgid "" -"If enabled, \"use\" key instead of \"sneak\" key is used for climbing down " -"and descending." -msgstr "" -"Hvis aktiveret bruges »brug«-tasten i stedet for »snig«-tasten til at klatre " -"ned og aftagende." - -#: src/settings_translation_file.cpp -msgid "" -"If enabled, actions are recorded for rollback.\n" -"This option is only read when server starts." -msgstr "" -"Hvis aktiveret, optages handlinger for tilbagerulning.\n" -"Dette tilvalg læses kun når serveren starter." - -#: src/settings_translation_file.cpp -msgid "If enabled, disable cheat prevention in multiplayer." -msgstr "" -"Hvis aktiveret så deaktiver forhindring af snyd i spil med flere deltagere." - -#: src/settings_translation_file.cpp -msgid "" -"If enabled, invalid world data won't cause the server to shut down.\n" -"Only enable this if you know what you are doing." -msgstr "" -"Hvis aktiveret, så vil ugyldige data ikke medføre at serveren lukke ned.\n" -"Aktiver kun hvis du ved hvad du gør." - -#: src/settings_translation_file.cpp -msgid "If enabled, new players cannot join with an empty password." -msgstr "" -"Hvis aktiveret kan nye spillere ikke slutte sig til uden en tom adgangskode." - -#: src/settings_translation_file.cpp -#, fuzzy -msgid "If enabled, show the server status message on player connection." -msgstr "Dagens besked" - -#: src/settings_translation_file.cpp -msgid "" -"If enabled, you can place blocks at the position (feet + eye level) where " -"you stand.\n" -"This is helpful when working with nodeboxes in small areas." -msgstr "" -"Hvis aktiveret så kan du placere blokke ved positionen (fod + øje niveau) " -"hvor du står.\n" -"Dette er nyttigt under arbejde med knudepunktbokse i små områder." - -#: src/settings_translation_file.cpp -msgid "If this is set, players will always (re)spawn at the given position." -msgstr "" -"Hvis aktiveret, så vil spillere altid (gen)starte ved den angivne position." - -#: src/settings_translation_file.cpp -msgid "Ignore world errors" -msgstr "Ignorer verdensfejl" - -#: src/settings_translation_file.cpp -msgid "In-Game" -msgstr "I-spil" - -#: src/settings_translation_file.cpp -msgid "In-game chat console background alpha (opaqueness, between 0 and 255)." -msgstr "" -"Baggrundsalfa for snakkekonsollen i spillet (uigennemsigtighed, mellem 0 og " -"255)." - -#: src/settings_translation_file.cpp -msgid "In-game chat console background color (R,G,B)." -msgstr "Baggrundsfarve for snakkekonsollen i spillet (R,G,B)." - -#: src/settings_translation_file.cpp -#, fuzzy -msgid "In-game chat console height, between 0.1 (10%) and 1.0 (100%)." -msgstr "" -"Baggrundsalfa for snakkekonsollen i spillet (uigennemsigtighed, mellem 0 og " -"255)." - -#: src/settings_translation_file.cpp -#, fuzzy -msgid "Inc. volume key" -msgstr "Konsoltast" - -#: src/settings_translation_file.cpp -msgid "" -"Instrument builtin.\n" -"This is usually only needed by core/builtin contributors" -msgstr "" -"Instrumenteringsindbygning.\n" -"Er normalt kun krævet af kerne/indbygningsbidragydere" - -#: src/settings_translation_file.cpp -msgid "Instrument chatcommands on registration." -msgstr "Udstyr chatkommandoer ved registrering." - -#: src/settings_translation_file.cpp -msgid "" -"Instrument global callback functions on registration.\n" -"(anything you pass to a minetest.register_*() function)" -msgstr "" -"Udstyr globale tilbagekaldsfunktioner ved registrering.\n" -"(alt du sender til en minetest.register_*()-funktion)" - -#: src/settings_translation_file.cpp -msgid "" -"Instrument the action function of Active Block Modifiers on registration." -msgstr "Udstyr handlingsfunktionen for Aktiv blokændringer ved registrering." - -#: src/settings_translation_file.cpp -msgid "" -"Instrument the action function of Loading Block Modifiers on registration." -msgstr "" -"Udstyr handlingsfunktionen for Indlæsning af blokændringer ved registrering." - -#: src/settings_translation_file.cpp -msgid "Instrument the methods of entities on registration." -msgstr "Udstyr metoderne for enheder ved registrering." - -#: src/settings_translation_file.cpp -msgid "Instrumentation" -msgstr "Instrumentering" - -#: src/settings_translation_file.cpp -msgid "Interval of saving important changes in the world, stated in seconds." -msgstr "" -"Interval for lagring af vigtige ændringer i verden, angivet i sekunder." - -#: src/settings_translation_file.cpp -msgid "Interval of sending time of day to clients." -msgstr "Interval for afsendelse af tidspunkt på dagen til klienter." - -#: src/settings_translation_file.cpp -#, fuzzy -msgid "Inventory image hack" -msgstr "Lagertast" - -#: src/settings_translation_file.cpp -msgid "Inventory items animations" -msgstr "Animationer for lagerelementer" - -#: src/settings_translation_file.cpp -msgid "Inventory key" -msgstr "Lagertast" - -#: src/settings_translation_file.cpp -msgid "Invert mouse" -msgstr "Invertér mus" - -#: src/settings_translation_file.cpp -msgid "Invert vertical mouse movement." -msgstr "Vend lodret musebevægelse om." - -#: src/settings_translation_file.cpp -msgid "Item entity TTL" -msgstr "Elemententitet TTL" - -#: src/settings_translation_file.cpp -#, fuzzy -msgid "Iterations" -msgstr "Instrumentering" - -#: src/settings_translation_file.cpp -msgid "" -"Iterations of the recursive function.\n" -"Controls the amount of fine detail." -msgstr "" -"Gennemløb for den rekursive funktion.\n" -"Kontrollerer mængden af små detaljer." - -#: src/settings_translation_file.cpp -msgid "Joystick ID" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Joystick Type" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Joystick button repetition interval" -msgstr "Joystick-knaps gentagelsesinterval" - -#: src/settings_translation_file.cpp -msgid "Joystick frustum sensitivity" -msgstr "Joystick frustum-sensitivitet" - -#: src/settings_translation_file.cpp -msgid "" -"Julia set only: W component of hypercomplex constant determining julia " -"shape.\n" -"Has no effect on 3D fractals.\n" -"Range roughly -2 to 2." -msgstr "" -"Kun Juliasæt: W-komponent for hyperkompleks konstant der bestemmer " -"Juliaform.\n" -"Har ingen effekt på 3D-fraktaler.\n" -"Interval cirka -2 til 2." - -#: src/settings_translation_file.cpp -msgid "" -"Julia set only: X component of hypercomplex constant determining julia " -"shape.\n" -"Range roughly -2 to 2." -msgstr "" -"Kun Juliasæt: X-komponent for hyperkompleks konstant der bestemmer " -"Juliaform.\n" -"Interval cirka -2 til 2." - -#: src/settings_translation_file.cpp -msgid "" -"Julia set only: Y component of hypercomplex constant determining julia " -"shape.\n" -"Range roughly -2 to 2." -msgstr "" -"Kun Juliasæt: Y-komponent for hyperkompleks konstant der bestemmer " -"Juliaform.\n" -"Interval cirka -2 til 2." - -#: src/settings_translation_file.cpp -msgid "" -"Julia set only: Z component of hypercomplex constant determining julia " -"shape.\n" -"Range roughly -2 to 2." -msgstr "" -"Kun Juliasæt: Z-komponent for hyperkompleks konstant der bestemmer " -"Juliaform.\n" -"Interval cirka -2 til 2." - -#: src/settings_translation_file.cpp -msgid "Julia w" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Julia x" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Julia y" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Julia z" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Jump key" -msgstr "Hop-tast" - -#: src/settings_translation_file.cpp -msgid "Jumping speed" -msgstr "Hoppehastighed" - -#: src/settings_translation_file.cpp -msgid "" -"Key for decreasing the viewing range.\n" -"See http://irrlicht.sourceforge.net/docu/namespaceirr." -"html#a54da2a0e231901735e3da1b0edf72eb3" -msgstr "" -"Tast for mindskning af den sete afstand.\n" -"Se http://irrlicht.sourceforge.net/docu/namespaceirr." -"html#a54da2a0e231901735e3da1b0edf72eb3" - -#: src/settings_translation_file.cpp -#, fuzzy -msgid "" -"Key for decreasing the volume.\n" -"See http://irrlicht.sourceforge.net/docu/namespaceirr." -"html#a54da2a0e231901735e3da1b0edf72eb3" -msgstr "" -"Tast for mindskning af den sete afstand.\n" -"Se http://irrlicht.sourceforge.net/docu/namespaceirr." -"html#a54da2a0e231901735e3da1b0edf72eb3" - -#: src/settings_translation_file.cpp -msgid "" -"Key for dropping the currently selected item.\n" -"See http://irrlicht.sourceforge.net/docu/namespaceirr." -"html#a54da2a0e231901735e3da1b0edf72eb3" -msgstr "" -"Tast som smider det nuværende valgte element.\n" -"Se http://irrlicht.sourceforge.net/docu/namespaceirr." -"html#a54da2a0e231901735e3da1b0edf72eb3" - -#: src/settings_translation_file.cpp -msgid "" -"Key for increasing the viewing range.\n" -"See http://irrlicht.sourceforge.net/docu/namespaceirr." -"html#a54da2a0e231901735e3da1b0edf72eb3" -msgstr "" -"Tast for øgning af den sete afstand.\n" -"Se http://irrlicht.sourceforge.net/docu/namespaceirr." -"html#a54da2a0e231901735e3da1b0edf72eb3" - -#: src/settings_translation_file.cpp -#, fuzzy -msgid "" -"Key for increasing the volume.\n" -"See http://irrlicht.sourceforge.net/docu/namespaceirr." -"html#a54da2a0e231901735e3da1b0edf72eb3" -msgstr "" -"Tast for øgning af den sete afstand.\n" -"Se http://irrlicht.sourceforge.net/docu/namespaceirr." -"html#a54da2a0e231901735e3da1b0edf72eb3" - -#: src/settings_translation_file.cpp -msgid "" -"Key for jumping.\n" -"See http://irrlicht.sourceforge.net/docu/namespaceirr." -"html#a54da2a0e231901735e3da1b0edf72eb3" -msgstr "" -"Tast for hop.\n" -"Se http://irrlicht.sourceforge.net/docu/namespaceirr." -"html#a54da2a0e231901735e3da1b0edf72eb3" - -#: src/settings_translation_file.cpp -msgid "" -"Key for moving fast in fast mode.\n" -"See http://irrlicht.sourceforge.net/docu/namespaceirr." -"html#a54da2a0e231901735e3da1b0edf72eb3" -msgstr "" -"Tast til at bevæge sig hurtigt i tilstanden hurtig.\n" -"Se http://irrlicht.sourceforge.net/docu/namespaceirr." -"html#a54da2a0e231901735e3da1b0edf72eb3" - -#: src/settings_translation_file.cpp -msgid "" -"Key for moving the player backward.\n" -"See http://irrlicht.sourceforge.net/docu/namespaceirr." -"html#a54da2a0e231901735e3da1b0edf72eb3" -msgstr "" -"Tast til at bevæge spilleren baglæns.\n" -"Se http://irrlicht.sourceforge.net/docu/namespaceirr." -"html#a54da2a0e231901735e3da1b0edf72eb3" - -#: src/settings_translation_file.cpp -msgid "" -"Key for moving the player forward.\n" -"See http://irrlicht.sourceforge.net/docu/namespaceirr." -"html#a54da2a0e231901735e3da1b0edf72eb3" -msgstr "" -"Tast til at bevæge spilleren fremad.\n" -"Se http://irrlicht.sourceforge.net/docu/namespaceirr." -"html#a54da2a0e231901735e3da1b0edf72eb3" - -#: src/settings_translation_file.cpp -msgid "" -"Key for moving the player left.\n" -"See http://irrlicht.sourceforge.net/docu/namespaceirr." -"html#a54da2a0e231901735e3da1b0edf72eb3" -msgstr "" -"Tast til at bevæge spilleren mod venstre.\n" -"Se http://irrlicht.sourceforge.net/docu/namespaceirr." -"html#a54da2a0e231901735e3da1b0edf72eb3" - -#: src/settings_translation_file.cpp -msgid "" -"Key for moving the player right.\n" -"See http://irrlicht.sourceforge.net/docu/namespaceirr." -"html#a54da2a0e231901735e3da1b0edf72eb3" -msgstr "" -"Tast til at bevæge spilleren mod højre.\n" -"Se http://irrlicht.sourceforge.net/docu/namespaceirr." -"html#a54da2a0e231901735e3da1b0edf72eb3" - -#: src/settings_translation_file.cpp -#, fuzzy -msgid "" -"Key for muting the game.\n" -"See http://irrlicht.sourceforge.net/docu/namespaceirr." -"html#a54da2a0e231901735e3da1b0edf72eb3" -msgstr "" -"Tast for hop.\n" -"Se http://irrlicht.sourceforge.net/docu/namespaceirr." -"html#a54da2a0e231901735e3da1b0edf72eb3" - -#: src/settings_translation_file.cpp -msgid "" -"Key for opening the chat console.\n" -"See http://irrlicht.sourceforge.net/docu/namespaceirr." -"html#a54da2a0e231901735e3da1b0edf72eb3" -msgstr "" -"Tast til at åbne snakkekonsollen (chat).\n" -"Se http://irrlicht.sourceforge.net/docu/namespaceirr." -"html#a54da2a0e231901735e3da1b0edf72eb3" - -#: src/settings_translation_file.cpp -msgid "" -"Key for opening the chat window to type commands.\n" -"See http://irrlicht.sourceforge.net/docu/namespaceirr." -"html#a54da2a0e231901735e3da1b0edf72eb3" -msgstr "" -"Tast til at åbne snakkevinduet for at indtaste kommandoer.\n" -"Se http://irrlicht.sourceforge.net/docu/namespaceirr." -"html#a54da2a0e231901735e3da1b0edf72eb3" - -#: src/settings_translation_file.cpp -#, fuzzy -msgid "" -"Key for opening the chat window to type local commands.\n" -"See http://irrlicht.sourceforge.net/docu/namespaceirr." -"html#a54da2a0e231901735e3da1b0edf72eb3" -msgstr "" -"Tast til at åbne snakkevinduet for at indtaste kommandoer.\n" -"Se http://irrlicht.sourceforge.net/docu/namespaceirr." -"html#a54da2a0e231901735e3da1b0edf72eb3" - -#: src/settings_translation_file.cpp -msgid "" -"Key for opening the chat window.\n" -"See http://irrlicht.sourceforge.net/docu/namespaceirr." -"html#a54da2a0e231901735e3da1b0edf72eb3" -msgstr "" -"Tast til at åbne snakkevinduet (chat).\n" -"Se http://irrlicht.sourceforge.net/docu/namespaceirr." -"html#a54da2a0e231901735e3da1b0edf72eb3" - -#: src/settings_translation_file.cpp -msgid "" -"Key for opening the inventory.\n" -"See http://irrlicht.sourceforge.net/docu/namespaceirr." -"html#a54da2a0e231901735e3da1b0edf72eb3" -msgstr "" -"Tast til at åbne lageret.\n" -"Se http://irrlicht.sourceforge.net/docu/namespaceirr." -"html#a54da2a0e231901735e3da1b0edf72eb3" - -#: src/settings_translation_file.cpp -msgid "" -"Key for printing debug stacks. Used for development.\n" -"See http://irrlicht.sourceforge.net/docu/namespaceirr." -"html#a54da2a0e231901735e3da1b0edf72eb3" -msgstr "" -"Tast til at udskrive fejlsøgningsstakke. Brugt til udvikling.\n" -"Se http://irrlicht.sourceforge.net/docu/namespaceirr." -"html#a54da2a0e231901735e3da1b0edf72eb3" - -#: src/settings_translation_file.cpp -#, fuzzy -msgid "" -"Key for selecting the next item in the hotbar.\n" -"See http://irrlicht.sourceforge.net/docu/namespaceirr." -"html#a54da2a0e231901735e3da1b0edf72eb3" -msgstr "" -"Tast til at åbne lageret.\n" -"Se http://irrlicht.sourceforge.net/docu/namespaceirr." -"html#a54da2a0e231901735e3da1b0edf72eb3" - -#: src/settings_translation_file.cpp -#, fuzzy -msgid "" -"Key for selecting the previous item in the hotbar.\n" -"See http://irrlicht.sourceforge.net/docu/namespaceirr." -"html#a54da2a0e231901735e3da1b0edf72eb3" -msgstr "" -"Tast til at åbne lageret.\n" -"Se http://irrlicht.sourceforge.net/docu/namespaceirr." -"html#a54da2a0e231901735e3da1b0edf72eb3" - -#: src/settings_translation_file.cpp -msgid "" -"Key for sneaking.\n" -"Also used for climbing down and descending in water if aux1_descends is " -"disabled.\n" -"See http://irrlicht.sourceforge.net/docu/namespaceirr." -"html#a54da2a0e231901735e3da1b0edf72eb3" -msgstr "" -"Tast til snigning.\n" -"Bruges også til at klatre ned og synke ned i vand hvis aux1_descends er " -"deaktiveret.\n" -"Se http://irrlicht.sourceforge.net/docu/namespaceirr." -"html#a54da2a0e231901735e3da1b0edf72eb3" - -#: src/settings_translation_file.cpp -msgid "" -"Key for switching between first- and third-person camera.\n" -"See http://irrlicht.sourceforge.net/docu/namespaceirr." -"html#a54da2a0e231901735e3da1b0edf72eb3" -msgstr "" -"Tast til at skifte mellem første- og tredjepersons kamera.\n" -"Se http://irrlicht.sourceforge.net/docu/namespaceirr." -"html#a54da2a0e231901735e3da1b0edf72eb3" - -#: src/settings_translation_file.cpp -msgid "" -"Key for taking screenshots.\n" -"See http://irrlicht.sourceforge.net/docu/namespaceirr." -"html#a54da2a0e231901735e3da1b0edf72eb3" -msgstr "" -"Tast til at lave skærmbilleder.\n" -"Se http://irrlicht.sourceforge.net/docu/namespaceirr." -"html#a54da2a0e231901735e3da1b0edf72eb3" - -#: src/settings_translation_file.cpp -msgid "" -"Key for toggling autorun.\n" -"See http://irrlicht.sourceforge.net/docu/namespaceirr." -"html#a54da2a0e231901735e3da1b0edf72eb3" -msgstr "" -"Tast til at skifte til automatisk løb.\n" -"Se http://irrlicht.sourceforge.net/docu/namespaceirr." -"html#a54da2a0e231901735e3da1b0edf72eb3" - -#: src/settings_translation_file.cpp -msgid "" -"Key for toggling cinematic mode.\n" -"See http://irrlicht.sourceforge.net/docu/namespaceirr." -"html#a54da2a0e231901735e3da1b0edf72eb3" -msgstr "" -"Tast til at skifte til biograftilstand.\n" -"Se http://irrlicht.sourceforge.net/docu/namespaceirr." -"html#a54da2a0e231901735e3da1b0edf72eb3" - -#: src/settings_translation_file.cpp -msgid "" -"Key for toggling display of minimap.\n" -"See http://irrlicht.sourceforge.net/docu/namespaceirr." -"html#a54da2a0e231901735e3da1b0edf72eb3" -msgstr "" -"Tast til at skifte til visning af minikort.\n" -"Se http://irrlicht.sourceforge.net/docu/namespaceirr." -"html#a54da2a0e231901735e3da1b0edf72eb3" - -#: src/settings_translation_file.cpp -msgid "" -"Key for toggling fast mode.\n" -"See http://irrlicht.sourceforge.net/docu/namespaceirr." -"html#a54da2a0e231901735e3da1b0edf72eb3" -msgstr "" -"Tast til at skifte til hurtig tilstand.\n" -"Se http://irrlicht.sourceforge.net/docu/namespaceirr." -"html#a54da2a0e231901735e3da1b0edf72eb3" - -#: src/settings_translation_file.cpp -msgid "" -"Key for toggling flying.\n" -"See http://irrlicht.sourceforge.net/docu/namespaceirr." -"html#a54da2a0e231901735e3da1b0edf72eb3" -msgstr "" -"Tast til at skifte til flyvning.\n" -"Se http://irrlicht.sourceforge.net/docu/namespaceirr." -"html#a54da2a0e231901735e3da1b0edf72eb3" - -#: src/settings_translation_file.cpp -msgid "" -"Key for toggling noclip mode.\n" -"See http://irrlicht.sourceforge.net/docu/namespaceirr." -"html#a54da2a0e231901735e3da1b0edf72eb3" -msgstr "" -"Tast til at skifte til noclip-tilstand.\n" -"Se http://irrlicht.sourceforge.net/docu/namespaceirr." -"html#a54da2a0e231901735e3da1b0edf72eb3" - -#: src/settings_translation_file.cpp -msgid "" -"Key for toggling the camera update. Only used for development\n" -"See http://irrlicht.sourceforge.net/docu/namespaceirr." -"html#a54da2a0e231901735e3da1b0edf72eb3" -msgstr "" -"Tast for at skifte kameraopdateringen. Bruges kun til udvikling\n" -"Se http://irrlicht.sourceforge.net/docu/namespaceirr." -"html#a54da2a0e231901735e3da1b0edf72eb3" - -#: src/settings_translation_file.cpp -msgid "" -"Key for toggling the display of debug info.\n" -"See http://irrlicht.sourceforge.net/docu/namespaceirr." -"html#a54da2a0e231901735e3da1b0edf72eb3" -msgstr "" -"Tast til at skifte til visning af fejlsøgningsinformation.\n" -"Se http://irrlicht.sourceforge.net/docu/namespaceirr." -"html#a54da2a0e231901735e3da1b0edf72eb3" - -#: src/settings_translation_file.cpp -msgid "" -"Key for toggling the display of the HUD.\n" -"See http://irrlicht.sourceforge.net/docu/namespaceirr." -"html#a54da2a0e231901735e3da1b0edf72eb3" -msgstr "" -"Tast til skift af visningen for HUD'en.\n" -"Se http://irrlicht.sourceforge.net/docu/namespaceirr." -"html#a54da2a0e231901735e3da1b0edf72eb3" - -#: src/settings_translation_file.cpp -msgid "" -"Key for toggling the display of the chat.\n" -"See http://irrlicht.sourceforge.net/docu/namespaceirr." -"html#a54da2a0e231901735e3da1b0edf72eb3" -msgstr "" -"Tast til at skifte visningen af snakken (chat).\n" -"Se http://irrlicht.sourceforge.net/docu/namespaceirr." -"html#a54da2a0e231901735e3da1b0edf72eb3" - -#: src/settings_translation_file.cpp -msgid "" -"Key for toggling the display of the fog.\n" -"See http://irrlicht.sourceforge.net/docu/namespaceirr." -"html#a54da2a0e231901735e3da1b0edf72eb3" -msgstr "" -"Tast til at skifte visningen af tåge.\n" -"Se http://irrlicht.sourceforge.net/docu/namespaceirr." -"html#a54da2a0e231901735e3da1b0edf72eb3" - -#: src/settings_translation_file.cpp -#, fuzzy -msgid "" -"Key for toggling the display of the large chat console.\n" -"See http://irrlicht.sourceforge.net/docu/namespaceirr." -"html#a54da2a0e231901735e3da1b0edf72eb3" -msgstr "" -"Tast til at skifte visningen af snakken (chat).\n" -"Se http://irrlicht.sourceforge.net/docu/namespaceirr." -"html#a54da2a0e231901735e3da1b0edf72eb3" - -#: src/settings_translation_file.cpp -msgid "" -"Key for toggling the display of the profiler. Used for development.\n" -"See http://irrlicht.sourceforge.net/docu/namespaceirr." -"html#a54da2a0e231901735e3da1b0edf72eb3" -msgstr "" -"Tast til at skifte visningen af profileringsprogrammet. Brugt til " -"udvikling.\n" -"Se http://irrlicht.sourceforge.net/docu/namespaceirr." -"html#a54da2a0e231901735e3da1b0edf72eb3" - -#: src/settings_translation_file.cpp -msgid "" -"Key for toggling unlimited view range.\n" -"See http://irrlicht.sourceforge.net/docu/namespaceirr." -"html#a54da2a0e231901735e3da1b0edf72eb3" -msgstr "" -"Tast til at skifte til ubegrænset se-afstand.\n" -"Se http://irrlicht.sourceforge.net/docu/namespaceirr." -"html#a54da2a0e231901735e3da1b0edf72eb3" - -#: src/settings_translation_file.cpp -#, fuzzy -msgid "" -"Key to use view zoom when possible.\n" -"See http://irrlicht.sourceforge.net/docu/namespaceirr." -"html#a54da2a0e231901735e3da1b0edf72eb3" -msgstr "" -"Tast for hop.\n" -"Se http://irrlicht.sourceforge.net/docu/namespaceirr." -"html#a54da2a0e231901735e3da1b0edf72eb3" - -#: src/settings_translation_file.cpp -msgid "Key use for climbing/descending" -msgstr "Tast brugt til at klatre op/ned" - -#: src/settings_translation_file.cpp -#, fuzzy -msgid "Lake steepness" -msgstr "Flad søstejlhed for Mapgen" - -#: src/settings_translation_file.cpp -#, fuzzy -msgid "Lake threshold" -msgstr "Flad søtærskel for Mapgen" - -#: src/settings_translation_file.cpp -msgid "Language" -msgstr "Sprog" - -#: src/settings_translation_file.cpp -msgid "Large cave depth" -msgstr "Dybde for stor hule" - -#: src/settings_translation_file.cpp -#, fuzzy -msgid "Large chat console key" -msgstr "Konsoltast" - -#: src/settings_translation_file.cpp -msgid "Lava Features" -msgstr "Lavafunktioner" - -#: src/settings_translation_file.cpp -msgid "Leaves style" -msgstr "Bladstil" - -#: src/settings_translation_file.cpp -msgid "" -"Leaves style:\n" -"- Fancy: all faces visible\n" -"- Simple: only outer faces, if defined special_tiles are used\n" -"- Opaque: disable transparency" -msgstr "" -"Bladstil:\n" -"- Fancy: alle sider synlige\n" -"- Simple: kun ydre sider, hvis defineret special_tiles anvendes\n" -"- Opaque: deaktiver gennemsigtighed" - -#: src/settings_translation_file.cpp -msgid "Left key" -msgstr "Venstretast" - -#: src/settings_translation_file.cpp -msgid "" -"Length of a server tick and the interval at which objects are generally " -"updated over network." -msgstr "" -"Længde på serveraktivering og intervallet som objekter opdateres efter over " -"netværket." - -#: src/settings_translation_file.cpp -msgid "Length of time between ABM execution cycles" -msgstr "Tidslængde mellem ABM-kørselscyklusser" - -#: src/settings_translation_file.cpp -msgid "Length of time between NodeTimer execution cycles" -msgstr "Tidslængde mellem NodeTimer-kørselscyklusser" - -#: src/settings_translation_file.cpp -msgid "" -"Level of logging to be written to debug.txt:\n" -"- (no logging)\n" -"- none (messages with no level)\n" -"- error\n" -"- warning\n" -"- action\n" -"- info\n" -"- verbose" -msgstr "" -"Niveau for logning der skrives til debug.txt:\n" -"- (ingen logning)\n" -"- none (beskeder uden niveau)\n" -"- error\n" -"- warning\n" -"- action\n" -"- info\n" -"- verbose" - -#: src/settings_translation_file.cpp -msgid "Limit of emerge queues on disk" -msgstr "Begrænsning af fremkomsten af forespørgsler på disk" - -#: src/settings_translation_file.cpp -msgid "Limit of emerge queues to generate" -msgstr "Begrænsning af fremkomsten af køer at oprette" - -#: src/settings_translation_file.cpp -msgid "" -"Limit of map generation, in nodes, in all 6 directions from (0, 0, 0).\n" -"Only mapchunks completely within the mapgen limit are generated.\n" -"Value is stored per-world." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Limits number of parallel HTTP requests. Affects:\n" -"- Media fetch if server uses remote_media setting.\n" -"- Serverlist download and server announcement.\n" -"- Downloads performed by main menu (e.g. mod manager).\n" -"Only has an effect if compiled with cURL." -msgstr "" -"Begrænser antallet af parallelle HTTP-forespørgsler. Påvirker:\n" -"- Medioverførsel hvis serveren bruger indstillingen remote_media.\n" -"- Serverlist-overførsel og serverbesked.\n" -"- Overførsler udført af hovedmenuen (f.eks. mod-håndtering).\n" -"Har kun en effekt hvis kompileret med cURL." - -#: src/settings_translation_file.cpp -msgid "Liquid fluidity" -msgstr "Væskes evne til at flyde" - -#: src/settings_translation_file.cpp -msgid "Liquid fluidity smoothing" -msgstr "Blødgøring af væskes evne til at flyde" - -#: src/settings_translation_file.cpp -msgid "Liquid loop max" -msgstr "Væske loop maks." - -#: src/settings_translation_file.cpp -msgid "Liquid queue purge time" -msgstr "Køfjernelsestid for væske" - -#: src/settings_translation_file.cpp -msgid "Liquid sink" -msgstr "Synkehastighed for væske" - -#: src/settings_translation_file.cpp -msgid "Liquid update interval in seconds." -msgstr "Væskeopdateringsinterval i sekunder." - -#: src/settings_translation_file.cpp -msgid "Liquid update tick" -msgstr "Væskeopdateringsudløsning" - -#: src/settings_translation_file.cpp -msgid "Load the game profiler" -msgstr "Indlæs spilprofileringsprogrammet" - -#: src/settings_translation_file.cpp -msgid "" -"Load the game profiler to collect game profiling data.\n" -"Provides a /profiler command to access the compiled profile.\n" -"Useful for mod developers and server operators." -msgstr "" -"Indlæs spilprofileringsprogrammet for at indsamle profileringsdata.\n" -"Tilbyder en kommando /profiler til at tilgå den indsamlede profil.\n" -"Nyttig for mod-udviklere og serveroperatører." - -#: src/settings_translation_file.cpp -msgid "Loading Block Modifiers" -msgstr "Indlæser blokændringer" - -#: src/settings_translation_file.cpp -msgid "Main menu game manager" -msgstr "Hovedmenus spilhåndtering" - -#: src/settings_translation_file.cpp -msgid "Main menu mod manager" -msgstr "Hovedmenus mod-håndtering" - -#: src/settings_translation_file.cpp -msgid "Main menu script" -msgstr "Hovedmenuskript" - -#: src/settings_translation_file.cpp -msgid "" -"Make fog and sky colors depend on daytime (dawn/sunset) and view direction." -msgstr "" -"Tåge- og himmelfarver afhænger af tid på dagen (solopgang/solnedgang) og den " -"sete retning." - -#: src/settings_translation_file.cpp -msgid "Makes DirectX work with LuaJIT. Disable if it causes troubles." -msgstr "" -"Får DirectX til at fungere med LuaJIT. Deaktiver hvis det giver problemer." - -#: src/settings_translation_file.cpp -msgid "Makes all liquids opaque" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Map directory" -msgstr "Kortmappe" - -#: src/settings_translation_file.cpp -msgid "" -"Map generation attributes specific to Mapgen Valleys.\n" -"'altitude_chill' makes higher elevations colder, which may cause biome " -"issues.\n" -"'humid_rivers' modifies the humidity around rivers and in areas where water " -"would tend to pool,\n" -"it may interfere with delicately adjusted biomes.\n" -"Flags that are not specified in the flag string are not modified from the " -"default.\n" -"Flags starting with 'no' are used to explicitly disable them." -msgstr "" -"Kortoprettelsesattributer specifik for Mapgen Valleys.\n" -"»altitude_chill« gør højere områder koldere, hvilket kan medføre " -"habitatproblemstillinger.\n" -"»humid_rivers« ændrer fugtighed omkring floder og i områder hvor vand har " -"tendens til at samle sig,\n" -"det kan influere med ømtålelige habitatter.\n" -"Flag som ikke er specificeret i flag-strengen ændres ikke fra standarden.\n" -"Flag der starter med »no« bruges til eksplicit at deaktivere dem." - -#: src/settings_translation_file.cpp -msgid "" -"Map generation attributes specific to Mapgen flat.\n" -"Occasional lakes and hills can be added to the flat world.\n" -"Flags that are not specified in the flag string are not modified from the " -"default.\n" -"Flags starting with 'no' are used to explicitly disable them." -msgstr "" -"Kortoprettelsesattributter specifikke for Mapgen flat.\n" -"Undtagelsesvis kan søer og bakker tilføjes til den flade verden.\n" -"Flag som ikke er specificeret i flag-strengen ændres ikke fra standarden.\n" -"Flag der starter med »no« bruges til eksplicit at deaktivere dem." - -#: src/settings_translation_file.cpp -#, fuzzy -msgid "" -"Map generation attributes specific to Mapgen v5.\n" -"Flags that are not specified in the flag string are not modified from the " -"default.\n" -"Flags starting with 'no' are used to explicitly disable them." -msgstr "" -"Kortoprettelsesattributter specifikek til Mapgen v7.\n" -"Flaget »ridges« kontroller floderne.\n" -"Flag som ikke er specificeret i flag-strengen ændres ikke fra standarden.\n" -"Flag der starter med »no« bruges til eksplicit at deaktivere dem." - -#: src/settings_translation_file.cpp -#, fuzzy -msgid "" -"Map generation attributes specific to Mapgen v6.\n" -"The 'snowbiomes' flag enables the new 5 biome system.\n" -"When the new biome system is enabled jungles are automatically enabled and\n" -"the 'jungles' flag is ignored.\n" -"Flags that are not specified in the flag string are not modified from the " -"default.\n" -"Flags starting with 'no' are used to explicitly disable them." -msgstr "" -"Kortoprettelsesattributter specifikke for Mapgen v6.\n" -"Når snehabitatter er aktiveret bliver jungler automatisk aktiveret, flaget " -"»jungles« ignoreres.\n" -"Flag som ikke er specificeret i flag-strengen ændres ikke fra standarden.\n" -"Flag der starter med »no« bruges til eksplicit at deaktivere dem." - -#: src/settings_translation_file.cpp -#, fuzzy -msgid "" -"Map generation attributes specific to Mapgen v7.\n" -"The 'ridges' flag enables the rivers.\n" -"Floatlands are currently experimental and subject to change.\n" -"Flags that are not specified in the flag string are not modified from the " -"default.\n" -"Flags starting with 'no' are used to explicitly disable them." -msgstr "" -"Kortoprettelsesattributter specifikek til Mapgen v7.\n" -"Flaget »ridges« kontroller floderne.\n" -"Flag som ikke er specificeret i flag-strengen ændres ikke fra standarden.\n" -"Flag der starter med »no« bruges til eksplicit at deaktivere dem." - -#: src/settings_translation_file.cpp -msgid "Map generation limit" -msgstr "Kortoprettelsesbegrænsning" - -#: src/settings_translation_file.cpp -msgid "Map save interval" -msgstr "Interval for kortlagring" - -#: src/settings_translation_file.cpp -msgid "Mapblock limit" -msgstr "Kortblokbegrænsning" - -#: src/settings_translation_file.cpp -#, fuzzy -msgid "Mapblock mesh generation delay" -msgstr "Kortoprettelsesbegrænsning" - -#: src/settings_translation_file.cpp -msgid "Mapblock mesh generator's MapBlock cache size MB" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Mapblock unload timeout" -msgstr "Tidsudløb for kortblokfjernelse" - -#: src/settings_translation_file.cpp -msgid "Mapgen Valleys" -msgstr "Mapgen-daler" - -#: src/settings_translation_file.cpp -msgid "Mapgen debug" -msgstr "Fejlsøgning for Mapgen" - -#: src/settings_translation_file.cpp -msgid "Mapgen flags" -msgstr "Flag for Mapgen" - -#: src/settings_translation_file.cpp -msgid "Mapgen flat" -msgstr "Mapgen-flad" - -#: src/settings_translation_file.cpp -#, fuzzy -msgid "Mapgen flat specific flags" -msgstr "Flade flag for Mapgen" - -#: src/settings_translation_file.cpp -msgid "Mapgen fractal" -msgstr "Fraktral for Mapgen" - -#: src/settings_translation_file.cpp -msgid "Mapgen name" -msgstr "Mapgen-navn" - -#: src/settings_translation_file.cpp -msgid "Mapgen v5" -msgstr "Mapgen v5" - -#: src/settings_translation_file.cpp -#, fuzzy -msgid "Mapgen v5 specific flags" -msgstr "Mapgen v6 – flag" - -#: src/settings_translation_file.cpp -msgid "Mapgen v6" -msgstr "Mapgen v6" - -#: src/settings_translation_file.cpp -#, fuzzy -msgid "Mapgen v6 specific flags" -msgstr "Mapgen v6 – flag" - -#: src/settings_translation_file.cpp -msgid "Mapgen v7" -msgstr "Mapgen v7" - -#: src/settings_translation_file.cpp -#, fuzzy -msgid "Mapgen v7 specific flags" -msgstr "Mapgen v7 – flag" - -#: src/settings_translation_file.cpp -msgid "Massive cave depth" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Massive cave noise" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Massive caves form here." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Max block generate distance" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Max block send distance" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Max liquids processed per step." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Max. clearobjects extra blocks" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Max. packets per iteration" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Maximum FPS" -msgstr "Maksimal FPS" - -#: src/settings_translation_file.cpp -msgid "Maximum FPS when game is paused." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Maximum forceloaded blocks" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Maximum hotbar width" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Maximum number of blocks that are simultaneously sent in total." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Maximum number of blocks that are simultaneously sent per client." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Maximum number of blocks that can be queued for loading." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Maximum number of blocks to be queued that are to be generated.\n" -"Set to blank for an appropriate amount to be chosen automatically." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Maximum number of blocks to be queued that are to be loaded from file.\n" -"Set to blank for an appropriate amount to be chosen automatically." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Maximum number of forceloaded mapblocks." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Maximum number of mapblocks for client to be kept in memory.\n" -"Set to -1 for unlimited amount." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Maximum number of packets sent per send step, if you have a slow connection\n" -"try reducing it, but don't reduce it to a number below double of targeted\n" -"client number." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Maximum number of players that can connect simultaneously." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Maximum number of statically stored objects in a block." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Maximum objects per block" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Maximum proportion of current window to be used for hotbar.\n" -"Useful if there's something to be displayed right or left of hotbar." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Maximum simultaneous block sends per client" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Maximum simultaneous block sends total" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Maximum time in ms a file download (e.g. a mod download) may take." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Maximum users" -msgstr "Maksimum antal brugere" - -#: src/settings_translation_file.cpp -msgid "Menus" -msgstr "Menuer" - -#: src/settings_translation_file.cpp -msgid "Mesh cache" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Message of the day" -msgstr "Dagens besked" - -#: src/settings_translation_file.cpp -msgid "Message of the day displayed to players connecting." -msgstr "Dagens besked" - -#: src/settings_translation_file.cpp -msgid "Method used to highlight selected object." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Minimap" -msgstr "Minikort" - -#: src/settings_translation_file.cpp -msgid "Minimap key" -msgstr "Minikorttast" - -#: src/settings_translation_file.cpp -msgid "Minimap scan height" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Minimum texture size for filters" -msgstr "" - -#: src/settings_translation_file.cpp -#, fuzzy -msgid "Mipmapping" -msgstr "Mipmapping" - -#: src/settings_translation_file.cpp -msgid "Modifies the size of the hudbar elements." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Modstore details URL" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Modstore download URL" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Modstore mods list URL" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Monospace font path" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Monospace font size" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Mountain height noise" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Mountain noise" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Mouse sensitivity" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Mouse sensitivity multiplier." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Mud noise" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Multiplier for fall bobbing.\n" -"For example: 0 for no view bobbing; 1.0 for normal; 2.0 for double." -msgstr "" - -#: src/settings_translation_file.cpp -#, fuzzy -msgid "Mute key" -msgstr "Brug-tast" - -#: src/settings_translation_file.cpp -msgid "" -"Name of map generator to be used when creating a new world.\n" -"Creating a world in the main menu will override this." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Name of the player.\n" -"When running a server, clients connecting with this name are admins.\n" -"When starting from the main menu, this is overridden." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Name of the server, to be displayed when players join and in the serverlist." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Network" -msgstr "Netværk" - -#: src/settings_translation_file.cpp -msgid "" -"Network port to listen (UDP).\n" -"This value will be overridden when starting from the main menu." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "New users need to input this password." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Noclip" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Noclip key" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Node highlighting" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "NodeTimer interval" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Noises" -msgstr "Lyde" - -#: src/settings_translation_file.cpp -msgid "Normalmaps sampling" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Normalmaps strength" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Number of emerge threads" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Number of emerge threads to use. Make this field blank, or increase this " -"number\n" -"to use multiple threads. On multiprocessor systems, this will improve mapgen " -"speed greatly\n" -"at the cost of slightly buggy caves." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Number of extra blocks that can be loaded by /clearobjects at once.\n" -"This is a trade-off between sqlite transaction overhead and\n" -"memory consumption (4096=100MB, as a rule of thumb)." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Number of parallax occlusion iterations." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Offset" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Opaque liquids" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Overall bias of parallax occlusion effect, usually scale/2." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Overall scale of parallax occlusion effect." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Parallax occlusion" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Parallax occlusion Scale" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Parallax occlusion bias" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Parallax occlusion iterations" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Parallax occlusion mode" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Parallax occlusion strength" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Path to TrueTypeFont or bitmap." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Path to save screenshots at." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Path to shader directory. If no path is defined, default location will be " -"used." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Path to texture directory. All textures are first searched from here." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Physics" -msgstr "Fysik" - -#: src/settings_translation_file.cpp -msgid "" -"Player is able to fly without being affected by gravity.\n" -"This requires the \"fly\" privilege on the server." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Player name" -msgstr "Spillerens navn" - -#: src/settings_translation_file.cpp -msgid "Player transfer distance" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Player versus Player" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Port to connect to (UDP).\n" -"Note that the port field in the main menu overrides this setting." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Prevent mods from doing insecure things like running shell commands." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Print the engine's profiling data in regular intervals (in seconds). 0 = " -"disable. Useful for developers." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Privileges that players with basic_privs can grant" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Profiler" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Profiler toggle key" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Profiling" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Radius of cloud area stated in number of 64 node cloud squares.\n" -"Values larger than 26 will start to produce sharp cutoffs at cloud area " -"corners." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Raises terrain to make valleys around the rivers" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Random input" -msgstr "" - -#: src/settings_translation_file.cpp -#, fuzzy -msgid "Range select key" -msgstr "Afstands vælg" - -#: src/settings_translation_file.cpp -msgid "Remote media" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Remote port" -msgstr "Fjernport" - -#: src/settings_translation_file.cpp -msgid "Replaces the default main menu with a custom one." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Report path" -msgstr "Rapportsti" - -#: src/settings_translation_file.cpp -#, fuzzy -msgid "Ridge noise" -msgstr "Flodstøj" - -#: src/settings_translation_file.cpp -msgid "Ridge underwater noise" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Right key" -msgstr "Højretast" - -#: src/settings_translation_file.cpp -msgid "Rightclick repetition interval" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "River Depth" -msgstr "Floddybde" - -#: src/settings_translation_file.cpp -msgid "River Noise" -msgstr "Flodstøj" - -#: src/settings_translation_file.cpp -msgid "River Size" -msgstr "Flodstørrelse" - -#: src/settings_translation_file.cpp -msgid "River noise -- rivers occur close to zero" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Rollback recording" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Round minimap" -msgstr "Rundt minikort" - -#: src/settings_translation_file.cpp -msgid "Sandy beaches occur when np_beach exceeds this value." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Save the map received by the client on disk." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Saving map received from server" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Scale" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Scale gui by a user specified value.\n" -"Use a nearest-neighbor-anti-alias filter to scale the GUI.\n" -"This will smooth over some of the rough edges, and blend\n" -"pixels when scaling down, at the cost of blurring some\n" -"edge pixels when images are scaled by non-integer sizes." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Screen height" -msgstr "Skærmhøjde" - -#: src/settings_translation_file.cpp -msgid "Screen width" -msgstr "Skærmbredde" - -#: src/settings_translation_file.cpp -msgid "Screenshot" -msgstr "Skærmbillede" - -#: src/settings_translation_file.cpp -msgid "Screenshot folder" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Screenshot format" -msgstr "Skærmbilledformat" - -#: src/settings_translation_file.cpp -msgid "Screenshot quality" -msgstr "Skærmbilledkvalitet" - -#: src/settings_translation_file.cpp -msgid "" -"Screenshot quality. Only used for JPEG format.\n" -"1 means worst quality; 100 means best quality.\n" -"Use 0 for default quality." -msgstr "" - -#: src/settings_translation_file.cpp -#, fuzzy -msgid "Seabed noise" -msgstr "Hulestøj #1" - -#: src/settings_translation_file.cpp -msgid "Second of 2 3D noises that together define tunnels." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Security" -msgstr "Sikkerhed" - -#: src/settings_translation_file.cpp -msgid "See http://www.sqlite.org/pragma.html#pragma_synchronous" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Selection box border color (R,G,B)." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Selection box color" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Selection box width" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Server / Singleplayer" -msgstr "Server/alene" - -#: src/settings_translation_file.cpp -msgid "Server URL" -msgstr "Server-URL" - -#: src/settings_translation_file.cpp -msgid "Server address" -msgstr "Serveradresse" - -#: src/settings_translation_file.cpp -msgid "Server description" -msgstr "Serverbeskrivelse" - -#: src/settings_translation_file.cpp -msgid "Server name" -msgstr "Servernavn" - -#: src/settings_translation_file.cpp -msgid "Server port" -msgstr "Serverport" - -#: src/settings_translation_file.cpp -msgid "Server side occlusion culling" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Serverlist URL" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Serverlist file" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Set the language. Leave empty to use the system language.\n" -"A restart is required after changing this." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Set to true enables waving leaves.\n" -"Requires shaders to be enabled." -msgstr "" -"Sat til true (sand) aktiverer bølgende blade.\n" -"Kræver at dybdeskabere er aktiveret." - -#: src/settings_translation_file.cpp -msgid "" -"Set to true enables waving plants.\n" -"Requires shaders to be enabled." -msgstr "" -"Angivet til true (sand) aktiverer bølgende planter.\n" -"Kræver at dybdeskabere er aktiveret." - -#: src/settings_translation_file.cpp -msgid "" -"Set to true enables waving water.\n" -"Requires shaders to be enabled." -msgstr "" -"Angivet til true (sand) aktiverer bølgende vand.\n" -"Kræver at dybdeskabere er aktiveret." - -#: src/settings_translation_file.cpp -#, fuzzy -msgid "Shader path" -msgstr "Dybdeskabere" - -#: src/settings_translation_file.cpp -#, fuzzy -msgid "" -"Shaders allow advanced visual effects and may increase performance on some " -"video cards.\n" -"This only works with the OpenGL video backend." -msgstr "" -"Dybdeskabere tillader avancerede visuelle effekter og kan forøge ydelsen på " -"nogle videokort.\n" -"De fungerer kun med OpenGL-videomotoren." - -#: src/settings_translation_file.cpp -#, fuzzy -msgid "Shadow limit" -msgstr "Kortblokbegrænsning" - -#: src/settings_translation_file.cpp -msgid "Shape of the minimap. Enabled = round, disabled = square." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Show debug info" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Show entity selection boxes" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Shutdown message" -msgstr "Nedlukningsbesked" - -#: src/settings_translation_file.cpp -msgid "" -"Size of chunks to be generated at once by mapgen, stated in mapblocks (16 " -"nodes)." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Size of the MapBlock cache of the mesh generator. Increasing this will\n" -"increase the cache hit %, reducing the data being copied from the main\n" -"thread, thus reducing jitter." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Slice w" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Slope and fill work together to modify the heights" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Small-scale humidity variation for blending biomes on borders." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Small-scale temperature variation for blending biomes on borders." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Smooth lighting" -msgstr "Blød belysning" - -#: src/settings_translation_file.cpp -msgid "" -"Smooths camera when looking around. Also called look or mouse smoothing.\n" -"Useful for recording videos." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Smooths rotation of camera in cinematic mode. 0 to disable." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Smooths rotation of camera. 0 to disable." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Sneak key" -msgstr "Snigetast" - -#: src/settings_translation_file.cpp -msgid "Sound" -msgstr "Lyd" - -#: src/settings_translation_file.cpp -msgid "" -"Specifies URL from which client fetches media instead of using UDP.\n" -"$filename should be accessible from $remote_media$filename via cURL\n" -"(obviously, remote_media should end with a slash).\n" -"Files that are not present will be fetched the usual way." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Static spawnpoint" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Status message on connection" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Steepness noise" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Strength of generated normalmaps." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Strength of parallax." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Strict protocol checking" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Support older servers" -msgstr "Understøt ældre servere" - -#: src/settings_translation_file.cpp -msgid "Synchronous SQLite" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Temperature variation for biomes." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Terrain Height" -msgstr "Terrænhøjde" - -#: src/settings_translation_file.cpp -msgid "Terrain alt noise" -msgstr "" - -#: src/settings_translation_file.cpp -#, fuzzy -msgid "Terrain base noise" -msgstr "Terrænhøjde" - -#: src/settings_translation_file.cpp -#, fuzzy -msgid "Terrain higher noise" -msgstr "Terrænhøjde" - -#: src/settings_translation_file.cpp -#, fuzzy -msgid "Terrain noise" -msgstr "Terrænhøjde" - -#: src/settings_translation_file.cpp -msgid "" -"Terrain noise threshold for hills.\n" -"Controls proportion of world area covered by hills.\n" -"Adjust towards 0.0 for a larger proportion." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Terrain noise threshold for lakes.\n" -"Controls proportion of world area covered by lakes.\n" -"Adjust towards 0.0 for a larger proportion." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Terrain persistence noise" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Texture path" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "The altitude at which temperature drops by 20C" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"The default format in which profiles are being saved,\n" -"when calling `/profiler save [format]` without format." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "The depth of dirt or other filler" -msgstr "Dybde for smuds eller andet fyldstof" - -#: src/settings_translation_file.cpp -msgid "" -"The file path relative to your worldpath in which profiles will be saved to." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "The identifier of the joystick to use" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "The network interface that the server listens on." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"The privileges that new users automatically get.\n" -"See /privs in game for a full list on your server and mod configuration." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "The rendering back-end for Irrlicht." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"The sensitivity of the joystick axes for moving the\n" -"ingame view frustum around." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"The strength (darkness) of node ambient-occlusion shading.\n" -"Lower is darker, Higher is lighter. The valid range of values for this\n" -"setting is 0.25 to 4.0 inclusive. If the value is out of range it will be\n" -"set to the nearest valid value." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"The time (in seconds) that the liquids queue may grow beyond processing\n" -"capacity until an attempt is made to decrease its size by dumping old queue\n" -"items. A value of 0 disables the functionality." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"The time in seconds it takes between repeated events\n" -"when holding down a joystick button combination." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"The time in seconds it takes between repeated right clicks when holding the " -"right mouse button." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "The type of joystick" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "This font will be used for certain languages." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Time in between active block management cycles" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Time in seconds for item entity (dropped items) to live.\n" -"Setting it to -1 disables the feature." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Time send interval" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Time speed" -msgstr "Tidshastighed" - -#: src/settings_translation_file.cpp -msgid "Timeout for client to remove unused map data from memory." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"To reduce lag, block transfers are slowed down when a player is building " -"something.\n" -"This determines how long they are slowed down after placing or removing a " -"node." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Toggle camera mode key" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Tooltip delay" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Trees noise" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Trilinear filtering" -msgstr "Trilineær filtrering" - -#: src/settings_translation_file.cpp -msgid "" -"True = 256\n" -"False = 128\n" -"Useable to make minimap smoother on slower machines." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Trusted mods" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Typical maximum height, above and below midpoint, of floatland mountain " -"terrain." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "URL to the server list displayed in the Multiplayer Tab." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Undersampling" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Undersampling is similar to using lower screen resolution, but it applies\n" -"to the game world only, keeping the GUI intact.\n" -"It should give significant performance boost at the cost of less detailed " -"image." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Unlimited player transfer distance" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Unload unused server data" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Use 3D cloud look instead of flat." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Use a cloud animation for the main menu background." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Use anisotropic filtering when viewing at textures from an angle." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Use bilinear filtering when scaling textures." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Use key" -msgstr "Brug-tast" - -#: src/settings_translation_file.cpp -msgid "Use mip mapping to scale textures. May slightly increase performance." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Use trilinear filtering when scaling textures." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "V-Sync" -msgstr "V-Sync" - -#: src/settings_translation_file.cpp -msgid "VBO" -msgstr "VBO" - -#: src/settings_translation_file.cpp -msgid "Valley Depth" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Valley Fill" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Valley Profile" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Valley Slope" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Valleys C Flags" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Variation of biome filler depth." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Variation of hill height and lake depth on floatland smooth terrain." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Variation of maximum mountain height (in nodes)." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Variation of number of caves." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Variation of terrain vertical scale.\n" -"When noise is < -0.55 terrain is near-flat." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Varies depth of biome surface nodes." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Varies roughness of terrain.\n" -"Defines the 'persistence' value for terrain_base and terrain_alt noises." -msgstr "" - -#: src/settings_translation_file.cpp -#, fuzzy -msgid "Varies steepness of cliffs." -msgstr "Styrer stejlheden/højden af bakkerne." - -#: src/settings_translation_file.cpp -msgid "Vertical screen synchronization." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Video driver" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "View bobbing factor" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "View distance in nodes." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "View range decrease key" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "View range increase key" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "View zoom key" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Viewing range" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Volume" -msgstr "Lydstyrke" - -#: src/settings_translation_file.cpp -msgid "" -"W co-ordinate of the generated 3D slice of a 4D fractal.\n" -"Determines which 3D slice of the 4D shape is generated.\n" -"Has no effect on 3D fractals.\n" -"Range roughly -2 to 2." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Walking speed" -msgstr "Ganghastighed" - -#: src/settings_translation_file.cpp -msgid "Water Features" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Water level" -msgstr "Vandstand" - -#: src/settings_translation_file.cpp -msgid "Water surface level of the world." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Waving Nodes" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Waving leaves" -msgstr "Bølgende blade" - -#: src/settings_translation_file.cpp -msgid "Waving plants" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Waving water" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Waving water height" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Waving water length" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Waving water speed" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"When gui_scaling_filter is true, all GUI images need to be\n" -"filtered in software, but some images are generated directly\n" -"to hardware (e.g. render-to-texture for nodes in inventory)." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"When gui_scaling_filter_txr2img is true, copy those images\n" -"from hardware to software for scaling. When false, fall back\n" -"to the old scaling method, for video drivers that don't\n" -"properly support downloading textures back from hardware." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"When using bilinear/trilinear/anisotropic filters, low-resolution textures\n" -"can be blurred, so automatically upscale them with nearest-neighbor\n" -"interpolation to preserve crisp pixels. This sets the minimum texture size\n" -"for the upscaled textures; higher values look sharper, but require more\n" -"memory. Powers of 2 are recommended. Setting this higher than 1 may not\n" -"have a visible effect unless bilinear/trilinear/anisotropic filtering is\n" -"enabled." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Whether freetype fonts are used, requires freetype support to be compiled in." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Whether node texture animations should be desynchronized per mapblock." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Whether players are shown to clients without any range limit.\n" -"Deprecated, use the setting player_transfer_distance instead." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Whether to allow players to damage and kill each other." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Whether to ask clients to reconnect after a (Lua) crash.\n" -"Set this to true if your server is set up to restart automatically." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Whether to fog out the end of the visible area." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Whether to show the client debug info (has the same effect as hitting F5)." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Whether to support older servers before protocol version 25.\n" -"Enable if you want to connect to 0.4.12 servers and before.\n" -"Servers starting with 0.4.13 will work, 0.4.12-dev servers may work.\n" -"Disabling this option will protect your password better." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Width component of the initial window size." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Width of the selectionbox's lines around nodes." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Windows systems only: Start Minetest with the command line window in the " -"background.\n" -"Contains the same information as the file debug.txt (default name)." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"World directory (everything in the world is stored here).\n" -"Not needed if starting from the main menu." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Y of flat ground." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Y of upper limit of large pseudorandom caves." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Y-distance over which caverns expand to full size." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Y-level of average terrain surface." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Y-level of cavern upper limit." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Y-level of floatland midpoint and lake surface." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Y-level of higher (cliff-top) terrain." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Y-level of lower terrain and lakebeds." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Y-level of seabed." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Y-level to which floatland shadows extend." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "block send optimize distance" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "cURL file download timeout" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "cURL parallel limit" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "cURL timeout" -msgstr "cURL-tidsudløb" - -#~ msgid "Hide mp content" -#~ msgstr "Skjul mp indhold" - -#~ msgid "Attn" -#~ msgstr "Giv agt" - -#~ msgid "Capital" -#~ msgstr "Store bogstaver" - -#~ msgid "Comma" -#~ msgstr "Komma" - -#~ msgid "CrSel" -#~ msgstr "CrSel" - -#~ msgid "ExSel" -#~ msgstr "ExSel" - -#~ msgid "Final" -#~ msgstr "Endelig" - -#~ msgid "Junja" -#~ msgstr "Junja" - -#~ msgid "Kana" -#~ msgstr "Kana" - -#~ msgid "Kanji" -#~ msgstr "Kanji" - -#~ msgid "Minus" -#~ msgstr "Minus" - -#~ msgid "PA1" -#~ msgstr "PA1" - -#~ msgid "Period" -#~ msgstr "Punktum" - -#~ msgid "Plus" -#~ msgstr "Plus" - -#~ msgid "" -#~ "Controls size of deserts and beaches in Mapgen v6.\n" -#~ "When snowbiomes are enabled 'mgv6_freq_desert' is ignored." -#~ msgstr "" -#~ "Kontroller størrelse for ørkener og strande i Mapgen v6.\n" -#~ "Når snebiomer er aktiveret ignoreres »mgv6_freq_desert«." - -#~ msgid "" -#~ "Determines terrain shape.\n" -#~ "The 3 numbers in brackets control the scale of the\n" -#~ "terrain, the 3 numbers should be identical." -#~ msgstr "" -#~ "Bestemmer terrænform.\n" -#~ "De tre tal i parenteser kontrollerer skalaen for\n" -#~ "terrænet, de tre tal skal være identiske." - -#~ msgid "Mapgen biome heat noise parameters" -#~ msgstr "Støjparametre til biotopvarme for Mapgen" - -#~ msgid "Mapgen biome humidity blend noise parameters" -#~ msgstr "Støjparametre til biotopfugtighedsblanding for Mapgen" - -#~ msgid "Mapgen flat cave width" -#~ msgstr "Mapgen - flad hulebredde" - -#~ msgid "Mapgen flat cave1 noise parameters" -#~ msgstr "Støjparametre til flade cave1 for Mapgen" - -#~ msgid "Mapgen flat cave2 noise parameters" -#~ msgstr "Støjparametre til flade cave2 for Mapgen" - -#~ msgid "Mapgen flat filler depth noise parameters" -#~ msgstr "Mapgen - støjparametre for flad fyldstofdybde" - -#~ msgid "Mapgen flat large cave depth" -#~ msgstr "Flad stor hule-dybde for Mapgen" - -#~ msgid "Mapgen flat terrain noise parameters" -#~ msgstr "Støjparametre til flad terræn for Mapgen" - -#~ msgid "Mapgen fractal cave width" -#~ msgstr "Mapgen - fraktal hulebredde" - -#~ msgid "Mapgen fractal cave1 noise parameters" -#~ msgstr "Støjparametre for Mapgen fraktal grotte1" - -#~ msgid "Mapgen fractal cave2 noise parameters" -#~ msgstr "Støjparametre for Mapgen fraktal grotte2" - -#~ msgid "Mapgen fractal filler depth noise parameters" -#~ msgstr "Mapgen - støjparametre for fraktal fyldstofdybde" - -#~ msgid "Mapgen fractal fractal" -#~ msgstr "Mapgen fraktal fraktal" - -#~ msgid "Mapgen fractal iterations" -#~ msgstr "Mapgen fraktaliterationer" - -#~ msgid "Mapgen fractal julia w" -#~ msgstr "Mapgen fraktal Julia w" - -#~ msgid "Mapgen fractal julia x" -#~ msgstr "Mapgen fraktal Julia x" - -#~ msgid "Mapgen fractal julia y" -#~ msgstr "Mapgen fraktal Julia y" - -#~ msgid "Mapgen fractal julia z" -#~ msgstr "Mapgen fraktal Julia z" - -#~ msgid "Mapgen fractal offset" -#~ msgstr "Mapgen fraktal forskydning" - -#~ msgid "Mapgen fractal scale" -#~ msgstr "Mapgen fraktal skalering" - -#~ msgid "Mapgen fractal seabed noise parameters" -#~ msgstr "Støjparametre for Mapgen fraktal havbund" - -#~ msgid "Mapgen fractal slice w" -#~ msgstr "Mapgen fraktal udsnit w" - -#~ msgid "Mapgen v5 cave width" -#~ msgstr "Mapgen v5 grottebredde" - -#~ msgid "Mapgen v5 cave1 noise parameters" -#~ msgstr "Støjparametre for Mapgen v5 grotte1" - -#~ msgid "Mapgen v5 cave2 noise parameters" -#~ msgstr "Støjparametre for Mapgen v5 grotte2" - -#~ msgid "Mapgen v5 factor noise parameters" -#~ msgstr "Støjparametre for Mapgen v5 faktor" - -#~ msgid "Mapgen v5 filler depth noise parameters" -#~ msgstr "Mapgen v5 - støjparametre for fyldstofdybde" - -#~ msgid "Mapgen v5 height noise parameters" -#~ msgstr "Mapgen v5 – støjparametre for højde" - -#~ msgid "Mapgen v6 apple trees noise parameters" -#~ msgstr "Mapgen v6 – støjparametre for æbletræer" - -#~ msgid "Mapgen v6 beach frequency" -#~ msgstr "Mapgen v6 – strandhyppighed" - -#~ msgid "Mapgen v6 beach noise parameters" -#~ msgstr "Mapgen v6 – støjparametre for strand" - -#~ msgid "Mapgen v6 biome noise parameters" -#~ msgstr "Mapgen v6 – støjparametre for økosystem" - -#~ msgid "Mapgen v6 cave noise parameters" -#~ msgstr "Mapgen v6 – støjparametre for grotter" - -#~ msgid "Mapgen v6 desert frequency" -#~ msgstr "Mapgen v6 – ørkenhyppighed" - -#~ msgid "Mapgen v7 filler depth noise parameters" -#~ msgstr "Mapgen v7 - støjparametre for fyldstofdybde" - -#~ msgid "Mapgen v7 height select noise parameters" -#~ msgstr "Mapgen v7 – støjparametre for højdevalg" - -#~ msgid "No of course not!" -#~ msgstr "Nej selvfølgelig ikke!" - -#~ msgid "Public Serverlist" -#~ msgstr "Offentlig serverliste" - -#, fuzzy -#~ msgid "If disabled " -#~ msgstr "Deaktivér alle" - -#, fuzzy -#~ msgid "If enabled, " -#~ msgstr "aktiveret" - -#, fuzzy -#~ msgid "Password" -#~ msgstr "Gammelt kodeord" - -#~ msgid "Preload item visuals" -#~ msgstr "For-indlæs elementernes grafik" - -#~ msgid "" -#~ "Warning: Some mods are not configured yet.\n" -#~ "They will be enabled by default when you save the configuration. " -#~ msgstr "" -#~ "Advarsel: nogle modifikationer er endnu ikke konfigureret.\n" -#~ "De vil blive aktiveret som standard når du gemmer konfigurationen. " - -#~ msgid "" -#~ "Warning: Some configured mods are missing.\n" -#~ "Their setting will be removed when you save the configuration. " -#~ msgstr "" -#~ "Advarsel: nogle konfigurerede modifikationer mangler.\n" -#~ "Deres indstillinger vil blive fjernet når du gemmer konfigurationen. " - -#~ msgid "Delete map" -#~ msgstr "Slet mappen" - -#~ msgid "" -#~ "Default Controls:\n" -#~ "- WASD: Walk\n" -#~ "- Mouse left: dig/hit\n" -#~ "- Mouse right: place/use\n" -#~ "- Mouse wheel: select item\n" -#~ "- 0...9: select item\n" -#~ "- Shift: sneak\n" -#~ "- R: Toggle viewing all loaded chunks\n" -#~ "- I: Inventory menu\n" -#~ "- ESC: This menu\n" -#~ "- T: Chat\n" -#~ msgstr "" -#~ "Standard bindinger:\n" -#~ "- WASD: bevægelse\n" -#~ "- Venstre musetast: grav/slå\n" -#~ "- Højre musetast: anbring/brug\n" -#~ "- Musehjul: vælg genstand\n" -#~ "- 0...9: vælg genstand\n" -#~ "- Shift: snige\n" -#~ "- R: omstil se alle indlæste klumper\n" -#~ "- I: beholdning\n" -#~ "- ESC: denne menu\n" -#~ "- T: snak\n" - -#~ msgid "Failed to delete all world files" -#~ msgstr "Mislykkedes i at slette alle verdenens filer" - -#~ msgid "Cannot configure world: Nothing selected" -#~ msgstr "Kan ikke konfigurere verden: ingenting valgt" - -#~ msgid "Cannot create world: No games found" -#~ msgstr "Kan ikke skabe verden: ingen spil fundet" - -#~ msgid "Files to be deleted" -#~ msgstr "Filer som slettes" - -#~ msgid "Cannot delete world: Nothing selected" -#~ msgstr "Kan ikke slette verden: ingenting valgt" - -#~ msgid "Address required." -#~ msgstr "Adresse påkrævet." - -#~ msgid "Create world" -#~ msgstr "Skab verden" - -#~ msgid "Leave address blank to start a local server." -#~ msgstr "Lad adresse-feltet være tomt for at starte en lokal server." - -#~ msgid "Show Favorites" -#~ msgstr "Vis favoritter" - -#~ msgid "Show Public" -#~ msgstr "Vis offentlig" - -#~ msgid "Cannot create world: Name contains invalid characters" -#~ msgstr "Kan ikke skabe verden: navnet indeholder ugyldige bogstaver" - -#~ msgid "Warning: Configuration not consistent. " -#~ msgstr "Advarsel: konfigurationen er ikke sammenhængende. " - -#~ msgid "Configuration saved. " -#~ msgstr "Konfiguration gemt. " - -#~ msgid "is required by:" -#~ msgstr "er påkrævet af:" - -#~ msgid "Left click: Move all items, Right click: Move single item" -#~ msgstr "Venstre klik: flyt alle enheder. Højre klik: flyt en enkelt enhed" - -#, fuzzy -#~ msgid "Downloading" -#~ msgstr "Ned" diff --git a/po/de/MultiCraft.po b/po/de/BlockColor.po similarity index 100% rename from po/de/MultiCraft.po rename to po/de/BlockColor.po diff --git a/po/dv/MultiCraft.po b/po/dv/BlockColor.po similarity index 100% rename from po/dv/MultiCraft.po rename to po/dv/BlockColor.po diff --git a/po/eo/MultiCraft.po b/po/eo/BlockColor.po similarity index 100% rename from po/eo/MultiCraft.po rename to po/eo/BlockColor.po diff --git a/po/es/MultiCraft.po b/po/es/BlockColor.po similarity index 100% rename from po/es/MultiCraft.po rename to po/es/BlockColor.po diff --git a/po/et/MultiCraft.po b/po/et/BlockColor.po similarity index 100% rename from po/et/MultiCraft.po rename to po/et/BlockColor.po diff --git a/po/fr/MultiCraft.po b/po/fr/BlockColor.po similarity index 100% rename from po/fr/MultiCraft.po rename to po/fr/BlockColor.po diff --git a/po/he/MultiCraft.po b/po/he/BlockColor.po similarity index 100% rename from po/he/MultiCraft.po rename to po/he/BlockColor.po diff --git a/po/hu/MultiCraft.po b/po/hu/BlockColor.po similarity index 100% rename from po/hu/MultiCraft.po rename to po/hu/BlockColor.po diff --git a/po/id/MultiCraft.po b/po/id/BlockColor.po similarity index 100% rename from po/id/MultiCraft.po rename to po/id/BlockColor.po diff --git a/po/it/MultiCraft.po b/po/it/BlockColor.po similarity index 100% rename from po/it/MultiCraft.po rename to po/it/BlockColor.po diff --git a/po/ja/MultiCraft.po b/po/ja/BlockColor.po similarity index 100% rename from po/ja/MultiCraft.po rename to po/ja/BlockColor.po diff --git a/po/jbo/MultiCraft.po b/po/jbo/BlockColor.po similarity index 100% rename from po/jbo/MultiCraft.po rename to po/jbo/BlockColor.po diff --git a/po/ko/MultiCraft.po b/po/ko/BlockColor.po similarity index 100% rename from po/ko/MultiCraft.po rename to po/ko/BlockColor.po diff --git a/po/ky/MultiCraft.po b/po/ky/BlockColor.po similarity index 100% rename from po/ky/MultiCraft.po rename to po/ky/BlockColor.po diff --git a/po/lt/MultiCraft.po b/po/lt/BlockColor.po similarity index 100% rename from po/lt/MultiCraft.po rename to po/lt/BlockColor.po diff --git a/po/ms/MultiCraft.po b/po/ms/BlockColor.po similarity index 100% rename from po/ms/MultiCraft.po rename to po/ms/BlockColor.po diff --git a/po/nb/MultiCraft.po b/po/nb/BlockColor.po similarity index 100% rename from po/nb/MultiCraft.po rename to po/nb/BlockColor.po diff --git a/po/nl/MultiCraft.po b/po/nl/BlockColor.po similarity index 100% rename from po/nl/MultiCraft.po rename to po/nl/BlockColor.po diff --git a/po/pl/MultiCraft.po b/po/pl/BlockColor.po similarity index 100% rename from po/pl/MultiCraft.po rename to po/pl/BlockColor.po diff --git a/po/pt/MultiCraft.po b/po/pt/BlockColor.po similarity index 100% rename from po/pt/MultiCraft.po rename to po/pt/BlockColor.po diff --git a/po/pt_BR/MultiCraft.po b/po/pt_BR/BlockColor.po similarity index 100% rename from po/pt_BR/MultiCraft.po rename to po/pt_BR/BlockColor.po diff --git a/po/ro/MultiCraft.po b/po/ro/BlockColor.po similarity index 100% rename from po/ro/MultiCraft.po rename to po/ro/BlockColor.po diff --git a/po/ru/BlockColor.po b/po/ru/BlockColor.po new file mode 100644 index 000000000..81336cc46 --- /dev/null +++ b/po/ru/BlockColor.po @@ -0,0 +1,5526 @@ +# SOME DESCRIPTIVE TITLE. +# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER +# This file is distributed under the same license as the PACKAGE package. +# FIRST AUTHOR , YEAR. +# +msgid "" +msgstr "" +"Project-Id-Version: minetest\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2017-05-21 17:40+0200\n" +"PO-Revision-Date: 2017-06-02 19:42+0000\n" +"Last-Translator: weqqr \n" +"Language-Team: Russian " +"\n" +"Language: ru\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Plural-Forms: nplurals=3; plural=n%10==1 && n%100!=11 ? 0 : n%10>=2 && n%10<=" +"4 && (n%100<10 || n%100>=20) ? 1 : 2;\n" +"X-Generator: Weblate 2.15-dev\n" + +#: builtin/client/init.lua +msgid "Respawn" +msgstr "Возродиться" + +#: builtin/client/init.lua +msgid "You died." +msgstr "Вы умерли." + +#: builtin/fstk/ui.lua +msgid "An error occured in a Lua script, such as a mod:" +msgstr "Ошибка в скрипте Lua, как например в моде:" + +#: builtin/fstk/ui.lua +msgid "An error occured:" +msgstr "Произошла ошибка:" + +#: builtin/fstk/ui.lua +msgid "Main menu" +msgstr "Главное меню" + +#: builtin/fstk/ui.lua builtin/mainmenu/store.lua +msgid "Ok" +msgstr "OK" + +#: builtin/fstk/ui.lua +msgid "Reconnect" +msgstr "Переподключиться" + +#: builtin/fstk/ui.lua +msgid "The server has requested a reconnect:" +msgstr "Сервер запросил переподключение:" + +#: builtin/mainmenu/common.lua src/game.cpp +msgid "Loading..." +msgstr "Загрузка..." + +#: builtin/mainmenu/common.lua +msgid "Protocol version mismatch. " +msgstr "Несоответствие версии протокола. " + +#: builtin/mainmenu/common.lua +msgid "Server enforces protocol version $1. " +msgstr "Сервер обеспечивает соблюдение версии протокола $1. " + +#: builtin/mainmenu/common.lua +msgid "Server supports protocol versions between $1 and $2. " +msgstr "Сервер поддерживает версии протокола между $1 и $2. " + +#: builtin/mainmenu/common.lua +msgid "Try reenabling public serverlist and check your internet connection." +msgstr "" +"Попробуйте обновить список публичных серверов и проверьте связь с Интернетом." + +#: builtin/mainmenu/common.lua +msgid "We only support protocol version $1." +msgstr "Поддерживается только протокол версии $1." + +#: builtin/mainmenu/common.lua +msgid "We support protocol versions between version $1 and $2." +msgstr "Мы поддерживаем версии протоколов между $1 и $2." + +#: builtin/mainmenu/dlg_config_world.lua builtin/mainmenu/dlg_create_world.lua +#: builtin/mainmenu/dlg_delete_mod.lua builtin/mainmenu/dlg_rename_modpack.lua +#: builtin/mainmenu/dlg_settings_advanced.lua src/guiKeyChangeMenu.cpp +#: src/guiPasswordChange.cpp src/keycode.cpp +msgid "Cancel" +msgstr "Отменить" + +#: builtin/mainmenu/dlg_config_world.lua builtin/mainmenu/tab_mods.lua +msgid "Dependencies:" +msgstr "Зависимости:" + +#: builtin/mainmenu/dlg_config_world.lua +msgid "Disable MP" +msgstr "Отключить мультиплеер" + +#: builtin/mainmenu/dlg_config_world.lua +msgid "Disable all" +msgstr "Отключить все" + +#: builtin/mainmenu/dlg_config_world.lua +msgid "Enable MP" +msgstr "Включить мультиплеер" + +#: builtin/mainmenu/dlg_config_world.lua +msgid "Enable all" +msgstr "Включить всё" + +#: builtin/mainmenu/dlg_config_world.lua +msgid "" +"Failed to enable mod \"$1\" as it contains disallowed characters. Only " +"chararacters [a-z0-9_] are allowed." +msgstr "" +"Не удалось включить мод \"$1\", так как он содержит недопустимые символы. " +"Разрешены только следующие символы: [a-z0-9_]." + +#: builtin/mainmenu/dlg_config_world.lua +msgid "Mod:" +msgstr "Мод:" + +#: builtin/mainmenu/dlg_config_world.lua builtin/mainmenu/tab_mods.lua +msgid "Optional dependencies:" +msgstr "Необязательные зависимости:" + +#: builtin/mainmenu/dlg_config_world.lua +#: builtin/mainmenu/dlg_settings_advanced.lua src/guiKeyChangeMenu.cpp +msgid "Save" +msgstr "Сохранить" + +#: builtin/mainmenu/dlg_config_world.lua +msgid "World:" +msgstr "Мир:" + +#: builtin/mainmenu/dlg_config_world.lua +msgid "enabled" +msgstr "включено" + +#: builtin/mainmenu/dlg_create_world.lua +msgid "A world named \"$1\" already exists" +msgstr "Мир под названием \"$1\" уже существует" + +#: builtin/mainmenu/dlg_create_world.lua +msgid "Create" +msgstr "Создать" + +#: builtin/mainmenu/dlg_create_world.lua +msgid "Download a subgame, such as minetest_game, from minetest.net" +msgstr "Скачивайте мини-игры, такие как minetest_game, на minetest.net" + +#: builtin/mainmenu/dlg_create_world.lua +msgid "Download one from minetest.net" +msgstr "Загрузите их с minetest.net" + +#: builtin/mainmenu/dlg_create_world.lua +msgid "No worldname given or no game selected" +msgstr "Не задано имя мира или не выбрана игра" + +#: builtin/mainmenu/dlg_create_world.lua +msgid "Seed" +msgstr "Зерно" + +#: builtin/mainmenu/dlg_create_world.lua +msgid "Warning: The minimal development test is meant for developers." +msgstr "" +"Внимание: \"Minimal development test\" в основном предназначен для " +"разработчиков." + +#: builtin/mainmenu/dlg_create_world.lua +msgid "World name" +msgstr "Название мира" + +#: builtin/mainmenu/dlg_create_world.lua +msgid "You have no subgames installed." +msgstr "У вас не установлены мини-игры." + +#: builtin/mainmenu/dlg_delete_mod.lua +msgid "Are you sure you want to delete \"$1\"?" +msgstr "Уверены, что хотите удалить \"$1\"?" + +#: builtin/mainmenu/dlg_delete_mod.lua builtin/mainmenu/dlg_delete_world.lua +#: builtin/mainmenu/tab_local.lua src/keycode.cpp +msgid "Delete" +msgstr "Удалить" + +#: builtin/mainmenu/dlg_delete_mod.lua +msgid "Modmgr: failed to delete \"$1\"" +msgstr "Modmgr: невозможно удалить \"$1\"" + +#: builtin/mainmenu/dlg_delete_mod.lua +msgid "Modmgr: invalid modpath \"$1\"" +msgstr "Modmgr: неправильный путь к \"$1\"" + +#: builtin/mainmenu/dlg_delete_world.lua +msgid "Delete World \"$1\"?" +msgstr "Удалить мир \"$1\"?" + +#: builtin/mainmenu/dlg_rename_modpack.lua +msgid "Accept" +msgstr "Принять" + +#: builtin/mainmenu/dlg_rename_modpack.lua +msgid "Rename Modpack:" +msgstr "Переименовать модпак:" + +#: builtin/mainmenu/dlg_settings_advanced.lua +msgid "\"$1\" is not a valid flag." +msgstr "\"$1\" не является валидным флагом." + +#: builtin/mainmenu/dlg_settings_advanced.lua +msgid "(No description of setting given)" +msgstr "(Отсутствует описание настройки)" + +#: builtin/mainmenu/dlg_settings_advanced.lua +msgid "< Back to Settings page" +msgstr "< Назад к странице настроек" + +#: builtin/mainmenu/dlg_settings_advanced.lua +msgid "Browse" +msgstr "Выбрать" + +#: builtin/mainmenu/dlg_settings_advanced.lua +msgid "Disabled" +msgstr "Отключено" + +#: builtin/mainmenu/dlg_settings_advanced.lua +msgid "Edit" +msgstr "Править" + +#: builtin/mainmenu/dlg_settings_advanced.lua +msgid "Enabled" +msgstr "Включено" + +#: builtin/mainmenu/dlg_settings_advanced.lua +msgid "Format is 3 numbers separated by commas and inside brackets." +msgstr "Формат 3 цифры через запятую в скобках." + +#: builtin/mainmenu/dlg_settings_advanced.lua +msgid "" +"Format: , , (, , ), , " +", " +msgstr "" +"Формат: <Смещение>,<Масштаб>, (<По оси X>,<По оси Y>,<По оси Z>), <Зерно>, " +"<Октавы>,<Постоянство>" + +#: builtin/mainmenu/dlg_settings_advanced.lua +msgid "Games" +msgstr "Игры" + +#: builtin/mainmenu/dlg_settings_advanced.lua builtin/mainmenu/tab_mods.lua +msgid "Mods" +msgstr "Моды" + +#: builtin/mainmenu/dlg_settings_advanced.lua +msgid "Optionally the lacunarity can be appended with a leading comma." +msgstr "Опционально лакунарностью могут быть добавлены с ведущей запятой." + +#: builtin/mainmenu/dlg_settings_advanced.lua +msgid "Please enter a comma seperated list of flags." +msgstr "Пожалуйста, вводите запятые для разделения списка флагов." + +#: builtin/mainmenu/dlg_settings_advanced.lua +msgid "Please enter a valid integer." +msgstr "Введите допустимое целое число." + +#: builtin/mainmenu/dlg_settings_advanced.lua +msgid "Please enter a valid number." +msgstr "Пожалуйста, введите правильное число." + +#: builtin/mainmenu/dlg_settings_advanced.lua +msgid "Possible values are: " +msgstr "Возможные значения: " + +#: builtin/mainmenu/dlg_settings_advanced.lua +msgid "Restore Default" +msgstr "Сброс по умолчанию" + +#: builtin/mainmenu/dlg_settings_advanced.lua builtin/mainmenu/store.lua +#: builtin/mainmenu/tab_online.lua +msgid "Search" +msgstr "Поиск" + +#: builtin/mainmenu/dlg_settings_advanced.lua +msgid "Select path" +msgstr "Выбрать путь" + +#: builtin/mainmenu/dlg_settings_advanced.lua +msgid "Show technical names" +msgstr "Отобразить технические названия" + +#: builtin/mainmenu/dlg_settings_advanced.lua +msgid "The value must be at least $1." +msgstr "Значение должно быть больше или равно $1." + +#: builtin/mainmenu/dlg_settings_advanced.lua +msgid "The value must not be larger than $1." +msgstr "Значение не должно быть больше, чем $1." + +#: builtin/mainmenu/modmgr.lua +msgid "" +"\n" +"Install Mod: unsupported filetype \"$1\" or broken archive" +msgstr "" +"\n" +"Установка мода: неподдерживаемый тип файла \"$1\" или повреждённый архив" + +#: builtin/mainmenu/modmgr.lua +msgid "Failed to install $1 to $2" +msgstr "Невозможно установить $1 в $2" + +#: builtin/mainmenu/modmgr.lua +msgid "Install Mod: file: \"$1\"" +msgstr "Установка мода: файл \"$1\"" + +#: builtin/mainmenu/modmgr.lua +msgid "Install Mod: unable to find real modname for: $1" +msgstr "Установка мода: невозможно определить название мода для $1" + +#: builtin/mainmenu/modmgr.lua +msgid "Install Mod: unable to find suitable foldername for modpack $1" +msgstr "" +"Установка мода: невозможно найти подходящее имя директории для модпака $1" + +#: builtin/mainmenu/modmgr.lua +msgid "Subgame Mods" +msgstr "Моды игры" + +#: builtin/mainmenu/store.lua +msgid "Close store" +msgstr "Закрыть хранилище" + +#: builtin/mainmenu/store.lua +msgid "Downloading $1, please wait..." +msgstr "Загрузка $1, ждите..." + +#: builtin/mainmenu/store.lua +msgid "Install" +msgstr "Установить" + +#: builtin/mainmenu/store.lua +msgid "Page $1 of $2" +msgstr "Страница $1 из $2" + +#: builtin/mainmenu/store.lua +msgid "Rating" +msgstr "Рейтинг" + +#: builtin/mainmenu/store.lua +msgid "Shortname:" +msgstr "Краткое имя:" + +#: builtin/mainmenu/store.lua +msgid "Successfully installed:" +msgstr "Успешно установлено:" + +#: builtin/mainmenu/store.lua +msgid "Unsorted" +msgstr "Не сортировано" + +#: builtin/mainmenu/store.lua +msgid "re-Install" +msgstr "Переустановить" + +#: builtin/mainmenu/tab_credits.lua +msgid "Active Contributors" +msgstr "Активные контрибьюторы" + +#: builtin/mainmenu/tab_credits.lua +msgid "Credits" +msgstr "Благодарности" + +#: builtin/mainmenu/tab_credits.lua +msgid "Dedication of the current release" +msgstr "" + +#: builtin/mainmenu/tab_credits.lua +msgid "Minetest Developers" +msgstr "Minetest разработчики" + +#: builtin/mainmenu/tab_credits.lua +msgid "BlockColor Developers" +msgstr "BlockColor разработчики" + +#: builtin/mainmenu/tab_credits.lua +msgid "MultiCraft Developers" +msgstr "MultiCraft разработчики" + +#: builtin/mainmenu/tab_credits.lua +msgid "Previous Contributors" +msgstr "Контрибьюторы в отставке" + +#: builtin/mainmenu/tab_credits.lua +msgid "Previous Core Developers" +msgstr "Разработчики в отставке" + +#: builtin/mainmenu/tab_local.lua +msgid "Announce Server" +msgstr "Публичный сервер" + +#: builtin/mainmenu/tab_local.lua +msgid "Bind Address" +msgstr "Адрес" + +#: builtin/mainmenu/tab_local.lua +msgid "Configure" +msgstr "Настроить" + +#: builtin/mainmenu/tab_local.lua builtin/mainmenu/tab_simple_main.lua +msgid "Creative Mode" +msgstr "Креатив" + +#: builtin/mainmenu/tab_local.lua builtin/mainmenu/tab_simple_main.lua +msgid "Enable Damage" +msgstr "Включить урон" + +#: builtin/mainmenu/tab_local.lua +msgid "Host Game" +msgstr "Играть (хост)" + +#: builtin/mainmenu/tab_local.lua +msgid "Host Server" +msgstr "Запустить сервер" + +#: builtin/mainmenu/tab_local.lua +msgid "Singleplayer" +msgstr "Одиночная игра" + +#: builtin/mainmenu/tab_local.lua +msgid "Name/Password" +msgstr "Имя / Пароль" + +#: builtin/mainmenu/tab_local.lua +msgid "New" +msgstr "Новый" + +#: builtin/mainmenu/tab_local.lua +msgid "No world created or selected!" +msgstr "Мир не создан или не выбран!" + +#: builtin/mainmenu/tab_local.lua +msgid "Play Game" +msgstr "Играть" + +#: builtin/mainmenu/tab_local.lua +msgid "Port" +msgstr "Порт" + +#: builtin/mainmenu/tab_local.lua +msgid "Select World:" +msgstr "Выберите мир:" + +#: builtin/mainmenu/tab_local.lua +msgid "Server Port" +msgstr "Порт сервера" + +#: builtin/mainmenu/tab_mods.lua +msgid "Installed Mods:" +msgstr "Установленные моды:" + +#: builtin/mainmenu/tab_mods.lua +msgid "Mod information:" +msgstr "Описание мода:" + +#: builtin/mainmenu/tab_mods.lua +msgid "No dependencies." +msgstr "Нет зависимостей." + +#: builtin/mainmenu/tab_mods.lua +msgid "No mod description available" +msgstr "Описание мода недоступно" + +#: builtin/mainmenu/tab_mods.lua +msgid "Rename" +msgstr "Переименовать" + +#: builtin/mainmenu/tab_mods.lua +msgid "Select Mod File:" +msgstr "Выберите файл мода:" + +#: builtin/mainmenu/tab_mods.lua +msgid "Uninstall selected mod" +msgstr "Удалить выбранный мод" + +#: builtin/mainmenu/tab_mods.lua +msgid "Uninstall selected modpack" +msgstr "Удалить выбранный мод-пак" + +#: builtin/mainmenu/tab_online.lua +msgid "Address / Port" +msgstr "Адрес / Порт" + +#: builtin/mainmenu/tab_online.lua builtin/mainmenu/tab_simple_main.lua +msgid "Connect" +msgstr "Подключиться" + +#: builtin/mainmenu/tab_online.lua builtin/mainmenu/tab_simple_main.lua +msgid "Creative mode" +msgstr "Режим творчества" + +#: builtin/mainmenu/tab_online.lua builtin/mainmenu/tab_simple_main.lua +msgid "Damage enabled" +msgstr "Урон включен" + +#: builtin/mainmenu/tab_online.lua builtin/mainmenu/tab_simple_main.lua +msgid "Del. Favorite" +msgstr "Удалить фаворит" + +#: builtin/mainmenu/tab_online.lua builtin/mainmenu/tab_simple_main.lua +msgid "Favorite" +msgstr "фаворит" + +#: builtin/mainmenu/tab_online.lua builtin/mainmenu/tab_simple_main.lua +msgid "Name / Password" +msgstr "Имя / Пароль" + +#: builtin/mainmenu/tab_online.lua builtin/mainmenu/tab_simple_main.lua +msgid "Ping" +msgstr "Пинг" + +#: builtin/mainmenu/tab_online.lua +msgid "Multiplayer" +msgstr "Мультиплеер" + +#: builtin/mainmenu/tab_online.lua builtin/mainmenu/tab_simple_main.lua +msgid "PvP enabled" +msgstr "PvP разрешён" + +#: builtin/mainmenu/tab_server.lua +msgid "Survival Mode" +msgstr "Режим выживания" + +#: builtin/mainmenu/tab_settings.lua +msgid "2x" +msgstr "2x" + +#: builtin/mainmenu/tab_settings.lua +msgid "3D Clouds" +msgstr "3D облака" + +#: builtin/mainmenu/tab_settings.lua +msgid "4x" +msgstr "4x" + +#: builtin/mainmenu/tab_settings.lua +msgid "8x" +msgstr "8x" + +#: builtin/mainmenu/tab_settings.lua +msgid "Advanced Settings" +msgstr "Расширенные настройки" + +#: builtin/mainmenu/tab_settings.lua +msgid "Antialiasing:" +msgstr "Антиалиасинг:" + +#: builtin/mainmenu/tab_settings.lua +msgid "Are you sure to reset your singleplayer world?" +msgstr "Уверены, что хотите сбросить мир одиночной игры?" + +#: builtin/mainmenu/tab_settings.lua +msgid "Autosave screen size" +msgstr "Автоматически сохранять размер окна" + +#: builtin/mainmenu/tab_settings.lua +msgid "Bilinear Filter" +msgstr "Билинейная фильтрация" + +#: builtin/mainmenu/tab_settings.lua +msgid "Bump Mapping" +msgstr "Бампмаппинг" + +#: builtin/mainmenu/tab_settings.lua +msgid "Change keys" +msgstr "Смена управления" + +#: builtin/mainmenu/tab_settings.lua +msgid "Connected Glass" +msgstr "Стёкла без швов" + +#: builtin/mainmenu/tab_settings.lua +msgid "Fancy Leaves" +msgstr "Красивая листва" + +#: builtin/mainmenu/tab_settings.lua +msgid "Mipmap" +msgstr "Мипмаппинг" + +#: builtin/mainmenu/tab_settings.lua +msgid "Mipmap + Aniso. Filter" +msgstr "Мипмаппинг с анизотр. фильтром" + +#: builtin/mainmenu/tab_settings.lua +msgid "No Filter" +msgstr "Без Фильтров" + +#: builtin/mainmenu/tab_settings.lua +msgid "No Mipmap" +msgstr "Без Мипмаппинга" + +#: builtin/mainmenu/tab_settings.lua +msgid "Node Highlighting" +msgstr "Подсветка нод" + +#: builtin/mainmenu/tab_settings.lua +msgid "Node Outlining" +msgstr "Обводка нод" + +#: builtin/mainmenu/tab_settings.lua builtin/mainmenu/tab_texturepacks.lua +msgid "None" +msgstr "Ничего" + +#: builtin/mainmenu/tab_settings.lua +msgid "Normal Mapping" +msgstr "Карты нормалей" + +#: builtin/mainmenu/tab_settings.lua +msgid "Opaque Leaves" +msgstr "Непрозрачная листва" + +#: builtin/mainmenu/tab_settings.lua +msgid "Opaque Water" +msgstr "Непрозрачная вода" + +#: builtin/mainmenu/tab_settings.lua src/settings_translation_file.cpp +msgid "Parallax Occlusion" +msgstr "Parallax Occlusion" + +#: builtin/mainmenu/tab_settings.lua +msgid "Particles" +msgstr "Частицы" + +#: builtin/mainmenu/tab_settings.lua +msgid "Reset singleplayer world" +msgstr "Сброс одиночной игры" + +#: builtin/mainmenu/tab_settings.lua +msgid "Screen:" +msgstr "Экран:" + +#: builtin/mainmenu/tab_settings.lua +msgid "Settings" +msgstr "Настройки" + +#: builtin/mainmenu/tab_settings.lua src/settings_translation_file.cpp +msgid "Shaders" +msgstr "Шейдеры" + +#: builtin/mainmenu/tab_settings.lua +msgid "Simple Leaves" +msgstr "Упрощённая листва" + +#: builtin/mainmenu/tab_settings.lua +msgid "Smooth Lighting" +msgstr "Мягкое освещение" + +#: builtin/mainmenu/tab_settings.lua +msgid "Texturing:" +msgstr "Текстурирование:" + +#: builtin/mainmenu/tab_settings.lua +msgid "To enable shaders the OpenGL driver needs to be used." +msgstr "Для включения шейдеров необходим драйвер OpenGL." + +#: builtin/mainmenu/tab_settings.lua src/settings_translation_file.cpp +msgid "Tone Mapping" +msgstr "Тональное отображение" + +#: builtin/mainmenu/tab_settings.lua +msgid "Touchthreshold (px)" +msgstr "Чувствительность (пк)" + +#: builtin/mainmenu/tab_settings.lua +msgid "Trilinear Filter" +msgstr "Трилинейная фильтрация" + +#: builtin/mainmenu/tab_settings.lua +msgid "Waving Leaves" +msgstr "Покачивание листвы" + +#: builtin/mainmenu/tab_settings.lua +msgid "Waving Plants" +msgstr "Покачивание растений" + +#: builtin/mainmenu/tab_settings.lua +msgid "Waving Water" +msgstr "Волны на воде" + +#: builtin/mainmenu/tab_texturepacks.lua +msgid "No information available" +msgstr "Описание отсутствует" + +#: builtin/mainmenu/tab_texturepacks.lua +msgid "Select texture pack:" +msgstr "Выберите пакет текстур:" + +#: builtin/mainmenu/tab_texturepacks.lua +msgid "Texturepacks" +msgstr "Пакеты текстур" + +#: src/client.cpp +msgid "Connection timed out." +msgstr "Тайм-аут соединения." + +#: src/client.cpp +msgid "Done!" +msgstr "Готово!" + +#: src/client.cpp +msgid "Initializing nodes" +msgstr "Инициирование нод" + +#: src/client.cpp +msgid "Initializing nodes..." +msgstr "Инициирование нод..." + +#: src/client.cpp +msgid "Loading textures..." +msgstr "Загрузка текстур..." + +#: src/client.cpp +msgid "Rebuilding shaders..." +msgstr "Сборка шейдеров..." + +#: src/client/clientlauncher.cpp +msgid "Connection error (timed out?)" +msgstr "Ошибка соединения (таймаут?)" + +#: src/client/clientlauncher.cpp +msgid "Could not find or load game \"" +msgstr "Невозможно найти или загрузить игру \"" + +#: src/client/clientlauncher.cpp +msgid "Invalid gamespec." +msgstr "Неправильная конфигурация игры." + +#: src/client/clientlauncher.cpp +msgid "Main Menu" +msgstr "Главное меню" + +#: src/client/clientlauncher.cpp +msgid "No world selected and no address provided. Nothing to do." +msgstr "Не выбран мир и не введен адрес. Нечего делать." + +#: src/client/clientlauncher.cpp +msgid "Player name too long." +msgstr "Имя игрока слишком длинное." + +#: src/client/clientlauncher.cpp +msgid "Please choose a name!" +msgstr "Пожалуйста, выберите имя!" + +#: src/client/clientlauncher.cpp +msgid "Provided world path doesn't exist: " +msgstr "По этому пути мира нет: " + +#: src/fontengine.cpp +msgid "needs_fallback_font" +msgstr "needs_fallback_font" + +#: src/game.cpp +msgid "" +"\n" +"Check debug.txt for details." +msgstr "" +"\n" +"Подробная информация в debug.txt." + +#: src/game.cpp +msgid "- Address: " +msgstr "- Адрес: " + +#: src/game.cpp +msgid "- Creative Mode: " +msgstr "- Режим творчества: " + +#: src/game.cpp +msgid "- Damage: " +msgstr "- Урон: " + +#: src/game.cpp +msgid "- Mode: " +msgstr "- Режим: " + +#: src/game.cpp +msgid "- Port: " +msgstr "- Порт: " + +#: src/game.cpp +msgid "- Public: " +msgstr "- Публичный: " + +#: src/game.cpp +msgid "- PvP: " +msgstr "- PvP: " + +#: src/game.cpp +msgid "- Server Name: " +msgstr "- Имя сервера: " + +#: src/game.cpp +msgid "Change Keys" +msgstr "Смена управления" + +#: src/game.cpp +msgid "Change Password" +msgstr "Изменить пароль" + +#: src/game.cpp +msgid "Close game" +msgstr "Закрыть игру" + +#: src/game.cpp +msgid "Connecting to server..." +msgstr "Подключение к серверу..." + +#: src/game.cpp +msgid "Continue" +msgstr "Продолжить" + +#: src/game.cpp +#, c-format +msgid "" +"Controls:\n" +"- %s: move forwards\n" +"- %s: move backwards\n" +"- %s: move left\n" +"- %s: move right\n" +"- %s: jump/climb\n" +"- %s: sneak/go down\n" +"- %s: drop item\n" +"- %s: inventory\n" +"- Mouse: turn/look\n" +"- Mouse left: dig/punch\n" +"- Mouse right: place/use\n" +"- Mouse wheel: select item\n" +"- %s: chat\n" +msgstr "" +"Управление:\n" +"- %s: двигаться вперёд\n" +"- %s: двигаться назад\n" +"- %s: двигаться влево\n" +"- %s: двигаться вправо\n" +"- %s: прыжок/подъём\n" +"- %s: красться/спуститься\n" +"- %s: бросить предмет\n" +"- %s: инвентарь\n" +"- Мышка: поворот\n" +"- ЛКМ: копать/удар\n" +"- ПКМ: поставить/использовать\n" +"- Колесико мыши: выбор предмета\n" +"- %s: чат\n" + +#: src/game.cpp +msgid "Creating client..." +msgstr "Создание клиента..." + +#: src/game.cpp +msgid "Creating server..." +msgstr "Создание сервера..." + +#: src/game.cpp +msgid "" +"Default Controls:\n" +"No menu visible:\n" +"- single tap: button activate\n" +"- double tap: place/use\n" +"- slide finger: look around\n" +"Menu/Inventory visible:\n" +"- double tap (outside):\n" +" -->close\n" +"- touch stack, touch slot:\n" +" --> move stack\n" +"- touch&drag, tap 2nd finger\n" +" --> place single item to slot\n" +msgstr "" +"Управление по умолчанию:\n" +"Не в меню:\n" +"- одно нажатие: кнопка активаций\n" +"- двойное нажатие: положить/использовать\n" +"- скольжение пальцем: осмотреться\n" +"В меню/инвертаре:\n" +"- двойное нажатие (вне меню)\n" +"--> закрыть меню\n" +"- Нажать на стопку, затем на ячейку:\n" +"--> Двигать стопку\n" +"- Потащить одним пальцем стопку в нужную ячейку, нажать вторым пальцем на " +"экран:\n" +"--> Положить один предмет в ячейку\n" + +#: src/game.cpp +msgid "Exit to OS" +msgstr "Выход в ОС" + +#: src/game.cpp +msgid "Exit to Menu" +msgstr "Выход в меню" + +#: src/game.cpp +msgid "Game info:" +msgstr "Информация о игре:" + +#: src/game.cpp +msgid "Game paused" +msgstr "Пауза" + +#: src/game.cpp +msgid "Hosting server" +msgstr "Локальный сервер" + +#: src/game.cpp +msgid "Item definitions..." +msgstr "Описания предметов..." + +#: src/game.cpp +msgid "KiB/s" +msgstr "КиБ/с" + +#: src/game.cpp +msgid "Media..." +msgstr "Загрузка..." + +#: src/game.cpp +msgid "MiB/s" +msgstr "МиБ/с" + +#: src/game.cpp +msgid "Migrating world..." +msgstr "Обновление мира..." + +#: src/game.cpp +msgid "Node definitions..." +msgstr "Описания нод..." + +#: src/game.cpp +msgid "Off" +msgstr "Выкл." + +#: src/game.cpp +msgid "On" +msgstr "Вкл." + +#: src/game.cpp +msgid "Remote server" +msgstr "Удаленный сервер" + +#: src/game.cpp +msgid "Resolving address..." +msgstr "Получение адреса..." + +#: src/game.cpp +msgid "Save and Exit" +msgstr "Сохранить и Выйти" + +#: src/game.cpp +msgid "Shutting down..." +msgstr "Завершение..." + +#: src/game.cpp +#msgid "Singleplayer" +#msgstr "Одиночная игра" + +#: src/game.cpp +msgid "Sound Volume" +msgstr "Громкость звука" + +#: src/game.cpp +#, c-format +msgid "Volume changed to %d%%" +msgstr "Громкость изменена на %d%%" + +#: src/game.cpp +msgid "Volume changed to 0%" +msgstr "Громкость изменена на 0%" + +#: src/game.cpp +msgid "Volume changed to 100%" +msgstr "Громкость изменена на 100%" + +#: src/game.cpp src/guiFormSpecMenu.cpp +msgid "ok" +msgstr "OK" + +#: src/guiFormSpecMenu.cpp +msgid "Enter " +msgstr "Введите " + +#: src/guiFormSpecMenu.cpp +msgid "Proceed" +msgstr "Продолжить" + +#: src/guiKeyChangeMenu.cpp +msgid "\"Use\" = climb down" +msgstr "\"Использовать\" = вниз" + +#: src/guiKeyChangeMenu.cpp +msgid "Backward" +msgstr "Назад" + +#: src/guiKeyChangeMenu.cpp +msgid "Chat" +msgstr "Чат" + +#: src/guiKeyChangeMenu.cpp +msgid "Command" +msgstr "Команда" + +#: src/guiKeyChangeMenu.cpp +msgid "Console" +msgstr "Консоль" + +#: src/guiKeyChangeMenu.cpp +msgid "Dec. volume" +msgstr "Уменьш. громкость" + +#: src/guiKeyChangeMenu.cpp +msgid "Double tap \"jump\" to toggle fly" +msgstr "Двойной прыжок = летать" + +#: src/guiKeyChangeMenu.cpp +msgid "Drop" +msgstr "Бросить" + +#: src/guiKeyChangeMenu.cpp +msgid "Forward" +msgstr "Вперед" + +#: src/guiKeyChangeMenu.cpp +msgid "Inc. volume" +msgstr "Увелич. громкость" + +#: src/guiKeyChangeMenu.cpp +msgid "Inventory" +msgstr "Инвентарь" + +#: src/guiKeyChangeMenu.cpp +msgid "Jump" +msgstr "Прыжок" + +#: src/guiKeyChangeMenu.cpp +msgid "Key already in use" +msgstr "Клавиша уже используется" + +#: src/guiKeyChangeMenu.cpp +msgid "" +"Keybindings. (If this menu screws up, remove stuff from blockcolor.conf)" +msgstr "" +"Сочетания клавиш. (Если это меню сломалось, удалите настройки из blockcolor." +"conf)" + +#: src/guiKeyChangeMenu.cpp src/keycode.cpp +msgid "Left" +msgstr "Влево" + +#: src/guiKeyChangeMenu.cpp +msgid "Local command" +msgstr "Локальная команда" + +#: src/guiKeyChangeMenu.cpp +msgid "Mute" +msgstr "Выключить звук" + +#: src/guiKeyChangeMenu.cpp +msgid "Next item" +msgstr "Следующий предмет" + +#: src/guiKeyChangeMenu.cpp +msgid "Prev. item" +msgstr "Предыдущий предмет" + +#: src/guiKeyChangeMenu.cpp src/settings_translation_file.cpp +msgid "Print stacks" +msgstr "Печать стеков" + +#: src/guiKeyChangeMenu.cpp +msgid "Range select" +msgstr "Зона видимости" + +#: src/guiKeyChangeMenu.cpp src/keycode.cpp +msgid "Right" +msgstr "Вправо" + +#: src/guiKeyChangeMenu.cpp +msgid "Sneak" +msgstr "Красться" + +#: src/guiKeyChangeMenu.cpp +msgid "Toggle Cinematic" +msgstr "Киношность" + +#: src/guiKeyChangeMenu.cpp +msgid "Toggle fast" +msgstr "Ускорение" + +#: src/guiKeyChangeMenu.cpp +msgid "Toggle fly" +msgstr "Полёт" + +#: src/guiKeyChangeMenu.cpp +msgid "Toggle noclip" +msgstr "Включить noclip" + +#: src/guiKeyChangeMenu.cpp +msgid "Use" +msgstr "Использовать" + +#: src/guiKeyChangeMenu.cpp src/keycode.cpp +msgid "Zoom" +msgstr "Масштаб" + +#: src/guiKeyChangeMenu.cpp +msgid "press key" +msgstr "нажмите клавишу" + +#: src/guiPasswordChange.cpp +msgid "Change" +msgstr "Изменить" + +#: src/guiPasswordChange.cpp +msgid "Confirm Password" +msgstr "Подтверждение пароля" + +#: src/guiPasswordChange.cpp +msgid "New Password" +msgstr "Новый пароль" + +#: src/guiPasswordChange.cpp +msgid "Old Password" +msgstr "Старый пароль" + +#: src/guiPasswordChange.cpp +msgid "Passwords do not match!" +msgstr "Пароли не совпадают!" + +#: src/guiVolumeChange.cpp +msgid "Exit" +msgstr "Выход" + +#: src/guiVolumeChange.cpp +msgid "Sound Volume: " +msgstr "Громкость звука: " + +#: src/keycode.cpp +msgid "Apps" +msgstr "Приложения" + +#: src/keycode.cpp +msgid "Back" +msgstr "Назад" + +#: src/keycode.cpp +msgid "Caps Lock" +msgstr "Caps Lock" + +#: src/keycode.cpp +msgid "Clear" +msgstr "Очистить" + +#: src/keycode.cpp +msgid "Control" +msgstr "Ctrl" + +#: src/keycode.cpp +msgid "Down" +msgstr "Вниз" + +#: src/keycode.cpp +msgid "End" +msgstr "End" + +#: src/keycode.cpp +msgid "Erase EOF" +msgstr "Стереть EOF" + +#: src/keycode.cpp +msgid "Execute" +msgstr "Выполнить" + +#: src/keycode.cpp +msgid "Help" +msgstr "Справка" + +#: src/keycode.cpp +msgid "Home" +msgstr "Home" + +#: src/keycode.cpp +msgid "IME Accept" +msgstr "IME Accept" + +#: src/keycode.cpp +msgid "IME Convert" +msgstr "IME Convert" + +#: src/keycode.cpp +msgid "IME Escape" +msgstr "IME Escape" + +#: src/keycode.cpp +msgid "IME Mode Change" +msgstr "IME Mode Change" + +#: src/keycode.cpp +msgid "IME Nonconvert" +msgstr "IME Nonconvert" + +#: src/keycode.cpp +msgid "Insert" +msgstr "Insert" + +#: src/keycode.cpp +msgid "Left Button" +msgstr "Левая кнопка" + +#: src/keycode.cpp +msgid "Left Control" +msgstr "Левый Ctrl" + +#: src/keycode.cpp +msgid "Left Menu" +msgstr "Левая клавиша меню" + +#: src/keycode.cpp +msgid "Left Shift" +msgstr "Левый Shift" + +#: src/keycode.cpp +msgid "Left Windows" +msgstr "Левая кл. Win" + +#: src/keycode.cpp +msgid "Menu" +msgstr "Меню" + +#: src/keycode.cpp +msgid "Middle Button" +msgstr "Средняя кнопка" + +#: src/keycode.cpp +msgid "Next" +msgstr "Next" + +#: src/keycode.cpp +msgid "Num Lock" +msgstr "Num Lock" + +#: src/keycode.cpp +msgid "Numpad *" +msgstr "Доп. клав. *" + +#: src/keycode.cpp +msgid "Numpad +" +msgstr "Доп. клав. +" + +#: src/keycode.cpp +msgid "Numpad -" +msgstr "Доп. клав. -" + +#: src/keycode.cpp +msgid "Numpad ." +msgstr "Цифр. клав. '.'" + +#: src/keycode.cpp +msgid "Numpad /" +msgstr "Доп. клав. /" + +#: src/keycode.cpp +msgid "Numpad 0" +msgstr "Доп. клав. 0" + +#: src/keycode.cpp +msgid "Numpad 1" +msgstr "Доп. клав. 1" + +#: src/keycode.cpp +msgid "Numpad 2" +msgstr "Доп. клав. 2" + +#: src/keycode.cpp +msgid "Numpad 3" +msgstr "Доп. клав. 3" + +#: src/keycode.cpp +msgid "Numpad 4" +msgstr "Доп. клав. 4" + +#: src/keycode.cpp +msgid "Numpad 5" +msgstr "Доп. клав. 5" + +#: src/keycode.cpp +msgid "Numpad 6" +msgstr "Доп. клав. 6" + +#: src/keycode.cpp +msgid "Numpad 7" +msgstr "Доп. клав. 7" + +#: src/keycode.cpp +msgid "Numpad 8" +msgstr "Доп. клав. 8" + +#: src/keycode.cpp +msgid "Numpad 9" +msgstr "Доп. клав. 9" + +#: src/keycode.cpp +msgid "OEM Clear" +msgstr "Очистить OEM" + +#: src/keycode.cpp +msgid "Pause" +msgstr "Пауза" + +#: src/keycode.cpp +msgid "Play" +msgstr "Играть" + +#: src/keycode.cpp +msgid "Print" +msgstr "Print" + +#: src/keycode.cpp +msgid "Prior" +msgstr "Prior" + +#: src/keycode.cpp +msgid "Return" +msgstr "Вернуться" + +#: src/keycode.cpp +msgid "Right Button" +msgstr "Правая кнопка" + +#: src/keycode.cpp +msgid "Right Control" +msgstr "Правый Ctrl" + +#: src/keycode.cpp +msgid "Right Menu" +msgstr "Правая клавиша меню" + +#: src/keycode.cpp +msgid "Right Shift" +msgstr "Правый Shift" + +#: src/keycode.cpp +msgid "Right Windows" +msgstr "Прав. кл. Win" + +#: src/keycode.cpp +msgid "Scroll Lock" +msgstr "Scroll Lock" + +#: src/keycode.cpp +msgid "Select" +msgstr "Выбор" + +#: src/keycode.cpp +msgid "Shift" +msgstr "Shift" + +#: src/keycode.cpp +msgid "Sleep" +msgstr "Sleep" + +#: src/keycode.cpp +msgid "Snapshot" +msgstr "Cнимок" + +#: src/keycode.cpp +msgid "Space" +msgstr "Пробел" + +#: src/keycode.cpp +msgid "Tab" +msgstr "Tab" + +#: src/keycode.cpp +msgid "Up" +msgstr "Вверх" + +#: src/keycode.cpp +msgid "X Button 1" +msgstr "Доп. кнопка 1" + +#: src/keycode.cpp +msgid "X Button 2" +msgstr "Доп. кнопка 2" + +#: src/settings_translation_file.cpp +msgid "" +"(X,Y,Z) offset of fractal from world centre in units of 'scale'.\n" +"Used to move a suitable spawn area of low land close to (0, 0).\n" +"The default is suitable for mandelbrot sets, it needs to be edited for julia " +"sets.\n" +"Range roughly -2 to 2. Multiply by 'scale' for offset in nodes." +msgstr "" +"Смещение (X, Y, Z) фрактала от центра мира в единицах «масштаба».\n" +"Используется для перемещения зоны возрождения ближе к (0, 0).\n" +"Значение по умолчанию подходит для множеств Мандельброта, для множеств Жюлиа " +"его нужно отредактировать.\n" +"Диапазон примерно от -2 до 2. Умножьте на «масштаб», чтобы получить смещение " +"в узлах." + +#: src/settings_translation_file.cpp +msgid "" +"0 = parallax occlusion with slope information (faster).\n" +"1 = relief mapping (slower, more accurate)." +msgstr "" +"0 = Параллакс с информацией о наклоне (Быстрее).\n" +"1 = Рельефный маппинг (Медленнее, качественнее)." + +#: src/settings_translation_file.cpp +msgid "3D clouds" +msgstr "3D облака" + +#: src/settings_translation_file.cpp +msgid "3D mode" +msgstr "3D режим" + +#: src/settings_translation_file.cpp +msgid "3D noise defining giant caverns." +msgstr "3D-шум, определяющий огромные пещеры." + +#: src/settings_translation_file.cpp +msgid "" +"3D noise defining mountain structure and height.\n" +"Also defines structure of floatland mountain terrain." +msgstr "" +"3D-шум, определяющий структуру гор и их высоту.\n" +"Также определяет структуру гор на парящих островах." + +#: src/settings_translation_file.cpp +msgid "3D noise defining structure of river canyon walls." +msgstr "3D-шум, определяющий структуру стен речного каньона." + +#: src/settings_translation_file.cpp +msgid "" +"3D support.\n" +"Currently supported:\n" +"- none: no 3d output.\n" +"- anaglyph: cyan/magenta color 3d.\n" +"- interlaced: odd/even line based polarisation screen support.\n" +"- topbottom: split screen top/bottom.\n" +"- sidebyside: split screen side by side.\n" +"- pageflip: quadbuffer based 3d." +msgstr "" +"Поддержка 3D.\n" +"Сейчас поддерживаются:\n" +"- none: 3D отключен.\n" +"- anaglyph: голубой/пурпурный цвет в 3D.\n" +"- interlaced: четные/нечетные линии отображают два разных кадра для " +"экранов поддерживающих поляризацию.\n" +"- topbottom: Разделение экрана низ/верх.\n" +"- sidebyside: Разделение экрана право/лево.\n" +"- pageflip: Четырёхкратная буферизация (QuadBuffer)." + +#: src/settings_translation_file.cpp +msgid "" +"A chosen map seed for a new map, leave empty for random.\n" +"Will be overridden when creating a new world in the main menu." +msgstr "" +"Выбранное зерно для новой карты, оставьте пустым для случайного.\n" +"Будет переопределено при создании нового мира в главном меню." + +#: src/settings_translation_file.cpp +msgid "A message to be displayed to all clients when the server crashes." +msgstr "Сообщение, которое будет отображаться для всех при падении сервера." + +#: src/settings_translation_file.cpp +msgid "A message to be displayed to all clients when the server shuts down." +msgstr "Сообщение, которое будет показано всем при отключении сервера." + +#: src/settings_translation_file.cpp +msgid "Absolute limit of emerge queues" +msgstr "Абсолютный лимит появляющихся запросов" + +#: src/settings_translation_file.cpp +msgid "Acceleration in air" +msgstr "Ускорение в воздухе" + +#: src/settings_translation_file.cpp +msgid "Active Block Management interval" +msgstr "Интервал управления активным блоком" + +#: src/settings_translation_file.cpp +msgid "Active Block Modifier interval" +msgstr "Интервал модификатора активного блока" + +#: src/settings_translation_file.cpp +msgid "Active Block Modifiers" +msgstr "Модификаторы активных блоков" + +#: src/settings_translation_file.cpp +msgid "Active block range" +msgstr "Дальность взаимодействия с блоками" + +#: src/settings_translation_file.cpp +msgid "Active object send range" +msgstr "Дальность отправляемого активного объекта" + +#: src/settings_translation_file.cpp +msgid "" +"Address to connect to.\n" +"Leave this blank to start a local server.\n" +"Note that the address field in the main menu overrides this setting." +msgstr "" +"Адрес, к которому присоединиться.\n" +"Оставьте это поле, чтобы запустить локальный сервер.\n" +"ПРИМЕЧАНИЕ: это поле адреса перезапишет эту настройку в главном меню." + +#: src/settings_translation_file.cpp +msgid "Adds particles when digging a node." +msgstr "Добавляет частицы при рытье узла." + +#: src/settings_translation_file.cpp +msgid "" +"Adjust dpi configuration to your screen (non X11/Android only) e.g. for 4k " +"screens." +msgstr "" +"Настройка dpi (плотности точек на дюйм) для вашего экрана (не для X11, " +"только для Android). Например для мониторов с разрешением в 4k." + +#: src/settings_translation_file.cpp +msgid "" +"Adjust the gamma encoding for the light tables. Higher numbers are " +"brighter.\n" +"This setting is for the client only and is ignored by the server." +msgstr "" +"Регулирует гамма-кодировку таблиц освещения. Более высокие значения ярче.\n" +"Этот параметр предназначен только для клиента и игнорируется сервером." + +#: src/settings_translation_file.cpp +msgid "Advanced" +msgstr "Дополнительно" + +#: src/settings_translation_file.cpp +msgid "Altitude Chill" +msgstr "Высота нивального пояса" + +#: src/settings_translation_file.cpp +msgid "Always fly and fast" +msgstr "Всегда включен полёт и ускорение" + +#: src/settings_translation_file.cpp +msgid "Ambient occlusion gamma" +msgstr "Гамма Ambient occlusion" + +#: src/settings_translation_file.cpp +msgid "Amplifies the valleys" +msgstr "Усиливает долины" + +#: src/settings_translation_file.cpp +msgid "" +"Android systems only: Tries to create inventory textures from meshes\n" +"when no supported render was found." +msgstr "" +"Только системы Android: Попытаться создать текстуры инвентаря из мешей,\n" +"когда поддерживаемый рендерер не найден." + +#: src/settings_translation_file.cpp +msgid "Anisotropic filtering" +msgstr "Анизантропная фильтрация" + +#: src/settings_translation_file.cpp +msgid "Announce server" +msgstr "О сервере" + +#: src/settings_translation_file.cpp +msgid "" +"Announce to this serverlist.\n" +"If you want to announce your ipv6 address, use serverlist_url = v6.servers." +"minetest.net." +msgstr "" +"Объявите списку сервера.\n" +"Если Вы хотите объявить о своем адресе IPv6, используйте serverlist_url = v6." +"servers.minetest.net." + +#: src/settings_translation_file.cpp +msgid "Apple trees noise" +msgstr "Шум яблонь" + +#: src/settings_translation_file.cpp +msgid "Approximate (X,Y,Z) scale of fractal in nodes." +msgstr "Приблизительный (X,Y,Z) масштаб фрактала в узлах." + +#: src/settings_translation_file.cpp +msgid "Ask to reconnect after crash" +msgstr "Запрос переподключения после дисконнекта" + +#: src/settings_translation_file.cpp +msgid "" +"At this distance the server will aggressively optimize which blocks are sent " +"to clients.\n" +"Small values potentially improve performance a lot, at the expense of " +"visible rendering glitches.\n" +"(some blocks will not be rendered under water and in caves, as well as " +"sometimes on land)\n" +"Setting this to a value greater than max_block_send_distance disables this " +"optimization.\n" +"Stated in mapblocks (16 nodes)" +msgstr "" +"На этом расстоянии сервер будет агрессивно оптимизировать то, какие блоки " +"будут\n" +"отправлены клиентам. Малые значения, возможно, увеличат производительность " +"за счет\n" +"видимых глюков отрисовки (некоторые блоки не будут отрисовываться под водой\n" +"и в пещерах, а иногда и на суше). Установка этого значения больше, чем " +"max_block_send_distance\n" +"отключает оптимизацию. Указывается в блоках (16 узлов)" + +#: src/settings_translation_file.cpp +msgid "Automaticaly report to the serverlist." +msgstr "Автоматически добавлять в список серверов." + +#: src/settings_translation_file.cpp +msgid "Autorun key" +msgstr "Кнопка автобега" + +#: src/settings_translation_file.cpp +msgid "Backward key" +msgstr "Клавиша назад" + +#: src/settings_translation_file.cpp +msgid "Base terrain height" +msgstr "Высота основной местности" + +#: src/settings_translation_file.cpp +msgid "Basic" +msgstr "Базовый" + +#: src/settings_translation_file.cpp +msgid "Basic Privileges" +msgstr "Стандартные права" + +#: src/settings_translation_file.cpp +msgid "Beach noise" +msgstr "Шум пляжей" + +#: src/settings_translation_file.cpp +msgid "Beach noise threshold" +msgstr "Порог шума пляжей" + +#: src/settings_translation_file.cpp +msgid "Bilinear filtering" +msgstr "Билинейная фильтрация" + +#: src/settings_translation_file.cpp +msgid "Bind address" +msgstr "Адрес бинда" + +#: src/settings_translation_file.cpp +msgid "Biome API temperature and humidity noise parameters" +msgstr "Параметры температуры и влажности для API биомов" + +#: src/settings_translation_file.cpp +msgid "Biome noise" +msgstr "Шум биомов" + +#: src/settings_translation_file.cpp +msgid "Bits per pixel (aka color depth) in fullscreen mode." +msgstr "Биты на пиксель (глубина цвета) в полноэкранном режиме." + +#: src/settings_translation_file.cpp +msgid "Build inside player" +msgstr "Разрешить ставить блоки на месте игрока" + +#: src/settings_translation_file.cpp +msgid "Builtin" +msgstr "Встроен" + +#: src/settings_translation_file.cpp +msgid "Bumpmapping" +msgstr "Бампмаппинг" + +#: src/settings_translation_file.cpp +msgid "Camera smoothing" +msgstr "Сглаживание камеры" + +#: src/settings_translation_file.cpp +msgid "Camera smoothing in cinematic mode" +msgstr "Сглаживание камеры в кинематографическом режиме" + +#: src/settings_translation_file.cpp +msgid "Camera update toggle key" +msgstr "Клавиша переключения обновления камеры" + +#: src/settings_translation_file.cpp +msgid "Cave noise" +msgstr "Шум пещеры" + +#: src/settings_translation_file.cpp +msgid "Cave noise #1" +msgstr "Шум пещеры #1" + +#: src/settings_translation_file.cpp +msgid "Cave noise #2" +msgstr "Шум пещеры #2" + +#: src/settings_translation_file.cpp +msgid "Cave width" +msgstr "Ширина пещеры" + +#: src/settings_translation_file.cpp +msgid "Cave1 noise" +msgstr "Шум пещеры #1" + +#: src/settings_translation_file.cpp +msgid "Cave2 noise" +msgstr "Шум пещеры #2" + +#: src/settings_translation_file.cpp +msgid "Cavern limit" +msgstr "Предел пещеры" + +#: src/settings_translation_file.cpp +msgid "Cavern noise" +msgstr "Шум пещеры" + +#: src/settings_translation_file.cpp +msgid "Cavern taper" +msgstr "Конусность пещер" + +#: src/settings_translation_file.cpp +msgid "Cavern threshold" +msgstr "Порог пещеры" + +#: src/settings_translation_file.cpp +msgid "Caves and tunnels form at the intersection of the two noises" +msgstr "Пещеры и тоннели формируются на перекрестке этих двух шумов" + +#: src/settings_translation_file.cpp +msgid "Chat key" +msgstr "Кнопка чата" + +#: src/settings_translation_file.cpp +msgid "Chat toggle key" +msgstr "Кнопка переключения чата" + +#: src/settings_translation_file.cpp +msgid "Chatcommands" +msgstr "Команды в чате" + +#: src/settings_translation_file.cpp +msgid "" +"Choice of 18 fractals from 9 formulas.\n" +"1 = 4D \"Roundy\" mandelbrot set.\n" +"2 = 4D \"Roundy\" julia set.\n" +"3 = 4D \"Squarry\" mandelbrot set.\n" +"4 = 4D \"Squarry\" julia set.\n" +"5 = 4D \"Mandy Cousin\" mandelbrot set.\n" +"6 = 4D \"Mandy Cousin\" julia set.\n" +"7 = 4D \"Variation\" mandelbrot set.\n" +"8 = 4D \"Variation\" julia set.\n" +"9 = 3D \"Mandelbrot/Mandelbar\" mandelbrot set.\n" +"10 = 3D \"Mandelbrot/Mandelbar\" julia set.\n" +"11 = 3D \"Christmas Tree\" mandelbrot set.\n" +"12 = 3D \"Christmas Tree\" julia set.\n" +"13 = 3D \"Mandelbulb\" mandelbrot set.\n" +"14 = 3D \"Mandelbulb\" julia set.\n" +"15 = 3D \"Cosine Mandelbulb\" mandelbrot set.\n" +"16 = 3D \"Cosine Mandelbulb\" julia set.\n" +"17 = 4D \"Mandelbulb\" mandelbrot set.\n" +"18 = 4D \"Mandelbulb\" julia set." +msgstr "" +"Выбор из 18 фракталов из 9 формул.\n" +"1 = 4D \"Круглое\" множество Мандельброта.\n" +"2 = 4D \"Круглое\" множество Жюлиа.\n" +"3 = 4D \"Квадратное\" множество Мандельброта.\n" +"4 = 4D \"Квадратное\" множество Жюлиа.\n" +"5 = 4D \"Mandy Cousin\" множество Мандельброта.\n" +"6 = 4D \"Mandy Cousin\" множество Жюлиа.\n" +"7 = 4D \"Variation\" множество Мандельброта.\n" +"8 = 4D \"Variation\" множество Жюлиа.\n" +"9 = 3D \"Mandelbrot/Mandelbar\" множество Мандельброта.\n" +"10 = 3D \"Mandelbrot/Mandelbar\" множество Жюлиа.\n" +"11 = 3D \"Christmas Tree\" множество Мандельброта.\n" +"12 = 3D \"Christmas Tree\" множество Жюлиа.\n" +"13 = 3D \"Mandelbulb\" множество Мандельброта.\n" +"14 = 3D \"Mandelbulb\" множество Жюлиа.\n" +"15 = 3D \"Cosine Mandelbulb\" множество Мандельброта.\n" +"16 = 3D \"Cosine Mandelbulb\" множество Жюлиа.\n" +"17 = 4D \"Mandelbulb\" множество Мандельброта.\n" +"18 = 4D \"Mandelbulb\" множество Жюлиа." + +#: src/settings_translation_file.cpp +msgid "Chunk size" +msgstr "Размер чанка" + +#: src/settings_translation_file.cpp +msgid "Cinematic mode" +msgstr "Кинематографический режим" + +#: src/settings_translation_file.cpp +msgid "Cinematic mode key" +msgstr "Кнопка переключения в кинематографический режим" + +#: src/settings_translation_file.cpp +msgid "Clean transparent textures" +msgstr "очистить прозрачные структуры" + +#: src/settings_translation_file.cpp +msgid "Client" +msgstr "Клиент" + +#: src/settings_translation_file.cpp +msgid "Client and Server" +msgstr "Клиент и Сервер" + +#: src/settings_translation_file.cpp +msgid "Client modding" +msgstr "Моддинг клиента" + +#: src/settings_translation_file.cpp +msgid "Climbing speed" +msgstr "Скорость подъема" + +#: src/settings_translation_file.cpp +msgid "Cloud height" +msgstr "Высота облаков" + +#: src/settings_translation_file.cpp +msgid "Cloud radius" +msgstr "Радиус облаков" + +#: src/settings_translation_file.cpp +msgid "Clouds" +msgstr "Облака" + +#: src/settings_translation_file.cpp +msgid "Clouds are a client side effect." +msgstr "Облака являются эффектом на стороне клиента." + +#: src/settings_translation_file.cpp +msgid "Clouds in menu" +msgstr "Облака в меню" + +#: src/settings_translation_file.cpp +msgid "Colored fog" +msgstr "Цветной туман" + +#: src/settings_translation_file.cpp +msgid "" +"Comma-separated list of mods that are allowed to access HTTP APIs, which\n" +"allow them to upload and download data to/from the internet." +msgstr "" +"Список доверенных модов через запятую, которым разрешён доступ к HTTP API, " +"что позволяет им отправлять и принимать данные через Интернет." + +#: src/settings_translation_file.cpp +msgid "" +"Comma-separated list of trusted mods that are allowed to access insecure\n" +"functions even when mod security is on (via request_insecure_environment())." +msgstr "" +"Список доверенных модов через запятую, которым разрешён доступ к " +"небезопасным функциям даже когда включена защита модов (через " +"request_insecure_environment())." + +#: src/settings_translation_file.cpp +msgid "Command key" +msgstr "Команда" + +#: src/settings_translation_file.cpp +msgid "Connect glass" +msgstr "Стёкла без швов" + +#: src/settings_translation_file.cpp +msgid "Connect to external media server" +msgstr "Подключение к внешнему медиасерверу" + +#: src/settings_translation_file.cpp +msgid "Connects glass if supported by node." +msgstr "Соединяет стекло, если поддерживается нодой." + +#: src/settings_translation_file.cpp +msgid "Console alpha" +msgstr "Консоль" + +#: src/settings_translation_file.cpp +msgid "Console color" +msgstr "Цвет в консоли" + +#: src/settings_translation_file.cpp +msgid "Console height" +msgstr "Высота консоли" + +#: src/settings_translation_file.cpp +msgid "Console key" +msgstr "Кнопка вызова консоли" + +#: src/settings_translation_file.cpp +msgid "Continuous forward" +msgstr "Непрерывная ходьба" + +#: src/settings_translation_file.cpp +msgid "Continuous forward movement (only used for testing)." +msgstr "Постоянное движение вперёд (используется только для тестирования)." + +#: src/settings_translation_file.cpp +msgid "Controls" +msgstr "Управление" + +#: src/settings_translation_file.cpp +msgid "" +"Controls length of day/night cycle.\n" +"Examples: 72 = 20min, 360 = 4min, 1 = 24hour, 0 = day/night/whatever stays " +"unchanged." +msgstr "" +"Задает длину цикла дня/ночи.\n" +"Примеры: 72 = 20 минут, 360 = 4 минуты, 1 = 24 часа, 0 = время суток не " +"меняется." + +#: src/settings_translation_file.cpp +msgid "Controls steepness/depth of lake depressions." +msgstr "Регулирует крутизну и глубину впадин в озёрах." + +#: src/settings_translation_file.cpp +msgid "Controls steepness/height of hills." +msgstr "Регулирует крутизну и высоту холмов." + +#: src/settings_translation_file.cpp +msgid "" +"Controls the density of floatland mountain terrain.\n" +"Is an offset added to the 'np_mountain' noise value." +msgstr "" +"Контролирует плотность горной местности парящих островов.\n" +"Является смещением, добавляемым к значению шума 'np_mountain'." + +#: src/settings_translation_file.cpp +msgid "Controls width of tunnels, a smaller value creates wider tunnels." +msgstr "" +"Регулирует ширину туннелей, меньшие значения создают более широкие туннели." + +#: src/settings_translation_file.cpp +msgid "Crash message" +msgstr "Сообщение при падении" + +#: src/settings_translation_file.cpp +msgid "" +"Creates unpredictable lava features in caves.\n" +"These can make mining difficult. Zero disables them. (0-10)" +msgstr "" +"Создаёт непредсказуемую лаву в пещерах.\n" +"Она может затруднить добычу. Ноль отключает это. (0-10)" + +#: src/settings_translation_file.cpp +msgid "" +"Creates unpredictable water features in caves.\n" +"These can make mining difficult. Zero disables them. (0-10)" +msgstr "" +"Создаёт непредсказуемую воду в пещерах.\n" +"Она может затруднить добычу. Ноль отключает это. (0-10)" + +#: src/settings_translation_file.cpp +msgid "Creative" +msgstr "Творческий" + +#: src/settings_translation_file.cpp +msgid "Crosshair alpha" +msgstr "Прозрачность перекрестия" + +#: src/settings_translation_file.cpp +msgid "Crosshair alpha (opaqueness, between 0 and 255)." +msgstr "Прозрачность прицела (от 0 (прозрачно) до 255 (непрозрачно))." + +#: src/settings_translation_file.cpp +msgid "Crosshair color" +msgstr "Цвет перекрестия" + +#: src/settings_translation_file.cpp +msgid "Crosshair color (R,G,B)." +msgstr "Цвет перекрестия (R,G,B)." + +#: src/settings_translation_file.cpp +msgid "Crouch speed" +msgstr "Скорость спуска" + +#: src/settings_translation_file.cpp +msgid "DPI" +msgstr "DPI" + +#: src/settings_translation_file.cpp +msgid "Damage" +msgstr "Урон" + +#: src/settings_translation_file.cpp +msgid "Debug info toggle key" +msgstr "Клавиша переключения показа отладочной информации" + +#: src/settings_translation_file.cpp +msgid "Debug log level" +msgstr "Отладочный уровень" + +#: src/settings_translation_file.cpp +msgid "Dec. volume key" +msgstr "Клавиша уменьшения громкости" + +#: src/settings_translation_file.cpp +msgid "Dedicated server step" +msgstr "Шаг выделенного сервера" + +#: src/settings_translation_file.cpp +msgid "Default acceleration" +msgstr "Ускорение по умолчанию" + +#: src/settings_translation_file.cpp +msgid "Default game" +msgstr "Стандартная игра" + +#: src/settings_translation_file.cpp +msgid "" +"Default game when creating a new world.\n" +"This will be overridden when creating a world from the main menu." +msgstr "" +"Игра по умолчанию при создании нового мира.\n" +"Будет переопределена при создании мира из главного меню." + +#: src/settings_translation_file.cpp +msgid "Default password" +msgstr "Стандартный пароль" + +#: src/settings_translation_file.cpp +msgid "Default privileges" +msgstr "Стандартные права" + +#: src/settings_translation_file.cpp +msgid "Default report format" +msgstr "Формат отчёта по умолчанию" + +#: src/settings_translation_file.cpp +msgid "" +"Default timeout for cURL, stated in milliseconds.\n" +"Only has an effect if compiled with cURL." +msgstr "" +"Стандартный тайм-аут для cURL, установленный в милисекундах.\n" +"Работает только на сборках с cURL." + +#: src/settings_translation_file.cpp +msgid "Defines areas of 'terrain_higher' (cliff-top terrain)." +msgstr "Определяет области 'terrain_higher' (местность на вершинах утёсов)." + +#: src/settings_translation_file.cpp +msgid "" +"Defines areas of floatland smooth terrain.\n" +"Smooth floatlands occur when noise > 0." +msgstr "" +"Определяет области гладкой поверхности на парящих островах.\n" +"Гладкие парящие острова появляются, когда шум больше ноля." + +#: src/settings_translation_file.cpp +msgid "" +"Defines areas of higher (cliff-top) terrain and affects steepness of cliffs." +msgstr "Определяет области возвышений поверхности и влияет на крутизну скал." + +#: src/settings_translation_file.cpp +msgid "Defines areas where trees have apples." +msgstr "Определяет области, где у деревьев есть яблоки." + +#: src/settings_translation_file.cpp +msgid "Defines areas with sandy beaches." +msgstr "Определяет области с песчаными пляжами." + +#: src/settings_translation_file.cpp +msgid "Defines full size of caverns, smaller values create larger caverns." +msgstr "" +"Определяет полный размер пещер, меньшие значения создают большие пещеры." + +#: src/settings_translation_file.cpp +msgid "Defines large-scale river channel structure." +msgstr "Определяет крупномасштабную структуру каналов рек." + +#: src/settings_translation_file.cpp +msgid "Defines location and terrain of optional hills and lakes." +msgstr "Определяет расположение и поверхность дополнительных холмов и озёр." + +#: src/settings_translation_file.cpp +msgid "" +"Defines sampling step of texture.\n" +"A higher value results in smoother normal maps." +msgstr "" +"Определяет шаг выборки текстуры.\n" +"Более высокое значение приводит к более гладким картам нормалей." + +#: src/settings_translation_file.cpp +msgid "Defines the maximal player transfer distance in blocks (0 = unlimited)." +msgstr "" +"Определяет максимальное расстояние перемещения игрока в блоках (0 = " +"неограниченное)." + +#: src/settings_translation_file.cpp +msgid "Defines tree areas and tree density." +msgstr "Определяет области и плотность деревьев." + +#: src/settings_translation_file.cpp +msgid "" +"Delay between mesh updates on the client in ms. Increasing this will slow\n" +"down the rate of mesh updates, thus reducing jitter on slower clients." +msgstr "" +"Задержка между обновлением мешей на клиенте в миллисекундах. Увеличение " +"этого значения\n" +"замедлит темп обновления мешей, тем самым уменьшая колебания FPS на " +"медленных клиентах." + +#: src/settings_translation_file.cpp +msgid "Delay in sending blocks after building" +msgstr "Задержка отправки блоков после строительства" + +#: src/settings_translation_file.cpp +msgid "Delay showing tooltips, stated in milliseconds." +msgstr "Задержка показа подсказок, указанная в миллисекундах." + +#: src/settings_translation_file.cpp +msgid "Deprecated Lua API handling" +msgstr "Обработка устаревшего Lua API" + +#: src/settings_translation_file.cpp +msgid "Depth below which you'll find large caves." +msgstr "Глубина, ниже которой встречаются крупные пещеры." + +#: src/settings_translation_file.cpp +msgid "Depth below which you'll find massive caves." +msgstr "Глубина, ниже которой встречаются огромные пещеры." + +#: src/settings_translation_file.cpp +msgid "Descending speed" +msgstr "Скорость снижения" + +#: src/settings_translation_file.cpp +msgid "" +"Description of server, to be displayed when players join and in the " +"serverlist." +msgstr "" +"Описание сервера, которое будет показано при входе игрока и в списке " +"серверов." + +#: src/settings_translation_file.cpp +msgid "Desert noise threshold" +msgstr "Порог шума пустынь" + +#: src/settings_translation_file.cpp +msgid "" +"Deserts occur when np_biome exceeds this value.\n" +"When the new biome system is enabled, this is ignored." +msgstr "" +"Пустыни появляются, когда np_biome превышает это значение.\n" +"Это игнорируется, когда включена новая система биомов." + +#: src/settings_translation_file.cpp +msgid "Desynchronize block animation" +msgstr "Рассинхронизировать анимацию блоков" + +#: src/settings_translation_file.cpp +msgid "Digging particles" +msgstr "Частицы при рытье" + +#: src/settings_translation_file.cpp +msgid "Disable anticheat" +msgstr "Отключить анти-чит" + +#: src/settings_translation_file.cpp +msgid "Disable escape sequences" +msgstr "Отключить escape-последовательности" + +#: src/settings_translation_file.cpp +msgid "" +"Disable escape sequences, e.g. chat coloring.\n" +"Use this if you want to run a server with pre-0.4.14 clients and you want to " +"disable\n" +"the escape sequences generated by mods." +msgstr "" +"Отключить escape-последовательности, например, цвет в чате.\n" +"Используйте это, если хотите запустить сервер с клиентами версии ниже 0.4." +"14\n" +"и отключить escape-последовательности, генерируемые модами." + +#: src/settings_translation_file.cpp +msgid "Disallow empty passwords" +msgstr "Запретить пустой пароль" + +#: src/settings_translation_file.cpp +msgid "Domain name of server, to be displayed in the serverlist." +msgstr "Доменное имя сервера, отображаемое в списке серверов." + +#: src/settings_translation_file.cpp +msgid "Double tap jump for fly" +msgstr "Полет по двойному прыжку" + +#: src/settings_translation_file.cpp +msgid "Double-tapping the jump key toggles fly mode." +msgstr "Двойное нажатие на прыжок включает режим полёта." + +#: src/settings_translation_file.cpp +msgid "Drop item key" +msgstr "Кнопка выброса блока" + +#: src/settings_translation_file.cpp +msgid "Dump the mapgen debug infos." +msgstr "Дамп отладочной информации генератора мира." + +#: src/settings_translation_file.cpp +msgid "Enable Joysticks" +msgstr "Включить джойстики" + +#: src/settings_translation_file.cpp +msgid "" +"Enable Lua modding support on client.\n" +"This support is experimental and API can change." +msgstr "" +"Включить поддержку Lua-моддинга на клиенте.\n" +"Эта поддержка является экспериментальной и API может измениться." + +#: src/settings_translation_file.cpp +msgid "Enable VBO" +msgstr "Включить VBO" + +#: src/settings_translation_file.cpp +msgid "Enable console window" +msgstr "Включить окно консоли" + +#: src/settings_translation_file.cpp +msgid "Enable creative mode for new created maps." +msgstr "Включить творческий режим для вновь созданных карт." + +#: src/settings_translation_file.cpp +msgid "Enable mod security" +msgstr "Включить защиту модов" + +#: src/settings_translation_file.cpp +msgid "Enable players getting damage and dying." +msgstr "Включает получение игроками урона и их смерть." + +#: src/settings_translation_file.cpp +msgid "Enable random user input (only used for testing)." +msgstr "Включить случайный ввод (используется только для тестирования)." + +#: src/settings_translation_file.cpp +msgid "" +"Enable smooth lighting with simple ambient occlusion.\n" +"Disable for speed or for different looks." +msgstr "" +"Включить мягкое освещение с простым Ambient Occlusion.\n" +"Отключите для более высокой скорости или другого внешнего вида." + +#: src/settings_translation_file.cpp +msgid "" +"Enable to disallow old clients from connecting.\n" +"Older clients are compatible in the sense that they will not crash when " +"connecting\n" +"to new servers, but they may not support all new features that you are " +"expecting." +msgstr "" +"Включите, чтобы запретить подключение старых клиентов.\n" +"Старые клиенты совместимы в том смысле, что они не будут сбоить при " +"подключении\n" +"к новым серверам, однако они могут не поддерживать всех новых функций, " +"которые вы ожидаете." + +#: src/settings_translation_file.cpp +msgid "" +"Enable usage of remote media server (if provided by server).\n" +"Remote servers offer a significantly faster way to download media (e.g. " +"textures)\n" +"when connecting to the server." +msgstr "" +"Включить использование удалённого медиасервера (если предоставляется " +"сервером).\n" +"Удалённые сервера позволяют намного быстрее скачивать медиафайлы (напр. " +"текстуры)\n" +"во время подключения к серверу." + +#: src/settings_translation_file.cpp +msgid "Enable view bobbing" +msgstr "Включить покачивание камеры" + +#: src/settings_translation_file.cpp +msgid "" +"Enable view bobbing and amount of view bobbing.\n" +"For example: 0 for no view bobbing; 1.0 for normal; 2.0 for double." +msgstr "" +"Включить покачивание камеры и установить его значение.\n" +"Например: 0 отключает покачивание, 1.0 для обычного, 2.0 для двойного." + +#: src/settings_translation_file.cpp +msgid "" +"Enable/disable running an IPv6 server. An IPv6 server may be restricted\n" +"to IPv6 clients, depending on system configuration.\n" +"Ignored if bind_address is set." +msgstr "" +"Включить/отключить запуск IPv6-сервера. Сервер IPv6 может быть\n" +"ограничен IPv6-клиентами в зависимости от конфигурации системы.\n" +"Игнорируется, если задан bind_address." + +#: src/settings_translation_file.cpp +msgid "Enables animation of inventory items." +msgstr "Включить анимацию предметов в инвентаре." + +#: src/settings_translation_file.cpp +msgid "" +"Enables bumpmapping for textures. Normalmaps need to be supplied by the " +"texture pack\n" +"or need to be auto-generated.\n" +"Requires shaders to be enabled." +msgstr "" +"Включает бампмаппинг для текстур. Карты нормалей должны быть предоставлены\n" +"пакетом текстур или сгенерированы автоматически.\n" +"Требует, чтобы шейдеры были включены." + +#: src/settings_translation_file.cpp +msgid "Enables caching of facedir rotated meshes." +msgstr "Включает кэширование повёрнутых мешей." + +#: src/settings_translation_file.cpp +msgid "Enables filmic tone mapping" +msgstr "Включить кинематографическое тональное отображение" + +#: src/settings_translation_file.cpp +msgid "Enables minimap." +msgstr "Включить мини-карту." + +#: src/settings_translation_file.cpp +msgid "" +"Enables on the fly normalmap generation (Emboss effect).\n" +"Requires bumpmapping to be enabled." +msgstr "" +"Включает генерацию карт нормалей \"на лету\" (эффект тиснения).\n" +"Требует, чтобы бампмаппинг был включен." + +#: src/settings_translation_file.cpp +msgid "" +"Enables parallax occlusion mapping.\n" +"Requires shaders to be enabled." +msgstr "" +"Включает Parallax Occlusion.\n" +"Требует, чтобы шейдеры были включены." + +#: src/settings_translation_file.cpp +msgid "Enables view bobbing when walking." +msgstr "Включает покачивание камеры при ходьбе." + +#: src/settings_translation_file.cpp +msgid "Engine profiling data print interval" +msgstr "Интервал печати данных профилирования движка" + +#: src/settings_translation_file.cpp +msgid "Entity methods" +msgstr "Методы сущностей" + +#: src/settings_translation_file.cpp +msgid "" +"Experimental option, might cause visible spaces between blocks\n" +"when set to higher number than 0." +msgstr "" +"Экспериментальная опция, может привести к видимым зазорам\n" +"между блоками, когда значение больше, чем 0." + +#: src/settings_translation_file.cpp +msgid "FPS in pause menu" +msgstr "FPS во время паузы" + +#: src/settings_translation_file.cpp +msgid "FSAA" +msgstr "FSAA" + +#: src/settings_translation_file.cpp +msgid "Factor noise" +msgstr "Коэффициент шума" + +#: src/settings_translation_file.cpp +msgid "Fall bobbing factor" +msgstr "Коэффициент покачивания при падении" + +#: src/settings_translation_file.cpp +msgid "Fallback font" +msgstr "Резервный шрифт" + +#: src/settings_translation_file.cpp +msgid "Fallback font shadow" +msgstr "Тень резервного шрифта" + +#: src/settings_translation_file.cpp +msgid "Fallback font shadow alpha" +msgstr "Прозрачность тени резервного шрифта" + +#: src/settings_translation_file.cpp +msgid "Fallback font size" +msgstr "Размер резервного шрифта" + +#: src/settings_translation_file.cpp +msgid "Fast key" +msgstr "Клавиша ускорения" + +#: src/settings_translation_file.cpp +msgid "Fast mode acceleration" +msgstr "Ускорение быстрого перемещения" + +#: src/settings_translation_file.cpp +msgid "Fast mode speed" +msgstr "Скорость быстрого перемещения" + +#: src/settings_translation_file.cpp +msgid "Fast movement" +msgstr "Быстрое перемещение" + +#: src/settings_translation_file.cpp +msgid "" +"Fast movement (via use key).\n" +"This requires the \"fast\" privilege on the server." +msgstr "" +"Быстрое перемещение (с помощью клавиши Использовать).\n" +"Это требует привилегию \"fast\" на сервере." + +#: src/settings_translation_file.cpp +msgid "Field of view" +msgstr "Поле зрения" + +#: src/settings_translation_file.cpp +msgid "Field of view for zoom" +msgstr "Поле зрения в режиме увеличения" + +#: src/settings_translation_file.cpp +msgid "Field of view in degrees." +msgstr "Поле зрения в градусах." + +#: src/settings_translation_file.cpp +msgid "" +"Field of view while zooming in degrees.\n" +"This requires the \"zoom\" privilege on the server." +msgstr "" +"Поле зрения в режиме увеличения в градусах.\n" +"Требует привилегию «zoom» на сервере." + +#: src/settings_translation_file.cpp +msgid "" +"File in client/serverlist/ that contains your favorite servers displayed in " +"the Multiplayer Tab." +msgstr "" +"Файл в директории client/serverlist/, содержащий ваши любимые серверы, " +"отображаемые на вкладке Multiplayer." + +#: src/settings_translation_file.cpp +msgid "Filler Depth" +msgstr "Глубина наполнителя" + +#: src/settings_translation_file.cpp +msgid "Filler depth noise" +msgstr "Шум глубины наполнителя" + +#: src/settings_translation_file.cpp +msgid "Filmic tone mapping" +msgstr "Кинематографическое тональное отображение" + +#: src/settings_translation_file.cpp +msgid "" +"Filtered textures can blend RGB values with fully-transparent neighbors,\n" +"which PNG optimizers usually discard, sometimes resulting in a dark or\n" +"light edge to transparent textures. Apply this filter to clean that up\n" +"at texture load time." +msgstr "" +"Отфильтрованные текстуры могут смешивать значения RGB с полностью\n" +"прозрачными соседними, которые оптимизаторы PNG обычно отбрасывают.\n" +"Иногда это может привести к тёмным или светлым краям полупрозрачных\n" +"текстур. Примените этот фильтр, чтобы исправить текстуру во время загрузки." + +#: src/settings_translation_file.cpp +msgid "Filtering" +msgstr "Фильтрация" + +#: src/settings_translation_file.cpp +msgid "First of 2 3D noises that together define tunnels." +msgstr "Первый из двух 3D-шумов, которые вместе определяют туннели." + +#: src/settings_translation_file.cpp +msgid "Fixed map seed" +msgstr "Фиксированное зерно мира" + +#: src/settings_translation_file.cpp +msgid "Floatland base height noise" +msgstr "Шум базовой высоты парящих островов" + +#: src/settings_translation_file.cpp +msgid "Floatland base noise" +msgstr "Базовый шум парящих островов" + +#: src/settings_translation_file.cpp +msgid "Floatland level" +msgstr "Уровень парящих островов" + +#: src/settings_translation_file.cpp +msgid "Floatland mountain density" +msgstr "Плотность гор на парящих островах" + +#: src/settings_translation_file.cpp +msgid "Floatland mountain height" +msgstr "Высота гор на парящих островах" + +#: src/settings_translation_file.cpp +msgid "Fly key" +msgstr "Кнопка полёта" + +#: src/settings_translation_file.cpp +msgid "Flying" +msgstr "Полёт" + +#: src/settings_translation_file.cpp +msgid "Fog" +msgstr "Туман" + +#: src/settings_translation_file.cpp +msgid "Fog Start" +msgstr "Начало тумана" + +#: src/settings_translation_file.cpp +msgid "Fog toggle key" +msgstr "Клавиша переключения тумана" + +#: src/settings_translation_file.cpp +msgid "Font path" +msgstr "Путь к шрифту" + +#: src/settings_translation_file.cpp +msgid "Font shadow" +msgstr "Тень шрифта" + +#: src/settings_translation_file.cpp +msgid "Font shadow alpha" +msgstr "Прозрачность тени шрифта" + +#: src/settings_translation_file.cpp +msgid "Font shadow alpha (opaqueness, between 0 and 255)." +msgstr "Прозрачность тени шрифта (непрозрачность от 0 до 255)." + +#: src/settings_translation_file.cpp +msgid "Font shadow offset, if 0 then shadow will not be drawn." +msgstr "" +"Смещение тени шрифта. Если установленно в 0, то тень не будет отрисовываться." + +#: src/settings_translation_file.cpp +msgid "Font size" +msgstr "Размер шрифта" + +#: src/settings_translation_file.cpp +msgid "Format of screenshots." +msgstr "Формат скриншотов." + +#: src/settings_translation_file.cpp +msgid "Forward key" +msgstr "Клавиша вперёд" + +#: src/settings_translation_file.cpp +msgid "Fractal type" +msgstr "Тип фрактала" + +#: src/settings_translation_file.cpp +msgid "Fraction of the visible distance at which fog starts to be rendered" +msgstr "Часть видимого расстояния, на которой начинает появляться туман" + +#: src/settings_translation_file.cpp +msgid "Freetype fonts" +msgstr "FreeType шрифты" + +#: src/settings_translation_file.cpp +msgid "" +"From how far blocks are generated for clients, stated in mapblocks (16 " +"nodes)." +msgstr "" +"Насколько далеко генерируются блоки для клиентов. Указывается в блоках (16 " +"узлов)." + +#: src/settings_translation_file.cpp +msgid "" +"From how far blocks are sent to clients, stated in mapblocks (16 nodes)." +msgstr "С какого расстояния блоки отправляются клиентам, в блоках (16 узлов)." + +#: src/settings_translation_file.cpp +msgid "" +"From how far clients know about objects, stated in mapblocks (16 nodes)." +msgstr "С какого расстояния клиенты узнают об объектах, в блоках (16 узлов)." + +#: src/settings_translation_file.cpp +msgid "Full screen" +msgstr "Полный экран" + +#: src/settings_translation_file.cpp +msgid "Full screen BPP" +msgstr "Глубина цвета в полноэкранном режиме" + +#: src/settings_translation_file.cpp +msgid "Fullscreen mode." +msgstr "Полноэкранный режим." + +#: src/settings_translation_file.cpp +msgid "GUI scaling" +msgstr "Масштабирование интерфейса" + +#: src/settings_translation_file.cpp +msgid "GUI scaling filter" +msgstr "Фильтр масштабирования интерфейса" + +#: src/settings_translation_file.cpp +msgid "GUI scaling filter txr2img" +msgstr "txr2img фильтр масштабирования интерфейса" + +#: src/settings_translation_file.cpp +msgid "Game" +msgstr "Игра" + +#: src/settings_translation_file.cpp +msgid "Gamma" +msgstr "Гамма" + +#: src/settings_translation_file.cpp +msgid "General" +msgstr "Общие" + +#: src/settings_translation_file.cpp +msgid "Generate normalmaps" +msgstr "Генерировать карты нормалей" + +#: src/settings_translation_file.cpp +msgid "Global callbacks" +msgstr "Глобальные обратные вызовы" + +#: src/settings_translation_file.cpp +msgid "" +"Global map generation attributes.\n" +"In Mapgen v6 the 'decorations' flag controls all decorations except trees\n" +"and junglegrass, in all other mapgens this flag controls all decorations.\n" +"Flags that are not specified in the flag string are not modified from the " +"default.\n" +"Flags starting with 'no' are used to explicitly disable them." +msgstr "" +"Глобальные атрибуты генерации карты.\n" +"В генераторе карты версии 6 флаг 'decorations' не контролирует деревья\n" +"и траву в джунглях, в остальных генераторах этот флаг контролирует все " +"декорации.\n" +"Флаги, не указанные в строке флагов, остаются в значении по умолчанию.\n" +"Флаги с приставкой 'no' отключают декорации." + +#: src/settings_translation_file.cpp +msgid "Graphics" +msgstr "Графика" + +#: src/settings_translation_file.cpp +msgid "Gravity" +msgstr "Гравитация" + +#: src/settings_translation_file.cpp +msgid "Ground level" +msgstr "Уровень земли" + +#: src/settings_translation_file.cpp +msgid "HTTP Mods" +msgstr "HTTP-моды" + +#: src/settings_translation_file.cpp +msgid "HUD scale factor" +msgstr "Коэффициент масштабирования HUD" + +#: src/settings_translation_file.cpp +msgid "HUD toggle key" +msgstr "Клавиша переключения HUD" + +#: src/settings_translation_file.cpp +msgid "" +"Handling for deprecated lua api calls:\n" +"- legacy: (try to) mimic old behaviour (default for release).\n" +"- log: mimic and log backtrace of deprecated call (default for debug).\n" +"- error: abort on usage of deprecated call (suggested for mod developers)." +msgstr "" +"Обработка для устаревших вызовов lua api:\n" +"- legacy: (иногда успешно) имитирует прежнее поведение (по умолчанию для " +"релиза).\n" +"- log: имитирует и журналирует backtrace(трассировку?след?) устаревших " +"вызовов (по умолчанию для отладки).\n" +"- error: прерывание при использовании устаревших вызовов (рекомендовано " +"для разработчиков модов)." + +#: src/settings_translation_file.cpp +msgid "" +"Have the profiler instrument itself:\n" +"* Instrument an empty function.\n" +"This estimates the overhead, that instrumentation is adding (+1 function " +"call).\n" +"* Instrument the sampler being used to update the statistics." +msgstr "" +"Профилировать сам профилировщик:\n" +"* Замерять пустую функцию.\n" +"Это оценит накладные расходы, добавляемые замерами (+1 вызов функции).\n" +"* Замерять сэмплер, используемый для обновления статистики." + +#: src/settings_translation_file.cpp +msgid "Heat blend noise" +msgstr "Шум смешивания теплоты" + +#: src/settings_translation_file.cpp +msgid "Heat noise" +msgstr "Шум теплоты" + +#: src/settings_translation_file.cpp +msgid "Height component of the initial window size." +msgstr "Высота окна при запуске." + +#: src/settings_translation_file.cpp +msgid "Height noise" +msgstr "Шум высоты" + +#: src/settings_translation_file.cpp +msgid "Height on which clouds are appearing." +msgstr "Высота, на которой появляются облака." + +#: src/settings_translation_file.cpp +msgid "Height select noise" +msgstr "Шум выбора высоты" + +#: src/settings_translation_file.cpp +msgid "High-precision FPU" +msgstr "Высокоточный FPU" + +#: src/settings_translation_file.cpp +msgid "Hill steepness" +msgstr "Крутизна холмов" + +#: src/settings_translation_file.cpp +msgid "Hill threshold" +msgstr "Порог холмов" + +#: src/settings_translation_file.cpp +msgid "Homepage of server, to be displayed in the serverlist." +msgstr "Домашняя страница сервера, отображаемая в списке серверов." + +#: src/settings_translation_file.cpp +msgid "Hotbar next key" +msgstr "Следующий предмет в хотбаре" + +#: src/settings_translation_file.cpp +msgid "Hotbar previous key" +msgstr "Предыдущий предмет в хотбаре" + +#: src/settings_translation_file.cpp +msgid "How deep to make rivers" +msgstr "Глубина рек" + +#: src/settings_translation_file.cpp +msgid "" +"How large area of blocks are subject to the active block stuff, stated in " +"mapblocks (16 nodes).\n" +"In active blocks objects are loaded and ABMs run." +msgstr "" +"Насколько большая область подлежит обработке активных блоков, указанная в " +"блоках (16 узлов).↵\n" +"В активных блоках загружаются объекты и работают модификаторы блоков." + +#: src/settings_translation_file.cpp +msgid "" +"How much the server will wait before unloading unused mapblocks.\n" +"Higher value is smoother, but will use more RAM." +msgstr "" +"Время ожидания сервера до выгрузки неиспользуемых блоков.\n" +"Высокие значения более плавные, но используют больше RAM." + +#: src/settings_translation_file.cpp +msgid "How wide to make rivers" +msgstr "Насколько широкими делать реки" + +#: src/settings_translation_file.cpp +msgid "Humidity blend noise" +msgstr "Шум смешивания влажности" + +#: src/settings_translation_file.cpp +msgid "Humidity noise" +msgstr "Шум влажности" + +#: src/settings_translation_file.cpp +msgid "Humidity variation for biomes." +msgstr "Вариация влажности в биомах." + +#: src/settings_translation_file.cpp +msgid "IPv6" +msgstr "IPv6" + +#: src/settings_translation_file.cpp +msgid "IPv6 server" +msgstr "IPv6 сервер" + +#: src/settings_translation_file.cpp +msgid "IPv6 support." +msgstr "IPv6 поддержка." + +#: src/settings_translation_file.cpp +msgid "" +"If FPS would go higher than this, limit it by sleeping\n" +"to not waste CPU power for no benefit." +msgstr "" +"Если FPS превысит это значение, ограничить его простоем,\n" +"чтобы не тратить мощность процессора впустую." + +#: src/settings_translation_file.cpp +msgid "" +"If disabled \"use\" key is used to fly fast if both fly and fast mode are " +"enabled." +msgstr "" +"Если выключено, кнопка \"Использовать\" используется для быстрого полёта, " +"если одновременно включены быстрый режим и режим полёта." + +#: src/settings_translation_file.cpp +msgid "" +"If enabled the server will perform map block occlusion culling based on\n" +"on the eye position of the player. This can reduce the number of blocks\n" +"sent to the client 50-80%. The client will not longer receive most " +"invisible\n" +"so that the utility of noclip mode is reduced." +msgstr "" +"Если включено, то сервер будет выполнять отсечение блоков, основываясь\n" +"на положении глаз игрока. Это может уменьшить количество пересылаемых\n" +"блоков на 50-80%. Клиент не будет получать большую часть невидимых\n" +"блоков, поэтому режим noclip станет менее полезным." + +#: src/settings_translation_file.cpp +msgid "" +"If enabled together with fly mode, player is able to fly through solid " +"nodes.\n" +"This requires the \"noclip\" privilege on the server." +msgstr "" +"Если включено одновременно с режимом полёта, игрок сможет летать через " +"твёрдые узлы.\n" +"Требует наличие привилегии «noclip» на сервере." + +#: src/settings_translation_file.cpp +msgid "" +"If enabled, \"use\" key instead of \"sneak\" key is used for climbing down " +"and descending." +msgstr "" +"Если включено, то для спуска будет использоваться клавиша «Использовать», а " +"не «Красться»." + +#: src/settings_translation_file.cpp +msgid "" +"If enabled, actions are recorded for rollback.\n" +"This option is only read when server starts." +msgstr "" +"Если включено, действия записываются для отката.\n" +"Этот параметр считывается только при запуске сервера." + +#: src/settings_translation_file.cpp +msgid "If enabled, disable cheat prevention in multiplayer." +msgstr "Если включено, отключается защита от читерства в сетевой игре." + +#: src/settings_translation_file.cpp +msgid "" +"If enabled, invalid world data won't cause the server to shut down.\n" +"Only enable this if you know what you are doing." +msgstr "" +"Если включено, то сервер не выключится из-за повреждённых данных о мире.\n" +"Включайте только в том случае, если знаете, что делаете." + +#: src/settings_translation_file.cpp +msgid "If enabled, new players cannot join with an empty password." +msgstr "" +"Если включено, то новые игроки не смогут подключаться с пустым паролем." + +#: src/settings_translation_file.cpp +msgid "If enabled, show the server status message on player connection." +msgstr "" +"Если включено, то показывать сообщение о статусе сервера при подключении." + +#: src/settings_translation_file.cpp +msgid "" +"If enabled, you can place blocks at the position (feet + eye level) where " +"you stand.\n" +"This is helpful when working with nodeboxes in small areas." +msgstr "" +"Если включено, то вы можете размещать новые блоки на месте игрока.\n" +"Это может быть полезно при строительстве в узких местах." + +#: src/settings_translation_file.cpp +msgid "If this is set, players will always (re)spawn at the given position." +msgstr "Если установлено, то игроки будут (ре)спавниться в указанной позиции." + +#: src/settings_translation_file.cpp +msgid "Ignore world errors" +msgstr "Игнорировать ошибки мира" + +#: src/settings_translation_file.cpp +msgid "In-Game" +msgstr "В игре" + +#: src/settings_translation_file.cpp +msgid "In-game chat console background alpha (opaqueness, between 0 and 255)." +msgstr "Прозрачность фона внутриигровой консоли (непрозрачность от 0 до 255)." + +#: src/settings_translation_file.cpp +msgid "In-game chat console background color (R,G,B)." +msgstr "Цвет фона внутриигровой консоли (R, G, B)." + +#: src/settings_translation_file.cpp +msgid "In-game chat console height, between 0.1 (10%) and 1.0 (100%)." +msgstr "Высота внутриигрового чата, между 0.1 (10%) и 1.0 (100%)." + +#: src/settings_translation_file.cpp +msgid "Inc. volume key" +msgstr "Клавиша увеличения громкости" + +#: src/settings_translation_file.cpp +msgid "" +"Instrument builtin.\n" +"This is usually only needed by core/builtin contributors" +msgstr "" +"Замерять встроенные функции.\n" +"Обычно это нужно тем, кто пишет код для движка" + +#: src/settings_translation_file.cpp +msgid "Instrument chatcommands on registration." +msgstr "Замерять регистрируемые команды в чате." + +#: src/settings_translation_file.cpp +msgid "" +"Instrument global callback functions on registration.\n" +"(anything you pass to a minetest.register_*() function)" +msgstr "" +"Замерять глобальные обратные вызовы\n" +"(всё, что вы передаёте в функции вида minetest.register_*())" + +#: src/settings_translation_file.cpp +msgid "" +"Instrument the action function of Active Block Modifiers on registration." +msgstr "Замерять действие функции модификаторов активных блоков." + +#: src/settings_translation_file.cpp +msgid "" +"Instrument the action function of Loading Block Modifiers on registration." +msgstr "Замерять действие функции модификатора загружающихся блоков." + +#: src/settings_translation_file.cpp +msgid "Instrument the methods of entities on registration." +msgstr "Замерять методы сущностей." + +#: src/settings_translation_file.cpp +msgid "Instrumentation" +msgstr "Замеры" + +#: src/settings_translation_file.cpp +msgid "Interval of saving important changes in the world, stated in seconds." +msgstr "Интервал сохранения важных изменений в мире, установленный в секундах." + +#: src/settings_translation_file.cpp +msgid "Interval of sending time of day to clients." +msgstr "Интервал отправки клиентам сведений о времени дня." + +#: src/settings_translation_file.cpp +msgid "Inventory image hack" +msgstr "Хак с изображениями в инвентаре" + +#: src/settings_translation_file.cpp +msgid "Inventory items animations" +msgstr "Анимация предметов в инвентаре" + +#: src/settings_translation_file.cpp +msgid "Inventory key" +msgstr "Кнопка открытия инвентаря" + +#: src/settings_translation_file.cpp +msgid "Invert mouse" +msgstr "Инвертировать мышь" + +#: src/settings_translation_file.cpp +msgid "Invert vertical mouse movement." +msgstr "Инвертировать мышь по вертикали." + +#: src/settings_translation_file.cpp +msgid "Item entity TTL" +msgstr "Время жизни выброшенной вещи" + +#: src/settings_translation_file.cpp +msgid "Iterations" +msgstr "Итерации" + +#: src/settings_translation_file.cpp +msgid "" +"Iterations of the recursive function.\n" +"Controls the amount of fine detail." +msgstr "" +"Количество итераций рекурсивной функции.\n" +"Контролирует количество мелких деталей." + +#: src/settings_translation_file.cpp +msgid "Joystick ID" +msgstr "Идентификатор джойстика" + +#: src/settings_translation_file.cpp +msgid "Joystick Type" +msgstr "Тип джойстика" + +#: src/settings_translation_file.cpp +msgid "Joystick button repetition interval" +msgstr "Интервал повторного клика кнопкой джойстика" + +#: src/settings_translation_file.cpp +msgid "Joystick frustum sensitivity" +msgstr "Чувствительность джойстика" + +#: src/settings_translation_file.cpp +msgid "" +"Julia set only: W component of hypercomplex constant determining julia " +"shape.\n" +"Has no effect on 3D fractals.\n" +"Range roughly -2 to 2." +msgstr "" +"Только множество Жюлиа: Компонент W гиперкомплексной константы, определяющий " +"форму фрактала Жюлиа.\n" +"Не влияет на 3D-фракталы.\n" +"Диапазон примерно от -2 до 2." + +#: src/settings_translation_file.cpp +msgid "" +"Julia set only: X component of hypercomplex constant determining julia " +"shape.\n" +"Range roughly -2 to 2." +msgstr "" +"Только множество Жюлиа: Компонент X гиперкомплексной константы, определяющей " +"форму фрактала.\n" +"Диапазон примерно от -2 до 2." + +#: src/settings_translation_file.cpp +msgid "" +"Julia set only: Y component of hypercomplex constant determining julia " +"shape.\n" +"Range roughly -2 to 2." +msgstr "" +"Только множество Жюлиа: Компонент Y гиперкомплексной константы, определяющей " +"форму фрактала.\n" +"Диапазон примерно от -2 до 2." + +#: src/settings_translation_file.cpp +msgid "" +"Julia set only: Z component of hypercomplex constant determining julia " +"shape.\n" +"Range roughly -2 to 2." +msgstr "" +"Только множество Жюлиа: Компонент Z гиперкомплексной константы, определяющей " +"форму фрактала.\n" +"Диапазон примерно от -2 до 2." + +#: src/settings_translation_file.cpp +msgid "Julia w" +msgstr "Жюлиа w" + +#: src/settings_translation_file.cpp +msgid "Julia x" +msgstr "Жюлиа x" + +#: src/settings_translation_file.cpp +msgid "Julia y" +msgstr "Жюлиа y" + +#: src/settings_translation_file.cpp +msgid "Julia z" +msgstr "Жюлиа z" + +#: src/settings_translation_file.cpp +msgid "Jump key" +msgstr "Кнопка прыжка" + +#: src/settings_translation_file.cpp +msgid "Jumping speed" +msgstr "Скорость прыжков" + +#: src/settings_translation_file.cpp +msgid "" +"Key for decreasing the viewing range.\n" +"See http://irrlicht.sourceforge.net/docu/namespaceirr." +"html#a54da2a0e231901735e3da1b0edf72eb3" +msgstr "" +"Клавиша уменьшения дистанции видимости.\n" +"См. http://irrlicht.sourceforge.net/docu/namespaceirr.html#a54da2a0e231901735" +"e3da1b0edf72eb3" + +#: src/settings_translation_file.cpp +msgid "" +"Key for decreasing the volume.\n" +"See http://irrlicht.sourceforge.net/docu/namespaceirr." +"html#a54da2a0e231901735e3da1b0edf72eb3" +msgstr "" +"Клавиша уменьшения громкости.\n" +"См. http://irrlicht.sourceforge.net/docu/namespaceirr.html#a54da2a0e231901735" +"e3da1b0edf72eb3" + +#: src/settings_translation_file.cpp +msgid "" +"Key for dropping the currently selected item.\n" +"See http://irrlicht.sourceforge.net/docu/namespaceirr." +"html#a54da2a0e231901735e3da1b0edf72eb3" +msgstr "" +"Клавиша выкинуть выбранный предмет.\n" +"Смотрите http://irrlicht.sourceforge.net/docu/namespaceirr." +"html#a54da2a0e231901735e3da1b0edf72eb3" + +#: src/settings_translation_file.cpp +msgid "" +"Key for increasing the viewing range.\n" +"See http://irrlicht.sourceforge.net/docu/namespaceirr." +"html#a54da2a0e231901735e3da1b0edf72eb3" +msgstr "" +"Клавиша увеличения дистанции видимости.\n" +"См. http://irrlicht.sourceforge.net/docu/namespaceirr.html#a54da2a0e231901735" +"e3da1b0edf72eb3" + +#: src/settings_translation_file.cpp +msgid "" +"Key for increasing the volume.\n" +"See http://irrlicht.sourceforge.net/docu/namespaceirr." +"html#a54da2a0e231901735e3da1b0edf72eb3" +msgstr "" +"Клавиша увеличения громкости.\n" +"См. http://irrlicht.sourceforge.net/docu/namespaceirr.html#a54da2a0e231901735" +"e3da1b0edf72eb3" + +#: src/settings_translation_file.cpp +msgid "" +"Key for jumping.\n" +"See http://irrlicht.sourceforge.net/docu/namespaceirr." +"html#a54da2a0e231901735e3da1b0edf72eb3" +msgstr "" +"Клавиша прыжка.\n" +"Смотрите http://irrlicht.sourceforge.net/docu/namespaceirr." +"html#a54da2a0e231901735e3da1b0edf72eb3" + +#: src/settings_translation_file.cpp +msgid "" +"Key for moving fast in fast mode.\n" +"See http://irrlicht.sourceforge.net/docu/namespaceirr." +"html#a54da2a0e231901735e3da1b0edf72eb3" +msgstr "" +"Клавиша, включающая режим быстрого перемещения.\n" +"См. http://irrlicht.sourceforge.net/docu/namespaceirr.html#a54da2a0e231901735" +"e3da1b0edf72eb3" + +#: src/settings_translation_file.cpp +msgid "" +"Key for moving the player backward.\n" +"See http://irrlicht.sourceforge.net/docu/namespaceirr." +"html#a54da2a0e231901735e3da1b0edf72eb3" +msgstr "" +"Клавиша движения назад.\n" +"Смотрите http://irrlicht.sourceforge.net/docu/namespaceirr." +"html#a54da2a0e231901735e3da1b0edf72eb3" + +#: src/settings_translation_file.cpp +msgid "" +"Key for moving the player forward.\n" +"See http://irrlicht.sourceforge.net/docu/namespaceirr." +"html#a54da2a0e231901735e3da1b0edf72eb3" +msgstr "" +"Клавиша движения вперед.\n" +"Смотрите http://irrlicht.sourceforge.net/docu/namespaceirr." +"html#a54da2a0e231901735e3da1b0edf72eb3" + +#: src/settings_translation_file.cpp +msgid "" +"Key for moving the player left.\n" +"See http://irrlicht.sourceforge.net/docu/namespaceirr." +"html#a54da2a0e231901735e3da1b0edf72eb3" +msgstr "" +"Клавиша движения влево.\n" +"Смотрите http://irrlicht.sourceforge.net/docu/namespaceirr." +"html#a54da2a0e231901735e3da1b0edf72eb3" + +#: src/settings_translation_file.cpp +msgid "" +"Key for moving the player right.\n" +"See http://irrlicht.sourceforge.net/docu/namespaceirr." +"html#a54da2a0e231901735e3da1b0edf72eb3" +msgstr "" +"Клавиша движения вправо.\n" +"Смотрите http://irrlicht.sourceforge.net/docu/namespaceirr." +"html#a54da2a0e231901735e3da1b0edf72eb3" + +#: src/settings_translation_file.cpp +msgid "" +"Key for muting the game.\n" +"See http://irrlicht.sourceforge.net/docu/namespaceirr." +"html#a54da2a0e231901735e3da1b0edf72eb3" +msgstr "" +"Клавиша отключения звука в игре.\n" +"См. http://irrlicht.sourceforge.net/docu/namespaceirr.html#a54da2a0e231901735" +"e3da1b0edf72eb3" + +#: src/settings_translation_file.cpp +msgid "" +"Key for opening the chat console.\n" +"See http://irrlicht.sourceforge.net/docu/namespaceirr." +"html#a54da2a0e231901735e3da1b0edf72eb3" +msgstr "" +"Клавиша открытия чат-консоли.\n" +"Смотрите http://irrlicht.sourceforge.net/docu/namespaceirr." +"html#a54da2a0e231901735e3da1b0edf72eb3" + +#: src/settings_translation_file.cpp +msgid "" +"Key for opening the chat window to type commands.\n" +"See http://irrlicht.sourceforge.net/docu/namespaceirr." +"html#a54da2a0e231901735e3da1b0edf72eb3" +msgstr "" +"Клавиша открытия окна чата для ввода комманды.\n" +"Смотрите http://irrlicht.sourceforge.net/docu/namespaceirr." +"html#a54da2a0e231901735e3da1b0edf72eb3" + +#: src/settings_translation_file.cpp +msgid "" +"Key for opening the chat window to type local commands.\n" +"See http://irrlicht.sourceforge.net/docu/namespaceirr." +"html#a54da2a0e231901735e3da1b0edf72eb3" +msgstr "" +"Клавиша открытия окна чата для ввода локальных команд.\n" +"См. http://irrlicht.sourceforge.net/docu/namespaceirr.html#a54da2a0e231901735" +"e3da1b0edf72eb3" + +#: src/settings_translation_file.cpp +msgid "" +"Key for opening the chat window.\n" +"See http://irrlicht.sourceforge.net/docu/namespaceirr." +"html#a54da2a0e231901735e3da1b0edf72eb3" +msgstr "" +"Клавиша открытия окна чата.\n" +"Смотрите http://irrlicht.sourceforge.net/docu/namespaceirr." +"html#a54da2a0e231901735e3da1b0edf72eb3" + +#: src/settings_translation_file.cpp +msgid "" +"Key for opening the inventory.\n" +"See http://irrlicht.sourceforge.net/docu/namespaceirr." +"html#a54da2a0e231901735e3da1b0edf72eb3" +msgstr "" +"Клавиша открытия инвентаря.\n" +"Смотрите http://irrlicht.sourceforge.net/docu/namespaceirr." +"html#a54da2a0e231901735e3da1b0edf72eb3" + +#: src/settings_translation_file.cpp +msgid "" +"Key for printing debug stacks. Used for development.\n" +"See http://irrlicht.sourceforge.net/docu/namespaceirr." +"html#a54da2a0e231901735e3da1b0edf72eb3" +msgstr "" +"Клавиша для печати отладочных стеков. Используется для разработки.\n" +"См. http://irrlicht.sourceforge.net/docu/namespaceirr.html#a54da2a0e231901735" +"e3da1b0edf72eb3" + +#: src/settings_translation_file.cpp +msgid "" +"Key for selecting the next item in the hotbar.\n" +"See http://irrlicht.sourceforge.net/docu/namespaceirr." +"html#a54da2a0e231901735e3da1b0edf72eb3" +msgstr "" +"Клавиша выбора следующего предмета в хотбаре.\n" +"См. http://irrlicht.sourceforge.net/docu/namespaceirr.html#a54da2a0e231901735" +"e3da1b0edf72eb3" + +#: src/settings_translation_file.cpp +msgid "" +"Key for selecting the previous item in the hotbar.\n" +"See http://irrlicht.sourceforge.net/docu/namespaceirr." +"html#a54da2a0e231901735e3da1b0edf72eb3" +msgstr "" +"Клавиша выбора предыдущего предмета в хотбаре.\n" +"Смотрите http://irrlicht.sourceforge.net/docu/namespaceirr.html#a54da2a0e2319" +"01735e3da1b0edf72eb3" + +#: src/settings_translation_file.cpp +msgid "" +"Key for sneaking.\n" +"Also used for climbing down and descending in water if aux1_descends is " +"disabled.\n" +"See http://irrlicht.sourceforge.net/docu/namespaceirr." +"html#a54da2a0e231901735e3da1b0edf72eb3" +msgstr "" +"Клавиша красться.\n" +"Также используется для спуска и погружения под воду, если aux1_descends " +"отключена.\n" +"Смотрите http://irrlicht.sourceforge.net/docu/namespaceirr." +"html#a54da2a0e231901735e3da1b0edf72eb3" + +#: src/settings_translation_file.cpp +msgid "" +"Key for switching between first- and third-person camera.\n" +"See http://irrlicht.sourceforge.net/docu/namespaceirr." +"html#a54da2a0e231901735e3da1b0edf72eb3" +msgstr "" +"Клавиша переключения вида от первого и от третьего лица.\n" +"Смотрите http://irrlicht.sourceforge.net/docu/namespaceirr." +"html#a54da2a0e231901735e3da1b0edf72eb3" + +#: src/settings_translation_file.cpp +msgid "" +"Key for taking screenshots.\n" +"See http://irrlicht.sourceforge.net/docu/namespaceirr." +"html#a54da2a0e231901735e3da1b0edf72eb3" +msgstr "" +"Клавиша снятия скриншота.\n" +"Смотрите http://irrlicht.sourceforge.net/docu/namespaceirr." +"html#a54da2a0e231901735e3da1b0edf72eb3" + +#: src/settings_translation_file.cpp +msgid "" +"Key for toggling autorun.\n" +"See http://irrlicht.sourceforge.net/docu/namespaceirr." +"html#a54da2a0e231901735e3da1b0edf72eb3" +msgstr "" +"Клавиша переключения режима постоянной ходьбы.\n" +"См. http://irrlicht.sourceforge.net/docu/namespaceirr.html#a54da2a0e231901735" +"e3da1b0edf72eb3" + +#: src/settings_translation_file.cpp +msgid "" +"Key for toggling cinematic mode.\n" +"See http://irrlicht.sourceforge.net/docu/namespaceirr." +"html#a54da2a0e231901735e3da1b0edf72eb3" +msgstr "" +"Клавиша переключения кинематографического режима.\n" +"Смотрите http://irrlicht.sourceforge.net/docu/namespaceirr." +"html#a54da2a0e231901735e3da1b0edf72eb3" + +#: src/settings_translation_file.cpp +msgid "" +"Key for toggling display of minimap.\n" +"See http://irrlicht.sourceforge.net/docu/namespaceirr." +"html#a54da2a0e231901735e3da1b0edf72eb3" +msgstr "" +"Клавиша переключения отображения миникарты.\n" +"Смотрите http://irrlicht.sourceforge.net/docu/namespaceirr." +"html#a54da2a0e231901735e3da1b0edf72eb3" + +#: src/settings_translation_file.cpp +msgid "" +"Key for toggling fast mode.\n" +"See http://irrlicht.sourceforge.net/docu/namespaceirr." +"html#a54da2a0e231901735e3da1b0edf72eb3" +msgstr "" +"Клавиша переключения режима быстрого перемещения.\n" +"Смотрите http://irrlicht.sourceforge.net/docu/namespaceirr." +"html#a54da2a0e231901735e3da1b0edf72eb3" + +#: src/settings_translation_file.cpp +msgid "" +"Key for toggling flying.\n" +"See http://irrlicht.sourceforge.net/docu/namespaceirr." +"html#a54da2a0e231901735e3da1b0edf72eb3" +msgstr "" +"Клавиша переключения режима полета.\n" +"Смотрите http://irrlicht.sourceforge.net/docu/namespaceirr." +"html#a54da2a0e231901735e3da1b0edf72eb3" + +#: src/settings_translation_file.cpp +msgid "" +"Key for toggling noclip mode.\n" +"See http://irrlicht.sourceforge.net/docu/namespaceirr." +"html#a54da2a0e231901735e3da1b0edf72eb3" +msgstr "" +"Клавиша переключения режима проверки столкновений.\n" +"Смотрите http://irrlicht.sourceforge.net/docu/namespaceirr." +"html#a54da2a0e231901735e3da1b0edf72eb3" + +#: src/settings_translation_file.cpp +msgid "" +"Key for toggling the camera update. Only used for development\n" +"See http://irrlicht.sourceforge.net/docu/namespaceirr." +"html#a54da2a0e231901735e3da1b0edf72eb3" +msgstr "" +"Клавиша выключения обновлений камеры. Используется только для разработки\n" +"См. http://irrlicht.sourceforge.net/docu/namespaceirr.html#a54da2a0e231901735" +"e3da1b0edf72eb3" + +#: src/settings_translation_file.cpp +msgid "" +"Key for toggling the display of debug info.\n" +"See http://irrlicht.sourceforge.net/docu/namespaceirr." +"html#a54da2a0e231901735e3da1b0edf72eb3" +msgstr "" +"Клавиша переключения показа отладочной информации.\n" +"Смотрите http://irrlicht.sourceforge.net/docu/namespaceirr." +"html#a54da2a0e231901735e3da1b0edf72eb3" + +#: src/settings_translation_file.cpp +msgid "" +"Key for toggling the display of the HUD.\n" +"See http://irrlicht.sourceforge.net/docu/namespaceirr." +"html#a54da2a0e231901735e3da1b0edf72eb3" +msgstr "" +"Клавиша переключения отображения HUD.\n" +"Смотрите http://irrlicht.sourceforge.net/docu/namespaceirr." +"html#a54da2a0e231901735e3da1b0edf72eb3" + +#: src/settings_translation_file.cpp +msgid "" +"Key for toggling the display of the chat.\n" +"See http://irrlicht.sourceforge.net/docu/namespaceirr." +"html#a54da2a0e231901735e3da1b0edf72eb3" +msgstr "" +"Клавиша переключения отображения чата.\n" +"Смотрите http://irrlicht.sourceforge.net/docu/namespaceirr." +"html#a54da2a0e231901735e3da1b0edf72eb3" + +#: src/settings_translation_file.cpp +msgid "" +"Key for toggling the display of the fog.\n" +"See http://irrlicht.sourceforge.net/docu/namespaceirr." +"html#a54da2a0e231901735e3da1b0edf72eb3" +msgstr "" +"Клавиша переключения отображения тумана.\n" +"Смотрите http://irrlicht.sourceforge.net/docu/namespaceirr." +"html#a54da2a0e231901735e3da1b0edf72eb3" + +#: src/settings_translation_file.cpp +msgid "" +"Key for toggling the display of the large chat console.\n" +"See http://irrlicht.sourceforge.net/docu/namespaceirr." +"html#a54da2a0e231901735e3da1b0edf72eb3" +msgstr "" +"Клавиша переключения отображения большого чата.\n" +"См. http://irrlicht.sourceforge.net/docu/namespaceirr.html#a54da2a0e231901735" +"e3da1b0edf72eb3" + +#: src/settings_translation_file.cpp +msgid "" +"Key for toggling the display of the profiler. Used for development.\n" +"See http://irrlicht.sourceforge.net/docu/namespaceirr." +"html#a54da2a0e231901735e3da1b0edf72eb3" +msgstr "" +"Клавиша для переключения отображения профилировщика. Используется для " +"разработки.\n" +"См. http://irrlicht.sourceforge.net/docu/namespaceirr.html#a54da2a0e231901735" +"e3da1b0edf72eb3" + +#: src/settings_translation_file.cpp +msgid "" +"Key for toggling unlimited view range.\n" +"See http://irrlicht.sourceforge.net/docu/namespaceirr." +"html#a54da2a0e231901735e3da1b0edf72eb3" +msgstr "" +"Клавиша отключения ограничения зоны видимости.\n" +"Смотрите http://irrlicht.sourceforge.net/docu/namespaceirr." +"html#a54da2a0e231901735e3da1b0edf72eb3" + +#: src/settings_translation_file.cpp +msgid "" +"Key to use view zoom when possible.\n" +"See http://irrlicht.sourceforge.net/docu/namespaceirr." +"html#a54da2a0e231901735e3da1b0edf72eb3" +msgstr "" +"Клавиша режима увеличения.\n" +"См. http://irrlicht.sourceforge.net/docu/namespaceirr.html#a54da2a0e231901735" +"e3da1b0edf72eb3" + +#: src/settings_translation_file.cpp +msgid "Key use for climbing/descending" +msgstr "Клавиша для подъема/спуска" + +#: src/settings_translation_file.cpp +msgid "Lake steepness" +msgstr "Крутизна озёр" + +#: src/settings_translation_file.cpp +msgid "Lake threshold" +msgstr "Порог озёр" + +#: src/settings_translation_file.cpp +msgid "Language" +msgstr "Язык" + +#: src/settings_translation_file.cpp +msgid "Large cave depth" +msgstr "Глубина больших пещер" + +#: src/settings_translation_file.cpp +msgid "Large chat console key" +msgstr "Кнопка вызова консоли" + +#: src/settings_translation_file.cpp +msgid "Lava Features" +msgstr "Лава" + +#: src/settings_translation_file.cpp +msgid "Leaves style" +msgstr "Стиль листвы" + +#: src/settings_translation_file.cpp +msgid "" +"Leaves style:\n" +"- Fancy: all faces visible\n" +"- Simple: only outer faces, if defined special_tiles are used\n" +"- Opaque: disable transparency" +msgstr "" +"Стили листвы:\n" +"- Fancy: включена прозрачность, все стороны видны\n" +"- Simple: прозрачность включена, видны только внешние стороны, если " +"используются special_tiles\n" +"- Opaque: прозрачность отключена" + +#: src/settings_translation_file.cpp +msgid "Left key" +msgstr "Кнопка выхода" + +#: src/settings_translation_file.cpp +msgid "" +"Length of a server tick and the interval at which objects are generally " +"updated over network." +msgstr "" +"Длина серверного тика и интервал, на котором объекты, как правило, " +"обновляются по сети." + +#: src/settings_translation_file.cpp +msgid "Length of time between ABM execution cycles" +msgstr "Время между циклами выполнения модификаторов активных блоков" + +#: src/settings_translation_file.cpp +msgid "Length of time between NodeTimer execution cycles" +msgstr "Время между циклами выполнения таймеров узлов" + +#: src/settings_translation_file.cpp +msgid "" +"Level of logging to be written to debug.txt:\n" +"- (no logging)\n" +"- none (messages with no level)\n" +"- error\n" +"- warning\n" +"- action\n" +"- info\n" +"- verbose" +msgstr "" +"Уровень логов для записи в debug.txt:\n" +"- (нет логов)\n" +"- none (сообщения без уровня)\n" +"- error (ошибки)\n" +"- warning (предупреждения)\n" +"- action (действия)\n" +"- info (информация)\n" +"- verbose (подробности)" + +#: src/settings_translation_file.cpp +msgid "Limit of emerge queues on disk" +msgstr "Ограничение очередей emerge на диске" + +#: src/settings_translation_file.cpp +msgid "Limit of emerge queues to generate" +msgstr "Ограничение очередей emerge для генерации" + +#: src/settings_translation_file.cpp +msgid "" +"Limit of map generation, in nodes, in all 6 directions from (0, 0, 0).\n" +"Only mapchunks completely within the mapgen limit are generated.\n" +"Value is stored per-world." +msgstr "" +"Предел генерации карты, в узлах, во всех шести направлениях от (0, 0, 0).\n" +"Генерируются только блоки, которые умещаются в заданном пределе полностью.\n" +"Значение сохраняется отдельно для каждого мира." + +#: src/settings_translation_file.cpp +msgid "" +"Limits number of parallel HTTP requests. Affects:\n" +"- Media fetch if server uses remote_media setting.\n" +"- Serverlist download and server announcement.\n" +"- Downloads performed by main menu (e.g. mod manager).\n" +"Only has an effect if compiled with cURL." +msgstr "" +"Ограничивает количество параллельных HTTP-запросов. Влияет на:\n" +"- Загрузку медиаданных, если сервер использует параметр remote_media.\n" +"- Загрузку списка серверов и их анонсирование.\n" +"- Загрузки, выполняемые в главном меню (например, в менеджере модов).\n" +"Действует только при компиляции с включенной поддержкой cURL." + +#: src/settings_translation_file.cpp +msgid "Liquid fluidity" +msgstr "Текучесть жидкости" + +#: src/settings_translation_file.cpp +msgid "Liquid fluidity smoothing" +msgstr "Сглаживание текучести жидкостей" + +#: src/settings_translation_file.cpp +msgid "Liquid loop max" +msgstr "Максимальное количество зацикленных жидкостей" + +#: src/settings_translation_file.cpp +msgid "Liquid queue purge time" +msgstr "Время очистки очереди жидкостей" + +#: src/settings_translation_file.cpp +msgid "Liquid sink" +msgstr "Утекание воды" + +#: src/settings_translation_file.cpp +msgid "Liquid update interval in seconds." +msgstr "Интервал обновления жидкостей в секундах." + +#: src/settings_translation_file.cpp +msgid "Liquid update tick" +msgstr "Интервал обновления жидкостей" + +#: src/settings_translation_file.cpp +msgid "Load the game profiler" +msgstr "Загружать профилировщик игры" + +#: src/settings_translation_file.cpp +msgid "" +"Load the game profiler to collect game profiling data.\n" +"Provides a /profiler command to access the compiled profile.\n" +"Useful for mod developers and server operators." +msgstr "" +"Загружать профилировщик игры для собирания профилирующей информации.\n" +"Предоставляет команду /profiler для доступа к скомпилированному профилю.\n" +"Полезно для разработчиков модов и операторов сервера." + +#: src/settings_translation_file.cpp +msgid "Loading Block Modifiers" +msgstr "Модификаторы загружающихся блоков" + +#: src/settings_translation_file.cpp +msgid "Main menu game manager" +msgstr "Менеджер игр в главном меню" + +#: src/settings_translation_file.cpp +msgid "Main menu mod manager" +msgstr "Мод менеджер главного меню" + +#: src/settings_translation_file.cpp +msgid "Main menu script" +msgstr "Скрипт главного меню" + +#: src/settings_translation_file.cpp +msgid "" +"Make fog and sky colors depend on daytime (dawn/sunset) and view direction." +msgstr "" +"Включить зависимость цвета тумана и облаков от времени суток (рассвет/закат)." + +#: src/settings_translation_file.cpp +msgid "Makes DirectX work with LuaJIT. Disable if it causes troubles." +msgstr "" +"Заставляет DirectX работать с LuaJIT. Отключите, если это вызывает проблемы." + +#: src/settings_translation_file.cpp +msgid "Makes all liquids opaque" +msgstr "Сделать все жидкости непрозрачными" + +#: src/settings_translation_file.cpp +msgid "Map directory" +msgstr "Каталог сохранения карт" + +#: src/settings_translation_file.cpp +msgid "" +"Map generation attributes specific to Mapgen Valleys.\n" +"'altitude_chill' makes higher elevations colder, which may cause biome " +"issues.\n" +"'humid_rivers' modifies the humidity around rivers and in areas where water " +"would tend to pool,\n" +"it may interfere with delicately adjusted biomes.\n" +"Flags that are not specified in the flag string are not modified from the " +"default.\n" +"Flags starting with 'no' are used to explicitly disable them." +msgstr "" +"Атрибуты генерации карты, относящиеся к Valleys.\n" +"'altitude_chill' делает высоты холоднее, что может привести к проблемам с " +"биомами.\n" +"'humid_rivers' изменяет влажность вокруг рек, и в областях, где скапливается " +"вода,\n" +"он может вмешиваться в тонко настроенные биомы.\n" +"Флаги, не указанные в строке флагов, остаются в значении по умолчанию.\n" +"Флаги с приставкой 'no' явно отключают их." + +#: src/settings_translation_file.cpp +msgid "" +"Map generation attributes specific to Mapgen flat.\n" +"Occasional lakes and hills can be added to the flat world.\n" +"Flags that are not specified in the flag string are not modified from the " +"default.\n" +"Flags starting with 'no' are used to explicitly disable them." +msgstr "" +"Атрибуты генерации карты, относящиеся к генератору плоской карты.\n" +"Случайные озёра и холмы могут быть добавлены в плоский мир.\n" +"Флаги, не указанные в строке флагов, остаются в значении по умолчанию.\n" +"Флаги с приставкой 'no' явно отключают их." + +#: src/settings_translation_file.cpp +msgid "" +"Map generation attributes specific to Mapgen v5.\n" +"Flags that are not specified in the flag string are not modified from the " +"default.\n" +"Flags starting with 'no' are used to explicitly disable them." +msgstr "" +"Атрибуты генерации карты, относящиеся к генератору карты версии 5.\n" +"Флаги, не указанные в строке флагов, остаются в значении по умолчанию.\n" +"Флаги с приставкой 'no' явно отключают их." + +#: src/settings_translation_file.cpp +msgid "" +"Map generation attributes specific to Mapgen v6.\n" +"The 'snowbiomes' flag enables the new 5 biome system.\n" +"When the new biome system is enabled jungles are automatically enabled and\n" +"the 'jungles' flag is ignored.\n" +"Flags that are not specified in the flag string are not modified from the " +"default.\n" +"Flags starting with 'no' are used to explicitly disable them." +msgstr "" +"Атрибуты генерации карты, относящиеся к генератору карты версии 6.\n" +"Флаг 'snowbiomes' включает новую систему биомов.\n" +"Когда включена новая система биомов, джунгли включаются автоматически\n" +"и флаг 'jungles' игнорируется.\n" +"Флаги, не указанные в строке флагов, остаются в значении по умолчанию.\n" +"Флаги с приставкой 'no' явно отключают их." + +#: src/settings_translation_file.cpp +msgid "" +"Map generation attributes specific to Mapgen v7.\n" +"The 'ridges' flag enables the rivers.\n" +"Floatlands are currently experimental and subject to change.\n" +"Flags that are not specified in the flag string are not modified from the " +"default.\n" +"Flags starting with 'no' are used to explicitly disable them." +msgstr "" +"Атрибуты генерации карты, относящиеся к генератору карты версии 7.\n" +"Флаг 'ridges' включает реки.\n" +"Парящие острова являются экспериментальными и могут изменяться.\n" +"Флаги, не указанные в строке флагов, остаются в значении по умолчанию.\n" +"Флаги с приставкой 'no' явно отключают их." + +#: src/settings_translation_file.cpp +msgid "Map generation limit" +msgstr "Предел генерации карты" + +#: src/settings_translation_file.cpp +msgid "Map save interval" +msgstr "Интервал сохранения карты" + +#: src/settings_translation_file.cpp +msgid "Mapblock limit" +msgstr "Предел блока" + +#: src/settings_translation_file.cpp +msgid "Mapblock mesh generation delay" +msgstr "Задержка в генерации мешей блоков" + +#: src/settings_translation_file.cpp +msgid "Mapblock mesh generator's MapBlock cache size MB" +msgstr "Размер кэша блоков в генераторе мешей в МБ" + +#: src/settings_translation_file.cpp +msgid "Mapblock unload timeout" +msgstr "Таймаут выгрузки блоков" + +#: src/settings_translation_file.cpp +msgid "Mapgen Valleys" +msgstr "Генератор карты Valleys" + +#: src/settings_translation_file.cpp +msgid "Mapgen debug" +msgstr "Дебаггинг генератора карты" + +#: src/settings_translation_file.cpp +msgid "Mapgen flags" +msgstr "Флаги генератора карты" + +#: src/settings_translation_file.cpp +msgid "Mapgen flat" +msgstr "Генератор плоской карты" + +#: src/settings_translation_file.cpp +msgid "Mapgen flat specific flags" +msgstr "Флаги генератора плоской карты" + +#: src/settings_translation_file.cpp +msgid "Mapgen fractal" +msgstr "Генератор фрактальной карты" + +#: src/settings_translation_file.cpp +msgid "Mapgen name" +msgstr "Название генератора карты" + +#: src/settings_translation_file.cpp +msgid "Mapgen v5" +msgstr "Генератор карты версии 5" + +#: src/settings_translation_file.cpp +msgid "Mapgen v5 specific flags" +msgstr "Флаги генератора карты версии 5" + +#: src/settings_translation_file.cpp +msgid "Mapgen v6" +msgstr "Генератор карты версии 6" + +#: src/settings_translation_file.cpp +msgid "Mapgen v6 specific flags" +msgstr "Флаги генератора карты версии 6" + +#: src/settings_translation_file.cpp +msgid "Mapgen v7" +msgstr "Генератор карты версии 7" + +#: src/settings_translation_file.cpp +msgid "Mapgen v7 specific flags" +msgstr "Флаги генератора карты версии 7" + +#: src/settings_translation_file.cpp +msgid "Massive cave depth" +msgstr "Глубина огромных пещер" + +#: src/settings_translation_file.cpp +msgid "Massive cave noise" +msgstr "Шум огромных пещер" + +#: src/settings_translation_file.cpp +msgid "Massive caves form here." +msgstr "Огромные пещеры образуются здесь." + +#: src/settings_translation_file.cpp +msgid "Max block generate distance" +msgstr "Максимальное расстояние генерации блоков" + +#: src/settings_translation_file.cpp +msgid "Max block send distance" +msgstr "Максимальное расстояние отправки блоков" + +#: src/settings_translation_file.cpp +msgid "Max liquids processed per step." +msgstr "Максимальное количество обработанных жидкостей за шаг." + +#: src/settings_translation_file.cpp +msgid "Max. clearobjects extra blocks" +msgstr "Количество дополнительно загружаемых блоков clearobjects" + +#: src/settings_translation_file.cpp +msgid "Max. packets per iteration" +msgstr "Максимальное количество пакетов за итерацию" + +#: src/settings_translation_file.cpp +msgid "Maximum FPS" +msgstr "Максимальный FPS" + +#: src/settings_translation_file.cpp +msgid "Maximum FPS when game is paused." +msgstr "Максимальный FPS в режиме паузы." + +#: src/settings_translation_file.cpp +msgid "Maximum forceloaded blocks" +msgstr "Максимальное количество принудительно загруженных блоков" + +#: src/settings_translation_file.cpp +msgid "Maximum hotbar width" +msgstr "Максимальная ширина хотбара" + +#: src/settings_translation_file.cpp +msgid "Maximum number of blocks that are simultaneously sent in total." +msgstr "Максимальное количество одновременно отправляемых блоков." + +#: src/settings_translation_file.cpp +msgid "Maximum number of blocks that are simultaneously sent per client." +msgstr "Количество блоков, передаваемых одновременно для каждого клиента." + +#: src/settings_translation_file.cpp +msgid "Maximum number of blocks that can be queued for loading." +msgstr "" +"Максимальное количество блоков, которые могут быть помещены в очередь для " +"загрузки." + +#: src/settings_translation_file.cpp +msgid "" +"Maximum number of blocks to be queued that are to be generated.\n" +"Set to blank for an appropriate amount to be chosen automatically." +msgstr "" +"Максимальное количество блоков в очереди на генерацию. Оставьте пустым для " +"автоматического выбора подходящего значения." + +#: src/settings_translation_file.cpp +msgid "" +"Maximum number of blocks to be queued that are to be loaded from file.\n" +"Set to blank for an appropriate amount to be chosen automatically." +msgstr "" +"Максимальное количество блоков в очереди на загрузку из файла. Оставьте " +"пустым для автоматического выбора подходящего значения." + +#: src/settings_translation_file.cpp +msgid "Maximum number of forceloaded mapblocks." +msgstr "Максимальное количество принудительно загруженных блоков." + +#: src/settings_translation_file.cpp +msgid "" +"Maximum number of mapblocks for client to be kept in memory.\n" +"Set to -1 for unlimited amount." +msgstr "" +"Максимальное количество блоков в памяти клиента.\n" +"Установите в -1 для бесконечного количества." + +#: src/settings_translation_file.cpp +msgid "" +"Maximum number of packets sent per send step, if you have a slow connection\n" +"try reducing it, but don't reduce it to a number below double of targeted\n" +"client number." +msgstr "" +"Максимальное количество пакетов, отправляемых за шаг. Если у вас медленное " +"подключение,\n" +"попробуйте уменьшить его, но не устанавливайте ниже значения клиента, " +"умноженного на два." + +#: src/settings_translation_file.cpp +msgid "Maximum number of players that can connect simultaneously." +msgstr "Максимальное количество одновременно подключающихся клиентов." + +#: src/settings_translation_file.cpp +msgid "Maximum number of statically stored objects in a block." +msgstr "Максимальное количество статически хранимых объектов в блоке." + +#: src/settings_translation_file.cpp +msgid "Maximum objects per block" +msgstr "Максимальное количество объектов на блок" + +#: src/settings_translation_file.cpp +msgid "" +"Maximum proportion of current window to be used for hotbar.\n" +"Useful if there's something to be displayed right or left of hotbar." +msgstr "" +"Максимальная доля окна, используемая для хотбара.\n" +"Полезно, если что-то будет отображаться справа или слева от него." + +#: src/settings_translation_file.cpp +msgid "Maximum simultaneous block sends per client" +msgstr "Максимальное количество одновременных отправлений блоков на клиент" + +#: src/settings_translation_file.cpp +msgid "Maximum simultaneous block sends total" +msgstr "Максимальное количество одновременных отправлений блоков в общем" + +#: src/settings_translation_file.cpp +msgid "Maximum time in ms a file download (e.g. a mod download) may take." +msgstr "" +"Максимум времени (в миллисекундах), которое может занять загрузка (например, " +"мода)." + +#: src/settings_translation_file.cpp +msgid "Maximum users" +msgstr "Максимальное количество пользователей" + +#: src/settings_translation_file.cpp +msgid "Menus" +msgstr "Меню" + +#: src/settings_translation_file.cpp +msgid "Mesh cache" +msgstr "Кэш мешей" + +#: src/settings_translation_file.cpp +msgid "Message of the day" +msgstr "Сообщение дня" + +#: src/settings_translation_file.cpp +msgid "Message of the day displayed to players connecting." +msgstr "Сообщение, отображаемое подключившимся игрокам." + +#: src/settings_translation_file.cpp +msgid "Method used to highlight selected object." +msgstr "Метод подсветки выделенного объекта." + +#: src/settings_translation_file.cpp +msgid "Minimap" +msgstr "Миникарта" + +#: src/settings_translation_file.cpp +msgid "Minimap key" +msgstr "Клавиша переключения миникарты" + +#: src/settings_translation_file.cpp +msgid "Minimap scan height" +msgstr "Высота сканирования миникарты" + +#: src/settings_translation_file.cpp +msgid "Minimum texture size for filters" +msgstr "Минимальный размер текстуры для фильтров" + +#: src/settings_translation_file.cpp +msgid "Mipmapping" +msgstr "Mip-текстурирование (Мип-маппинг)" + +#: src/settings_translation_file.cpp +#, fuzzy +msgid "Modifies the size of the hudbar elements." +msgstr "Изменяет размер элементов hudbar." + +#: src/settings_translation_file.cpp +msgid "Modstore details URL" +msgstr "URL информации о модах" + +#: src/settings_translation_file.cpp +msgid "Modstore download URL" +msgstr "URL для скачивания модов" + +#: src/settings_translation_file.cpp +msgid "Modstore mods list URL" +msgstr "URL списка модов" + +#: src/settings_translation_file.cpp +msgid "Monospace font path" +msgstr "Путь к моноширинному шрифту" + +#: src/settings_translation_file.cpp +msgid "Monospace font size" +msgstr "Размер моноширинного шрифта" + +#: src/settings_translation_file.cpp +msgid "Mountain height noise" +msgstr "Шум высоты гор" + +#: src/settings_translation_file.cpp +msgid "Mountain noise" +msgstr "Шум гор" + +#: src/settings_translation_file.cpp +msgid "Mouse sensitivity" +msgstr "Чувствительность мыши" + +#: src/settings_translation_file.cpp +msgid "Mouse sensitivity multiplier." +msgstr "Множитель чувствительности мыши." + +#: src/settings_translation_file.cpp +msgid "Mud noise" +msgstr "Шум грязи" + +#: src/settings_translation_file.cpp +msgid "" +"Multiplier for fall bobbing.\n" +"For example: 0 for no view bobbing; 1.0 for normal; 2.0 for double." +msgstr "" +"Множитель для покачивания при падении.\n" +"Например: 0 отключает покачивание; 1.0 для обычного; 2.0 для двойного." + +#: src/settings_translation_file.cpp +msgid "Mute key" +msgstr "Клавиша отключения звука" + +#: src/settings_translation_file.cpp +msgid "" +"Name of map generator to be used when creating a new world.\n" +"Creating a world in the main menu will override this." +msgstr "" +"Название генератора карты, используемого при создании мира.\n" +"Создание мира из главного меню переопределит это." + +#: src/settings_translation_file.cpp +msgid "" +"Name of the player.\n" +"When running a server, clients connecting with this name are admins.\n" +"When starting from the main menu, this is overridden." +msgstr "" +"Имя игрока.\n" +"На сервере клиент с этим именем будет админом.\n" +"Будет переопределено при запуске из главного меню." + +#: src/settings_translation_file.cpp +msgid "" +"Name of the server, to be displayed when players join and in the serverlist." +msgstr "Имя сервера, отображаемое при входе и в списке серверов." + +#: src/settings_translation_file.cpp +msgid "Network" +msgstr "Сеть" + +#: src/settings_translation_file.cpp +msgid "" +"Network port to listen (UDP).\n" +"This value will be overridden when starting from the main menu." +msgstr "" +"Сетевой порт для прослушивания (UDP).\n" +"Этот параметр будет переопределён, если запускать сервер с главного меню." + +#: src/settings_translation_file.cpp +msgid "New users need to input this password." +msgstr "Новым пользователям нужно вводить этот пароль." + +#: src/settings_translation_file.cpp +msgid "Noclip" +msgstr "Отключить столкновения" + +#: src/settings_translation_file.cpp +msgid "Noclip key" +msgstr "Клавиша отключения столкновений" + +#: src/settings_translation_file.cpp +msgid "Node highlighting" +msgstr "Подсветка нод" + +#: src/settings_translation_file.cpp +msgid "NodeTimer interval" +msgstr "Интервал обновления узлов" + +#: src/settings_translation_file.cpp +msgid "Noises" +msgstr "Шумы" + +#: src/settings_translation_file.cpp +msgid "Normalmaps sampling" +msgstr "Выборка карт нормалей" + +#: src/settings_translation_file.cpp +msgid "Normalmaps strength" +msgstr "Сила карт нормалей" + +#: src/settings_translation_file.cpp +msgid "Number of emerge threads" +msgstr "Количество emerge-потоков" + +#: src/settings_translation_file.cpp +msgid "" +"Number of emerge threads to use. Make this field blank, or increase this " +"number\n" +"to use multiple threads. On multiprocessor systems, this will improve mapgen " +"speed greatly\n" +"at the cost of slightly buggy caves." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"Number of extra blocks that can be loaded by /clearobjects at once.\n" +"This is a trade-off between sqlite transaction overhead and\n" +"memory consumption (4096=100MB, as a rule of thumb)." +msgstr "" +"Количество дополнительных блоков, которые могут сразу быть загружены " +"/clearobjects.\n" +"Это компромисс между накладными расходами на транзакции SQLite и " +"потреблением\n" +"памяти (4096=100 MБ, как правило)." + +#: src/settings_translation_file.cpp +msgid "Number of parallax occlusion iterations." +msgstr "Количество итераций Parallax Occlusion." + +#: src/settings_translation_file.cpp +msgid "Offset" +msgstr "Смещение" + +#: src/settings_translation_file.cpp +msgid "Opaque liquids" +msgstr "Непрозрачные жидкости" + +#: src/settings_translation_file.cpp +msgid "Overall bias of parallax occlusion effect, usually scale/2." +msgstr "Общее смещение эффекта Parallax Occlusion, обычно масштаб/2." + +#: src/settings_translation_file.cpp +msgid "Overall scale of parallax occlusion effect." +msgstr "Общее смещение эффекта Parallax Occlusion." + +#: src/settings_translation_file.cpp +msgid "Parallax occlusion" +msgstr "Включить параллакс" + +#: src/settings_translation_file.cpp +msgid "Parallax occlusion Scale" +msgstr "Масштаб параллакса" + +#: src/settings_translation_file.cpp +msgid "Parallax occlusion bias" +msgstr "Смещение параллакса" + +#: src/settings_translation_file.cpp +msgid "Parallax occlusion iterations" +msgstr "Повторение параллакса" + +#: src/settings_translation_file.cpp +msgid "Parallax occlusion mode" +msgstr "Режим параллакса" + +#: src/settings_translation_file.cpp +msgid "Parallax occlusion strength" +msgstr "Сила параллакса" + +#: src/settings_translation_file.cpp +msgid "Path to TrueTypeFont or bitmap." +msgstr "Путь к шрифту TrueType или картинке со шрифтом." + +#: src/settings_translation_file.cpp +msgid "Path to save screenshots at." +msgstr "Путь для сохранения скриншотов." + +#: src/settings_translation_file.cpp +msgid "" +"Path to shader directory. If no path is defined, default location will be " +"used." +msgstr "" +"Путь к директории с шейдерами. Если не задан, то будет использоваться путь " +"по умолчанию." + +#: src/settings_translation_file.cpp +msgid "Path to texture directory. All textures are first searched from here." +msgstr "" +"Путь до каталога с текстурами. Все текстуры в первую очередь берутся от сюда." + +#: src/settings_translation_file.cpp +msgid "Physics" +msgstr "Физика" + +#: src/settings_translation_file.cpp +msgid "" +"Player is able to fly without being affected by gravity.\n" +"This requires the \"fly\" privilege on the server." +msgstr "" +"Игрок может летать без влияния гравитации.\n" +"Это требует привилегии \"fly\" на сервере." + +#: src/settings_translation_file.cpp +msgid "Player name" +msgstr "Имя игрока" + +#: src/settings_translation_file.cpp +msgid "Player transfer distance" +msgstr "Расстояние передачи игрока" + +#: src/settings_translation_file.cpp +msgid "Player versus Player" +msgstr "Игрок против Игрока" + +#: src/settings_translation_file.cpp +msgid "" +"Port to connect to (UDP).\n" +"Note that the port field in the main menu overrides this setting." +msgstr "" +"Порт, к которому подключиться (UDP).\n" +"Имейте ввиду, что поле ввода порта в главном меню переопределяет эту " +"настройку." + +#: src/settings_translation_file.cpp +msgid "Prevent mods from doing insecure things like running shell commands." +msgstr "" +"Не допускать модам выполнение небезопасных вещей, например выполнение " +"консольных команд." + +#: src/settings_translation_file.cpp +msgid "" +"Print the engine's profiling data in regular intervals (in seconds). 0 = " +"disable. Useful for developers." +msgstr "" +"Печатать информацию о профилировании через заданные интервалы (в секундах). " +"0 = отключить. Полезно для разработчиков." + +#: src/settings_translation_file.cpp +msgid "Privileges that players with basic_privs can grant" +msgstr "Привилегии, доступные игрокам с basic_privs" + +#: src/settings_translation_file.cpp +msgid "Profiler" +msgstr "Профилировщик" + +#: src/settings_translation_file.cpp +msgid "Profiler toggle key" +msgstr "Клавиша переключения профилировщика" + +#: src/settings_translation_file.cpp +msgid "Profiling" +msgstr "Профилирование" + +#: src/settings_translation_file.cpp +msgid "" +"Radius of cloud area stated in number of 64 node cloud squares.\n" +"Values larger than 26 will start to produce sharp cutoffs at cloud area " +"corners." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Raises terrain to make valleys around the rivers" +msgstr "Поднимает местность, чтобы образовать долины вдоль рек" + +#: src/settings_translation_file.cpp +msgid "Random input" +msgstr "Случайный ввод" + +#: src/settings_translation_file.cpp +msgid "Range select key" +msgstr "Кнопка настройки дальности видимости" + +#: src/settings_translation_file.cpp +msgid "Remote media" +msgstr "Удалённый медиасервер" + +#: src/settings_translation_file.cpp +msgid "Remote port" +msgstr "Удаленный порт" + +#: src/settings_translation_file.cpp +msgid "Replaces the default main menu with a custom one." +msgstr "Заменять главное меню на пользовательское." + +#: src/settings_translation_file.cpp +#, fuzzy +msgid "Report path" +msgstr "Путь к шрифту" + +#: src/settings_translation_file.cpp +msgid "Ridge noise" +msgstr "Шум хребтов" + +#: src/settings_translation_file.cpp +msgid "Ridge underwater noise" +msgstr "Шум подводных хребтов" + +#: src/settings_translation_file.cpp +msgid "Right key" +msgstr "Правая клавиша меню" + +#: src/settings_translation_file.cpp +msgid "Rightclick repetition interval" +msgstr "Интервал повторного клика правой кнопкой" + +#: src/settings_translation_file.cpp +msgid "River Depth" +msgstr "Глубина рек" + +#: src/settings_translation_file.cpp +msgid "River Noise" +msgstr "Шум рек" + +#: src/settings_translation_file.cpp +msgid "River Size" +msgstr "Размер рек" + +#: src/settings_translation_file.cpp +msgid "River noise -- rivers occur close to zero" +msgstr "Шум рек; реки встречаются ближе к нулю" + +#: src/settings_translation_file.cpp +msgid "Rollback recording" +msgstr "Запись отката" + +#: src/settings_translation_file.cpp +msgid "Round minimap" +msgstr "Круглая миникарта" + +#: src/settings_translation_file.cpp +msgid "Sandy beaches occur when np_beach exceeds this value." +msgstr "Песчаные пляжи появляются, когда np_beach превышает это значение." + +#: src/settings_translation_file.cpp +msgid "Save the map received by the client on disk." +msgstr "Сохранение карты, полученной от клиента на диск." + +#: src/settings_translation_file.cpp +msgid "Saving map received from server" +msgstr "Сохранение карты, полученной с сервера" + +#: src/settings_translation_file.cpp +msgid "Scale" +msgstr "Масштаб" + +#: src/settings_translation_file.cpp +msgid "" +"Scale gui by a user specified value.\n" +"Use a nearest-neighbor-anti-alias filter to scale the GUI.\n" +"This will smooth over some of the rough edges, and blend\n" +"pixels when scaling down, at the cost of blurring some\n" +"edge pixels when images are scaled by non-integer sizes." +msgstr "" +"Масштабировать интерфейс, используя заданное пользователем значение.\n" +"Использовать метод ближайшего соседа и антиалиасинг, чтобы масштабировать " +"интерфейс.\n" +"Это сгладит некоторые острые углы и смешает пиксели при уменьшении масштаба, " +"за счет\n" +"размывания пикселей на гранях при масштабировании на нецелые размеры." + +#: src/settings_translation_file.cpp +msgid "Screen height" +msgstr "Высота экрана" + +#: src/settings_translation_file.cpp +msgid "Screen width" +msgstr "Ширина экрана" + +#: src/settings_translation_file.cpp +msgid "Screenshot" +msgstr "Cкриншот" + +#: src/settings_translation_file.cpp +msgid "Screenshot folder" +msgstr "Каталог со скриншотами" + +#: src/settings_translation_file.cpp +msgid "Screenshot format" +msgstr "Формат скриншота" + +#: src/settings_translation_file.cpp +msgid "Screenshot quality" +msgstr "Качество скриншота" + +#: src/settings_translation_file.cpp +msgid "" +"Screenshot quality. Only used for JPEG format.\n" +"1 means worst quality; 100 means best quality.\n" +"Use 0 for default quality." +msgstr "" +"Качество скриншота. Используется только для изображений в формате JPEG.\n" +"1 означает худшее качество; 100 означает лучшее качество.\n" +"Используйте 0 для настроек по умолчанию." + +#: src/settings_translation_file.cpp +#, fuzzy +msgid "Seabed noise" +msgstr "Шум пещеры #1" + +#: src/settings_translation_file.cpp +msgid "Second of 2 3D noises that together define tunnels." +msgstr "Второй из двух 3D-шумов, которые вместе определяют туннели." + +#: src/settings_translation_file.cpp +msgid "Security" +msgstr "Безопасность" + +#: src/settings_translation_file.cpp +msgid "See http://www.sqlite.org/pragma.html#pragma_synchronous" +msgstr "Смотрите http://www.sqlite.org/pragma.html#pragma_synchronous" + +#: src/settings_translation_file.cpp +msgid "Selection box border color (R,G,B)." +msgstr "Цвет рамки выделения (R, G, B)." + +#: src/settings_translation_file.cpp +msgid "Selection box color" +msgstr "Цвет выделения" + +#: src/settings_translation_file.cpp +msgid "Selection box width" +msgstr "Толщина рамки выделения" + +#: src/settings_translation_file.cpp +msgid "Server / Singleplayer" +msgstr "Сервер / одиночная игра" + +#: src/settings_translation_file.cpp +msgid "Server URL" +msgstr "URL сервера" + +#: src/settings_translation_file.cpp +msgid "Server address" +msgstr "Адрес сервера" + +#: src/settings_translation_file.cpp +msgid "Server description" +msgstr "Описание сервера" + +#: src/settings_translation_file.cpp +msgid "Server name" +msgstr "Имя сервера" + +#: src/settings_translation_file.cpp +msgid "Server port" +msgstr "Порт сервера" + +#: src/settings_translation_file.cpp +msgid "Server side occlusion culling" +msgstr "Отсечение невидимой геометрии на стороне сервера" + +#: src/settings_translation_file.cpp +msgid "Serverlist URL" +msgstr "Адрес списка серверов" + +#: src/settings_translation_file.cpp +msgid "Serverlist file" +msgstr "Файл списка серверов" + +#: src/settings_translation_file.cpp +msgid "" +"Set the language. Leave empty to use the system language.\n" +"A restart is required after changing this." +msgstr "" +"Установка языка. Оставьте пустым для использования системного языка.\n" +"Требует перезапуска после изменения." + +#: src/settings_translation_file.cpp +msgid "" +"Set to true enables waving leaves.\n" +"Requires shaders to be enabled." +msgstr "" +"Установка в true включает покачивание листвы.\n" +"Требует, чтобы шейдеры были включены." + +#: src/settings_translation_file.cpp +msgid "" +"Set to true enables waving plants.\n" +"Requires shaders to be enabled." +msgstr "" +"Установка в true включает покачивание растений.\n" +"Требует, чтобы шейдеры были включены." + +#: src/settings_translation_file.cpp +msgid "" +"Set to true enables waving water.\n" +"Requires shaders to be enabled." +msgstr "" +"Установка в true включает волны на воде.\n" +"Требует, чтобы шейдеры были включены." + +#: src/settings_translation_file.cpp +msgid "Shader path" +msgstr "Путь к шейдерам" + +#: src/settings_translation_file.cpp +msgid "" +"Shaders allow advanced visual effects and may increase performance on some " +"video cards.\n" +"This only works with the OpenGL video backend." +msgstr "" +"Шейдеры позволяют использовать дополнительные визуальные эффекты и могут " +"увеличить производительность на некоторых видеокартах.\n" +"Они работают только с бэкендом OpenGL." + +#: src/settings_translation_file.cpp +msgid "Shadow limit" +msgstr "Лимит теней" + +#: src/settings_translation_file.cpp +msgid "Shape of the minimap. Enabled = round, disabled = square." +msgstr "Форма миникарты. Включено = круг, выключено = квадрат." + +#: src/settings_translation_file.cpp +msgid "Show debug info" +msgstr "Показывать отладочную информацию" + +#: src/settings_translation_file.cpp +msgid "Show entity selection boxes" +msgstr "Показывать выделение энтити" + +#: src/settings_translation_file.cpp +msgid "Shutdown message" +msgstr "Сообщение о выключении" + +#: src/settings_translation_file.cpp +msgid "" +"Size of chunks to be generated at once by mapgen, stated in mapblocks (16 " +"nodes)." +msgstr "Размер чанка, генерируемого за один раз, указанный в блоках (16 узлов)." + +#: src/settings_translation_file.cpp +msgid "" +"Size of the MapBlock cache of the mesh generator. Increasing this will\n" +"increase the cache hit %, reducing the data being copied from the main\n" +"thread, thus reducing jitter." +msgstr "" +"Размер кэша блоков в генераторе мешей. Увеличение этого значения\n" +"увеличит процент попаданий в кэш, предотвращая копирование информации\n" +"из основного потока игры, тем самым уменьшая колебания FPS." + +#: src/settings_translation_file.cpp +msgid "Slice w" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Slope and fill work together to modify the heights" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Small-scale humidity variation for blending biomes on borders." +msgstr "Мелкие вариации влажности для смешивания биомов на границах." + +#: src/settings_translation_file.cpp +msgid "Small-scale temperature variation for blending biomes on borders." +msgstr "Мелкие вариации температуры для смешивания биомов на границах." + +#: src/settings_translation_file.cpp +msgid "Smooth lighting" +msgstr "Мягкое освещение" + +#: src/settings_translation_file.cpp +msgid "" +"Smooths camera when looking around. Also called look or mouse smoothing.\n" +"Useful for recording videos." +msgstr "" +"Сглаживать движения камеры при её повороте. Также называется сглаживанием " +"движений мыши.\n" +"Это может быть полезно при записи видео." + +#: src/settings_translation_file.cpp +msgid "Smooths rotation of camera in cinematic mode. 0 to disable." +msgstr "Плавное вращение камеры в кинематографическом режиме. 0 для отключения." + +#: src/settings_translation_file.cpp +msgid "Smooths rotation of camera. 0 to disable." +msgstr "Плавное вращение камеры. 0 для отключения." + +#: src/settings_translation_file.cpp +msgid "Sneak key" +msgstr "Красться" + +#: src/settings_translation_file.cpp +msgid "Sound" +msgstr "Звук" + +#: src/settings_translation_file.cpp +msgid "" +"Specifies URL from which client fetches media instead of using UDP.\n" +"$filename should be accessible from $remote_media$filename via cURL\n" +"(obviously, remote_media should end with a slash).\n" +"Files that are not present will be fetched the usual way." +msgstr "" +"Указывает URL с которого клиент будет качать медиа-файлы вместо " +"использования UDP.\n" +"$filename должен быть доступен по адресу $remote_demia$filename через cURL\n" +"(remote_media должен заканчиваться слешем).\n" +"Файлы, которых не будет, будут скачены обычным путём." + +#: src/settings_translation_file.cpp +msgid "Static spawnpoint" +msgstr "Постоянная точка возрождения" + +#: src/settings_translation_file.cpp +msgid "Status message on connection" +msgstr "Сообщение статуса при подключении" + +#: src/settings_translation_file.cpp +msgid "Steepness noise" +msgstr "Шум крутизны" + +#: src/settings_translation_file.cpp +msgid "Strength of generated normalmaps." +msgstr "Сила сгенерированных карт нормалей." + +#: src/settings_translation_file.cpp +msgid "Strength of parallax." +msgstr "Сила параллакса." + +#: src/settings_translation_file.cpp +msgid "Strict protocol checking" +msgstr "Строгая проверка протокола" + +#: src/settings_translation_file.cpp +msgid "Support older servers" +msgstr "Поддержка старых серверов" + +#: src/settings_translation_file.cpp +msgid "Synchronous SQLite" +msgstr "Синхронный SQLite" + +#: src/settings_translation_file.cpp +msgid "Temperature variation for biomes." +msgstr "Вариация температур в биомах." + +#: src/settings_translation_file.cpp +msgid "Terrain Height" +msgstr "Высота местности" + +#: src/settings_translation_file.cpp +msgid "Terrain alt noise" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Terrain base noise" +msgstr "Базовый шум поверхности" + +#: src/settings_translation_file.cpp +msgid "Terrain higher noise" +msgstr "Шум высокой местности" + +#: src/settings_translation_file.cpp +msgid "Terrain noise" +msgstr "Шум поверхности" + +#: src/settings_translation_file.cpp +msgid "" +"Terrain noise threshold for hills.\n" +"Controls proportion of world area covered by hills.\n" +"Adjust towards 0.0 for a larger proportion." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"Terrain noise threshold for lakes.\n" +"Controls proportion of world area covered by lakes.\n" +"Adjust towards 0.0 for a larger proportion." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Terrain persistence noise" +msgstr "Шум постоянности ландшафта" + +#: src/settings_translation_file.cpp +msgid "Texture path" +msgstr "Путь к текстурам" + +#: src/settings_translation_file.cpp +msgid "The altitude at which temperature drops by 20C" +msgstr "Высота, на которой температура падает на 20 °C" + +#: src/settings_translation_file.cpp +msgid "" +"The default format in which profiles are being saved,\n" +"when calling `/profiler save [format]` without format." +msgstr "" +"Стандартный формат, в котором профили будут сохранены,\n" +"когда вызывают '/profiler save [формат]' без формата." + +#: src/settings_translation_file.cpp +msgid "The depth of dirt or other filler" +msgstr "Глубина земли или другого наполнителя" + +#: src/settings_translation_file.cpp +msgid "" +"The file path relative to your worldpath in which profiles will be saved to." +msgstr "" +"Путь к файлу относительно пути к вашему миру, в который будут сохранены " +"профили." + +#: src/settings_translation_file.cpp +msgid "The identifier of the joystick to use" +msgstr "Идентификатор используемого джойстика" + +#: src/settings_translation_file.cpp +msgid "The network interface that the server listens on." +msgstr "Сетевой интерфейс, который слушает сервер." + +#: src/settings_translation_file.cpp +msgid "" +"The privileges that new users automatically get.\n" +"See /privs in game for a full list on your server and mod configuration." +msgstr "" +"Привилегии, автоматически получаемые новым пользователем.\n" +"Смотрите /privs для получения полного списка привилегий." + +#: src/settings_translation_file.cpp +msgid "The rendering back-end for Irrlicht." +msgstr "Бэкенд Irrlicht для рендеринга." + +#: src/settings_translation_file.cpp +msgid "" +"The sensitivity of the joystick axes for moving the\n" +"ingame view frustum around." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"The strength (darkness) of node ambient-occlusion shading.\n" +"Lower is darker, Higher is lighter. The valid range of values for this\n" +"setting is 0.25 to 4.0 inclusive. If the value is out of range it will be\n" +"set to the nearest valid value." +msgstr "" +"Сила затенения Ambient Occlusion. Чем меньше, тем темнее,\n" +"и наоборот. Возможные значения параметра - от 0.25 до 4.0\n" +"включительно. Если значение находится вне этого диапазона,\n" +"то оно будет округлено до ближайшего корректного." + +#: src/settings_translation_file.cpp +msgid "" +"The time (in seconds) that the liquids queue may grow beyond processing\n" +"capacity until an attempt is made to decrease its size by dumping old queue\n" +"items. A value of 0 disables the functionality." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"The time in seconds it takes between repeated events\n" +"when holding down a joystick button combination." +msgstr "" +"Время в секундах между повторяющимися событиями,\n" +"когда зажата комбинация кнопок на джойстике." + +#: src/settings_translation_file.cpp +msgid "" +"The time in seconds it takes between repeated right clicks when holding the " +"right mouse button." +msgstr "Задержка в секундах между кликами при зажатой правой кнопке мыши." + +#: src/settings_translation_file.cpp +msgid "The type of joystick" +msgstr "Тип джойстика" + +#: src/settings_translation_file.cpp +msgid "This font will be used for certain languages." +msgstr "Этот шрифт будет использован для некоторых языков." + +#: src/settings_translation_file.cpp +msgid "Time in between active block management cycles" +msgstr "Время между циклами управления активными блоками" + +#: src/settings_translation_file.cpp +msgid "" +"Time in seconds for item entity (dropped items) to live.\n" +"Setting it to -1 disables the feature." +msgstr "" +"Время жизни выброшенных предметов в секундах.\n" +"Установите в -1 для отключения этой функции." + +#: src/settings_translation_file.cpp +msgid "Time send interval" +msgstr "Интервал отправки времени" + +#: src/settings_translation_file.cpp +msgid "Time speed" +msgstr "Скорость хода времени" + +#: src/settings_translation_file.cpp +msgid "Timeout for client to remove unused map data from memory." +msgstr "" +"Время, после которого клиент удаляет из памяти неиспользуемую информацию о " +"карте." + +#: src/settings_translation_file.cpp +msgid "" +"To reduce lag, block transfers are slowed down when a player is building " +"something.\n" +"This determines how long they are slowed down after placing or removing a " +"node." +msgstr "" +"Чтобы уменьшить лаг, передача блоков замедляется, когда игрок что-то строит." +"\n" +"Этот параметр определяет, насколько она замедляется после размещения или " +"удаления узла." + +#: src/settings_translation_file.cpp +msgid "Toggle camera mode key" +msgstr "Клавиша переключения режима камеры" + +#: src/settings_translation_file.cpp +msgid "Tooltip delay" +msgstr "Задержка подсказки" + +#: src/settings_translation_file.cpp +msgid "Trees noise" +msgstr "Шум деревьев" + +#: src/settings_translation_file.cpp +msgid "Trilinear filtering" +msgstr "Трилинейная фильтрация" + +#: src/settings_translation_file.cpp +msgid "" +"True = 256\n" +"False = 128\n" +"Useable to make minimap smoother on slower machines." +msgstr "" +"True = 256\n" +"False = 128\n" +"Полезно для обеспечения плавности миникарты на медленных машинах." + +#: src/settings_translation_file.cpp +msgid "Trusted mods" +msgstr "Доверенные моды" + +#: src/settings_translation_file.cpp +msgid "" +"Typical maximum height, above and below midpoint, of floatland mountain " +"terrain." +msgstr "Типичная максимальная высота горной местности парящих островов." + +#: src/settings_translation_file.cpp +msgid "URL to the server list displayed in the Multiplayer Tab." +msgstr "URL списка серверов, отображающийся во вкладке Мультиплеер." + +#: src/settings_translation_file.cpp +msgid "Undersampling" +msgstr "Undersampling" + +#: src/settings_translation_file.cpp +msgid "" +"Undersampling is similar to using lower screen resolution, but it applies\n" +"to the game world only, keeping the GUI intact.\n" +"It should give significant performance boost at the cost of less detailed " +"image." +msgstr "" +"Undersampling похож на использование низкого разрешения экрана, но он\n" +"применяется только к игровому миру, оставляя интерфейс нетронутым.\n" +"Он должен дать существенное увеличение производительности за счёт менее " +"детального изображения." + +#: src/settings_translation_file.cpp +msgid "Unlimited player transfer distance" +msgstr "Неограниченное расстояние перемещения игрока" + +#: src/settings_translation_file.cpp +msgid "Unload unused server data" +msgstr "Выгружать неиспользуемые сервером данные" + +#: src/settings_translation_file.cpp +msgid "Use 3D cloud look instead of flat." +msgstr "Объемные облака вместо плоских." + +#: src/settings_translation_file.cpp +msgid "Use a cloud animation for the main menu background." +msgstr "Анимированные облака в главном меню." + +#: src/settings_translation_file.cpp +msgid "Use anisotropic filtering when viewing at textures from an angle." +msgstr "Использовать анизотропную фильтрацию про взгляде на текстуры под углом." + +#: src/settings_translation_file.cpp +msgid "Use bilinear filtering when scaling textures." +msgstr "Использовать билинейную фильтрацию для масштабирования текстур." + +#: src/settings_translation_file.cpp +msgid "Use key" +msgstr "Клавиша Использовать" + +#: src/settings_translation_file.cpp +msgid "Use mip mapping to scale textures. May slightly increase performance." +msgstr "" +"Использовать мипмаппинг для масштабирования текстур. Может немного увеличить " +"производительность." + +#: src/settings_translation_file.cpp +msgid "Use trilinear filtering when scaling textures." +msgstr "Использовать трилинейную фильтрацию для масштабирования текстур." + +#: src/settings_translation_file.cpp +msgid "V-Sync" +msgstr "Вертикальная синхронизация" + +#: src/settings_translation_file.cpp +msgid "VBO" +msgstr "VBO" + +#: src/settings_translation_file.cpp +msgid "Valley Depth" +msgstr "Глубина долин" + +#: src/settings_translation_file.cpp +#, fuzzy +msgid "Valley Fill" +msgstr "Заполнение долин" + +#: src/settings_translation_file.cpp +msgid "Valley Profile" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Valley Slope" +msgstr "Уклон долин" + +#: src/settings_translation_file.cpp +msgid "Valleys C Flags" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Variation of biome filler depth." +msgstr "Вариация глубины наполнителя биома." + +#: src/settings_translation_file.cpp +msgid "Variation of hill height and lake depth on floatland smooth terrain." +msgstr "" +"Вариация высоты холмов и глубин озёр на гладкой местности парящих островов." + +#: src/settings_translation_file.cpp +msgid "Variation of maximum mountain height (in nodes)." +msgstr "Вариация максимальной высоты гор (в узлах)." + +#: src/settings_translation_file.cpp +msgid "Variation of number of caves." +msgstr "Вариация количества пещер." + +#: src/settings_translation_file.cpp +msgid "" +"Variation of terrain vertical scale.\n" +"When noise is < -0.55 terrain is near-flat." +msgstr "" +"Вариация вертикального масштабирования поверхности.\n" +"Поверхность становится почти плоской, когда шум меньше -0.55." + +#: src/settings_translation_file.cpp +msgid "Varies depth of biome surface nodes." +msgstr "Варьирует глубину поверхностных узлов биома." + +#: src/settings_translation_file.cpp +msgid "" +"Varies roughness of terrain.\n" +"Defines the 'persistence' value for terrain_base and terrain_alt noises." +msgstr "" +"Варьирует неровность поверхности.\n" +"Определяет значение 'persistence' для шумов terrain_base и terrain_alt." + +#: src/settings_translation_file.cpp +msgid "Varies steepness of cliffs." +msgstr "Регулирует крутизну утёсов." + +#: src/settings_translation_file.cpp +msgid "Vertical screen synchronization." +msgstr "Вертикальная синхронизация." + +#: src/settings_translation_file.cpp +msgid "Video driver" +msgstr "Видеодрайвер" + +#: src/settings_translation_file.cpp +msgid "View bobbing factor" +msgstr "Коэффициент покачивания" + +#: src/settings_translation_file.cpp +msgid "View distance in nodes." +msgstr "Дальность отрисовки в узлах." + +#: src/settings_translation_file.cpp +msgid "View range decrease key" +msgstr "Клавиша уменьшения видимого диапазона" + +#: src/settings_translation_file.cpp +msgid "View range increase key" +msgstr "Клавиша увеличения видимого диапазона" + +#: src/settings_translation_file.cpp +msgid "View zoom key" +msgstr "Клавиша режима увеличения" + +#: src/settings_translation_file.cpp +msgid "Viewing range" +msgstr "Дистанция отрисовки" + +#: src/settings_translation_file.cpp +msgid "Volume" +msgstr "Громкость" + +#: src/settings_translation_file.cpp +msgid "" +"W co-ordinate of the generated 3D slice of a 4D fractal.\n" +"Determines which 3D slice of the 4D shape is generated.\n" +"Has no effect on 3D fractals.\n" +"Range roughly -2 to 2." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Walking speed" +msgstr "Скорость ходьбы" + +#: src/settings_translation_file.cpp +msgid "Water Features" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Water level" +msgstr "Уровень воды" + +#: src/settings_translation_file.cpp +msgid "Water surface level of the world." +msgstr "Уровень поверхности воды мира." + +#: src/settings_translation_file.cpp +msgid "Waving Nodes" +msgstr "Покачивание узлов" + +#: src/settings_translation_file.cpp +msgid "Waving leaves" +msgstr "Покачивание листвы" + +#: src/settings_translation_file.cpp +msgid "Waving plants" +msgstr "Покачивание растений" + +#: src/settings_translation_file.cpp +msgid "Waving water" +msgstr "Волны на воде" + +#: src/settings_translation_file.cpp +msgid "Waving water height" +msgstr "Высота волн на воде" + +#: src/settings_translation_file.cpp +msgid "Waving water length" +msgstr "Длина волн на воде" + +#: src/settings_translation_file.cpp +msgid "Waving water speed" +msgstr "Скорость волн на воде" + +#: src/settings_translation_file.cpp +msgid "" +"When gui_scaling_filter is true, all GUI images need to be\n" +"filtered in software, but some images are generated directly\n" +"to hardware (e.g. render-to-texture for nodes in inventory)." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"When gui_scaling_filter_txr2img is true, copy those images\n" +"from hardware to software for scaling. When false, fall back\n" +"to the old scaling method, for video drivers that don't\n" +"properly support downloading textures back from hardware." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"When using bilinear/trilinear/anisotropic filters, low-resolution textures\n" +"can be blurred, so automatically upscale them with nearest-neighbor\n" +"interpolation to preserve crisp pixels. This sets the minimum texture size\n" +"for the upscaled textures; higher values look sharper, but require more\n" +"memory. Powers of 2 are recommended. Setting this higher than 1 may not\n" +"have a visible effect unless bilinear/trilinear/anisotropic filtering is\n" +"enabled." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"Whether freetype fonts are used, requires freetype support to be compiled in." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Whether node texture animations should be desynchronized per mapblock." +msgstr "Рассинхронизировать ли анимацию текстур узлов в блоке." + +#: src/settings_translation_file.cpp +msgid "" +"Whether players are shown to clients without any range limit.\n" +"Deprecated, use the setting player_transfer_distance instead." +msgstr "" +"Показываются ли клиентам игроки без ограничения расстояния.\n" +"Устарело, используйте параметр player_transfer_distance." + +#: src/settings_translation_file.cpp +msgid "Whether to allow players to damage and kill each other." +msgstr "Разрешено ли игрокам наносить урон и убивать друг друга." + +#: src/settings_translation_file.cpp +msgid "" +"Whether to ask clients to reconnect after a (Lua) crash.\n" +"Set this to true if your server is set up to restart automatically." +msgstr "" +"Просить ли клиентов переподключиться после сбоя Lua.\n" +"Установите это, если ваш сервер настроен на автоматический перезапуск." + +#: src/settings_translation_file.cpp +msgid "Whether to fog out the end of the visible area." +msgstr "Затуманивать ли конец видимой области." + +#: src/settings_translation_file.cpp +#, fuzzy +msgid "" +"Whether to show the client debug info (has the same effect as hitting F5)." +msgstr "Показывать данные отладки (аналогично нажатию F5)." + +#: src/settings_translation_file.cpp +msgid "" +"Whether to support older servers before protocol version 25.\n" +"Enable if you want to connect to 0.4.12 servers and before.\n" +"Servers starting with 0.4.13 will work, 0.4.12-dev servers may work.\n" +"Disabling this option will protect your password better." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Width component of the initial window size." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Width of the selectionbox's lines around nodes." +msgstr "Толщина обводки выделенных узлов." + +#: src/settings_translation_file.cpp +msgid "" +"Windows systems only: Start Minetest with the command line window in the " +"background.\n" +"Contains the same information as the file debug.txt (default name)." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "" +"World directory (everything in the world is stored here).\n" +"Not needed if starting from the main menu." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Y of flat ground." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Y of upper limit of large pseudorandom caves." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Y-distance over which caverns expand to full size." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Y-level of average terrain surface." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Y-level of cavern upper limit." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Y-level of floatland midpoint and lake surface." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Y-level of higher (cliff-top) terrain." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Y-level of lower terrain and lakebeds." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Y-level of seabed." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "Y-level to which floatland shadows extend." +msgstr "" + +#: src/settings_translation_file.cpp +msgid "block send optimize distance" +msgstr "" + +#: src/settings_translation_file.cpp +msgid "cURL file download timeout" +msgstr "Таймаут загрузки файла с помощью cURL" + +#: src/settings_translation_file.cpp +msgid "cURL parallel limit" +msgstr "Лимит одновременных соединений cURL" + +#: src/settings_translation_file.cpp +msgid "cURL timeout" +msgstr "cURL тайм-аут" + +#~ msgid "Hide mp content" +#~ msgstr "Скрыть содержимое модпака" + +#~ msgid "Start Game" +#~ msgstr "Начать игру" + +#~ msgid "Attn" +#~ msgstr "Внимание" + +#~ msgid "Capital" +#~ msgstr "Caps Lock" + +#~ msgid "Comma" +#~ msgstr "Запятая" + +#~ msgid "CrSel" +#~ msgstr "CrSel" + +#~ msgid "ExSel" +#~ msgstr "ExSel" + +#~ msgid "Final" +#~ msgstr "Конец" + +#~ msgid "Junja" +#~ msgstr "Junja" + +#~ msgid "Kana" +#~ msgstr "Кана" + +#~ msgid "Kanji" +#~ msgstr "Кандзи" + +#~ msgid "Minus" +#~ msgstr "Минус" + +#~ msgid "PA1" +#~ msgstr "PA1" + +#~ msgid "Period" +#~ msgstr "Период" + +#~ msgid "Plus" +#~ msgstr "Плюс" + +#~ msgid "" +#~ "Controls size of deserts and beaches in Mapgen v6.\n" +#~ "When snowbiomes are enabled 'mgv6_freq_desert' is ignored." +#~ msgstr "" +#~ "Задает размеры пустыней и пляжей.\n" +#~ "Когда включены снежные биомы, 'mgv6_freq_desert' игнорируется." + +#, fuzzy +#~ msgid "Mapgen flat cave width" +#~ msgstr "Флаги генератора карты" + +#, fuzzy +#~ msgid "Mapgen fractal cave width" +#~ msgstr "Флаги генератора карты" + +#, fuzzy +#~ msgid "Mapgen fractal fractal" +#~ msgstr "Флаги генератора карты" + +#, fuzzy +#~ msgid "Mapgen fractal iterations" +#~ msgstr "Повторение параллакса" + +#, fuzzy +#~ msgid "Mapgen fractal offset" +#~ msgstr "Флаги генератора карты" + +#, fuzzy +#~ msgid "Mapgen fractal scale" +#~ msgstr "Флаги генератора карты" + +#, fuzzy +#~ msgid "Mapgen fractal slice w" +#~ msgstr "Флаги генератора карты" + +#, fuzzy +#~ msgid "Mapgen v5 cave width" +#~ msgstr "Генератор карты версии 5" + +#, fuzzy +#~ msgid "Mapgen v7 cave width" +#~ msgstr "Генератор карты версии 7" + +#, fuzzy +#~ msgid "" +#~ "How many blocks are flying in the wire simultaneously for the whole " +#~ "server." +#~ msgstr "Количество блоков, передаваемых одновременно для всего сервера." + +#, fuzzy +#~ msgid "Useful for mod developers." +#~ msgstr "Разработчики в отставке" + +#~ msgid "No of course not!" +#~ msgstr "Нет, конечно нет!" + +#~ msgid "Public Serverlist" +#~ msgstr "Список публичных серверов" + +#~ msgid "Generate Normalmaps" +#~ msgstr "Генерировать карты нормалей" + +#~ msgid "No!!!" +#~ msgstr "Нет!" + +#~ msgid "\"" +#~ msgstr "\"" + +#~ msgid "If disabled " +#~ msgstr "Если выключено " + +#~ msgid "If enabled, " +#~ msgstr "Если включено " + +#~ msgid "Restart minetest for driver change to take effect" +#~ msgstr "Перезапустите Minetest для принятия изменений" + +#~ msgid "Gamemgr: Unable to copy mod \"$1\" to game \"$2\"" +#~ msgstr "Gamemgr: Не могу скопировать мод \"$1\" в игру \"$2\"" + +#~ msgid "GAMES" +#~ msgstr "ИГРЫ" + +#~ msgid "Mods:" +#~ msgstr "Моды:" + +#~ msgid "new game" +#~ msgstr "Создать игру" + +#~ msgid "EDIT GAME" +#~ msgstr "РЕДАКТИРОВАНИЕ" + +#~ msgid "Remove selected mod" +#~ msgstr "Удалить мод" + +#~ msgid "<<-- Add mod" +#~ msgstr "<<-- Добавить мод" + +#~ msgid "CLIENT" +#~ msgstr "КЛИЕНТ" + +#~ msgid "START SERVER" +#~ msgstr "СЕРВЕР" + +#~ msgid "Name" +#~ msgstr "Имя" + +#~ msgid "Password" +#~ msgstr "Пароль" + +#~ msgid "SETTINGS" +#~ msgstr "НАСТРОЙКИ" + +#~ msgid "Preload item visuals" +#~ msgstr "Предзагрузка изображений" + +#~ msgid "Finite Liquid" +#~ msgstr "Конечные жидкости" + +#~ msgid "SINGLE PLAYER" +#~ msgstr "ОДИНОЧНАЯ ИГРА" + +#~ msgid "TEXTURE PACKS" +#~ msgstr "ПАКЕТЫ ТЕКСТУР" + +#~ msgid "MODS" +#~ msgstr "МОДЫ" + +#~ msgid "Add mod:" +#~ msgstr "Добавить мод:" + +#~ msgid "" +#~ "Warning: Some mods are not configured yet.\n" +#~ "They will be enabled by default when you save the configuration. " +#~ msgstr "" +#~ "Предупреждение: Некоторые моды еще не настроены.\n" +#~ "Их стандартные настройки будут установлены, когда вы сохраните " +#~ "конфигурацию. " + +#~ msgid "" +#~ "Warning: Some configured mods are missing.\n" +#~ "Their setting will be removed when you save the configuration. " +#~ msgstr "" +#~ "Предупреждение: Некоторые моды не найдены.\n" +#~ "Их настройки будут удалены, когда вы сохраните конфигурацию. " + +#~ msgid "" +#~ "Default Controls:\n" +#~ "- WASD: Walk\n" +#~ "- Mouse left: dig/hit\n" +#~ "- Mouse right: place/use\n" +#~ "- Mouse wheel: select item\n" +#~ "- 0...9: select item\n" +#~ "- Shift: sneak\n" +#~ "- R: Toggle viewing all loaded chunks\n" +#~ "- I: Inventory menu\n" +#~ "- ESC: This menu\n" +#~ "- T: Chat\n" +#~ msgstr "" +#~ "Управление по умолчанию:\n" +#~ "- WASD: перемещение\n" +#~ "- ЛКМ: копать/ударить\n" +#~ "- ПКМ: поставить/использовать\n" +#~ "- Колесо мыши: выбор предмета\n" +#~ "- 0...9: выбор предмета\n" +#~ "- Shift: красться\n" +#~ "- R: смотреть далеко\n" +#~ "- I: инвентарь\n" +#~ "- ESC: это меню\n" +#~ "- T: чат\n" + +#~ msgid "Failed to delete all world files" +#~ msgstr "Ошибка при удалении файлов мира" + +#~ msgid "Cannot configure world: Nothing selected" +#~ msgstr "Невозможно настроить мир: ничего не выбрано" + +#~ msgid "Cannot create world: No games found" +#~ msgstr "Невозможно создать мир: Ни одной игры не найдено" + +#~ msgid "Files to be deleted" +#~ msgstr "Следующие файлы будут удалены" + +#~ msgid "Cannot delete world: Nothing selected" +#~ msgstr "Невозможно удалить мир: Ничего не выбрано" + +#~ msgid "Address required." +#~ msgstr "Нужно ввести адрес." + +#~ msgid "Create world" +#~ msgstr "Создать мир" + +#~ msgid "Leave address blank to start a local server." +#~ msgstr "Оставьте адрес пустым для запуска локального сервера." + +#~ msgid "Show Favorites" +#~ msgstr "Избранные" + +#~ msgid "Show Public" +#~ msgstr "Публичные" + +#~ msgid "Cannot create world: Name contains invalid characters" +#~ msgstr "Невозможно создать мир: Имя содержит недопустимые символы" + +#~ msgid "Warning: Configuration not consistent. " +#~ msgstr "Предупреждение: Неверная конфигурация. " + +#~ msgid "Configuration saved. " +#~ msgstr "Настройки сохранены. " + +#~ msgid "is required by:" +#~ msgstr "требуется для:" + +#~ msgid "Left click: Move all items, Right click: Move single item" +#~ msgstr "ЛКМ: Переместить все предметы, ПКМ: Переместить один предмет" + +#, fuzzy +#~ msgid "Downloading" +#~ msgstr "Загрузить" + +#~ msgid "Touch free target" +#~ msgstr "Свободный выбор цели" + +#~ msgid "Scaling factor applied to menu elements: " +#~ msgstr "Коэффициент масштаба интерфейса: " + +#, fuzzy +#~ msgid "Wanted FPS" +#~ msgstr "Ожидаемый FPS" + +#, fuzzy +#~ msgid "Viewing range minimum" +#~ msgstr "Минимальная граница дальности отрисовки." + +#~ msgid "Preload inventory textures" +#~ msgstr "Предзагрузка текстур..." + +#, fuzzy +#~ msgid "New style water" +#~ msgstr "Новый стиль воды" + +#~ msgid "" +#~ "Key for increasing the viewing range. Modifies the minimum viewing " +#~ "range.\n" +#~ "See http://irrlicht.sourceforge.net/docu/namespaceirr." +#~ "html#a54da2a0e231901735e3da1b0edf72eb3" +#~ msgstr "" +#~ "Клавиша Увеличения видимого диапазона. Изменяет минимальную дальность " +#~ "отображения.\n" +#~ "Смотрите http://irrlicht.sourceforge.net/docu/namespaceirr." +#~ "html#a54da2a0e231901735e3da1b0edf72eb3" + +#~ msgid "" +#~ "Key for decreasing the viewing range. Modifies the minimum viewing " +#~ "range.\n" +#~ "See http://irrlicht.sourceforge.net/docu/namespaceirr." +#~ "html#a54da2a0e231901735e3da1b0edf72eb3" +#~ msgstr "" +#~ "Клавиша уменьшения видимого диапазона. Изменяет минимальную дальность " +#~ "отображения.\n" +#~ "Смотрите http://irrlicht.sourceforge.net/docu/namespaceirr." +#~ "html#a54da2a0e231901735e3da1b0edf72eb3" + +#~ msgid "" +#~ "Enable a bit lower water surface, so it doesn't \"fill\" the node " +#~ "completely.\n" +#~ "Note that this is not quite optimized and that smooth lighting on the\n" +#~ "water surface doesn't work with this." +#~ msgstr "" +#~ "Включите немного более низкую поверхность воды, чтобы она\n" +#~ "не заполняла блок полностью. Учтите, что это не совсем оптимизировано,\n" +#~ "и мягкое освещение на поверхности воды не работает с этим." diff --git a/po/ru/MultiCraft.po b/po/ru/MultiCraft.po deleted file mode 100644 index 6b597aa67..000000000 --- a/po/ru/MultiCraft.po +++ /dev/null @@ -1,5522 +0,0 @@ -# SOME DESCRIPTIVE TITLE. -# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER -# This file is distributed under the same license as the PACKAGE package. -# FIRST AUTHOR , YEAR. -# -msgid "" -msgstr "" -"Project-Id-Version: minetest\n" -"Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2017-05-21 17:40+0200\n" -"PO-Revision-Date: 2017-06-02 19:42+0000\n" -"Last-Translator: weqqr \n" -"Language-Team: Russian " -"\n" -"Language: ru\n" -"MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=UTF-8\n" -"Content-Transfer-Encoding: 8bit\n" -"Plural-Forms: nplurals=3; plural=n%10==1 && n%100!=11 ? 0 : n%10>=2 && n%10<=" -"4 && (n%100<10 || n%100>=20) ? 1 : 2;\n" -"X-Generator: Weblate 2.15-dev\n" - -#: builtin/client/init.lua -msgid "Respawn" -msgstr "Возродиться" - -#: builtin/client/init.lua -msgid "You died." -msgstr "Вы умерли." - -#: builtin/fstk/ui.lua -msgid "An error occured in a Lua script, such as a mod:" -msgstr "Ошибка в скрипте Lua, как например в моде:" - -#: builtin/fstk/ui.lua -msgid "An error occured:" -msgstr "Произошла ошибка:" - -#: builtin/fstk/ui.lua -msgid "Main menu" -msgstr "Главное меню" - -#: builtin/fstk/ui.lua builtin/mainmenu/store.lua -msgid "Ok" -msgstr "OK" - -#: builtin/fstk/ui.lua -msgid "Reconnect" -msgstr "Переподключиться" - -#: builtin/fstk/ui.lua -msgid "The server has requested a reconnect:" -msgstr "Сервер запросил переподключение:" - -#: builtin/mainmenu/common.lua src/game.cpp -msgid "Loading..." -msgstr "Загрузка..." - -#: builtin/mainmenu/common.lua -msgid "Protocol version mismatch. " -msgstr "Несоответствие версии протокола. " - -#: builtin/mainmenu/common.lua -msgid "Server enforces protocol version $1. " -msgstr "Сервер обеспечивает соблюдение версии протокола $1. " - -#: builtin/mainmenu/common.lua -msgid "Server supports protocol versions between $1 and $2. " -msgstr "Сервер поддерживает версии протокола между $1 и $2. " - -#: builtin/mainmenu/common.lua -msgid "Try reenabling public serverlist and check your internet connection." -msgstr "" -"Попробуйте обновить список публичных серверов и проверьте связь с Интернетом." - -#: builtin/mainmenu/common.lua -msgid "We only support protocol version $1." -msgstr "Поддерживается только протокол версии $1." - -#: builtin/mainmenu/common.lua -msgid "We support protocol versions between version $1 and $2." -msgstr "Мы поддерживаем версии протоколов между $1 и $2." - -#: builtin/mainmenu/dlg_config_world.lua builtin/mainmenu/dlg_create_world.lua -#: builtin/mainmenu/dlg_delete_mod.lua builtin/mainmenu/dlg_rename_modpack.lua -#: builtin/mainmenu/dlg_settings_advanced.lua src/guiKeyChangeMenu.cpp -#: src/guiPasswordChange.cpp src/keycode.cpp -msgid "Cancel" -msgstr "Отменить" - -#: builtin/mainmenu/dlg_config_world.lua builtin/mainmenu/tab_mods.lua -msgid "Dependencies:" -msgstr "Зависимости:" - -#: builtin/mainmenu/dlg_config_world.lua -msgid "Disable MP" -msgstr "Отключить мультиплеер" - -#: builtin/mainmenu/dlg_config_world.lua -msgid "Disable all" -msgstr "Отключить все" - -#: builtin/mainmenu/dlg_config_world.lua -msgid "Enable MP" -msgstr "Включить мультиплеер" - -#: builtin/mainmenu/dlg_config_world.lua -msgid "Enable all" -msgstr "Включить всё" - -#: builtin/mainmenu/dlg_config_world.lua -msgid "" -"Failed to enable mod \"$1\" as it contains disallowed characters. Only " -"chararacters [a-z0-9_] are allowed." -msgstr "" -"Не удалось включить мод \"$1\", так как он содержит недопустимые символы. " -"Разрешены только следующие символы: [a-z0-9_]." - -#: builtin/mainmenu/dlg_config_world.lua -msgid "Mod:" -msgstr "Мод:" - -#: builtin/mainmenu/dlg_config_world.lua builtin/mainmenu/tab_mods.lua -msgid "Optional dependencies:" -msgstr "Необязательные зависимости:" - -#: builtin/mainmenu/dlg_config_world.lua -#: builtin/mainmenu/dlg_settings_advanced.lua src/guiKeyChangeMenu.cpp -msgid "Save" -msgstr "Сохранить" - -#: builtin/mainmenu/dlg_config_world.lua -msgid "World:" -msgstr "Мир:" - -#: builtin/mainmenu/dlg_config_world.lua -msgid "enabled" -msgstr "включено" - -#: builtin/mainmenu/dlg_create_world.lua -msgid "A world named \"$1\" already exists" -msgstr "Мир под названием \"$1\" уже существует" - -#: builtin/mainmenu/dlg_create_world.lua -msgid "Create" -msgstr "Создать" - -#: builtin/mainmenu/dlg_create_world.lua -msgid "Download a subgame, such as minetest_game, from minetest.net" -msgstr "Скачивайте мини-игры, такие как minetest_game, на minetest.net" - -#: builtin/mainmenu/dlg_create_world.lua -msgid "Download one from minetest.net" -msgstr "Загрузите их с minetest.net" - -#: builtin/mainmenu/dlg_create_world.lua -msgid "No worldname given or no game selected" -msgstr "Не задано имя мира или не выбрана игра" - -#: builtin/mainmenu/dlg_create_world.lua -msgid "Seed" -msgstr "Зерно" - -#: builtin/mainmenu/dlg_create_world.lua -msgid "Warning: The minimal development test is meant for developers." -msgstr "" -"Внимание: \"Minimal development test\" в основном предназначен для " -"разработчиков." - -#: builtin/mainmenu/dlg_create_world.lua -msgid "World name" -msgstr "Название мира" - -#: builtin/mainmenu/dlg_create_world.lua -msgid "You have no subgames installed." -msgstr "У вас не установлены мини-игры." - -#: builtin/mainmenu/dlg_delete_mod.lua -msgid "Are you sure you want to delete \"$1\"?" -msgstr "Уверены, что хотите удалить \"$1\"?" - -#: builtin/mainmenu/dlg_delete_mod.lua builtin/mainmenu/dlg_delete_world.lua -#: builtin/mainmenu/tab_local.lua src/keycode.cpp -msgid "Delete" -msgstr "Удалить" - -#: builtin/mainmenu/dlg_delete_mod.lua -msgid "Modmgr: failed to delete \"$1\"" -msgstr "Modmgr: невозможно удалить \"$1\"" - -#: builtin/mainmenu/dlg_delete_mod.lua -msgid "Modmgr: invalid modpath \"$1\"" -msgstr "Modmgr: неправильный путь к \"$1\"" - -#: builtin/mainmenu/dlg_delete_world.lua -msgid "Delete World \"$1\"?" -msgstr "Удалить мир \"$1\"?" - -#: builtin/mainmenu/dlg_rename_modpack.lua -msgid "Accept" -msgstr "Принять" - -#: builtin/mainmenu/dlg_rename_modpack.lua -msgid "Rename Modpack:" -msgstr "Переименовать модпак:" - -#: builtin/mainmenu/dlg_settings_advanced.lua -msgid "\"$1\" is not a valid flag." -msgstr "\"$1\" не является валидным флагом." - -#: builtin/mainmenu/dlg_settings_advanced.lua -msgid "(No description of setting given)" -msgstr "(Отсутствует описание настройки)" - -#: builtin/mainmenu/dlg_settings_advanced.lua -msgid "< Back to Settings page" -msgstr "< Назад к странице настроек" - -#: builtin/mainmenu/dlg_settings_advanced.lua -msgid "Browse" -msgstr "Выбрать" - -#: builtin/mainmenu/dlg_settings_advanced.lua -msgid "Disabled" -msgstr "Отключено" - -#: builtin/mainmenu/dlg_settings_advanced.lua -msgid "Edit" -msgstr "Править" - -#: builtin/mainmenu/dlg_settings_advanced.lua -msgid "Enabled" -msgstr "Включено" - -#: builtin/mainmenu/dlg_settings_advanced.lua -msgid "Format is 3 numbers separated by commas and inside brackets." -msgstr "Формат 3 цифры через запятую в скобках." - -#: builtin/mainmenu/dlg_settings_advanced.lua -msgid "" -"Format: , , (, , ), , " -", " -msgstr "" -"Формат: <Смещение>,<Масштаб>, (<По оси X>,<По оси Y>,<По оси Z>), <Зерно>, " -"<Октавы>,<Постоянство>" - -#: builtin/mainmenu/dlg_settings_advanced.lua -msgid "Games" -msgstr "Игры" - -#: builtin/mainmenu/dlg_settings_advanced.lua builtin/mainmenu/tab_mods.lua -msgid "Mods" -msgstr "Моды" - -#: builtin/mainmenu/dlg_settings_advanced.lua -msgid "Optionally the lacunarity can be appended with a leading comma." -msgstr "Опционально лакунарностью могут быть добавлены с ведущей запятой." - -#: builtin/mainmenu/dlg_settings_advanced.lua -msgid "Please enter a comma seperated list of flags." -msgstr "Пожалуйста, вводите запятые для разделения списка флагов." - -#: builtin/mainmenu/dlg_settings_advanced.lua -msgid "Please enter a valid integer." -msgstr "Введите допустимое целое число." - -#: builtin/mainmenu/dlg_settings_advanced.lua -msgid "Please enter a valid number." -msgstr "Пожалуйста, введите правильное число." - -#: builtin/mainmenu/dlg_settings_advanced.lua -msgid "Possible values are: " -msgstr "Возможные значения: " - -#: builtin/mainmenu/dlg_settings_advanced.lua -msgid "Restore Default" -msgstr "Сброс по умолчанию" - -#: builtin/mainmenu/dlg_settings_advanced.lua builtin/mainmenu/store.lua -#: builtin/mainmenu/tab_online.lua -msgid "Search" -msgstr "Поиск" - -#: builtin/mainmenu/dlg_settings_advanced.lua -msgid "Select path" -msgstr "Выбрать путь" - -#: builtin/mainmenu/dlg_settings_advanced.lua -msgid "Show technical names" -msgstr "Отобразить технические названия" - -#: builtin/mainmenu/dlg_settings_advanced.lua -msgid "The value must be at least $1." -msgstr "Значение должно быть больше или равно $1." - -#: builtin/mainmenu/dlg_settings_advanced.lua -msgid "The value must not be larger than $1." -msgstr "Значение не должно быть больше, чем $1." - -#: builtin/mainmenu/modmgr.lua -msgid "" -"\n" -"Install Mod: unsupported filetype \"$1\" or broken archive" -msgstr "" -"\n" -"Установка мода: неподдерживаемый тип файла \"$1\" или повреждённый архив" - -#: builtin/mainmenu/modmgr.lua -msgid "Failed to install $1 to $2" -msgstr "Невозможно установить $1 в $2" - -#: builtin/mainmenu/modmgr.lua -msgid "Install Mod: file: \"$1\"" -msgstr "Установка мода: файл \"$1\"" - -#: builtin/mainmenu/modmgr.lua -msgid "Install Mod: unable to find real modname for: $1" -msgstr "Установка мода: невозможно определить название мода для $1" - -#: builtin/mainmenu/modmgr.lua -msgid "Install Mod: unable to find suitable foldername for modpack $1" -msgstr "" -"Установка мода: невозможно найти подходящее имя директории для модпака $1" - -#: builtin/mainmenu/modmgr.lua -msgid "Subgame Mods" -msgstr "Моды игры" - -#: builtin/mainmenu/store.lua -msgid "Close store" -msgstr "Закрыть хранилище" - -#: builtin/mainmenu/store.lua -msgid "Downloading $1, please wait..." -msgstr "Загрузка $1, ждите..." - -#: builtin/mainmenu/store.lua -msgid "Install" -msgstr "Установить" - -#: builtin/mainmenu/store.lua -msgid "Page $1 of $2" -msgstr "Страница $1 из $2" - -#: builtin/mainmenu/store.lua -msgid "Rating" -msgstr "Рейтинг" - -#: builtin/mainmenu/store.lua -msgid "Shortname:" -msgstr "Краткое имя:" - -#: builtin/mainmenu/store.lua -msgid "Successfully installed:" -msgstr "Успешно установлено:" - -#: builtin/mainmenu/store.lua -msgid "Unsorted" -msgstr "Не сортировано" - -#: builtin/mainmenu/store.lua -msgid "re-Install" -msgstr "Переустановить" - -#: builtin/mainmenu/tab_credits.lua -msgid "Active Contributors" -msgstr "Активные контрибьюторы" - -#: builtin/mainmenu/tab_credits.lua -msgid "Credits" -msgstr "Благодарности" - -#: builtin/mainmenu/tab_credits.lua -msgid "Dedication of the current release" -msgstr "" - -#: builtin/mainmenu/tab_credits.lua -msgid "Minetest Developers" -msgstr "Minetest разработчики" - -#: builtin/mainmenu/tab_credits.lua -msgid "MultiCraft Developers" -msgstr "MultiCraft разработчики" - -#: builtin/mainmenu/tab_credits.lua -msgid "Previous Contributors" -msgstr "Контрибьюторы в отставке" - -#: builtin/mainmenu/tab_credits.lua -msgid "Previous Core Developers" -msgstr "Разработчики в отставке" - -#: builtin/mainmenu/tab_local.lua -msgid "Announce Server" -msgstr "Публичный сервер" - -#: builtin/mainmenu/tab_local.lua -msgid "Bind Address" -msgstr "Адрес" - -#: builtin/mainmenu/tab_local.lua -msgid "Configure" -msgstr "Настроить" - -#: builtin/mainmenu/tab_local.lua builtin/mainmenu/tab_simple_main.lua -msgid "Creative Mode" -msgstr "Креатив" - -#: builtin/mainmenu/tab_local.lua builtin/mainmenu/tab_simple_main.lua -msgid "Enable Damage" -msgstr "Включить урон" - -#: builtin/mainmenu/tab_local.lua -msgid "Host Game" -msgstr "Играть (хост)" - -#: builtin/mainmenu/tab_local.lua -msgid "Host Server" -msgstr "Запустить сервер" - -#: builtin/mainmenu/tab_local.lua -msgid "Singleplayer" -msgstr "Одиночная игра" - -#: builtin/mainmenu/tab_local.lua -msgid "Name/Password" -msgstr "Имя / Пароль" - -#: builtin/mainmenu/tab_local.lua -msgid "New" -msgstr "Новый" - -#: builtin/mainmenu/tab_local.lua -msgid "No world created or selected!" -msgstr "Мир не создан или не выбран!" - -#: builtin/mainmenu/tab_local.lua -msgid "Play Game" -msgstr "Играть" - -#: builtin/mainmenu/tab_local.lua -msgid "Port" -msgstr "Порт" - -#: builtin/mainmenu/tab_local.lua -msgid "Select World:" -msgstr "Выберите мир:" - -#: builtin/mainmenu/tab_local.lua -msgid "Server Port" -msgstr "Порт сервера" - -#: builtin/mainmenu/tab_mods.lua -msgid "Installed Mods:" -msgstr "Установленные моды:" - -#: builtin/mainmenu/tab_mods.lua -msgid "Mod information:" -msgstr "Описание мода:" - -#: builtin/mainmenu/tab_mods.lua -msgid "No dependencies." -msgstr "Нет зависимостей." - -#: builtin/mainmenu/tab_mods.lua -msgid "No mod description available" -msgstr "Описание мода недоступно" - -#: builtin/mainmenu/tab_mods.lua -msgid "Rename" -msgstr "Переименовать" - -#: builtin/mainmenu/tab_mods.lua -msgid "Select Mod File:" -msgstr "Выберите файл мода:" - -#: builtin/mainmenu/tab_mods.lua -msgid "Uninstall selected mod" -msgstr "Удалить выбранный мод" - -#: builtin/mainmenu/tab_mods.lua -msgid "Uninstall selected modpack" -msgstr "Удалить выбранный мод-пак" - -#: builtin/mainmenu/tab_online.lua -msgid "Address / Port" -msgstr "Адрес / Порт" - -#: builtin/mainmenu/tab_online.lua builtin/mainmenu/tab_simple_main.lua -msgid "Connect" -msgstr "Подключиться" - -#: builtin/mainmenu/tab_online.lua builtin/mainmenu/tab_simple_main.lua -msgid "Creative mode" -msgstr "Режим творчества" - -#: builtin/mainmenu/tab_online.lua builtin/mainmenu/tab_simple_main.lua -msgid "Damage enabled" -msgstr "Урон включен" - -#: builtin/mainmenu/tab_online.lua builtin/mainmenu/tab_simple_main.lua -msgid "Del. Favorite" -msgstr "Удалить фаворит" - -#: builtin/mainmenu/tab_online.lua builtin/mainmenu/tab_simple_main.lua -msgid "Favorite" -msgstr "фаворит" - -#: builtin/mainmenu/tab_online.lua builtin/mainmenu/tab_simple_main.lua -msgid "Name / Password" -msgstr "Имя / Пароль" - -#: builtin/mainmenu/tab_online.lua builtin/mainmenu/tab_simple_main.lua -msgid "Ping" -msgstr "Пинг" - -#: builtin/mainmenu/tab_online.lua -msgid "Multiplayer" -msgstr "Мультиплеер" - -#: builtin/mainmenu/tab_online.lua builtin/mainmenu/tab_simple_main.lua -msgid "PvP enabled" -msgstr "PvP разрешён" - -#: builtin/mainmenu/tab_server.lua -msgid "Survival Mode" -msgstr "Режим выживания" - -#: builtin/mainmenu/tab_settings.lua -msgid "2x" -msgstr "2x" - -#: builtin/mainmenu/tab_settings.lua -msgid "3D Clouds" -msgstr "3D облака" - -#: builtin/mainmenu/tab_settings.lua -msgid "4x" -msgstr "4x" - -#: builtin/mainmenu/tab_settings.lua -msgid "8x" -msgstr "8x" - -#: builtin/mainmenu/tab_settings.lua -msgid "Advanced Settings" -msgstr "Расширенные настройки" - -#: builtin/mainmenu/tab_settings.lua -msgid "Antialiasing:" -msgstr "Антиалиасинг:" - -#: builtin/mainmenu/tab_settings.lua -msgid "Are you sure to reset your singleplayer world?" -msgstr "Уверены, что хотите сбросить мир одиночной игры?" - -#: builtin/mainmenu/tab_settings.lua -msgid "Autosave screen size" -msgstr "Автоматически сохранять размер окна" - -#: builtin/mainmenu/tab_settings.lua -msgid "Bilinear Filter" -msgstr "Билинейная фильтрация" - -#: builtin/mainmenu/tab_settings.lua -msgid "Bump Mapping" -msgstr "Бампмаппинг" - -#: builtin/mainmenu/tab_settings.lua -msgid "Change keys" -msgstr "Смена управления" - -#: builtin/mainmenu/tab_settings.lua -msgid "Connected Glass" -msgstr "Стёкла без швов" - -#: builtin/mainmenu/tab_settings.lua -msgid "Fancy Leaves" -msgstr "Красивая листва" - -#: builtin/mainmenu/tab_settings.lua -msgid "Mipmap" -msgstr "Мипмаппинг" - -#: builtin/mainmenu/tab_settings.lua -msgid "Mipmap + Aniso. Filter" -msgstr "Мипмаппинг с анизотр. фильтром" - -#: builtin/mainmenu/tab_settings.lua -msgid "No Filter" -msgstr "Без Фильтров" - -#: builtin/mainmenu/tab_settings.lua -msgid "No Mipmap" -msgstr "Без Мипмаппинга" - -#: builtin/mainmenu/tab_settings.lua -msgid "Node Highlighting" -msgstr "Подсветка нод" - -#: builtin/mainmenu/tab_settings.lua -msgid "Node Outlining" -msgstr "Обводка нод" - -#: builtin/mainmenu/tab_settings.lua builtin/mainmenu/tab_texturepacks.lua -msgid "None" -msgstr "Ничего" - -#: builtin/mainmenu/tab_settings.lua -msgid "Normal Mapping" -msgstr "Карты нормалей" - -#: builtin/mainmenu/tab_settings.lua -msgid "Opaque Leaves" -msgstr "Непрозрачная листва" - -#: builtin/mainmenu/tab_settings.lua -msgid "Opaque Water" -msgstr "Непрозрачная вода" - -#: builtin/mainmenu/tab_settings.lua src/settings_translation_file.cpp -msgid "Parallax Occlusion" -msgstr "Parallax Occlusion" - -#: builtin/mainmenu/tab_settings.lua -msgid "Particles" -msgstr "Частицы" - -#: builtin/mainmenu/tab_settings.lua -msgid "Reset singleplayer world" -msgstr "Сброс одиночной игры" - -#: builtin/mainmenu/tab_settings.lua -msgid "Screen:" -msgstr "Экран:" - -#: builtin/mainmenu/tab_settings.lua -msgid "Settings" -msgstr "Настройки" - -#: builtin/mainmenu/tab_settings.lua src/settings_translation_file.cpp -msgid "Shaders" -msgstr "Шейдеры" - -#: builtin/mainmenu/tab_settings.lua -msgid "Simple Leaves" -msgstr "Упрощённая листва" - -#: builtin/mainmenu/tab_settings.lua -msgid "Smooth Lighting" -msgstr "Мягкое освещение" - -#: builtin/mainmenu/tab_settings.lua -msgid "Texturing:" -msgstr "Текстурирование:" - -#: builtin/mainmenu/tab_settings.lua -msgid "To enable shaders the OpenGL driver needs to be used." -msgstr "Для включения шейдеров необходим драйвер OpenGL." - -#: builtin/mainmenu/tab_settings.lua src/settings_translation_file.cpp -msgid "Tone Mapping" -msgstr "Тональное отображение" - -#: builtin/mainmenu/tab_settings.lua -msgid "Touchthreshold (px)" -msgstr "Чувствительность (пк)" - -#: builtin/mainmenu/tab_settings.lua -msgid "Trilinear Filter" -msgstr "Трилинейная фильтрация" - -#: builtin/mainmenu/tab_settings.lua -msgid "Waving Leaves" -msgstr "Покачивание листвы" - -#: builtin/mainmenu/tab_settings.lua -msgid "Waving Plants" -msgstr "Покачивание растений" - -#: builtin/mainmenu/tab_settings.lua -msgid "Waving Water" -msgstr "Волны на воде" - -#: builtin/mainmenu/tab_texturepacks.lua -msgid "No information available" -msgstr "Описание отсутствует" - -#: builtin/mainmenu/tab_texturepacks.lua -msgid "Select texture pack:" -msgstr "Выберите пакет текстур:" - -#: builtin/mainmenu/tab_texturepacks.lua -msgid "Texturepacks" -msgstr "Пакеты текстур" - -#: src/client.cpp -msgid "Connection timed out." -msgstr "Тайм-аут соединения." - -#: src/client.cpp -msgid "Done!" -msgstr "Готово!" - -#: src/client.cpp -msgid "Initializing nodes" -msgstr "Инициирование нод" - -#: src/client.cpp -msgid "Initializing nodes..." -msgstr "Инициирование нод..." - -#: src/client.cpp -msgid "Loading textures..." -msgstr "Загрузка текстур..." - -#: src/client.cpp -msgid "Rebuilding shaders..." -msgstr "Сборка шейдеров..." - -#: src/client/clientlauncher.cpp -msgid "Connection error (timed out?)" -msgstr "Ошибка соединения (таймаут?)" - -#: src/client/clientlauncher.cpp -msgid "Could not find or load game \"" -msgstr "Невозможно найти или загрузить игру \"" - -#: src/client/clientlauncher.cpp -msgid "Invalid gamespec." -msgstr "Неправильная конфигурация игры." - -#: src/client/clientlauncher.cpp -msgid "Main Menu" -msgstr "Главное меню" - -#: src/client/clientlauncher.cpp -msgid "No world selected and no address provided. Nothing to do." -msgstr "Не выбран мир и не введен адрес. Нечего делать." - -#: src/client/clientlauncher.cpp -msgid "Player name too long." -msgstr "Имя игрока слишком длинное." - -#: src/client/clientlauncher.cpp -msgid "Please choose a name!" -msgstr "Пожалуйста, выберите имя!" - -#: src/client/clientlauncher.cpp -msgid "Provided world path doesn't exist: " -msgstr "По этому пути мира нет: " - -#: src/fontengine.cpp -msgid "needs_fallback_font" -msgstr "needs_fallback_font" - -#: src/game.cpp -msgid "" -"\n" -"Check debug.txt for details." -msgstr "" -"\n" -"Подробная информация в debug.txt." - -#: src/game.cpp -msgid "- Address: " -msgstr "- Адрес: " - -#: src/game.cpp -msgid "- Creative Mode: " -msgstr "- Режим творчества: " - -#: src/game.cpp -msgid "- Damage: " -msgstr "- Урон: " - -#: src/game.cpp -msgid "- Mode: " -msgstr "- Режим: " - -#: src/game.cpp -msgid "- Port: " -msgstr "- Порт: " - -#: src/game.cpp -msgid "- Public: " -msgstr "- Публичный: " - -#: src/game.cpp -msgid "- PvP: " -msgstr "- PvP: " - -#: src/game.cpp -msgid "- Server Name: " -msgstr "- Имя сервера: " - -#: src/game.cpp -msgid "Change Keys" -msgstr "Смена управления" - -#: src/game.cpp -msgid "Change Password" -msgstr "Изменить пароль" - -#: src/game.cpp -msgid "Close game" -msgstr "Закрыть игру" - -#: src/game.cpp -msgid "Connecting to server..." -msgstr "Подключение к серверу..." - -#: src/game.cpp -msgid "Continue" -msgstr "Продолжить" - -#: src/game.cpp -#, c-format -msgid "" -"Controls:\n" -"- %s: move forwards\n" -"- %s: move backwards\n" -"- %s: move left\n" -"- %s: move right\n" -"- %s: jump/climb\n" -"- %s: sneak/go down\n" -"- %s: drop item\n" -"- %s: inventory\n" -"- Mouse: turn/look\n" -"- Mouse left: dig/punch\n" -"- Mouse right: place/use\n" -"- Mouse wheel: select item\n" -"- %s: chat\n" -msgstr "" -"Управление:\n" -"- %s: двигаться вперёд\n" -"- %s: двигаться назад\n" -"- %s: двигаться влево\n" -"- %s: двигаться вправо\n" -"- %s: прыжок/подъём\n" -"- %s: красться/спуститься\n" -"- %s: бросить предмет\n" -"- %s: инвентарь\n" -"- Мышка: поворот\n" -"- ЛКМ: копать/удар\n" -"- ПКМ: поставить/использовать\n" -"- Колесико мыши: выбор предмета\n" -"- %s: чат\n" - -#: src/game.cpp -msgid "Creating client..." -msgstr "Создание клиента..." - -#: src/game.cpp -msgid "Creating server..." -msgstr "Создание сервера..." - -#: src/game.cpp -msgid "" -"Default Controls:\n" -"No menu visible:\n" -"- single tap: button activate\n" -"- double tap: place/use\n" -"- slide finger: look around\n" -"Menu/Inventory visible:\n" -"- double tap (outside):\n" -" -->close\n" -"- touch stack, touch slot:\n" -" --> move stack\n" -"- touch&drag, tap 2nd finger\n" -" --> place single item to slot\n" -msgstr "" -"Управление по умолчанию:\n" -"Не в меню:\n" -"- одно нажатие: кнопка активаций\n" -"- двойное нажатие: положить/использовать\n" -"- скольжение пальцем: осмотреться\n" -"В меню/инвертаре:\n" -"- двойное нажатие (вне меню)\n" -"--> закрыть меню\n" -"- Нажать на стопку, затем на ячейку:\n" -"--> Двигать стопку\n" -"- Потащить одним пальцем стопку в нужную ячейку, нажать вторым пальцем на " -"экран:\n" -"--> Положить один предмет в ячейку\n" - -#: src/game.cpp -msgid "Exit to OS" -msgstr "Выход в ОС" - -#: src/game.cpp -msgid "Exit to Menu" -msgstr "Выход в меню" - -#: src/game.cpp -msgid "Game info:" -msgstr "Информация о игре:" - -#: src/game.cpp -msgid "Game paused" -msgstr "Пауза" - -#: src/game.cpp -msgid "Hosting server" -msgstr "Локальный сервер" - -#: src/game.cpp -msgid "Item definitions..." -msgstr "Описания предметов..." - -#: src/game.cpp -msgid "KiB/s" -msgstr "КиБ/с" - -#: src/game.cpp -msgid "Media..." -msgstr "Загрузка..." - -#: src/game.cpp -msgid "MiB/s" -msgstr "МиБ/с" - -#: src/game.cpp -msgid "Migrating world..." -msgstr "Обновление мира..." - -#: src/game.cpp -msgid "Node definitions..." -msgstr "Описания нод..." - -#: src/game.cpp -msgid "Off" -msgstr "Выкл." - -#: src/game.cpp -msgid "On" -msgstr "Вкл." - -#: src/game.cpp -msgid "Remote server" -msgstr "Удаленный сервер" - -#: src/game.cpp -msgid "Resolving address..." -msgstr "Получение адреса..." - -#: src/game.cpp -msgid "Save and Exit" -msgstr "Сохранить и Выйти" - -#: src/game.cpp -msgid "Shutting down..." -msgstr "Завершение..." - -#: src/game.cpp -#msgid "Singleplayer" -#msgstr "Одиночная игра" - -#: src/game.cpp -msgid "Sound Volume" -msgstr "Громкость звука" - -#: src/game.cpp -#, c-format -msgid "Volume changed to %d%%" -msgstr "Громкость изменена на %d%%" - -#: src/game.cpp -msgid "Volume changed to 0%" -msgstr "Громкость изменена на 0%" - -#: src/game.cpp -msgid "Volume changed to 100%" -msgstr "Громкость изменена на 100%" - -#: src/game.cpp src/guiFormSpecMenu.cpp -msgid "ok" -msgstr "OK" - -#: src/guiFormSpecMenu.cpp -msgid "Enter " -msgstr "Введите " - -#: src/guiFormSpecMenu.cpp -msgid "Proceed" -msgstr "Продолжить" - -#: src/guiKeyChangeMenu.cpp -msgid "\"Use\" = climb down" -msgstr "\"Использовать\" = вниз" - -#: src/guiKeyChangeMenu.cpp -msgid "Backward" -msgstr "Назад" - -#: src/guiKeyChangeMenu.cpp -msgid "Chat" -msgstr "Чат" - -#: src/guiKeyChangeMenu.cpp -msgid "Command" -msgstr "Команда" - -#: src/guiKeyChangeMenu.cpp -msgid "Console" -msgstr "Консоль" - -#: src/guiKeyChangeMenu.cpp -msgid "Dec. volume" -msgstr "Уменьш. громкость" - -#: src/guiKeyChangeMenu.cpp -msgid "Double tap \"jump\" to toggle fly" -msgstr "Двойной прыжок = летать" - -#: src/guiKeyChangeMenu.cpp -msgid "Drop" -msgstr "Бросить" - -#: src/guiKeyChangeMenu.cpp -msgid "Forward" -msgstr "Вперед" - -#: src/guiKeyChangeMenu.cpp -msgid "Inc. volume" -msgstr "Увелич. громкость" - -#: src/guiKeyChangeMenu.cpp -msgid "Inventory" -msgstr "Инвентарь" - -#: src/guiKeyChangeMenu.cpp -msgid "Jump" -msgstr "Прыжок" - -#: src/guiKeyChangeMenu.cpp -msgid "Key already in use" -msgstr "Клавиша уже используется" - -#: src/guiKeyChangeMenu.cpp -msgid "" -"Keybindings. (If this menu screws up, remove stuff from multicraft.conf)" -msgstr "" -"Сочетания клавиш. (Если это меню сломалось, удалите настройки из minetest." -"conf)" - -#: src/guiKeyChangeMenu.cpp src/keycode.cpp -msgid "Left" -msgstr "Влево" - -#: src/guiKeyChangeMenu.cpp -msgid "Local command" -msgstr "Локальная команда" - -#: src/guiKeyChangeMenu.cpp -msgid "Mute" -msgstr "Выключить звук" - -#: src/guiKeyChangeMenu.cpp -msgid "Next item" -msgstr "Следующий предмет" - -#: src/guiKeyChangeMenu.cpp -msgid "Prev. item" -msgstr "Предыдущий предмет" - -#: src/guiKeyChangeMenu.cpp src/settings_translation_file.cpp -msgid "Print stacks" -msgstr "Печать стеков" - -#: src/guiKeyChangeMenu.cpp -msgid "Range select" -msgstr "Зона видимости" - -#: src/guiKeyChangeMenu.cpp src/keycode.cpp -msgid "Right" -msgstr "Вправо" - -#: src/guiKeyChangeMenu.cpp -msgid "Sneak" -msgstr "Красться" - -#: src/guiKeyChangeMenu.cpp -msgid "Toggle Cinematic" -msgstr "Киношность" - -#: src/guiKeyChangeMenu.cpp -msgid "Toggle fast" -msgstr "Ускорение" - -#: src/guiKeyChangeMenu.cpp -msgid "Toggle fly" -msgstr "Полёт" - -#: src/guiKeyChangeMenu.cpp -msgid "Toggle noclip" -msgstr "Включить noclip" - -#: src/guiKeyChangeMenu.cpp -msgid "Use" -msgstr "Использовать" - -#: src/guiKeyChangeMenu.cpp src/keycode.cpp -msgid "Zoom" -msgstr "Масштаб" - -#: src/guiKeyChangeMenu.cpp -msgid "press key" -msgstr "нажмите клавишу" - -#: src/guiPasswordChange.cpp -msgid "Change" -msgstr "Изменить" - -#: src/guiPasswordChange.cpp -msgid "Confirm Password" -msgstr "Подтверждение пароля" - -#: src/guiPasswordChange.cpp -msgid "New Password" -msgstr "Новый пароль" - -#: src/guiPasswordChange.cpp -msgid "Old Password" -msgstr "Старый пароль" - -#: src/guiPasswordChange.cpp -msgid "Passwords do not match!" -msgstr "Пароли не совпадают!" - -#: src/guiVolumeChange.cpp -msgid "Exit" -msgstr "Выход" - -#: src/guiVolumeChange.cpp -msgid "Sound Volume: " -msgstr "Громкость звука: " - -#: src/keycode.cpp -msgid "Apps" -msgstr "Приложения" - -#: src/keycode.cpp -msgid "Back" -msgstr "Назад" - -#: src/keycode.cpp -msgid "Caps Lock" -msgstr "Caps Lock" - -#: src/keycode.cpp -msgid "Clear" -msgstr "Очистить" - -#: src/keycode.cpp -msgid "Control" -msgstr "Ctrl" - -#: src/keycode.cpp -msgid "Down" -msgstr "Вниз" - -#: src/keycode.cpp -msgid "End" -msgstr "End" - -#: src/keycode.cpp -msgid "Erase EOF" -msgstr "Стереть EOF" - -#: src/keycode.cpp -msgid "Execute" -msgstr "Выполнить" - -#: src/keycode.cpp -msgid "Help" -msgstr "Справка" - -#: src/keycode.cpp -msgid "Home" -msgstr "Home" - -#: src/keycode.cpp -msgid "IME Accept" -msgstr "IME Accept" - -#: src/keycode.cpp -msgid "IME Convert" -msgstr "IME Convert" - -#: src/keycode.cpp -msgid "IME Escape" -msgstr "IME Escape" - -#: src/keycode.cpp -msgid "IME Mode Change" -msgstr "IME Mode Change" - -#: src/keycode.cpp -msgid "IME Nonconvert" -msgstr "IME Nonconvert" - -#: src/keycode.cpp -msgid "Insert" -msgstr "Insert" - -#: src/keycode.cpp -msgid "Left Button" -msgstr "Левая кнопка" - -#: src/keycode.cpp -msgid "Left Control" -msgstr "Левый Ctrl" - -#: src/keycode.cpp -msgid "Left Menu" -msgstr "Левая клавиша меню" - -#: src/keycode.cpp -msgid "Left Shift" -msgstr "Левый Shift" - -#: src/keycode.cpp -msgid "Left Windows" -msgstr "Левая кл. Win" - -#: src/keycode.cpp -msgid "Menu" -msgstr "Меню" - -#: src/keycode.cpp -msgid "Middle Button" -msgstr "Средняя кнопка" - -#: src/keycode.cpp -msgid "Next" -msgstr "Next" - -#: src/keycode.cpp -msgid "Num Lock" -msgstr "Num Lock" - -#: src/keycode.cpp -msgid "Numpad *" -msgstr "Доп. клав. *" - -#: src/keycode.cpp -msgid "Numpad +" -msgstr "Доп. клав. +" - -#: src/keycode.cpp -msgid "Numpad -" -msgstr "Доп. клав. -" - -#: src/keycode.cpp -msgid "Numpad ." -msgstr "Цифр. клав. '.'" - -#: src/keycode.cpp -msgid "Numpad /" -msgstr "Доп. клав. /" - -#: src/keycode.cpp -msgid "Numpad 0" -msgstr "Доп. клав. 0" - -#: src/keycode.cpp -msgid "Numpad 1" -msgstr "Доп. клав. 1" - -#: src/keycode.cpp -msgid "Numpad 2" -msgstr "Доп. клав. 2" - -#: src/keycode.cpp -msgid "Numpad 3" -msgstr "Доп. клав. 3" - -#: src/keycode.cpp -msgid "Numpad 4" -msgstr "Доп. клав. 4" - -#: src/keycode.cpp -msgid "Numpad 5" -msgstr "Доп. клав. 5" - -#: src/keycode.cpp -msgid "Numpad 6" -msgstr "Доп. клав. 6" - -#: src/keycode.cpp -msgid "Numpad 7" -msgstr "Доп. клав. 7" - -#: src/keycode.cpp -msgid "Numpad 8" -msgstr "Доп. клав. 8" - -#: src/keycode.cpp -msgid "Numpad 9" -msgstr "Доп. клав. 9" - -#: src/keycode.cpp -msgid "OEM Clear" -msgstr "Очистить OEM" - -#: src/keycode.cpp -msgid "Pause" -msgstr "Пауза" - -#: src/keycode.cpp -msgid "Play" -msgstr "Играть" - -#: src/keycode.cpp -msgid "Print" -msgstr "Print" - -#: src/keycode.cpp -msgid "Prior" -msgstr "Prior" - -#: src/keycode.cpp -msgid "Return" -msgstr "Вернуться" - -#: src/keycode.cpp -msgid "Right Button" -msgstr "Правая кнопка" - -#: src/keycode.cpp -msgid "Right Control" -msgstr "Правый Ctrl" - -#: src/keycode.cpp -msgid "Right Menu" -msgstr "Правая клавиша меню" - -#: src/keycode.cpp -msgid "Right Shift" -msgstr "Правый Shift" - -#: src/keycode.cpp -msgid "Right Windows" -msgstr "Прав. кл. Win" - -#: src/keycode.cpp -msgid "Scroll Lock" -msgstr "Scroll Lock" - -#: src/keycode.cpp -msgid "Select" -msgstr "Выбор" - -#: src/keycode.cpp -msgid "Shift" -msgstr "Shift" - -#: src/keycode.cpp -msgid "Sleep" -msgstr "Sleep" - -#: src/keycode.cpp -msgid "Snapshot" -msgstr "Cнимок" - -#: src/keycode.cpp -msgid "Space" -msgstr "Пробел" - -#: src/keycode.cpp -msgid "Tab" -msgstr "Tab" - -#: src/keycode.cpp -msgid "Up" -msgstr "Вверх" - -#: src/keycode.cpp -msgid "X Button 1" -msgstr "Доп. кнопка 1" - -#: src/keycode.cpp -msgid "X Button 2" -msgstr "Доп. кнопка 2" - -#: src/settings_translation_file.cpp -msgid "" -"(X,Y,Z) offset of fractal from world centre in units of 'scale'.\n" -"Used to move a suitable spawn area of low land close to (0, 0).\n" -"The default is suitable for mandelbrot sets, it needs to be edited for julia " -"sets.\n" -"Range roughly -2 to 2. Multiply by 'scale' for offset in nodes." -msgstr "" -"Смещение (X, Y, Z) фрактала от центра мира в единицах «масштаба».\n" -"Используется для перемещения зоны возрождения ближе к (0, 0).\n" -"Значение по умолчанию подходит для множеств Мандельброта, для множеств Жюлиа " -"его нужно отредактировать.\n" -"Диапазон примерно от -2 до 2. Умножьте на «масштаб», чтобы получить смещение " -"в узлах." - -#: src/settings_translation_file.cpp -msgid "" -"0 = parallax occlusion with slope information (faster).\n" -"1 = relief mapping (slower, more accurate)." -msgstr "" -"0 = Параллакс с информацией о наклоне (Быстрее).\n" -"1 = Рельефный маппинг (Медленнее, качественнее)." - -#: src/settings_translation_file.cpp -msgid "3D clouds" -msgstr "3D облака" - -#: src/settings_translation_file.cpp -msgid "3D mode" -msgstr "3D режим" - -#: src/settings_translation_file.cpp -msgid "3D noise defining giant caverns." -msgstr "3D-шум, определяющий огромные пещеры." - -#: src/settings_translation_file.cpp -msgid "" -"3D noise defining mountain structure and height.\n" -"Also defines structure of floatland mountain terrain." -msgstr "" -"3D-шум, определяющий структуру гор и их высоту.\n" -"Также определяет структуру гор на парящих островах." - -#: src/settings_translation_file.cpp -msgid "3D noise defining structure of river canyon walls." -msgstr "3D-шум, определяющий структуру стен речного каньона." - -#: src/settings_translation_file.cpp -msgid "" -"3D support.\n" -"Currently supported:\n" -"- none: no 3d output.\n" -"- anaglyph: cyan/magenta color 3d.\n" -"- interlaced: odd/even line based polarisation screen support.\n" -"- topbottom: split screen top/bottom.\n" -"- sidebyside: split screen side by side.\n" -"- pageflip: quadbuffer based 3d." -msgstr "" -"Поддержка 3D.\n" -"Сейчас поддерживаются:\n" -"- none: 3D отключен.\n" -"- anaglyph: голубой/пурпурный цвет в 3D.\n" -"- interlaced: четные/нечетные линии отображают два разных кадра для " -"экранов поддерживающих поляризацию.\n" -"- topbottom: Разделение экрана низ/верх.\n" -"- sidebyside: Разделение экрана право/лево.\n" -"- pageflip: Четырёхкратная буферизация (QuadBuffer)." - -#: src/settings_translation_file.cpp -msgid "" -"A chosen map seed for a new map, leave empty for random.\n" -"Will be overridden when creating a new world in the main menu." -msgstr "" -"Выбранное зерно для новой карты, оставьте пустым для случайного.\n" -"Будет переопределено при создании нового мира в главном меню." - -#: src/settings_translation_file.cpp -msgid "A message to be displayed to all clients when the server crashes." -msgstr "Сообщение, которое будет отображаться для всех при падении сервера." - -#: src/settings_translation_file.cpp -msgid "A message to be displayed to all clients when the server shuts down." -msgstr "Сообщение, которое будет показано всем при отключении сервера." - -#: src/settings_translation_file.cpp -msgid "Absolute limit of emerge queues" -msgstr "Абсолютный лимит появляющихся запросов" - -#: src/settings_translation_file.cpp -msgid "Acceleration in air" -msgstr "Ускорение в воздухе" - -#: src/settings_translation_file.cpp -msgid "Active Block Management interval" -msgstr "Интервал управления активным блоком" - -#: src/settings_translation_file.cpp -msgid "Active Block Modifier interval" -msgstr "Интервал модификатора активного блока" - -#: src/settings_translation_file.cpp -msgid "Active Block Modifiers" -msgstr "Модификаторы активных блоков" - -#: src/settings_translation_file.cpp -msgid "Active block range" -msgstr "Дальность взаимодействия с блоками" - -#: src/settings_translation_file.cpp -msgid "Active object send range" -msgstr "Дальность отправляемого активного объекта" - -#: src/settings_translation_file.cpp -msgid "" -"Address to connect to.\n" -"Leave this blank to start a local server.\n" -"Note that the address field in the main menu overrides this setting." -msgstr "" -"Адрес, к которому присоединиться.\n" -"Оставьте это поле, чтобы запустить локальный сервер.\n" -"ПРИМЕЧАНИЕ: это поле адреса перезапишет эту настройку в главном меню." - -#: src/settings_translation_file.cpp -msgid "Adds particles when digging a node." -msgstr "Добавляет частицы при рытье узла." - -#: src/settings_translation_file.cpp -msgid "" -"Adjust dpi configuration to your screen (non X11/Android only) e.g. for 4k " -"screens." -msgstr "" -"Настройка dpi (плотности точек на дюйм) для вашего экрана (не для X11, " -"только для Android). Например для мониторов с разрешением в 4k." - -#: src/settings_translation_file.cpp -msgid "" -"Adjust the gamma encoding for the light tables. Higher numbers are " -"brighter.\n" -"This setting is for the client only and is ignored by the server." -msgstr "" -"Регулирует гамма-кодировку таблиц освещения. Более высокие значения ярче.\n" -"Этот параметр предназначен только для клиента и игнорируется сервером." - -#: src/settings_translation_file.cpp -msgid "Advanced" -msgstr "Дополнительно" - -#: src/settings_translation_file.cpp -msgid "Altitude Chill" -msgstr "Высота нивального пояса" - -#: src/settings_translation_file.cpp -msgid "Always fly and fast" -msgstr "Всегда включен полёт и ускорение" - -#: src/settings_translation_file.cpp -msgid "Ambient occlusion gamma" -msgstr "Гамма Ambient occlusion" - -#: src/settings_translation_file.cpp -msgid "Amplifies the valleys" -msgstr "Усиливает долины" - -#: src/settings_translation_file.cpp -msgid "" -"Android systems only: Tries to create inventory textures from meshes\n" -"when no supported render was found." -msgstr "" -"Только системы Android: Попытаться создать текстуры инвентаря из мешей,\n" -"когда поддерживаемый рендерер не найден." - -#: src/settings_translation_file.cpp -msgid "Anisotropic filtering" -msgstr "Анизантропная фильтрация" - -#: src/settings_translation_file.cpp -msgid "Announce server" -msgstr "О сервере" - -#: src/settings_translation_file.cpp -msgid "" -"Announce to this serverlist.\n" -"If you want to announce your ipv6 address, use serverlist_url = v6.servers." -"minetest.net." -msgstr "" -"Объявите списку сервера.\n" -"Если Вы хотите объявить о своем адресе IPv6, используйте serverlist_url = v6." -"servers.minetest.net." - -#: src/settings_translation_file.cpp -msgid "Apple trees noise" -msgstr "Шум яблонь" - -#: src/settings_translation_file.cpp -msgid "Approximate (X,Y,Z) scale of fractal in nodes." -msgstr "Приблизительный (X,Y,Z) масштаб фрактала в узлах." - -#: src/settings_translation_file.cpp -msgid "Ask to reconnect after crash" -msgstr "Запрос переподключения после дисконнекта" - -#: src/settings_translation_file.cpp -msgid "" -"At this distance the server will aggressively optimize which blocks are sent " -"to clients.\n" -"Small values potentially improve performance a lot, at the expense of " -"visible rendering glitches.\n" -"(some blocks will not be rendered under water and in caves, as well as " -"sometimes on land)\n" -"Setting this to a value greater than max_block_send_distance disables this " -"optimization.\n" -"Stated in mapblocks (16 nodes)" -msgstr "" -"На этом расстоянии сервер будет агрессивно оптимизировать то, какие блоки " -"будут\n" -"отправлены клиентам. Малые значения, возможно, увеличат производительность " -"за счет\n" -"видимых глюков отрисовки (некоторые блоки не будут отрисовываться под водой\n" -"и в пещерах, а иногда и на суше). Установка этого значения больше, чем " -"max_block_send_distance\n" -"отключает оптимизацию. Указывается в блоках (16 узлов)" - -#: src/settings_translation_file.cpp -msgid "Automaticaly report to the serverlist." -msgstr "Автоматически добавлять в список серверов." - -#: src/settings_translation_file.cpp -msgid "Autorun key" -msgstr "Кнопка автобега" - -#: src/settings_translation_file.cpp -msgid "Backward key" -msgstr "Клавиша назад" - -#: src/settings_translation_file.cpp -msgid "Base terrain height" -msgstr "Высота основной местности" - -#: src/settings_translation_file.cpp -msgid "Basic" -msgstr "Базовый" - -#: src/settings_translation_file.cpp -msgid "Basic Privileges" -msgstr "Стандартные права" - -#: src/settings_translation_file.cpp -msgid "Beach noise" -msgstr "Шум пляжей" - -#: src/settings_translation_file.cpp -msgid "Beach noise threshold" -msgstr "Порог шума пляжей" - -#: src/settings_translation_file.cpp -msgid "Bilinear filtering" -msgstr "Билинейная фильтрация" - -#: src/settings_translation_file.cpp -msgid "Bind address" -msgstr "Адрес бинда" - -#: src/settings_translation_file.cpp -msgid "Biome API temperature and humidity noise parameters" -msgstr "Параметры температуры и влажности для API биомов" - -#: src/settings_translation_file.cpp -msgid "Biome noise" -msgstr "Шум биомов" - -#: src/settings_translation_file.cpp -msgid "Bits per pixel (aka color depth) in fullscreen mode." -msgstr "Биты на пиксель (глубина цвета) в полноэкранном режиме." - -#: src/settings_translation_file.cpp -msgid "Build inside player" -msgstr "Разрешить ставить блоки на месте игрока" - -#: src/settings_translation_file.cpp -msgid "Builtin" -msgstr "Встроен" - -#: src/settings_translation_file.cpp -msgid "Bumpmapping" -msgstr "Бампмаппинг" - -#: src/settings_translation_file.cpp -msgid "Camera smoothing" -msgstr "Сглаживание камеры" - -#: src/settings_translation_file.cpp -msgid "Camera smoothing in cinematic mode" -msgstr "Сглаживание камеры в кинематографическом режиме" - -#: src/settings_translation_file.cpp -msgid "Camera update toggle key" -msgstr "Клавиша переключения обновления камеры" - -#: src/settings_translation_file.cpp -msgid "Cave noise" -msgstr "Шум пещеры" - -#: src/settings_translation_file.cpp -msgid "Cave noise #1" -msgstr "Шум пещеры #1" - -#: src/settings_translation_file.cpp -msgid "Cave noise #2" -msgstr "Шум пещеры #2" - -#: src/settings_translation_file.cpp -msgid "Cave width" -msgstr "Ширина пещеры" - -#: src/settings_translation_file.cpp -msgid "Cave1 noise" -msgstr "Шум пещеры #1" - -#: src/settings_translation_file.cpp -msgid "Cave2 noise" -msgstr "Шум пещеры #2" - -#: src/settings_translation_file.cpp -msgid "Cavern limit" -msgstr "Предел пещеры" - -#: src/settings_translation_file.cpp -msgid "Cavern noise" -msgstr "Шум пещеры" - -#: src/settings_translation_file.cpp -msgid "Cavern taper" -msgstr "Конусность пещер" - -#: src/settings_translation_file.cpp -msgid "Cavern threshold" -msgstr "Порог пещеры" - -#: src/settings_translation_file.cpp -msgid "Caves and tunnels form at the intersection of the two noises" -msgstr "Пещеры и тоннели формируются на перекрестке этих двух шумов" - -#: src/settings_translation_file.cpp -msgid "Chat key" -msgstr "Кнопка чата" - -#: src/settings_translation_file.cpp -msgid "Chat toggle key" -msgstr "Кнопка переключения чата" - -#: src/settings_translation_file.cpp -msgid "Chatcommands" -msgstr "Команды в чате" - -#: src/settings_translation_file.cpp -msgid "" -"Choice of 18 fractals from 9 formulas.\n" -"1 = 4D \"Roundy\" mandelbrot set.\n" -"2 = 4D \"Roundy\" julia set.\n" -"3 = 4D \"Squarry\" mandelbrot set.\n" -"4 = 4D \"Squarry\" julia set.\n" -"5 = 4D \"Mandy Cousin\" mandelbrot set.\n" -"6 = 4D \"Mandy Cousin\" julia set.\n" -"7 = 4D \"Variation\" mandelbrot set.\n" -"8 = 4D \"Variation\" julia set.\n" -"9 = 3D \"Mandelbrot/Mandelbar\" mandelbrot set.\n" -"10 = 3D \"Mandelbrot/Mandelbar\" julia set.\n" -"11 = 3D \"Christmas Tree\" mandelbrot set.\n" -"12 = 3D \"Christmas Tree\" julia set.\n" -"13 = 3D \"Mandelbulb\" mandelbrot set.\n" -"14 = 3D \"Mandelbulb\" julia set.\n" -"15 = 3D \"Cosine Mandelbulb\" mandelbrot set.\n" -"16 = 3D \"Cosine Mandelbulb\" julia set.\n" -"17 = 4D \"Mandelbulb\" mandelbrot set.\n" -"18 = 4D \"Mandelbulb\" julia set." -msgstr "" -"Выбор из 18 фракталов из 9 формул.\n" -"1 = 4D \"Круглое\" множество Мандельброта.\n" -"2 = 4D \"Круглое\" множество Жюлиа.\n" -"3 = 4D \"Квадратное\" множество Мандельброта.\n" -"4 = 4D \"Квадратное\" множество Жюлиа.\n" -"5 = 4D \"Mandy Cousin\" множество Мандельброта.\n" -"6 = 4D \"Mandy Cousin\" множество Жюлиа.\n" -"7 = 4D \"Variation\" множество Мандельброта.\n" -"8 = 4D \"Variation\" множество Жюлиа.\n" -"9 = 3D \"Mandelbrot/Mandelbar\" множество Мандельброта.\n" -"10 = 3D \"Mandelbrot/Mandelbar\" множество Жюлиа.\n" -"11 = 3D \"Christmas Tree\" множество Мандельброта.\n" -"12 = 3D \"Christmas Tree\" множество Жюлиа.\n" -"13 = 3D \"Mandelbulb\" множество Мандельброта.\n" -"14 = 3D \"Mandelbulb\" множество Жюлиа.\n" -"15 = 3D \"Cosine Mandelbulb\" множество Мандельброта.\n" -"16 = 3D \"Cosine Mandelbulb\" множество Жюлиа.\n" -"17 = 4D \"Mandelbulb\" множество Мандельброта.\n" -"18 = 4D \"Mandelbulb\" множество Жюлиа." - -#: src/settings_translation_file.cpp -msgid "Chunk size" -msgstr "Размер чанка" - -#: src/settings_translation_file.cpp -msgid "Cinematic mode" -msgstr "Кинематографический режим" - -#: src/settings_translation_file.cpp -msgid "Cinematic mode key" -msgstr "Кнопка переключения в кинематографический режим" - -#: src/settings_translation_file.cpp -msgid "Clean transparent textures" -msgstr "очистить прозрачные структуры" - -#: src/settings_translation_file.cpp -msgid "Client" -msgstr "Клиент" - -#: src/settings_translation_file.cpp -msgid "Client and Server" -msgstr "Клиент и Сервер" - -#: src/settings_translation_file.cpp -msgid "Client modding" -msgstr "Моддинг клиента" - -#: src/settings_translation_file.cpp -msgid "Climbing speed" -msgstr "Скорость подъема" - -#: src/settings_translation_file.cpp -msgid "Cloud height" -msgstr "Высота облаков" - -#: src/settings_translation_file.cpp -msgid "Cloud radius" -msgstr "Радиус облаков" - -#: src/settings_translation_file.cpp -msgid "Clouds" -msgstr "Облака" - -#: src/settings_translation_file.cpp -msgid "Clouds are a client side effect." -msgstr "Облака являются эффектом на стороне клиента." - -#: src/settings_translation_file.cpp -msgid "Clouds in menu" -msgstr "Облака в меню" - -#: src/settings_translation_file.cpp -msgid "Colored fog" -msgstr "Цветной туман" - -#: src/settings_translation_file.cpp -msgid "" -"Comma-separated list of mods that are allowed to access HTTP APIs, which\n" -"allow them to upload and download data to/from the internet." -msgstr "" -"Список доверенных модов через запятую, которым разрешён доступ к HTTP API, " -"что позволяет им отправлять и принимать данные через Интернет." - -#: src/settings_translation_file.cpp -msgid "" -"Comma-separated list of trusted mods that are allowed to access insecure\n" -"functions even when mod security is on (via request_insecure_environment())." -msgstr "" -"Список доверенных модов через запятую, которым разрешён доступ к " -"небезопасным функциям даже когда включена защита модов (через " -"request_insecure_environment())." - -#: src/settings_translation_file.cpp -msgid "Command key" -msgstr "Команда" - -#: src/settings_translation_file.cpp -msgid "Connect glass" -msgstr "Стёкла без швов" - -#: src/settings_translation_file.cpp -msgid "Connect to external media server" -msgstr "Подключение к внешнему медиасерверу" - -#: src/settings_translation_file.cpp -msgid "Connects glass if supported by node." -msgstr "Соединяет стекло, если поддерживается нодой." - -#: src/settings_translation_file.cpp -msgid "Console alpha" -msgstr "Консоль" - -#: src/settings_translation_file.cpp -msgid "Console color" -msgstr "Цвет в консоли" - -#: src/settings_translation_file.cpp -msgid "Console height" -msgstr "Высота консоли" - -#: src/settings_translation_file.cpp -msgid "Console key" -msgstr "Кнопка вызова консоли" - -#: src/settings_translation_file.cpp -msgid "Continuous forward" -msgstr "Непрерывная ходьба" - -#: src/settings_translation_file.cpp -msgid "Continuous forward movement (only used for testing)." -msgstr "Постоянное движение вперёд (используется только для тестирования)." - -#: src/settings_translation_file.cpp -msgid "Controls" -msgstr "Управление" - -#: src/settings_translation_file.cpp -msgid "" -"Controls length of day/night cycle.\n" -"Examples: 72 = 20min, 360 = 4min, 1 = 24hour, 0 = day/night/whatever stays " -"unchanged." -msgstr "" -"Задает длину цикла дня/ночи.\n" -"Примеры: 72 = 20 минут, 360 = 4 минуты, 1 = 24 часа, 0 = время суток не " -"меняется." - -#: src/settings_translation_file.cpp -msgid "Controls steepness/depth of lake depressions." -msgstr "Регулирует крутизну и глубину впадин в озёрах." - -#: src/settings_translation_file.cpp -msgid "Controls steepness/height of hills." -msgstr "Регулирует крутизну и высоту холмов." - -#: src/settings_translation_file.cpp -msgid "" -"Controls the density of floatland mountain terrain.\n" -"Is an offset added to the 'np_mountain' noise value." -msgstr "" -"Контролирует плотность горной местности парящих островов.\n" -"Является смещением, добавляемым к значению шума 'np_mountain'." - -#: src/settings_translation_file.cpp -msgid "Controls width of tunnels, a smaller value creates wider tunnels." -msgstr "" -"Регулирует ширину туннелей, меньшие значения создают более широкие туннели." - -#: src/settings_translation_file.cpp -msgid "Crash message" -msgstr "Сообщение при падении" - -#: src/settings_translation_file.cpp -msgid "" -"Creates unpredictable lava features in caves.\n" -"These can make mining difficult. Zero disables them. (0-10)" -msgstr "" -"Создаёт непредсказуемую лаву в пещерах.\n" -"Она может затруднить добычу. Ноль отключает это. (0-10)" - -#: src/settings_translation_file.cpp -msgid "" -"Creates unpredictable water features in caves.\n" -"These can make mining difficult. Zero disables them. (0-10)" -msgstr "" -"Создаёт непредсказуемую воду в пещерах.\n" -"Она может затруднить добычу. Ноль отключает это. (0-10)" - -#: src/settings_translation_file.cpp -msgid "Creative" -msgstr "Творческий" - -#: src/settings_translation_file.cpp -msgid "Crosshair alpha" -msgstr "Прозрачность перекрестия" - -#: src/settings_translation_file.cpp -msgid "Crosshair alpha (opaqueness, between 0 and 255)." -msgstr "Прозрачность прицела (от 0 (прозрачно) до 255 (непрозрачно))." - -#: src/settings_translation_file.cpp -msgid "Crosshair color" -msgstr "Цвет перекрестия" - -#: src/settings_translation_file.cpp -msgid "Crosshair color (R,G,B)." -msgstr "Цвет перекрестия (R,G,B)." - -#: src/settings_translation_file.cpp -msgid "Crouch speed" -msgstr "Скорость спуска" - -#: src/settings_translation_file.cpp -msgid "DPI" -msgstr "DPI" - -#: src/settings_translation_file.cpp -msgid "Damage" -msgstr "Урон" - -#: src/settings_translation_file.cpp -msgid "Debug info toggle key" -msgstr "Клавиша переключения показа отладочной информации" - -#: src/settings_translation_file.cpp -msgid "Debug log level" -msgstr "Отладочный уровень" - -#: src/settings_translation_file.cpp -msgid "Dec. volume key" -msgstr "Клавиша уменьшения громкости" - -#: src/settings_translation_file.cpp -msgid "Dedicated server step" -msgstr "Шаг выделенного сервера" - -#: src/settings_translation_file.cpp -msgid "Default acceleration" -msgstr "Ускорение по умолчанию" - -#: src/settings_translation_file.cpp -msgid "Default game" -msgstr "Стандартная игра" - -#: src/settings_translation_file.cpp -msgid "" -"Default game when creating a new world.\n" -"This will be overridden when creating a world from the main menu." -msgstr "" -"Игра по умолчанию при создании нового мира.\n" -"Будет переопределена при создании мира из главного меню." - -#: src/settings_translation_file.cpp -msgid "Default password" -msgstr "Стандартный пароль" - -#: src/settings_translation_file.cpp -msgid "Default privileges" -msgstr "Стандартные права" - -#: src/settings_translation_file.cpp -msgid "Default report format" -msgstr "Формат отчёта по умолчанию" - -#: src/settings_translation_file.cpp -msgid "" -"Default timeout for cURL, stated in milliseconds.\n" -"Only has an effect if compiled with cURL." -msgstr "" -"Стандартный тайм-аут для cURL, установленный в милисекундах.\n" -"Работает только на сборках с cURL." - -#: src/settings_translation_file.cpp -msgid "Defines areas of 'terrain_higher' (cliff-top terrain)." -msgstr "Определяет области 'terrain_higher' (местность на вершинах утёсов)." - -#: src/settings_translation_file.cpp -msgid "" -"Defines areas of floatland smooth terrain.\n" -"Smooth floatlands occur when noise > 0." -msgstr "" -"Определяет области гладкой поверхности на парящих островах.\n" -"Гладкие парящие острова появляются, когда шум больше ноля." - -#: src/settings_translation_file.cpp -msgid "" -"Defines areas of higher (cliff-top) terrain and affects steepness of cliffs." -msgstr "Определяет области возвышений поверхности и влияет на крутизну скал." - -#: src/settings_translation_file.cpp -msgid "Defines areas where trees have apples." -msgstr "Определяет области, где у деревьев есть яблоки." - -#: src/settings_translation_file.cpp -msgid "Defines areas with sandy beaches." -msgstr "Определяет области с песчаными пляжами." - -#: src/settings_translation_file.cpp -msgid "Defines full size of caverns, smaller values create larger caverns." -msgstr "" -"Определяет полный размер пещер, меньшие значения создают большие пещеры." - -#: src/settings_translation_file.cpp -msgid "Defines large-scale river channel structure." -msgstr "Определяет крупномасштабную структуру каналов рек." - -#: src/settings_translation_file.cpp -msgid "Defines location and terrain of optional hills and lakes." -msgstr "Определяет расположение и поверхность дополнительных холмов и озёр." - -#: src/settings_translation_file.cpp -msgid "" -"Defines sampling step of texture.\n" -"A higher value results in smoother normal maps." -msgstr "" -"Определяет шаг выборки текстуры.\n" -"Более высокое значение приводит к более гладким картам нормалей." - -#: src/settings_translation_file.cpp -msgid "Defines the maximal player transfer distance in blocks (0 = unlimited)." -msgstr "" -"Определяет максимальное расстояние перемещения игрока в блоках (0 = " -"неограниченное)." - -#: src/settings_translation_file.cpp -msgid "Defines tree areas and tree density." -msgstr "Определяет области и плотность деревьев." - -#: src/settings_translation_file.cpp -msgid "" -"Delay between mesh updates on the client in ms. Increasing this will slow\n" -"down the rate of mesh updates, thus reducing jitter on slower clients." -msgstr "" -"Задержка между обновлением мешей на клиенте в миллисекундах. Увеличение " -"этого значения\n" -"замедлит темп обновления мешей, тем самым уменьшая колебания FPS на " -"медленных клиентах." - -#: src/settings_translation_file.cpp -msgid "Delay in sending blocks after building" -msgstr "Задержка отправки блоков после строительства" - -#: src/settings_translation_file.cpp -msgid "Delay showing tooltips, stated in milliseconds." -msgstr "Задержка показа подсказок, указанная в миллисекундах." - -#: src/settings_translation_file.cpp -msgid "Deprecated Lua API handling" -msgstr "Обработка устаревшего Lua API" - -#: src/settings_translation_file.cpp -msgid "Depth below which you'll find large caves." -msgstr "Глубина, ниже которой встречаются крупные пещеры." - -#: src/settings_translation_file.cpp -msgid "Depth below which you'll find massive caves." -msgstr "Глубина, ниже которой встречаются огромные пещеры." - -#: src/settings_translation_file.cpp -msgid "Descending speed" -msgstr "Скорость снижения" - -#: src/settings_translation_file.cpp -msgid "" -"Description of server, to be displayed when players join and in the " -"serverlist." -msgstr "" -"Описание сервера, которое будет показано при входе игрока и в списке " -"серверов." - -#: src/settings_translation_file.cpp -msgid "Desert noise threshold" -msgstr "Порог шума пустынь" - -#: src/settings_translation_file.cpp -msgid "" -"Deserts occur when np_biome exceeds this value.\n" -"When the new biome system is enabled, this is ignored." -msgstr "" -"Пустыни появляются, когда np_biome превышает это значение.\n" -"Это игнорируется, когда включена новая система биомов." - -#: src/settings_translation_file.cpp -msgid "Desynchronize block animation" -msgstr "Рассинхронизировать анимацию блоков" - -#: src/settings_translation_file.cpp -msgid "Digging particles" -msgstr "Частицы при рытье" - -#: src/settings_translation_file.cpp -msgid "Disable anticheat" -msgstr "Отключить анти-чит" - -#: src/settings_translation_file.cpp -msgid "Disable escape sequences" -msgstr "Отключить escape-последовательности" - -#: src/settings_translation_file.cpp -msgid "" -"Disable escape sequences, e.g. chat coloring.\n" -"Use this if you want to run a server with pre-0.4.14 clients and you want to " -"disable\n" -"the escape sequences generated by mods." -msgstr "" -"Отключить escape-последовательности, например, цвет в чате.\n" -"Используйте это, если хотите запустить сервер с клиентами версии ниже 0.4." -"14\n" -"и отключить escape-последовательности, генерируемые модами." - -#: src/settings_translation_file.cpp -msgid "Disallow empty passwords" -msgstr "Запретить пустой пароль" - -#: src/settings_translation_file.cpp -msgid "Domain name of server, to be displayed in the serverlist." -msgstr "Доменное имя сервера, отображаемое в списке серверов." - -#: src/settings_translation_file.cpp -msgid "Double tap jump for fly" -msgstr "Полет по двойному прыжку" - -#: src/settings_translation_file.cpp -msgid "Double-tapping the jump key toggles fly mode." -msgstr "Двойное нажатие на прыжок включает режим полёта." - -#: src/settings_translation_file.cpp -msgid "Drop item key" -msgstr "Кнопка выброса блока" - -#: src/settings_translation_file.cpp -msgid "Dump the mapgen debug infos." -msgstr "Дамп отладочной информации генератора мира." - -#: src/settings_translation_file.cpp -msgid "Enable Joysticks" -msgstr "Включить джойстики" - -#: src/settings_translation_file.cpp -msgid "" -"Enable Lua modding support on client.\n" -"This support is experimental and API can change." -msgstr "" -"Включить поддержку Lua-моддинга на клиенте.\n" -"Эта поддержка является экспериментальной и API может измениться." - -#: src/settings_translation_file.cpp -msgid "Enable VBO" -msgstr "Включить VBO" - -#: src/settings_translation_file.cpp -msgid "Enable console window" -msgstr "Включить окно консоли" - -#: src/settings_translation_file.cpp -msgid "Enable creative mode for new created maps." -msgstr "Включить творческий режим для вновь созданных карт." - -#: src/settings_translation_file.cpp -msgid "Enable mod security" -msgstr "Включить защиту модов" - -#: src/settings_translation_file.cpp -msgid "Enable players getting damage and dying." -msgstr "Включает получение игроками урона и их смерть." - -#: src/settings_translation_file.cpp -msgid "Enable random user input (only used for testing)." -msgstr "Включить случайный ввод (используется только для тестирования)." - -#: src/settings_translation_file.cpp -msgid "" -"Enable smooth lighting with simple ambient occlusion.\n" -"Disable for speed or for different looks." -msgstr "" -"Включить мягкое освещение с простым Ambient Occlusion.\n" -"Отключите для более высокой скорости или другого внешнего вида." - -#: src/settings_translation_file.cpp -msgid "" -"Enable to disallow old clients from connecting.\n" -"Older clients are compatible in the sense that they will not crash when " -"connecting\n" -"to new servers, but they may not support all new features that you are " -"expecting." -msgstr "" -"Включите, чтобы запретить подключение старых клиентов.\n" -"Старые клиенты совместимы в том смысле, что они не будут сбоить при " -"подключении\n" -"к новым серверам, однако они могут не поддерживать всех новых функций, " -"которые вы ожидаете." - -#: src/settings_translation_file.cpp -msgid "" -"Enable usage of remote media server (if provided by server).\n" -"Remote servers offer a significantly faster way to download media (e.g. " -"textures)\n" -"when connecting to the server." -msgstr "" -"Включить использование удалённого медиасервера (если предоставляется " -"сервером).\n" -"Удалённые сервера позволяют намного быстрее скачивать медиафайлы (напр. " -"текстуры)\n" -"во время подключения к серверу." - -#: src/settings_translation_file.cpp -msgid "Enable view bobbing" -msgstr "Включить покачивание камеры" - -#: src/settings_translation_file.cpp -msgid "" -"Enable view bobbing and amount of view bobbing.\n" -"For example: 0 for no view bobbing; 1.0 for normal; 2.0 for double." -msgstr "" -"Включить покачивание камеры и установить его значение.\n" -"Например: 0 отключает покачивание, 1.0 для обычного, 2.0 для двойного." - -#: src/settings_translation_file.cpp -msgid "" -"Enable/disable running an IPv6 server. An IPv6 server may be restricted\n" -"to IPv6 clients, depending on system configuration.\n" -"Ignored if bind_address is set." -msgstr "" -"Включить/отключить запуск IPv6-сервера. Сервер IPv6 может быть\n" -"ограничен IPv6-клиентами в зависимости от конфигурации системы.\n" -"Игнорируется, если задан bind_address." - -#: src/settings_translation_file.cpp -msgid "Enables animation of inventory items." -msgstr "Включить анимацию предметов в инвентаре." - -#: src/settings_translation_file.cpp -msgid "" -"Enables bumpmapping for textures. Normalmaps need to be supplied by the " -"texture pack\n" -"or need to be auto-generated.\n" -"Requires shaders to be enabled." -msgstr "" -"Включает бампмаппинг для текстур. Карты нормалей должны быть предоставлены\n" -"пакетом текстур или сгенерированы автоматически.\n" -"Требует, чтобы шейдеры были включены." - -#: src/settings_translation_file.cpp -msgid "Enables caching of facedir rotated meshes." -msgstr "Включает кэширование повёрнутых мешей." - -#: src/settings_translation_file.cpp -msgid "Enables filmic tone mapping" -msgstr "Включить кинематографическое тональное отображение" - -#: src/settings_translation_file.cpp -msgid "Enables minimap." -msgstr "Включить мини-карту." - -#: src/settings_translation_file.cpp -msgid "" -"Enables on the fly normalmap generation (Emboss effect).\n" -"Requires bumpmapping to be enabled." -msgstr "" -"Включает генерацию карт нормалей \"на лету\" (эффект тиснения).\n" -"Требует, чтобы бампмаппинг был включен." - -#: src/settings_translation_file.cpp -msgid "" -"Enables parallax occlusion mapping.\n" -"Requires shaders to be enabled." -msgstr "" -"Включает Parallax Occlusion.\n" -"Требует, чтобы шейдеры были включены." - -#: src/settings_translation_file.cpp -msgid "Enables view bobbing when walking." -msgstr "Включает покачивание камеры при ходьбе." - -#: src/settings_translation_file.cpp -msgid "Engine profiling data print interval" -msgstr "Интервал печати данных профилирования движка" - -#: src/settings_translation_file.cpp -msgid "Entity methods" -msgstr "Методы сущностей" - -#: src/settings_translation_file.cpp -msgid "" -"Experimental option, might cause visible spaces between blocks\n" -"when set to higher number than 0." -msgstr "" -"Экспериментальная опция, может привести к видимым зазорам\n" -"между блоками, когда значение больше, чем 0." - -#: src/settings_translation_file.cpp -msgid "FPS in pause menu" -msgstr "FPS во время паузы" - -#: src/settings_translation_file.cpp -msgid "FSAA" -msgstr "FSAA" - -#: src/settings_translation_file.cpp -msgid "Factor noise" -msgstr "Коэффициент шума" - -#: src/settings_translation_file.cpp -msgid "Fall bobbing factor" -msgstr "Коэффициент покачивания при падении" - -#: src/settings_translation_file.cpp -msgid "Fallback font" -msgstr "Резервный шрифт" - -#: src/settings_translation_file.cpp -msgid "Fallback font shadow" -msgstr "Тень резервного шрифта" - -#: src/settings_translation_file.cpp -msgid "Fallback font shadow alpha" -msgstr "Прозрачность тени резервного шрифта" - -#: src/settings_translation_file.cpp -msgid "Fallback font size" -msgstr "Размер резервного шрифта" - -#: src/settings_translation_file.cpp -msgid "Fast key" -msgstr "Клавиша ускорения" - -#: src/settings_translation_file.cpp -msgid "Fast mode acceleration" -msgstr "Ускорение быстрого перемещения" - -#: src/settings_translation_file.cpp -msgid "Fast mode speed" -msgstr "Скорость быстрого перемещения" - -#: src/settings_translation_file.cpp -msgid "Fast movement" -msgstr "Быстрое перемещение" - -#: src/settings_translation_file.cpp -msgid "" -"Fast movement (via use key).\n" -"This requires the \"fast\" privilege on the server." -msgstr "" -"Быстрое перемещение (с помощью клавиши Использовать).\n" -"Это требует привилегию \"fast\" на сервере." - -#: src/settings_translation_file.cpp -msgid "Field of view" -msgstr "Поле зрения" - -#: src/settings_translation_file.cpp -msgid "Field of view for zoom" -msgstr "Поле зрения в режиме увеличения" - -#: src/settings_translation_file.cpp -msgid "Field of view in degrees." -msgstr "Поле зрения в градусах." - -#: src/settings_translation_file.cpp -msgid "" -"Field of view while zooming in degrees.\n" -"This requires the \"zoom\" privilege on the server." -msgstr "" -"Поле зрения в режиме увеличения в градусах.\n" -"Требует привилегию «zoom» на сервере." - -#: src/settings_translation_file.cpp -msgid "" -"File in client/serverlist/ that contains your favorite servers displayed in " -"the Multiplayer Tab." -msgstr "" -"Файл в директории client/serverlist/, содержащий ваши любимые серверы, " -"отображаемые на вкладке Multiplayer." - -#: src/settings_translation_file.cpp -msgid "Filler Depth" -msgstr "Глубина наполнителя" - -#: src/settings_translation_file.cpp -msgid "Filler depth noise" -msgstr "Шум глубины наполнителя" - -#: src/settings_translation_file.cpp -msgid "Filmic tone mapping" -msgstr "Кинематографическое тональное отображение" - -#: src/settings_translation_file.cpp -msgid "" -"Filtered textures can blend RGB values with fully-transparent neighbors,\n" -"which PNG optimizers usually discard, sometimes resulting in a dark or\n" -"light edge to transparent textures. Apply this filter to clean that up\n" -"at texture load time." -msgstr "" -"Отфильтрованные текстуры могут смешивать значения RGB с полностью\n" -"прозрачными соседними, которые оптимизаторы PNG обычно отбрасывают.\n" -"Иногда это может привести к тёмным или светлым краям полупрозрачных\n" -"текстур. Примените этот фильтр, чтобы исправить текстуру во время загрузки." - -#: src/settings_translation_file.cpp -msgid "Filtering" -msgstr "Фильтрация" - -#: src/settings_translation_file.cpp -msgid "First of 2 3D noises that together define tunnels." -msgstr "Первый из двух 3D-шумов, которые вместе определяют туннели." - -#: src/settings_translation_file.cpp -msgid "Fixed map seed" -msgstr "Фиксированное зерно мира" - -#: src/settings_translation_file.cpp -msgid "Floatland base height noise" -msgstr "Шум базовой высоты парящих островов" - -#: src/settings_translation_file.cpp -msgid "Floatland base noise" -msgstr "Базовый шум парящих островов" - -#: src/settings_translation_file.cpp -msgid "Floatland level" -msgstr "Уровень парящих островов" - -#: src/settings_translation_file.cpp -msgid "Floatland mountain density" -msgstr "Плотность гор на парящих островах" - -#: src/settings_translation_file.cpp -msgid "Floatland mountain height" -msgstr "Высота гор на парящих островах" - -#: src/settings_translation_file.cpp -msgid "Fly key" -msgstr "Кнопка полёта" - -#: src/settings_translation_file.cpp -msgid "Flying" -msgstr "Полёт" - -#: src/settings_translation_file.cpp -msgid "Fog" -msgstr "Туман" - -#: src/settings_translation_file.cpp -msgid "Fog Start" -msgstr "Начало тумана" - -#: src/settings_translation_file.cpp -msgid "Fog toggle key" -msgstr "Клавиша переключения тумана" - -#: src/settings_translation_file.cpp -msgid "Font path" -msgstr "Путь к шрифту" - -#: src/settings_translation_file.cpp -msgid "Font shadow" -msgstr "Тень шрифта" - -#: src/settings_translation_file.cpp -msgid "Font shadow alpha" -msgstr "Прозрачность тени шрифта" - -#: src/settings_translation_file.cpp -msgid "Font shadow alpha (opaqueness, between 0 and 255)." -msgstr "Прозрачность тени шрифта (непрозрачность от 0 до 255)." - -#: src/settings_translation_file.cpp -msgid "Font shadow offset, if 0 then shadow will not be drawn." -msgstr "" -"Смещение тени шрифта. Если установленно в 0, то тень не будет отрисовываться." - -#: src/settings_translation_file.cpp -msgid "Font size" -msgstr "Размер шрифта" - -#: src/settings_translation_file.cpp -msgid "Format of screenshots." -msgstr "Формат скриншотов." - -#: src/settings_translation_file.cpp -msgid "Forward key" -msgstr "Клавиша вперёд" - -#: src/settings_translation_file.cpp -msgid "Fractal type" -msgstr "Тип фрактала" - -#: src/settings_translation_file.cpp -msgid "Fraction of the visible distance at which fog starts to be rendered" -msgstr "Часть видимого расстояния, на которой начинает появляться туман" - -#: src/settings_translation_file.cpp -msgid "Freetype fonts" -msgstr "FreeType шрифты" - -#: src/settings_translation_file.cpp -msgid "" -"From how far blocks are generated for clients, stated in mapblocks (16 " -"nodes)." -msgstr "" -"Насколько далеко генерируются блоки для клиентов. Указывается в блоках (16 " -"узлов)." - -#: src/settings_translation_file.cpp -msgid "" -"From how far blocks are sent to clients, stated in mapblocks (16 nodes)." -msgstr "С какого расстояния блоки отправляются клиентам, в блоках (16 узлов)." - -#: src/settings_translation_file.cpp -msgid "" -"From how far clients know about objects, stated in mapblocks (16 nodes)." -msgstr "С какого расстояния клиенты узнают об объектах, в блоках (16 узлов)." - -#: src/settings_translation_file.cpp -msgid "Full screen" -msgstr "Полный экран" - -#: src/settings_translation_file.cpp -msgid "Full screen BPP" -msgstr "Глубина цвета в полноэкранном режиме" - -#: src/settings_translation_file.cpp -msgid "Fullscreen mode." -msgstr "Полноэкранный режим." - -#: src/settings_translation_file.cpp -msgid "GUI scaling" -msgstr "Масштабирование интерфейса" - -#: src/settings_translation_file.cpp -msgid "GUI scaling filter" -msgstr "Фильтр масштабирования интерфейса" - -#: src/settings_translation_file.cpp -msgid "GUI scaling filter txr2img" -msgstr "txr2img фильтр масштабирования интерфейса" - -#: src/settings_translation_file.cpp -msgid "Game" -msgstr "Игра" - -#: src/settings_translation_file.cpp -msgid "Gamma" -msgstr "Гамма" - -#: src/settings_translation_file.cpp -msgid "General" -msgstr "Общие" - -#: src/settings_translation_file.cpp -msgid "Generate normalmaps" -msgstr "Генерировать карты нормалей" - -#: src/settings_translation_file.cpp -msgid "Global callbacks" -msgstr "Глобальные обратные вызовы" - -#: src/settings_translation_file.cpp -msgid "" -"Global map generation attributes.\n" -"In Mapgen v6 the 'decorations' flag controls all decorations except trees\n" -"and junglegrass, in all other mapgens this flag controls all decorations.\n" -"Flags that are not specified in the flag string are not modified from the " -"default.\n" -"Flags starting with 'no' are used to explicitly disable them." -msgstr "" -"Глобальные атрибуты генерации карты.\n" -"В генераторе карты версии 6 флаг 'decorations' не контролирует деревья\n" -"и траву в джунглях, в остальных генераторах этот флаг контролирует все " -"декорации.\n" -"Флаги, не указанные в строке флагов, остаются в значении по умолчанию.\n" -"Флаги с приставкой 'no' отключают декорации." - -#: src/settings_translation_file.cpp -msgid "Graphics" -msgstr "Графика" - -#: src/settings_translation_file.cpp -msgid "Gravity" -msgstr "Гравитация" - -#: src/settings_translation_file.cpp -msgid "Ground level" -msgstr "Уровень земли" - -#: src/settings_translation_file.cpp -msgid "HTTP Mods" -msgstr "HTTP-моды" - -#: src/settings_translation_file.cpp -msgid "HUD scale factor" -msgstr "Коэффициент масштабирования HUD" - -#: src/settings_translation_file.cpp -msgid "HUD toggle key" -msgstr "Клавиша переключения HUD" - -#: src/settings_translation_file.cpp -msgid "" -"Handling for deprecated lua api calls:\n" -"- legacy: (try to) mimic old behaviour (default for release).\n" -"- log: mimic and log backtrace of deprecated call (default for debug).\n" -"- error: abort on usage of deprecated call (suggested for mod developers)." -msgstr "" -"Обработка для устаревших вызовов lua api:\n" -"- legacy: (иногда успешно) имитирует прежнее поведение (по умолчанию для " -"релиза).\n" -"- log: имитирует и журналирует backtrace(трассировку?след?) устаревших " -"вызовов (по умолчанию для отладки).\n" -"- error: прерывание при использовании устаревших вызовов (рекомендовано " -"для разработчиков модов)." - -#: src/settings_translation_file.cpp -msgid "" -"Have the profiler instrument itself:\n" -"* Instrument an empty function.\n" -"This estimates the overhead, that instrumentation is adding (+1 function " -"call).\n" -"* Instrument the sampler being used to update the statistics." -msgstr "" -"Профилировать сам профилировщик:\n" -"* Замерять пустую функцию.\n" -"Это оценит накладные расходы, добавляемые замерами (+1 вызов функции).\n" -"* Замерять сэмплер, используемый для обновления статистики." - -#: src/settings_translation_file.cpp -msgid "Heat blend noise" -msgstr "Шум смешивания теплоты" - -#: src/settings_translation_file.cpp -msgid "Heat noise" -msgstr "Шум теплоты" - -#: src/settings_translation_file.cpp -msgid "Height component of the initial window size." -msgstr "Высота окна при запуске." - -#: src/settings_translation_file.cpp -msgid "Height noise" -msgstr "Шум высоты" - -#: src/settings_translation_file.cpp -msgid "Height on which clouds are appearing." -msgstr "Высота, на которой появляются облака." - -#: src/settings_translation_file.cpp -msgid "Height select noise" -msgstr "Шум выбора высоты" - -#: src/settings_translation_file.cpp -msgid "High-precision FPU" -msgstr "Высокоточный FPU" - -#: src/settings_translation_file.cpp -msgid "Hill steepness" -msgstr "Крутизна холмов" - -#: src/settings_translation_file.cpp -msgid "Hill threshold" -msgstr "Порог холмов" - -#: src/settings_translation_file.cpp -msgid "Homepage of server, to be displayed in the serverlist." -msgstr "Домашняя страница сервера, отображаемая в списке серверов." - -#: src/settings_translation_file.cpp -msgid "Hotbar next key" -msgstr "Следующий предмет в хотбаре" - -#: src/settings_translation_file.cpp -msgid "Hotbar previous key" -msgstr "Предыдущий предмет в хотбаре" - -#: src/settings_translation_file.cpp -msgid "How deep to make rivers" -msgstr "Глубина рек" - -#: src/settings_translation_file.cpp -msgid "" -"How large area of blocks are subject to the active block stuff, stated in " -"mapblocks (16 nodes).\n" -"In active blocks objects are loaded and ABMs run." -msgstr "" -"Насколько большая область подлежит обработке активных блоков, указанная в " -"блоках (16 узлов).↵\n" -"В активных блоках загружаются объекты и работают модификаторы блоков." - -#: src/settings_translation_file.cpp -msgid "" -"How much the server will wait before unloading unused mapblocks.\n" -"Higher value is smoother, but will use more RAM." -msgstr "" -"Время ожидания сервера до выгрузки неиспользуемых блоков.\n" -"Высокие значения более плавные, но используют больше RAM." - -#: src/settings_translation_file.cpp -msgid "How wide to make rivers" -msgstr "Насколько широкими делать реки" - -#: src/settings_translation_file.cpp -msgid "Humidity blend noise" -msgstr "Шум смешивания влажности" - -#: src/settings_translation_file.cpp -msgid "Humidity noise" -msgstr "Шум влажности" - -#: src/settings_translation_file.cpp -msgid "Humidity variation for biomes." -msgstr "Вариация влажности в биомах." - -#: src/settings_translation_file.cpp -msgid "IPv6" -msgstr "IPv6" - -#: src/settings_translation_file.cpp -msgid "IPv6 server" -msgstr "IPv6 сервер" - -#: src/settings_translation_file.cpp -msgid "IPv6 support." -msgstr "IPv6 поддержка." - -#: src/settings_translation_file.cpp -msgid "" -"If FPS would go higher than this, limit it by sleeping\n" -"to not waste CPU power for no benefit." -msgstr "" -"Если FPS превысит это значение, ограничить его простоем,\n" -"чтобы не тратить мощность процессора впустую." - -#: src/settings_translation_file.cpp -msgid "" -"If disabled \"use\" key is used to fly fast if both fly and fast mode are " -"enabled." -msgstr "" -"Если выключено, кнопка \"Использовать\" используется для быстрого полёта, " -"если одновременно включены быстрый режим и режим полёта." - -#: src/settings_translation_file.cpp -msgid "" -"If enabled the server will perform map block occlusion culling based on\n" -"on the eye position of the player. This can reduce the number of blocks\n" -"sent to the client 50-80%. The client will not longer receive most " -"invisible\n" -"so that the utility of noclip mode is reduced." -msgstr "" -"Если включено, то сервер будет выполнять отсечение блоков, основываясь\n" -"на положении глаз игрока. Это может уменьшить количество пересылаемых\n" -"блоков на 50-80%. Клиент не будет получать большую часть невидимых\n" -"блоков, поэтому режим noclip станет менее полезным." - -#: src/settings_translation_file.cpp -msgid "" -"If enabled together with fly mode, player is able to fly through solid " -"nodes.\n" -"This requires the \"noclip\" privilege on the server." -msgstr "" -"Если включено одновременно с режимом полёта, игрок сможет летать через " -"твёрдые узлы.\n" -"Требует наличие привилегии «noclip» на сервере." - -#: src/settings_translation_file.cpp -msgid "" -"If enabled, \"use\" key instead of \"sneak\" key is used for climbing down " -"and descending." -msgstr "" -"Если включено, то для спуска будет использоваться клавиша «Использовать», а " -"не «Красться»." - -#: src/settings_translation_file.cpp -msgid "" -"If enabled, actions are recorded for rollback.\n" -"This option is only read when server starts." -msgstr "" -"Если включено, действия записываются для отката.\n" -"Этот параметр считывается только при запуске сервера." - -#: src/settings_translation_file.cpp -msgid "If enabled, disable cheat prevention in multiplayer." -msgstr "Если включено, отключается защита от читерства в сетевой игре." - -#: src/settings_translation_file.cpp -msgid "" -"If enabled, invalid world data won't cause the server to shut down.\n" -"Only enable this if you know what you are doing." -msgstr "" -"Если включено, то сервер не выключится из-за повреждённых данных о мире.\n" -"Включайте только в том случае, если знаете, что делаете." - -#: src/settings_translation_file.cpp -msgid "If enabled, new players cannot join with an empty password." -msgstr "" -"Если включено, то новые игроки не смогут подключаться с пустым паролем." - -#: src/settings_translation_file.cpp -msgid "If enabled, show the server status message on player connection." -msgstr "" -"Если включено, то показывать сообщение о статусе сервера при подключении." - -#: src/settings_translation_file.cpp -msgid "" -"If enabled, you can place blocks at the position (feet + eye level) where " -"you stand.\n" -"This is helpful when working with nodeboxes in small areas." -msgstr "" -"Если включено, то вы можете размещать новые блоки на месте игрока.\n" -"Это может быть полезно при строительстве в узких местах." - -#: src/settings_translation_file.cpp -msgid "If this is set, players will always (re)spawn at the given position." -msgstr "Если установлено, то игроки будут (ре)спавниться в указанной позиции." - -#: src/settings_translation_file.cpp -msgid "Ignore world errors" -msgstr "Игнорировать ошибки мира" - -#: src/settings_translation_file.cpp -msgid "In-Game" -msgstr "В игре" - -#: src/settings_translation_file.cpp -msgid "In-game chat console background alpha (opaqueness, between 0 and 255)." -msgstr "Прозрачность фона внутриигровой консоли (непрозрачность от 0 до 255)." - -#: src/settings_translation_file.cpp -msgid "In-game chat console background color (R,G,B)." -msgstr "Цвет фона внутриигровой консоли (R, G, B)." - -#: src/settings_translation_file.cpp -msgid "In-game chat console height, between 0.1 (10%) and 1.0 (100%)." -msgstr "Высота внутриигрового чата, между 0.1 (10%) и 1.0 (100%)." - -#: src/settings_translation_file.cpp -msgid "Inc. volume key" -msgstr "Клавиша увеличения громкости" - -#: src/settings_translation_file.cpp -msgid "" -"Instrument builtin.\n" -"This is usually only needed by core/builtin contributors" -msgstr "" -"Замерять встроенные функции.\n" -"Обычно это нужно тем, кто пишет код для движка" - -#: src/settings_translation_file.cpp -msgid "Instrument chatcommands on registration." -msgstr "Замерять регистрируемые команды в чате." - -#: src/settings_translation_file.cpp -msgid "" -"Instrument global callback functions on registration.\n" -"(anything you pass to a minetest.register_*() function)" -msgstr "" -"Замерять глобальные обратные вызовы\n" -"(всё, что вы передаёте в функции вида minetest.register_*())" - -#: src/settings_translation_file.cpp -msgid "" -"Instrument the action function of Active Block Modifiers on registration." -msgstr "Замерять действие функции модификаторов активных блоков." - -#: src/settings_translation_file.cpp -msgid "" -"Instrument the action function of Loading Block Modifiers on registration." -msgstr "Замерять действие функции модификатора загружающихся блоков." - -#: src/settings_translation_file.cpp -msgid "Instrument the methods of entities on registration." -msgstr "Замерять методы сущностей." - -#: src/settings_translation_file.cpp -msgid "Instrumentation" -msgstr "Замеры" - -#: src/settings_translation_file.cpp -msgid "Interval of saving important changes in the world, stated in seconds." -msgstr "Интервал сохранения важных изменений в мире, установленный в секундах." - -#: src/settings_translation_file.cpp -msgid "Interval of sending time of day to clients." -msgstr "Интервал отправки клиентам сведений о времени дня." - -#: src/settings_translation_file.cpp -msgid "Inventory image hack" -msgstr "Хак с изображениями в инвентаре" - -#: src/settings_translation_file.cpp -msgid "Inventory items animations" -msgstr "Анимация предметов в инвентаре" - -#: src/settings_translation_file.cpp -msgid "Inventory key" -msgstr "Кнопка открытия инвентаря" - -#: src/settings_translation_file.cpp -msgid "Invert mouse" -msgstr "Инвертировать мышь" - -#: src/settings_translation_file.cpp -msgid "Invert vertical mouse movement." -msgstr "Инвертировать мышь по вертикали." - -#: src/settings_translation_file.cpp -msgid "Item entity TTL" -msgstr "Время жизни выброшенной вещи" - -#: src/settings_translation_file.cpp -msgid "Iterations" -msgstr "Итерации" - -#: src/settings_translation_file.cpp -msgid "" -"Iterations of the recursive function.\n" -"Controls the amount of fine detail." -msgstr "" -"Количество итераций рекурсивной функции.\n" -"Контролирует количество мелких деталей." - -#: src/settings_translation_file.cpp -msgid "Joystick ID" -msgstr "Идентификатор джойстика" - -#: src/settings_translation_file.cpp -msgid "Joystick Type" -msgstr "Тип джойстика" - -#: src/settings_translation_file.cpp -msgid "Joystick button repetition interval" -msgstr "Интервал повторного клика кнопкой джойстика" - -#: src/settings_translation_file.cpp -msgid "Joystick frustum sensitivity" -msgstr "Чувствительность джойстика" - -#: src/settings_translation_file.cpp -msgid "" -"Julia set only: W component of hypercomplex constant determining julia " -"shape.\n" -"Has no effect on 3D fractals.\n" -"Range roughly -2 to 2." -msgstr "" -"Только множество Жюлиа: Компонент W гиперкомплексной константы, определяющий " -"форму фрактала Жюлиа.\n" -"Не влияет на 3D-фракталы.\n" -"Диапазон примерно от -2 до 2." - -#: src/settings_translation_file.cpp -msgid "" -"Julia set only: X component of hypercomplex constant determining julia " -"shape.\n" -"Range roughly -2 to 2." -msgstr "" -"Только множество Жюлиа: Компонент X гиперкомплексной константы, определяющей " -"форму фрактала.\n" -"Диапазон примерно от -2 до 2." - -#: src/settings_translation_file.cpp -msgid "" -"Julia set only: Y component of hypercomplex constant determining julia " -"shape.\n" -"Range roughly -2 to 2." -msgstr "" -"Только множество Жюлиа: Компонент Y гиперкомплексной константы, определяющей " -"форму фрактала.\n" -"Диапазон примерно от -2 до 2." - -#: src/settings_translation_file.cpp -msgid "" -"Julia set only: Z component of hypercomplex constant determining julia " -"shape.\n" -"Range roughly -2 to 2." -msgstr "" -"Только множество Жюлиа: Компонент Z гиперкомплексной константы, определяющей " -"форму фрактала.\n" -"Диапазон примерно от -2 до 2." - -#: src/settings_translation_file.cpp -msgid "Julia w" -msgstr "Жюлиа w" - -#: src/settings_translation_file.cpp -msgid "Julia x" -msgstr "Жюлиа x" - -#: src/settings_translation_file.cpp -msgid "Julia y" -msgstr "Жюлиа y" - -#: src/settings_translation_file.cpp -msgid "Julia z" -msgstr "Жюлиа z" - -#: src/settings_translation_file.cpp -msgid "Jump key" -msgstr "Кнопка прыжка" - -#: src/settings_translation_file.cpp -msgid "Jumping speed" -msgstr "Скорость прыжков" - -#: src/settings_translation_file.cpp -msgid "" -"Key for decreasing the viewing range.\n" -"See http://irrlicht.sourceforge.net/docu/namespaceirr." -"html#a54da2a0e231901735e3da1b0edf72eb3" -msgstr "" -"Клавиша уменьшения дистанции видимости.\n" -"См. http://irrlicht.sourceforge.net/docu/namespaceirr.html#a54da2a0e231901735" -"e3da1b0edf72eb3" - -#: src/settings_translation_file.cpp -msgid "" -"Key for decreasing the volume.\n" -"See http://irrlicht.sourceforge.net/docu/namespaceirr." -"html#a54da2a0e231901735e3da1b0edf72eb3" -msgstr "" -"Клавиша уменьшения громкости.\n" -"См. http://irrlicht.sourceforge.net/docu/namespaceirr.html#a54da2a0e231901735" -"e3da1b0edf72eb3" - -#: src/settings_translation_file.cpp -msgid "" -"Key for dropping the currently selected item.\n" -"See http://irrlicht.sourceforge.net/docu/namespaceirr." -"html#a54da2a0e231901735e3da1b0edf72eb3" -msgstr "" -"Клавиша выкинуть выбранный предмет.\n" -"Смотрите http://irrlicht.sourceforge.net/docu/namespaceirr." -"html#a54da2a0e231901735e3da1b0edf72eb3" - -#: src/settings_translation_file.cpp -msgid "" -"Key for increasing the viewing range.\n" -"See http://irrlicht.sourceforge.net/docu/namespaceirr." -"html#a54da2a0e231901735e3da1b0edf72eb3" -msgstr "" -"Клавиша увеличения дистанции видимости.\n" -"См. http://irrlicht.sourceforge.net/docu/namespaceirr.html#a54da2a0e231901735" -"e3da1b0edf72eb3" - -#: src/settings_translation_file.cpp -msgid "" -"Key for increasing the volume.\n" -"See http://irrlicht.sourceforge.net/docu/namespaceirr." -"html#a54da2a0e231901735e3da1b0edf72eb3" -msgstr "" -"Клавиша увеличения громкости.\n" -"См. http://irrlicht.sourceforge.net/docu/namespaceirr.html#a54da2a0e231901735" -"e3da1b0edf72eb3" - -#: src/settings_translation_file.cpp -msgid "" -"Key for jumping.\n" -"See http://irrlicht.sourceforge.net/docu/namespaceirr." -"html#a54da2a0e231901735e3da1b0edf72eb3" -msgstr "" -"Клавиша прыжка.\n" -"Смотрите http://irrlicht.sourceforge.net/docu/namespaceirr." -"html#a54da2a0e231901735e3da1b0edf72eb3" - -#: src/settings_translation_file.cpp -msgid "" -"Key for moving fast in fast mode.\n" -"See http://irrlicht.sourceforge.net/docu/namespaceirr." -"html#a54da2a0e231901735e3da1b0edf72eb3" -msgstr "" -"Клавиша, включающая режим быстрого перемещения.\n" -"См. http://irrlicht.sourceforge.net/docu/namespaceirr.html#a54da2a0e231901735" -"e3da1b0edf72eb3" - -#: src/settings_translation_file.cpp -msgid "" -"Key for moving the player backward.\n" -"See http://irrlicht.sourceforge.net/docu/namespaceirr." -"html#a54da2a0e231901735e3da1b0edf72eb3" -msgstr "" -"Клавиша движения назад.\n" -"Смотрите http://irrlicht.sourceforge.net/docu/namespaceirr." -"html#a54da2a0e231901735e3da1b0edf72eb3" - -#: src/settings_translation_file.cpp -msgid "" -"Key for moving the player forward.\n" -"See http://irrlicht.sourceforge.net/docu/namespaceirr." -"html#a54da2a0e231901735e3da1b0edf72eb3" -msgstr "" -"Клавиша движения вперед.\n" -"Смотрите http://irrlicht.sourceforge.net/docu/namespaceirr." -"html#a54da2a0e231901735e3da1b0edf72eb3" - -#: src/settings_translation_file.cpp -msgid "" -"Key for moving the player left.\n" -"See http://irrlicht.sourceforge.net/docu/namespaceirr." -"html#a54da2a0e231901735e3da1b0edf72eb3" -msgstr "" -"Клавиша движения влево.\n" -"Смотрите http://irrlicht.sourceforge.net/docu/namespaceirr." -"html#a54da2a0e231901735e3da1b0edf72eb3" - -#: src/settings_translation_file.cpp -msgid "" -"Key for moving the player right.\n" -"See http://irrlicht.sourceforge.net/docu/namespaceirr." -"html#a54da2a0e231901735e3da1b0edf72eb3" -msgstr "" -"Клавиша движения вправо.\n" -"Смотрите http://irrlicht.sourceforge.net/docu/namespaceirr." -"html#a54da2a0e231901735e3da1b0edf72eb3" - -#: src/settings_translation_file.cpp -msgid "" -"Key for muting the game.\n" -"See http://irrlicht.sourceforge.net/docu/namespaceirr." -"html#a54da2a0e231901735e3da1b0edf72eb3" -msgstr "" -"Клавиша отключения звука в игре.\n" -"См. http://irrlicht.sourceforge.net/docu/namespaceirr.html#a54da2a0e231901735" -"e3da1b0edf72eb3" - -#: src/settings_translation_file.cpp -msgid "" -"Key for opening the chat console.\n" -"See http://irrlicht.sourceforge.net/docu/namespaceirr." -"html#a54da2a0e231901735e3da1b0edf72eb3" -msgstr "" -"Клавиша открытия чат-консоли.\n" -"Смотрите http://irrlicht.sourceforge.net/docu/namespaceirr." -"html#a54da2a0e231901735e3da1b0edf72eb3" - -#: src/settings_translation_file.cpp -msgid "" -"Key for opening the chat window to type commands.\n" -"See http://irrlicht.sourceforge.net/docu/namespaceirr." -"html#a54da2a0e231901735e3da1b0edf72eb3" -msgstr "" -"Клавиша открытия окна чата для ввода комманды.\n" -"Смотрите http://irrlicht.sourceforge.net/docu/namespaceirr." -"html#a54da2a0e231901735e3da1b0edf72eb3" - -#: src/settings_translation_file.cpp -msgid "" -"Key for opening the chat window to type local commands.\n" -"See http://irrlicht.sourceforge.net/docu/namespaceirr." -"html#a54da2a0e231901735e3da1b0edf72eb3" -msgstr "" -"Клавиша открытия окна чата для ввода локальных команд.\n" -"См. http://irrlicht.sourceforge.net/docu/namespaceirr.html#a54da2a0e231901735" -"e3da1b0edf72eb3" - -#: src/settings_translation_file.cpp -msgid "" -"Key for opening the chat window.\n" -"See http://irrlicht.sourceforge.net/docu/namespaceirr." -"html#a54da2a0e231901735e3da1b0edf72eb3" -msgstr "" -"Клавиша открытия окна чата.\n" -"Смотрите http://irrlicht.sourceforge.net/docu/namespaceirr." -"html#a54da2a0e231901735e3da1b0edf72eb3" - -#: src/settings_translation_file.cpp -msgid "" -"Key for opening the inventory.\n" -"See http://irrlicht.sourceforge.net/docu/namespaceirr." -"html#a54da2a0e231901735e3da1b0edf72eb3" -msgstr "" -"Клавиша открытия инвентаря.\n" -"Смотрите http://irrlicht.sourceforge.net/docu/namespaceirr." -"html#a54da2a0e231901735e3da1b0edf72eb3" - -#: src/settings_translation_file.cpp -msgid "" -"Key for printing debug stacks. Used for development.\n" -"See http://irrlicht.sourceforge.net/docu/namespaceirr." -"html#a54da2a0e231901735e3da1b0edf72eb3" -msgstr "" -"Клавиша для печати отладочных стеков. Используется для разработки.\n" -"См. http://irrlicht.sourceforge.net/docu/namespaceirr.html#a54da2a0e231901735" -"e3da1b0edf72eb3" - -#: src/settings_translation_file.cpp -msgid "" -"Key for selecting the next item in the hotbar.\n" -"See http://irrlicht.sourceforge.net/docu/namespaceirr." -"html#a54da2a0e231901735e3da1b0edf72eb3" -msgstr "" -"Клавиша выбора следующего предмета в хотбаре.\n" -"См. http://irrlicht.sourceforge.net/docu/namespaceirr.html#a54da2a0e231901735" -"e3da1b0edf72eb3" - -#: src/settings_translation_file.cpp -msgid "" -"Key for selecting the previous item in the hotbar.\n" -"See http://irrlicht.sourceforge.net/docu/namespaceirr." -"html#a54da2a0e231901735e3da1b0edf72eb3" -msgstr "" -"Клавиша выбора предыдущего предмета в хотбаре.\n" -"Смотрите http://irrlicht.sourceforge.net/docu/namespaceirr.html#a54da2a0e2319" -"01735e3da1b0edf72eb3" - -#: src/settings_translation_file.cpp -msgid "" -"Key for sneaking.\n" -"Also used for climbing down and descending in water if aux1_descends is " -"disabled.\n" -"See http://irrlicht.sourceforge.net/docu/namespaceirr." -"html#a54da2a0e231901735e3da1b0edf72eb3" -msgstr "" -"Клавиша красться.\n" -"Также используется для спуска и погружения под воду, если aux1_descends " -"отключена.\n" -"Смотрите http://irrlicht.sourceforge.net/docu/namespaceirr." -"html#a54da2a0e231901735e3da1b0edf72eb3" - -#: src/settings_translation_file.cpp -msgid "" -"Key for switching between first- and third-person camera.\n" -"See http://irrlicht.sourceforge.net/docu/namespaceirr." -"html#a54da2a0e231901735e3da1b0edf72eb3" -msgstr "" -"Клавиша переключения вида от первого и от третьего лица.\n" -"Смотрите http://irrlicht.sourceforge.net/docu/namespaceirr." -"html#a54da2a0e231901735e3da1b0edf72eb3" - -#: src/settings_translation_file.cpp -msgid "" -"Key for taking screenshots.\n" -"See http://irrlicht.sourceforge.net/docu/namespaceirr." -"html#a54da2a0e231901735e3da1b0edf72eb3" -msgstr "" -"Клавиша снятия скриншота.\n" -"Смотрите http://irrlicht.sourceforge.net/docu/namespaceirr." -"html#a54da2a0e231901735e3da1b0edf72eb3" - -#: src/settings_translation_file.cpp -msgid "" -"Key for toggling autorun.\n" -"See http://irrlicht.sourceforge.net/docu/namespaceirr." -"html#a54da2a0e231901735e3da1b0edf72eb3" -msgstr "" -"Клавиша переключения режима постоянной ходьбы.\n" -"См. http://irrlicht.sourceforge.net/docu/namespaceirr.html#a54da2a0e231901735" -"e3da1b0edf72eb3" - -#: src/settings_translation_file.cpp -msgid "" -"Key for toggling cinematic mode.\n" -"See http://irrlicht.sourceforge.net/docu/namespaceirr." -"html#a54da2a0e231901735e3da1b0edf72eb3" -msgstr "" -"Клавиша переключения кинематографического режима.\n" -"Смотрите http://irrlicht.sourceforge.net/docu/namespaceirr." -"html#a54da2a0e231901735e3da1b0edf72eb3" - -#: src/settings_translation_file.cpp -msgid "" -"Key for toggling display of minimap.\n" -"See http://irrlicht.sourceforge.net/docu/namespaceirr." -"html#a54da2a0e231901735e3da1b0edf72eb3" -msgstr "" -"Клавиша переключения отображения миникарты.\n" -"Смотрите http://irrlicht.sourceforge.net/docu/namespaceirr." -"html#a54da2a0e231901735e3da1b0edf72eb3" - -#: src/settings_translation_file.cpp -msgid "" -"Key for toggling fast mode.\n" -"See http://irrlicht.sourceforge.net/docu/namespaceirr." -"html#a54da2a0e231901735e3da1b0edf72eb3" -msgstr "" -"Клавиша переключения режима быстрого перемещения.\n" -"Смотрите http://irrlicht.sourceforge.net/docu/namespaceirr." -"html#a54da2a0e231901735e3da1b0edf72eb3" - -#: src/settings_translation_file.cpp -msgid "" -"Key for toggling flying.\n" -"See http://irrlicht.sourceforge.net/docu/namespaceirr." -"html#a54da2a0e231901735e3da1b0edf72eb3" -msgstr "" -"Клавиша переключения режима полета.\n" -"Смотрите http://irrlicht.sourceforge.net/docu/namespaceirr." -"html#a54da2a0e231901735e3da1b0edf72eb3" - -#: src/settings_translation_file.cpp -msgid "" -"Key for toggling noclip mode.\n" -"See http://irrlicht.sourceforge.net/docu/namespaceirr." -"html#a54da2a0e231901735e3da1b0edf72eb3" -msgstr "" -"Клавиша переключения режима проверки столкновений.\n" -"Смотрите http://irrlicht.sourceforge.net/docu/namespaceirr." -"html#a54da2a0e231901735e3da1b0edf72eb3" - -#: src/settings_translation_file.cpp -msgid "" -"Key for toggling the camera update. Only used for development\n" -"See http://irrlicht.sourceforge.net/docu/namespaceirr." -"html#a54da2a0e231901735e3da1b0edf72eb3" -msgstr "" -"Клавиша выключения обновлений камеры. Используется только для разработки\n" -"См. http://irrlicht.sourceforge.net/docu/namespaceirr.html#a54da2a0e231901735" -"e3da1b0edf72eb3" - -#: src/settings_translation_file.cpp -msgid "" -"Key for toggling the display of debug info.\n" -"See http://irrlicht.sourceforge.net/docu/namespaceirr." -"html#a54da2a0e231901735e3da1b0edf72eb3" -msgstr "" -"Клавиша переключения показа отладочной информации.\n" -"Смотрите http://irrlicht.sourceforge.net/docu/namespaceirr." -"html#a54da2a0e231901735e3da1b0edf72eb3" - -#: src/settings_translation_file.cpp -msgid "" -"Key for toggling the display of the HUD.\n" -"See http://irrlicht.sourceforge.net/docu/namespaceirr." -"html#a54da2a0e231901735e3da1b0edf72eb3" -msgstr "" -"Клавиша переключения отображения HUD.\n" -"Смотрите http://irrlicht.sourceforge.net/docu/namespaceirr." -"html#a54da2a0e231901735e3da1b0edf72eb3" - -#: src/settings_translation_file.cpp -msgid "" -"Key for toggling the display of the chat.\n" -"See http://irrlicht.sourceforge.net/docu/namespaceirr." -"html#a54da2a0e231901735e3da1b0edf72eb3" -msgstr "" -"Клавиша переключения отображения чата.\n" -"Смотрите http://irrlicht.sourceforge.net/docu/namespaceirr." -"html#a54da2a0e231901735e3da1b0edf72eb3" - -#: src/settings_translation_file.cpp -msgid "" -"Key for toggling the display of the fog.\n" -"See http://irrlicht.sourceforge.net/docu/namespaceirr." -"html#a54da2a0e231901735e3da1b0edf72eb3" -msgstr "" -"Клавиша переключения отображения тумана.\n" -"Смотрите http://irrlicht.sourceforge.net/docu/namespaceirr." -"html#a54da2a0e231901735e3da1b0edf72eb3" - -#: src/settings_translation_file.cpp -msgid "" -"Key for toggling the display of the large chat console.\n" -"See http://irrlicht.sourceforge.net/docu/namespaceirr." -"html#a54da2a0e231901735e3da1b0edf72eb3" -msgstr "" -"Клавиша переключения отображения большого чата.\n" -"См. http://irrlicht.sourceforge.net/docu/namespaceirr.html#a54da2a0e231901735" -"e3da1b0edf72eb3" - -#: src/settings_translation_file.cpp -msgid "" -"Key for toggling the display of the profiler. Used for development.\n" -"See http://irrlicht.sourceforge.net/docu/namespaceirr." -"html#a54da2a0e231901735e3da1b0edf72eb3" -msgstr "" -"Клавиша для переключения отображения профилировщика. Используется для " -"разработки.\n" -"См. http://irrlicht.sourceforge.net/docu/namespaceirr.html#a54da2a0e231901735" -"e3da1b0edf72eb3" - -#: src/settings_translation_file.cpp -msgid "" -"Key for toggling unlimited view range.\n" -"See http://irrlicht.sourceforge.net/docu/namespaceirr." -"html#a54da2a0e231901735e3da1b0edf72eb3" -msgstr "" -"Клавиша отключения ограничения зоны видимости.\n" -"Смотрите http://irrlicht.sourceforge.net/docu/namespaceirr." -"html#a54da2a0e231901735e3da1b0edf72eb3" - -#: src/settings_translation_file.cpp -msgid "" -"Key to use view zoom when possible.\n" -"See http://irrlicht.sourceforge.net/docu/namespaceirr." -"html#a54da2a0e231901735e3da1b0edf72eb3" -msgstr "" -"Клавиша режима увеличения.\n" -"См. http://irrlicht.sourceforge.net/docu/namespaceirr.html#a54da2a0e231901735" -"e3da1b0edf72eb3" - -#: src/settings_translation_file.cpp -msgid "Key use for climbing/descending" -msgstr "Клавиша для подъема/спуска" - -#: src/settings_translation_file.cpp -msgid "Lake steepness" -msgstr "Крутизна озёр" - -#: src/settings_translation_file.cpp -msgid "Lake threshold" -msgstr "Порог озёр" - -#: src/settings_translation_file.cpp -msgid "Language" -msgstr "Язык" - -#: src/settings_translation_file.cpp -msgid "Large cave depth" -msgstr "Глубина больших пещер" - -#: src/settings_translation_file.cpp -msgid "Large chat console key" -msgstr "Кнопка вызова консоли" - -#: src/settings_translation_file.cpp -msgid "Lava Features" -msgstr "Лава" - -#: src/settings_translation_file.cpp -msgid "Leaves style" -msgstr "Стиль листвы" - -#: src/settings_translation_file.cpp -msgid "" -"Leaves style:\n" -"- Fancy: all faces visible\n" -"- Simple: only outer faces, if defined special_tiles are used\n" -"- Opaque: disable transparency" -msgstr "" -"Стили листвы:\n" -"- Fancy: включена прозрачность, все стороны видны\n" -"- Simple: прозрачность включена, видны только внешние стороны, если " -"используются special_tiles\n" -"- Opaque: прозрачность отключена" - -#: src/settings_translation_file.cpp -msgid "Left key" -msgstr "Кнопка выхода" - -#: src/settings_translation_file.cpp -msgid "" -"Length of a server tick and the interval at which objects are generally " -"updated over network." -msgstr "" -"Длина серверного тика и интервал, на котором объекты, как правило, " -"обновляются по сети." - -#: src/settings_translation_file.cpp -msgid "Length of time between ABM execution cycles" -msgstr "Время между циклами выполнения модификаторов активных блоков" - -#: src/settings_translation_file.cpp -msgid "Length of time between NodeTimer execution cycles" -msgstr "Время между циклами выполнения таймеров узлов" - -#: src/settings_translation_file.cpp -msgid "" -"Level of logging to be written to debug.txt:\n" -"- (no logging)\n" -"- none (messages with no level)\n" -"- error\n" -"- warning\n" -"- action\n" -"- info\n" -"- verbose" -msgstr "" -"Уровень логов для записи в debug.txt:\n" -"- (нет логов)\n" -"- none (сообщения без уровня)\n" -"- error (ошибки)\n" -"- warning (предупреждения)\n" -"- action (действия)\n" -"- info (информация)\n" -"- verbose (подробности)" - -#: src/settings_translation_file.cpp -msgid "Limit of emerge queues on disk" -msgstr "Ограничение очередей emerge на диске" - -#: src/settings_translation_file.cpp -msgid "Limit of emerge queues to generate" -msgstr "Ограничение очередей emerge для генерации" - -#: src/settings_translation_file.cpp -msgid "" -"Limit of map generation, in nodes, in all 6 directions from (0, 0, 0).\n" -"Only mapchunks completely within the mapgen limit are generated.\n" -"Value is stored per-world." -msgstr "" -"Предел генерации карты, в узлах, во всех шести направлениях от (0, 0, 0).\n" -"Генерируются только блоки, которые умещаются в заданном пределе полностью.\n" -"Значение сохраняется отдельно для каждого мира." - -#: src/settings_translation_file.cpp -msgid "" -"Limits number of parallel HTTP requests. Affects:\n" -"- Media fetch if server uses remote_media setting.\n" -"- Serverlist download and server announcement.\n" -"- Downloads performed by main menu (e.g. mod manager).\n" -"Only has an effect if compiled with cURL." -msgstr "" -"Ограничивает количество параллельных HTTP-запросов. Влияет на:\n" -"- Загрузку медиаданных, если сервер использует параметр remote_media.\n" -"- Загрузку списка серверов и их анонсирование.\n" -"- Загрузки, выполняемые в главном меню (например, в менеджере модов).\n" -"Действует только при компиляции с включенной поддержкой cURL." - -#: src/settings_translation_file.cpp -msgid "Liquid fluidity" -msgstr "Текучесть жидкости" - -#: src/settings_translation_file.cpp -msgid "Liquid fluidity smoothing" -msgstr "Сглаживание текучести жидкостей" - -#: src/settings_translation_file.cpp -msgid "Liquid loop max" -msgstr "Максимальное количество зацикленных жидкостей" - -#: src/settings_translation_file.cpp -msgid "Liquid queue purge time" -msgstr "Время очистки очереди жидкостей" - -#: src/settings_translation_file.cpp -msgid "Liquid sink" -msgstr "Утекание воды" - -#: src/settings_translation_file.cpp -msgid "Liquid update interval in seconds." -msgstr "Интервал обновления жидкостей в секундах." - -#: src/settings_translation_file.cpp -msgid "Liquid update tick" -msgstr "Интервал обновления жидкостей" - -#: src/settings_translation_file.cpp -msgid "Load the game profiler" -msgstr "Загружать профилировщик игры" - -#: src/settings_translation_file.cpp -msgid "" -"Load the game profiler to collect game profiling data.\n" -"Provides a /profiler command to access the compiled profile.\n" -"Useful for mod developers and server operators." -msgstr "" -"Загружать профилировщик игры для собирания профилирующей информации.\n" -"Предоставляет команду /profiler для доступа к скомпилированному профилю.\n" -"Полезно для разработчиков модов и операторов сервера." - -#: src/settings_translation_file.cpp -msgid "Loading Block Modifiers" -msgstr "Модификаторы загружающихся блоков" - -#: src/settings_translation_file.cpp -msgid "Main menu game manager" -msgstr "Менеджер игр в главном меню" - -#: src/settings_translation_file.cpp -msgid "Main menu mod manager" -msgstr "Мод менеджер главного меню" - -#: src/settings_translation_file.cpp -msgid "Main menu script" -msgstr "Скрипт главного меню" - -#: src/settings_translation_file.cpp -msgid "" -"Make fog and sky colors depend on daytime (dawn/sunset) and view direction." -msgstr "" -"Включить зависимость цвета тумана и облаков от времени суток (рассвет/закат)." - -#: src/settings_translation_file.cpp -msgid "Makes DirectX work with LuaJIT. Disable if it causes troubles." -msgstr "" -"Заставляет DirectX работать с LuaJIT. Отключите, если это вызывает проблемы." - -#: src/settings_translation_file.cpp -msgid "Makes all liquids opaque" -msgstr "Сделать все жидкости непрозрачными" - -#: src/settings_translation_file.cpp -msgid "Map directory" -msgstr "Каталог сохранения карт" - -#: src/settings_translation_file.cpp -msgid "" -"Map generation attributes specific to Mapgen Valleys.\n" -"'altitude_chill' makes higher elevations colder, which may cause biome " -"issues.\n" -"'humid_rivers' modifies the humidity around rivers and in areas where water " -"would tend to pool,\n" -"it may interfere with delicately adjusted biomes.\n" -"Flags that are not specified in the flag string are not modified from the " -"default.\n" -"Flags starting with 'no' are used to explicitly disable them." -msgstr "" -"Атрибуты генерации карты, относящиеся к Valleys.\n" -"'altitude_chill' делает высоты холоднее, что может привести к проблемам с " -"биомами.\n" -"'humid_rivers' изменяет влажность вокруг рек, и в областях, где скапливается " -"вода,\n" -"он может вмешиваться в тонко настроенные биомы.\n" -"Флаги, не указанные в строке флагов, остаются в значении по умолчанию.\n" -"Флаги с приставкой 'no' явно отключают их." - -#: src/settings_translation_file.cpp -msgid "" -"Map generation attributes specific to Mapgen flat.\n" -"Occasional lakes and hills can be added to the flat world.\n" -"Flags that are not specified in the flag string are not modified from the " -"default.\n" -"Flags starting with 'no' are used to explicitly disable them." -msgstr "" -"Атрибуты генерации карты, относящиеся к генератору плоской карты.\n" -"Случайные озёра и холмы могут быть добавлены в плоский мир.\n" -"Флаги, не указанные в строке флагов, остаются в значении по умолчанию.\n" -"Флаги с приставкой 'no' явно отключают их." - -#: src/settings_translation_file.cpp -msgid "" -"Map generation attributes specific to Mapgen v5.\n" -"Flags that are not specified in the flag string are not modified from the " -"default.\n" -"Flags starting with 'no' are used to explicitly disable them." -msgstr "" -"Атрибуты генерации карты, относящиеся к генератору карты версии 5.\n" -"Флаги, не указанные в строке флагов, остаются в значении по умолчанию.\n" -"Флаги с приставкой 'no' явно отключают их." - -#: src/settings_translation_file.cpp -msgid "" -"Map generation attributes specific to Mapgen v6.\n" -"The 'snowbiomes' flag enables the new 5 biome system.\n" -"When the new biome system is enabled jungles are automatically enabled and\n" -"the 'jungles' flag is ignored.\n" -"Flags that are not specified in the flag string are not modified from the " -"default.\n" -"Flags starting with 'no' are used to explicitly disable them." -msgstr "" -"Атрибуты генерации карты, относящиеся к генератору карты версии 6.\n" -"Флаг 'snowbiomes' включает новую систему биомов.\n" -"Когда включена новая система биомов, джунгли включаются автоматически\n" -"и флаг 'jungles' игнорируется.\n" -"Флаги, не указанные в строке флагов, остаются в значении по умолчанию.\n" -"Флаги с приставкой 'no' явно отключают их." - -#: src/settings_translation_file.cpp -msgid "" -"Map generation attributes specific to Mapgen v7.\n" -"The 'ridges' flag enables the rivers.\n" -"Floatlands are currently experimental and subject to change.\n" -"Flags that are not specified in the flag string are not modified from the " -"default.\n" -"Flags starting with 'no' are used to explicitly disable them." -msgstr "" -"Атрибуты генерации карты, относящиеся к генератору карты версии 7.\n" -"Флаг 'ridges' включает реки.\n" -"Парящие острова являются экспериментальными и могут изменяться.\n" -"Флаги, не указанные в строке флагов, остаются в значении по умолчанию.\n" -"Флаги с приставкой 'no' явно отключают их." - -#: src/settings_translation_file.cpp -msgid "Map generation limit" -msgstr "Предел генерации карты" - -#: src/settings_translation_file.cpp -msgid "Map save interval" -msgstr "Интервал сохранения карты" - -#: src/settings_translation_file.cpp -msgid "Mapblock limit" -msgstr "Предел блока" - -#: src/settings_translation_file.cpp -msgid "Mapblock mesh generation delay" -msgstr "Задержка в генерации мешей блоков" - -#: src/settings_translation_file.cpp -msgid "Mapblock mesh generator's MapBlock cache size MB" -msgstr "Размер кэша блоков в генераторе мешей в МБ" - -#: src/settings_translation_file.cpp -msgid "Mapblock unload timeout" -msgstr "Таймаут выгрузки блоков" - -#: src/settings_translation_file.cpp -msgid "Mapgen Valleys" -msgstr "Генератор карты Valleys" - -#: src/settings_translation_file.cpp -msgid "Mapgen debug" -msgstr "Дебаггинг генератора карты" - -#: src/settings_translation_file.cpp -msgid "Mapgen flags" -msgstr "Флаги генератора карты" - -#: src/settings_translation_file.cpp -msgid "Mapgen flat" -msgstr "Генератор плоской карты" - -#: src/settings_translation_file.cpp -msgid "Mapgen flat specific flags" -msgstr "Флаги генератора плоской карты" - -#: src/settings_translation_file.cpp -msgid "Mapgen fractal" -msgstr "Генератор фрактальной карты" - -#: src/settings_translation_file.cpp -msgid "Mapgen name" -msgstr "Название генератора карты" - -#: src/settings_translation_file.cpp -msgid "Mapgen v5" -msgstr "Генератор карты версии 5" - -#: src/settings_translation_file.cpp -msgid "Mapgen v5 specific flags" -msgstr "Флаги генератора карты версии 5" - -#: src/settings_translation_file.cpp -msgid "Mapgen v6" -msgstr "Генератор карты версии 6" - -#: src/settings_translation_file.cpp -msgid "Mapgen v6 specific flags" -msgstr "Флаги генератора карты версии 6" - -#: src/settings_translation_file.cpp -msgid "Mapgen v7" -msgstr "Генератор карты версии 7" - -#: src/settings_translation_file.cpp -msgid "Mapgen v7 specific flags" -msgstr "Флаги генератора карты версии 7" - -#: src/settings_translation_file.cpp -msgid "Massive cave depth" -msgstr "Глубина огромных пещер" - -#: src/settings_translation_file.cpp -msgid "Massive cave noise" -msgstr "Шум огромных пещер" - -#: src/settings_translation_file.cpp -msgid "Massive caves form here." -msgstr "Огромные пещеры образуются здесь." - -#: src/settings_translation_file.cpp -msgid "Max block generate distance" -msgstr "Максимальное расстояние генерации блоков" - -#: src/settings_translation_file.cpp -msgid "Max block send distance" -msgstr "Максимальное расстояние отправки блоков" - -#: src/settings_translation_file.cpp -msgid "Max liquids processed per step." -msgstr "Максимальное количество обработанных жидкостей за шаг." - -#: src/settings_translation_file.cpp -msgid "Max. clearobjects extra blocks" -msgstr "Количество дополнительно загружаемых блоков clearobjects" - -#: src/settings_translation_file.cpp -msgid "Max. packets per iteration" -msgstr "Максимальное количество пакетов за итерацию" - -#: src/settings_translation_file.cpp -msgid "Maximum FPS" -msgstr "Максимальный FPS" - -#: src/settings_translation_file.cpp -msgid "Maximum FPS when game is paused." -msgstr "Максимальный FPS в режиме паузы." - -#: src/settings_translation_file.cpp -msgid "Maximum forceloaded blocks" -msgstr "Максимальное количество принудительно загруженных блоков" - -#: src/settings_translation_file.cpp -msgid "Maximum hotbar width" -msgstr "Максимальная ширина хотбара" - -#: src/settings_translation_file.cpp -msgid "Maximum number of blocks that are simultaneously sent in total." -msgstr "Максимальное количество одновременно отправляемых блоков." - -#: src/settings_translation_file.cpp -msgid "Maximum number of blocks that are simultaneously sent per client." -msgstr "Количество блоков, передаваемых одновременно для каждого клиента." - -#: src/settings_translation_file.cpp -msgid "Maximum number of blocks that can be queued for loading." -msgstr "" -"Максимальное количество блоков, которые могут быть помещены в очередь для " -"загрузки." - -#: src/settings_translation_file.cpp -msgid "" -"Maximum number of blocks to be queued that are to be generated.\n" -"Set to blank for an appropriate amount to be chosen automatically." -msgstr "" -"Максимальное количество блоков в очереди на генерацию. Оставьте пустым для " -"автоматического выбора подходящего значения." - -#: src/settings_translation_file.cpp -msgid "" -"Maximum number of blocks to be queued that are to be loaded from file.\n" -"Set to blank for an appropriate amount to be chosen automatically." -msgstr "" -"Максимальное количество блоков в очереди на загрузку из файла. Оставьте " -"пустым для автоматического выбора подходящего значения." - -#: src/settings_translation_file.cpp -msgid "Maximum number of forceloaded mapblocks." -msgstr "Максимальное количество принудительно загруженных блоков." - -#: src/settings_translation_file.cpp -msgid "" -"Maximum number of mapblocks for client to be kept in memory.\n" -"Set to -1 for unlimited amount." -msgstr "" -"Максимальное количество блоков в памяти клиента.\n" -"Установите в -1 для бесконечного количества." - -#: src/settings_translation_file.cpp -msgid "" -"Maximum number of packets sent per send step, if you have a slow connection\n" -"try reducing it, but don't reduce it to a number below double of targeted\n" -"client number." -msgstr "" -"Максимальное количество пакетов, отправляемых за шаг. Если у вас медленное " -"подключение,\n" -"попробуйте уменьшить его, но не устанавливайте ниже значения клиента, " -"умноженного на два." - -#: src/settings_translation_file.cpp -msgid "Maximum number of players that can connect simultaneously." -msgstr "Максимальное количество одновременно подключающихся клиентов." - -#: src/settings_translation_file.cpp -msgid "Maximum number of statically stored objects in a block." -msgstr "Максимальное количество статически хранимых объектов в блоке." - -#: src/settings_translation_file.cpp -msgid "Maximum objects per block" -msgstr "Максимальное количество объектов на блок" - -#: src/settings_translation_file.cpp -msgid "" -"Maximum proportion of current window to be used for hotbar.\n" -"Useful if there's something to be displayed right or left of hotbar." -msgstr "" -"Максимальная доля окна, используемая для хотбара.\n" -"Полезно, если что-то будет отображаться справа или слева от него." - -#: src/settings_translation_file.cpp -msgid "Maximum simultaneous block sends per client" -msgstr "Максимальное количество одновременных отправлений блоков на клиент" - -#: src/settings_translation_file.cpp -msgid "Maximum simultaneous block sends total" -msgstr "Максимальное количество одновременных отправлений блоков в общем" - -#: src/settings_translation_file.cpp -msgid "Maximum time in ms a file download (e.g. a mod download) may take." -msgstr "" -"Максимум времени (в миллисекундах), которое может занять загрузка (например, " -"мода)." - -#: src/settings_translation_file.cpp -msgid "Maximum users" -msgstr "Максимальное количество пользователей" - -#: src/settings_translation_file.cpp -msgid "Menus" -msgstr "Меню" - -#: src/settings_translation_file.cpp -msgid "Mesh cache" -msgstr "Кэш мешей" - -#: src/settings_translation_file.cpp -msgid "Message of the day" -msgstr "Сообщение дня" - -#: src/settings_translation_file.cpp -msgid "Message of the day displayed to players connecting." -msgstr "Сообщение, отображаемое подключившимся игрокам." - -#: src/settings_translation_file.cpp -msgid "Method used to highlight selected object." -msgstr "Метод подсветки выделенного объекта." - -#: src/settings_translation_file.cpp -msgid "Minimap" -msgstr "Миникарта" - -#: src/settings_translation_file.cpp -msgid "Minimap key" -msgstr "Клавиша переключения миникарты" - -#: src/settings_translation_file.cpp -msgid "Minimap scan height" -msgstr "Высота сканирования миникарты" - -#: src/settings_translation_file.cpp -msgid "Minimum texture size for filters" -msgstr "Минимальный размер текстуры для фильтров" - -#: src/settings_translation_file.cpp -msgid "Mipmapping" -msgstr "Mip-текстурирование (Мип-маппинг)" - -#: src/settings_translation_file.cpp -#, fuzzy -msgid "Modifies the size of the hudbar elements." -msgstr "Изменяет размер элементов hudbar." - -#: src/settings_translation_file.cpp -msgid "Modstore details URL" -msgstr "URL информации о модах" - -#: src/settings_translation_file.cpp -msgid "Modstore download URL" -msgstr "URL для скачивания модов" - -#: src/settings_translation_file.cpp -msgid "Modstore mods list URL" -msgstr "URL списка модов" - -#: src/settings_translation_file.cpp -msgid "Monospace font path" -msgstr "Путь к моноширинному шрифту" - -#: src/settings_translation_file.cpp -msgid "Monospace font size" -msgstr "Размер моноширинного шрифта" - -#: src/settings_translation_file.cpp -msgid "Mountain height noise" -msgstr "Шум высоты гор" - -#: src/settings_translation_file.cpp -msgid "Mountain noise" -msgstr "Шум гор" - -#: src/settings_translation_file.cpp -msgid "Mouse sensitivity" -msgstr "Чувствительность мыши" - -#: src/settings_translation_file.cpp -msgid "Mouse sensitivity multiplier." -msgstr "Множитель чувствительности мыши." - -#: src/settings_translation_file.cpp -msgid "Mud noise" -msgstr "Шум грязи" - -#: src/settings_translation_file.cpp -msgid "" -"Multiplier for fall bobbing.\n" -"For example: 0 for no view bobbing; 1.0 for normal; 2.0 for double." -msgstr "" -"Множитель для покачивания при падении.\n" -"Например: 0 отключает покачивание; 1.0 для обычного; 2.0 для двойного." - -#: src/settings_translation_file.cpp -msgid "Mute key" -msgstr "Клавиша отключения звука" - -#: src/settings_translation_file.cpp -msgid "" -"Name of map generator to be used when creating a new world.\n" -"Creating a world in the main menu will override this." -msgstr "" -"Название генератора карты, используемого при создании мира.\n" -"Создание мира из главного меню переопределит это." - -#: src/settings_translation_file.cpp -msgid "" -"Name of the player.\n" -"When running a server, clients connecting with this name are admins.\n" -"When starting from the main menu, this is overridden." -msgstr "" -"Имя игрока.\n" -"На сервере клиент с этим именем будет админом.\n" -"Будет переопределено при запуске из главного меню." - -#: src/settings_translation_file.cpp -msgid "" -"Name of the server, to be displayed when players join and in the serverlist." -msgstr "Имя сервера, отображаемое при входе и в списке серверов." - -#: src/settings_translation_file.cpp -msgid "Network" -msgstr "Сеть" - -#: src/settings_translation_file.cpp -msgid "" -"Network port to listen (UDP).\n" -"This value will be overridden when starting from the main menu." -msgstr "" -"Сетевой порт для прослушивания (UDP).\n" -"Этот параметр будет переопределён, если запускать сервер с главного меню." - -#: src/settings_translation_file.cpp -msgid "New users need to input this password." -msgstr "Новым пользователям нужно вводить этот пароль." - -#: src/settings_translation_file.cpp -msgid "Noclip" -msgstr "Отключить столкновения" - -#: src/settings_translation_file.cpp -msgid "Noclip key" -msgstr "Клавиша отключения столкновений" - -#: src/settings_translation_file.cpp -msgid "Node highlighting" -msgstr "Подсветка нод" - -#: src/settings_translation_file.cpp -msgid "NodeTimer interval" -msgstr "Интервал обновления узлов" - -#: src/settings_translation_file.cpp -msgid "Noises" -msgstr "Шумы" - -#: src/settings_translation_file.cpp -msgid "Normalmaps sampling" -msgstr "Выборка карт нормалей" - -#: src/settings_translation_file.cpp -msgid "Normalmaps strength" -msgstr "Сила карт нормалей" - -#: src/settings_translation_file.cpp -msgid "Number of emerge threads" -msgstr "Количество emerge-потоков" - -#: src/settings_translation_file.cpp -msgid "" -"Number of emerge threads to use. Make this field blank, or increase this " -"number\n" -"to use multiple threads. On multiprocessor systems, this will improve mapgen " -"speed greatly\n" -"at the cost of slightly buggy caves." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Number of extra blocks that can be loaded by /clearobjects at once.\n" -"This is a trade-off between sqlite transaction overhead and\n" -"memory consumption (4096=100MB, as a rule of thumb)." -msgstr "" -"Количество дополнительных блоков, которые могут сразу быть загружены " -"/clearobjects.\n" -"Это компромисс между накладными расходами на транзакции SQLite и " -"потреблением\n" -"памяти (4096=100 MБ, как правило)." - -#: src/settings_translation_file.cpp -msgid "Number of parallax occlusion iterations." -msgstr "Количество итераций Parallax Occlusion." - -#: src/settings_translation_file.cpp -msgid "Offset" -msgstr "Смещение" - -#: src/settings_translation_file.cpp -msgid "Opaque liquids" -msgstr "Непрозрачные жидкости" - -#: src/settings_translation_file.cpp -msgid "Overall bias of parallax occlusion effect, usually scale/2." -msgstr "Общее смещение эффекта Parallax Occlusion, обычно масштаб/2." - -#: src/settings_translation_file.cpp -msgid "Overall scale of parallax occlusion effect." -msgstr "Общее смещение эффекта Parallax Occlusion." - -#: src/settings_translation_file.cpp -msgid "Parallax occlusion" -msgstr "Включить параллакс" - -#: src/settings_translation_file.cpp -msgid "Parallax occlusion Scale" -msgstr "Масштаб параллакса" - -#: src/settings_translation_file.cpp -msgid "Parallax occlusion bias" -msgstr "Смещение параллакса" - -#: src/settings_translation_file.cpp -msgid "Parallax occlusion iterations" -msgstr "Повторение параллакса" - -#: src/settings_translation_file.cpp -msgid "Parallax occlusion mode" -msgstr "Режим параллакса" - -#: src/settings_translation_file.cpp -msgid "Parallax occlusion strength" -msgstr "Сила параллакса" - -#: src/settings_translation_file.cpp -msgid "Path to TrueTypeFont or bitmap." -msgstr "Путь к шрифту TrueType или картинке со шрифтом." - -#: src/settings_translation_file.cpp -msgid "Path to save screenshots at." -msgstr "Путь для сохранения скриншотов." - -#: src/settings_translation_file.cpp -msgid "" -"Path to shader directory. If no path is defined, default location will be " -"used." -msgstr "" -"Путь к директории с шейдерами. Если не задан, то будет использоваться путь " -"по умолчанию." - -#: src/settings_translation_file.cpp -msgid "Path to texture directory. All textures are first searched from here." -msgstr "" -"Путь до каталога с текстурами. Все текстуры в первую очередь берутся от сюда." - -#: src/settings_translation_file.cpp -msgid "Physics" -msgstr "Физика" - -#: src/settings_translation_file.cpp -msgid "" -"Player is able to fly without being affected by gravity.\n" -"This requires the \"fly\" privilege on the server." -msgstr "" -"Игрок может летать без влияния гравитации.\n" -"Это требует привилегии \"fly\" на сервере." - -#: src/settings_translation_file.cpp -msgid "Player name" -msgstr "Имя игрока" - -#: src/settings_translation_file.cpp -msgid "Player transfer distance" -msgstr "Расстояние передачи игрока" - -#: src/settings_translation_file.cpp -msgid "Player versus Player" -msgstr "Игрок против Игрока" - -#: src/settings_translation_file.cpp -msgid "" -"Port to connect to (UDP).\n" -"Note that the port field in the main menu overrides this setting." -msgstr "" -"Порт, к которому подключиться (UDP).\n" -"Имейте ввиду, что поле ввода порта в главном меню переопределяет эту " -"настройку." - -#: src/settings_translation_file.cpp -msgid "Prevent mods from doing insecure things like running shell commands." -msgstr "" -"Не допускать модам выполнение небезопасных вещей, например выполнение " -"консольных команд." - -#: src/settings_translation_file.cpp -msgid "" -"Print the engine's profiling data in regular intervals (in seconds). 0 = " -"disable. Useful for developers." -msgstr "" -"Печатать информацию о профилировании через заданные интервалы (в секундах). " -"0 = отключить. Полезно для разработчиков." - -#: src/settings_translation_file.cpp -msgid "Privileges that players with basic_privs can grant" -msgstr "Привилегии, доступные игрокам с basic_privs" - -#: src/settings_translation_file.cpp -msgid "Profiler" -msgstr "Профилировщик" - -#: src/settings_translation_file.cpp -msgid "Profiler toggle key" -msgstr "Клавиша переключения профилировщика" - -#: src/settings_translation_file.cpp -msgid "Profiling" -msgstr "Профилирование" - -#: src/settings_translation_file.cpp -msgid "" -"Radius of cloud area stated in number of 64 node cloud squares.\n" -"Values larger than 26 will start to produce sharp cutoffs at cloud area " -"corners." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Raises terrain to make valleys around the rivers" -msgstr "Поднимает местность, чтобы образовать долины вдоль рек" - -#: src/settings_translation_file.cpp -msgid "Random input" -msgstr "Случайный ввод" - -#: src/settings_translation_file.cpp -msgid "Range select key" -msgstr "Кнопка настройки дальности видимости" - -#: src/settings_translation_file.cpp -msgid "Remote media" -msgstr "Удалённый медиасервер" - -#: src/settings_translation_file.cpp -msgid "Remote port" -msgstr "Удаленный порт" - -#: src/settings_translation_file.cpp -msgid "Replaces the default main menu with a custom one." -msgstr "Заменять главное меню на пользовательское." - -#: src/settings_translation_file.cpp -#, fuzzy -msgid "Report path" -msgstr "Путь к шрифту" - -#: src/settings_translation_file.cpp -msgid "Ridge noise" -msgstr "Шум хребтов" - -#: src/settings_translation_file.cpp -msgid "Ridge underwater noise" -msgstr "Шум подводных хребтов" - -#: src/settings_translation_file.cpp -msgid "Right key" -msgstr "Правая клавиша меню" - -#: src/settings_translation_file.cpp -msgid "Rightclick repetition interval" -msgstr "Интервал повторного клика правой кнопкой" - -#: src/settings_translation_file.cpp -msgid "River Depth" -msgstr "Глубина рек" - -#: src/settings_translation_file.cpp -msgid "River Noise" -msgstr "Шум рек" - -#: src/settings_translation_file.cpp -msgid "River Size" -msgstr "Размер рек" - -#: src/settings_translation_file.cpp -msgid "River noise -- rivers occur close to zero" -msgstr "Шум рек; реки встречаются ближе к нулю" - -#: src/settings_translation_file.cpp -msgid "Rollback recording" -msgstr "Запись отката" - -#: src/settings_translation_file.cpp -msgid "Round minimap" -msgstr "Круглая миникарта" - -#: src/settings_translation_file.cpp -msgid "Sandy beaches occur when np_beach exceeds this value." -msgstr "Песчаные пляжи появляются, когда np_beach превышает это значение." - -#: src/settings_translation_file.cpp -msgid "Save the map received by the client on disk." -msgstr "Сохранение карты, полученной от клиента на диск." - -#: src/settings_translation_file.cpp -msgid "Saving map received from server" -msgstr "Сохранение карты, полученной с сервера" - -#: src/settings_translation_file.cpp -msgid "Scale" -msgstr "Масштаб" - -#: src/settings_translation_file.cpp -msgid "" -"Scale gui by a user specified value.\n" -"Use a nearest-neighbor-anti-alias filter to scale the GUI.\n" -"This will smooth over some of the rough edges, and blend\n" -"pixels when scaling down, at the cost of blurring some\n" -"edge pixels when images are scaled by non-integer sizes." -msgstr "" -"Масштабировать интерфейс, используя заданное пользователем значение.\n" -"Использовать метод ближайшего соседа и антиалиасинг, чтобы масштабировать " -"интерфейс.\n" -"Это сгладит некоторые острые углы и смешает пиксели при уменьшении масштаба, " -"за счет\n" -"размывания пикселей на гранях при масштабировании на нецелые размеры." - -#: src/settings_translation_file.cpp -msgid "Screen height" -msgstr "Высота экрана" - -#: src/settings_translation_file.cpp -msgid "Screen width" -msgstr "Ширина экрана" - -#: src/settings_translation_file.cpp -msgid "Screenshot" -msgstr "Cкриншот" - -#: src/settings_translation_file.cpp -msgid "Screenshot folder" -msgstr "Каталог со скриншотами" - -#: src/settings_translation_file.cpp -msgid "Screenshot format" -msgstr "Формат скриншота" - -#: src/settings_translation_file.cpp -msgid "Screenshot quality" -msgstr "Качество скриншота" - -#: src/settings_translation_file.cpp -msgid "" -"Screenshot quality. Only used for JPEG format.\n" -"1 means worst quality; 100 means best quality.\n" -"Use 0 for default quality." -msgstr "" -"Качество скриншота. Используется только для изображений в формате JPEG.\n" -"1 означает худшее качество; 100 означает лучшее качество.\n" -"Используйте 0 для настроек по умолчанию." - -#: src/settings_translation_file.cpp -#, fuzzy -msgid "Seabed noise" -msgstr "Шум пещеры #1" - -#: src/settings_translation_file.cpp -msgid "Second of 2 3D noises that together define tunnels." -msgstr "Второй из двух 3D-шумов, которые вместе определяют туннели." - -#: src/settings_translation_file.cpp -msgid "Security" -msgstr "Безопасность" - -#: src/settings_translation_file.cpp -msgid "See http://www.sqlite.org/pragma.html#pragma_synchronous" -msgstr "Смотрите http://www.sqlite.org/pragma.html#pragma_synchronous" - -#: src/settings_translation_file.cpp -msgid "Selection box border color (R,G,B)." -msgstr "Цвет рамки выделения (R, G, B)." - -#: src/settings_translation_file.cpp -msgid "Selection box color" -msgstr "Цвет выделения" - -#: src/settings_translation_file.cpp -msgid "Selection box width" -msgstr "Толщина рамки выделения" - -#: src/settings_translation_file.cpp -msgid "Server / Singleplayer" -msgstr "Сервер / одиночная игра" - -#: src/settings_translation_file.cpp -msgid "Server URL" -msgstr "URL сервера" - -#: src/settings_translation_file.cpp -msgid "Server address" -msgstr "Адрес сервера" - -#: src/settings_translation_file.cpp -msgid "Server description" -msgstr "Описание сервера" - -#: src/settings_translation_file.cpp -msgid "Server name" -msgstr "Имя сервера" - -#: src/settings_translation_file.cpp -msgid "Server port" -msgstr "Порт сервера" - -#: src/settings_translation_file.cpp -msgid "Server side occlusion culling" -msgstr "Отсечение невидимой геометрии на стороне сервера" - -#: src/settings_translation_file.cpp -msgid "Serverlist URL" -msgstr "Адрес списка серверов" - -#: src/settings_translation_file.cpp -msgid "Serverlist file" -msgstr "Файл списка серверов" - -#: src/settings_translation_file.cpp -msgid "" -"Set the language. Leave empty to use the system language.\n" -"A restart is required after changing this." -msgstr "" -"Установка языка. Оставьте пустым для использования системного языка.\n" -"Требует перезапуска после изменения." - -#: src/settings_translation_file.cpp -msgid "" -"Set to true enables waving leaves.\n" -"Requires shaders to be enabled." -msgstr "" -"Установка в true включает покачивание листвы.\n" -"Требует, чтобы шейдеры были включены." - -#: src/settings_translation_file.cpp -msgid "" -"Set to true enables waving plants.\n" -"Requires shaders to be enabled." -msgstr "" -"Установка в true включает покачивание растений.\n" -"Требует, чтобы шейдеры были включены." - -#: src/settings_translation_file.cpp -msgid "" -"Set to true enables waving water.\n" -"Requires shaders to be enabled." -msgstr "" -"Установка в true включает волны на воде.\n" -"Требует, чтобы шейдеры были включены." - -#: src/settings_translation_file.cpp -msgid "Shader path" -msgstr "Путь к шейдерам" - -#: src/settings_translation_file.cpp -msgid "" -"Shaders allow advanced visual effects and may increase performance on some " -"video cards.\n" -"This only works with the OpenGL video backend." -msgstr "" -"Шейдеры позволяют использовать дополнительные визуальные эффекты и могут " -"увеличить производительность на некоторых видеокартах.\n" -"Они работают только с бэкендом OpenGL." - -#: src/settings_translation_file.cpp -msgid "Shadow limit" -msgstr "Лимит теней" - -#: src/settings_translation_file.cpp -msgid "Shape of the minimap. Enabled = round, disabled = square." -msgstr "Форма миникарты. Включено = круг, выключено = квадрат." - -#: src/settings_translation_file.cpp -msgid "Show debug info" -msgstr "Показывать отладочную информацию" - -#: src/settings_translation_file.cpp -msgid "Show entity selection boxes" -msgstr "Показывать выделение энтити" - -#: src/settings_translation_file.cpp -msgid "Shutdown message" -msgstr "Сообщение о выключении" - -#: src/settings_translation_file.cpp -msgid "" -"Size of chunks to be generated at once by mapgen, stated in mapblocks (16 " -"nodes)." -msgstr "Размер чанка, генерируемого за один раз, указанный в блоках (16 узлов)." - -#: src/settings_translation_file.cpp -msgid "" -"Size of the MapBlock cache of the mesh generator. Increasing this will\n" -"increase the cache hit %, reducing the data being copied from the main\n" -"thread, thus reducing jitter." -msgstr "" -"Размер кэша блоков в генераторе мешей. Увеличение этого значения\n" -"увеличит процент попаданий в кэш, предотвращая копирование информации\n" -"из основного потока игры, тем самым уменьшая колебания FPS." - -#: src/settings_translation_file.cpp -msgid "Slice w" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Slope and fill work together to modify the heights" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Small-scale humidity variation for blending biomes on borders." -msgstr "Мелкие вариации влажности для смешивания биомов на границах." - -#: src/settings_translation_file.cpp -msgid "Small-scale temperature variation for blending biomes on borders." -msgstr "Мелкие вариации температуры для смешивания биомов на границах." - -#: src/settings_translation_file.cpp -msgid "Smooth lighting" -msgstr "Мягкое освещение" - -#: src/settings_translation_file.cpp -msgid "" -"Smooths camera when looking around. Also called look or mouse smoothing.\n" -"Useful for recording videos." -msgstr "" -"Сглаживать движения камеры при её повороте. Также называется сглаживанием " -"движений мыши.\n" -"Это может быть полезно при записи видео." - -#: src/settings_translation_file.cpp -msgid "Smooths rotation of camera in cinematic mode. 0 to disable." -msgstr "Плавное вращение камеры в кинематографическом режиме. 0 для отключения." - -#: src/settings_translation_file.cpp -msgid "Smooths rotation of camera. 0 to disable." -msgstr "Плавное вращение камеры. 0 для отключения." - -#: src/settings_translation_file.cpp -msgid "Sneak key" -msgstr "Красться" - -#: src/settings_translation_file.cpp -msgid "Sound" -msgstr "Звук" - -#: src/settings_translation_file.cpp -msgid "" -"Specifies URL from which client fetches media instead of using UDP.\n" -"$filename should be accessible from $remote_media$filename via cURL\n" -"(obviously, remote_media should end with a slash).\n" -"Files that are not present will be fetched the usual way." -msgstr "" -"Указывает URL с которого клиент будет качать медиа-файлы вместо " -"использования UDP.\n" -"$filename должен быть доступен по адресу $remote_demia$filename через cURL\n" -"(remote_media должен заканчиваться слешем).\n" -"Файлы, которых не будет, будут скачены обычным путём." - -#: src/settings_translation_file.cpp -msgid "Static spawnpoint" -msgstr "Постоянная точка возрождения" - -#: src/settings_translation_file.cpp -msgid "Status message on connection" -msgstr "Сообщение статуса при подключении" - -#: src/settings_translation_file.cpp -msgid "Steepness noise" -msgstr "Шум крутизны" - -#: src/settings_translation_file.cpp -msgid "Strength of generated normalmaps." -msgstr "Сила сгенерированных карт нормалей." - -#: src/settings_translation_file.cpp -msgid "Strength of parallax." -msgstr "Сила параллакса." - -#: src/settings_translation_file.cpp -msgid "Strict protocol checking" -msgstr "Строгая проверка протокола" - -#: src/settings_translation_file.cpp -msgid "Support older servers" -msgstr "Поддержка старых серверов" - -#: src/settings_translation_file.cpp -msgid "Synchronous SQLite" -msgstr "Синхронный SQLite" - -#: src/settings_translation_file.cpp -msgid "Temperature variation for biomes." -msgstr "Вариация температур в биомах." - -#: src/settings_translation_file.cpp -msgid "Terrain Height" -msgstr "Высота местности" - -#: src/settings_translation_file.cpp -msgid "Terrain alt noise" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Terrain base noise" -msgstr "Базовый шум поверхности" - -#: src/settings_translation_file.cpp -msgid "Terrain higher noise" -msgstr "Шум высокой местности" - -#: src/settings_translation_file.cpp -msgid "Terrain noise" -msgstr "Шум поверхности" - -#: src/settings_translation_file.cpp -msgid "" -"Terrain noise threshold for hills.\n" -"Controls proportion of world area covered by hills.\n" -"Adjust towards 0.0 for a larger proportion." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Terrain noise threshold for lakes.\n" -"Controls proportion of world area covered by lakes.\n" -"Adjust towards 0.0 for a larger proportion." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Terrain persistence noise" -msgstr "Шум постоянности ландшафта" - -#: src/settings_translation_file.cpp -msgid "Texture path" -msgstr "Путь к текстурам" - -#: src/settings_translation_file.cpp -msgid "The altitude at which temperature drops by 20C" -msgstr "Высота, на которой температура падает на 20 °C" - -#: src/settings_translation_file.cpp -msgid "" -"The default format in which profiles are being saved,\n" -"when calling `/profiler save [format]` without format." -msgstr "" -"Стандартный формат, в котором профили будут сохранены,\n" -"когда вызывают '/profiler save [формат]' без формата." - -#: src/settings_translation_file.cpp -msgid "The depth of dirt or other filler" -msgstr "Глубина земли или другого наполнителя" - -#: src/settings_translation_file.cpp -msgid "" -"The file path relative to your worldpath in which profiles will be saved to." -msgstr "" -"Путь к файлу относительно пути к вашему миру, в который будут сохранены " -"профили." - -#: src/settings_translation_file.cpp -msgid "The identifier of the joystick to use" -msgstr "Идентификатор используемого джойстика" - -#: src/settings_translation_file.cpp -msgid "The network interface that the server listens on." -msgstr "Сетевой интерфейс, который слушает сервер." - -#: src/settings_translation_file.cpp -msgid "" -"The privileges that new users automatically get.\n" -"See /privs in game for a full list on your server and mod configuration." -msgstr "" -"Привилегии, автоматически получаемые новым пользователем.\n" -"Смотрите /privs для получения полного списка привилегий." - -#: src/settings_translation_file.cpp -msgid "The rendering back-end for Irrlicht." -msgstr "Бэкенд Irrlicht для рендеринга." - -#: src/settings_translation_file.cpp -msgid "" -"The sensitivity of the joystick axes for moving the\n" -"ingame view frustum around." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"The strength (darkness) of node ambient-occlusion shading.\n" -"Lower is darker, Higher is lighter. The valid range of values for this\n" -"setting is 0.25 to 4.0 inclusive. If the value is out of range it will be\n" -"set to the nearest valid value." -msgstr "" -"Сила затенения Ambient Occlusion. Чем меньше, тем темнее,\n" -"и наоборот. Возможные значения параметра - от 0.25 до 4.0\n" -"включительно. Если значение находится вне этого диапазона,\n" -"то оно будет округлено до ближайшего корректного." - -#: src/settings_translation_file.cpp -msgid "" -"The time (in seconds) that the liquids queue may grow beyond processing\n" -"capacity until an attempt is made to decrease its size by dumping old queue\n" -"items. A value of 0 disables the functionality." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"The time in seconds it takes between repeated events\n" -"when holding down a joystick button combination." -msgstr "" -"Время в секундах между повторяющимися событиями,\n" -"когда зажата комбинация кнопок на джойстике." - -#: src/settings_translation_file.cpp -msgid "" -"The time in seconds it takes between repeated right clicks when holding the " -"right mouse button." -msgstr "Задержка в секундах между кликами при зажатой правой кнопке мыши." - -#: src/settings_translation_file.cpp -msgid "The type of joystick" -msgstr "Тип джойстика" - -#: src/settings_translation_file.cpp -msgid "This font will be used for certain languages." -msgstr "Этот шрифт будет использован для некоторых языков." - -#: src/settings_translation_file.cpp -msgid "Time in between active block management cycles" -msgstr "Время между циклами управления активными блоками" - -#: src/settings_translation_file.cpp -msgid "" -"Time in seconds for item entity (dropped items) to live.\n" -"Setting it to -1 disables the feature." -msgstr "" -"Время жизни выброшенных предметов в секундах.\n" -"Установите в -1 для отключения этой функции." - -#: src/settings_translation_file.cpp -msgid "Time send interval" -msgstr "Интервал отправки времени" - -#: src/settings_translation_file.cpp -msgid "Time speed" -msgstr "Скорость хода времени" - -#: src/settings_translation_file.cpp -msgid "Timeout for client to remove unused map data from memory." -msgstr "" -"Время, после которого клиент удаляет из памяти неиспользуемую информацию о " -"карте." - -#: src/settings_translation_file.cpp -msgid "" -"To reduce lag, block transfers are slowed down when a player is building " -"something.\n" -"This determines how long they are slowed down after placing or removing a " -"node." -msgstr "" -"Чтобы уменьшить лаг, передача блоков замедляется, когда игрок что-то строит." -"\n" -"Этот параметр определяет, насколько она замедляется после размещения или " -"удаления узла." - -#: src/settings_translation_file.cpp -msgid "Toggle camera mode key" -msgstr "Клавиша переключения режима камеры" - -#: src/settings_translation_file.cpp -msgid "Tooltip delay" -msgstr "Задержка подсказки" - -#: src/settings_translation_file.cpp -msgid "Trees noise" -msgstr "Шум деревьев" - -#: src/settings_translation_file.cpp -msgid "Trilinear filtering" -msgstr "Трилинейная фильтрация" - -#: src/settings_translation_file.cpp -msgid "" -"True = 256\n" -"False = 128\n" -"Useable to make minimap smoother on slower machines." -msgstr "" -"True = 256\n" -"False = 128\n" -"Полезно для обеспечения плавности миникарты на медленных машинах." - -#: src/settings_translation_file.cpp -msgid "Trusted mods" -msgstr "Доверенные моды" - -#: src/settings_translation_file.cpp -msgid "" -"Typical maximum height, above and below midpoint, of floatland mountain " -"terrain." -msgstr "Типичная максимальная высота горной местности парящих островов." - -#: src/settings_translation_file.cpp -msgid "URL to the server list displayed in the Multiplayer Tab." -msgstr "URL списка серверов, отображающийся во вкладке Мультиплеер." - -#: src/settings_translation_file.cpp -msgid "Undersampling" -msgstr "Undersampling" - -#: src/settings_translation_file.cpp -msgid "" -"Undersampling is similar to using lower screen resolution, but it applies\n" -"to the game world only, keeping the GUI intact.\n" -"It should give significant performance boost at the cost of less detailed " -"image." -msgstr "" -"Undersampling похож на использование низкого разрешения экрана, но он\n" -"применяется только к игровому миру, оставляя интерфейс нетронутым.\n" -"Он должен дать существенное увеличение производительности за счёт менее " -"детального изображения." - -#: src/settings_translation_file.cpp -msgid "Unlimited player transfer distance" -msgstr "Неограниченное расстояние перемещения игрока" - -#: src/settings_translation_file.cpp -msgid "Unload unused server data" -msgstr "Выгружать неиспользуемые сервером данные" - -#: src/settings_translation_file.cpp -msgid "Use 3D cloud look instead of flat." -msgstr "Объемные облака вместо плоских." - -#: src/settings_translation_file.cpp -msgid "Use a cloud animation for the main menu background." -msgstr "Анимированные облака в главном меню." - -#: src/settings_translation_file.cpp -msgid "Use anisotropic filtering when viewing at textures from an angle." -msgstr "Использовать анизотропную фильтрацию про взгляде на текстуры под углом." - -#: src/settings_translation_file.cpp -msgid "Use bilinear filtering when scaling textures." -msgstr "Использовать билинейную фильтрацию для масштабирования текстур." - -#: src/settings_translation_file.cpp -msgid "Use key" -msgstr "Клавиша Использовать" - -#: src/settings_translation_file.cpp -msgid "Use mip mapping to scale textures. May slightly increase performance." -msgstr "" -"Использовать мипмаппинг для масштабирования текстур. Может немного увеличить " -"производительность." - -#: src/settings_translation_file.cpp -msgid "Use trilinear filtering when scaling textures." -msgstr "Использовать трилинейную фильтрацию для масштабирования текстур." - -#: src/settings_translation_file.cpp -msgid "V-Sync" -msgstr "Вертикальная синхронизация" - -#: src/settings_translation_file.cpp -msgid "VBO" -msgstr "VBO" - -#: src/settings_translation_file.cpp -msgid "Valley Depth" -msgstr "Глубина долин" - -#: src/settings_translation_file.cpp -#, fuzzy -msgid "Valley Fill" -msgstr "Заполнение долин" - -#: src/settings_translation_file.cpp -msgid "Valley Profile" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Valley Slope" -msgstr "Уклон долин" - -#: src/settings_translation_file.cpp -msgid "Valleys C Flags" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Variation of biome filler depth." -msgstr "Вариация глубины наполнителя биома." - -#: src/settings_translation_file.cpp -msgid "Variation of hill height and lake depth on floatland smooth terrain." -msgstr "" -"Вариация высоты холмов и глубин озёр на гладкой местности парящих островов." - -#: src/settings_translation_file.cpp -msgid "Variation of maximum mountain height (in nodes)." -msgstr "Вариация максимальной высоты гор (в узлах)." - -#: src/settings_translation_file.cpp -msgid "Variation of number of caves." -msgstr "Вариация количества пещер." - -#: src/settings_translation_file.cpp -msgid "" -"Variation of terrain vertical scale.\n" -"When noise is < -0.55 terrain is near-flat." -msgstr "" -"Вариация вертикального масштабирования поверхности.\n" -"Поверхность становится почти плоской, когда шум меньше -0.55." - -#: src/settings_translation_file.cpp -msgid "Varies depth of biome surface nodes." -msgstr "Варьирует глубину поверхностных узлов биома." - -#: src/settings_translation_file.cpp -msgid "" -"Varies roughness of terrain.\n" -"Defines the 'persistence' value for terrain_base and terrain_alt noises." -msgstr "" -"Варьирует неровность поверхности.\n" -"Определяет значение 'persistence' для шумов terrain_base и terrain_alt." - -#: src/settings_translation_file.cpp -msgid "Varies steepness of cliffs." -msgstr "Регулирует крутизну утёсов." - -#: src/settings_translation_file.cpp -msgid "Vertical screen synchronization." -msgstr "Вертикальная синхронизация." - -#: src/settings_translation_file.cpp -msgid "Video driver" -msgstr "Видеодрайвер" - -#: src/settings_translation_file.cpp -msgid "View bobbing factor" -msgstr "Коэффициент покачивания" - -#: src/settings_translation_file.cpp -msgid "View distance in nodes." -msgstr "Дальность отрисовки в узлах." - -#: src/settings_translation_file.cpp -msgid "View range decrease key" -msgstr "Клавиша уменьшения видимого диапазона" - -#: src/settings_translation_file.cpp -msgid "View range increase key" -msgstr "Клавиша увеличения видимого диапазона" - -#: src/settings_translation_file.cpp -msgid "View zoom key" -msgstr "Клавиша режима увеличения" - -#: src/settings_translation_file.cpp -msgid "Viewing range" -msgstr "Дистанция отрисовки" - -#: src/settings_translation_file.cpp -msgid "Volume" -msgstr "Громкость" - -#: src/settings_translation_file.cpp -msgid "" -"W co-ordinate of the generated 3D slice of a 4D fractal.\n" -"Determines which 3D slice of the 4D shape is generated.\n" -"Has no effect on 3D fractals.\n" -"Range roughly -2 to 2." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Walking speed" -msgstr "Скорость ходьбы" - -#: src/settings_translation_file.cpp -msgid "Water Features" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Water level" -msgstr "Уровень воды" - -#: src/settings_translation_file.cpp -msgid "Water surface level of the world." -msgstr "Уровень поверхности воды мира." - -#: src/settings_translation_file.cpp -msgid "Waving Nodes" -msgstr "Покачивание узлов" - -#: src/settings_translation_file.cpp -msgid "Waving leaves" -msgstr "Покачивание листвы" - -#: src/settings_translation_file.cpp -msgid "Waving plants" -msgstr "Покачивание растений" - -#: src/settings_translation_file.cpp -msgid "Waving water" -msgstr "Волны на воде" - -#: src/settings_translation_file.cpp -msgid "Waving water height" -msgstr "Высота волн на воде" - -#: src/settings_translation_file.cpp -msgid "Waving water length" -msgstr "Длина волн на воде" - -#: src/settings_translation_file.cpp -msgid "Waving water speed" -msgstr "Скорость волн на воде" - -#: src/settings_translation_file.cpp -msgid "" -"When gui_scaling_filter is true, all GUI images need to be\n" -"filtered in software, but some images are generated directly\n" -"to hardware (e.g. render-to-texture for nodes in inventory)." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"When gui_scaling_filter_txr2img is true, copy those images\n" -"from hardware to software for scaling. When false, fall back\n" -"to the old scaling method, for video drivers that don't\n" -"properly support downloading textures back from hardware." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"When using bilinear/trilinear/anisotropic filters, low-resolution textures\n" -"can be blurred, so automatically upscale them with nearest-neighbor\n" -"interpolation to preserve crisp pixels. This sets the minimum texture size\n" -"for the upscaled textures; higher values look sharper, but require more\n" -"memory. Powers of 2 are recommended. Setting this higher than 1 may not\n" -"have a visible effect unless bilinear/trilinear/anisotropic filtering is\n" -"enabled." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"Whether freetype fonts are used, requires freetype support to be compiled in." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Whether node texture animations should be desynchronized per mapblock." -msgstr "Рассинхронизировать ли анимацию текстур узлов в блоке." - -#: src/settings_translation_file.cpp -msgid "" -"Whether players are shown to clients without any range limit.\n" -"Deprecated, use the setting player_transfer_distance instead." -msgstr "" -"Показываются ли клиентам игроки без ограничения расстояния.\n" -"Устарело, используйте параметр player_transfer_distance." - -#: src/settings_translation_file.cpp -msgid "Whether to allow players to damage and kill each other." -msgstr "Разрешено ли игрокам наносить урон и убивать друг друга." - -#: src/settings_translation_file.cpp -msgid "" -"Whether to ask clients to reconnect after a (Lua) crash.\n" -"Set this to true if your server is set up to restart automatically." -msgstr "" -"Просить ли клиентов переподключиться после сбоя Lua.\n" -"Установите это, если ваш сервер настроен на автоматический перезапуск." - -#: src/settings_translation_file.cpp -msgid "Whether to fog out the end of the visible area." -msgstr "Затуманивать ли конец видимой области." - -#: src/settings_translation_file.cpp -#, fuzzy -msgid "" -"Whether to show the client debug info (has the same effect as hitting F5)." -msgstr "Показывать данные отладки (аналогично нажатию F5)." - -#: src/settings_translation_file.cpp -msgid "" -"Whether to support older servers before protocol version 25.\n" -"Enable if you want to connect to 0.4.12 servers and before.\n" -"Servers starting with 0.4.13 will work, 0.4.12-dev servers may work.\n" -"Disabling this option will protect your password better." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Width component of the initial window size." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Width of the selectionbox's lines around nodes." -msgstr "Толщина обводки выделенных узлов." - -#: src/settings_translation_file.cpp -msgid "" -"Windows systems only: Start Minetest with the command line window in the " -"background.\n" -"Contains the same information as the file debug.txt (default name)." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "" -"World directory (everything in the world is stored here).\n" -"Not needed if starting from the main menu." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Y of flat ground." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Y of upper limit of large pseudorandom caves." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Y-distance over which caverns expand to full size." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Y-level of average terrain surface." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Y-level of cavern upper limit." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Y-level of floatland midpoint and lake surface." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Y-level of higher (cliff-top) terrain." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Y-level of lower terrain and lakebeds." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Y-level of seabed." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "Y-level to which floatland shadows extend." -msgstr "" - -#: src/settings_translation_file.cpp -msgid "block send optimize distance" -msgstr "" - -#: src/settings_translation_file.cpp -msgid "cURL file download timeout" -msgstr "Таймаут загрузки файла с помощью cURL" - -#: src/settings_translation_file.cpp -msgid "cURL parallel limit" -msgstr "Лимит одновременных соединений cURL" - -#: src/settings_translation_file.cpp -msgid "cURL timeout" -msgstr "cURL тайм-аут" - -#~ msgid "Hide mp content" -#~ msgstr "Скрыть содержимое модпака" - -#~ msgid "Start Game" -#~ msgstr "Начать игру" - -#~ msgid "Attn" -#~ msgstr "Внимание" - -#~ msgid "Capital" -#~ msgstr "Caps Lock" - -#~ msgid "Comma" -#~ msgstr "Запятая" - -#~ msgid "CrSel" -#~ msgstr "CrSel" - -#~ msgid "ExSel" -#~ msgstr "ExSel" - -#~ msgid "Final" -#~ msgstr "Конец" - -#~ msgid "Junja" -#~ msgstr "Junja" - -#~ msgid "Kana" -#~ msgstr "Кана" - -#~ msgid "Kanji" -#~ msgstr "Кандзи" - -#~ msgid "Minus" -#~ msgstr "Минус" - -#~ msgid "PA1" -#~ msgstr "PA1" - -#~ msgid "Period" -#~ msgstr "Период" - -#~ msgid "Plus" -#~ msgstr "Плюс" - -#~ msgid "" -#~ "Controls size of deserts and beaches in Mapgen v6.\n" -#~ "When snowbiomes are enabled 'mgv6_freq_desert' is ignored." -#~ msgstr "" -#~ "Задает размеры пустыней и пляжей.\n" -#~ "Когда включены снежные биомы, 'mgv6_freq_desert' игнорируется." - -#, fuzzy -#~ msgid "Mapgen flat cave width" -#~ msgstr "Флаги генератора карты" - -#, fuzzy -#~ msgid "Mapgen fractal cave width" -#~ msgstr "Флаги генератора карты" - -#, fuzzy -#~ msgid "Mapgen fractal fractal" -#~ msgstr "Флаги генератора карты" - -#, fuzzy -#~ msgid "Mapgen fractal iterations" -#~ msgstr "Повторение параллакса" - -#, fuzzy -#~ msgid "Mapgen fractal offset" -#~ msgstr "Флаги генератора карты" - -#, fuzzy -#~ msgid "Mapgen fractal scale" -#~ msgstr "Флаги генератора карты" - -#, fuzzy -#~ msgid "Mapgen fractal slice w" -#~ msgstr "Флаги генератора карты" - -#, fuzzy -#~ msgid "Mapgen v5 cave width" -#~ msgstr "Генератор карты версии 5" - -#, fuzzy -#~ msgid "Mapgen v7 cave width" -#~ msgstr "Генератор карты версии 7" - -#, fuzzy -#~ msgid "" -#~ "How many blocks are flying in the wire simultaneously for the whole " -#~ "server." -#~ msgstr "Количество блоков, передаваемых одновременно для всего сервера." - -#, fuzzy -#~ msgid "Useful for mod developers." -#~ msgstr "Разработчики в отставке" - -#~ msgid "No of course not!" -#~ msgstr "Нет, конечно нет!" - -#~ msgid "Public Serverlist" -#~ msgstr "Список публичных серверов" - -#~ msgid "Generate Normalmaps" -#~ msgstr "Генерировать карты нормалей" - -#~ msgid "No!!!" -#~ msgstr "Нет!" - -#~ msgid "\"" -#~ msgstr "\"" - -#~ msgid "If disabled " -#~ msgstr "Если выключено " - -#~ msgid "If enabled, " -#~ msgstr "Если включено " - -#~ msgid "Restart minetest for driver change to take effect" -#~ msgstr "Перезапустите Minetest для принятия изменений" - -#~ msgid "Gamemgr: Unable to copy mod \"$1\" to game \"$2\"" -#~ msgstr "Gamemgr: Не могу скопировать мод \"$1\" в игру \"$2\"" - -#~ msgid "GAMES" -#~ msgstr "ИГРЫ" - -#~ msgid "Mods:" -#~ msgstr "Моды:" - -#~ msgid "new game" -#~ msgstr "Создать игру" - -#~ msgid "EDIT GAME" -#~ msgstr "РЕДАКТИРОВАНИЕ" - -#~ msgid "Remove selected mod" -#~ msgstr "Удалить мод" - -#~ msgid "<<-- Add mod" -#~ msgstr "<<-- Добавить мод" - -#~ msgid "CLIENT" -#~ msgstr "КЛИЕНТ" - -#~ msgid "START SERVER" -#~ msgstr "СЕРВЕР" - -#~ msgid "Name" -#~ msgstr "Имя" - -#~ msgid "Password" -#~ msgstr "Пароль" - -#~ msgid "SETTINGS" -#~ msgstr "НАСТРОЙКИ" - -#~ msgid "Preload item visuals" -#~ msgstr "Предзагрузка изображений" - -#~ msgid "Finite Liquid" -#~ msgstr "Конечные жидкости" - -#~ msgid "SINGLE PLAYER" -#~ msgstr "ОДИНОЧНАЯ ИГРА" - -#~ msgid "TEXTURE PACKS" -#~ msgstr "ПАКЕТЫ ТЕКСТУР" - -#~ msgid "MODS" -#~ msgstr "МОДЫ" - -#~ msgid "Add mod:" -#~ msgstr "Добавить мод:" - -#~ msgid "" -#~ "Warning: Some mods are not configured yet.\n" -#~ "They will be enabled by default when you save the configuration. " -#~ msgstr "" -#~ "Предупреждение: Некоторые моды еще не настроены.\n" -#~ "Их стандартные настройки будут установлены, когда вы сохраните " -#~ "конфигурацию. " - -#~ msgid "" -#~ "Warning: Some configured mods are missing.\n" -#~ "Their setting will be removed when you save the configuration. " -#~ msgstr "" -#~ "Предупреждение: Некоторые моды не найдены.\n" -#~ "Их настройки будут удалены, когда вы сохраните конфигурацию. " - -#~ msgid "" -#~ "Default Controls:\n" -#~ "- WASD: Walk\n" -#~ "- Mouse left: dig/hit\n" -#~ "- Mouse right: place/use\n" -#~ "- Mouse wheel: select item\n" -#~ "- 0...9: select item\n" -#~ "- Shift: sneak\n" -#~ "- R: Toggle viewing all loaded chunks\n" -#~ "- I: Inventory menu\n" -#~ "- ESC: This menu\n" -#~ "- T: Chat\n" -#~ msgstr "" -#~ "Управление по умолчанию:\n" -#~ "- WASD: перемещение\n" -#~ "- ЛКМ: копать/ударить\n" -#~ "- ПКМ: поставить/использовать\n" -#~ "- Колесо мыши: выбор предмета\n" -#~ "- 0...9: выбор предмета\n" -#~ "- Shift: красться\n" -#~ "- R: смотреть далеко\n" -#~ "- I: инвентарь\n" -#~ "- ESC: это меню\n" -#~ "- T: чат\n" - -#~ msgid "Failed to delete all world files" -#~ msgstr "Ошибка при удалении файлов мира" - -#~ msgid "Cannot configure world: Nothing selected" -#~ msgstr "Невозможно настроить мир: ничего не выбрано" - -#~ msgid "Cannot create world: No games found" -#~ msgstr "Невозможно создать мир: Ни одной игры не найдено" - -#~ msgid "Files to be deleted" -#~ msgstr "Следующие файлы будут удалены" - -#~ msgid "Cannot delete world: Nothing selected" -#~ msgstr "Невозможно удалить мир: Ничего не выбрано" - -#~ msgid "Address required." -#~ msgstr "Нужно ввести адрес." - -#~ msgid "Create world" -#~ msgstr "Создать мир" - -#~ msgid "Leave address blank to start a local server." -#~ msgstr "Оставьте адрес пустым для запуска локального сервера." - -#~ msgid "Show Favorites" -#~ msgstr "Избранные" - -#~ msgid "Show Public" -#~ msgstr "Публичные" - -#~ msgid "Cannot create world: Name contains invalid characters" -#~ msgstr "Невозможно создать мир: Имя содержит недопустимые символы" - -#~ msgid "Warning: Configuration not consistent. " -#~ msgstr "Предупреждение: Неверная конфигурация. " - -#~ msgid "Configuration saved. " -#~ msgstr "Настройки сохранены. " - -#~ msgid "is required by:" -#~ msgstr "требуется для:" - -#~ msgid "Left click: Move all items, Right click: Move single item" -#~ msgstr "ЛКМ: Переместить все предметы, ПКМ: Переместить один предмет" - -#, fuzzy -#~ msgid "Downloading" -#~ msgstr "Загрузить" - -#~ msgid "Touch free target" -#~ msgstr "Свободный выбор цели" - -#~ msgid "Scaling factor applied to menu elements: " -#~ msgstr "Коэффициент масштаба интерфейса: " - -#, fuzzy -#~ msgid "Wanted FPS" -#~ msgstr "Ожидаемый FPS" - -#, fuzzy -#~ msgid "Viewing range minimum" -#~ msgstr "Минимальная граница дальности отрисовки." - -#~ msgid "Preload inventory textures" -#~ msgstr "Предзагрузка текстур..." - -#, fuzzy -#~ msgid "New style water" -#~ msgstr "Новый стиль воды" - -#~ msgid "" -#~ "Key for increasing the viewing range. Modifies the minimum viewing " -#~ "range.\n" -#~ "See http://irrlicht.sourceforge.net/docu/namespaceirr." -#~ "html#a54da2a0e231901735e3da1b0edf72eb3" -#~ msgstr "" -#~ "Клавиша Увеличения видимого диапазона. Изменяет минимальную дальность " -#~ "отображения.\n" -#~ "Смотрите http://irrlicht.sourceforge.net/docu/namespaceirr." -#~ "html#a54da2a0e231901735e3da1b0edf72eb3" - -#~ msgid "" -#~ "Key for decreasing the viewing range. Modifies the minimum viewing " -#~ "range.\n" -#~ "See http://irrlicht.sourceforge.net/docu/namespaceirr." -#~ "html#a54da2a0e231901735e3da1b0edf72eb3" -#~ msgstr "" -#~ "Клавиша уменьшения видимого диапазона. Изменяет минимальную дальность " -#~ "отображения.\n" -#~ "Смотрите http://irrlicht.sourceforge.net/docu/namespaceirr." -#~ "html#a54da2a0e231901735e3da1b0edf72eb3" - -#~ msgid "" -#~ "Enable a bit lower water surface, so it doesn't \"fill\" the node " -#~ "completely.\n" -#~ "Note that this is not quite optimized and that smooth lighting on the\n" -#~ "water surface doesn't work with this." -#~ msgstr "" -#~ "Включите немного более низкую поверхность воды, чтобы она\n" -#~ "не заполняла блок полностью. Учтите, что это не совсем оптимизировано,\n" -#~ "и мягкое освещение на поверхности воды не работает с этим." diff --git a/po/sl/MultiCraft.po b/po/sl/BlockColor.po similarity index 100% rename from po/sl/MultiCraft.po rename to po/sl/BlockColor.po diff --git a/po/sr_Cyrl/MultiCraft.po b/po/sr_Cyrl/BlockColor.po similarity index 100% rename from po/sr_Cyrl/MultiCraft.po rename to po/sr_Cyrl/BlockColor.po diff --git a/po/sv/MultiCraft.po b/po/sv/BlockColor.po similarity index 100% rename from po/sv/MultiCraft.po rename to po/sv/BlockColor.po diff --git a/po/sw/MultiCraft.po b/po/sw/BlockColor.po similarity index 100% rename from po/sw/MultiCraft.po rename to po/sw/BlockColor.po diff --git a/po/tr/MultiCraft.po b/po/tr/BlockColor.po similarity index 100% rename from po/tr/MultiCraft.po rename to po/tr/BlockColor.po diff --git a/po/uk/MultiCraft.po b/po/uk/BlockColor.po similarity index 100% rename from po/uk/MultiCraft.po rename to po/uk/BlockColor.po diff --git a/po/zh_CN/MultiCraft.po b/po/zh_CN/BlockColor.po similarity index 100% rename from po/zh_CN/MultiCraft.po rename to po/zh_CN/BlockColor.po diff --git a/po/zh_TW/MultiCraft.po b/po/zh_TW/BlockColor.po similarity index 100% rename from po/zh_TW/MultiCraft.po rename to po/zh_TW/BlockColor.po diff --git a/src/CMakeLists.txt b/src/CMakeLists.txt index 8b9e3cd04..4feb5ea23 100644 --- a/src/CMakeLists.txt +++ b/src/CMakeLists.txt @@ -1,6 +1,6 @@ cmake_minimum_required(VERSION 2.6) -project(MultiCraft) +project(BlockColor) INCLUDE(CheckIncludeFiles) INCLUDE(CheckLibraryExists) diff --git a/src/config.h b/src/config.h index 12af9632e..55a52c483 100644 --- a/src/config.h +++ b/src/config.h @@ -13,8 +13,8 @@ #if defined USE_CMAKE_CONFIG_H #include "cmake_config.h" #elif defined(__ANDROID__) || defined(__IOS__) - #define PROJECT_NAME "MultiCraft" - #define PROJECT_NAME_C "MultiCraft" + #define PROJECT_NAME "BlockColor" + #define PROJECT_NAME_C "BlockColor" #define STATIC_SHAREDIR "" #define VERSION_MAJOR 1 #define VERSION_MINOR 3 diff --git a/src/guiKeyChangeMenu.cpp b/src/guiKeyChangeMenu.cpp index 8d98b7f0b..99d17e3b5 100644 --- a/src/guiKeyChangeMenu.cpp +++ b/src/guiKeyChangeMenu.cpp @@ -129,7 +129,7 @@ void GUIKeyChangeMenu::regenerateGui(v2u32 screensize) core::rect < s32 > rect(0, 0, 600, 40); rect += topleft + v2s32(25, 3); //gui::IGUIStaticText *t = - const wchar_t *text = wgettext("Keybindings. (If this menu screws up, remove stuff from multicraft.conf)"); + const wchar_t *text = wgettext("Keybindings. (If this menu screws up, remove stuff from blockcolor.conf)"); Environment->addStaticText(text, rect, false, true, this, -1); delete[] text; diff --git a/src/main.cpp b/src/main.cpp index 6f24fbb9e..93536398e 100644 --- a/src/main.cpp +++ b/src/main.cpp @@ -477,16 +477,16 @@ static bool read_config_file(const Settings &cmd_args) g_settings_path = cmd_args.get("config"); } else { std::vector filenames; - filenames.push_back(porting::path_user + DIR_DELIM + "multicraft.conf"); + filenames.push_back(porting::path_user + DIR_DELIM + "blockcolor.conf"); // Legacy configuration file location filenames.push_back(porting::path_user + - DIR_DELIM + ".." + DIR_DELIM + "multicraft.conf"); + DIR_DELIM + ".." + DIR_DELIM + "blockcolor.conf"); #if RUN_IN_PLACE // Try also from a lower level (to aid having the same configuration // for many RUN_IN_PLACE installs) filenames.push_back(porting::path_user + - DIR_DELIM + ".." + DIR_DELIM + ".." + DIR_DELIM + "multicraft.conf"); + DIR_DELIM + ".." + DIR_DELIM + ".." + DIR_DELIM + "blockcolor.conf"); #endif for (size_t i = 0; i < filenames.size(); i++) { @@ -828,7 +828,7 @@ static bool run_dedicated_server(const GameParams &game_params, const Settings & if (!name_ok) { if (admin_nick.empty()) { errorstream << "No name given for admin. " - << "Please check your multicraft.conf that it " + << "Please check your blockcolor.conf that it " << "contains a 'name = ' to your main admin account." << std::endl; } else { diff --git a/src/porting_android.cpp b/src/porting_android.cpp index 9dee0e5f2..7dbb9827f 100644 --- a/src/porting_android.cpp +++ b/src/porting_android.cpp @@ -68,10 +68,10 @@ void android_main(android_app *app) /* TODO this doesn't work as expected, no idea why but there's a workaround */ /* for it right now */ extern "C" { - JNIEXPORT void JNICALL Java_com_multicraft_game_GameActivity_putMessageBoxResult( + JNIEXPORT void JNICALL Java_net_blockcolor_game_GameActivity_putMessageBoxResult( JNIEnv *env, jclass j_this, jstring text) { - errorstream << "Java_com_multicraft_game_GameActivity_putMessageBoxResult got: " + errorstream << "Java_net_blockcolor_game_GameActivity_putMessageBoxResult got: " << std::string((const char*)env->GetStringChars(text,0)) << std::endl; } @@ -125,7 +125,7 @@ void initAndroid() exit(-1); } - nativeActivity = findClass("com/multicraft/game/GameActivity"); + nativeActivity = findClass("net/blockcolor/game/GameActivity"); if (nativeActivity == 0) { errorstream << "porting::initAndroid unable to find java native activity class" << @@ -136,7 +136,7 @@ void initAndroid() /* in the start-up code */ __android_log_print(ANDROID_LOG_ERROR, PROJECT_NAME_C, "Initializing GPROF profiler"); - monstartup("libMultiCraft.so"); + monstartup("libBlockColor.so"); #endif } @@ -206,7 +206,7 @@ void initializePathsAndroid() cls_File, mt_getAbsPath, "getCacheDir"); path_storage = getAndroidPath(cls_Env, NULL, cls_File, mt_getAbsPath, "getExternalStorageDirectory"); - path_user = path_storage + DIR_DELIM + "Android/data/com.multicraft.game/files"; + path_user = path_storage + DIR_DELIM + "Android/data/net.blockcolor.game/files"; path_share = path_user; path_locale = path_user + DIR_DELIM + "locale"; } diff --git a/src/porting_ios.cpp b/src/porting_ios.cpp index 8e048851f..94b5dee09 100644 --- a/src/porting_ios.cpp +++ b/src/porting_ios.cpp @@ -1,5 +1,5 @@ /* -MultiCraft +BlockColor Copyright (C) 2014-2019 Maksim Gamarnik [MoNTE48] MoNTE48@mail.ua Copyright (C) 2016-2019 sfan5 diff --git a/src/porting_ios.h b/src/porting_ios.h index 085b38753..bd7abd57b 100644 --- a/src/porting_ios.h +++ b/src/porting_ios.h @@ -1,5 +1,5 @@ /* -MultiCraft +BlockColor Copyright (C) 2014-2019 Maksim Gamarnik [MoNTE48] MoNTE48@mail.ua Copyright (C) 2016-2019 sfan5 diff --git a/src/serverlist.cpp b/src/serverlist.cpp index 07f170162..74c3ef923 100644 --- a/src/serverlist.cpp +++ b/src/serverlist.cpp @@ -219,7 +219,7 @@ void sendAnnounce(AnnounceAction action, server["name"] = g_settings->get("server_name"); server["description"] = g_settings->get("server_description"); server["version"] = g_version_string; - server["server_id"] = "multicraft"; + server["server_id"] = "blockcolor"; server["proto_min"] = strict_checking ? LATEST_PROTOCOL_VERSION : SERVER_PROTOCOL_VERSION_MIN; server["proto_max"] = strict_checking ? LATEST_PROTOCOL_VERSION : SERVER_PROTOCOL_VERSION_MAX; server["url"] = g_settings->get("server_url"); diff --git a/src/subgame.cpp b/src/subgame.cpp index 09fd25781..e5b1ae977 100644 --- a/src/subgame.cpp +++ b/src/subgame.cpp @@ -33,7 +33,7 @@ with this program; if not, write to the Free Software Foundation, Inc., bool getGameMinetestConfig(const std::string &game_path, Settings &conf) { - std::string conf_path = game_path + DIR_DELIM + "multicraft.conf"; + std::string conf_path = game_path + DIR_DELIM + "blockcolor.conf"; return conf.readConfigFile(conf_path.c_str()); } diff --git a/src/subgame.h b/src/subgame.h index c73992950..36be0be62 100644 --- a/src/subgame.h +++ b/src/subgame.h @@ -57,7 +57,7 @@ struct SubgameSpec } }; -// multicraft.conf +// blockcolor.conf bool getGameMinetestConfig(const std::string &game_path, Settings &conf); // game.conf bool getGameConfig(const std::string &game_path, Settings &conf); diff --git a/util/bump_version.sh b/util/bump_version.sh index e19534a95..296fdcc80 100755 --- a/util/bump_version.sh +++ b/util/bump_version.sh @@ -18,7 +18,7 @@ prompt_for_number() { ################################## -# Switch to top MultiCraft directory +# Switch to top BlockColor directory ################################## cd ${0%/*}/.. @@ -39,7 +39,7 @@ VERSION_MINOR=$(grep -E '^set\(VERSION_MINOR [0-9]+\)$' CMakeLists.txt | tr -dC VERSION_PATCH=$(grep -E '^set\(VERSION_PATCH [0-9]+\)$' CMakeLists.txt | tr -dC 0-9) ANDROID_VERSION_CODE=$(grep -E 'versionCode [0-9]+$' build/android/build.gradle | tr -dC 0-9) -echo "Current MultiCraft version: $VERSION_MAJOR.$VERSION_MINOR.$VERSION_PATCH" +echo "Current BlockColor version: $VERSION_MAJOR.$VERSION_MINOR.$VERSION_PATCH" echo "Current Android version code: $ANDROID_VERSION_CODE" diff --git a/util/updatepo.sh b/util/updatepo.sh index d240e1ca4..86295c9a9 100755 --- a/util/updatepo.sh +++ b/util/updatepo.sh @@ -1,6 +1,6 @@ #!/bin/sh -# Update/create MultiCraft po files +# Update/create BlockColor po files # an auxiliary function to abort processing with an optional error # message @@ -47,8 +47,8 @@ cd .. # First thing first, update the .pot template. We place it in the po/ # directory at the top level. You a recent enough xgettext that supports # --package-name -potfile=po/MultiCraft.pot -xgettext --package-name=MultiCraft \ +potfile=po/BlockColor.pot +xgettext --package-name=BlockColor \ --sort-by-file \ --add-location=file \ --keyword=N_ \ @@ -64,7 +64,7 @@ xgettext --package-name=MultiCraft \ # Now iterate on all languages and create the po file if missing, or update it # if it exists already for lang in $langs ; do # note the missing quotes around $langs - pofile=po/$lang/MultiCraft.po + pofile=po/$lang/BlockColor.po if test -e $pofile; then echo "[$lang]: updating strings" msgmerge --update --sort-by-file $pofile $potfile diff --git a/worlds/World 1/world.mt b/worlds/World 1/world.mt deleted file mode 100644 index 8e2686024..000000000 --- a/worlds/World 1/world.mt +++ /dev/null @@ -1 +0,0 @@ -gameid = default diff --git a/worlds/World 2/world.mt b/worlds/World 2/world.mt deleted file mode 100644 index 8e2686024..000000000 --- a/worlds/World 2/world.mt +++ /dev/null @@ -1 +0,0 @@ -gameid = default diff --git a/worlds/World 3/world.mt b/worlds/World 3/world.mt deleted file mode 100644 index 8e2686024..000000000 --- a/worlds/World 3/world.mt +++ /dev/null @@ -1 +0,0 @@ -gameid = default diff --git a/worlds/World 4/world.mt b/worlds/World 4/world.mt deleted file mode 100644 index 8e2686024..000000000 --- a/worlds/World 4/world.mt +++ /dev/null @@ -1 +0,0 @@ -gameid = default diff --git a/worlds/World 5 Flat/map_meta.txt b/worlds/World 5 Flat/map_meta.txt deleted file mode 100644 index 7db9b3af1..000000000 --- a/worlds/World 5 Flat/map_meta.txt +++ /dev/null @@ -1,4 +0,0 @@ -water_level = 1 -mg_name = flat -seed = 2 -[end_of_params] diff --git a/worlds/World 5 Flat/world.mt b/worlds/World 5 Flat/world.mt deleted file mode 100644 index 8e2686024..000000000 --- a/worlds/World 5 Flat/world.mt +++ /dev/null @@ -1 +0,0 @@ -gameid = default diff --git a/worlds/room/areas.dat b/worlds/room/areas.dat new file mode 100644 index 000000000..1f87f6139 --- /dev/null +++ b/worlds/room/areas.dat @@ -0,0 +1 @@ +return {{["owner"] = "link34", ["pos1"] = {["y"] = 8, ["x"] = 145, ["z"] = 29}, ["name"] = "link34'Home", ["pos2"] = {["y"] = 32, ["x"] = 165, ["z"] = 48}}, {["owner"] = "MrChiantos", ["pos1"] = {["y"] = -2, ["x"] = -13, ["z"] = -18}, ["name"] = "Rules ", ["pos2"] = {["y"] = 18, ["x"] = 14, ["z"] = 10}}, {["owner"] = "MrChiantos", ["pos1"] = {["y"] = 4, ["x"] = -4, ["z"] = -28}, ["name"] = "Jail 1", ["pos2"] = {["y"] = 13, ["x"] = 6, ["z"] = -20}}, {["owner"] = "MrChiantos", ["pos1"] = {["y"] = -520, ["x"] = -49, ["z"] = -51}, ["name"] = "area", ["pos2"] = {["y"] = 500, ["x"] = 49, ["z"] = 48}}, {["owner"] = "WSDguy2014", ["pos2"] = {["y"] = 500, ["x"] = 49, ["z"] = 48}, ["pos1"] = {["y"] = -520, ["x"] = -49, ["z"] = -51}, ["name"] = "area", ["parent"] = 4}, {["owner"] = "flabien", ["pos2"] = {["y"] = 40, ["x"] = -189, ["z"] = -254}, ["name"] = "flabien", ["pos1"] = {["y"] = -12, ["x"] = -274, ["z"] = -379}}, {["owner"] = "erwan", ["pos2"] = {["y"] = 40, ["x"] = -189, ["z"] = -254}, ["name"] = "erwan", ["pos1"] = {["y"] = -12, ["x"] = -274, ["z"] = -379}}, {["owner"] = "erwan", ["pos2"] = {["y"] = 48, ["x"] = 191, ["z"] = -96}, ["name"] = "erwan", ["pos1"] = {["y"] = -6, ["x"] = 93, ["z"] = -230}}} \ No newline at end of file diff --git a/worlds/room/auth.txt b/worlds/room/auth.txt new file mode 100644 index 000000000..51aade9c3 --- /dev/null +++ b/worlds/room/auth.txt @@ -0,0 +1 @@ +singleplayer:#1#8b+1h6B+CsyvAF6OcQPYPQ#oNXVzjWLWYU8DyzG4WIZT+0oepRBYOVqeXDhCMszRaaNYjk0c0C81qE2PObCdbudUoCEOdUOSSeJlbsYTm2MmYXYfqEYzP9gsxIc76YvHvTr6f0UM5wrCdwrUm5Yj5Sf0gBZbjshPSjyAMTKYCM1ouGUlM2I4EJTVvrMTfSRPHCOavWDRk5zyQVjMAoJOrjrpyYX/ofPObgY9WRkZ15PkVhdt/v3Y8E3P8/sZU7HeUsyynSEAA6OVc3mie9awva0W45UyFMqN59NHd42fu1iR/skTBTxMiJA50NoUZjEsX2p6g5lXS8bQKdmSTd7Tyd1BXMC6AA4Vvn9f+LlJB7uyw:fast,home,interact,shout,fly:1562944678 diff --git a/worlds/room/env_meta.txt b/worlds/room/env_meta.txt new file mode 100644 index 000000000..c51e74bc5 --- /dev/null +++ b/worlds/room/env_meta.txt @@ -0,0 +1,7 @@ +day_count = 1296132161 +lbm_introduction_times = :doors:replace_doors_door_black~0;:doors:replace_doors_door_blue~0;:doors:replace_doors_door_green~0;:doors:replace_doors_door_orange~0;:doors:replace_doors_door_pink~0;:doors:replace_doors_door_red~0;:doors:replace_doors_door_white~0;:doors:replace_doors_door_yellow~0; +last_clear_objects_time = 0 +game_time = 359582 +lbm_introduction_times_version = 1 +time_of_day = 8589 +EnvArgsEnd diff --git a/worlds/room/force_loaded.txt b/worlds/room/force_loaded.txt new file mode 100644 index 000000000..3941af59e --- /dev/null +++ b/worlds/room/force_loaded.txt @@ -0,0 +1 @@ +return {} \ No newline at end of file diff --git a/worlds/room/ipban.txt b/worlds/room/ipban.txt new file mode 100644 index 000000000..e69de29bb diff --git a/worlds/room/map.sqlite b/worlds/room/map.sqlite new file mode 100644 index 000000000..4ddd05da7 Binary files /dev/null and b/worlds/room/map.sqlite differ diff --git a/worlds/room/map_meta.txt b/worlds/room/map_meta.txt new file mode 100644 index 000000000..4f72ecb55 --- /dev/null +++ b/worlds/room/map_meta.txt @@ -0,0 +1,202 @@ +mgv7_np_cave2 = { + flags = defaults + lacunarity = 2 + offset = 0 + scale = 12 + spread = (67,67,67) + seed = 10325 + octaves = 3 + persistence = 0.5 +} +mgv7_np_cave1 = { + flags = defaults + lacunarity = 2 + offset = 0 + scale = 12 + spread = (61,61,61) + seed = 52534 + octaves = 3 + persistence = 0.5 +} +mgv7_np_cavern = { + flags = defaults + lacunarity = 2 + offset = 0 + scale = 1 + spread = (384,128,384) + seed = 723 + octaves = 5 + persistence = 0.63 +} +mgv7_cave_width = 0.09 +mg_biome_np_heat = { + flags = defaults + lacunarity = 2 + offset = 50 + scale = 50 + spread = (1000,1000,1000) + seed = 5349 + octaves = 3 + persistence = 0.5 +} +mgv7_lava_depth = -256 +mgv7_np_mount_height = { + flags = defaults + lacunarity = 2 + offset = 256 + scale = 112 + spread = (1000,1000,1000) + seed = 72449 + octaves = 3 + persistence = 0.6 +} +mg_biome_np_humidity_blend = { + flags = defaults + lacunarity = 2 + offset = 0 + scale = 1.5 + spread = (8,8,8) + seed = 90003 + octaves = 2 + persistence = 1 +} +mgv7_np_ridge = { + flags = defaults + lacunarity = 2 + offset = 0 + scale = 1 + spread = (100,100,100) + seed = 6467 + octaves = 4 + persistence = 0.75 +} +mgv7_large_cave_depth = -33 +mg_biome_np_humidity = { + flags = defaults + lacunarity = 2 + offset = 50 + scale = 50 + spread = (1000,1000,1000) + seed = 842 + octaves = 3 + persistence = 0.5 +} +mg_biome_np_heat_blend = { + flags = defaults + lacunarity = 2 + offset = 0 + scale = 1.5 + spread = (8,8,8) + seed = 13 + octaves = 2 + persistence = 1 +} +mgv7_floatland_level = 1280 +mgv7_np_terrain_base = { + flags = defaults + lacunarity = 2 + offset = 4 + scale = 70 + spread = (600,600,600) + seed = 82341 + octaves = 5 + persistence = 0.6 +} +mgv7_np_float_base_height = { + flags = defaults + lacunarity = 2 + offset = 48 + scale = 24 + spread = (300,300,300) + seed = 907 + octaves = 4 + persistence = 0.7 +} +seed = 14227120866030032246 +water_level = 1 +mapgen_limit = 31000 +mg_name = v7 +mgv7_cavern_threshold = 0.7 +mgv7_dungeon_ymin = -31000 +chunksize = 5 +mg_flags = caves, dungeons, light, decorations, biomes +mgv7_np_height_select = { + flags = defaults + lacunarity = 2 + offset = -8 + scale = 16 + spread = (500,500,500) + seed = 4213 + octaves = 6 + persistence = 0.7 +} +mgv7_np_mountain = { + flags = defaults + lacunarity = 2 + offset = -0.6 + scale = 1 + spread = (250,350,250) + seed = 5333 + octaves = 5 + persistence = 0.63 +} +mgv7_shadow_limit = 1024 +mgv7_float_mount_height = 128 +mgv7_float_mount_exponent = 0.75 +mgv7_np_terrain_persist = { + flags = defaults + lacunarity = 2 + offset = 0.6 + scale = 0.1 + spread = (2000,2000,2000) + seed = 539 + octaves = 3 + persistence = 0.6 +} +mgv7_cavern_limit = -256 +mgv7_cavern_taper = 256 +mgv7_dungeon_ymax = 31000 +mgv7_float_mount_density = 0.6 +mgv7_np_terrain_alt = { + flags = defaults + lacunarity = 2 + offset = 4 + scale = 25 + spread = (600,600,600) + seed = 5934 + octaves = 5 + persistence = 0.6 +} +mgv7_spflags = mountains, ridges, nofloatlands, caverns +mgv7_np_filler_depth = { + flags = defaults + lacunarity = 2 + offset = 0 + scale = 1.2 + spread = (150,150,150) + seed = 261 + octaves = 3 + persistence = 0.7 +} +mgv7_mount_zero_level = 0 +mgv7_np_ridge_uwater = { + flags = defaults + lacunarity = 2 + offset = 0 + scale = 1 + spread = (1000,1000,1000) + seed = 85039 + octaves = 5 + persistence = 0.6 +} +mgv7_np_floatland_base = { + flags = defaults + lacunarity = 2 + offset = -0.6 + scale = 1.5 + spread = (600,600,600) + seed = 114 + octaves = 5 + persistence = 0.6 +} +[end_of_params] diff --git a/worlds/room/mod_storage/awards b/worlds/room/mod_storage/awards new file mode 100644 index 000000000..b3de3e990 --- /dev/null +++ b/worlds/room/mod_storage/awards @@ -0,0 +1 @@ +{"player_data":"{\"singleplayer\":{\"dig\":{\"__total\":30.0,\"color:black\":1.0,\"color:white\":1.0,\"light:white\":1.0,\"signs:sign_wall_white\":27.0},\"join\":2.0,\"lastsound\":1562944475.0,\"name\":\"singleplayer\",\"place\":{\"__total\":3.0,\"color:black\":1.0,\"color:blue\":1.0,\"color:white\":1.0},\"unlocked\":{\"award_black\":\"award_black\",\"award_blue\":\"award_blue\",\"award_deadblack\":\"award_deadblack\",\"award_deadwhite\":\"award_deadwhite\",\"award_white\":\"award_white\"}}}"} \ No newline at end of file diff --git a/worlds/room/mod_storage/music b/worlds/room/mod_storage/music new file mode 100644 index 000000000..ec747fa47 --- /dev/null +++ b/worlds/room/mod_storage/music @@ -0,0 +1 @@ +null \ No newline at end of file diff --git a/worlds/room/players/singleplayer b/worlds/room/players/singleplayer new file mode 100644 index 000000000..5036f9686 --- /dev/null +++ b/worlds/room/players/singleplayer @@ -0,0 +1,65 @@ +extended_attributes = {"character_creator:face":"eyesblack.png","character_creator:gender":"Male","character_creator:height":"4","character_creator:pants":"pantsblue.png","character_creator:shoes":"hairblack.png","character_creator:skin":"skinwhite.png","character_creator:tshirt":"shirtwhite.png","character_creator:width":"4"} +breath = 11 +name = singleplayer +position = (18.34,75,-8.93) +version = 1 +hp = 20 +pitch = -18.39 +yaw = 128.2 +PlayerArgsEnd +List main 32 +Width 0 +Item flowers:white +Item flowers:black +Item flowers:red +Item flowers:orange +Item flowers:yellow +Item flowers:pink +Item flowers:green +Item flowers:blue +Empty +Empty +Empty +Empty +Empty +Empty +Empty +Empty +Empty +Empty +Empty +Empty +Empty +Empty +Empty +Empty +Empty +Empty +Empty +Empty +Empty +Empty +Empty +Empty +EndInventoryList +List craft 9 +Width 3 +Empty +Empty +Empty +Empty +Empty +Empty +Empty +Empty +Empty +EndInventoryList +List craftpreview 1 +Width 0 +Empty +EndInventoryList +List craftresult 1 +Width 0 +Empty +EndInventoryList +EndInventory diff --git a/worlds/room/world.mt b/worlds/room/world.mt new file mode 100644 index 000000000..079a87138 --- /dev/null +++ b/worlds/room/world.mt @@ -0,0 +1,9 @@ +gameid = earth +creative_mode = true +enable_damage = false +player_backend = files +server_announce = false +load_mod_wesh = false +load_mod_matrix = false +backend = sqlite3 +auth_backend = files diff --git a/worlds/spawn/README.md b/worlds/spawn/README.md new file mode 100644 index 000000000..5cf7a65e8 --- /dev/null +++ b/worlds/spawn/README.md @@ -0,0 +1,3 @@ +# Blockcolor Demo Map/World + +Demo World for Blockcolor diff --git a/worlds/spawn/auth.txt b/worlds/spawn/auth.txt new file mode 100644 index 000000000..bc7b8c781 --- /dev/null +++ b/worlds/spawn/auth.txt @@ -0,0 +1 @@ +singleplayer:#1#gVAnyig8xBlOLWHHB6LpVw#Htqjp2PdMXKssAyv3lV9IG3y5tHm6XtKhjw3m4qKJ7kE2QbGUZqo/1TeISLIoaAPw17FOeKnju0krRjGiEww/fc8TmcAx8iqkEE0IbQwBOOeuwqx6VUTUrYkH0lelc7V3MHGhppV5ItlsPA9qnRrQ9LcBtCcRInKY2pZtEyCXkfUYXb9GJ2eWRFFH4OaRdpTKRZ94kW70VUzgDYszMb4XteTYmiBQT1NWhqu8zIHCMDtsIRj+sGceD4ulV0p925zzKLcLwFKq9UzLPhsp2RLfy3exvAaWsiWOKzT1bcH2LoQqHPJ7SK4/++KnDYwmnxqzCV+Qrp6gAKCJf71Kpu3/A:fast,home,interact,shout,fly:1562944654 diff --git a/worlds/spawn/env_meta.txt b/worlds/spawn/env_meta.txt new file mode 100644 index 000000000..487df4988 --- /dev/null +++ b/worlds/spawn/env_meta.txt @@ -0,0 +1,7 @@ +day_count = 0 +lbm_introduction_times = :doors:replace_doors_door_black~0;:doors:replace_doors_door_blue~0;:doors:replace_doors_door_green~0;:doors:replace_doors_door_orange~0;:doors:replace_doors_door_pink~0;:doors:replace_doors_door_red~0;:doors:replace_doors_door_white~0;:doors:replace_doors_door_yellow~0; +last_clear_objects_time = 18687 +game_time = 21185 +lbm_introduction_times_version = 1 +time_of_day = 11795 +EnvArgsEnd diff --git a/worlds/spawn/force_loaded.txt b/worlds/spawn/force_loaded.txt new file mode 100644 index 000000000..3941af59e --- /dev/null +++ b/worlds/spawn/force_loaded.txt @@ -0,0 +1 @@ +return {} \ No newline at end of file diff --git a/worlds/spawn/ipban.txt b/worlds/spawn/ipban.txt new file mode 100644 index 000000000..e69de29bb diff --git a/worlds/spawn/map.sqlite b/worlds/spawn/map.sqlite new file mode 100644 index 000000000..e0e2a2613 Binary files /dev/null and b/worlds/spawn/map.sqlite differ diff --git a/worlds/spawn/map_meta.txt b/worlds/spawn/map_meta.txt new file mode 100644 index 000000000..fecc49dd2 --- /dev/null +++ b/worlds/spawn/map_meta.txt @@ -0,0 +1,202 @@ +mgv7_np_cave2 = { + flags = defaults + lacunarity = 2 + offset = 0 + scale = 12 + spread = (67,67,67) + seed = 10325 + octaves = 3 + persistence = 0.5 +} +mgv7_np_cave1 = { + flags = defaults + lacunarity = 2 + offset = 0 + scale = 12 + spread = (61,61,61) + seed = 52534 + octaves = 3 + persistence = 0.5 +} +mgv7_np_cavern = { + flags = defaults + lacunarity = 2 + offset = 0 + scale = 1 + spread = (384,128,384) + seed = 723 + octaves = 5 + persistence = 0.63 +} +mgv7_cave_width = 0.09 +mg_biome_np_heat = { + flags = defaults + lacunarity = 2 + offset = 50 + scale = 50 + spread = (1000,1000,1000) + seed = 5349 + octaves = 3 + persistence = 0.5 +} +mgv7_lava_depth = -256 +mgv7_np_mount_height = { + flags = defaults + lacunarity = 2 + offset = 256 + scale = 112 + spread = (1000,1000,1000) + seed = 72449 + octaves = 3 + persistence = 0.6 +} +mg_biome_np_humidity_blend = { + flags = defaults + lacunarity = 2 + offset = 0 + scale = 1.5 + spread = (8,8,8) + seed = 90003 + octaves = 2 + persistence = 1 +} +mgv7_np_ridge = { + flags = defaults + lacunarity = 2 + offset = 0 + scale = 1 + spread = (100,100,100) + seed = 6467 + octaves = 4 + persistence = 0.75 +} +mgv7_large_cave_depth = -33 +mg_biome_np_humidity = { + flags = defaults + lacunarity = 2 + offset = 50 + scale = 50 + spread = (1000,1000,1000) + seed = 842 + octaves = 3 + persistence = 0.5 +} +mg_biome_np_heat_blend = { + flags = defaults + lacunarity = 2 + offset = 0 + scale = 1.5 + spread = (8,8,8) + seed = 13 + octaves = 2 + persistence = 1 +} +mgv7_floatland_level = 1280 +mgv7_np_terrain_base = { + flags = defaults + lacunarity = 2 + offset = 4 + scale = 70 + spread = (600,600,600) + seed = 82341 + octaves = 5 + persistence = 0.6 +} +mgv7_np_float_base_height = { + flags = defaults + lacunarity = 2 + offset = 48 + scale = 24 + spread = (300,300,300) + seed = 907 + octaves = 4 + persistence = 0.7 +} +seed = 6778978388693002793 +water_level = 1 +mapgen_limit = 31000 +mg_name = v7 +mgv7_cavern_threshold = 0.7 +mgv7_dungeon_ymin = -31000 +chunksize = 3 +mg_flags = caves, dungeons, light, decorations, biomes +mgv7_np_height_select = { + flags = defaults + lacunarity = 2 + offset = -8 + scale = 16 + spread = (500,500,500) + seed = 4213 + octaves = 6 + persistence = 0.7 +} +mgv7_np_mountain = { + flags = defaults + lacunarity = 2 + offset = -0.6 + scale = 1 + spread = (250,350,250) + seed = 5333 + octaves = 5 + persistence = 0.63 +} +mgv7_shadow_limit = 1024 +mgv7_float_mount_height = 128 +mgv7_float_mount_exponent = 0.75 +mgv7_np_terrain_persist = { + flags = defaults + lacunarity = 2 + offset = 0.6 + scale = 0.1 + spread = (2000,2000,2000) + seed = 539 + octaves = 3 + persistence = 0.6 +} +mgv7_cavern_limit = -256 +mgv7_cavern_taper = 256 +mgv7_dungeon_ymax = 31000 +mgv7_float_mount_density = 0.6 +mgv7_np_terrain_alt = { + flags = defaults + lacunarity = 2 + offset = 4 + scale = 25 + spread = (600,600,600) + seed = 5934 + octaves = 5 + persistence = 0.6 +} +mgv7_spflags = mountains, ridges, nofloatlands, caverns +mgv7_np_filler_depth = { + flags = defaults + lacunarity = 2 + offset = 0 + scale = 1.2 + spread = (150,150,150) + seed = 261 + octaves = 3 + persistence = 0.7 +} +mgv7_mount_zero_level = 0 +mgv7_np_ridge_uwater = { + flags = defaults + lacunarity = 2 + offset = 0 + scale = 1 + spread = (1000,1000,1000) + seed = 85039 + octaves = 5 + persistence = 0.6 +} +mgv7_np_floatland_base = { + flags = defaults + lacunarity = 2 + offset = -0.6 + scale = 1.5 + spread = (600,600,600) + seed = 114 + octaves = 5 + persistence = 0.6 +} +[end_of_params] diff --git a/worlds/spawn/mod_storage/awards b/worlds/spawn/mod_storage/awards new file mode 100644 index 000000000..e09371183 --- /dev/null +++ b/worlds/spawn/mod_storage/awards @@ -0,0 +1 @@ +{"player_data":"{\"singleplayer\":{\"join\":2.0,\"name\":\"singleplayer\",\"unlocked\":null}}"} \ No newline at end of file diff --git a/worlds/spawn/mod_storage/music b/worlds/spawn/mod_storage/music new file mode 100644 index 000000000..ec747fa47 --- /dev/null +++ b/worlds/spawn/mod_storage/music @@ -0,0 +1 @@ +null \ No newline at end of file diff --git a/worlds/spawn/players/singleplayer b/worlds/spawn/players/singleplayer new file mode 100644 index 000000000..cb37c0e09 --- /dev/null +++ b/worlds/spawn/players/singleplayer @@ -0,0 +1,65 @@ +extended_attributes = {"character_creator:face":"eyesblack.png","character_creator:gender":"Male","character_creator:height":"4","character_creator:pants":"pantsblue.png","character_creator:shoes":"hairblack.png","character_creator:skin":"skinwhite.png","character_creator:tshirt":"shirtwhite.png","character_creator:width":"4"} +breath = 11 +name = singleplayer +position = (576.01,230,538.84) +version = 1 +hp = 20 +pitch = -24.9 +yaw = 297.59 +PlayerArgsEnd +List main 32 +Width 0 +Item flowers:white +Item flowers:black +Item flowers:red +Item flowers:orange +Item flowers:yellow +Item flowers:pink +Item flowers:green +Item flowers:blue +Empty +Empty +Empty +Empty +Empty +Empty +Empty +Empty +Empty +Empty +Empty +Empty +Empty +Empty +Empty +Empty +Empty +Empty +Empty +Empty +Empty +Empty +Empty +Empty +EndInventoryList +List craft 9 +Width 3 +Empty +Empty +Empty +Empty +Empty +Empty +Empty +Empty +Empty +EndInventoryList +List craftpreview 1 +Width 0 +Empty +EndInventoryList +List craftresult 1 +Width 0 +Empty +EndInventoryList +EndInventory diff --git a/worlds/spawn/world.mt b/worlds/spawn/world.mt new file mode 100644 index 000000000..0a4a4715e --- /dev/null +++ b/worlds/spawn/world.mt @@ -0,0 +1,9 @@ +gameid = earth +backend = sqlite3 +creative_mode = true +enable_damage = false +player_backend = files +server_announce = false +load_mod_matrix = false +load_mod_wesh = false +auth_backend = files